Algoritmos e Linguagem de Programação
Professor: Mauro Jansen
Parte 3 – Pseudocódigo
15/09/2010
Algoritmos e Ling.de Programação
Pseudocódigo 2Prof. Mauro
Algoritmos e Ling.de Programação
Pseudocódigo 3Prof. Mauro
Pseudocódigo
� Assemelha-se à forma como os programas são escritos.� Para traduzir o pseudocódigo para uma linguagem de
programação, basta conhecer o vocabulário e regras sintáticas da linguagem.
� Busca a rigidez sintática e semântica, porém sem o detalhamento exigido nas linguagens de programação
Forma para a representação de algoritmos rica em detalhes, como a definição dos tipos das
variáveis usadas no algoritmo.
Forma para a representação de algoritmos rica em detalhes, como a definição dos tipos das
variáveis usadas no algoritmo.
Algoritmos e Ling.de Programação
Pseudocódigo 4Prof. Mauro
Estrutura básica� Todo pseudocódigo possui a seguinte estrutura básica:
� As palavras em negrito são palavras reservadas:palavras em português que indicam seções do pseudocódigo ou ações a serem executadas pelo computador (instruções)
Algoritmo <nome do Algoritmo>
Variáveis
<lista de variáveis>
Início
<bloco de comandos>
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 5Prof. Mauro
Estrutura básica
� Na seção Variaveis ou Var declaramos as variáveis
� Entre as palavras Inicio e Fim inserimos a sequência de comandos do nosso algoritmo, que pode conter também referência a variáveis e expressões
� Toda linha de comando termina com “;” (ponto e vírgula) (há exceções para esta regra)
Algoritmos e Ling.de Programação
Pseudocódigo 6Prof. Mauro
Exemplo de pseudocódigo
� Pseudocódigo referente ao problema do maior número:
Algoritmo Maior
Var
num1, num2, maior: inteiro:
Inicio
Leia(num1,num2);
se (num1>num2) então
maior ���� num1;
senão
maior ���� num2;
fimse;
escreva(maior);
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 7Prof. Mauro
Notação usada nas sintaxes
� Ao definirmos a sintaxe de comandos e instruções é usada a seguinte notação:� Palavras em negrito são palavras reservadas� Palavras entre < > são elementos do algoritmo a serem substituídos por nomes ou valores a serem definidos pelo programador
� Elementos entre [ ] são opcionais� Textos entre { } são comentários explicativos do algoritmo e não são executados pelo computador
Algoritmos e Ling.de Programação
Pseudocódigo 8Prof. Mauro
Declaração de variáveis
� Declaração de Variáveis: todas as variáveis que serão utilizadas pelo algoritmo devem ser declaradas entre as palavras reservadas Variaveis (ou Var) e Inicio:
Algoritmo Exemplo
Variaveis
a: Inteiro;
b: Real;
Inicio
<bloco de comandos>
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 9Prof. Mauro
Comando de atribuição (�)
� Armazena um valor em uma variável previamente declarada
� No pseudocódigo, o comando de atribuição é o símbolo “�”
� Sintaxe: � Exemplos:
salario ���� 1200; {variável salario recebe o valor 1200}
nome ���� “Maria”; {variável nome recebe “Maria”`}
media ���� (nota1+nota2)/2; {variável media recebe o
resultado da expressão}
<variável> ���� <valor>;
Algoritmos e Ling.de Programação
Pseudocódigo 10Prof. Mauro
Comando de entrada de dados (Leia)
� Sempre que precisamos que o usuário digite algum dado para ser processado, teremos uma entrada de dados
� O comando usado para receber essa entrada de dados no pseudocódigo é o comando Leia
� Sintaxe:
� Exemplos:Leia salario; {obtém valor digitado e armazena na variável salário}
Lea nome;
Leia nota1,nota2;
Leia <variável>[,<variável>,...];
ou Leia(<variável>[,<variável>,...]);
Algoritmos e Ling.de Programação
Pseudocódigo 11Prof. Mauro
Comando de saída de dados (Escreva)
� Usado para exibir ou retornar qualquer valor ou mensagem ao usuário:� Mensagem de orientação� Valor constante� Valor armazenado em uma variável
� Sintaxe:� Exemplos:
Escreva “Olá Mundo!”;
Escreva 12345;
Escreva media;
Exibe a frase “Olá Mundo!”
Exibe o valor 12345
Exibe o valor da variável media
Escreva <expressão>[,<expr.>,...];
ou Escreva(<expressão>[,<expr.>,...]);
Algoritmos e Ling.de Programação
Pseudocódigo 12Prof. Mauro
Exemplo de algoritmo 1
� Algoritmo que lê duas notas, calcula a média e mostra o resultado:
Algoritmo CalculaMedia
Variáveis
nota1, nota2, media: Real
Início
Escreva “Digite a primeira nota”
Leia nota1
Escreva “Digite a segunda nota”
Leia nota2
media ← (nota1 + nota2)/2
Escreva media
Fim
Nome do Algoritmo
Declaração de
Variáveis
Mensagem de Orientação
Inserção da segunda nota
Mensagem de Orientação
Cálculo da média e atribuição
do resultado à variável media
Exibição do resultado
Inserção da primeira nota
Algoritmos e Ling.de Programação
Pseudocódigo 13Prof. Mauro
� Um algoritmo que lê o salário de uma pessoa, calcula e mostra o valor do novo salário após um aumento de 10%.� Inicialmente, devemos identificar os dados de entrada.
� Neste caso, a entrada consiste no valor do salário.
� Em seguida, identificamos a saída.� Para este problema, a saída é o novo salário.
� O processamento necessário para transformar a entrada na saída é dado pelo cálculo do reajuste (10% do salário) e, em seguida, pelo acréscimo desse valor ao salário.
� Reajuste = salário * 0.10� Novo salário = salário + Reajuste
Exemplo de algoritmo 2
Algoritmos e Ling.de Programação
Pseudocódigo 14Prof. Mauro
Algoritmo NovoSalario
Variáveis
salario, reajuste, novosalario: Real
Início
Escreva “Digite o valor do salario”
Leia salario
reajuste ← salario * 0.10
novosalario ← salario + reajuste
Escreva novosalario
Fim
O processamento poderia ser expresso de maneira simplificada através da fórmula:
novosalario ← salario + salario * 0.10, ou ainda
novosalario ← salario * 1.10
O processamento poderia ser expresso de maneira simplificada através da fórmula:
novosalario ← salario + salario * 0.10, ou ainda
novosalario ← salario * 1.10
Exemplo de algoritmo 2
Algoritmos e Ling.de Programação
Pseudocódigo 15Prof. Mauro
Teste de algoritmos
� Testar ou “depurar” um programa ou algoritmo consiste em analisar os resultados do programa gradativamente, linha por linha, em busca de possíveis erros
� Para isso os ambientes de desenvolvimento oferecem uma ferramenta chamada “debugger”
� Manualmente, dispomos do teste de mesa ou tabela de teste
Algoritmos e Ling.de Programação
Pseudocódigo 16Prof. Mauro
Teste de mesa ou tabela de teste� É uma tabela onde temos:
� Uma coluna para o número da linha do algoritmo� Uma coluna para cada variável (de entrada e saída) do algoritmo
� Uma coluna para comentários
� A cada linha do algoritmo, preenchemos a tabela com o valor das variáveis e comentário do ocorrido
� É útil para analisar o funcionamento de um algoritmo pequeno ou fragmento de um algoritmo maior
Algoritmos e Ling.de Programação
Pseudocódigo 17Prof. Mauro
Teste de mesa ou tabela de teste� Tabela de teste para uma possível execução do algoritmo
da média de duas notas
Mostra a média7.5786
Calcula a média7.5785
Aguarda usuário digitar nota2??84
Solicita que usuário digite nota2??83
Aguarda usuário digitar nota1???2
Solicita que usuário digite nota1???1
Comentáriomedianota2nota1Lin
Algoritmos e Ling.de Programação
Pseudocódigo 18Prof. Mauro
Exercícios de fixação
� Qual a estrutura (formato) básica de um pseudocódigo?
� Em que parte do pseudocódigo declaramos as variáveis?
� Em que parte do pseudocódigo colocamos os comandos?
� Em que consiste o teste de algoritmos?
Algoritmos e Ling.de Programação
Pseudocódigo 19Prof. Mauro
Exercícios de aplicação
� Usando pseudocódigo, faça algoritmos para resolver os seguintes problemas:� Calcular a área de um retângulo� Armazenar dois números em variáveis e trocar os valores das variáveis
� Calcular as raízes de uma equação do segundo grau
� Calcular o custo estimado com combustível em uma viagem de carro
Algoritmos e Ling.de Programação
Pseudocódigo 20Prof. Mauro
Algoritmos e Ling.de Programação
Pseudocódigo 21Prof. Mauro
Estruturas condicionais� São estruturas que permitem a tomada de decisões em função de condições estabelecidas e assim, o algoritmo apresenta ações alternativas.
� A classificação das estruturas de seleção é feita de acordo com o número de condições que devem ser testadas para que se decida qual o caminho a ser seguido. Segundo esta classificação, têm-se dois tipos de estruturas de decisão:� se
� escolha
Algoritmos e Ling.de Programação
Pseudocódigo 22Prof. Mauro
Estrutura SE
� São estruturas de controle de fluxo, que executam um ou vários comandos se a condição testada for verdadeira e, em alguns casos, executam um ou vários comandos se for falsa.
� Podem ser:� Simples
� Compostas
Algoritmos e Ling.de Programação
Pseudocódigo 23Prof. Mauro
Estrutura SE simples
� Um bloco de instruções será executado somente se uma condição for verdadeira. Caso contrário, o fluxo de execução segue para depois do bloco (ou após o FimSe)
� Formato:
� <condição> pode ser uma variável booleana, uma constante (V ou F) ou uma expressão de valor lógico
Se <condição> então
<bloco de comandos>
FimSe
Se <condição> então
<bloco de comandos>
FimSe
Algoritmos e Ling.de Programação
Pseudocódigo 24Prof. Mauro
Estrutura SE simples – exemplo 1
� Algoritmo para solicitar um número e verificar se o número digitado é maior que 10
Algoritmo MaiorQue10
Variáveis
num: Real
Início
Escreva(“Digite um número”)
Leia(num)
Se num>10 então
Escreva(“O número é maior que 10.”)
FimSe
Escreva(“Fim do algoritmo”)
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 25Prof. Mauro
Estrutura SE simples – exemplo 2� Algoritmo CalculaMedia alterado para mostrar se aluno está
aprovado, sendo que a média para aprovação é 7
Algoritmo CalculaMedia
Variáveis
nota1, nota2, media: Real
Início
Escreva(“Digite a primeira nota”)
Leia(nota1)
Escreva(“Digite a segunda nota”)
Leia(nota2)
media ← (nota1 + nota2)/2
Escreva(“Sua média é: “,media)
Se media>=7 então
Escreva(“Você está aprovado”)
FimSe
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 26Prof. Mauro
Estrutura SE composta
� Se a condição for verdadeira, o bloco de comandos 1 será executado. Caso contrário, o bloco de comandos 2 será executado.
� Formato:
� <condição> pode ser uma variável booleana, uma constante (V ou F) ou uma expressão de valor lógico
Se <condição> então
<bloco de comandos 1>
Senão
<bloco de comandos 2>
FimSe
Se <condição> então
<bloco de comandos 1>
Senão
<bloco de comandos 2>
FimSe
Algoritmos e Ling.de Programação
Pseudocódigo 27Prof. Mauro
Estrutura SE composta – exemplo 1
� Algoritmo para solicitar um número e verificar se o número digitado é maior que 10
Algoritmo MaiorQue10
Variáveis
num: Real
Início
Escreva(“Digite um número”)
Leia(num)
Se num>10 então
Escreva(“O número é maior que 10.”)
senão
Escreva(“O número é menor ou igual a 10”)
FimSe
Escreva(“Fim do algoritmo”)
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 28Prof. Mauro
Estrutura SE composta – exemplo 2� Algoritmo CalculaMedia alterado para mostrar se aluno está
aprovado, sendo que a média para aprovação é 7Algoritmo CalculaMedia
Variáveis
nota1, nota2, media: Real
Início
Escreva(“Digite a primeira nota”)
Leia(nota1)
Escreva(“Digite a segunda nota”)
Leia(nota2)
media ← (nota1 + nota2)/2
Escreva(“Sua média é: “,media)
Se media>=7 então
Escreva(“Você está aprovado”)
senão
Escreva(“Você está de recuperação”)
FimSe
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 29Prof. Mauro
Estruturas SE encadeadas
� É quando o bloco de instruções subordinado ao comando se/senão contém outros comandos se/senão (quando temos mais de 2 situações):
Se <condição 1> então
<bloco de comandos 1>
Senão se <condição 2> entao
<bloco de comandos 2>
Senão se <condição 3> entao
<bloco de comandos 3>
...
Senão se <condição N> entao
<bloco de comandos N>
FimSe
Se <condição 1> então
<bloco de comandos 1>
Senão se <condição 2> entao
<bloco de comandos 2>
Senão se <condição 3> entao
<bloco de comandos 3>
...
Senão se <condição N> entao
<bloco de comandos N>
FimSe
Algoritmos e Ling.de Programação
Pseudocódigo 30Prof. Mauro
Estruturas SE encadeadas - exemplo� Algoritmo CalculaMedia alterado para tratar mais uma regra: se a
média for menor que 3, o aluno já estará reprovado, sem direito àrecuperação
Algoritmo CalculaMedia
Variáveis
nota1, nota2, media: Real
Início
Escreva(“Digite a primeira nota”)
Leia(nota1)
Escreva(“Digite a segunda nota”)
Leia(nota2)
media ← (nota1 + nota2)/2
Escreva(“Sua média é: “,media)
Se media>=7 então
Escreva(“Você está aprovado”)
senão se media<3 então
Escreva(“Você está reprovado”)
senão
Escreva(“Você está de recuperação”)
FimSe
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 31Prof. Mauro
Estrutura ESCOLHA� Estrutura de decisão por igualdade, onde temos:
� uma variável a ser testada (variável de escolha)� um ou mais valores constantes a serem comparados com a variável, com um bloco de comandos associado a cada um
� Também é chamada de estrutura CASO� É similar a estruturas SE encadeadas, mas as comparações são só por igualdade
� São úteis em menus ou situações onde as decisões estão centradas em apenas uma variável e valores pré-fixados
Algoritmos e Ling.de Programação
Pseudocódigo 32Prof. Mauro
Estrutura ESCOLHA� Sintaxe:
Escolha <variável>
caso <val.constante 1>:
<bloco de comandos 1>
caso <val.constante 2>:
<bloco de comandos 2>
...
caso <val.constante n>:
<bloco de comandos n>
outrocaso
<bloco de comandos alternativo>
FimEscolha
Escolha <variável>
caso <val.constante 1>:
<bloco de comandos 1>
caso <val.constante 2>:
<bloco de comandos 2>
...
caso <val.constante n>:
<bloco de comandos n>
outrocaso
<bloco de comandos alternativo>
FimEscolha
� <variável> será comparada com o valor constante de cada “caso”� Será executado somente o bloco de comandos abaixo do “caso” onde
houver igualdade entre a variável e o valor constante
Algoritmos e Ling.de Programação
Pseudocódigo 33Prof. Mauro
Estrutura ESCOLHA - exemploAlgoritmo MenuCalculo
Variáveis
num1, num2, opcao: Real
Início
Escreva(“1-Soma”)
Escreva(“2-Subtração”)
Escreva(“3-Multiplicação”)
Escreva(“Digite a sua opção:”)
Leia(opcao)
Escreva(“Digite o primeira numero: ”)
Leia(num1)
Escreva(“Digite o segunda número: ”)
Leia(num2)
Escolha opcao
caso 1
Escreva(“Soma=“,num1+num2)
caso 2
Escreva(“Subtração=“,num1-num2)
caso 3
Escreva(“Multiplicação=“,num1*num2)
outrocaso
Escreva(“Opção inválida”)
FimEscolha
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 34Prof. Mauro
Exercícios
� Faça um algoritmo que leia um número inteiro diferente de zero e diga se este é positivo ou negativo
� Altere o algoritmo anterior para dizer também se o número é igual a zero (use se encadeados)
� Faça uma algoritmo que leia três valores que representam os três lados de um triângulo e verifique:� se o triângulo é válido� Se é um triângulo equilátero, isósceles ou escaleno
Algoritmos e Ling.de Programação
Pseudocódigo 35Prof. Mauro
Exercícios
� Propriedades de um triângulo:� A soma de dois lados não pode ser menor que a do terceiro lado (ou o comprimento de cada lado deve ser menor que a soma dos outros dois lados)
� Equilátero: três lados iguais� Isósceles: dois lados iguais� Escaleno: três lados diferentes
Algoritmos e Ling.de Programação
Pseudocódigo 36Prof. Mauro
Algoritmos e Ling.de Programação
Pseudocódigo 37Prof. Mauro
Estruturas de repetição
� Permitem a repetição de um bloco de instruções por um número vezes pré-determinado ou até a satisfação de uma condição
� Também são chamados de loops (laços)� Tipos de estruturas:
� Repetição contada (estrutura para)� Repetição condicional
� Com teste no início (estrutura enquanto)� Com teste no final (estrutura repita)
Algoritmos e Ling.de Programação
Pseudocódigo 38Prof. Mauro
Estruturas de repetição
� “Laço sem fim” ou deadLock: é quando uma estrutura de repetição fica executando interminavelmente� As estruturas de repetição devem sempre ter um fim, ou seja, devem ter um limite pré-definido de repetições ou alguma condição que faça a repetição parar, caso contrário teremos um loop sem fim ou deadlock
� É uma das causas dos “travamentos” de software (mensagem “Este programa não estárespondendo”)
Algoritmos e Ling.de Programação
Pseudocódigo 39Prof. Mauro
Estrutura de repetição contada
� É utilizada quando conhecemos previamente a quantidade de vezes que queremos executar o bloco de comandos� A quantidade de vezes pode ser um valor constante ou informado pelo usuário
� É representada pelo comando PARA
Algoritmos e Ling.de Programação
Pseudocódigo 40Prof. Mauro
Comando Para (repetição contada)
� Sintaxe:
� Descrição:� <variável>: nome de uma variável do tipo inteiro� <valor inicial>: é o valor inicial que será atribuído à variável� <valor final>: quando a variável for maior ou igual ao valor final,
a repetição termina� <incremento> é o valor que será incrementado à variável a cada
repetição (ao final do bloco de comandos). É opcional; se não for informado, é assumido incremento 1.
Para <variável> de <valor inicial> até <valor final> [passo <incremento>] faça
<bloco de comandos>
FimPara
Para <variável> de <valor inicial> até <valor final> [passo <incremento>] faça
<bloco de comandos>
FimPara
Algoritmos e Ling.de Programação
Pseudocódigo 41Prof. Mauro
Comando Para (exemplo 1)
� Algoritmo que lista os dez primeiros números inteiros positivosAlgoritmo DezPrimeiros
Variáveis
i: Inteiro
Início
Para i de 1 até 10 faça
Escreval(i)
FimPara
Fim
A variável i fará o controle da
repetição, seu valor inicia com
1 e para cada execução do
bloco seu valor aumenta em 1
unidade.
Para cada repetição, basta
mostrar o valor de i, uma vez
que este valor variará de 1 até
10.
Algoritmos e Ling.de Programação
Pseudocódigo 42Prof. Mauro
Comando Para (exemplo 2)
� Algoritmo que lista os números inteiros pares menores ou iguais a um número informado pelo usuário
Algoritmo NumerosPares
Variáveis
i,limite: Inteiro
Início
Escreva(“Listar números pares até: “)
Leia(limite)
Para i de 2 ate limite passo 2 faca
Escreval(i)
FimPara
Fim
Algoritmos e Ling.de Programação
Pseudocódigo 43Prof. Mauro
Estruturas de repetição condicional
� São usadas quando não sabemos previamente a quantidade exata de vezes que queremos executar o bloco de comandos� A quantidade de repetições depende de uma condição (expressão lógica) controlada internamente
� Existem duas estruturas de repetição condicional:� Com teste no início (estrutura enquanto...faça)� Com teste no final (estrutura repita...até)
Algoritmos e Ling.de Programação
Pseudocódigo 44Prof. Mauro
Características da repetição condicional
� As estruturas de repetição condicional caracterizam-se por conter dois blocos de comandos importantes:� PREPARO: um ou mais comandos que afetam a condição para entrar no bloco de repetição ou que preparam variáveis que serão usadas dentro da bloco de comandos
� CONTROLE: um ou mais comandos que afetam a condição para finalizar a repetição
Algoritmos e Ling.de Programação
Pseudocódigo 45Prof. Mauro
Estrutura Enquanto...faça� Sintaxe:
� Uso: repete o bloco de comandos enquanto uma determinada condição (especificada através da expressão lógica) for satisfeita.
� A <expressão lógica> é verificada logo na entrada e a cada repetição. Se for falsa, a execução continua logo após o FimEnquanto
� O FimEnquanto marca o final do bloco de comandos a ser repetido e causa o retorno ao comando Enquanto
Enquanto <expressão lógica> faca
<bloco de comandos>
FimEnquanto
Enquanto <expressão lógica> faca
<bloco de comandos>
FimEnquanto
Algoritmos e Ling.de Programação
Pseudocódigo 46Prof. Mauro
Estrutura Enquanto (exemplo 1)
� Algoritmo para contar de 1 a 10, listando os números na tela
algoritmo “Conta com enquanto”
var i: inteiro
Inicio
i <- 1
enquanto i <= 10 faca
escreval(i)
i <- i + 1
fimenquanto
fimalgoritmo
PREPARO: A variável i fará o
controle da repetição e inicia a
contagem, portanto devemos
inicializá-la com o valor 1
CONTROLE: dentro do laço
deve haver um comando que
afete a expressão lógica. Aqui
incrementamos a variável i, de
modo que quando ela for
maior que 10 a repetição irá
parar
Algoritmos e Ling.de Programação
Pseudocódigo 47Prof. Mauro
Estrutura Enquanto (exemplo 2)
� Algoritmo para somar números digitados pelo usuário, enquanto não for digitado zero
algoritmo “Soma”
var n,soma: real
Inicio
n <- 0
soma <- 0
enquanto n<>0 faca
escreva(“Digite um número (0=fim):”)
leia(n)
soma <- soma + n
fimenquanto
Escreva(“A soma dos numeros é: “,soma)
fimalgoritmo
PREPARO: Aqui inicializamos
a variável com um valor maior
que zero, para entrar no laço e zeramos a variável soma que irá guardar a soma
CONTROLE: o próprio
número digitado pelo usuário
será usado como controle. Se
for digitado zero, a condição
ficará falsa e o laço irá parar
Algoritmos e Ling.de Programação
Pseudocódigo 48Prof. Mauro
Estrutura Repita...Até� Sintaxe:
� Uso: repete o bloco de comandos até que determinada condição (especificada através da expressão lógica) seja satisfeita
� A <expressão lógica> é verificada ao final de cada repetição. Se for verdadeira, a execução continua logo após o Até
� O Até marca o final do bloco de comandos a ser repetido e causa o retorno ao comando repita, caso a expressão lógica seja falsa
Repita
<bloco de comandos>
Até <expressão lógica>
Repita
<bloco de comandos>
Até <expressão lógica>
Algoritmos e Ling.de Programação
Pseudocódigo 49Prof. Mauro
Estrutura Repita (exemplo 1)
� Algoritmo para contar de 1 a 10, listando os números na tela
algoritmo “Contar com repita”
var i: inteiro
Inicio
i <- 1
Repita
escreval(i)
i <- i + 1
até i>10
fimalgoritmo
PREPARO: A variável i fará o
controle da repetição e inicia a
contagem, portanto devemos
inicializá-la com o valor 1
CONTROLE: Aqui
incrementamos a variável i, de
modo que quando ela for maior
que 10 a repetição irá parar
Algoritmos e Ling.de Programação
Pseudocódigo 50Prof. Mauro
Estrutura Repita (exemplo 2)
� Algoritmo para somar números digitados pelo usuário, até que seja digitado zero
algoritmo “Soma”
var n,soma: real
Inicio
soma <- 0
Repita
escreva(“Digite um número (0=fim):”)
leia(n)
soma <- soma + n
Ate n=0
Escreva(“A soma dos numeros é: “,soma)
fimalgoritmo
PREPARO: Aqui apenas
zeramos a variável soma. Não
é necessário prepararmos a
expressão lógica, visto que a
variável de controle será lida
dentro do laço
CONTROLE: o próprio
número digitado pelo usuário
será usado como controle. Se
for digitado zero, a condição
será verdadeira e o laço irá
parar
Algoritmos e Ling.de Programação
Pseudocódigo 51Prof. Mauro
Estrutura Enquanto x Repita� Estruturas tipo Enquanto:
� São úteis quando precisamos de teste desde a entrada no laço
� O bloco de comandos só será executado se a condição for verdadeira logo no início
� A repetição termina quando a expressão lógica for falsa� Estruturas tipo Repita:
� São úteis quando não há necessidade de teste no início� O bloco de comandos será executado sempre, pelo menos uma vez
� A repetição termina quando a expressão lógica for verdadeira
Algoritmos e Ling.de Programação
Pseudocódigo 52Prof. Mauro
Intervenções forçadas na repetição
� Apesar de não ser uma boa prática de programação, algumas linguagens oferecem comandos para a intervenção forçada (retorno ao início ou interrupção) nas estruturas de repetição retorno� Retorno ao início (comando “volte”): faz com que a execução volte ao início do laço (comando enquanto ou repita)
� Interrupção (comando “interrompa”): faz com que a repetição pare (a execução continua no comando após o comando fimenquanto ou até)
� Geralmene esses comandos podem ser usados em qualquer estrutura (para, enqunto ou repita)
Algoritmos e Ling.de Programação
Pseudocódigo 53Prof. Mauro
Retorno ao início (comando “volte”)
� Sintaxe da Enquanto com comando de retorno ao início:
Enquanto <expressão lógica> faca
<bloco de comandos>
se <condição> então
volte
fimse
<Bloco de comandos>
FimEnquanto
Enquanto <expressão lógica> faca
<bloco de comandos>
se <condição> então
volte
fimse
<Bloco de comandos>
FimEnquanto
O comando volte força a “próxima rodada” do laço: o fluxo de execução volta para o início do laço (comando Enquanto)Numa estrutura “para” a variável será incrementada
Algoritmos e Ling.de Programação
Pseudocódigo 54Prof. Mauro
Interrupção forçada (comando “interrompa”)
� Sintaxe da Enquanto com comando de interrupção forçada:
Enquanto <expressão lógica> faca
<bloco de comandos>
se <condição> então
interrompa
fimse
<Bloco de comandos>
FimEnquanto
<comando>...
Enquanto <expressão lógica> faca
<bloco de comandos>
se <condição> então
interrompa
fimse
<Bloco de comandos>
FimEnquanto
<comando>...
O comando interrompa faz com que a repetição termine e o fluxo de execução continue no comando após o laço (após o FimEnquanto)
Algoritmos e Ling.de Programação
Pseudocódigo 55Prof. Mauro
Combinando estruturas� Você pode combinar as estruturas estudadas (sequencial, condicional e repetição), uma dentro do bloco de comandos de outra� Condicional dentro de condicional (estruturas se encadeadas) (já estudado)
� Condicional dentro de repetição� Repetição dentro de uma condicional� Repetição dentro de outra repetição (estruturas de repetição encadeadas)
� ..etc.
� Vejamos alguns exemplos a seguir...
Algoritmos e Ling.de Programação
Pseudocódigo 56Prof. Mauro
Condicional dentro de repetição
� Ex: listar os números de 1 a 100, destacando os múltiplos de 10Algoritmo “0 a 100 destacando pares”
Variáveis
i: Inteiro
Início
Para i de 1 ate 100 faca
Escreva(i)
se i mod 10 = 0 entao
escreval(“ (múltiplo de 10)”)
senao
escreval(“”)
fimse
FimPara
Fim
Estrutura PARA contando de
1 a 100
Testa se o número é divisível
por 10 (resto da divisão por 10
é zero)
Algoritmos e Ling.de Programação
Pseudocódigo 57Prof. Mauro
Estruturas de repetição encadeadas
� Ex: imprimir a tabuada de multiplicar de 1 até 10
Algoritmo “tabuada de multiplicar”
Variáveis
n1,n2: Inteiro
Início
Para n1 de 1 ate 10 faca
Escreva(“Tabuada de “,n1)
Para n2 de 1 ate 10 faca
escreval(n1,” x “,n2,” = “,n1*n2)
FimPara
escreval(“--------------”)
FimPara
Fim
Laço dos multiplicandos (n1
varia de 1 até 10)
Laço dos multiplicadores (n2
varia de 1 até 10)
Algoritmos e Ling.de Programação
Pseudocódigo 58Prof. Mauro
Cuidados ao combinar estruturas
� Ao combinar estruturas, você nunca deve “cruzar” uma estrutura com outra:
Para i de 1 ate 100 faca
Escreva(i)
se i mod 10 = 0 entao
escreval(“ (múltiplo de 10)”)
FimPara
fimse
Enquanto i<100
Escreva(i)
se i mod 10 = 0 entao
escreval(“ (múltiplo de 10)”)
FimEnquanto
fimse
Algoritmos e Ling.de Programação
Pseudocódigo 59Prof. Mauro
Cuidados ao combinar estruturas
� Quando combinadas, elas devem sempre estar contidas uma dentro da outra:
Para .....
Enquanto
Repita
Escreva(i)
se .... entao
<comandos>
senao
<comandos>
fimse
Ate <condição>
FimEnquanto
FimPara
Algoritmos e Ling.de Programação
Pseudocódigo 60Prof. Mauro
Exercícios – faça algoritmos para:
� Multiplicar dois números usando somas repetidas
� Solicitar uma quantidade pré-determinada de números e calcular a soma e média entre esses números
� Calcular a soma dos números ímpares entre um intervalo informado
� Calcular o fatorial de um número
Algoritmos e Ling.de Programação
Pseudocódigo 61Prof. Mauro
Exercício-desafio:� Solicitar os nomes e notas dos alunos de uma turma, mostrar o nome
e nota dos alunos com a maior e menor nota e calcular a média entre as notas da turma. O fim da turma será indicado quando o usuário digitar “FIM” para o nome do aluno
� Melhorar o algoritmo acima para efetuar os mesmos cálculos para todas as turmas de uma escola, mostrando também a maior e menor nota da escola e a nota média da escola
� Listar os números primos entre dois números informados pelo usuário. Dicas:
� Número primo é o número que só é divisível por ele mesmo e por 1.
� Para saber se um número é primo você precisará usar um laço e testar, com a função MOD, se ele é divisível por todos os números menores que ele
� Listar os números da série de Fibonacci de 1 até um número informado pelo usuário. Dica:
� A séria de Fibonacci é uma lista de números cujos dois primeiros númereos são iguais a 1 e cada número seguinte é igual à soma dos dois números anteriores: 1, 1, 2, 3, 5, 8, ..
Top Related