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çoarse 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 dowhile . 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 DOWHILE Em contraste com o comando de précondição, o comando de repetição com póscondiçã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 dowhile, 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!