INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL
Professora: Fabíola Gonçalves.
UFU Universidade Federal de Uberlândia
AGENDA
Estrutura Repetição:
For
While
Do... While
Exercícios
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.
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
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> }
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”);
}
COMANDO FOR
Podemos omitir qualquer um de seus elementos
inicialização, condição ou incremento.
Ex.: for sem inicialização
COMANDO FOR
Cuidado: for sem condição
Omitir a condição cria um laço infinito;
Condição será sempre verdadeira.
COMANDO FOR
Cuidado: for sem incremento
Omitir o incremento cria um laço infinito;
Incremento pode ser feito nos comandos.
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);
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>
}
O LAÇO WHILE - EXEMPLO
O LAÇO WHILE - EXEMPLO
EXERCÍCIO EXEMPLO
Escreva, usando while, o algoritmo para calcular
a média de N números
FOR VERSUS WHILE
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 */
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);
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);
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.
EXERCÍCIOS
Qual é a saída do seguinte programa
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.
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.
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.
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;
}
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.
COMANDOS BREAK
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
COMANDO CONTINUE
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.
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;