ApostAlgoritmos
Short Description
Download ApostAlgoritmos...
Description
ALGORITMOS
Profº. Msc. Sérgio Murilo Schütz
SUMÁRIO 1. CONCEITOS BÁSICOS:................................ BÁSICOS:........................................................ ............................................... ....................................................4 .............................4 1.1 Virtudes de um bom algoritmo:................................................ algoritmo:....................................................................... .............................................9 ......................9 1.2 TIPOS DE DADOS:............................... DADOS:...................................................... .............................................. .............................................. .................................9 ..........9 1.2.1 - C O N S T A N T E: .................................................................................................9 1.2.2 - V A R I Á V E L: ................................ ....................................................... .............................................. ...............................................9 ........................9 1.3 FORMAÇÃO DE IDENTIFICADORES: ......................................... ........................................................... ............................... ................9 ...9 1.4 TIPOS PRIMITIVOS:......................................... PRIMITIVOS:................................................................ .............................................. ...................................... ..................11 ...11 1.4.1 - INTEIRO:............................................ INTEIRO:................................................................... .............................................. ...............................................11 ........................11 1.4.2 - REAL:...................................... REAL:............................................................. .............................................. ..................................................... ...................................11 .....11 1.4.3 - CARACTER:......................... CARACTER:................................................ .............................................. ............................................... ..................................... .............11 11 1.4.4 - LÓGICO:.................................... LÓGICO:........................................................... .............................................. .............................................. .................................12 ..........12 1.6 COMENTÁRIOS:............................ COMENTÁRIOS:................................................... .............................................. ..................................................... .....................................12 .......12 1.7 EXPRESSÕES ARITMÉTICAS:....................................................................................13 1.7.1 OPERADORES ARITMÉTICOS:........................................................ ARITMÉTICOS:..............................................................................13 ......................13 1.8 FUNÇÕES MATEMÁTICAS:............................... MATEMÁTICAS:...................................................... .............................................. ......................................13 ...............13 1.9 PRIORIDADES:................................ PRIORIDADES:....................................................... .............................................. .............................................. ...................................14 ............14 1.10 - EXPRESSÕES LÓGICAS :............................................ :................................................................... .............................................. ........................14 .14 1.11 - RELAÇÃO: .............................................................. ..................................................................................... .....................................................15 ..............................15 1.11.1 - OPERADORES OPERADORES RELACIONAIS SÍMBOLO................................... SÍMBOLO......................................................15 ...................15 1.11.2 - OPERADORES LÓGICOS................................... LÓGICOS.......................................................... ......................................... .........................15 .......15 1.12 TABELA VERDADE:............... VERDADE:...................................... .............................................. ............................................................... ........................................16 16 1.12.1 - Prioridades entre os operadores lógicos:......................... lógicos:................................................ ........................................16 .................16 1.13 PRIORIDADE Entre Entre todos os operadores........ operadores............................... .................................................. ........................................ .............16 16 1.14 COMANDO DE ATRIBUIÇÃO:.................................. ATRIBUIÇÃO:......................................................... .............................................. ............................17 .....17 2. COMANDOS DE ENTRADA E SAÍDA:.................................... SAÍDA:........................................................... ......................................... .....................18 ...18 2.1 ENTRADA DE DADOS........................ DADOS............................................... .............................................. ....................................................18 .............................18 2.2 SAÍDA DE DADOS.................................. DADOS......................................................... .............................................. ..................................................18 ...........................18 3. ESTRUTURA DO ALGORITMO: ........................................................ ............................................................................... ..................................19 ...........19 3.1 ESTRUTURA SEQÜENCIAL:.................................... SEQÜENCIAL:........................................................... ......................................... .............................. .............19 .19 3.1.1 - BLOCOS: Tem a finalidade de definir os limites do algoritmo............................ algoritmo...............................19 ...19 4. COMANDOS:.................... COMANDOS:........................................... .............................................. .............................................. ............................................ .................................. .............21 21 4.1 COMANDOS DE SELEÇÃO IF:...................................................... IF:................................................................................. ................................21 .....21 4.1.1 - SELEÇÃO SIMPLES:........................................................ SIMPLES:.............................................................................................21 .....................................21 4.1.2 - SELEÇÃO COMPOSTA: ........................................... .................................................................. ..............................................22 .......................22 4.1.3 - SELEÇÃO ENCADEADA:............................. ENCADEADA:.................................................... .............................................. ..................................23 ...........23 4.1.4 - SELEÇÃO DE MÚLTIPLA ESCOLHA:................................ ESCOLHA:..................................................... ..............................27 .........27 4.2 COMANDOS DE REPETIÇÃO:................ REPETIÇÃO:....................................... .............................................. ...............................................29 ........................29 4.2.1 - REPETIÇÃO COM VARIÁVEL VARIÁVEL DE CONTROLE CONTROLE (PARA):................................29 (PARA):................................29 4.2.2 - REPETIÇÃO COM TESTE NO INÍCIO (ENQUANTO):................. (ENQUANTO):................................... ...................31 .31 4.2.3 - REPETIÇÃO COM TESTE NO FINAL (REPITA):.............................................32 (REPITA):.............................................32 5. VETORES................................................................................................................................43 5.1 PESQUISA BINÁRIA.......................................................................................................53 6. MODULARIZAÇÃO DE ALGORITMOS: ..........................................................................54 6.1 SUBALGORITMOS: ............................................... ...................................................................... ......................................................... ..................................54 54 6.2 ESCOPO DE VARIÁVEIS.............................. VARIÁVEIS..................................................... .............................................. ..........................................55 ...................55 6.3 MANIPULAÇÃO DE MÓDULOS........................... MÓDULOS.................................................. .............................................. ..................................56 ...........56 6.4 Subalgoritmos Subalgoritmos com parâmetros................ parâmetros....................................... .............................................. ............................................ ............................56 .......56 6.4.1 - PASSAGEM DE PARÂMETROS POR VALOR................................. VALOR....................................................56 ...................56 6.4.2 - PASSAGEM DE PARÂMETROS POR REFERÊNCIA..................................... REFERÊNCIA..........................................57 .....57 7. M A T R I Z E S:....................................... S:.............................................................. .............................................. .............................................. .................................. ...........57 57 8. LISTA DE EXERCÍCIOS:.....................................................................................................65 2
APÊNDICE A - Editor Pascal......................... Pascal................................................ .............................................. .......................................................68 ................................68 APÊNDICE B - Comandos Básicos....................... Básicos.............................................. .............................................. ............................................... .........................74 .74 BIBLIOGRAFIA : ........................................... .................................................................. ............................................... ......................................................75 ..............................75 .............................................. ..................................................................... .............................................. .............................................. ............................................... ................................... ...........75 75
3
1. CONCEITOS BÁSICOS: LÓGICA: é o estudo dos pensamentos corretos. É a forma de pensar através de um raciocínio coerente e correto. A lógica pode ser atribuída à mente de Aristóteles, que sistematizou e codificou o assunto de tal modo que não foi significativamente ultrapassado por mais de dois milênios. A lógica moderna deve-se, em grande parte, ao alemão Gottlob Frege no século XIX. Sabe-se que a lógica teve sua maior desenvoltura na Filosofia, caminhando pela Lingüística, Matemática e Ciência da Computação. Segundo John Nolt (et al., 1991), "A lógica pode ser estudada de dois pontos de vista: a formal e a informal. Lógica formal é o estudo das formas de argumento, modelos abstratos comuns a muitos argumentos distintos. Lógica informal é o estudo de argumentos particulares em linguagem natural e do contexto no qual eles ocorrem." Cabe aqui ressaltar que os dois aproches não são opostos, mas se complementam. Do ponto de vista da ciência da computação(lógica computacional), que se trabalha com o sentido semântico dos operadores lógicos (princípio de bivalência - verdade, falso) a lógica formal predomina. Segundo o dicionário Aurélio, lógica significa "coerência de raciocínio, de idéias. Modo de raciocinar peculiar a alguém, ou a um grupo. Seqüência coerente, regular e necessária de acontecimentos, de coisas." Um outro conceito seria: a ciência das leis ideais do pensamento e a arte de aplicá-los corretamente no processo de investigação e demonstração da verdade. No nosso dia a dia nos deparamos com vários problemas, nos quais, usamos a "lógica" de forma "consciente" para resolvê-los, isto é, um raciocínio detalhista, minucioso, com bastante clareza, ou, raciocinamos de forma lógica sem tomarmos conhecimento, intuitivamente. Para que fique claro, vamos criar uma situação !!! Você está viajando e fura um pneu de seu carro. Encosta-o e para. Será que você é capaz de descrever todos os passos desde a parada do carro até o pneu trocado? leitura.
Dê um tempo! Tente ... pegue uma folha e descreva passo a passo ... depois prossiga a Se você tentou, agora responda algumas perguntas: Você desligou o carro? Você ligou o alerta? Você tirou o sinto de segurança? Você abriu a porta do carro? Você puxou o freio de mão? Você levou a chave para abrir o porta-malas? Você verificou se o socorro estava cheio?
Teríamos N detalhes que muitas vezes fizemos intuitivamente e não nos preocupamos com isso, no entanto, quando os descrevemos chegamos a esquecer muitos deles. A lógica seria a seqüência detalhada e clara do fato. 4
Quando alguém pergunta qual é a soma de 20 + 30, o resultado multiplicado por 4 e este resultado dividido por dois, você faz os cálculos "de cabeça", no entanto você geralmente segue um raciocínio, uma lógica, como: - Primeiro, obter o resultado da soma (20+30=50) que chamaremos de resultado 1. - Segundo, pegar o resultado 1 que é 50 e multiplica por 4 (50*4=200) assim, chamaremos este de resultado 2. - Terceiro, pegar o resultado 2 que é 200 e dividir por 2 (200/2=100) que chamaremos de resultado 3. - Quarto, responder o resultado 3 para quem o perguntou, que neste caso é 100. Miller, Galanter e Pribram (1960) introduziram um exemplo popular de sistema de retroalimentação para descrever os processos ao se pregar um prego. Escrito como um algoritmo de computador (uma seqüência de passos lógicos) os processos poderiam estar em forma de uma lista a ser lida de alto a baixo: a: Teste o prego. Se ele se apoiar vá para b; caso contrário, pare. b: Teste o martelo. Estando deitado, erga-o; caso contrario, vá para c. c: Bata o prego d: Vá para a. Talvez você nunca tivesse pensado que ao realizar alguma tarefa usasse tanta lógica, isto é, seguisse tantos passos. Portanto, é a lógica que já está em você que pretendemos despertar, levando você a um raciocínio lógico.
Raciocínio Lógico: é a forma de resolver os problemas coerentemente. Vamos expor a seguinte charada !!! Existe um rio a ser atravessado por três pessoas que pesam 50, 50 e 100 Kg. Para atravessar este rio, as três pessoas dispõe de uma canoa que leva no máximo 100 Kg por viagem. Esta canoa tem que ser conduzida, isto é, ela não anda sozinha. Heis a questão, como estas pessoas chegam no outro lado da margem? É um problema com resolução simples. Um dos passos a serem seguidos poderia ser: Depois de resolver este problema ou alguém lhe mostrar a solução, você é capaz de resolver problemas semelhante a este ou outros do gênero e até mais complexos. Esta é uma forma de "despertar" o Raciocínio Lógico. É impossível alguém lhe ensinar a lógica, pois ela já está em você, o máximo que se pode fazer é torná-la consciente e mais aprimorada. Para comprovar tal raciocínio tente resolver um dos mais famosos casos de resolução de problema baseando-se no exemplo anterior. Os três missionários e os três canibais. O problema tem o seguinte enunciado: Na margem de um rio encontram-se três missionários e três canibais, os quais devem ir para a outra margem, para isso deve-se seguir as seguintes regras para a resolução do problema: - O barco não navega sozinho, um dos seis envolvidos deve remá-lo; - Não pode em hipótese alguma o número de canibais superar os missionários, pois os canibais devorariam os missionários. O contrario é permitido e o empate também. 5
- O barco suporta no máximo duas pessoas por viagem. Tente seguindo o modelo de resolução anterior. Faça com palitos de fósforo. Certamente, com este exemplo que parece mais uma brincadeira, o que queremos mostrar que é possível despertar lógica através de exemplos. Quanto aos exemplos acima, quem resolveu o primeiro, ou mesmo, quem foi direto a solução já tinha um ponto de partida para resolução do segundo, com maior chances de chegar a um resultado do que aquela pessoa que nunca se deparou com tal problema. Assim, como você seguiu uma lógica para resolver o exemplo dos missionários e canibais, terá que seguir a mesma seqüência nos problemas oferecidos, só que voltada para o computador, obedecendo regras de uma determinada linguagem especial que vamos criar no decorrer da disciplina
ALGORITMO: um conjunto finito de ações em uma determinada ordem que obedecidas atingem um objetivo em um tempo finito. É um conjunto de passos lógicos para a solução de um problema. É uma seqüência finita de passos lógicos escrito numa linguagem natural, em caso particular uma pseudo-linguagem. Para que você entenda, o melhor exemplo de algoritmo é uma receita de bolo, porque ali são descritos todos os passos para a construção de um bolo numa seqüência lógica. Você não vai por o bolo no forno sem antes tê-lo feito. Você não vai colocar os ovos com casca, antes você vai quebra-los. Todos estes detalhes, quem está fazendo o bolo deve conhecer, para isso, ele segue uma seqüência de passos lógicos que é a receita (algoritmo). Numa máquina de lavar roupas existe um algoritmo o qual deve ser seguido, nele o fabricante explica passo a passo o que a dona de casa tem que fazer para ligar a máquina. Quando você compra um vídeo cassete vem um manual explicação, passo a passo (algoritmo), o que você deve fazer, exemplo, para instalar o vídeo. Em outras palavras o que vamos fazer é descrever passo a passo um problema para que o computador possa resolver. Exemplo, se pedíssemos para alguém descrever os passos de como se acha a média de três números quaisquer teríamos: - informar os valores - somar estes números - dividir por três - apresentar o resultado
Exemplo prático : Troca de uma lâmpada, pneu, receita de bolo.
LINGUAGEM: Talvez você já tenha percebido que, linguagem é vocabulário, palavreado, usados como meio de expressão e de comunicação entre as pessoas. Certamente você já estudou português, porém nunca tenha percebido as inúmeras regras que uma linguagem possui. Pois é, o computador tem suas linguagens, isto mesmo, ele é "poliglota" !!! Não corra!!!, tenho certeza que é mais fácil aprender n linguagens de um computador do 6
que aprender a Língua Portuguesa. O primeiro passo é aprender lógica, isto é, aprender a lógica computacional, depois adaptá-la numa linguagem que o computador entenda. Basicamente basta você conhecer quatro partes de uma linguagem de computador: Sintaxe (estrutura), Semântica(significado, sentido), Verbos (ação) e Símbolos.
O que é Sintaxe? Segundo o dicionário Aurélio: "Sintaxe é a parte da gramática que estuda a disposição das palavras na frase e a das frases no discurso." Exemplos: Se você escrever a palavra "escreva" sem a letra "r" (esceva), numa frase, certamente este é um erro sintático. Se você escreve a seguinte frase "Thamna tem olhos azuis", a frase está sintaticamente courela, porém se você mudar a disposição das palavras na frase ela terá erro sintático, assim: "Thamna azuis tem olhos". Note: não estamos preocupados como entendimento (semântica) da frase, ou se ela faz sentido, mas com o erro sintático. Vamos supor que você escreveu a seguinte frase: "Thamna é loira, pele clara, olhos azuis, ela é linda", no entanto muda-se para o seguinte: "Thamna é linda, tem olhos azuis, pele clara e é loira". Note que nas duas frases pode se entender a mesma coisa,no entanto, a disposição das palavras está errada, isto significa um erro sintático, caso a seqüência tenha que ser obrigatória.
O que é Semântica? Segundo o dicionário Aurélio: "Semântica é o estudo das mudanças ou translações sofridas, no tempo e no espaço, pela significação das palavras." Bem rápido responda o que é "Manga" Errou !!! Acertou !!! Pois é, a palavra "manga" tem um duplo significado, pode ser uma fruta ou a parte de uma camisa. Esta é uma palavra que causa duplo entendimento. Na frase: "Tharnier é um cara de pau", poderíamos entender que Tharnier é um cínico ou é muito extrovertido. Veja: Thamna tem 2 anos Tharnier tem 6 anos Thessaly tem 7 anos Se afirmo: Thessaly é mais velha que Tharnier Tharnier é mais velho que Thamna Conclui-se que Thessaly é mais velha que Thamna, se as idades permanecerem as mesmas. Caso altere-se as idades ocorrerá um erro semântico, pois o entendimento da afirmação está errada. Portanto, semântica estuda o significado das palavras ou frases.
O que é Verbo? Segundo o dicionário Aurélio: "palavra que designa ação, estado, qualidade ou \ existência." Por exemplo se alguém chegar para você e disser "escreva", obviamente você lhe perguntaria: o que escrever? (ação a tomar). 7
Nas linguagens de computador existem verbos, ou em outras palavras, ações que você manda ele executar, como: Leia do disco ou teclado, Escreva na tela ou impressora ...
O que são Símbolos? São os sinais ou figuras usadas na escrita para que possamos compreender os verbos,obedecendo a uma sintaxe e a semântica. Na nossa linguagem temos como símbolos as letras (A a ...Z z), os números (0 ... 9) bem como os demais símbolos do teclado como @, # ^& * + = e outro>. Na linguagem de computador teremos também os símbolos a serem usados. Os símbolos tem suas funções de acordo com a linguagem usada. Estes símbolos são os encontrados no teclado.
Linguagem Natural É o uso da palavra como meio de expressão e de comunicação entre pessoas, é, a língua que se usa para comunicação. Assim os franceses comunicam-se através de uma linguagem natural própria, os índios do Xingu tem a sua, nós possuímos a nossa, e cada povo tem a sua. Cada língua tem uma sintaxe, uma semântica, seus verbos próprios e seus símbolos. No computador não poderia ser diferente. O computador entende várias linguagens como: Pascal, Assembler, C++, Java, Cobol, Delph, Prolog etc, e cada uma dessas linguagens tem uma sintaxe, uma semântica, seus verbos e seus símbolos. Nós dissemos linguagem de programação porque estas possuem sintaxe e semântica precisas, permitindo que cada declaração/comando tenham estrutura e significados únicos. Para nós que nos embrenharemos no mundo da lógica, primeiramente aprenderemos lógica na nossa linguagem, isto é, em nossa linguagem natural, e depois traduziremos para uma linguagem que o computador entenda. Não temos como meta atender esta ou aquela linguagem, e sim a lógica. Mostraremos os recursos mais comuns que encontramos nas diversas linguagens de computador. Assim, nossa linguagem terá algumas regras como veremos a seguir e chamaremos de Pseudo-linguagem, uma linguagem não executável (aceitável) pelo computador.
OUTROS CONCEITOS: Programa Fonte: depois de feito o algoritmo você o "traduz" para uma linguagem que o computador entenda, em qualquer linguagem como: Delphi, C++, Clipper etc. Feito esta passagem não se chamará mais de Algoritmo e sim de Programa (Programa Fonte). Definindo Programa Fonte: é uma seqüência finita de passos lógicos escritos numa determinada linguagem que o computador entenda. Compilação: o passo seguinte é tirar os possíveis erros que você cometeu ao passar de algoritmo para uma determinada linguagem, isso se chama Compilar. Programa Objeto: depois de compilado o seu Programa-Fonte, ele está em linguagem 8
de Máquina e recebe o nome de Programa-Objeto (linguagem de máquina propriamente dita). Linkagem: é o passo seguinte, onde é feito uma ligação de arquivos externos e o programa objeto gerado pela compilação, gerando um programa que possa se executado (Programa Executável).
Programa Executável: é um programa que pode ser ativado quando desejado, pelo seu nome.exe. Nosso objetivo é a construção de Algoritmos, para que possamos aprender a lógica computacional. Os demais passos se aprende numa cadeira específica de Linguagem de Programação. Você pode ter a certeza de que aprendendo a construir algoritmos, facilmente aprenderá outras linguagens, pois TODAS as linguagens se baseiam na LÓGICA que estamos aprendendo.
1.1 Virtudes de um bom algoritmo: •
LEGIBILIDADE: É a compreensão do algoritmo por qualquer pessoa (que não o construiu), é a clareza com que a lógica está exposta.
•
PORTABILIDADE : Devido ao grande número de linguagens de programação, o algoritmo não deve ser feito orientado a uma determinada linguagem de programação. Sendo assim, não teremos dificuldade no momento de implementá-lo em uma linguagem diferente da que este algoritmo foi construído originalmente. O algoritmo deve se preocupar-se apenas com a lógica do problema e a sua resolução; sendo escrito em português.
1.2 TIPOS DE DADOS: 1.2.1 - C O N S T A N T E: A informação é dita constante quando não sofre nenhuma variação no decorrer do tempo. O valor é fixo durante a execução do algoritmo. Ex.: 9, "PARE", FALSO, 5.78. 1.2.2 - V A R I Á V E L: A informação é dita variável quando sofre uma ou mais variações no decorrer do tempo. São letras que representam valores, os quais se alteram durante a execução do algoritmo. Ex.: X:= 5, X:= 7, Y:= 0, Y:=10
1.3 FORMAÇÃO DE IDENTIFICADORES: 9
Qualquer variável é identificada por um identificador. Por exemplo, o dólar, pode ser considerado como um identificador de conteúdo variável já que a sua cotação varia diariamente. Regras de formação de identificadores: Os identificadores formam-se com um ou mais caracteres, onde: 1. A primeira letra deve ser um caractere alfabético; 2. Podem ser seguidos por caracteres alfanuméricos; 3. Caracteres especiais não são válidos. Ex. X, DÓLAR, CUB, UFIR, A, RA91, EXAME INVÁLIDOS --- > 5BJ, CUB%, X$, PTR#
10
1.4 TIPOS PRIMITIVOS: Constantes e/ou variáveis que manipulam a informação, são divididos em quatro tipos primitivos: 1.4.1 - INTEIRO: Qualquer número(negativo, nulo ou positivo) que pertença ao conjunto dos números inteiros relativos. INTEGER: Compreende valores entre -32.768 e 32.767. Utiliza 2 bytes. BYTE: Compreende valores entre 0 e 255. Utiliza 1 byte. SHORTINT: Compreende valores entre -128 e 127. Utiliza 1 byte. WORD: Compreende valores entre 0 e 65.535. Uiliza 2 bytes. LONGINT: Compreende valores entre -2.147.483.648 e 2.147.483.647. Utiliza 4 bytes. Ex. 1520, 0 , -2, 25, etc. 1.4.2 - REAL: Qualquer número(negativo, nulo ou positivo) que pertença ao conjunto dos números reais. -39 38 REAL: Compreende valores entre 2,9x10 e 1,7x10 . Utiliza 6 bytes. SINGLE: Compreende valores entre 1,5x10 -45 e 3,4x10 38. Utiliza 4 bytes. DOUBLE: Compreende valores entre 5x10 -324 e 1,7x10 308. Utiliza 8 bytes. EXTENDED: Compreende valores entre 3,4x10 -4938 e 1,1x10 4938. Utiliza 10 bytes. COMP: Compreende valores entre -2 43 +1 e 243 -1. Utiliza 8 bytes. Ex. 23.5 , CR$ 2520.25 , 97.5 KM, etc. OBS.: Os tipos Single, Double, Extended e Comp exigem a diretiva de compilação ($N+). Quando um número REAL é saída de dados, ele deverá conter o número de casas antes da vírgula e depois da mesma. Exemplo: WRITELN(‘O número tem 2 casas antes e três casas depois da vírgula’, num:2:3);
1.4.3 - CARACTER: Qualquer informação composto de caracteres alfanuméricos e/ou especiais. CHAR: Valores codificados em ASCII. Utiliza 1 byte. STRING: Valores codificados em ASCII. Utiliza n+1 bytes. Ex. "23.5", água, "500", &, $, #, f, h, y, etc.
11
1.4.4 - LÓGICO: Qualquer informação biestável, isto é a informação poderá assumir somente dois estados. BOOLEAN: Valores lógicos. Utiliza 1 byte. Ex. Verdadeiro ou Falso, Aberto ou Fechado, Sim ou Não 1.5 DECLARAÇÃO DE VARIÁVEIS: As variáveis ao serem declaradas devem indicar o seu tipo primitivo (inteiro, real, caracter, lógico). O nome escolhido(identificador) associado com a respectiva posição de memória que o mesmo passa a representar. Uma vez declarada a variável, qualquer referência ao identificador (nome escolhido) implica a referência ao conteúdo do local da memória representado. ALGORITMO: Lista de variáveis : Tipo ;
PASCAL: VAR
Lista de variáveis : Tipo ;
Onde: Tipo : inteiro (integer, byte, shortint, word, longint) real (real, single, double, extended, comp) caracter (char, string) lógico (boolean) Exemplo.: ALGORITMO PASCAL NOME : Caractere ; VAR SALÁRIO : Real ; NOME : String ; ENDEREÇO, CIDADE : Caractere ; SALÁRIO : Real ; RESP : Lógico ; ENDEREÇO, CIDADE : String ; NUMMAT : Inteiro ; RESP : Boolean ; NUMMAT : Integer ;
Exemplos inválidos: ALGORITMO SALÁRIO : Inteiro ; NUMMAT : Real ; TELEFONE : Lógico ;
PASCAL SALÁRIO : Integer; NUMMAT : Real ; TELEFONE : Boolean ;
1.6 COMENTÁRIOS: O comentário é usado com a finalidade de facilitar a compreensão de um algoritmo. É um texto que poderá aparecer em qualquer ponto do algoritmo sempre delimitado por chaves. Exemplo. ALGORITMO PASCAL SALÁRIO : Real ; {Salário do funcionário } VAR {Este algoritmo tem a finalidade de ... } SALÁRIO : Real ; {Salário do funcionário } LEIA (SALÁRIO) ; {Entrada de valor do {Este algoritmo tem a finalidade de ... } salário} READLN (SALÁRIO); {Entrada de valor do salário}
12
1.7 EXPRESSÕES ARITMÉTICAS: São aquelas cujos operadores são aritméticos e cujos operandos são constantes e/ou variáveis do tipo numérico (inteiro e/ou real). Ex. t := 4x * aEXP3; y := A + B;
1.7.1 OPERADORES ARITMÉTICOS: ALGORITMO: + (ADIÇÃO) - (SUBTRAÇÃO) * (MULTIPLICAÇÃO) / (DIVISÃO) ** (POTENCIAÇÃO) // (RADICIAÇÃO) mod (RESTO DA DIVISÃO) div (QUOCIENTE DA DIVISÃO INTEIRA) PASCAL: OPERADOR
OPERAÇÃO
TIPO DE OPERANDOS * Produto Real * Produto Integer * Produto Real e Integer / Divisão Real / Divisão Integer / Divisão Real e Integer + Adição Real + Adição Integer + Adição Real e Integer Subtração Real Subtração Integer Subtração Real e Integer DIV Quociente Inteiro Integer MOD Resto Inteiro Integer Exemplo UFIR/3, A*2, Aexp3; 10 MOD 3 = 1 , 10 DIV 3 = 3
TIPO DE RESULTADO Real Integer Real Real Real Real Real Integer Real Real Integer Real Integer Integer
1.8 FUNÇÕES MATEMÁTICAS: ALGORITMO ABS(X) - VALOR ABSOLUTO EX. ABS(-23) = 23 FRAC(X) - PARTE FRACIONÁRIA EX. FRAC(67.5) = 5 INT(X) - PARTE INTEIRA EX. INT(67.5) = 67 ROUND(X) - ARREDONDAMENTO EX. ROUND(2.6) = 3 SEN(X) - SENO DE X EX. SEN(0) = 0
PASCAL ABS(X) - VALOR ABSOLUTO EX. ABS(-23) = 23 FRAC(X) - PARTE FRACIONÁRIA EX. FRAC(67.5) = 5 INT(X) - PARTE INTEIRA EX. INT(67.5) = 67 ROUND(X) - ARREDONDAMENTO EX. ROUND(2.6) = 3 SIN(X) - SENO DE X EX. SEN(0) = 0 COS (X) - CO-SENO DE X EX. COS(0) = 1 13
LN(X) - LOGARITMO NATURAL EX. LN(5) = 1,609438 EXP(X) - POTENCIAÇÃO EX. 5 EXP (5) = 25 TRUNC(X) - TRUNCA O VALOR DE X EX. TRUNC(7.6666) = 7 SQR(X) - X ELEVADO AO QUADRADO EX. SQR(3) = 9 SQRT(X) - RAIZ QUADRADA DE X EX. SQRT(9) = 3 Exercício: a) int(69.7634) = 69 b) round(29.6) = 30 c) frac(201.56) = 56 d) frac(12//x) = depende do valor de x e) x= 10; y = 2,5; z= 4; X mod Y = 0; frac(Z) = 0; int(Y) = 2; round(Y) = 2 ou 3; A = (((X mod Z) - 1) * frac(Y)) ** 2 A = 25
1.9 PRIORIDADES: 1) Parênteses mais internos 2) Funções matemáticas 3) ** (EXP, SQR) // (SQRT) 4) * / DIV MOD 5) + Exercício : ALGORITMO PASCAL a) 4**3 + 12 / (4 - (24mod7)) + int(17 / 3) 4exp3 + 12 / (4 - (24mod7)) + int(17 / 3) 64 + 12 / (4-3) + 5 64 + 12 / (4 -3) + 5 64 + 12 + 5 64 + 12 + 5 81 81 b) 18 / 3 - round(5.6) / 2 + 4**3 b) 18 / 3 - round(5.6) / 2 + 4exp3 6 - 3 + 64 6 - 3 + 64 67 67 1.10 - EXPRESSÕES LÓGICAS : Na construção de um algoritmo surgem situações em que a execução de uma ação depende de uma ou mais condições. Esta condição é expressa no texto do algoritmo por meio de uma expressão lógica.
14
1.11 - RELAÇÃO: uma comparação feita entre dois valores de mesmo tipo. Estes valores poderão ser identificadores, constantes ou expressões aritméticas. Os operadores utilizados na comparação são os seguintes: 1.11.1 - OPERADORES RELACIONAIS SÍMBOLO IGUAL DIFERENTE MAIOR QUE MENOR QUE MAIOR OU IGUAL MENOR OU IGUAL CONTIDO EM
Exemplo.
= > < >= 0 V XOU 2 > 0 V XOR 2 > 0 V XOU V V XOR V F F
1.14 COMANDO DE ATRIBUIÇÃO: Atribui-se um valor a uma certa variável. Este valor deve ser do mesmo tipo primitivo da variável. ALGORITMO: SINTAXE..: c)) THEN SENÃO maior := a MAIOR c) THEN FIMSE; maior := b ESCREVA("O maior valor ",maior); ELSE FIM. maior := c; WRITELN(‘O maior valor ‘,maior); END.
23
2- Faça um algoritmo que leia 3 números, se todos forem números pares efetue a soma destes, caso todos sejam ímpares efetue uma multiplicação e em caso contrário subtraia um pelo outro. O algoritmo deve ainda emitir mensagens do tipo: "Todos pares, e o resultado da soma "... "Todos ímpares, e o resultado da multiplicação "... "Ambos e a subtração resulta em "... ALGORITMO: PROGRAMA pares_ímpares; a, b, c, result : INTEIRO; INICIO LEIA(a,b,c); SE ((a MOD 2 = 0) E (b MOD 2 = 0) E (c MOD 2 = 0) ENTÃO INÍCIO result = 7) THEN WRITELN (‘APROVADO’) ELSE WRITELN (‘REPROVADO’); END; END.
4.2.2 - REPETIÇÃO COM TESTE NO INÍCIO (ENQUANTO): Comando de repetição que testa a condição antes de cada execução do(s) comando(s). ALGORITMO: SINTAXE..: ENQUANTO FAÇA comando único; FIMENQUANTO; SINTAXE..: ENQUANTO FAÇA INICIO comandos; ... FIM; FIMENQUANTO;
PASCAL: SINTAXE..: WHILE DO comando; SINTAXE..: WHILE DO BEGIN ... comandos; ... END;
31
Exemplo: Faça um algoritmo que escreva os números pares situados entre 1 e 20. ALGORITMO PROGRAMA números; x : INTEIRO; INICIO x < -- 1; ENQUANTO x
View more...
Comments