Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA ECT1203 – Linguagem de Programação 2ª Lista de Exercícios – Comandos de seleção e repetição 1. Reescreva os trechos de código abaixo, utilizando os comandos indicados (e outros que julgar necessário) de modo a manter o mesmo efeito. a) while for( i=3; i<j; j-- ) a[j][i-3] = i*j; c) if switch( i ) { case 1: a = i; case 2: b = j; break; case 0: c = i + j; default: d = i * j; } b) for x = 6; do { cout << x; x--; } while( x > 3 ); d) do-while while( i < n ){ i += 2; n--; } 2. Qual é o valor de i imediatamente após a execução de cada um dos seguintes loops? Quantas vezes o corpo do loop foi executado em cada caso? int i = 0; while (i < 5) i = i+1; int i = 0; while (0 < i%5) i = i+1; int i = 1; while (i < 10) i = i+5; 3. Escreva um programa que, dados três valores inteiros diferentes entre si, apresente o maior de tais valores. 4. Quando será executada a instrução a = y no trecho de código abaixo? if(x > y) if(y != 0) a = x/y; else a = y; 5. Desenvolva um programa que calcule a soma dos 10 primeiros números inteiros pares positivos. 6. Num frigorífico existem 90 bois. Cada boi traz preso no pescoço um cartão contendo seu número de identificação e seu peso. Fazer um programa que escreva o número e peso do boi mais gordo e do boi mais magro. 7. Faça um programa que solicite ao usuário um conjunto de números inteiros. A leitura de dados terminará quando for ingressado o número zero (flag). Pede-se a soma e a média de todos os números lidos (excluindo o zero). 8. Escrever um programa que, enquanto as respostas do usuário forem positivas, repita o seguinte procedimento: consultar ao usuário se ele quer efetuar o cálculo do valor absoluto de um valor real e, em caso afirmativo, ler um valor real e apresentar o valor absoluto de tal valor. Em caso negativo, a execução do programa deve ser encerrada. 9. Suponha que no ano N a população americana seja maior que a brasileira. Sabendo-se que os Estados Unidos possuem um crescimento anual de 2% na sua população e que o Brasil tem crescimento anual de 4%, determinar o ano em que as duas populações serão iguais (em quantidade). São dados os números de habitantes dos Estados Unidos e do Brasil no ano N. 10. Escreva um programa que apresente os n primeiros números primos a partir do número 2 para um valor n>0 fornecido pelo usuário. 11. Escreva um programa que determina a data cronologicamente maior de duas datas fornecidas pelo usuário. Cada data deve ser fornecida por três valores inteiros onde o primeiro representa um dia, o segundo um mês e o terceiro um ano. 12. Escreva um programa que solicite ao usuário um dia, um mês e um ano e escreva na tela o dia da semana correspondente àquela data informada. O programa deverá escrever o valor 1 para domingo, 2 para segunda-feira, 3 para terça-feira, 4 para quarta-feira, 5 para quinta-feira, 6 para sexta-feira e 7 para sábado. 13. Escreva um programa que solicite ao usuário um caractere. Caso o caractere digitado tenha sido maiúsculo, o programa deverá imprimir o caractere minúsculo correspondente e vice-versa. Dica: verifique na tabela ASCII os códigos dos caracteres maiúsculos e minúsculos. 14. Escreva um programa que leia três números inteiros num, exp e mod. O programa deve imprimir (numexp) módulo mod. O seu programa não deve usar funções matemáticas nem o operador %. 15. Escreva um programa para calcular a série abaixo, considerando que o valor de x e o número de termos da série são fornecidos pelo usuário. 321)( xxxxf 16. Escreva um programa que determine se um número inteiro positivo lido do teclado é primo. A seguir, são dados exemplos de formatos de entrada e saída do programa. Exemplo 1: Entre com o numero: 4 Nao e primo. Exemplo 2: Entre com o numero: -5 Numero invalido. Exemplo 3: Entre com o numero: 7 Primo 17. Suponha que as bactérias em um lago aumentem seu número a um fator de p por segundo; assim, começando com n0 bactérias num instante zero, existem n1 = n0*(1+p) após um segundo, n2 = n1*(1+p) após dois segundos e assim por diante. Escreva um programa que imprimirá o número de bactérias em um dado intervalo de tempo, em um dado período. Por exemplo, se o programa recebe os valores n0 = 106 e p = 0,001 e calcula a população de bactérias a cada 24 horas por uma semana, ele deve imprimir: n(0) = 1e+06 n(86400) = 3.1937e+43 n(172800) = 1.01997e+81 n(259200) = 3.25749e+118 n(345600) = 1.04034e+156 n(432000) = 3.32255e+193 n(518400) = 1.06112e+231 n(604800) = 3.38891e+268 18. Diz-se que um número inteiro n é um quadrado perfeito se existirem m números ímpares consecutivos a partir do valor 1 cuja soma é igual a n. Neste caso, n=m2. Exemplo: 16=1+3+5+7 (16 é igual à soma dos quatro primeiros ímpares a partir de 1) e 16=42. Logo 16 representa um quadrado perfeito. Escreva um programa que verifique se um valor inteiro positivo fornecido pelo usuário é um quadrado perfeito ou não. 19. Dado um número positivo n, achar todos os seus divisores inteiros diferentes de n. Exemplo: Se a entrado do programa for 308, então a saída deve ser 1 2 4 7 11 22 28 44 77 154. 20. Qual a função dos comandos break e continue em laços? 21. O que faz o programa abaixo? #include <iostream> using namespace std; int main() { int n; do { cout << " \nDigite um numero: "); cin >> n; if (n < 0) break; else if (n > 10) continue; cout << "The number is: " << n << endl; } while (n != 0); } 22. O que faz o programa abaixo? Qual a saída para n = 6, i = 2 e j = 3? #include <iostream> using namespace std; int main(){ int i, j, n, multi, multj, k; cin >> n >> i >> j; multi = 0; multj = 0; for (k = 0; k < n; k++){ if (multi < multj){ cout << multi; multi = multi + i; } else{ cout << multj; if (multi == multj){ multi = multi + i; } multj = multj + j; } } cout << multi << “ ” << multj << endl; return 0; }
Compartilhar