Baixe o app para aproveitar ainda mais
Prévia do material em texto
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica COMPUTAÇÃO BÁSICA Estruturas de Repetição com teste no final Prof. Bruno Macchiavello (bruno@cic.unb.br) Universidade de Brasília – UnB Instituto de Ciências Exatas – IE Departamento de Ciência da Computação – CIC Prof. Bruno Macchiavello 1 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Repetição com teste no final �Esta estrutura de repetição permite repetir um conjunto de ações enquanto uma determinada condição seja válida. �As instruções são executadas enquanto o resultado de um teste lógico, após executar as instruções, seja VERDADEIRO. Prof. Bruno Macchiavello 2 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Prof. Bruno Macchiavello 3 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Prof. Bruno Macchiavello 4 TESTE NO FINAL TESTE NO INICIO Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Repetição com teste no Final � PseudoCódigo Na linguagem C: Faça <conjunto de instruções> Enquanto (condição) Prof. Bruno Macchiavello 5 � Na linguagem C: � ATENÇÃO: Dentro do laço de repetição a variável de controle (da condição) deve ser alterada para garantir que o laço tenha um momento de saida, evitando assim um loop infinito. do { <conjunto de instruções>; } while (condição); Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Repetição com teste no final • A repetição com teste no início (como já visto), apenas realizará o conjunto de instruções caso a condição sejainstruções caso a condição seja verdadeira, já a repetição com teste no final garante que o conjunto de instruções dentro do loop será realizado ao menos uma vez antes de testar a condição. Prof. Bruno Macchiavello 6 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Repetição com teste no FINAL • Uma estrutura equivalente ao FAÇA ENQUANTO, e a estrutura REPITA ATÉ. • Na estrutura REPETIA ATÉ: As instruções são• Na estrutura REPETIA ATÉ: As instruções são executadas enquanto o resultado de um teste lógico, após executar as instruções, seja FALSO. Prof. Bruno Macchiavello 7 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Repetição com teste no final Repita <lista de comandos> �A expressão REPITA em pseudo-código: Prof. Bruno Macchiavello 8 <lista de comandos> até <condição ou expressão lógica> Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 1 • Vamos fazer um algoritmo que leia a idade de diferentes pessoas. Até que a soma acumulada das idades seja maior ou igual a 100 anos. Ao terminar o algoritmo deve-se mostrar na tela o total de pessoas e a média de idade. total de pessoas e a média de idade. • Notar que é necessário pelo menos ler a idade de uma pessoa, logo é possível utilizar a estrutura FAÇA ENQUANTO. Prof. Bruno Macchiavello 9 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Algoritmo Idade Variáveis idade, quant, soma: inteiro media: real inicio soma←←←← 0 //inicialmente a soma acumulada é zero quant ←←←← 0 //inicialmente não existe ainda nenhuma pessoa Exemplo 1 Prof. Bruno Macchiavello 10 quant ←←←← 0 //inicialmente não existe ainda nenhuma pessoa media ←←←← 0 //como não foi inserido nenhuma idade a media é zero Faça escreva(“Digite a idade:”) leia(idade) quant ←←←← quant+1 soma ←←←← soma + idade Enquanto soma < 100 //a repetição deve ser feita até 100 anos media ←←←← soma/quant escreva(“O total de pessoas é:”,quant) escreva(“A media de idade é:”, media) fim Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica #include <stdio.h> int main(){ int idade,quantidade=0, soma=0; float media=0; do { printf(“ Digite a idade\n “); scanf(“%d”,&idade); Exemplo 1 – ANSI C Prof. Bruno Macchiavello 11 scanf(“%d”,&idade); quantidade++; soma=soma+idade; } while (some<100); media=soma/quantidade; printf(“O total de pessoa é %d com media de idade %4.2f”,quantidade,media); return(1); } Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 2 Exemplo 2: Elabore um algoritmo que solicite números inteiros até que um número ímpar seja digitado. O algoritmo deverá informar, ao final, quantos números pares foram informados. Algoritmo NumerosPares Variáveis numero, qtdepares : inteiro Prof. Bruno Macchiavello 12 numero, qtdepares : inteiro Início qtdepares ←←←← 0 Faça Escreva (“Informe um número”) Leia (numero) qtdepares ←←←← qtdepares + 1 Enquanto (mod(numero, 2) = 0) qtdepares ←←←← qtdepares – 1 Escreva (“Numeros pares informados: ”, qtdepares) Fim Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 2 Programa em C do algoritmo anterior #include <stdio.h> int main () { int numero, qtdepares; qtdepares = 0; do { Prof. Bruno Macchiavello 13 do { printf( “\nInforme um número: “); scanf(“%d”,&numero); qtdepares++; } while ((numero % 2 ) == 0); qtdepares--; printf(“\nNumeros pares informados: %d”, qtdepares); return 0; } Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exemplo 2 � Teste de mesa para o algoritmo anterior: Teste de mesa 1 numero qtdepares ((numero % 2)==0) 2 1 Sim 4 2 Sim 5 3 Não Prof. Bruno Macchiavello 14 � Note que no teste de mesa 2, mesmo a condição sendo falsa na primeira vez, o loop foi executado uma vez. 5 3 Não 2 Teste de mesa 2 Numero qtdepares ((numero % 2)==0) 7 1 Não 0 Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação Universidade Universidade de de BrasíliaBrasília Computação BásicaComputação Básica Exercícios 1. A conversão de graus Farenheit para centígrados é obtida por C = 5 (F – 32) / 9. Escrever um algoritmo que calcule e escreva uma tabela de centígrados em função de graus Farenheit, começando em 50 até 150, variando de 2 em 2. 2. Determinar o percentual de aprovação e reprovação em um conjunto de N alunos, conhecidas as notas dos quatro bimestres, sendo a média de aprovação igual ou superior a 5,0. O usuário deve ingressar o numero de alunos e a nota de cada bimestre Prof. Bruno Macchiavello 15 superior a 5,0. O usuário deve ingressar o numero de alunos e a nota de cada bimestre d e cada um deles. O programa deve validar que cada nota estejaentre 0 e 10, fazer a media aritmética de cada aluno e a porcentagem de alunos aprovados e desaprovados. Nota: O algoritmo deve ser feito com dois laços encadeados de repetição com teste no final.
Compartilhar