Buscar

Aula 03 Estruturas de Repetição

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LING. PROG. ESTRUTURADA
Aula 03:
Estruturas de Repetição
Prof. André Alves Nogueira, MSc.
SUMÁRIO
▪ Estrutura de repetição: FOR
▪ Operadores Unários
▪ Operadores Bitwise
▪ Operadores de atribuição composta
▪ Estrutura de repetição: WHILE
▪ Estrutura de repetição: DO..WHILE
▪ Palavras reservadas para controle de fluxo: break,
continue e goto.
ESTRUTURA DE REPETIÇÃO: FOR
▪ O comando for cria um laço de repetição no fluxo do programa baseado
em três parâmetros:
▪ expressão inicial: Onde é executado apenas uma vez, na entrada do laço.
▪ condição: É executado a cada iteração do laço e determina quando o
programa deve sair do mesmo. Caso a condição seja verdadeira, repete-
se os do laço uma vez, caso seja falsa, o programa pula para a próxima
instrução seguinte ao laço.
▪ incremento: É uma operação normal,executada a cada iteração.
Geralmente é usada para incrementar contadores ou configurar variáveis.
▪ Sintaxe:
for (<expressão inicial>; <condição>; <incremento>) {
<comandos>
}
ESTRUTURA DE REPETIÇÃO: FOR - exemplo
#include <stdio.h>
#include <stdlib.h>
int main (void){
int acum = 0, aux, i; 
for (i=0; i<10; i++) {
printf("Insira um valor: ");
scanf("%d",&aux);
printf("Contador eh %d \n", i);
acum += aux;
printf("Acumulador eh %d \n\n", acum);
}
for (;;) {
printf("Laco infinito.\n");
}
system("pause");
return 0;
}
OPERADORES UNÁRIOS
n 
A.f
o
r 
P.p
s 
E
ahle
d
a 
G
n
o
s
r
e 
d
a
r
uotn
o 
F
Operador Exemplo de
expressão
Explicação
++ (prefixo) ++a Incrementa ‘a’ em 1, e então usa o novo valor 
de ‘a’ na expressão em que estiver.
-- (prefixo) --b Decrementa ‘b’ em 1, e então usa o novo valor 
de ‘b’ na expressão em que estiver.
++ (pós-fixo) a++ Usa o valor corrente de ‘a’ na expressão em que 
estiver, e então incrementa ‘a’ em 1.
-- (pós-fixo) b-- Usa o valor corrente de ‘b’ na expressão em que 
estiver, e então decrementa ‘b’ em 1.
+ +c Positivo. Não tem efeito sobre ‘c’.
- -c Negativo. Inverte o sinal de ‘c’.
OPERADORES DE ATRIBUIÇÃO 
COMPOSTA
P
.
p
s 
E
sr
e
d
n 
A.f
o r
ahle
d
a 
G
n 
o
a
r
uotn
o 
F
7
Operador Exemplo de expressão Equivalência
+= a += 1; a = a + 1;
-= a -= 1; a = a - 1;
*= a *= 1; a = a * 1;
/= a /= 1; a = a / 1;
%= a %= 1; a = a % 1;
|= a |= 1; a = a | 1;
^= a ^= 1; a = a ^ 1;
&= a &= 1; a = a & 1;
<<= a <<= 1; a = a << 1;
>>= a >>= 1; a = a >> 1;
>>>= a >>>= 1; a = a >>> 1;
OPERADORES DE ATRIBUIÇÃO 
COMPOSTA
int x = 1;
// Atribui 1 a x
x += 5;
//Equivalente a x = x + 5; x é igual a 6
x *= 2;
//Equivalente a x = x * 2; x é igual a 12
x /= 2;
//Equivalente a x = x / 2; x é igual a 6
x -= 3;
//Equivalente a x = x - 3; x é igual a 3
x %= 5;
//Equivalente a x = x % 5; x é igual a 3
x |= 4;
//Equivalente a x = x | 4; x é igual a 7
x ^= 1;
//Equivalente a x = x ^ 1; x é igual a 7
x &= 255
//Equivalente a x = x & 255; x é igual a 6
x <<= 2;
//Equivalente a x = x << 2; x é igual a 24
x >>= 4;
//Equivalente a x = x >> 3; x é igual a 1
x >>>= 7;
//Equivalente a x = x >>> 7; x é igual a 0
PRECEDÊNCIA DE OPERADORES EM C
.
p
s 
E
re
d
n 
A.f
o
r 
P
le
d
a 
G
n
o 
s
ruotn
o 
F
a 
h
a
Operador Nome Prioridade
() Parênteses 1
++ -- + - ! (cast) Operadores unários 2
* / % Multip.,divisão e resto 3
+ - Soma, subtração 4
<< >> >>> Bitwise de deslocamento 5
< > <= >= Operador relacional 6
== != Igualdade e desigualdade 7
& AND lógico (bit) 8
^ XOR lógico (bit) 9
| OR lógico (bit) 10
&& AND lógico 11
|| OR lógico 12
?: Operador ternário 13
= *= /= %= += -= <<= >>= >>>= &= |= Operadores compostos 14
ESTRUTURA DE REPETIÇÃO: WHILE
O comando while é utilizada quando não se quer que o
corpo do laço seja necessariamente executado. A expressão
de comparação é avaliada ANTES que o laço seja
executado, enquanto ela for verdadeira os comandos são
repetidos.
Sintaxe:
while (<condição>) {
<comandos>
}
ESTRUTURA DE REPETIÇÃO: WHILE
#include <stdio.h>
#include <stdlib.h>
int main (void){
int acum = 0, aux, i = 0; 
while (i < 10) {
printf("Insira um valor: ");
scanf("%d",&aux);
printf("Contador eh %d \n", i);
i++;
acum += aux;
printf("Acumulador eh %d \n\n", acum);
}
while (1) {
printf("Laco infinito.\n");
}
system("pause");
return 0;
}
ESTRUTURA DE REPETIÇÃO: 
DO..WHILE
O comando do..while é utilizada quando se quer que o
corpo do laço seja executado pelo menos uma vez. A
expressão de comparação é avaliada DEPOIS que o laço foi
executado, enquanto ela for verdadeira os comandos são
repetidos.
Sintaxe:
do {
<comandos>
} while (<condição>);
ESTRUTURA DE REPETIÇÃO: DO..WHILE
#include <stdio.h>
#include <stdlib.h>
int main (void){
int acum = 0, aux, i = 0; 
do {
printf("Insira um valor: ");
scanf("%d",&aux);
printf("Contador eh %d \n", i);
i++;
acum += aux;
printf("Acumulador eh %d \n\n", acum);
} while (i < 10);
do {
printf("Laco infinito.\n");
} while (1);
system("pause");
return 0;
}
PALAVRAS RESERVADAS: BREAK, CONTINUE E GOTO
▪ Break: esta instrução serve para terminar a execução das 
instruções de um laço (for, do..while, while) ou para terminar um
conjunto switch..case.
▪ Quando em um laço de repetição, esta instrução força a 
interrupção do laço independentemente da condição de controle.
Ex:
#include <stdio.h>
#include <stdlib.h>
int main (void){
int num = 0; 
float soma = 0.0, val; 
printf("Digite valores:\n");
do{
printf(“Valor: ");
scanf("%f",&val);
if (val < 0){
break; // saída do laço
}
num++; // Incrementa o contador
soma += val; // Acumula o valor
} while(1); //sempre verdadeiro
printf(“Media = %.2f",soma/num);
system("pause");
return 0;
}
▪ Continue: esta instrução opera de modo semelhante a instrução break
dentro do laço de repetição. Quando executada, ela pula as instruções
de um laço de repetição sem sair do laço. Isto é, a instrução força a
avaliação da condição de controle do laço. Ex:
#include <stdio.h>
#include <stdlib.h>
int main (void){
int num = 0;
float soma = 0.0, val;
printf("Digite valores:\n");
do{
printf("Valor: ");
scanf("%f",&val);
if (val < 0){
continue; // pula a iteração
}
PALAVRAS RESERVADAS: BREAK, CONTINUE E GOTO
num++; // Incrementa o contador
soma += val; // Acumula o valor
}while(num<10); // 10 valores
printf("Media = %.2f",soma/num);
system("pause");
return 0;
}
▪ goto: esta instrução é chamada de desvio de fluxo. A instrução desvia
o programa para um rótulo (posição identificada) no programa. São
raros os casos onde a instrução goto é necessária, no entanto, há
certas circunstancias, onde com prudência, ela pode ser útil.
Sintaxe:
goto rotulo;
...
rotulo;
...
PALAVRAS RESERVADAS: BREAK, CONTINUE E GOTO
▪ Exemplo do goto:
#include <stdio.h>
#include <stdlib.h>
int main (void){
int num = 0; 
float soma = 0.0, val; 
printf("Digite valores:\n");
inicio: // rótulo
printf("Valor: ");
scanf("%f",&val);
if (val < 0){
goto fim; // saída do laço
}
num++; // Incrementa o contador
soma += val; // Acumula o valor
goto inicio;
fim:
printf("Media = %.2f",soma/num);
system("pause");
return 0;
}
PALAVRAS RESERVADAS: BREAK, CONTINUE E GOTO
EXERCÍCIOS
1. A conversão de graus Fahrenheit para gerar centrígrados
é obtida pela formula: 𝐶 = 5 ∗ (𝐹 − 32)/9 . Escreva um
algoritmo que calcule e escreva uma tabela de graus
centigrados em função de graus Fahrenheit que variem
de 50 a 150 de 1 em 1.
2. Escreva um algoritmo para imprimir os números de 1
(inclusive) a 10 (inclusive) em ordem decrescente.
3. Escreva um algoritmo que mostre a serie de Fibonaccidos
20 primeiros termos. A sequência é dada por uma série
de valores que cada termo subsequente é gerado pela
soma de dois termos anteriores. A formula que explica
isso é dada abaixo:
𝐹 𝑛 = 
0, 𝑠𝑒 𝑛 = 0
1, 𝑠𝑒 𝑛 = 1
𝐹 𝑛 − 1 + 𝐹 𝑛 − 2 , 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜
4. Crie um programa para calcular o fatorial do número n
inserido pelo usuário. Exemplo: 4! = 4*3*2*1 = 24
REFERÊNCIAS
▪ DEITEL, Harvey M.; DEITEL, P. J. C: como programar. 
6.ed. São Paulo: Pearson, 2011.
▪ DAMAS, Luís. Linguagem C. 10.ed. São Paulo: LTC, 
2013.
▪ BACKES, André. Linguagem C: Completa e
Descomplicada. Rio de Janeiro: Elsevier, 2012.

Outros materiais