Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Lógica de Programação Estruturas de repetição: do - while A estrutura de repetição do {} while (condição) {} equivale aproximadamente a Repita até (condição) da pseudolinguagem. ● ... do {} while (condição) corresponde a Repita ... até (not condição) ● int main(int argc, char ** argv) { char letra; letra = 'A'; do { printf(“letra=%c\n”, letra); letra++; } while (letra <= 'Z'); 2 Lógica de Programação Estruturas de repetição: while ● Exemplo: cálculo da média de 10 números int main(int argc, char ** argv) { float media = 0, n; int i = 0; do { printf(“Número: “); scanf(“%f”, n); media += n; i ++; } while (i < 10); media = media / 10; printf(“Media=%f\n”, media); } 3 Lógica de Programação Estruturas de repetição: while ● Exemplo: inversão das letras de uma palavra int main(int argc, char ** argv) { char palavra[32], resultado[32]; int i, j = 0; scanf(“%s”, palavra); i = strlen(palavra) - 1; do { resultado[j] = palavra[i]; i--; j++; } while (i >= 0); resultado[j] = 0; printf(“Palavra invertida: %s\n”, resultado); } 4 Lógica de Programação Estruturas de repetição: for ● A estrutura de repetição for corresponde a para .. faça: int main(int argc, char ** argv) { char letra; for (letra = 'A'; letra < 'Z'; letra++) { printf(“letra=%c\n”, letra); } } 5 Lógica de Programação Estruturas de repetição: for ● A estrutura de repetição for: for (inicializações; condição; ações) { // bloco de comandos } inicializações: podem-se inicializar variáveis quaisquer condição: condição para a continuidade do laço ações: ações a serem feitas ao final de uma iteração do laço (ex: incremento de uma variável) 6 Lógica de Programação Estruturas de repetição: for ● Exemplo: cálculo de média (vetor v contém os valores lidos): float v[10], media; int i; media = 0; for (i = 0; i < 10; i++) { media = media + v[i]; } media = media / 10; 7 Lógica de Programação Estruturas de repetição: for Exemplo: cálculo de média ... repare como o laço foi usado nesse caso: ● float v[10], media; int i; for (i = 0, media = 0; i < 10; media = media+v[i], i++); media = media / 10; 8 Lógica de Programação Estruturas de repetição: for ● Exemplo: fatorial ... int x, fatorial; int i; printf(“Numero: “); scanf(“%d”, &x); for (fatorial = x; x > 1; x--) { fatorial = fatorial * x; } 9 Lógica de Programação Estruturas de repetição: for ● Exemplo: fatorial ... veja como foi usado o laço agora: int x, fatorial; int i; printf(“Numero: “); scanf(“%d”, &x); for (fatorial = x; x > 1; fatorial = fatorial * x, x--); 10 Lógica de Programação Estruturas de repetição: for Faça um programa que leia um número inteiro entre 1 e 10, e mostre sua tabuada, e então aguarde um novo número ser fornecido. Números fora dessa faixa deve ser recusados. Porém se for fornecido o número 0, o programa deve terminar. ●Faça um programa que calcule o fatorial de um número lido pelo teclado. ●Faça um programa que leia um número pelo teclado e informe se ele é primo. ● Faça um programa leia um número pelo teclado e mostre todos os números primos menores ou iguais a ele. ● 11 Lógica de Programação Estruturas de repetição: for Sejam dois vetores ordenados (ordem crescente) de números inteiros. Faça um programa que copie os valores desses dois vetores para um outro vetor, que deve também estar ordenado. ●Faça um programa que leia uma palavra pelo teclado e a converta para maiúsculas. ● Faça um programa que busque todas as ocorrências de uma palavra em uma frase, e então as substitua por outra palavra. ● 12