MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS SÃO JOSÉ – SANTA CATARINA Lógica de Programação Módulo II Prof. Tiago Semprebom [email protected] www.sj.ifsc.edu.br/~tisemp 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. Lógica de Programação Estruturas de repetição condicionais • Condição testada no início da repetição: Enquanto condição faça bloco de comandos Fim enquanto • Testa a condição antes da execução do bloco. • Enquanto a condição dor verdadeira, executa o bloco. – Bloco pode ser executado 0 ou mais vezes • Finaliza a execução do bloco quando condição for falsa. 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. Inteiro valor, menor, contador; INICIO leia(menor); contador ← 9; Enquanto contador > 0 faça leia(valor); Se valor < menor então menor ← valor; Fim se contador ← contador – 1; Fim enquanto; Escreva('Menor valor = ', menor); FIM Lógica de Programação Estruturas de repetição condicionais • Exercício: faça um algoritmo para calcular o fatorial de uma número lido pelo teclado, e mostrar o resultado na tela. Inteiro x, fat; INICIO leia(x); fat ← 1; Enquanto x > 1 faça fat ← fat * x; x ← x – 1; Fim enquanto; Escreva('Fatorial = ', fat); FIM fluxograma Lógica de Programação Estruturas de repetição condicionais • Exercício (cont.): Testando a solução para valores 0, 1, 3 e 5: Lógica de Programação Estruturas de repetição condicionais • Exercício: observe o algoritmo abaixo: Inteiro x, n; INICIO leia(n); leia(x); y →1; Enquanto x > 0 faça inicio y → * n; x → x – 1; fim Fim enquanto Escreva(y); FIM a) Qual o objetivo desse algoritmo ? b) O algoritmo está correto ? c) Altere o algoritmo, usando repita ...até d) Altere o algoritmo, usando para ...faça. e) Qual das três opções é a melhor ? Por que ? Lógica de Programação Estruturas de repetição condicionais Condição testada no final da repetição: Repita bloco de comandos Até condição Testa condição após a execução do bloco Enquanto condição for falsa, executa o bloco Bloco pode ser executado uma ou mais vezes Encerra execução do bloco quando condição for verdadeira (condição de parada) 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 Inteiro valor, menor, contador; INICIO leia(menor); contador ← 9; Repita leia(valor); Se valor < menor então menor ← valor; Fim se contador ← contador – 1; Até condição == 0; Escreva('Menor valor = ', menor); FIM Lógica de Programação Estruturas de repetição incondicional • Repetições executadas um número predeterminado de vezes: Para variável_de_controle valor_inicial até valor_final faça bloco de comandos Fim para • Repete o bloco de comandos 1 + (valor_final – valor_inicial) vezes • Incrementa automaticamente a variável de controle ao final de casa repetição – Se valor_final < valor_inicial, bloco não é executado • Variável de controle não deve ser modificada dentro do bloco Lógica de Programação Estruturas de repetição incondicional • Verificar qual o menor valor, dentre um conjunto de 10 valores lidos do teclado Inteiro valor, menor, contador; INICIO leia(menor); Para contador ← 1 até 9 faça leia(valor); Se valor < menor então menor ← valor; Fim se Fim para; Escreva('Menor valor = ', menor); FIM Lógica de Programação Exercícios: 1) Usando uma estrutura de repetição faça um algoritmo para calcular a média simples 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. Lógica de Programação 3) Faça um algoritmo que determine o maior entre N números. A condição de parada é a entrada de um valor 0, ou seja, o algoritmo deve ficar calculando o maior até que a entrada seja igual a 0 (ZERO). 4) Faça um algoritmo que conte de 1 a 100 e a cada múltiplo de 10 emita uma mensagem: “Múltiplo de 10”. 5) Construa um programa que leia o conjunto de 20 números inteiros e mostre qual foi o maior e o menor valor fornecido. 6) Faça um algoritmo que receba 10 números, calcule e mostre a quantidade de números entre 30 e 90. Lógica de Programação 7) Desenvolver um algoritmo que leia a altura e o sexo (M ou F) de 15 pessoas. Este programa deverá calcular e mostrar : a. A menor altura do grupo; b. A média de altura das mulheres; c. O número de homens; d. O sexo da pessoa mais alta. 8) Uma grande empresa deseja saber qual é o empregado mais recente e qual é o mais antigo. Desenvolver um algoritmo para ler um número indeterminado de informações (máximo de 20) contendo o número do empregado e o número de meses de trabalho deste empregado e imprimir o mais recente e o mais antigo. Obs.: A última informação contém os dois números iguais a zero. Não existem dois empregados admitidos no mesmo mês.