Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Estrutura de Repetio
Prof. Miguel Paiva
Estrutura de Repetio
Permite que uma seqncia de comandos seja executada repetidamente at que uma determinada condio de interrupo seja satisfeita. Nossos algoritmos precisaro ser executados mais de uma vez e, para que no tenhamos que reescrever trechos idnticos que aumentaria consideravelmente o tamanho, utilizamos trs estruturas de repetio
Miguel Paiva
19/05/2011
Estrutura de Repetio
Tipos :
Enquanto repetio com teste no incio Repita repetio com teste no final Para repetio com controle de varivel
Miguel Paiva
Enquanto
Permite repetir diversas vezes um mesmo trecho de cdigo, porm, sempre verificando antes de cada execuo se permitido executar o mesmo trecho; Expresso:
19/05/2011
Enquanto
Problema:
Calcular a mdia dos 50 alunos da turma de ICC.
incio const qtdAluno: 50; inteiro : i; real: nota, media, acc; i <- 1; acc <-0 ; enquanto (i <= qtdAluno) faa escreva(Informe a nota do aluno(, i, ):); leia(nota); acc <- acc + nota; i <- i + 1; fim-enquanto; media <- acc/qtdAluno; escreva(Media da turma: , media); fim. Miguel Paiva
Simples
Soluo em C:
#include<stdio.h> #include<stdlib.h> #define QTDALUNO 50 //constante int main (){ int i; float nota, media, acc; i = 1; acc = 0; while (i <= QTDALUNO ){ printf("Informe a Nota do Aluno[%d]", i); scanf("%f", ¬a); acc = acc + nota; i++; } media = acc/QTDALUNO; printf("\nMedia: %.2f\n", media); system("pause"); return 0; } Miguel Paiva
19/05/2011
Repita
Permite que um bloco ou ao seja repetido at que uma condio seja verdadeira. Executa o trecho pelo menos uma vez, a condio s verificada no final da operao; Expresso: repita ... at <condio>;
Miguel Paiva
Repita
Cuidado: em C modificado para: Faa { ... } enquanto (condio); Importante para implementao!!!
Miguel Paiva
este
comando
19/05/2011
Repita
Problema:
Ler uma nota at que ela seja vlida
incio real : nota; repita escreva(Informe a Nota [0,10]:); leia(nota); se (nota < 0) Ou (nota > 10) ento escreva(Nota Invlida!!!); fim-se; at (nota >= 0) E (nota =< 10); fim.
Miguel Paiva
Repita
Soluo em C:
#include<stdio.h> #include<stdlib.h> int main (){ float nota; do { printf("\nInforme Nota [0,10]:"); scanf("%f", ¬a); if ((nota<0) || (nota>10)){ printf("\nNota Invalida!!!\n"); } } while ((nota<0) || (nota>10)); system("pause"); return 0; } Miguel Paiva
19/05/2011
Para
Sempre repete a execuo do bloco um nmero predeterminado de vezes, pois ela no prev uma condio, mas possui limites fixos; Usado quando o nmero de repeties for conhecido;
Miguel Paiva
Para
Problema:
Calcular a mdia dos 50 alunos da turma de PSA.
incio const qtdAluno: 50; inteiro : i; real: nota, media, acc; acc <-0 ; para i de 1 at qtdAluno passo 1 faa escreva(Informe a nota do aluno(, i, ):); leia(nota); acc <- acc + nota; fim-para; media <- acc/qtdAluno; escreva(Media da turma: , media); fim. Miguel Paiva
19/05/2011
Soluo em C
#include<stdio.h> #include<stdlib.h> #define QTDALUNO 50 //constante int main (){ int i; float nota, media, acc; acc = 0; for (i=1; i<=QTDALUNO; i++) { printf("Informe a Nota do Aluno[%d]", i); scanf("%f", ¬a); acc = acc + nota; } media = acc/QTDALUNO; printf("\nMedia: %.2f\n", media); system("pause"); return 0; }
Miguel Paiva
Exerccios
Sendo H = 1 + + 1/3 + + ... + 1/N, descreva um algoritmo para gerar o N. H. O N. N fornecido pelo usurio. Elabore um algoritmo que calcule N! (fatorial de N), sendo que o valor inteiro de N fornecido pelo usurio. Construa um algoritmo que calcule a mdia ponderada entre 5 nmeros quaisquer, sendo que os pesos a serem aplicados so 1,2,3,4 e 5 respectivamente.
Miguel Paiva
19/05/2011
Exerccios
Criar um algoritmo que imprima os nmeros pares no intervalo de 1 at 600. Criar um algoritmo que calcule e imprima o valor de bn. O valor de n dever ser maior que 1 e inteiro e o valor de b maior ou igual a 2 inteiro. Entrar com vrios N.s e imprimir o quadrado de cada nmero. Entrar com a idade de vrias pessoas e imprimir:
total de pessoas com menos de 21 anos e total de pessoas com mais de 50 anos.
Miguel Paiva
Bibliografias:
FORBELLONE, Andr Luiz Vilar Lgica de Programao: a construo de algoritmos e estruturas de dados. 3.Ed So Paulo : Pearson Prentice Hall, 2005. FARRER, Harry Algoritmos Estruturados. 3.Ed Rio de Janeiro: LTC, 1999. LOPES, Anita Introduo Programao Rio de Janeiro: Campus, 2002.
Miguel Paiva