1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste...

24
1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica Py e Deise Saccol

Transcript of 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste...

Page 1: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

1

Introdução a Programação

Estruturas de repetição

Prof. Luis Otavio Alvares

Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica Py e Deise Saccol

Page 2: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

2

• ESTRUTURAS DE REPETIÇÃO– Se uma ação se repete em um algoritmo, em vez

de escrevê-la várias vezes, em certos casos podemos resumir anotando uma vez só e solicitando que ela se repita, usando uma das estruturas de repetição.

– Podemos executar uma ação (ou um conjunto de ações) um número definido ou indefinido de vezes, ou enquanto um estado permanecer ou até que um estado seja atingido.

– As principais estruturas de repetição são:• PARA...ATÉ...REPETIR• ENQUANTO...REPETIR• REPETIR...ENQUANTO

Lógica de programação

Page 3: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

3

Fluxograma de uma estrutura de repetição: Lógica de programação

INÍCIO

FIM

CONT <= 10?

Não

Sim

CONT = 1

CONT = CONT + 1

Neste ponto do algoritmo podemos incluir qualquer conjunto de instruções que quisermos repetir 10 vezes.

Page 4: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

4

Enquanto...Repetir

Enquanto (condição) repetir

<instruções>

Repetir...EnquantoRepetir <instruções>

enquanto (condição)

Para...até...repetirPara <variavel> = <inicio> até <fim> repetir

<instruções>

Lógica de programaçãoEstruturas de repetição

condição

instrução

V

F

condição

instrução

V

F

Page 5: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

5

– Até agora para vários valores informados pelo usuário líamos cada valor de forma separada

– Por exemplo, no algoritmo para o cálculo da média de quatro números, líamos 4 valores em 4 variáveis diferentes.

Mas também poderíamos: • ler um valor para 1 variável e repetir isso 4 vezes,

adicionando cada valor lido ao total em uma outra variável, a cada repetição.

• Após as 4 repetições, a soma dos 4 números estaria acumulada na outra variável, bastando uma instrução para dividi-la por 4 e assim obter a média.

Lógica de programação

Page 6: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

6

Exemplo Para• Ler 50 números fornecidos pelo usuário e calcular e

exibir a média.

Pseudocódigo:1. Início2. Soma = 0 <<< o acumulador precisa ter um

valor inicial

3. Para cont =1 até 50 repetir 3.1 ler num3.2 soma = soma + num4. Media = soma / cont5. Mostrar media6. Fim

Page 7: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

7

PARA...ATÉ...REPETIR– Formato:

Para <variável> = <valor inicial> até <valor final> repetir

<ações>• Significado: A <variável> é inicializada com <valor

inicial>. Após cada execução das <ações>, é somado 1 à <variável> e repete-se as <ações>, continuando assim até que a <variável> atinja o <valor final>.

• Esta estrutura de repetição cria um contador automático, que nós não precisamos mandar incrementar.

• Ao usar esta estrutura já está subentendido que a <variável> inicia com <valor inicial> e é incrementada a cada ciclo (podendo-se inclusive aproveitar seu valor dentro do ciclo), e que as <ações> serão repetidas até que a <variável> tenha o <valor final>.

Lógica de programação

Page 8: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

8

• Exemplo da estrutura PARA...ATÉ...REPETIR:“Mostrar os quadrados dos inteiros de 3 a 11.”

– Pseudocódigo:Para CONT = 3 até 11 repetir

Mostrar (CONT *CONT)

– Usamos esta estrutura quando sabemos quantas vezes temos de repetir certas ações, mesmo que o número de vezes só seja conhecido durante a execução. Por exemplo:“Perguntar ao usuário de quantos valores ele quer calcular a média. Ler os números e calcular a média.”

Lógica de programação

Isto será repetido 9 vezes.

Page 9: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

9

Lógica de programação

E se eu quisesse calcular a média de N números?

– Para esse problema construímos um algoritmo que será genérico, ou seja, que poderá ser usado para calcular a média de quantos números se quiser!

– Pseudocódigo:1- Início2- Mostrar “De quantos valores você quer calcular a média?”3- Ler QUANT (aqui se descobre quantas repetições)4- SOMA = 05- Para CONT = 1 até QUANT repetir5.1- Ler N (aqui é lido cada número, um em cada ciclo)5.2- SOMA = SOMA + N (aqui os valores lidos são acumulados)6- MEDIA = SOMA / QUANT (isto está fora do loop)7- Mostrar MEDIA8- Fim

Page 10: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Exercício

• Faça um algoritmo para calcular e escrever o valor de S:

10

50

99...

4

7

3

5

2

3

1

1S

Page 11: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Exemplo de solução

11

1. Início2. S=03. Para I=1 ate’ 50 repetir3.1 S=S+(I*2-1)/I4. Mostrar S5. Fim

Page 12: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Exercício

12

Faça um algoritmo para calcular os 20 primeiros termos da série de Fibonacci:

0, 1, 1, 2, 3, 5, 8, 13, ….

com F0=0 e F1=1

Page 13: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Exemplo de solução

1. Início2. Mostrar 03. Mostrar 14. n_2=05. n_1=16. Para I=3 até 20 repetir6.1 n=n_1 + n_26.2 mostrar n 6.3 n_2=n_16.4 n_1=n7. Fim

13

Page 14: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Exercício

Faça um algoritmo para calcular a soma dos números primos menores que 100

Faça um teste de mesa para testar a sua solução

14

Page 15: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Exemplo de solução

1. Início2. Para I=1 até 99 repetir2.1 eprimo=12.2 para J=2 até I-1 repetir2.2.1 se I%j=0 então eprimo=02.3 se eprimo=1 então mostrar I3. Fim

15

Page 16: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Estruturas de repetição em C

16

Page 17: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

17

Estrutura de repetição: comando for

• Comando for for (var=valor inicial; condição; incremento/decremento)

comando;

for (var=valor inicial; condição; incremento/decremento) { comando1;

comando2;comando3;

}

Exemplo:for (cont=3; cont<=11; cont++) printf (“%d”,cont);

Page 18: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Comando for

for (var=valor inicial; condição; inc/dec) comando1;

18

Não esquecer dos parênteses

O comando1 será executado enquanto a condição for verdadeira

O incremento ou decremento é executado automaticamente após a execução do comando1

Page 19: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

19

Exercício

Escrever um algoritmo que lê 5 valores, e conta quantos destes valores são negativos, escrevendo esta informação.

#include <stdio.h>#include <stdlib.h>main(){ int numero, cont, neg=0; for (cont=0; cont<5; cont++) { printf ("\nDigite um numero inteiro: "); scanf ("%d", &numero); if (numero<0) neg=neg+1; } printf ("\nO numero de valores negativos e’ %d\n", neg); system("pause");}

Page 20: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Cuidado!!!

• Se o valor da variável de controle do comando for for alterado explicitamente dentro do bloco de repetição …

• Exemplo: saída:

20

#include <stdio.h>#include <stdlib.h>main(){ int I; for (I=1; I<=10; I++){ printf (“%d\n",I); if (I==5) I=8; }system("pause");}

12345910Press any key to continue . . .

Page 21: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Lembre-se!!!

Qual o valor da variável de controle do for após a execução do comando for? O valor que foi testado e não passou na condição.

Exemplo: saída:

21

#include <stdio.h>#include <stdlib.h>main(){ int cont; for (cont=1; cont<=10; cont=++){ printf ("%d\n", cont); } printf("valor apos o FOR: %d\n",cont); system("pause");}

12345678910valor apos o FOR: 11Press any key to continue...

Page 22: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Só use quando estritamente necessário:

E para forçar o término da repetição? Use um break.

Exemplo : saída:

22

12345apos o FOR: 5Press any key to continue...

#include <stdio.h>#include <stdlib.h>main(){ int I; for (I=1; I<=10; I=I+1){ printf ("%d\n",I); if (I==5) break; } printf(“apos o FOR: %d\n",I); system("pause");}

Atenção para o valor de saída da variável de controle

Page 23: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Cuidado!!

• Faça sempre um teste de mesa com os valores inicial e final do loop do comando for, pois a maioria dos erros são na primeira ou na última execução do laço.

• Erros comuns:– Executar o laço (repetição) uma vez a mais

ou a menos que o desejado– Atribuir o valor inicial de alguma variável

dentro do laço, quando deveria ser fora– Não atribuir o valor inicial de uma variável

(principalmente em for s aninhados)23

Page 24: 1 Introdução a Programação Estruturas de repetição Prof. Luis Otavio Alvares Parte deste material é adaptado de lâminas das Profas. Patrícia Jaques, Mônica.

Exercícios

• Faça um programa para calcular e escrever o valor de S:

• Faça um programa para calcular os 20 primeiros termos da série de Fibonacci

• Faça um programa para calcular os números primos menores que 100

24

50

99...

4

7

3

5

2

3

1

1S