EXERCÍCIOS DE LÓGICA DE PROGRAMAÇÃO – PROF. SÉRGIO BRUGNOLO
Completar os demais valores que serão impressos:
1. Desenvolva um algoritmo em Portugol que verifique se um número
inteiro é negativo. Se for, calcule o seu módulo. Imprima o número.
R
Volume da Esfera
0
0
2. Crie um algoritmo em Portugol que imprima em ordem decrescente
2
33,51
três números reais fornecidos pelo usuário.
...
...
3. Construa um algoritmo em Portugol que, fornecidos o dia e o mês
(em números inteiros), verifique e imprima se aquele dia realmente
existe naquele mês. Exemplo: dia 31 e mês 2 não existe; dia 20 e
mês 7 ok; dia 0 e mês 5 não existe.
4. Escreva um algoritmo em Portugol que transforme o grau Celsius
dado pelo usuário em Fahrenheit. Lembrete: F = C * (9/5) + 32.
5. Implemente um algoritmo em Portugol que, dados 3 ângulos pelo
usuário, verifique se os mesmos são ângulos internos de um triângulo.
Para isso a soma dos 3 ângulos deve ser sempre igual a 180. Se
forem, calcule e imprima os 3 ângulos externos, lembrando que todo
ângulo externo de um triângulo é igual a soma dos dois ângulos
internos não adjacentes – exemplo: ângulo externo A = ângulo interno
b + ângulo interno c.
6. Dado o trecho de algoritmo abaixo, que calcula o volume de uma
esfera de raio R:
início
volume0;
PI3,1416;
R0;
enquanto R<=6 faça
início
volume4/3*PI*(R*R*R);
imprima(R,volume);
RR+2;
fim enquanto;
fim.
7. Encontre o erro de lógica do trecho do algoritmo a seguir:
...
i0;
enquanto i<20 faça
início
imprima (i, i*i);
i  i - 1;
imprima (‘i=’,i);
fim_enquanto;
imprima (‘UFA! CHEGUEI AQUI!’);
...
8. Desenvolva um algoritmo que imprima os números ímpares de 0 a
100.
9. Desenvolva um algoritmo que, dado um número qualquer, imprima
os 30 anteriores ao mesmo. Utilize uma estrutura de repetição.
10. Fornecido um número positivo e real qualquer, escreva um
algoritmo que imprima os 15 números antecessores a este e os 15
próximos também. Utilize obrigatoriamente estrutura de repetição
(qualquer).
11. Elaborar um algoritmo em Portugol que calcule o fatorial de um
número inteiro fornecido pelo usuário. Exemplo: 6! = 6.5.4.3.2.1.
Lembrete: Fatorial de zero é 1; e não existe fatorial de número
negativo.
12. Fornecido o valor de x, calcule a equação a seguir através de um
algoritmo em Portugol: x2 + x – 1.
1
EXERCÍCIOS DE LÓGICA DE PROGRAMAÇÃO – PROF. SÉRGIO BRUGNOLO
20. Escreva um algoritmo que calcule o volume (V) de um cone, onde
13. Crie um algoritmo em Portugol que verifica se um número é par,
π .r 2 .h
V
=
ímpar ou nulo. Lembre-se de utilizar a função MOD para obter o resto
3 .
r e h são dados pelo usuário e π é igual a 3.1416.
da divisão inteira.
14. Fornecidos 4 números inteiros, implemente um algoritmo em
Portugol que imprima o maior deles.
15. Implemente um algoritmo que calcule o binômio de Newton na
terceira potência notável: a3+3a2b+3ab2+b3. Para tanto, o usuário deve
digitar os valores de a e b.
16. Utilizando o comando Enquanto-Faça, desenvolva um algoritmo
em Portugol que imprima a tabuada do 8, começando do zero.
17. Escreva um algoritmo em Portugol que calcule a hipotenusa (a)
conforme o Teorema de Pitágoras. O usuário deve digitar os valores
dos catetos b e c. Teorema: a2 = b2 + c2. Se necessário, utilize a
função de raiz quadrada SQRT.
18. A Energia Potencial Gravitacional (EPG) está relacionada com a
posição que um corpo ocupa no campo gravitacional terrestre e sua
capacidade de vir a realizar trabalho mecânico. EPG = m.g.h, onde m
é a massa do corpo, g é a aceleração gravitacional e h é a altura em
relação ao nível de referência. Portanto, crie um algoritmo em Portugol
que, fornecidos m, g e h, calcule a Energia Potencial Gravitacional.
19. Implemente um algoritmo em Portugol que calcule a velocidade de
escoamento de fluídos através de pequenos orifícios (VB). Serão
digitados a aceleração gravitacional g e altura em relação ao nível de
referência h. Fórmula:
SQRT.
VB = 2.g.h ; utilize a função de raiz quadrada
21. Um dado comerciante sempre calcula o preço de venda dos seus
produtos com uma margem de aumento x%. Portanto, construa um
algoritmo em Portugol que, dados o valor de custo e a margem de
aumento, imprima o preço de venda.
22. Fornecidas as idades de quatro irmãos, construa um algoritmo em
Portugol que imprima a idade do irmão caçula e do mais velho.
23. Em uma operação bancária, mais especificamente no pagamento
de um boleto, cobram-se juros e multa se houver atraso na quitação. A
multa geralmente corresponde a um percentual (%) de aumento sobre
o valor a pagar, e os juros são valores em reais de acréscimos diários.
Portanto, implemente um algoritmo em Portugol que calcule e imprima
o valor final a pagar. Para isso, considere:
• O usuário fornecerá o valor inicial a pagar, o valor dos juros e o
percentual de multa.
• Valores da multa e dos juros igual a –1, implica que o valor final a
pagar será igual ao valor inicial, ou seja, não haverá o cálculo de
multa de juros.
24. Dados três números inteiros pelo usuário, construa um algoritmo
em Portugol que imprima o número intermediário, ou seja, nem o
maior nem o menor.
25. Explique o que é um Algoritmo.
26. Suponha que irá telefonar para seu amigo. Você está em um
orelhão, com o cartão telefônico no bolso da sua calça. Descrever o
algoritmo que irá executar até o momento em que terminar de teclar o
último dígito do número do telefone do seu amigo.
27. Para que serve o conectivo condicional Se-Então?
2
EXERCÍCIOS DE LÓGICA DE PROGRAMAÇÃO – PROF. SÉRGIO BRUGNOLO
40.
28. Descreva a função do conectivo repetitivo Enquanto-Faça.
Início
Afalso;
29. Defina programa e linguagem de programação.
Bverdadeiro;
Cfalso;
30. O que visa a metodologia de projeto de programas da
X1,5;
Y3,2;
Programação Estruturada?
XX+1;
31. Quais são os 3 níveis da Programação Estruturada onde pode-se
se C ou (X+Y>5) ou (não A e B)
reduzir a complexidade? Explique cada um.
então L0;
senão L1;
32. Como sabe-se que um identificador é válido? Quais abaixo são
fim se;
válidos?
Fim.
a) PROG1
b) 2A
c) 1CONTA
Qual o valor de L após a execução deste trecho de algoritmo?
d) 25
e) XY4
f) K
41. O que será impresso depois de executado o trecho de algoritmo
33. Cite 3 tipos de variáveis. Dê exemplos.
seguinte, se:
34. Defina Variável.
41.1. NUM  10;
35. Estabeleça as prioridades entre os operadores lógico, aritmético e
relacional (Monte uma tabela).
41.2. NUM  0;
36. Para que serve o comando Leia do Portugol?
41.3. NUM  −4;
início
37. Para que serve o comando Imprima do Portugol?
NUM  {um dos valores acima};
se NUM>0
então QUALE  ‘Número Positivo’
senão
se NUM<0
então QUALE  ‘Número Negativo’
senão QUALE  ‘Zero’;
imprima(QUALE);
38. Desenvolva um algoritmo em Portugol que calcule a seqüência a
seguir até o 30º termo: 1, 2, 2, 4, 8, 32, 256... A seqüência é calculada
multiplicando os dois números anteriores.
39. Implemente um algoritmo em Portugol que leia 50 números inteiros
e positivos, e imprima o maior e menor deles.
fim.
42. Faça um algoritmo que calcule a soma de 3 números fornecidos
pelo usuário.
3
EXERCÍCIOS DE LÓGICA DE PROGRAMAÇÃO – PROF. SÉRGIO BRUGNOLO
a) 5 * 6 + 3 ^ 2 / 2 - 2 ^ 2 / 2 ^ 3
Ache os erros dos trechos de algoritmos 43 e 44, se existirem:
b) (2 ^ 7 - 10 ** 2) / 7 - 4 ^ 2 + 3 * 4
43.
c) 15 * 3 - 5 * 6 + 3 ^ 3 / 9 - (2 * 8 + 2 * 2) / 10
início
d) 4 ^ (1 / 2) + 5 * 9 - 3 ^ 2 * (2 + 3) + 3 * 6 / 2
AREA=0;
e) 3 * 9 / 27 - 1 ^ 10 + (14 / 7 + 32 / 4) / 5
VOLUME=0;
leia AREA, VOLUME;
47. Verifique se as alternativas a seguir são verdadeiras ou falsas:
SOMAAREA+VOLUME
a) (5 * 6 + 3 ** 2 / 2 - 2 ** 2 / 2 ** 3) > (5 - 2 ** (16 / 8))
imprima SOMA;
b) (3 * 9 / 27 - 1 ** 10) = (5 * 10 - 5 ** 2 * 2)
fim se.
c) (15 * 3 - 5 * 6 - 4 ** 2) <= (16 + 4 - 5 * 4)
d) ((2 ** 7 - 10 ** 2) / 7 - 4 ** 2 + 3 * 4) <> (3 * 6 / 2 + 1)
44.
e) (0,9 + 10 ** (25 - 6 * 4)) >= (1 / 2 + 10 ** (-1) + 10 / 25)
início
valor0;
48. Se A=127, B=10, C=5, D=Falso e E=Verdadeiro. Qual é o valor
leia(valor);
produzido por cada uma das sentenças abaixo?
se valor>0
a) não D
e) (D e E) ou (A=B)
b) D e E
f ) (D ou E) e (A<B)
então imprima(“Número Negativo”);
senão
c) (A>B) ou (B<C)
g) A+B < C e D ou E e não D
d) não (A<B)
h) A+B*C/B = 3 e não (D ou E)
se valor<0
então imprima(“Número Positivo”);
senão
49. Qual é a primeira operação executada em cada um dos comandos
abaixo?
se valor=0
a) X + Y - Z
d) Maria + João + Bete * Júlia
imprima(‘Número Nulo (0)’);
fim.
b) A + B / C ^ 2
e) X + Y + B ^ 2 + R * 3
c) João + José / Joel
f)A*B/C*D
45. Fazer um algoritmo que: dado três valores A, B e C, verificar se
eles podem ser valores dos lados de um triângulo e, se for, se é
50. Qual a diferença entre os comandos Repita-Até e Enquanto-Faça?
triângulo qualquer, equilátero ou isósceles.
Observações:
51. Compare os comandos: Escolha-Caso-Senão e Se-Então-Senão.
• Para serem valores de um triângulo os lados individualmente tem
que ser menores que a soma dos outros dois.
• Triângulo equilátero tem 3 lados iguais.
• Triângulo isósceles tem 2 lados iguais.
• Triângulo qualquer tem os 3 lados diferentes.
46. Resolva as expressões a seguir:
4
EXERCÍCIOS DE LÓGICA DE PROGRAMAÇÃO – PROF. SÉRGIO BRUGNOLO
52. Observe o exemplo abaixo, que calcula o resto de uma divisão
Para saber o Dia da Semana basta dividir por 7 e entrar com o resto
inteira.
na tabela abaixo:
Se 1997:23=86,826086, então o quociente aproximado é 86. O resto
0
Segunda
será: 1997-(86x23) 86x23=1978. Daí, 1997-1978=19 O resto é
1
Terça
19.
2
Quarta
Para conseguir a parte inteira de um número, declare a variável que
3
Quinta
receberá este número como tipo inteiro.
4
Sexta
Logo, crie um algoritmo em Portugol, que fornecidos dois números
5
Sábado
(dividendo e divisor), calcule e imprima o quociente e o resto da
6
Domingo
divisão inteira.
Programe um algoritmo em Portugol que, fornecidos o dia, mês e ano
(não esqueça de verificar se são válidos), calcule e imprima o dia do
53. A sequência de Fibonacci (lê-se: fibonati), é uma função f:N N,
século e da semana.
onde:
f(N)={1,1,2,3,5,8,13,21,34,55,89,144,233,377,...}
57. Leia com atenção o texto a seguir sobre Física Nuclear:
A partir do 3º elemento (inclusive), os próximos são as somas dos dois
Com o passar do tempo e na ausência de uma teoria detalhada para
anteriores.
descrever a estrutura nuclear, vários modelos foram desenvolvidos,
Portanto, desenvolva um algoritmo em Portugol que calcule e imprima
cada qual correlacionando os dados experimentais de um conjunto
os 50 primeiros elementos da série de Fibonacci.
mais ou menos limitado de fenômenos nucleares. Entre os modelos
formulados está o modelo de gás de Fermi, o modelo uniforme, o
54. Fornecidos 3 números inteiros (i, j, k), onde i é o início e j o final de
modelo de partícula a, o modelo da gota líquida e o modelo nuclear de
um intervalo de números. Escreva um algoritmo em Portugol que
camadas. Com o modelo da gota líquida foi desenvolvida a seguinte
imprima os números pares do intervalo e verifique se k pertence ou
fórmula semi-empírica para o cálculo da energia de ligação nuclear:
não a este intervalo.
E = av.A – ac.Z.(Z-1).A – 1/3 – as.A.2/3 – ar.(A-2.Z).2.A – 1 + api.A – 1
onde um dos possíveis conjuntos de valores (em MeV) para as
55. De um grupo de 200 animais de um zoológico, deseja-se saber
constantes av, ac, as, ar e api, obtidos por ajustes de curvas
quantos são ovíparos, ovovivíparos, ovulíparos e vivíparos. Portanto,
experimentais, é o seguinte:
implemente um algoritmo em Portugol para resolver isso.
av = 14,0;
ac = 0,584;
56. O Dia do século é o número de dias decorridos desde o inicio do
as = 13,1;
século (1º de janeiro de 1901) até a data em questão. Se usa como
ar = 19,4;
referência 1901 porque a maioria das datas com as quais se trabalha
api = 135.α;
ainda são do século passado. Lá por 2040 ou mais poderá se mudar
com α=+1 para núcleos par-par (Z par e N par), α=0 para núcleos parpara 2001.
ímpar (Z par e N ímpar ou Z ímpar e N par) e α=-1 para núcleos
A fórmula (válida para datas entre 1901 e 2099) é a seguinte:
ímpar-ímpar (Z ímpar e N ímpar).
DIA_DO_SECULO = (ANO - 1901) * 365 + (ANO - 1901) DIV 4 + DIA
Portanto, fornecidos A (número de Núcleos), Z (Prótons) e N
+ (MES - 1) *31 - [(MES * 4 + 23) DIV 10] * [(MES + 12) DIV 15] + [(4 (Nêutrons), calcule e imprima E (Energia de Ligação Nuclear).
ANO MOD 4) DIV 4) * [(MES + 12) DIV 15]
5
EXERCÍCIOS DE LÓGICA DE PROGRAMAÇÃO – PROF. SÉRGIO BRUGNOLO
62.2. Se B1=falso, B2=verdadeiro, B3=falso, quais os comandos que
58. Dados os valores inteiros dia, mês e ano, escreva a data por
extenso: 27/05/2008 27 de Maio de 2008. Não se esqueça de
serão executados?
verificar se os dados fornecidos são válidos. Por exemplo, não existe
62.3. Quais os valores de B1, B2, B3 para que somente o comando
dia 30 em fevereiro, nem 32 em setembro, muito menos mês 18.
C5 seja executado?
62.4. Se B1=falso, B2=verdadeiro, B3=verdadeiro, quais os comandos
59. Em uma criação de 300 avestruzes são necessárias as
que serão executados?
informações: maior peso, menor peso e média de peso. Escreva um
algoritmo em Portugol que calcule e imprima estas informações.
63. Melhore os trechos de algoritmos a seguir, utilizando estruturas de
repetição:
60. Faça um algoritmo em Portugol que fornecido um número entre 1
e 12, imprima o mês por extenso correspondente.
63.2.
63.1.
Início
Início
61. Construir um algoritmo em Portugol para fazer a soma de vários
total0;
total0;
valores inteiros e positivos, fornecidos em cartões. O último cartão tem
leia(valor);
leia(valor);
o valor -1.
totaltotal+valor;
se valor<0
leia(valor);
então
62.
totaltotal+valor;
valorvalor*(-1);
........
leia(valor);
totaltotal+valor;
se B1
totaltotal+valor;
leia(valor);
leia(valor);
então C1
se valor<0
senão
totaltotal+valor;
então
leia(valor);
se B2
valorvalor*(-1);
então
totaltotal+valor;
totaltotal+valor;
se B3
leia(valor);
leia(valor);
então C2
totaltotal+valor;
se valor<0
senão
leia(valor);
então
início
totaltotal+valor;
valorvalor*(-1);
imprima(‘O total é ‘, total);
totaltotal+valor;
C3;
C4;
fim.
leia(valor);
se valor<0
fim_se;
C5;
então
........
valorvalor*(-1);
Dado um trecho do algoritmo em Portugol acima, responda:
totaltotal+valor;
imprima(‘O total é ‘, total);
fim.
62.1. Se B1=verdadeiro, B2=verdadeiro, B3=falso, quais os comandos
(Cn) que serão executados?
6
Download

EXERCÍCIOS DE LÓGICA DE PROGRAMAÇÃO