Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação: estruturas de repetição 1 Lógica de Programação Imagine um algoritmo para calcular a média de uma quantidade desconhecida de números ● Para resolver esse problema, seria necessário escrever um algoritmo capaz de ler até uma certa quantidade máxima (predeterminada) de números: INICIO Real num, media ← 0 Inteiro quantidade Escrever “Informe a quantidade de números: “ Ler quantidade Ler media Se quantidade > 0 Ler num media ← media + num quantidade ← quantidade - 1 Senao Escrever “media = “, media fimSe Esta sequência precisaria se repetir muitas vezes dentro do algoritmo 2 Lógica de Programação Imagine um algoritmo para calcular a média de uma quantidade desconhecida de números inicio real num , media <- 0 inteiro qtde , n escrever "Informe a quantidade de numeros: " ler qtde n <- qtde enquanto n > 0 faz escrever "Novo número: " ler num media <- media + num n <- n - 1 fimenquanto escrever "media = " , media / qtde fim Esta sequência repete automaticamente para ler todos os números 3 Lógica de Programação Fluxograma do algoritmo da média 4 Lógica de Programação Estruturas de repetição ● ● ● Possibilitam repetir uma sequência de ações do algoritmo Estruturas de repetição condicionais: ● enquanto uma determinada condição for verdadeira ● ... ou até que uma determinada condição seja verdadeira Estruturas de repetição incondicionais: ● Por um número predeterminado de vezes 5 Lógica de Programação Estruturas de repetição condicionais ● Condição testada no início da repetição: Enquanto condição faz bloco de comandos fimEnquanto ● ● Testa a condição antes da execução do bloco Enquanto a condição for verdadeira, executa o bloco ● ● Bloco pode ser executado 0 ou mais vezes Termina a execução do bloco quando condição for falsa 6 Lógica de Programação Estruturas de repetição condicionais ● Ex: verificar qual o menor valor, dentre um conjunto de 10 valores lidos do teclado INICIO Inteiro valor, menor, contador Ler menor contador ← 9 Enquanto contador > 0 faz Ler valor Se valor < menor então menor ← valor fimSe contador ← contador – 1 fimEnquanto Escrever “Menor valor = “, menor FIM 7 Lógica de Programação Fluxograma da busca do menor valor 8 Lógica de Programação Exercícios 1) Faça um algoritmo para mostrar a tabuada de um número lido pelo teclado. Esse número deve estar entre 1 e 10. 2 ) Modifique o algoritmo anterior para que ele mostre a tabuada de todos os números entre 1 e 10. 3) Faça um algoritmo para calcular o fatorial de um número lido pelo teclado, e mostrar o resultado na tela. 4) Modifique o algoritmo da calculadora para que após resolver uma conta, ela volte a pedir os dados para fazer uma próxima conta (quer dizer, peça de novo os dois números e a operação). No entanto, deve haver uma opção para que o usuário termine a calculadora. 9 Lógica de Programação Exercícios 5) Faça um algoritmo que leia 5 números pelo teclado e descubra o maior e o menor número. 6) Faça um algoritmo que leia 5 números pelo teclado, e ao final mostre apenas os dois maiores números. 7) Escreva um algoritmo que verifique se um número lido pelo teclado é primo. 8) Modifique o algoritmo anterior para que mostre todos os números primos menores que um determinado número lido pelo teclado. 10 Lógica de Programação Estruturas de repetição condicionais ● Exercício: observe o algoritmo abaixo: INICIO Inteiro x, n Ler n Ler x y →1 Enquanto x > 0 faz y → y* n x→x–1 fimEnquanto Escrever y FIM Qual o objetivo desse algoritmo ? 11 Lógica de Programação Estruturas de repetição condicionais ● Condição testada no final da repetição: Faz bloco de comandos Enquanto condição ● ● Testa a condição após a execução do bloco Enquanto a condição for VERDADEIRA, executa o bloco ● Bloco pode ser executado 1 ou mais vezes Para a execução do bloco quando condição for FALSA (condição de parada) ● 12 Lógica de Programação Estruturas de repetição condicionais ● Ex: verificar qual o menor valor, dentre um conjunto de 10 valores lidos do teclado INICIO Inteiro valor, menor, contador Ler menor contador <- 9 Faz Ler valor Se valor < menor então menor <- valor FimSe contador <- contador – 1 Enquanto contador > 0 Escrever “Menor valor = “, menor FIM 13 Lógica de Programação Estrutura de repetição incondicional ● Repetições executadas um número predeterminado de vezes: Para variável de valor_inicial ate valor_final passo incremento bloco de comandos Proximo ● Repete o bloco de comandos 1+(valor_final – valor_inicial) vezes Atualiza automaticamente a variável de controle ao final de cada repetição ● ● ● Se valor_final < valor_inicial, bloco não é executado Variável de controle não deve ser modificada dentro do bloco 14 Lógica de Programação Estruturas de repetição condicionais ● Ex: verificar qual o menor valor, dentre um conjunto de 10 valores lidos do teclado INICIO Inteiro valor, menor, contador Ler menor contador <- 9 Para contador de 1 ate 9 passo 1 Ler valor Se valor < menor então menor <- valor FimSe Proximo Escrever “Menor valor = “, menor FIM 15 Lógica de Programação Exercícios 1) Usando uma estrutura de repetição faça um algoritmo para calcular o desvio padrão de 10 números lidos do teclado. 2) Faça um algoritmo que mostre um menu com as opções: adição, subtração, multiplicação e divisão. Cada opção deve ser identificada por um número. Seu algoritmo deve ler uma opção pelo teclado, e em seguida executar a operação correspondente. Os operandos da operação devem também ser lidos pelo teclado. O resultado deve ser mostrado na tela. 16 Lógica de Programação Exercícios – usar estrutura de repetição “para” 1) Faça um algoritmo para mostrar a tabuada de um número lido pelo teclado. Esse número deve estar entre 1 e 10. 2 ) Modifique o algoritmo anterior para que ele mostre a tabuada de todos os números entre 1 e 10. 3) Faça um algoritmo que leia 5 números pelo teclado e descubra o maior e o menor número. 4) Faça um algoritmo que leia 5 números pelo teclado, e ao final mostre apenas os dois maiores números. 5) Escreva um algoritmo que verifique se um número lido pelo teclado é primo. 6) Modifique o algoritmo anterior para que mostre todos os números primos menores que um determinado número lido pelo teclado. 17 Lógica de Programação Exercícios – usar estrutura de repetição “para” 7) Faça um algoritmo para fatorar um número. Quer dizer, mostrar todos os seus divisores primos (com as respectivas multiplicidades). Ex: a fatoração de 12 resulta em 3, 4; a fatoração de 100 dá 2, 2, 5, 5. 18 Lógica de Programação Exercício (usar enquanto condição faz … ou faz … enquanto condição) 7) Uma calculadora opera da seguinte forma: no início de uma conta, ela lê um número, a operação a ser executada (+, -, * ou /), e depois o segundo número. Após isto, ela lê novamente uma operação, que pode ser “=” ou (+, -, * ou /): se for “=” ela mostra o resultado e encerra a conta, mas se for uma operação aritmética ela pede um novo número, e assim por diante. Por exemplo, as seguintes sequências fornecidas à calculadora resultariam em: 1 + 2 – 4 * 5 = -5 3*4+2/3=5 Faça o algoritmo dessa calculadora. Ao final de uma conta, a calculadora deve perguntar se deve fazer uma nova conta ou terminar sua execução (terminar o programa). 19