ufu universidade federal de uberlândia introduÇÃo a...
TRANSCRIPT
![Page 1: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/1.jpg)
INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL
Professora: Fabíola Gonçalves.
UFU Universidade Federal de Uberlândia
![Page 2: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/2.jpg)
AGENDA
Estrutura Repetição:
For
While
Do... While
Exercícios
![Page 3: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/3.jpg)
ESTRUTURAS DE CONTROLE DE FLUXO
Os comandos de controle de fluxo são a essência de
qualquer linguagem, porque governam o fluxo da
execução do programa. São poderosos e ajudam a
explicar a popularidade da linguagem. Podemos
dividir em três categorias:
A primeira consiste em instruções condicionais if e
switch.
A segunda são os comandos de controle de loop o
while, for e o do-while.
A terceira contém instruções de desvio
incondicional goto.
![Page 4: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/4.jpg)
COMANDOS DE REPETIÇÃO
Também chamados laços ou loops, estruturas de
repetição são comandos usados sempre que uma ou
mais instruções tiverem de ser repetidas enquanto
uma certa condição estiver sendo satisfeita.
Em linguagem C existem três comandos de
repetição:
–for
– while
– do-while
![Page 5: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/5.jpg)
O LAÇO FOR
Geralmente utilizado quando se deseja repetir
comando(s) por um número FIXO de vezes.
Sintaxe:
for (<inicialização>; <teste>; <incremento>)
<comando>
for (<inicialização>; <teste>; <incremento>)
{
<comando 1>
…
<comando n> }
![Page 6: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/6.jpg)
O LAÇO FOR - EXEMPLO
Exemplo 1:
for (i=0; i<256; i++)
printf(“%3d \t %c \n”, i, i);
Exemplo 2:
for (i=2; i<=9; i++)
{
for (j=1; j<=9; j++)
printf(“%d x %d = %2d \n”, i, j, i*j);
printf(“\n”);
}
![Page 7: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/7.jpg)
COMANDO FOR
Podemos omitir qualquer um de seus elementos
inicialização, condição ou incremento.
Ex.: for sem inicialização
![Page 8: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/8.jpg)
COMANDO FOR
Cuidado: for sem condição
Omitir a condição cria um laço infinito;
Condição será sempre verdadeira.
![Page 9: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/9.jpg)
COMANDO FOR
Cuidado: for sem incremento
Omitir o incremento cria um laço infinito;
Incremento pode ser feito nos comandos.
![Page 10: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/10.jpg)
EXERCÍCIO EXEMPLO
Escreva, usando for, um algoritmo para calcular
a soma dos elementos de 1 a 10.
int n;
int soma = 0;
for (n = 1; n <= 10; n++) {
soma = soma + n;
}
printf(“A soma é %d \n",soma);
![Page 11: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/11.jpg)
O LAÇO WHILE
Costuma ser utilizado quando o laço pode ser
terminado inesperadamente, por condições
desenvolvidas dentro do corpo do laço.
Sintaxe:
<inicialização>
while (<teste>)
{
<comandos>
<incremento>
}
![Page 12: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/12.jpg)
O LAÇO WHILE - EXEMPLO
![Page 13: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/13.jpg)
O LAÇO WHILE - EXEMPLO
![Page 14: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/14.jpg)
EXERCÍCIO EXEMPLO
Escreva, usando while, o algoritmo para calcular
a média de N números
![Page 15: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/15.jpg)
FOR VERSUS WHILE
![Page 16: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/16.jpg)
O LAÇO DO-WHILE
Similar ao laço while, é utilizado quando é
necessário executar o corpo do laço uma primeira
vez e, então, avaliar a expressão do teste.
Sintaxe:
do
{
<comandos>
} while (<teste>); /* NÃO ESQUECER O PONTO E
VÍRGULA NO FINAL */
![Page 17: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/17.jpg)
O LAÇO DO-WHILE - EXEMPLO
Comando do-while: é utilizado sempre que o bloco de
comandos deve ser executado ao menos uma
vez.
do
{
printf(“Digite um valor positivo para sair ”);
scanf(“%d”, &valor);
} while (valor < 0);
![Page 18: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/18.jpg)
O LAÇO DO-WHILE - EXEMPLO
executa comandos avalia condição:
se verdadeiro, re-executa bloco de comandos
caso contrário, termina o laço
Sua forma geral é (sempre usa chaves!)
do {
comandos;
} while (condição);
![Page 19: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/19.jpg)
EXERCÍCIOS
Um laço do-while é útil quando:
a) nunca é executado.
b) pode nunca ser executado.
c) deve ser executado pelo menos uma vez.
d) termina após a primeira execução.
A expressão de inicialização de um laço for:
a) nunca é executada.
b) é executada uma única vez a cada iteração.
c) é executada enquanto o laço não termina.
d) é executada uma vez antes do laço ser iniciado.
![Page 20: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/20.jpg)
EXERCÍCIOS
Qual é a saída do seguinte programa
![Page 21: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/21.jpg)
EXERCÍCIOS
Elabore um programa que solicite um número
inteiro ao usuário e crie um novo número inteiro
com os dígitos em ordem inversa. Por exemplo, uma
execução do programa é:
Digite um número inteiro: 5382
Seu número invertido é: 2835
Escreva um programa que calcule a soma dos n
primeiros termos da sequência de Fibonacci. O valor
de n deve ser fornecido pelo usuário.
![Page 22: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/22.jpg)
EXERCÍCIOS
Na série de Fibonacci, ao dividir, sucessivamente,
um termo pelo anterior o resultado aproxima-se de
um número conhecido e designado por número de
ouro. Faça um programa que calcule o valor do
número de ouro.
Faça um programa que escreva uma tabela de
valores de x e y, onde x varia de 0 a 2p (em
intervalos de 0.01) e y é o valor do seno de x.
![Page 23: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/23.jpg)
EXERCÍCIOS
Considere a seguinte ilustração da sequência de
números triangulares:
Faça um programa que calcule o n-esimo termo da
sequência acima.
![Page 24: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/24.jpg)
COMANDOS BREAK
Nós já vimos dois usos para o comando break:
interrompendo os comandos switch. Ex.:
int num;
scanf(“%d”,&num);
switch(num) {
case 0: printf(“Zero");
break;
case 1: printf(“Um");
break;
}
![Page 25: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/25.jpg)
COMANDOS BREAK
Na verdade, o comando break serve para quebrar a
execução de um comando (como no caso do switch) ou
interromper a execução de qualquer loop (for, while ou
do-while).
O break faz com que a execução do programa continue
na primeira linha seguinte ao loop ou bloco que está
sendo interrompido.
![Page 26: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/26.jpg)
COMANDOS BREAK
![Page 27: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/27.jpg)
COMANDO CONTINUE
Comando continue
Diferente do comando break, só funciona dentro do loop;
Pula essa iteração do loop;
Os comandos que sucedem o comando continue no bloco não
são executados
![Page 28: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/28.jpg)
COMANDO CONTINUE
![Page 29: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/29.jpg)
GOTO E LABEL
É um salto condicional para um local
especificado.
Este local é determinado por um rótulo (label).
Este local pode ser a frente ou atrás no
programa, mas deve ser dentro da mesma função.
![Page 30: UFU Universidade Federal de Uberlândia INTRODUÇÃO A ...fabiola/GCI007%20-%20Introdu%e7%e3o%20...COMANDOS DE REPETIÇÃO Também chamados laços ou loops, estruturas de repetição](https://reader035.vdocuments.pub/reader035/viewer/2022071110/5fe5d95a4c97332fb82b5552/html5/thumbnails/30.jpg)
GOTO E LABEL
Apesar de banido da prática de programação, goto’s
podem ser úteis em determinadas circunstâncias.
Ex: sair de dentro de laços aninhados.
Forma geral:
palavra_chave:
goto palavra_chave;