Sei sulla pagina 1di 10

Exerccios de Lgica n1 - Com Respostas Prof. Glaucio F. Schultz. (glaucio@eliasmoreira.com.

br)
Contedos Aplicados: variveis, atribuio,comandos de entrada e sada e estruturas de controle condicionais. 1. Escreva um algoritmo para ler o nmero total de eleitores de um municpio, o nmero de votos brancos, nulos e vlidos. Calcular e escrever o percentual que cada um representa em relao ao total de eleitores.

Resoluo em pseudocdigo:
inicio variveis ele_tot: numrico { varivel para armazenar o nmero total de eleitores} vot_bra: numrico { varivel para armazenar os votos em branco} vot_nul: numrico { varivel para armazenar os votos nulos} vot_val: numrico { varivel para armazenar o total de votos vlidos} calc: numrico { varivel que recebe o clculo do percentual de cada tipo} {comandos} escreva(Digite o nmero total de eleitores: ) leia(ele_tot) {armazena o total de eleitores} escreva(Digite o nmero total de votos em branco: ) leia(vot_bra) {armazena o total de votos em branco} escreva(Digite o nmero total de votos nulos: ) leia(vot_nul) {armazena o total de votos nulos} escreva(Digite o nmero total de votos vlidos: ) leia(vot_val) {armazena o total de votos vlidos} {comandos para calcular e mostrar os percentuais} calcvot_bra*100/ele_tot {calcula e armazena o percentual dos votos em branco} escreva(Percentual dos votos em branco: ,calc) calcvot_nul*100/ele_tot {calcula e armazena o percentual dos votos nulos} escreva(\nPercentual dos votos nulos: ,calc) calcvot_val*100/ele_tot {calcula e armazena o percentual dos votos vlidos} escreva(\nPercentual dos votos vlidos: ,calc) fim.

2. Escreva um algoritmo para ler o salrio mensal atual de um funcionrio e o percentual de reajuste. Calcular e escrever o valor do novo salrio. Resoluo em pseudocdigo:
inicio variveis sal_atu: numrico {varivel para armazenar o salrio atual} perc: numrico {varivel para armazenar o percentual de reajuste} sal_nov: numrico {varivel para armazenar o novo salrio} {comandos} escreva(Digite o salrio atual: ) leia(sal_atu) {armazena o salrio atual} escreva(Digite o percentual de aumento: ) leia(perc) {armazena o percentual de aumento} {comando para calcular e armazenar o novo salrio de acordo com o percentual} sal_novsal_atu*perc/100+sal_atu escreva(O novo salrio de : ,sal_nov) fim.

3. Escreva um algoritmo para ler um uma temperatura em graus Fahrenheit, calcular e escrever o valor correspondente em graus Celsius (baseado na frmula abaixo): C=F -32 Resoluo em pseudocdigo:
inicio variveis tem_f: numrico {varivel para armazenar a temperatura em fahrenheit} tem_c numrico {varivel para armazenar a temperatura em Celsius} {comandos} escreva(Digite a temperatura em Fahrenheit: ) leia(tem_f) {armazena a temperatura em fahrenheit} {comando para converter a temperatura fahrenheit em Celsius} tem_ctem_f - 32 escreva(A temperatura em Celsius de: ,tem_c) fim.

4. O custo de um carro novo ao consumidor a soma do custo de fbrica com a porcentagem do distribuidor e dos impostos (aplicados ao custo de fbrica). Supondo que o percentual do distribuidor seja de 28% e os impostos de 45%, escrever um algoritmo para ler o custo de fbrica de um carro e escrever o custo final ao consumidor. Resoluo em pseudocdigo:
inicio variveis cus_fab: numrico {varivel para armazenar o custo de fbrica} cus_con numrico {varivel para armazenar o custo para o consumidor} {comandos} escreva(Digite o custo de fbrica: ) leia(cus_fab) {armazena o custo de fbrica} {comando para calcular o custo para o consumidor } cus_con(cus_fab*28/100)+(cus_fab*45/100)+cus_fab escreva(O custo para o consumidor de: ,cus_con) fim.

5. Ler um valor e escrever se positivo ou negativo (considere o valor zero como positivo). Resoluo em pseudocdigo:
inicio variveis val: numrico {varivel para armazenar o valor} {comandos} escreva(Digite um valor: ) leia(val) {armazena o valor} {condicional composta para verificar se o valor positivo ou negativo} se(val>=0)ento escreva(Positivo){escreve positivo se a condio for verdadeiro} fim-se seno escreva(Negativo){escreve negativo se a condio anterior for falso} fim-seno fim.

6. Ler as notas da 1a. e 2a. avaliaes de um aluno. Calcular a mdia aritmtica simples e escrever uma mensagem que diga se o aluno foi ou no aprovado (considerar que nota igual ou maior que 6 o aluno aprovado). Depois escrever a mdia calculada.

Resoluo em pseudocdigo:
inicio variveis not1: numrico {varivel para armazenar o valor da nota 1} not2: numrico {varivel para armazenar o valor da nota 2} med: numrico {varivel para armazenar o valor da mdia} {comandos} escreva(Digite a nota 1: ) leia(not1) {armazena o valor da nota 1} escreva(Digite a nota 2: ) leia(not2) {armazena o valor da nota 2} med(not1+not2)/2 {calcula a mdia} {condicional composta para verificar a situao do aluno} se(med>=6)ento escreva(Aprovado) {escreve aprovado se a mdia for maior ou igual a 6} fim-se seno escreva(Reprovado) {escreve reprovado se a condio anterior for falso} fim-seno escreva(\nMdia: ,med) {escreve a mdia calculada} fim.

7. Ler dois valores (considere que no sero lidos valores iguais) e escrever o maior deles. Resoluo em pseudocdigo:
inicio variveis val1: numrico {varivel para armazenar o valor 1} val2: numrico {varivel para armazenar o valor 2} {comandos} escreva(Digite o valor 1: ) leia(val1) {armazena o valor 1} escreva(Digite o valor 2: ) leia(val2) {armazena o valor 2} {condio para verificar se o valor 1 maior do que o valor 2} se(val1>=val2)ento escreva(Maior valor : ,val1) {exibe o valor 1 se a condio for verdadeiro} fim-se seno escreva(Maior valor : ,val2) {escreve o valor 2 se a condio anterior for falso} fim-seno fim.

8. Desenvolver um algoritmo para ler trs valores (considere que no sero informados valores iguais) decimais e mostrar: a. se positivo, negativo ou zero. b. escrever o maior deles c. escrever a soma dos dois maiores d. escrev-los em ordem crescente.
inicio variveis val1: numrico {varivel para armazenar o valor 1} val2: numrico {varivel para armazenar o valor 2} val3: numrico {varivel para armazenar o valor 3} som: numrico {varivel para armazenar a soma dos dois maiores valores} {comandos} escreva(Digite o valor 1: ) leia(val1) {armazena o valor 1} escreva(Digite o valor 2: ) leia(val2) {armazena o valor 2} escreva(Digite o valor 3: ) leia(val3) {armazena o valor 3} {comandos para resolver o item a:} {condies para testar o valor 1} se(val1>0)ento {se valor 1 for maior do que zero} escreva(Valor 1 positivo) fim-se seno-se(val1<0)ento {se a condio anterior for falsa e o valor 1 menor do que zero} escreva(Valor 1 negativo) fim-seno se seno {se as condies forem falsas} escreva(Valor 1 zero) fim-seno {condies para testar o valor 2} escreva(\n) se(val2>0)ento {se valor 2 for maior do que zero} escreva(Valor 2 positivo) fim-se seno-se(val2<0)ento {se a condio anterior for falsa e o valor 2 menor do que zero} escreva(Valor 2 negativo) fim-seno se seno {se as condies forem falsas} escreva(Valor 2 zero) fim-seno {condies para testar o valor 3} escreva(\n) se(val3>0)ento {se valor 3 for maior do que zero} escreva(Valor 3 positivo) fim-se

seno-se(val3<0)ento {se a condio anterior for falsa e o valor 3 menor do que zero} escreva(Valor 3 negativo) fim-seno se seno {se as condies forem falsas} escreva(Valor 3 zero) fim-seno {comandos para resolver o item b:} escreva(\n) se(val1>val2 e val1>val3)ento{se o valor 1 for maior que o valor 2 e o valor3} escreva(O maior valor : ,val1){O valor 1 o maior} fim-se seno-se(val2>val3)ento {se a condio anterior for falso e valor 2 for maior que o 3} escreva(O maior valor :,val2){O valor 2 o maior} fim-seno se seno {se as condies anteriores forem falsas} escreva(O maior valor : ,val3){O valor 3 o maior} fim-seno {comandos para resolver o item c:} se(val1>val3 e val1<val2)ento{verifica se o valor 1 e o valor 2 so os maiores } somval1+val2 {soma os dois maiores valores} fim-se seno se(val1>val2 e val1<val3)ento{verifica se o valor 1 e o valor 3 so os maiores} somval1+val3 {soma os dois maiores valores} fim-seno se seno {se as condies anteriores forem falsas a valor 2 e valor 3 so maiores} somval2+val3 {soma os dois maiores valores} fim-seno escreva(\nA soma dos dois maiores valores : ,som){mostra o resultado da soma} { comandos para resolver o item d abaixo as possibilidades de ordenao dos trs valores: Condies Ordem de Classificao Crescente 1) val1 < val2 < val3 = valor 1, valor 2 e valor 3 2) val1 < val3 < val2 = valor 1, valor 3 e valor 2 3) val2 < val1 < val3 = valor 2, valor 1 e valor 3 4) val2 < val3 < val1 = valor 2, valor 3 e valor 1 5) val3 < val2 < val1 = valor 3, valor 2 e valor 1 6) val3 < val1 < val2 = valor 3, valor 1 e valor 2} se(val1 < val2 e val2 < val3)ento { val1 < val2 < val3} escreva(\n,val1,, ,val2, e ,val3) fim-se seno se(val1 < val3 e val3 < val2)ento {val1 < val3 < val2} escreva(\n,val1,, ,val3, e ,val2) fim-seno se seno se(val2 < val1 e val1 < val3)ento {val2 < val1 < val3} escreva(\n,val2,, ,val1, e ,val3) fim-seno se seno se(val2 < val3 e val3 < val1)ento {val2 < val3 < val1} escreva(\n,val2,, ,val3, e ,val1) fim-seno se seno se(val3 < val2 e val2 < val1)ento {val3 < val2 < val1} escreva(\n,val3,, ,val2, e ,val1) fim-seno se seno {val3<val1<val2} escreva(\n,val3,, ,val1, e ,val2) fim-seno fim.

9. Ler 3 valores (A, B e C) representando as medidas dos lados de um tringulo e escrever

se formam ou no um tringulo. OBS: para formar um tringulo, o valor de cada lado deve ser menor que a soma dos outros 2.
inicio variveis lado_a: numrico {varivel para armazenar a medida do lado a} lado_b: numrico {varivel para armazenar a medida do lado b} lado_c: numrico {varivel para armazena a medida do lado c} {comandos} escreva(Fornea a medida do lado A: ) leia(lado_a) {armazena o lado a} escreva(Fornea a medida do lado B: ) leia(lado_b) {armazena o lado b} escreva(Fornea a medida do lado C: ) leia(lado_c) {armazena o lado c} {condio que verifica se a soma dois lados maior do que o outro} se(((lado_a + lado_b) > lado_c) ou ((lado_a + lado_c)>lado_b) ou ((lado_b + lado_c)>lado_a))ento escreva(No tringulo.) fim-se seno escreva( tringulo) fim-seno fim. 10. Ler a hora de incio e fim de um jogo de Xadrez (considere apenas horas inteiras,

sem os minutos) e calcule a durao do jogo em horas, sabendo-se que o tempo mximo de durao do jogo de 24 horas e que o jogo pode iniciar em um dia e terminar no dia seguinte.
inicio variveis hor_ini: numrico {varivel para armazenar a hora de incio} hor_fim: numrico {varivel para armazenar a hora final} calc_hor: numrico {varivel para armazena o clculo da hora} {comandos} escreva(Hora Inicial: ) leia(hor_ini) {armazena o horrio inicial} escreva(Hora Final: ) leia(hor_fim) {armazena o horrio final} {se o horrio inicial for maior do que o final} se(hor_ini > hor_fim)ento calc_hor (24-hor_ini)+hor_fim fim-se seno calc_horhor_fim-hor_ini fim-seno escreva(Durao: ,calc_hor) fim.

11. A jornada de trabalho semanal de um funcionrio de 40 horas. O funcionrio que

trabalhar mais de 40 horas receber hora extra, cujo clculo o valor da hora regular com um acrscimo de 50%. Escreva um algoritmo que leia o nmero de horas trabalhadas em um ms, o salrio por hora e escreva o salrio total do funcionrio, que dever ser acrescido das horas extras, caso tenham sido trabalhadas (considere que o ms possua 4 semanas exatas).
inicio variveis hor_tra_mes: numrico {varivel para armazenar o nmero de horas trabalhadas no ms} val_sal_hor: numrico {varivel para armazena o salrio por hora} val_sal_mes: numrico {varivel para armazenar o clculo do salrio do ms} {comandos} escreva(Fornea o nmero de horas trabalhadas no ms: ) leia(hor_tra_mes) {armazena as horas trabalhadas} escreva(Fornea o valor da hora: ) leia(val_sal_hor) {armazena o valor por hora} val_sal_mes(hor_tra_mes * val_sal_hor) {calcula o valor do salrio do ms} se(hor_tra_mes > 160)ento {se existirem horas extras} {adiciona 50% sobre as horas extras} val_sal_mes val_sal_mes+((hor_tra_mes-160)*val_sal_hor)*0,5 fim-se escreva(Salrio: ,val_sal_mes) fim.

12. As mas custam R$ 1,30 cada se forem compradas menos de uma dzia, e R$ 1,00

se forem compradas pelo menos 12. Escreva um programa que leia o nmero de mas compradas, calcule e escreva o custo total da compra.
inicio variveis num_mac : numrico {varivel para armazenar o nmero de mas} val_com: numrico {varivel para armazena o clculo do valor da compra} {comandos} escreva(Fornea a quantidade de mas: ) leia(num_mac) {armazena a quantidade de mas} se(num_mac >= 12)ento {se forem compradas 12 ou mais mas} val_comnum_mac * 1 {aplica 1 real para calcular o valor da compra} fim-se seno val_comnum_mac * 1.3 {aplica 1.3 reais para calcular o valor da compra} fim-seno escreva(Salrio: , val_com) fim.

13. Ler o nome de 2 times e o nmero de gols marcados na partida. Escrever o nome do

vencedor. Caso no haja vencedor dever ser impressa a palavra EMPATE.


inicio variveis nom_tim1: caractere {varivel para armazenar o nome do time 1} nom_tim2: caractere {varivel para armazenar o nome do time 2} gol_tim1: numrico {varivel para armazenar o nmero de gols do time 1} gol_tim2: numrico {varivel para armazenar o nmero de gols do time 2} {comandos} escreva(Digite o nome do time 1: ) leia(nom_tim1) {armazena o nome do time 1} escreva(Digite o nome do time 2: ) leia(nom_tim2) {armazena o nome do time 2} escreva(Fornea o nmero de gols do time 1:) leia(gol_tim1) {armazena o nmero de gols do time 1} escreva(Fornea o nmero de gols do time 2:) leia(gol_tim2) {armazena o nmero de gols do time 2} se(gol_tim1>gol_gol_tim2)ento escreva(Vencedor: ,nom_tim1) {se o nmero de gols do time 1 for maior do que o do time 2} fim-se seno se (gol_tim2>gol_tim1)ento escreva(Vencedor: ,nom_tim2) {se o nmero de gols do time 2 for maior do que o do time 1} fim-seno se seno escreva(Empate) {se as condies anteriores forem falsas} fim-seno fim.

14. Um posto est vendendo combustveis com a seguinte tabela de descontos: lcool Gasolina at 20 litros, desconto de 3% por litro acima de 20 litros, desconto de 5% por litro at 20 litros, desconto de 4% por litro acima de 20 litros, desconto de 6% por litro

Escreva um algoritmo que leia o nmero de litros vendidos, o tipo de combustvel (codificado da seguinte forma: A-lcool, G-gasolina), calcule e imprima o valor a ser pago pelo cliente sabendo-se que o preo do litro da gasolina R$ 2,20 o preo do litro do lcool R$ 1,90. PUBLICAREI A RESPOSTA DO PROBLEMA N 14 EM BREVE!!

Potrebbero piacerti anche