30
INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL Professora: Fabíola Gonçalves. UFU Universidade Federal de Uberlândia

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

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;