while (expressão)Um exemplo simples:
instrução;
int x=3;escreve no vídeo ...void main(void)
{
while (x > 0) {
printf("x = %d\n", x);
x--;
}
}
x = 3Uma vez que a instrução while pode receber uma expressão geral em vez de apenas uma condição (o valor da expressão é interpretada como TRUE se for diferente de 0, e como FALSE se for igual a 0), as instruções seguintes são todas legais:
x = 2
x = 1
while (x--);Usando qualquer das expressões mostradas, estas são avaliadas sucessivamente até atingirem o valor 0 (FALSE).
while (x = x + 1);
while (x += 5);
Outros exemplos:
while (x++ != 10);O primeiro exemplo leva i até 10. O segundo usa as funções standard do C getchar() e putchar() (declaradas em stdio.h) que lêem e escrevem um carácter respectivamente do teclado e para o vídeo. O ciclo while lê caracteres do teclado e mostra no vídeo até que o usuário entre um carácter 'q'.while ((ch = getchar()) != 'q')
putchar(ch);
doO seguinte código
instrução;
while (expressão);
int x = 3;escreve ...void main(void)
{
do
printf("x = %d\n", x--);
while (x > 0);
}
x = 3
x = 2
x = 1
for (expressão1; expressão2; expressão3)A expressão1 é o inicializador, a expressão2 constitui o teste de terminação, e a expressão3 é o modificador (é executada em cada ciclo e pode fazer mais do que um simples incremento ou decremento). A instrução for é equivalente a um ciclo while com a seguinte construção:
instrução;
expressão1;Por exemplo, o seguinte código
while (expressão2) {
instrução;
expressão3;
}
int x;escreve no vídeo ...void main(void)
{
for (x=3; x>0; x--)
printf("x = %d\n", x);
}
x = 3As próximas instruções for são todas legais:
x = 2
x = 1
for (x = 0; x <= 9 && x != 3; x++);Reparar no uso do operador , para executar múltiplas acções. No terceiro ciclo, a execução continua até que z se torne 0 (FALSE).
for (x = 0, y = 4; x <= 3 && y < 9; x++, y += 2);
for (x = 0, y = 4, z = 1000; z; z /= 10);
while (scanf("%d", &value) && value != 0) {A função scanf() lê valores do teclado e coloca-os em variáveis. Retorna o número de caracteres lidos se tiver sucesso e 0 no caso contrário. Assim, se houver uma leitura, ela retorna um valor diferente de 0, que é interpretado como TRUE.
if (value < 0) {
printf("Valor ilegal\n");
break;
}
if (value > 100)
continue;
...;
/* processar value */
...;
}
2. Escreva um programa que leia valores inteiros até ser lido o valor -999. Quando isso acontecer deverá escrever a soma dos valores lidos.
3. Escreva um programa que leia um primeiro valor inteiro, que será
uma base, e em seguida um segundo valor (deverá ser lido carácter
a carácter até aparecer um que indica termino ex. # ) que
deverá ser interpretado na base lida anteriormente. O programa deverá
escrever o equivalente decimal do segundo valor.
Exemplo:
Entrada | Saída | |
---|---|---|
10 | 1234# | 1234 |
8 | 77# | 63 |
2 | 1111# | 15 |
Valor inicial: 9Se o valor entrado for menor do que 1 deverá indicar a ocorrência de um erro e terminar com uma mensagem de erro.
Próximo: 28
Próximo: 14
Próximo: 7
Próximo: 22
Próximo: 11
Próximo: 34
Próximo: 17
Próximo: 52
Próximo: 26
Próximo: 13
Próximo: 40
Próximo: 20
Próximo: 10
Próximo: 5
Próximo: 16
Próximo: 8
Próximo: 4
Próximo: 2
Próximo: 1
Gerada uma sequência de tamanho 20.
5. Escreva um programa que leia uma linha de texto e que conte o número
de cada vogal existente na linha. O programa deverá imprimir o número
total de caracteres lidos, o número de ocorrências de cada
vogal e a respectiva percentagem relativamente ao total de caracteres.
Status de entrega dos exercicios do capitulo 4
Aluno | Exercício 1 | Exercício 2 | Exercício 3 | Exercício 4 | Exercício 5 |
Altair | IV-1 | IV-2 | IV-3 | IV-4 | IV-5 |
Auricélia | Cap 41 | Cap 42 | Cap 43 | Cap 44 | Cap 45 |
Edson Takahashi | media | Int_lido | dec | seq | text |
Elenice | exerc 1 | ----------- | exerc3 | exerc 4 | exerc5 |
Gerson Mota | exerc1 | exerc2 | exerc3 | exerc4 | exerc 5 |
Jose Luis | 10 nros reais | ---------- | ---------- | par e impar | ContaCaracter |
Reinaldo Cunha | ex1-s4 | ex2-s4 | exerc 3 | ex4_s4 | exerc 5 |
Teresa | exercicio 1 | exercicio 2 | exercicio 3 | exercicio 4 | exercicio 5 |
[REV 8/98]