• Nenhum resultado encontrado

11 a Aula ESTRUTURAS DE REPETIÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "11 a Aula ESTRUTURAS DE REPETIÇÃO"

Copied!
12
0
0

Texto

(1)

11

a

Aula – ESTRUTURAS DE REPETIÇÃO

• Estrutura de repetição: Repetir um determinado trecho de um programa

um certo número de vezes

tipo Laço Contado ("

for

" em Linguagem C)

Fluxograma convencional

Forma 1 - um único comando a ser repetido

(<var>:<início>; <fim>; <incr>) <comando_composto1> entrada saída

Forma 2 – dois ou mais comandos a serem repetidos

(<var>:<início>;

<fim>;

<incr>)

<comando_composto1>

entrada

<comando_composto2>

<comando_compostoN>

saída

Linguagem C

Forma 1 - um único comando a ser repetido

for

(inicialização;condição;incremento)

<comando_composto1 ou instrução1>;

Forma 2 – com dois ou mais comandos a serem repetidos

for(inicialização;condição;incremento) { <comando

_composto

1 ou instrução1>; <comando

_composto

2 ou instrução2>; …

<comando

_composto

N ou instruçãoN>; }

Podemos ver que o

for

executa a inicialização incondicionalmente e testa a condição. Se a

condição for falsa ele não faz mais nada. Se a condição for verdadeira ele executa o(s) comando(s)

(ou instrução), o incremento e volta a testar a condição. Ele fica repetindo estas instruções até que

a condição seja falsa. Abaixo vemos um programa que

realiza a leitura e soma de 10 números.

(2)

Exemplo 1: Algoritmo que realiza a leitura e soma de 10 números reais usando a estrutura de

repetição do tipo laço contado "para" ("for" em Linguagem C).

início "Algoritmo Somar 10 numeros" Soma ← 0.0 (C0NT:1;10;1) "Numero=" Numero Soma←Soma+Numero "Resultado da Soma=", Soma fim #include <iostream.h> #include <stdlib.h> #include <stdio.h> //Algoritmo Soma10 float Numero,Soma; int CONT; int main() { Soma=0.0;

printf("Algoritmo Somar 10 numeros\n");

for (CONT=1;CONT<=10;CONT++) {

printf("Numero="); scanf("%f",&Numero); Soma=Soma+Numero; }

printf("\n Resultado da Soma=%f\n",Soma); system("PAUSE");

return 0;

}

Notar que a instrução

Soma ←

0.0

faz com que a variável

Soma

seja inicializada com o valor

zero. Esta instrução é necessária, pois as variáveis, apesar de declaradas, podem estar

armazenando valores "estranhos" ou mesmo aleatórios. Experimente verificar!

Exemplo de saída do programa acima:

Algoritmo Somar 10 numeros Numero=10 Numero=12 Numero=14 Numero=15 Numero=2 Numero=45 Numero=34 Numero=3 Numero=21 Numero=3 Resultado da Soma=159.000000

(3)

Exemplo 2: Algoritmo que realiza a Leitura e Soma de

N

números reais usando a estrutura de

repetição tipo laço contado "for".

Algoritmo em fluxograma convencional e tradução para a Linguagem C

N início "Algoritmo Somar N numeros" Soma←0.0 (C0NT:1;N;1) "Numero" Numero Soma←Soma+Numero "Resultado da Soma=", Soma fim "Entre com o valor

de N= " //Algoritmo SomaN #include <iostream.h> #include <stdlib.h> #include <stdio.h> float Numero,Soma; int CONT,N; int main() { Soma=0.0;

printf("Algoritmo Somar N numeros\n"); printf("Entre com o valor de N= "); scanf("%d",&N); for(CONT=1;CONT<=N;CONT++) { printf("Numero= "); scanf("%f",&Numero); Soma=Soma+Numero; }

printf("\n Resultado da Soma=%f\n",Soma); system("PAUSE");

return 0; }

Exemplo de saída do programa acima:

Algoritmo Somar N numeros Entre com o valor de N= 7 Numero= 112 Numero= 2 Numero= 33 Numero= 22 Numero= 44 Numero= 43 Numero= 55 Resultado da Soma=311.000000

(4)

tipo

Laço Condicional Enquanto ("

while

" em Linguagem C)

Fluxograma convencional

Forma 1 - um único comando a ser

repetido

<comando_composto1>

entrada

V

enquanto(condição)

Forma 2 – dois ou mais comandos a serem repetidos <comando_composto1> entrada

V

enquanto(condição) <comando_compostoN> <comando_composto2>

Linguagem C

Forma 1 - um único comando a ser repetido while(condição)

<comando_composto1 ou instrução1>;

Forma 2 – com dois ou mais comandos a serem repetidos while(condição) { <comando_composto1 ou instrução1>; <comando_composto2 ou instrução2>; … <comando_compostoN ou instruçãoN>; }

Podemos ver que a estrutura

while

testa uma condição. Se esta for verdadeira a declaração

é executada e faz-se o teste novamente, e assim por diante. Assim como no caso do

for

, podemos

fazer um loop infinito. Para tanto basta colocar uma expressão eternamente verdadeira na

condição. Pode-se também omitir a declaração e fazer um loop sem conteúdo. Vamos ver um

exemplo do uso do

while

. Abaixo vemos um programa que

realiza a leitura e soma de 10

números, similar ao exemplo 1

. Veja que ele seria implementado mais naturalmente com um for

...

(5)

Exemplo 3: Algoritmo que realiza a Leitura e Soma de 10 números reais usando a estrutura

de repetição tipo laço condicional "enquanto" ("while" em Linguagem C).

Algoritmo em fluxograma convencional e tradução para a Linguagem C

início "Algoritmo Somar 10 numeros" Soma←0.0 "Numero" Numero Soma←Soma+Numero "Resultado da Soma=", Soma fim CONT<=10 V CONT ← 1 CONT←CONT+1 equivale ao CONT++ #include <iostream.h> #include <stdlib.h> #include <stdio.h> //Algoritmo Soma10w float Numero,Soma; int CONT; int main() { CONT=1; Soma=0.0;

printf("Algoritmo Somar 10 numeros\n");

while (CONT<=10) {

printf ("Numero="); scanf("%f",&Numero); Soma=Soma+Numero;

CONT=CONT+1; //equivale ao CONT++ }

printf("Resultado da Soma=%f\n",Soma); system("PAUSE");

return 0; }

Notar que a instrução

CONT ←1

faz com que a variável

CONT

seja inicializada com o valor

um. Esta instrução é necessária, pois é ela a responsável pelo controle do número de vezes

que as instruções, contidas pelo comando while, serão executadas.

Exemplo de saída do programa acima:

Algoritmo Somar 10 numeros Numero=12 Numero=14.5 Numero=11.03 Numero=434 Numero=22.65 Numero=31 Numero=3 Numero=1.5 Numero=132 Numero=204.2 Resultado da Soma=865.880000

(6)

Exemplo 4: Algoritmo que realiza a Leitura e Soma de

N

números reais usando a estrutura de

repetição tipo laço condicional "enquanto" ("while" em Linguagem C).

Algoritmo em fluxograma convencional e tradução para a Linguagem C

N início "Algoritmo Somar N numeros" Soma←0.0 "Resultado da Soma=", Soma fim "Entre com o valor

de N " "Numero" Numero Soma←Soma+Numero CONT<=N V CONT++ CONT ← 1 //Algoritmo SomaNw #include <iostream.h> #include <stdlib.h> #include <stdio.h> float Numero,Soma; int CONT,N; int main() { CONT=1; Soma=0.0;

printf("Algoritmo Somar N numero\n"); printf("Entre com o valor de N "); scanf("%d",&N); while(CONT<=N) { printf("Numero= "); scanf("%f",&Numero); Soma=Soma+Numero; CONT++; }

printf("\n Resultado da Soma=%f",Soma); system("PAUSE");

return 0; }

(7)

Exemplo 5: Algoritmo que realiza a leitura, soma de

N

números reais e calcule a média,

usando a estrutura de repetição tipo laço contado para ("for" em Linguagem C).

Algoritmo em fluxograma convencional e tradução para a Linguagem C

N início "Algoritmo media N numeros" Soma←0.0 (C0NT:1;N;1) "Numero" Numero Soma←Soma+Numero "Resultado da Soma=", Soma fim "Entre com o valor

de N =" media←Soma/N "Resultado da Media=", media //Algoritmo mediaf #include <iostream.h> #include <stdlib.h> #include <stdio.h> float Numero,Soma,media; int CONT,N; int main() { Soma=0.0;

printf("Algoritmo media N numeros\n"); printf("Entre com o valor de N= "); scanf("%d",&N); for(CONT=1;CONT<=N;CONT++) { printf("Numero= "); scanf("%f",&Numero); Soma=Soma+Numero; }

printf("\n Resultado da Soma=%f",Soma); media=Soma/N;

printf("\n Resultado da media=%f",media); system("PAUSE");

return 0; }

Exemplo de saída do programa acima:

Algoritmo Somar N numeros Entre com o valor de N= 5 Numero= 10 Numero= 12 Numero= 14 Numero= 15 Numero= 21 Resultado da Soma=72.000000 Resultado da media=14.400000

(8)

Exemplo 6: Algoritmo que realiza a leitura, soma de

N

números reais e calcule a média,

usando a estrutura de repetição tipo laço condicional enquanto ("while" em

Linguagem C).

Algoritmo em fluxograma convencional e tradução para a Linguagem C

N início "Algoritmo media N numeros" Soma←0.0 "Resultado da Soma=", Soma fim "Entre com o valor

de N =" media←Soma/N "Resultado da Media=", media "Numero" Numero Soma←Soma+Numero CONT<=N V CONT←CONT+1 CONT ← 1 //Algoritmo mediaw #include <iostream.h> #include <stdlib.h> #include <stdio.h> float Numero,Soma,media; int CONT,N; int main() { CONT=1; Soma=0.0;

printf("Algoritmo media N numeros\n"); printf("Entre com o valor de N= "); scanf("%d",&N); while(CONT<=N) { printf("Numero= "); scanf("%f",&Numero); Soma=Soma+Numero; CONT++; }

printf("\n Resultado da Soma=%f",Soma); media=Soma/N;

printf("\n Resultado da media=%f",media); system("PAUSE");

return 0; }

(9)

Exemplo 7: Algoritmo que realiza a leitura de um número

N

inteiro e calcule o fatorial de

N

cuja definição é

N

!=(

N

-1)!

N

, usando as estruturas de repetição:

tipo laço contado ("for" em Linguagem C);

tipo laço condicional ("while" em Linguagem C).

Algoritmo em fluxograma convencional e tradução para a Linguagem C

Laço contado (for)

N início "Algoritmo fatorial" fat←1 (I:1;N;1) fat ← fat*I "N!=",fat fim "N= " #include <iostream.h> #include <stdlib.h> #include <stdio.h>

//Algoritmo fatorial for float fat;

int I,N; int main() {

fat=1;

printf("Algoritmo fatorial \n"); printf("N= "); scanf( "%d",&N); for(I=1;I<=N;I++) fat=fat*I; printf("\n N!=%f",fat); system("PAUSE"); return 0; }

Exemplo de saída do programa acima:

Algoritmo fatorial N= 5

N!=120.000000

(10)

Laço condicional (while)

N início "Algoritmo fatorial" fat←1 fat ← fat*I "N!=",fat fim "N= " I<=N V I ← I+1 I←1 #include <iostream.h> #include <stdlib.h> #include <stdio.h>

//Algoritmo fatorial while float fat; int I,N; int main() { I=1; fat=1;

printf("Algoritmo fatorial \n"); printf("N= "); scanf( "%d",&N); while(I<=N) { fat=fat*I; I++; } printf("\n N!=%f",fat); system("PAUSE"); return 0; }

(11)

Exemplo 8: Algoritmo fatorial com opção de repetição de cálculo. Um exemplo de uso de

while e for em um mesmo programa.

#include <iostream.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h> //arquivo header para uso da função getche() //Algoritmo fatorial for

float fat; int I,N;

char opcao='s'; //variavel tipo caracter int main() { while(opcao=='s' || opcao=='S') { I=1; fat=1;

printf("\nAlgoritmo fatorial"); printf("\nN= "); scanf( "%d",&N); for(I=1;I<=N;I++) fat=fat*I; printf("N!=%f",fat); printf("\n continua (s/n)? ");

opcao=getche(); //captura a tecla acionada

printf("\n"); }

system("PAUSE"); return 0;

}

Exemplo de saída do programa acima:

Algoritmo fatorial N= 5 N!=120.000000 continua (s/n)? s Algoritmo fatorial N= 10 N!=3628800.000000 continua (s/n)? n

(12)

Exercício proposto

Escreva abaixo o algoritmo em fluxograma convencional e tradução para a Linguagem C para

o cálculo da média sem definir a quantidade de números que deverão ser somados, de forma

diferente ao aplicado nos exemplos 5 e 6 onde o usuário precisava definir o valor de N.

início "Algoritmo media" Soma←0.0 "Resultado da Soma=", Soma fim media←Soma/CONT "Resultado da Media=", media "Numero (digite 0 para

parar)= " Numero Soma←Soma+Numero Numero≠0 V CONT++ CONT ← 0 Numero←1 //Algoritmo mediaw #include <iostream.h> #include <stdlib.h> #include <stdio.h> float Numero,Soma,media; int CONT; int main() { CONT=0; Soma=0.0; Numero=1;

printf("Algoritmo media \n"); while(Numero!=0)

{

printf("Numero(digite 0 p/ parar)= "); scanf("%f",&Numero);

Soma=Soma+Numero; CONT++;

}

printf("\n Resultado da Soma=%f",Soma); media=Soma/(CONT-1);

printf("\n Resultado da media=%f\n",media); system("PAUSE");

return 0; }

Referências

Documentos relacionados

Faça um algoritmo em C++ que solicite ao usuário que ele digite um numero e enquanto o valor digitado estiver entre 2 e 15 imprima o quadrado do número digitado. Faça um algoritmo

Devido à grande parcela de jovens que foram identificados entre as vítimas, é imprescindível a elaboração de programas de prevenção ao afogamento no ambiente escolar,

O espaço está organizado de forma a que cada responsável exerça a sua função com distanciamento entre as mesas de pelo menos dois metros e dispõem todas de um frasco de

• The definition of the concept of the project’s area of indirect influence should consider the area affected by changes in economic, social and environmental dynamics induced

Os critérios clínicos para o diagnóstico de DII incluem: duração crônica (&gt; 3 semanas) de sinais gastrointestinais, incluindo vômitos, diarreia e perda de

Ao final da operação da máquina, o programa imprime o total de tubos cortados e o número de tubos rejeitados, tal como mostrado no exemplo de execução do programa, a seguir?. Exemplo

Os dados experimentais de temperatura na secagem da pêra em estufa a 40 o C estão apresentados na Figura 6, assim como os valores calculados pelo modelo

ITEM Óleo do Motor A cada uso Primeira troca 20 horas A cada 3 meses ou 50 horas A cada 6 meses ou 100 horas A cada ano ou 300 horas Filtro de Ar Vela de Ignição Folga das