Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Programação 1 3.10 – Estrutura de Repetição Condicional – sua função é controlar a repetição de um comando (ou de uma lista de comandos) um número indeterminado de vezes, ou enquanto uma condição for verdadeira. – A condição é um teste lógico similar ao que foi apresentado na estrutura de Desvio Condicional. Cuidado para não confundir as duas estruturas. – Para que isto possa acontecer precisamos adotar uma forma de informar ao computador o momento de encerrar a repetição. Isto pode ser feito com uso de “flag” (valor armazenado em uma variável, ou variáveis, utilizadas no teste lógico da Estrutura de Repetição Condicional, que faz com que o resultado do teste seja falso). – Sintaxe básica: enquanto (condição) faça <comando>; ou enquanto (condição) faça início <comando1>; <comando2>; <comando3>; fim; (comentário: o comando (ou lista de comandos) será executado enquanto o resultado do teste lógico for verdadeiro. Atenção: para que a estrutura funcione corretamente precisaremos garantir que um dos comandos que fazem parte da estrutura possa alterar o resultado do teste lógico, ou seja, altere o valor de uma ou mais variáveis utilizadas no teste. Existem várias formas de se fazer isto, veremos algumas delas nos exemplos a seguir). Algoritmo 17 – Fazer um algoritmo para escrever a soma de valores. Primeiro passo (como já visto em exemplos anteriores): compreensão e análise do problema proposto. Segundo passo: identificação de verbos e substantivos no enunciado e lista de ações encontradas: – escrever a soma Terceiro passo: busca por ações básicas e pelas necessidades para executá-las, vamos usar o raciocínio adotado em exemplos anteriores que resultam no uso de poucos espaços de memória. Teremos então: - soma � 0 - ler valor - soma ���� soma + valor - ler valor - soma ���� soma + valor - ler valor - soma ���� soma + valor - ler valor . . (repetiremos as ações até somar o último valor) . - soma � soma + valor - escrever soma Introdução à Programação 2 Podemos observar que neste caso a leitura e soma de valores irá se repetir “indefinidamente” ou até que seja informado que não há mais valores a serem somados. Para repetir um comando ou lista de comandos um número indeterminado de vezes poderemos usar a estrutura de repetição condicional, neste caso devemos nos lembrar que, conforme já citado anteriormente, precisaremos garantir que algum comando interno à estrutura possa alterar o resultado do teste lógico feito no início da mesma. Para encontrar uma solução para o caso vamos pensar no “mundo real”, buscar um exemplo que conhecemos, o da calculadora. Em uma calculadora podemos verificar que para somar valores usamos a seguinte sequência de ações: Informamos o 1º valor Pressionamos a tecla “+” Informamos o 2º valor Pressionamos a tecla “+” .... (vamos repetindo estes passos até chegar ao último valor que desejamos somar, então) Informamos o último valor Pressionamos a tecla “=” (obtendo assim o resultado da soma) Podemos criar uma estrutura similar utilizando a estrutura de repetição condicional, onde iremos informar um valor e em seguida um sinal para saber se temos novo valor o se é para encerrar a entrada de valores. Vamos que definir que se queremos informar um valor e somá-lo digitaremos “S” e para encerrar a entrada e soma de valores digitaremos “N”, inicialmente iremos armazenar “S” em um espaço da memória (considerando que se o programa foi colocado em execução é porque queremos somar valores). - somar � ‘S’ - soma � 0 - ler valor - soma ���� soma + valor - somar ���� ‘S’ (pois queremos informar mais valores) - ler valor - soma ���� soma + valor - somar ���� ‘S’ (pois queremos informar mais valores) - ler valor - soma ���� soma + valor - somar ���� ‘S’ (pois queremos informar mais valores) . . (repetiremos as ações até armazenar e somar o último valor) . - ler valor - soma ���� soma + valor - somar ���� ‘N’ (pois não queremos informar mais valores) - escrever soma Introdução à Programação 3 Observamos que podemos identificar, agora, uma repetição de ações, e podemos encerrá-la informando um valor diferente de ‘S’ quando quisermos. O resultado de nossa busca por ações básicas será então: - somar � ‘S’ - soma � 0 - repetir enquanto o espaço “somar” armazenar o valor ‘S’ - ler valor - soma � soma + valor - armazenar ‘S’ ou ‘N’’ no espaço somar - escrever soma Quarto passo: algoritmo programa SOMA; variáveis V, R : real; SOMAR : caracter; início escreva (‘ Programa para somar valores’); escreva (´Para finalizar a soma digite N, para somar mais um valor digite S’); SOMAR := ‘S’; R := 0; enquanto ( ( SOMAR = ‘S’) ou (SOMAR = ‘s’) ) faça início escreva (‘Digite o valor a ser somado e tecle enter’); leia ( V ); R := R + V; escreva (‘Digite ‘S’ para informar novo valor ou ‘N’ para o resultado’); leia (SOMAR); fim; escreva ( ‘ A soma dos valores é : ’ , R ); fim. Outra forma possível para uso da estrutura de repetição condicional pode ser observada a partir do funcionamento de um caixa de supermercado. Vamos fazer a análise deste caso no algoritmo seguinte. Algoritmo 18 – Fazer um algoritmo para somar preços de produtos. Observando como funciona um caixa de supermercado notamos que a soma de preços dos produtos é “aberta” quando o funcionário passa o primeiro produto pelo leitor de códigos de barras e é fechada quando, não tendo mais produtos, ele digita uma tecla. O que acontece no caso é que o programa, após seu início, fica esperando um código de barras válido, quando esta informação entra através do leitor ótico o preço do produto é buscado em um banco de dados. Este primeiro preço é usado para o teste lógico da estrutura de repetição. Sendo ele válido, ele é somado ao subtotal anterior (no caso zero) e é solicitado Introdução à Programação 4 um novo produto (que é informado através do leitor ótico). Sendo este novo produto válido o teste a ser executado será mais uma vez válido e o preço é somado. Ao fim do processo, não havendo mais produtos, o funcionário digita uma tecla, que irá produzir um valor inválido, e a repetição de soma e leitura é encerrada. Vamos montar as nossas ações básicas a partir da observação do “mundo real”. - soma � 0 - ler um preço - repetir enquanto “preço for válido” - soma � soma + preço - ler um preço - escrever soma Obs.: um preço válido será um preço maior que zero, então para informarmos um preço inválido, que irá encerrar a repetição, podemos digitar zero ou um valor negativo para o mesmo. Note ainda que desta forma estaremos também garantindo que um comando interno da estrutura de repetição condicional poderá mudar o resultado do teste lógico de verdadeiro para falso. O resultado final do algoritmo será: programa CAIXA; variáveis P, S : real; início escreva (‘ Programa para somar preços’); escreva (´Para finalizar a soma digite zero ou valor negativo para o preço’); S := 0; escreva (‘Digite o preço do primeiro produto e tecle enter’); leia ( P ); enquanto ( P > 0 ) faça início S := S + P; escreva (‘Digite o preço do produto seguinte e tecle enter’); escreva (‘para encerrar digite preço menor ou igual a zero’); leia ( P ); fim; escreva ( ‘ A soma dos preços é : ’ , S ); fim. Algoritmo 19 – Fazer um algoritmo para escrever a média de um conjunto de valores. Algoritmo 20 – Fazer um algoritmo para escrever a soma e a média de um conjunto de valores. Algoritmo 21 – Fazer um algoritmo para somar os preços de um produto segundovárias cotações e escrever o maior valor, o menor valor e a média de preços.
Compartilhar