Logo Passei Direto

A maior rede de estudos do Brasil

Grátis
18 pág.
Lista_4_Gabarito

Pré-visualização | Página 2 de 4

Autora: ANITA LOPES 
 cin>> numero; 
 for( c = 1; c <= numero / 2; c++) //Em C++, a / faz divisão inteira 
 if( numero % c == 0 ) 
 cout<<c<< "\t"; 
 
 cout<<numero<<"\n"; 
 system("pause"); 
} 
 
8) Entrar com um número e imprimir quantos divisores tem o número. 
Solução 1 
prog Lista4Ex8 
 int numero, contaDivisores, c; 
 contaDivisores <- 0; 
 imprima "\ndigite numero: "; 
 leia numero; 
 para( c <- 1; c <= numero; c++) 
 { 
 se( numero % c == 0 ) 
 { contaDivisores <- contaDivisores +1; }# ou contaDivisores++; 
 } 
 imprima "\nTotal de divisores: ", contaDivisores, "\n"; 
fimprog 
 
Solução 2 
• Como 1 é divisor de todos os números, o for começou a partir de 2. 
• Depois da metade, só encontramos como divisor o próprio número e, por 
isso, usamos a expressão numero div 2. 
• Como o número ficou fora do for e o 1 também, o contador começou por 
2. 
• Tendo em vista as duas considerações acima, melhoramos a 
performance em 50%, visto que evitamos metade das comparações. 
 
prog Lista4Ex8 
 int numero, contaDivisores, c; 
 contaDivisores <- 2; 
 imprima "\ndigite numero: "; 
 leia numero; 
 para( c <- 2; c <= numero div 2 ; c++) 
 { 
 se( numero % c == 0 ) 
 { contaDivisores <- contaDivisores +1; } # ou contaDivisores++; 
 } 
 se(numero == 1) 
 { 
 imprima "\nTotal de divisores:1\n"; 
 } 
 senao 
 { 
 imprima "\nTotal de divisores: ", contaDivisores, "\n"; 
 } 
fimprog 
 
9) Entrar com um número e imprimir a soma dos divisores do número. 
 
Lista 4 - gabarito 
 
 
8 Autora: ANITA LOPES 
Solução 1 
prog Lista4Ex9 
 int numero, somaDivisores, c; 
 somaDivisores <- 0; 
 imprima "\ndigite numero: "; 
 leia numero; 
 para( c <- 1; c <= numero; c++) 
 { 
 se( numero % c == 0 ) 
 { somaDivisores <- somaDivisores + c; } 
 } 
 imprima "\nSoma dos divisores: ", somaDivisores, "\n"; 
fimprog 
 
Solução 2 
• Como 1 é divisor de todos os números, o for começou a partir de 2. 
• Depois da metade, só encontramos como divisor o próprio número. 
• Como 1 só tem como divisor ele mesmo, foi necessário um teste para 
que não fosse impresso valor da variável somaDivisores. 
 
prog Lista4Ex9 
 int numero, somaDivisores, c; 
 imprima "\ndigite numero: "; 
 leia numero; 
 somaDivisores <- numero +1; 
 para( c <- 2; c <= numero div 2 ; c++) 
 { 
 se( numero % c == 0 ) 
 { somaDivisores <- somaDivisores + c; } 
 } 
 se(numero == 1) 
 { 
 imprima "\nSoma dos divisores:1\n"; 
 } 
 senao 
 { 
 imprima "\nSoma dos divisores: ", somaDivisores, "\n"; 
 } 
fimprog 
 
 
10) Entrar com um número e imprimir se o número é, ou não, primo. 
Solução 1 
prog Lista4Ex10 
 int numero, contaDivisores, c; 
 contaDivisores <- 0; 
 imprima "\ndigite numero: "; 
 leia numero; 
 para( c <- 1; c <= numero; c++) 
 { 
 se( numero % c == 0 ) 
 { contaDivisores <- contaDivisores +1; }# ou contaDivisores++; 
 } 
 se( contaDivisores == 2 ) 
 
Lista 4 - gabarito 
 
 
9 Autora: ANITA LOPES 
 { 
 imprima "\nPrimo\n"; 
 } 
 senao 
 { 
 imprima "\nNao Primo\n"; 
 } 
fimprog 
 
Solução 2 
• Como 1 é divisor de todos os números, o for começou a partir de 2. 
• Depois da metade, só encontramos como divisor o próprio número. 
• Tendo em vista as duas considerações acima, não podemos encontrar 
nenhum divisor. 
• O teste do primo teve que incluir um teste para saber se NÃO era o 
número 1 porque 1 não é primo e ele foi excluído do for para melhorar a 
performance. 
prog Lista4Ex10 
 int numero, contaDivisores, c; 
 contaDivisores <- 0; 
 imprima "\ndigite numero: "; 
 leia numero; 
 para( c <- 2; c <= numero div 2; c++) 
 { 
 se( numero % c == 0 ) 
 { contaDivisores <- contaDivisores +1; }# ou contaDivisores++; 
 } 
 se( contaDivisores == 0 && numero <> 1 ) 
 { 
 imprima "\nPrimo\n"; 
 } 
 senao 
 { 
 imprima "\nNao Primo\n"; 
 } 
fimprog 
 
11) Entrar com um número e imprimir o fatorial desse número. 
prog Lista4Ex11 
 int numero, fat, c; 
 fat <- 1; 
 imprima "\nEntre com numero: "; 
 leia numero; 
 para( c <- 1; c <= numero; c++) 
 { 
 fat <- fat * c; 
 } 
 imprima "\nFatorial: ", fat,"\n"; 
fimprog 
 
12) Ler 8 números inteiros e imprimir quantos são pares e quantos são ímpares. 
prog Lista4Ex12 
 int numero, cp, c; 
 cp <- 0; 
 
Lista 4 - gabarito 
 
 
10 Autora: ANITA LOPES 
 para( c <- 1; c <= 8; c++) 
 { 
 imprima "\nEntre com numero: "; 
 leia numero; 
 se( numero % 2 == 0 ) 
 { cp <- cp +1; } # ou cp++; 
 } 
 imprima "\npares: ", cp; 
 imprima "\nimpares: ", 8-cp,"\n"; 
fimprog 
 
13) Entrar com 20 números e imprimir a soma dos positivos e o total de números 
negativos. 
prog Lista4Ex13 
 int c, neg; 
 real numero, soma; 
 neg <- 0; 
 soma <-0.0; 
 para( c <- 1; c <= 20; c++) 
 { 
 imprima "\nDigite numero: "; 
 leia numero; 
 se( numero > 0.0 ) 
 { soma <- soma + numero; } 
 senao 
 { 
 se(numero<0.0) 
 { neg ++; } 
 } 
 } 
 imprima "\nSoma dos positivos: ", soma; 
 imprima "\nTotal de negativos: ",neg,"\n"; 
fimprog 
 
14) Entrar com 50 números e imprimir o maior entre eles. 
prog Lista4Ex14 
 int x; 
 real num, maior; 
 imprima "\nDigite 1o numero: "; 
 leia num; 
 maior <- num; 
 para( x <- 2; x <= 50; x++) 
 { 
 imprima "\nDigite ", x ,"o numero: "; 
 leia num; 
 se(num > maior) 
 { 
 maior <-num; 
 } 
 } 
 imprima "\nMaior numero digitado: ", maior,"\n"; 
fimprog 
 
15) Entrar com 50 números e imprimir o menor entre eles. 
 
Lista 4 - gabarito 
 
 
11 Autora: ANITA LOPES 
prog Lista4Ex15 
 int x; 
 real num, menor; 
 imprima "\nDigite 1o numero: "; 
 leia num; 
 menor <- num; 
 para( x <- 2; x <= 50; x++) 
 { 
 imprima "\nDigite ", x ,"o numero: "; 
 leia num; 
 se(num < menor) 
 { 
 menor <-num; 
 } 
 } 
 imprima "\nMenor numero digitado: ", menor,"\n"; 
fimprog 
 
16) Entrar com 50 números e imprimir o maior e o menor entre eles. 
prog Lista4Ex16 
 int x; 
 real num, menor, maior; 
 imprima "\nDigite 1o numero: "; 
 leia num; 
 maior <- num; 
 menor <- num; 
 para( x <- 2; x <= 10; x++) 
 { 
 imprima "\nDigite ", x ,"o numero: "; 
 leia num; 
 se(num > maior ) 
 { 
 maior <-num; 
 } 
 senao 
 { 
 se(num < menor) 
 { 
 menor <-num; 
 } 
 } 
 } 
 imprima "\nMaior numero digitado: ", maior,"\n"; 
 imprima "\nMenor numero digitado: ", menor,"\n"; 
fimprog 
 
17) Entrar com um número que corresponde à faixa salarial e o salário de 100 pessoas. 
Imprimir o total salarial em cada faixa. 
1 salário menor que R$ 900,00 2 R$900,00<=salário<R$ 1500,00 
3 R$1500,00<=salário<R$ 3000,00 4 R$3000,00<=salário<R$ 5000,00 
5 R$5000,00<=salário<R$ 10000,00 6 salário>=R$ 10000,00 
prog Lisat4ex17 
 
Lista 4 - gabarito 
 
 
12 Autora: ANITA LOPES 
 int x, faixa; 
 real salario, faixa1,faixa2, faixa3, faixa4, faixa5, faixa6; 
 faixa1 <- 0.0; 
 faixa2 <- 0.0; 
 faixa3 <- 0.0; 
 faixa4 <- 0.0; 
 faixa5 <- 0.0; 
 faixa6 <- 0.0; 
 para( x <- 1; x <= 10; x++ ) 
 { 
 imprima "\nSalario: "; 
 leia salario; 
 imprima "\nEntre com o numeroda faixa salarial( 1- 6): "; 
 leia
Página1234