apostila algoritmos
-
Upload
alyson-cavalcante -
Category
Documents
-
view
3 -
download
0
Transcript of apostila algoritmos
Teoria da Computação e Algoritmos
Introdução à Lógica de Programação
Prof. Giuliano Prado de Morais Giglio, M.Sc.
O que é lógica de programação?
n A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, pois ela permite definir a seqüência lógica para o desenvolvimento.
n Então o que é lógica?
n Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.
Seqüência Lógica
n Estes pensamentos, podem ser descritos como uma seqüência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa.
n Seqüência Lógica são passos executados até atingir um objetivo ou solução de um problema.
Instruçõesn Na linguagem comum, entende-se por instruções “um
conjunto de regras ou normas definidas para a realização ou emprego de algo”.
n Em informática, porém, instrução é a informação que indica a um computador uma ação elementar a executar.
n Uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem seqüencial lógica.
n Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prática uma série de instruções: descascar as batatas, bater os ovos, fritar as batatas, etc...
Instruções
n É evidente que essas instruções tem que ser executadas em uma ordem adequada – não se pode descascar as batatas depois de fritá-las.
n Dessa maneira, uma instrução tomada em separado não tem muito sentido; para obtermos o resultado, precisamos colocar em prática o conjunto de todas as instruções, na ordem correta.
n Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar.
Exemplos de Seqüências Lógicasn “Chupar uma bala”.
n Pegar a balan Retirar o papeln Chupar a balan Jogar o papel no lixo
n “Somar dois números quaisquer”.n Escreva o primeiro número no retângulo An Escreva o segundo número no retângulo Bn Some o número do retângulo A com número do
retângulo B e coloque o resultado no retângulo Cn FAZER: Seqüência de tomar banho;n Seqüência de trocar 4 pneus de um automóvel;
Teoria da Computação e Algoritmos
Introdução aosAlgoritmos
Prof. Giuliano Prado de Morais Giglio, M.Sc.
Introdução
n O uso de algoritmos surgiu como uma forma de indicar o caminho para a solução dos mais variados problemas.
n Dado um problema, as principais funções de um programador são:n Entender perfeitamente o probleman Escolher métodos para sua soluçãon Desenvolver um algoritmo baseado nos métodosn Codificar o algoritmo na linguagem de programação
disponível
Definiçãon Fazemos uso constantemente de algoritmos em
nosso cotidiano: a maneira como uma pessoa toma banho é um algoritmo.
n Outros algoritmos freqüentemente encontrados são:n instruções para se utilizar um aparelho eletrodoméstico;n uma receita para preparo de algum prato;n guia de preenchimento para declaração do imposto de
renda;n a regra para determinação de máximos e mínimos de
funções por derivadas sucessivas;n a maneira como as contas de água, luz e telefone são
calculadas mensalmente; etc.
Uma Definição Formaln “Um Algoritmo é uma seqüência de instruções
ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema.”
n Um algoritmo é um conjunto finito de instruções que, se seguidas, realizam uma determinada tarefa.
n Além disso, todo algoritmo deve satisfazer:
n Entrada - zero ou mais valores de entrada n Saída - pelo menos um valor deve ser produzido n Clareza - toda instrução deve ser clara e não ambígua n Término - o algoritmo deve terminar após um nº finito de passos
Exemplo de AlgoritmoNão-Computacional
n Problema: Usar um telefone público.
Início1. Tirar o fone do gancho;2. Ouvir o sinal de linha;
3. Introduzir o cartão;4. Teclar o número desejado;5. Se der o sinal de chamar5.1 Conversar;5.2 Desligar;5.3 Retirar o cartão;
6. Senão6.1 Repetir;
Fim.
DesvioSeqüencial
Importância
n A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que mandamos.
n Com uma ferramenta algorítmica, podemos conceber uma solução para um dado problema, independendo de uma linguagem específica e até mesmo do próprio computador.
Característicasn Todo algoritmo deve apresentar algumas
características básicas:
ü ter fim;ü não dar margem à dupla interpretação (não ambíguo);ü capacidade de receber dado(s) de entrada do mundo
exterior; ü poder gerar informações de saída para o mundo
externo ao do ambiente do algoritmo;ü ser efetivo (todas as etapas especificadas no algoritmo
devem ser alcançáveis em um tempo finito).
Formas de RepresentaçãoDescrição Narrativa
n Faz-se uso do português para descrever algoritmos.
n EXEMPLO: Receita de Bolo:
n Providencie manteiga, ovos, 2 Kg de massa, etc. n Misture os ingredientesn Despeje a mistura na fôrma de bolon Leve a fôrma ao fornon Espere 20 minutosn Retire a fôrma do fornon Deixe esfriarn Prove
Formas de RepresentaçãoDescrição Narrativa
n VANTAGENS:n o português é bastante conhecido por nós;
n DESVANTAGENS:n imprecisão;n pouca confiabilidade (a imprecisão acarreta a
desconfiança);n extensão (normalmente, escreve-se muito para dizer
pouca coisa).
Formas de RepresentaçãoLinguagem Algorítmica ou Pseudo-Linguagem
n Esta forma de representação de algoritmos, também conhecida como pseudocódigo, português estruturado ou portugol, é bastante rica em detalhes e, por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação, sendo portanto a forma de representação de algoritmos que será adotada nesta disciplina.
n Esta representação é suficientemente geral para permitir que a tradução de um algoritmo nela representado para uma linguagem de programação específica seja praticamente direta.
Formas de RepresentaçãoLinguagem Algorítmica
n Consiste na definição de uma pseudolinguagem de programação, cujos comandos são em português, para representar algoritmos.
n Os algoritmos são descritos em uma linguagem chamada pseudocódigo. n Este nome é uma alusão à posterior implementação em uma
linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo PASCAL, estaremos gerando código em PASCAL.
n Por isso os algoritmos são independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo.
Formas de RepresentaçãoLinguagem Algorítmica
n O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.
EXEMPLO:
Algoritmo CALCULA_DOBROinício
Leia NUMDOBRO ← 2 * NUMEscreva DOBRO
fim
Formas de RepresentaçãoLinguagem Algorítmica
n VANTAGENS:n Independência física da solução (solução lógica apenas); n Usa o português como base;n Pode-se definir quais e como os dados vão estar estruturados;n Passagem quase imediata do algoritmo para uma linguagem de
programação qualquer.
n DESVANTAGENS:n Exige a definição de uma linguagem não real para trabalho;n Não padronizado.
Comandos
n Um algoritmo possui caráter imperativo, razão pela qual uma ação em um algoritmo é chamada de comando.
n Ex.: algoritmo para descascar batatas para o jantar:n traga a cesta com batatas do porão ;n traga a panela do armário ;n descasque as batatas ;n devolva a cesta ao porão ;
Estados de um algoritmon Um algoritmo (ou programa) apresenta dois
aspectos complementares:n Aspecto estático: é a representação concreta do
algoritmo através de um texto contendo comandos que devem ser executados numa ordem prescrita (atemporal).
n Aspecto dinâmico: que é a execução do algoritmo no tempo.
n O problema central da computação consiste em relacionar esses dois aspectos, isto é, consiste no entendimento (visualização) das estruturas dinâmicas das possíveis execuções do algoritmo a partir da estrutura estática do seu texto.
Escrita de algoritmosn A generalização do algoritmo para descascar batatas para
o jantar pode ser:
n traga a cesta com batatas do porão ;n traga a panela do armário ;n se saia é clara então coloque avental ;n enquanto número de batatas é insuficiente faça
n descasque uma batata ;n devolva a cesta ao porão ;
n Um algoritmo deve ser determinístico, isto é, dadas as mesmas condições iniciais, deve produzir em sua execução, os mesmos resultados.
n Só interessam os algoritmos executáveis em tempo finito.
O que é um programa?
Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador
e que são interpretados e executados por uma máquina, no caso um computador. Dada esta
interpretação rigorosa, um programa é por natureza muito específico e rígido em relação aos algoritmos
da vida real.
O que é uma linguagem de programação?
n São Softwares que permitem o desenvolvimento de programas. Possuem um poder de criação ilimitado, desde jogos, editores de texto, sistemas empresariais até sistemas operacionais.
n Existem várias linguagens de programação, cada uma com suas características próprias.
n Exemplos: Pascal, Clipper, C, C++, Visual Basic,Delphi, Java e etc.
Fases de um Algoritmon Ao montar um algoritmo, precisamos primeiro dividir
o problema apresentado em três fases fundamentais.
n Onde temos:n ENTRADA: São os dados de entrada do algoritmon PROCESSAMENTO: São os procedimentos utilizados para
chegar ao resultado finaln SAÍDA: São os dados já processados
Entrada Processamento Saída
Fases de um Algoritmon Quando temos um problema e vamos utilizar um
computador para resolve-lo inevitavelmente temos que passar pelas seguintes etapas:
a) Definir o problema.
b) Realizar um estudo da situação atual e verificar quais a(s) forma(s) de resolver o problema.
c) Terminada a fase de estudo, utilizar uma linguagem de programação para escrever o programa que deverá a princípio, resolver o problema.
d) Analisar junto aos usuários se o problema foi resolvido. Se a solução não foi encontrada, deverá ser retornado para a fase de estudo para descobrir onde está a falha.
Estrutura de um Algoritmo
n Os algoritmos terão a seguinte estrutura:
ALGORITMO <Nome do algoritmo><definições>INÍCIO
<Comandos>
FIM.
Regras para se escrever um Algoritmo
n Para escrever um algoritmo precisamos descrever a seqüência de instruções, de maneira simples e objetiva.
n Para isso utilizaremos algumas técnicas:
n Usar somente um verbo por frase;n Imaginar que você está desenvolvendo um algoritmo para
pessoas que não trabalham com informática;n Usar frases curtas e simples;n Ser objetivo;n Procurar usar palavras que não tenham sentido dúbio.
O Aprendizado de Algoritmos
n Algoritmos não se aprende:E Copiando AlgoritmosE Estudando Algoritmos
n Algoritmos só se aprendem:E Construindo AlgoritmosE Testando Algoritmos.
Teoria da Computação e Algoritmos
Estruturas de Implementação de
Algoritmos
Prof. Giuliano Prado de Morais Giglio, M.Sc.
Teoria da Computação e Algoritmos
Variáveis e Tipos de Dados
Prof. Giuliano Prado de Morais Giglio, M.Sc.
Conceito de Variáveis
n Sabe-se da Matemática que uma variável é a representação simbólica dos elementos de um certo conjunto.
n Nos algoritmos destinados a resolver um problema no computador, a cada variável corresponde uma posição de memória, cujo conteúdo pode variar ao longo do tempo durante a execução de um algoritmo. Embora a variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante.
Conceito de Variáveis
n Toda variável é identificada por um nome ou identificador.
n Exemplo: num algoritmo para calcular a área de um triângulo retângulo pelo teorema de pitágoras (a2 = b2 + c2), os identificadores A, B e C podem representar as posições de memória que armazenam o valor da hipotenusa e dos catetos.
n Nunca usar uma palavra reservada (que faça parte da linguagem algorítmica) ⇒ poderá causar ambigüidade no entendimento do algoritmo.
n Na nossa linguagem algorítmica, vamos admitir que nossas variáveis poderão armazenar valores numéricos ou alfanuméricos (strings).
Operação de Atribuição
n A operação de atribuição permite que se forneça um valor a uma certa variável. n Se for atribuído uma expressão à variável, será armazenado
o resultado daquela expressão. n Se for atribuído uma outra variável, será armazenado o
conteúdo daquela variável. n Para a operação de atribuição, utilizaremos a seguinte
sintaxe:variável ← expressão
n Exemplos:
X ← 2.5NOTA ← NOTA - 1A ← B + C
C ← 1 / 3SENHA ← 'X3Y9'NOME ← 'João'NOTA ← 10B ← AA ← 2
Identificadores
n São os nomes dados a variáveis, constantes e programas.
n Regras Para construção de Identificadores:n Não podem ter nomes de palavras reservadas (comandos da
linguagem);n Devem possuir como 1º caractere uma letra ou Underscore ( _ );n Ter como demais caracteres letras, números ou Underscore;n Ter no máximo 127 caracteres;n Não possuir espaços em branco;n A escolha de letras maiúsculas ou minúsculas é indiferente.
n Exemplos:n Nome, Telefone, Nota1, Salario, Idade_Filho, PI.
Tipos de Dados
n No momento que formos trabalhar com variáveis, indiquemos o tipo de informação que uma variável pode conter, isto é, se uma dada posição de memória armazenará um número ou uma letra etc.
n O Tipo de dado podem ser:n Primitivo = Pré-definido pela linguagem;n Sub-Faixa = É uma parte de um tipo já existente;n Definido pelo usuário (Escalar) = Definidos pelo
programador.
Tipos de Dados
Tipos de DadosCHAR(Caracter) e STRING(Cadeia)
n As definições de variáveis como sendo do tipo CHAR e STRING, possuem algumas curiosidades que merecem um cuidado especial por parte do usuário.
n Uso das aspas (‘):
n Atribuição de um valor para uma variável do tipo CHAR (Caracter) ou STRING (Cadeia) ⇒ colocar o valor ( dado ) entre aspas ( ‘ ), pois esta é a forma de informar que a informação é caracter.
n Exemplo: ALGORITMO TesteVARIÁVEIS
Letra : CARACTERNome : CADEIA
INICIOLetra ← ‘A’;Nome ← ‘João’;
FIM
Declaração de Variáveis
Linearização de Expressõesn Para a construção de Algoritmos todas as expressões
aritméticas devem ser linearizadas, ou seja, colocadas em linhas.
n É importante também ressalvar o uso dos operadores correspondentes da aritmética tradicional para a computacional.
Modularização de Expressõesn A modularização é a divisão da expressão em partes,
proporcionando maior compreensão e definindo prioridades para resolução da mesma.
n Como pode ser observado no exemplo anterior, em expressões computacionais usamos somente parênteses “( )” para modularização.
n Na informática podemos ter parênteses dentro de parênteses.
n Exemplos de prioridades:n (2+2)/2=2n 2+2/2=3
Operação de Entrada e Saída
n Os cálculos do computador são de pouco valor a não ser que, primeiro, possamos fornecer os dados sobre os quais estes cálculos serão efetuados e, segundo, ver os resultados destes cálculos.
n Definimos aqui dois novos comandos da nossa linguagem algorítmica para manusear entrada e saída. n O comando leia nos permite ler valores dados
atribuindo-os à variáveis indicadas; n o comando escreva nos permite mostrar os resultados.
Operação de Entrada e Saídan A entrada pode vir do teclado ou de qualquer outro dispositivo
de entrada. n A saída pode aparecer na tela do monitor de vídeo ou ser
impressa em papel. n Caso deseja-se imprimir o resultado, usa-se o comando
impriman A sintaxe destes comandos são:
leia (variável-1, variável-2, ..., variável-n)escreva (expressão-1, expressão-2, ..., expressão-n)
n Exemplos:
Imprima (Result)Escreva (A,B)Leia (Nome)
Imprima (Tel)Escreva (Nota + 2)Leia (A,B,C)Imprima (Nota)Escreva (15)Leia (Nota)
Operadores Aritméticos e Relacionais
/Divisão**Exponenciação
OperadorOperação
*Multiplicação-Subtração+Adição
< =Menor ou igual<>Diferente
OperadorOperação
=Igual
<=Maior ou igual<Menor que>Maior que
Aritméticos Relacionais
Operadores Lógicos
n Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso.
n Os operadores lógicos são:n E (AND) = Uma expressão E é verdadeira se todas as condições
forem verdadeirasn OU (OR) = Uma expressão OU é verdadeira se pelo menos uma
condição for verdadeiran NÃO (NOT) = Um expressão NÃO inverte o valor da expressão ou
condição, se verdadeira inverte para falsa e vice-versa.
Operadores Lógicos- Tabela Verdade -
Operadores Lógicosn Exemplos:
n Suponha que temos três variáveis A = 5, B = 8 e C =1n Os resultados das expressões seriam:
FalsoNÃOA <= B
FalsoB = COUA >= BVerdadeiroB > CEA < BVerdadeiroNÃOA > BVerdadeiroB < COUA <> B
FalsoB > CEA = B
ResultadoExpressões
Operadores Especiais(Mod e Div)
n MOD : Retorna o resto da divisão entre 2 números inteiros.
n DIV : Retorna o valor inteiro que resulta da divisão entre 2 números inteiros.
Teoria da Computação e Algoritmos
Método para montagem de Algoritmos
Prof. Giuliano Prado de Morais Giglio, M.Sc.
Refinamentos Sucessivosn Um algoritmo é considerado completo se os seus comandos forem do
entendimento do seu destinatário. n Num algoritmo, um comando que não for do entendimento do
destinatário terá que ser desdobrado em novos comandos, que constituirão um refinamento do comando inicial, e assim sucessivamente, até que os comandos sejam entendidos pelo destinatário.
n Por exemplo, o algoritmo para calcular a média aritmética de dois números pode ser escrito da seguinte forma:
Algoritmo CALCULA_MÉDIAInício
Receba os dois números;Calcule a média dos dois números;Exiba o resultado;
Fim
Refinamentos Sucessivosn Podemos desdobrar o comando “Calcule a média dos
dois números” em:
Soma os dois números;Divida o resultado por 2;
n Após esse refinamento, o algoritmo pode ser considerado completo, a menos que o destinatário não saiba fazer as operações de adição e divisão, ou não seja capaz de entender diretamente algum comando.
Refinamentos Sucessivosn O algoritmo estando completo, podemos reescrevê-
lo, inserindo o refinamento na posição do comando que foi refinado. Assim sendo, obtém-se:
Algoritmo CALCULA_MÉDIAInício
Receba os dois números;Soma os dois números;Divida o resultado por 2;Exiba o resultado;
Fim.
Refinamentos Sucessivos
n Reescrever um algoritmo completo, com os refinamentos sucessivos inseridos nos seus devidos lugares, permite ter uma visão global de como o algoritmo deve ser executado.
n À medida que o algoritmo passa a ser maior e mais complexo, esta visão global torna-se menos clara e, neste caso, um algoritmo apresentado com os refinamentos sucessivos separados oferece uma melhor abordagem para quem precisar entendê-lo.
Teoria da Computação e Algoritmos
Estruturas de decisão e repetição
Prof. Giuliano Prado de Morais Giglio, M.Sc.
Estrutura Seqüencialn Num algoritmo, os comandos deverão ser executados numa seqüência linear,
seguindo-se o texto em que estão escritos, de cima para baixo, se não houver indicação em contrário.
Linguagem Algorítmica: inicio
comando-1;comando-2;. . .comando-n;
Fim.
n Exemplo:início
leia A,B;SOMA ← A + B;escreva SOMA;
Fim.
Estrutura Condicional(Se .. então)
n A estrutura condicional permite a escolha do grupo de ações e estruturas a ser executado quando determinadas condições (expressões lógicas) são ou não satisfeitas. Esta estrutura pode se apresentar de duas formas:
n ESTRUTURA CONDICIONAL SIMPLES
se condição entãocomando-1;comando-2;. . .comando-n;
fim-se;n Exemplo:se MÉDIA >= 7 então
SITUAÇÃO ← 'Aprovado';Escreva (SITUACAO);
fim-se
Estrutura Condicional( Se .. Então .. Senão.. )
n ESTRUTURA CONDICIONAL COMPOSTA
se condição entãocomando-A1comando-A2. . .comando-An
senãocomando-B1
comando-B2. . .comando-Bn
fim-se;
Exemplo:. . .se PESO > 80 então
escreva 'Você está obeso'escreva 'Faça atividades físicas'
senãoescreva 'Você está no peso certo'escreva 'Procure manter sua forma'
. . .
SE .. ENTÃO Aninhadosn Usados para tomadas de decisões para mais de 2
opções.
n Sintaxe:
SE CONDIÇÃO ENTÃOComando1;
SENÃOSE CONDIÇÃO ENTÃO
Comando2;SENÃO Comando3;
SE .. ENTÃO Aninhados
n Exemplo: Faça um algoritmo para simular uma calculadora simples. Para isso, seu algoritmo deverá ler dois números inteiros e uma letra, correspondendo a uma operação matemática, da seguinte forma:n Letra ‘A’ significa fazer a soma dos dois númerosn Letra ‘S’ significa fazer a subtração dos dois númerosn Letra ‘M’ significa fazer a multiplicação dos dois
númerosn Letra ‘D’ significa fazer a divisão dos dois números
O algoritmo deverá mostrar o resultado da operação escolhida.
ALGORITMO “Calculadora”VAR
total: REAL;n1, n2: INTEIRO;opcao: CARACTER;
INICIOescreva(“Digite dois numeros”);leia(n1, n2);escreva(“Escolha a operação: A – adição, S – subtração, M – multiplicação, D –
divisão”);leia(opcao);se (opcao = ‘A’) entao
total <- n1 + n2;fimse;se (opcao = ‘S’) entao
total <- n1 - n2;fimse;se (opcao = ‘M’) entao
total <- n1 * n2;fimse;se (opcao = ‘D’) entao
total <- n1 / n2;fimse;escreva(“Resposta = ”, total)
FIM.
Uma solução seria ...
SE .. ENTAO Aninhados
n E como podemos solucionar o problema, evitando que se faça os demais testes, depois que se encontra a opção desejada???
SE .. ENTÃO Aninhados
SE “testar a 1ª opção” ENTÃOComando1;
SENÃO (há 3 opções restantes)
“ testar as 3 opções restantes”FIMSE
SE .. ENTÃO Aninhados
SE “testar a 1ª opção” ENTÃOComando1;
SENÃO (há 3 opções restantes)SE “testar a 2ª opção” ENTÃO
Comando2;SENÃO (há 2 opções restantes)
“ testar as 2 opções restantes”FIMSE
FIMSE
SE .. ENTÃO AninhadosSE “testar a 1ª opção” ENTÃO
Comando1;SENÃO
SE “testar a 2ª opção” ENTÃOComando2;
SENÃOSE “testar a 3ª opção” ENTÃO
Comando3;
SENÃO (É a quarta e última opção)
Comando4;FIMSE
FIMSEFIMSE
ALGORITMO “Calculadora”....
INICIOescreva(“Digite dois numeros”);leia(n1, n2);escreva(“Escolha a operação: A – adição, S – subtração, M – multiplicação, D –
divisão”);leia(opcao);se (opcao = ‘A’) entao
total <- n1 + n2;senao
se (opcao = ‘S’) entaototal <- n1 - n2;
senaose (opcao = ‘M’) entao
total <- n1 * n2;senao
total <- n1 / n2;fimse;
fimse;fimse;escreva(“Resposta = ”, total)
FIM.
Solução com Se .. Entao Aninhados
Estruturas de Seleçãon A estrutura de condição equivale a um ninho de SE’s.
n Sintaxe:
ESCOLHA <expressão> :CASO 1
Comando A1;CASO 2
Comando A2;CASO n
Comando An;SENÃO
Comando N;;FIM-ESCOLHA;
Estruturas de Seleção
ØExemplo:
ALGORITMO OpcoesTituloVARIÁVEIS
Titulo: STRING;Op: INTEIRO;
INICIOLEIA (OP);ESCOLHA OP:
CASO 1TITULO = “OPÇÃO 1”;
CASO 2TITULO = “OPÇÃO 2”;
CASO 3TITULO = “OPÇÃO 3”;
CASO 4TITULO = “OPÇÃO 4”;
CASO 5TITULO = “OPÇÃO 5”;
SENÃOTITULO = “OPÇÃO ERRADA”;
FIM-ESCOLHA;
Estruturas de Seleção
ØComo ficaria nossa Calculadora essa estrutura?
ALGORITMO “Calculadora”VAR
total: REALn1, n2: INTEIROopcao: CARACTER
INICIOLEIA (n1, n2)LEIA (opcao)ESCOLHA opcao
CASO ‘A’total <- n1 + n2;
CASO ‘S’total <- n1 - n2;
CASO ‘M’total <- n1 * n2;
CASO ‘D’total <- n1 / n2;
OUTROCASOescreva(“Opção Inválida”)
FIMESCOLHA
ESCREVA(“Resposta = ”, total)FIM.
Estruturas de Repetição
n A estrutura de repetição permite que uma seqüência de comandos seja executada repetidamente até que uma determinada condição não seja satisfeita. Utilizaremos os comandos abaixo para representar esta estrutura.
n Para..faça
n Enquanto..faça
n Repete..até
Estruturas de Repetiçãon Para .. Faça:
n Sua sintaxe é:
PARA <Variável> DE <INICIO> Até <FIM>, PASSO <N> FAÇA
comando-A1;comando-A2;. . .comando-An;
fim-para;
Estruturas de Repetiçãon Exemplo ( Para .. Faça ):
Faça um algoritmo para ler e escrever o Nome de 20 pessoas.
ALGORITMO LeEscreveVARIÁVEIS
Nome : CADEIACont : INTEIRO
INICIOPARA Cont DE 1 ATE 20 PASSO 1 FACA
LEIA(Nome);ESCREVA(Nome);
FIM-PARA;FIM.
Estruturas de Repetiçãon Enquanto .. Faça:
Sua sintaxe é:
enquanto condição façacomando-A1;comando-A2;. . .comando-An;
fimenquanto;
Estruturas de RepetiçãoSemântica:
Enquanto a condição for verdadeira, a seqüência será repetida. Quando a condição fornecer resultado falso, o controle sai da estrutura passando para o comando seguinte ao final do bloco.
enquanto condição façacomando-A1;comando-A2;. . .comando-An;
fimenquanto;
Estruturas de Repetição
Uso de FLAGn Obs.:
n FLAG é um valor específico fornecido após o último dado de entrada, que serve para indicar o fim dos dados de entrada.
n FLAG é somente uma marca de fim dos dados de entrada (não é um dado de entrada) e não pode ser processado.
n A leitura do FLAG informa ao programa que os dados de entrada terminaram e que ele deve partir para a execução da finalização de seu processamento (cálculos finais, impressões finais etc.).
Estruturas de Repetição
n Exemplo 1: Uso de FLAGn Obs.:
n Controle de processamento genérico para uso de FLAG:...
leia ( o 1º conjunto de dados );
enquanto ( não for FLAG ) faça
processar o conjunto de dados lido ;
leia ( o próximo conjunto de dados );
fimenquanto
finalizar processamento ;
...
Estruturas de Repetição
n Exemplo 1: Uso de FLAG
Desenvolver um algoritmo para ler uma seqüência de números inteiros, calcular e imprimir o quadrado de cada número lido. O último valor a ser lido é um FLAG = 0.
Estruturas de Repetiçãon Exemplo 1: Algoritmo em pseudolinguagem
Algoritmo “Exemplo1”var
NUM, QUADRADO : inteiro;inicio
leia(NUM); // lê o 1º conjunto de dadosenquanto (NUM <> 0) faca // testa se não é FLAG
QUADRADO <- NUM*NUM;escreva(QUADRADO);leia(NUM); // lê o próximo conjunto de dados
fimenquantoFim.
Estruturas de Repetição
n Exemplo 1: Teste do Algoritmon Considerando que serão fornecidos os seguintes
dados de entrada: 2 -3 1 4 0n O resultado do teste (teste de mesa) seria:
Estruturas de Repetição
n Exemplo 2: Uso de acumuladorDesenvolver um algoritmo para ler uma seqüência de números inteiros com FLAG = 0, calcular e imprimir a soma desses números.
n Importante:n Uma forma possível para resolver o problema de
somatório de valores (acumulador) é imaginar uma variável que armazena as somas parciais. Essa variável deve iniciar com zero e somar número por número, até o final da seqüência.
Estruturas de Repetiçãon Exemplo 2: Algoritmo em pseudolinguagem
Algoritmo “Exemplo2”var
NUM, SOMA : inteiro;inicio
SOMA <- 0; // zera a variável soma leia(NUM); // lê o 1º conjunto de dadosenquanto (NUM <> 0) faca // testa se não é FLAG
SOMA <- SOMA + NUM; // acumula ao valor de soma o NUMleia(NUM); // lê o próximo conjunto de dados
fimenquantoescreva(SOMA);
Fim.
Estruturas de Repetição
n Exemplo 2: Teste do AlgoritmoConsiderando que serão fornecidos os seguintes dados de entrada: 8 -3 2 1 0O resultado do teste seria:
Estruturas de Repetiçãon Exemplo ( Enquanto .. Faça ): n Faça um algoritmo para ler e escrever o Nome de 20 pessoas.
ALGORITMO LeEscreveVARIÁVEIS
Nome: STRING;Total: INTEIRO;
INICIOTotal ← 0;ENQUANTO (Total < 20) FAÇA
LEIA(Nome);ESCREVA ('Nome=', Nome);Total ← Total + 1;
FIM-ENQUANTO;END.
Estruturas de Repetição
n Repita .. Até:
n Sua sintaxe é:REPITA
comando-A1;comando-A2;. . .comando-An;
ATE <Condição for verdadeira>
Estruturas de Repetiçãon Exemplo ( Repita .. Até ): Faça um algoritmo para ler e escrever o Nome de 20 pessoas.
ALGORITMO LeEscreveVARIÁVEIS
Nome: CADEIATotal: INTEIRO
INICIOTotal ← 0;REPITA
LEIA(Nome);ESCREVA(' Nome= ',Nome);Total ← Total + 1;
ATÉ Total >=20;FIM.