Buscar

apresentacao_aula_15

Prévia do material em texto

Fundamentos de Computação
Bruno Feres de Souza
bferes@gmail.com
Universidade Federal do Maranhão
Bacharelado em Ciência e Tecnologia
1° semestre de 2013
Na aula passada...
Estruturas de controle
• Estruturas condicionais:
• Estrutura Condicional Simples
• Estrutura Condicional Composto
• Estrutura de Seleção entre duas ou mais sequências
de comandos
• Estruturas de repetição:
• Estrutura de Repetição por Condição
• Estrutura de Repetição por Critério de Parada
• Estrutura de Repetição por Contagem
Repetição por Condição
• Os comandos serão repetidos zero ou mais vezes,
enquanto o valor da condição for verdadeiro.
• Essa estrutura normalmente é denominada laço ou
loop
sim
não
O Comando while
while (expressão) {
comandos;
}
1) avalia condição
1.1) se condição é verdadeira, executa comandos
do bloco
2) ao término do bloco, volta a avaliar condição
3) repete o processo até que condição seja falsa
O Comando while
while (i < 50)
i = i + 5;
while (i < 50){
i = i + 5;
printf(“O novo valor de i é: %d”, i);
}
O Comando while
#include <stdio.h>
int main(){
int i;
scanf(“%d”, &i);
while (i < 50){
printf(“O dobro de %d é: %d”, i, i*2);
i = i + 1;
}
printf (“Fim do cálculo.”);
return 0;
}
O Comando while
#include <stdio.h>
int main(){
int i;
scanf(“%d”, &i);
while ((i < 50) && (i < 30)){
printf(“O dobro de %d é: %d”, i, i*2);
i = i + 1;
}
printf (“Fim do cálculo.”);
return 0;
}
O Comando while
#include <stdio.h>
int main(){
int i;
scanf(“%d”, &i);
while ((i < 50) && (i < 30)){
printf(“O dobro de %d é: %d”, i, i*2);
}
printf (“Fim do cálculo.”);
}
Se o valor lido de i
for menor que 50 e
menor que 30, então
temos um
loop infinito
O Comando while
#include <stdio.h>
int main(){
int i;
scanf(“%d”, &i);
while (1){
printf(“O dobro de %d é: %d”, i, i*2);
i = i + 1;
}
printf (“Fim do cálculo.”);
return 0;
}
Independente dos
comandos dentro do
escopo de while, a
expressão sempre
será verdade.
Assim, temos um
loop infinito
Repetição por critério de parada
• Com teste no final do bloco de comandos.
• Uma diferença dessa forma para a anterior é que os comandos
dentro da estrutura são executados uma vez antes que a
condição seja testada pela primeira vez, e serve para os
processos iterativos onde existe garantia de execução correta do
bloco pelo menos uma vez.
sim
não
Repetição por critério de parada
do {
comandos;
} while (condição);
• do-while é utilizado sempre que o bloco de
comandos deve ser executado ao menos uma vez
O Comando do-while
do
i++;
while (i < 50);
do {
i++;
printf(“O novo valor de i é: %d”, i);
} while (i < 50);
O Comando do-while
1) executa comandos
2) avalia condição:
2.1) se verdadeiro, executa novamente os
comandos do bloco
2.2) senão encerra laço
#include <stdio.h>
void main ( )
{
int i;
do {
printf ("\n Escolha a fruta pelo numero:\n");
printf ("\t (1)...Mamao\n");
printf ("\t (2)...Abacaxi\n");
printf ("\t (3)...Laranja\n\n");
scanf("%d", &i);
} while ((i < 1) || (i > 3));
switch (i) {
case 1:
printf ("\t\t Voce escolheu Mamao.\n");
break;
case 2:
printf ("\t\t Voce escolheu Abacaxi.\n");
break;
case 3:
printf ("\t\t Voce escolheu Laranja.\n");
break;
}
}
O Comando do-while
#include <stdio.h>
int main(){
int i;
scanf(“%d”, &i);
do {
printf(“O dobro de %d é: %d”, i, i*2);
i = i + 1;
} while (i < 50);
printf (“Fim do cálculo.”);
return 0;
}
Repetição por contagem
• Na iteração baseada em contagem, sabe-se
antecipadamente quantas vezes um conjunto de
comandos vai ser repetido.
O Comando for
for (pré_cmd; teste; pós_cmd) {
comandos;
}
• em termos de while, equivale a:
pré_cmd;
while (teste) {
comandos;
pós_cmd;
}
Repetição por contagem
1) executa pré_cmd (inicialização), que permite iniciar
variáveis
2) avalia teste (condição)
2.2) se verdadeiro, executa comandos do bloco,
2.3) senão encerra laço
3) ao término do bloco, executa pós_cmd (incremento)
4) reavalia teste
5) repete o processo até que teste seja falso
O Comando for
for (i = 1; i <= 50; i++)
printf(“O dobro de %d é: %d”, i, i*2);
for (i = 1; i <= 50; i++){
printf(“O dobro de %d é: %d\n”, i, i*2);
printf(“O quadrado de %d é: %d”, i, i*i);
}
Repetição por contagem: Exemplo
• Escrever a tabuada do 2 na tela
#include <stdio.h>
int main( ) {
int i;
for ( i=1; i <=10; i++)
printf("2 x %d = %d\n", i, 2*i);
return 0;
}
Repetição por contagem: Exemplo
• Podemos omitir qualquer um dos elementos
(inicialização, condição ou incremento) do for
#include <stdio.h>
int main( ) {
int i;
i = 1;
for ( ; i <=10; i++)
printf("2 x %d = %d\n", i, 2*i);
return 0;
}
Repetição por contagem: Exemplo
• Podemos omitir qualquer um dos elementos
(inicialização, condição ou incremento) do for
#include <stdio.h>
int main( ) {
int i;
for ( i=1; ; i++)
printf("2 x %d = %d\n", i, 2*i);
return 0;
}
A condição quando
omitida permite que o
loop seja infinito
Repetição por contagem: Exemplo
• Podemos omitir qualquer um dos elementos
(inicialização, condição ou incremento) do for
#include <stdio.h>
int main( ) {
int i;
for ( i=1; ; i++){
printf("2 x %d = %d\n", i, 2*i);
if (i > 10)
break;
}
return 0;
}
A condição quando
omitida permite que
o loop seja infinito,
ao menos que se
faça uso do
comando break
Repetição por contagem: Exemplo
• Podemos omitir qualquer um dos elementos
(inicialização, condição ou incremento) do for
#include <stdio.h>
int main( ) {
int i;
for (i = 1; i <=10; )
printf("2 x %d = %d\n", i, 2*i);
return 0;
}
Sem incrementar i,
a condição nunca
será falsa. Assim,
temos um loop
infinito. Ou seja,
nada é feito para
que a condição seja
falsa em algum
momento
Repetição por contagem: Exemplo
• Podemos omitir qualquer um dos elementos
(inicialização, condição ou incremento) do for
#include <stdio.h>
int main( ) {
int i;
for (i = 1; i <=10; ){
printf("2 x %d = %d\n", i, 2*i);
i++;
}
return 0;
}
A variável i é
incrementada no
escopo do for
Exercícios
1) Ler x e y e calcular xy
2) Ler x e y e depois exibir a soma dos números de x a y
(suponha x < y).
3) Faça um programa para calcular o valor da seguinte série:
Exercícios
4) Criar um programa em C que determina os números de 0 a
5000 que são quadrados perfeitos (a raiz é um número
inteiro). Não é permitido o uso de comandos do C para
potência e raiz.
5) Calcular e escrever o valor do número Pi, com precisão de
0.0001, usando a série pi Pi= 4 − 4/3 + 4/5 - 4/7 + 4/9 - 4/11...
Mostrar quantos termos foram necessários para se obter a
precisão desejada.
Cálculo eletrônico
2ª Geração (1955-1965): transistores
Material didático
● Aprendendo a Programar Programando na Linguagem C
Para Iniciantes (Jaime Evaristo). Capítulos 4.
• http://www.fsm.com.br/web/enade/revisao/novos/livroProgramacaoC.pdf
Dúvidas?

Continue navegando