Estruturas de repetição

Documentos relacionados
Essa estrutura de repetição é utilizada quando se sabe o número de vezes que um trecho do algoritmo deve ser repetido.

Algoritmos e Programação (While Do While - Do) Prof. Me. Adelson Felipe Dias Nogueira

para / for (com teste numérico) enquanto / while (com teste lógico no início) repita até que / do...while (com teste lógico no fim)

Algoritmos e Programação

Introdução à Ciência da Computação

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Algoritmos. Prof. Jonatas Bastos Site:

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Linguagem C estruturas de repetição

Introdução a programação Comandos de repetição

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

MC-102 Aula 06 Comandos Repetitivos

Laços de repetição for, while, do-while

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Repetição. Prof. César Melo

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

Fig.1: Ilustração de Estrutura de Controle Fonte:Internet

COMANDOS DE REPETIÇÃO (ENQUANTO)

Estruturas de Repetição Parte I ENQUANTO-FAÇA

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Programação Estruturada

Estruturas de Repetição. João Medeiros FATERN

Linguagem C Estruturas de Repetição

Algoritmos e Estruturas de Dados I

Maratona de Programação

CAPÍTULO V. Estruturas de Repetição CAPÍTULO V ESTRUTURAS DE REPETIÇÃO. Estrutura de Repetição com Teste no Início: E QUA TO-FAÇA...

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Controle de Fluxo Comandos de repetição: while e do-while

Lista de Exercício 03 Estrutura de Repetição

Estruturas de Repetição Parte I ENQUANTO-FAÇA

Programação II. Victor Amorim dos Santos

Algoritmos - 5. Alexandre Diehl. Departamento de Física - UFPel

Estruturas de Repetição Parte I ENQUANTO

UNIDADE 4 ESTRUTURAS DE CONTROLE

Linguagem de Programação Java Terceira aula. Prof. Rogério Albuquerque de Almeida

Estrutura Condicional

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

COMANDOS DE REPETIÇÃO (ENQUANTO, REPITA E PARA)

LISTA DE EXERCÍCIO 1 CONTROLE DE FLUXO JAVA

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Amanda Gondim de Oliveira

Lista de Exercícios 3

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Exercícios de Fixação 01 - Prof.ª Myriam Algoritmos : Declarações de Variáveis, Operadores e seqüências simples

UNIVERSIDADE ESTADUAL VALE DO ACARAÚ EXERCÍCIOS RESOLVIDOS Estruturas de Repetição

Computação eletrônica: Estruturas de repetição

3ª Lista de Exercícios de Programação I

Exercícios Repetição

3) Suponha as seguintes declarações e atribuições de valores em um algoritmo qualquer: Quais os resultados das expressões abaixo?

Instituto de Computação Programação de Computadores (TCC00326)

... contador = contador + 1; //contador++; ... <fim_da_estrutura_de_repetição> soma = 0; <estrutura_de_repetição_com_variável_x> soma = soma + x;

Lista de Exercícios 1 Algoritmos, Pseudocódigo e Fluxograma

Estruturas de Repetição

ESTRUTURAS DE CONTROLE

Estruturas de controle: Estrutura de DECISÃO

Universidade Veiga de Almeida Algoritmos e Linguagem I

Desenvolvimento de Aplicações Desktop

Programação de Computadores:

Programação de Computadores. Professor Ilaim Costa Junior

para / for (com teste numérico) enquanto / while (com teste lógico no início) repita até que / do...while (com teste lógico no fim)

69) Acrescentar uma mensagem de VALOR INVÁLIDO no exercício [68], caso o segundo valor informado seja ZERO.

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Estrutura de decisão

Aula 4 Oficina de Programação Algoritmos - Parte 3. Profa. Elaine Faria UFU

Estrutura de Repetição C++

Algoritmos: Estruturas de Controle

Programação de Computadores I. Linguagem C Estruturas de Repetição

Parte I - Expressões lógicas e operadores

INFORMÁTICA APLICADA AULA 05 ALGORITMOS

PDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I)

LINGUAGEM DE PROGRAMAÇÃO

Linguagem C Estruturas de Repetição

Programação de Computadores III

CAPÍTULO V. Estruturas de Repetição CAPÍTULO V ESTRUTURAS DE REPETIÇÃO. Estrutura de Repetição com Teste no Início: E QUA TO-FAÇA...

Programação de Computadores

Estruturas de Repetição

Aula 4 Estruturas de Controle

Exercícios: Comandos de Repetição

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de repetição. Prof. Alex Camargo

Python 3.x Estrutura de Repetição while

Fluxogramas. Leandro Tonietto ago-09

INSTRUÇÕES DE REPETIÇÃO

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

9. Comando de repetição com variável de controle (para.. de.. até.. faça)

Lista 01 Estruturas de Repetição

Português Estruturado (VISUALG) Repetição

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++

Resumindo As estruturas de repetição são utilizadas quando necessitamos realizar comandos diversas vezes

Algoritmos I Aula 10 Estrutura de controle: repetição

Lista de Exercícios Estrutura de Repetição

CAPÍTULO V. Estruturas de Repetição CAPÍTULO V ESTRUTURAS DE REPETIÇÃO. Estrutura de Repetição com Teste no Início: ENQUANTO-FAÇA

CURSO BÁSICO DE PROGRAMAÇÃO AULA 6. Revisão Laços de Repetição

Linguagem C ESTRUTURA DE CONTROLE

LÓGICA DE PROGRAMAÇÃO. Estrutura de Repetição Determinada e Indeterminada. Sérgio Carlos Portari Júnior

Transcrição:

Estruturas de repetição IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná

Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída de dados pelo dispositivo padrão Estruturas condicionais e de decisão

Exemplo Problema: Faça um algoritmo para imprimir todos os números inteiros de 1 até 4

Exemplo Problema: Faça um algoritmo para imprimir todos os números inteiros de 1 até 4 nome: imprimirde1a4 inicio imprima( 1 ); imprima( 2 ); imprima( 3 ); imprima( 4 ); fim

Um pouco mais de flexibilidade... Novo problema: Faça um algoritmo que imprima todos os números inteiros de 1 até 100 nome: imprimirde1a100 inicio imprima( 1 ); imprima( 2 ); imprima( 3 ); imprima( 4 );... imprima( 100 ); fim

Mais um pouco de flexibilidade... Novo problema: Faça um algoritmo que imprima todos os números inteiros de 1 até um número informado pelo usuário?

Solução 1 nome: imprimirde1ax inicio inteiro: num; imprima( Informe a quantidade de números: ); leia(num); fim se (num >= 1) então imprima( 1 ); fim se se (num >= 2) então imprima( 2 ); fim se... [até onde o programador conseguir escrever]

Solução 1 Limitada pelo número de comparações que o programador prever E sempre haverá um número maior do que ele previu O tamanho do programa será potencialmente grande A solução 1 não resolve completamente o problema proposto

Solução 2 Precisamos de estruturas de repetição nome: imprimirde1ax inicio inteiro: num, contador; imprima( Informe a quantidade de números: ); leia(num); para (contador<-1; contador<=num; 1) faça imprima(contador); fim para fim

Estruturas de repetição Permite a execução por repetidas vezes de um dado bloco de código Toda estrutura de repetição tem uma condição para finalização da repetição. Pode ser: Um dado número de repetições Uma condição booleana que deve ser atendida para continuar a repetição Sem uma condição de finalização o programa continuaria executando por tempo indeterminado

Tipos de repetição Repetição com teste no início enquanto (condição) faça Repetição com teste no fim repita... até (condição) Repetição com variável de controle para (variável de controle em um intervalo) faça

Repetição com teste no início Utilizado quando se deseja repetir um comando ou bloco de comandos enquanto uma certa condição for verdadeira enquanto (condição) faça comando ou {bloco de comandos} fim enquanto Dica: é indispensável que dentro do escopo do enquanto haja uma operação que, dada uma certa situação, torna a condição do enquanto falsa. Dessa maneira sabemos que a repetição será finalizada em algum momento

Passo-a-passo Sequência de execução enquanto (condição) faça comando ou {bloco de comandos} fim enquanto... outros comandos... Etapa 1: testa a condição. Se for verdadeira vai para a etapa 2; Senão, encerra a repetição e continua o programa a partir do fim enquanto Etapa 2: 1. executa comando ou bloco de comandos 2. volta para a Etapa 1

Repetição com teste no início Exemplos: repetição correta inicio real: valor; imprima( Informe o novo valor ou um valor negativo para encerrar: ); leia(valor); enquanto (valor >= 0) faça imprima( 10% de juros:, 1.1*valor); imprima( Informe o novo valor ou um valor negativo para encerrar: ); leia(valor); fim enquanto fim

Repetição com teste no início Exemplos: repetição com problema na condição de parada inicio logico: continuar; real: valor; continuar <- verdadeiro; enquanto (continuar) faça imprima( Informe o novo valor: ); leia(valor); imprima( 10% de juros:, 1.1*valor); fim enquanto fim

Atividade 1 Um certo cidadão A tem 1,5 m de altura e cresce 2 centímetros por ano, enquanto um outro cidadão B tem 1,10 m e cresce 3 centímetros por ano. Construa um algoritmo que calcule e imprima quantos anos serão necessários para que o cidadão B seja maior que o cidadão A.

Repetição com teste no fim Utilizado quando se deseja repetir um comando ou bloco de comandos enquanto uma certa condição for verdadeira (como no enquanto) A diferença é que o bloco de comandos do escopo do repita será executado pelo menos a primeira vez repita comando ou {bloco de comandos} até (condição) Dica: no repita, a condição define o critério de parada, já no enquanto a condição define o critério de continuação

Passo-a-passo Sequência de execução repita comando ou {bloco de comandos} até (condição)... outros comandos... Etapa 1: Executa comando ou bloco de comandos Etapa 2: testa a condição. Se for falsa vai para a etapa 1; Senão, encerra a repetição e continua o programa a partir do fim da repetição

Repetição com teste no fim Exemplo inicio real: valor; logico: continuar; repita imprima( Informe o novo valor: ); leia(valor); imprima( 10% de juros:, 1.1*valor); imprima( Deseja fazer outro cálculo? ); leia(continuar); até (não continuar) fim

Atividade 2 Um cinema possui capacidade de 100 lugares. Certo dia, cada expectador respondeu a um questionário no qual constava: Sua opinião sobre o filme 5 ÓTIMO 4 BOM 3 REGULAR 2 RUIM 1 PÉSSIMO Idade Fazer um algoritmo que receba estes dados como entrada e calcule e imprima: a porcentagem de respostas ótimo, bom, regular, ruim, péssimo a média de idades das pessoas que responderam ruim a maior idade das pessoas que responderam péssimo

Repetição com variável de controle Utilizado quando se deseja repetir um comando ou bloco de comandos, utilizando uma variável de controle, que tem seu valor aumentado/diminuído a cada repetição para (inicialização; condição; passo) faça comando ou {bloco de comandos} fim para Onde: Inicialização: variável e seu valor inicial. Ex. cont<-1 Condição: condição para repetir. Ex. cont<=10 Passo: aumento/diminuição a cada repetição. Ex. 2

Passo-a-passo para (inicialização; condição; passo) faça comando ou {bloco de comandos} fim para... outros comandos... Sequência de execução Etapa 1: executa os comandos da inicialização Etapa 2: testa a condição. Se for verdadeira vai para a etapa 3; Senão, encerra a repetição e continua o programa a partir do fim para Etapa 3: executa o comando ou bloco de comandos Etapa 4: Executa os comandos no passo Vai para a etapa 2

Repetição com variável de controle Exemplo: repetição correta nome: multiplosde5 início inteiro: cont, nummultiplos; imprima( Informe quantos múltiplos de 5 deseja conhecer: ); leia(nummultiplos); para (cont<-1; cont<=nummultiplos; 1) faça imprima(cont, x 5 =, cont*5); fim para fim

Atividade 3 Construa um algoritmo que imprima todos os expoentes em um intervalo, de um dado número. O usuário deve informa tanto número quanto o valor inicial e final do intervalo. Exemplo: Número 4 Início: 2 Fim: 5 4^2 é: 16 4^3 é: 64 4^4 é: 256 4^5 é: 1024

Atividade 3+ Agora altere o algoritmo anterior para que ele aceite que o início seja maior que o fim também. Exemplo: Número 4 Início: 5 Fim: 2 4^5 é: 1024 4^4 é: 256 4^3 é: 64 4^2 é: 16

Atividade 3++ Faça uma algoritmo que imprima uma matriz n x m, onde n e m são informados pelo usuário e o valor de cada célula é dado por: 0-1 -2-3 -4-1 -1-1 -1-1 -2-1 0 1 2-3 -1 1 3 5-4 -1 2 5 8

Exemplo comparativo Problema: Faça um algoritmo que calcule 2 n, sendo n um número inteiro maior que zero, informado pelo usuário. Restrição: não é permitido utilizar ^ ou **. Implemente o algoritmo em versões diferentes. Utilize: Versão 1 enquanto... faça Versão 2 repita... até Versão 3 para... faça

Versão 1 enquanto... faça nome: calcularpot2 início inteiro: contador, resultado, expoente; imprima( Informe o expoente: ); leia(expoente); contador <- 1; resultado <- 1; enquanto (contador <= expoente) faça resultado <- resultado*2; contador <- contador+1; fim enquanto imprima( Resultado:, resultado); fim

Versão 2 repita... até nome: calcularpot2 início inteiro: contador, resultado, expoente; imprima( Informe o expoente: ); leia(expoente); contador <- 1; resultado <- 1; repita resultado <- resultado*2; contador <- contador+1; até (contador > expoente) imprima( Resultado:, resultado); fim

Versão 3 para... faça nome: calcularpot2 início inteiro: contador, resultado, expoente; imprima( Informe o expoente: ); leia(expoente); resultado <- 1; para (contador<-1; contador<=expoente; 1 ) faça resultado <- resultado*2; fim para imprima( Resultado:, resultado); fim

Resumindo... Uso O para é mais apropriado quando já se sabe (através do usuário ou definindo-se o total através de uma constante) o número de iterações (repetições). O enquanto é mais apropriando quando a condição de parada é inesperada, isto é, não se sabe previamente o total de repetições. (Ex. Parar quando o usuário informar o valor -1 ) O repita também é mais apropriado quando a condição de parada é inesperada, mas o laço precisa ser executado ao menos 1 vez. Conversão entre estruturas Todo enquanto pode ser reescrito como um repita, e viceversa Todo para pode ser reescrito como um enquanto ou um repita, mas o contrário nem sempre é viável (não de uma maneira eficiente)

Exercícios 1. Faça um algoritmo que, dado um número inteiro positivo informado pelo usuário, calcule n! 2. A conversão de graus Fahrenheit para centígrados é obtida pela fórmula C = 5/9*(F-32). Escreva um algoritmo que calcule e imprima na tela uma tabela de graus centígrados em função de graus Fahrenheit sendo que os graus Fahrenheit variam de 50 a 150 de 1 em 1. 3. Modifique o algoritmo anterior para que imprima a conversão dos ímpares de 50 a 150.

Exercícios 4. Faca um programa que imprima um menu de 4 pratos na tela e uma quinta opção para sair do programa. O programa deve imprimir os ingredientes do prato solicitado. O programa deve terminar quando for escolhido a quinta opção. 5. Faca um algoritmo que lê dois números inteiros positivos a e b. Utilizando laços, o seu algoritmo deve calcular e imprimir o valor a b. 6. Faca um programa que lê um número n e que n compute e imprima o valor i=1 n OBS: Não use formulas como a da soma de uma P.A.