Universidade Federal do Espírito Santo
Centro Tecnológico
Working 4: Conceitos Básicos III
Objetivos:
● Dominar a construção de estruturas de repetição em C;
● Aperfeiçoar­se na resolução de problemas;
Prazo de envio​
: ​
Domingo, 27/09, 23:55.
PET
Engenharia de Computação
INTROCOMP
2014 Finalizando os conceitos básicos, neste Working apresentaremos outras três estruturas de repetição: ​
for, while ​
e ​
do­while​
. Além destes, vamos compreender algumas práticas de programação em processamento de textos e jogos. Por fim, vamos praticar e dominar todos os conceitos básicos que permeiam o alicerce da programação de computadores! Terminando este Working, você pode se considerar verdadeiramente um programador!
A ESTRUTURA DE REPETIÇÃO FOR
O comando de repetição condensado permite agrupar, em um único comando, a inicialização de uma variável, o incremento desta variável e o teste de parada. Seu uso mais comum em situações nas quais o número de repetições da sequência de comandos conhecido antes mesmo do início do for. A estrutura do comando é exibida a seguir:
for (<inicialização>; <expressão lógica>; <incremento>){
<Sequencia de comandos>
}
Inicialização é um comando de atribuição usado para colocar um valor na variável de controle utilizada na expressão lógica. Assim como os demais comandos de repetição, a expressão lógica representa a condição de parada das iterações. Incremento define como a variável de controle será modificada a cada iteração. Um exemplo para entendermos:
#include <stdio.h>
int main () //este programa imprime números de 1 a 'n'.
{
int n;
int i;
printf (​
"​
Digite um número inteiro e maior que zero: ​
"​
);
scanf (​
"​
%d​
"​
,&n);
for (i=1 ; i<=n ; i++) //observe que é utilizado ';'!!
printf (​
"​
%d\n​
"​
,i);
return 0;
}
Observe que a variável contadora foi inicializada com o valor 1 e é incrimentada de com o valor 1 (i++). Além disso, haverá a parada quando i for maior que n.
INTROCOMP
2014 A ESTRUTURA DE REPETIÇÃO WHILE E DO­WHILE
Em contraste com o comando de pré­condição, o comando de repetição com pós­condição só efetua o teste da expressão lógica (condição de parada) após a primeira execução da sequência de comandos. Logo, o bloco de comandos é executado pelo menos uma vez, independente da expressão lógica. A própria sintaxe do comando sugere essa difereça:
do{
<sequência de comandos>
} while (<expressão lógica>); //nesse tem ';'!!!
Um exemplo para entender sua utilidade:
#include <stdio.h>
int main ()
{
int candidato;
int confirma;
do{
printf (​
"​
Digite o número do seu candidato: ​
"​
);
scanf (​
"​
%d​
"​
,&candidato);
switch (candidato)
{
case 13:
printf (​
"​
Você votou na Iriny Lopes!\n​
"​
);
break;
case 23:
printf (​
"​
Você votou no Rezende!\n​
"​
);
break;
case 43:
printf (​
"​
Você votou no Luiz Paulo!\n​
"​
);
break;
default:
printf (​
"​
Você votou nulo!\n​
"​
);
}
printf (​
"​
Digite 1 (confirmar) ou 0 (votar novamente):​
"​
);
scanf (​
"​
%d​
"​
,&confirma);
}while(!confirma);
return 0;
}
Como poderia ser implementado este programa com o comando ​
while​
? Você teria que inicializar a variável confirma. Com o do­while, fica na responsabilidade do usuário inicializar a variável confirma, já que é permitido entrar na estrutura de repetição para depois verificar a condição de parada (expressão lógica).
INTROCOMP
2014 PRATICANDO
Praticando 4.1
Faça um programa em C que calcula o produto dos números digitados pelo usuário. O programa em C deve permitir que o usuário digite uma quantidade não determinada de números. E que encerre quando o usuário digita 0. Use as estruturas que achar apropriado.
Praticando 4.2
Você aprendeu sobre contadores e como devem ser as boas práticas de uso desse artifício.
No código abaixo, identifique o contador e diga se está sendo usado corretamente ou não, e caso não esteja, dê uma sugestão para melhoramento do código.
#include <stdio.h>
int main()
{
int a, n = 1;
while (n < 100)
{
a++;
}
return 0;
}
Praticando 4.3
Escreva um programa que lê um inteiro positivo e determina se esse número é primo utilizando a estrutura do while.
Praticando 4.4
Escreva um programa em C que lê 15 valores reais, encontra o maior e o menor deles e mostra o resultado usando a estrutura for e que pare o programa usando o comando break caso seja inserido um número negativo.
INTROCOMP
2014 Praticando 4.5
Faça um programa que simule um jogo de loteria: deverá ser pré estabelecido um número vencedor pelo programador, e o usuário deverá tentar adivinhá­lo. A cada erro o programa deverá indicar se o número tentado pelo usuário é maior ou menor do que o número premiado. O programa só deverá encerrar quando o usuário acertar o número.
Praticando 4.6
Exiba a tabuada de multiplicação de 1 a ‘n’ números sendo 0<n<=10. Ex:
Entrada:
1 Saída:
1*1 = 1
1*2 = 2
1*3 = 3
1*4 = 4
1*5 = 5
1*6 = 6
1*7 = 7
1*8 = 8
1*9 = 9
1*10 = 10
Desafio 4.1
Se nós listarmos todos os números naturais abaixo de 10 que são múltiplos de 3 ou 5, nós teríamos 3, 5, 6 e 9. A soma desses múltiplos é 23.
Encontre a soma de todos os múltiplos de 3 ou 5 abaixo de um número N lido pelo teclado.
Desafio 4.2
Cada novo termo da sequência de Fibonacci é gerado somando os dois termos anteriores.
Começando com 1 e 2, os 10 primeiros termos serão:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
Considerando os termos na sequência de Fibonacci que os valores não excedam 4 milhões, ache a soma dos termos pares e a exiba.
NO PRÓXIMO ENCONTRO...
No próximo encontro vamos iniciar os estudos em modularização na linguagem C!
Download

Working 4: Conceitos Básicos III