Professora: Flávia Balbino da Costa LINGUAGEM DE PROGRAMAÇÃO I PARTE III CONTEÚDO PROGRAMÁTICO: Introdução à Programação Estrutura de um algoritmo Operadores e expressões Estruturas de Decisão Estruturas de Repetição Procedures e Functions ALGORITMOS DE ESTRUTURAS DE REPETIÇÃO A repetição é a essência de muitas aplicações em computadores. Um loop é uma estrutura de controle que governa os processos de repetição num programa. Como as estruturas de decisão, o loop delimita um bloco de comandos para processamento especial. ALGORITMOS DE ESTRUTURAS DE REPETIÇÃO Três estruturas de repetição diferentes, cada qual com um esquema diferente para o controle do processo de iteração (repetição): O loop PARA que especifica a priori o número de iterações; O loop ENQUANTO que expressa uma condição sobre a qual o loop continua. As iterações terminam quando a condição se torna falsa; O loop REPITA também contém uma expressão condicional de controle, mas neste caso o loop continua até que a condição se torne verdadeira (inverso do WHILE). A ESTRUTURA DE REPETIÇÃO PARA...FAÇA A Sintaxe da estrutura de repetição PARA .. FAÇA é a seguinte: Para X de N até M [passo y] faça <comando> FimPara O X é a variável que deve ser previamente declarada, o N é o número que começará a contagem, M é o número até onde vai a contagem, e o passo y só será necessário se você não quiser que seja de 1 em 1. PARA .. FAÇA OBS: A estrutura de repetição PARA só é utilizada quando se sabe quantas vezes será executada. Exemplo: Faça um programa que leia um valor para a variável X, multiplique este valor por 3, guardando a resposta na variável R. Repetir esta sequência por 5 vezes. PARA .. FAÇA Solução: Programa Repetição Var I: Inteiro X, R: Inteiro Início Para I de 1 até 5 passo 1 faça Leia (X) R← X*3 FimPara Fim PARA .. FAÇA Exemplo2: Faça um programa que escreva na tela todos os números pares de 0 a 100. PARA .. FAÇA Solução: Programa Pares Var I: Inteiro Início Para I de 0 até 100 passo 2 faça Escreva (I) FimPara Fim PARA .. FAÇA Exemplo3: Faça um programa que escreva na tela os números de 1 a 100 em ordem decrescente. Para casa: Faça um programa que calcule o fatorial do número 5. Use a estrutura PARA. PARA .. FAÇA Solução: Programa Decrescente Var I: Inteiro Início Para I de 100 até 1 passo -1 faça Escreva (I) FimPara Fim PARA .. FAÇA Solução: Algoritmo Fatorial Var I, fat: Inteiro Início fat ← 1 Para I de 1 até 4 passo 1 faça fat ← fat * I FimPara Escreva (“Fatorial de 5 é:”, fat) FimAlgoritmo A ESTRUTURA DE REPETIÇÃO ENQUANTO Diferentemente do loop PARA, ENQUANTO depende de uma condição expressa para determinar a duração do processo de repetição. Num loop ENQUANTO a condição vem no início do mesmo e as iterações continuam enquanto a condição é verdadeira. Dizemos que o loop ENQUANTO testa a condição no início, se ela for falsa no primeiro teste, não resultará nenhuma iteração. ENQUANTO...FAÇA A condição é uma expressão que é avaliada como verdadeiro ou falso. A repetição continua enquanto a condição for verdadeira. Normalmente, em algum ponto, a ação dentro do loop comuta a condição para falso e o loop termina. Se a condição não for alterada para falso teremos um loop infinito. SINTAXE DA ESTRUTURA ENQUANTO...FAÇA A Sintaxe da estrutura ENQUANTO é a seguinte: Enquanto (condição) faça <comando> FimEnquanto OBS: A estrutura de repetição ENQUANTO é utilizada quando se sabe ou não quantas vezes será executada. Nesta estrutura é necessária a leitura da variável de start (Ex: cont:=1) antes do ENQUANTO e dentro dele é obrigatório incrementar esta variável (Ex: cont:=cont+1). ENQUANTO...FAÇA Exemplo: Faça um algoritmo para fazer a leitura de um valor para a variável X, multiplicar esse valor por 3, guardar a resposta na variável R. Repetir esta sequencia por 5 vezes. ENQUANTO...FAÇA Solução: Algoritmo repetição Var X,R,Cont: Inteiro Início Cont ← 1 Enquanto (Cont <=5) faça Leia (X) R←X*3 Escreva (R) Cont ← Cont + 1 FimEnquanto FimAlgoritmo A ESTRUTURA DE REPETIÇÃO REPITA A declaração REPITA faz com que comandos sejam executados repetidas vezes, até que certa condição seja satisfeita. Como a condição é verificada no final do loop, todo loop REPITA ... ATÉ QUE é executado pelo menos uma vez. REPITA...ATÉ QUE Se a condição nunca assumir o valor true, o loop só para de ser executado quando o programa é interrompido manualmente (Ctrl+C ou Ctrl+Break). Por esse motivo, dentro do loop deve ter um comando que tome a condição verdadeira pelo menos uma vez. SINTAXE DA ESTRUTURA REPITA...ATÉ QUE A Sintaxe da estrutura ENQUANTO é a seguinte: Repita <comando> Até que (condição) OBS: Na estrutura de repetição REPITA o teste lógico é executado no fim da estrutura. Isto significa que o loop será executado pelo menos uma vez, antes de verificar a validade. Nesta estrutura é necessária a leitura da variável de start (Ex: cont:=1) antes do REPITA e dentro dele é obrigatório incrementar esta variável (Ex: cont:=cont+1). REPITA...ATÉ QUE Exemplo: Faça um algoritmo para fazer a leitura de um valor para a variável X, multiplicar esse valor por 3, guardar a resposta na variável R. Repetir esta sequencia por 5 vezes. REPITA...ATÉ QUE Solução: Algoritmo repetição Var X,R,Cont: Inteiro Início Cont ← 0 Repita Leia (X) R←X*3 Escreva (R) Cont ← Cont + 1 Até que (Cont=5) FimAlgoritmo Exercícios I: 1. 2. 3. Faça um algoritmo que leia as notas de A1 e A2 de cinco alunos. Depois calcule a média aritmética e mostre o resultado em seguida. Utilize o comando PARA, ENQUANTO E REPITA. Faça um algoritmo que leia o modelo e a cor de 100 carros. Depois deverá ser mostrada a quantidade de carros da cor azul que foram lidos. Utilize o comando PARA. Faça um algoritmo que leia as médias finais de uma turma de 70 alunos. Depois calcule a média geral da turma. Se este resultado for maior que 7, escreva na tela: “Parabéns à turma!”. Caso a média geral seja menor que 7, escreva na tela: “A turma precisa se empenhar mais!”. Utilize o comando ENQUANTO. Solução do exercício 1 – comando PARA Algoritmo alunos Var I: Inteiro A1, A2, Media: Real Início Para I de 1 até 5 passo 1 faça Leia (A1, A2) Media← (A1 + A2)/2 Escreva (Media) FimPara FimAlgoritmo Solução do exercício 1 – comando ENQUANTO Algoritmo alunos Var Cont: Inteiro A1, A2, Media: Real Início Cont←1 Enquanto (Cont<=5) faça Leia (A1, A2) Media← (A1 + A2)/2 Escreva (Media) Cont←Cont + 1 FimEnquanto FimAlgoritmo Solução do exercício 1 – comando REPITA Algoritmo alunos Var Cont: Inteiro A1, A2, Media: Real Início Cont←1 Repita Leia (A1, A2) Media← (A1 + A2)/2 Escreva (Media) Cont←Cont + 1 Até que (Cont=5) FimAlgoritmo Solução do exercício 2 – comando PARA Algoritmo carros Var Modelo, Cor: Literal I, quant: Inteiro Início Para I de 1 até 100 passo 1 faça Leia (Modelo) Leia (Cor) Se (Cor=‘Azul’) então quant ← quant + 1 FimSe FimPara Escreva (quant) FimAlgoritmo Solução do exercício 3 – comando ENQUANTO Algoritmo turma Var Media, TotalNotas, MediaGeral: Real Cont: Inteiro Início Cont← 1 Enquanto (Cont<=70) faça Leia (Media) TotalNotas←TotalNotas + Media Cont←Cont + 1 FimEnquanto MediaGeral←TotalNotas / 70 Se (MediaGeral > 7) então Escreva (‘Parabéns à turma!”) Senão Escreva (‘A turma precisa se empenhar mais!’) FimSe FimAlgoritmo Exercícios II: 1. 2. Faça um algoritmo que leia uma determinada quantidade de nomes e notas de alunos. A leitura deverá ser interrompida quando for digitada a palavra FIM no lugar do nome. Utilize o comando Enquanto. Dado um número indeterminado de funcionários, onde é fornecido o Nome, número de dependentes e o número de horas trabalhadas. Pede-se que seja impresso, para cada funcionário, o seu Nome, salário bruto, salário líquido e o valor descontado. A empresa, paga R$ 40,00 por hora de trabalho, e R$ 125,55 por dependente, e ainda faz um desconto de 12% sobre o salário bruto. Pede-se ainda que seja impresso o total de funcionários da empresa, o total gasto com salários, e o total descontado. Exercícios II: 3. Um hotel cobra R$ 300,00 por diária e mais uma taxa adicional de serviços. Se a diária for menor que 15 a taxa é de R$ 20,00. Se o número de diárias for igual a 15 a taxa é de R$ 14,00 e se o número for maior que 15 a taxa é de R$ 12,00. Considerando-se que se tenha 200 pessoas e para cada pessoa tenha-se um registro contendo seu nome e o número de diárias. Solução do exercício 1 – comando ENQUANTO Algoritmo Leitura Var Cont: Inteiro Nome: Literal Nota: Real Início Leia (Nome) Enquanto (Nome<>’Fim’) faça Leia (Nota) Leia (Nome) FimEnquanto FimAlgoritmo