Buscar

Ex01 PC pascal solução

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Programação de Computadores 
Solução do 1o Exercício 
1 – 
ALGORITMO RESPOSTA 
1a linha, 1a coluna 321 
1a linha, 2a coluna NÃO 
2a linha, 1a coluna DENTRO FIM 
2a linha, 2a coluna INICIO FORA 
3a linha, 1a coluna 4 
3a linha, 2a coluna B D 
4a linha, 1a coluna ERRO1 
4a linha, 2a coluna falso 
2 – 
ALGORITMO RESPOSTA 
1a linha, 1a coluna Determina o menor de três números quaisquer 
1a linha, 2a coluna Determina se dois números positivos são iguais 
2a linha, 1a coluna Determina se um nº é a raiz quadrada de outro 
2a linha, 2a coluna Determina se um nº é divisor comum de outros dois 
3 – 
{ Imprime quatro números em ordem contrária em que foram lidos } 
Algoritmo 
declare A, B, C, D numérico { números quaisquer } 
leia A, B, C, D { a ordem das variáveis neste comando é a ordem de entrada dos valores } 
 escreva D, C, B, A { a ordem das variáveis neste comando é a ordem de escrita } 
fim algoritmo 
4 – 
{ Converte um dado número decimal de dois dígitos para o binário correspondente } 
Algoritmo 
declare ND, NB { Número Decimal e Número Binário correspondente } 
 D1, D2,D3,D4,D5,D6,D7 { Dígitos binários } 
 numérico 
leia ND 
{ o maior número decimal de 2 dígitos é 99, que corresponde a um binário de 7 bits: 1100011 } 
{ Para decimais menores, os bits a mais serão iguais a zero, mais à esquerda, o que não altera o resultado } 
D1 ← Resto( ND, 2 ) { obtém o bit mais à direita do nº binário correspondente } 
ND ← Quociente( ND, 2 ) 
D2 ← Resto( ND, 2 ) { obtém o segundo bit mais à direita do nº binário correspondente, ... } 
ND ← Quociente( ND, 2 ) 
D3 ← Resto( ND, 2 ) 
ND ← Quociente( ND, 2 ) 
D4 ← Resto( ND, 2 ) 
ND ← Quociente( ND, 2 ) 
D5 ← Resto( ND, 2 ) 
ND ← Quociente( ND, 2 ) 
D6 ← Resto( ND, 2 ) 
ND ← Quociente( ND, 2 ) 
D7 ← Resto( ND, 2 ) 
NB ← D1 + D2x101 + D3x102 + D4x103 + D5x104 + D6x105 + D7x106 
 escreva NB 
fim algoritmo 
5 – 
{ Calcula a área de um triângulo pela fórmula de Hierão } 
Algoritmo 
declare a, b, c { medidas dos lados do triângulo } 
 s { semiperímetro } 
 A { área do triângulo } 
 numérico 
leia a, b, c 
s ← (a + b + c) / 2 
A = √ s x (s-a) x (s-b) x (s-c) 
 escreva A 
fim algoritmo 
6 – 
{ Encontra solução de um sistema de duas equações e duas incógnitas } 
Algoritmo 
declare a, b, c, d, e, f { coeficientes das equações } 
 x1, x2 { solução do sistema } 
 numérico 
leia a, b, c, d, e, f 
x1 ← (c x e – b x f) / (d x e – b x d) { se o denominador assumir o valor zero } 
x2 ← (a x f – e x d) / (a x e – b x d) { a execução do programa é abortada – erro em tempo de execução! } 
 escreva x1, x2 
fim algoritmo 
7 – 
{ Calcula a Raiz Média Quadrática de um conjunto de 6 números quaisquer } 
Algoritmo 
declare A, B, C, D, E, F, { conjunto de números fornecido } 
 RMQ { Raiz Média Quadrática } 
 numérico 
leia A, B, C, D, E, F 
RMQ ← √ (A2 + B2 + C2 + D2 + E2 + F2) / 6 
 escreva RMQ 
fim algoritmo 
8 – 
{ Determina o maior de dois números quaisquer } 
Algoritmo 
declare X, Y numérico { números quaisquer } 
leia X, Y 
 se X > Y então { no caso de X ser igual a Y, tanto faz escrever X ou Y } 
 escreva X 
senão 
 escreva Y 
 fim se 
fim algoritmo 
9 – 
{ Classifica em ordem crescente dois números quaisquer } 
Algoritmo 
declare X, Y numérico { números quaisquer } 
leia X, Y 
 se X < Y então { no caso de X ser igual a Y, tanto faz escrever primeiro X ou Y } 
 escreva X, Y 
senão 
 escreva Y, X 
 fim se 
fim algoritmo 
10– 
{ Verifica se um dado número é PAR ou IMPAR } 
Algoritmo 
declare N numérico { número inteiro qualquer } 
leia N 
 se Resto( N, 2 ) = 0 então 
 escreva “PAR” 
senão 
 escreva “ÍMPAR” 
fim se 
fim algoritmo 
11 – 
{ Escreve a mensagem POSITIVO, NEGATIVO ou ZERO, conforme o sinal de um número } 
Algoritmo 
declare N numérico { número qualquer } 
leia N 
 se N > 0 então 
 escreva “POSITIVO” 
senão 
 se N < 0 então 
 escreva “NEGATIVO” 
 senão 
 escreva “ZERO” 
fim se 
fim se 
fim algoritmo 
12– 
{ Escreve mensagem sinalizando se um dado número pertence ao intervalo fechado [0, 100] } 
Algoritmo 
declare N numérico { número qualquer } 
leia N 
 se N ≥ 0 e N ≤ 100 então 
 escreva “O NÚMERO PERTENCE AO INTERVALO” 
senão 
 escreva “O NÚMERO NÃO PERTENCE AO INTERVALO” 
fim se 
fim algoritmo 
 
13– 
{ Dado um número de 3 dígitos, determina o número formado pela inversão de seus dígitos } 
Algoritmo 
declare N { número inteiro de três dígitos } 
D1, D2, D3 { dígitos de N } 
numérico 
leia N 
 D3 ← Resto( N, 10 ) { dígito das unidades } 
 N ← Quociente( N, 10 ) 
 D2 ← Resto( N, 10 ) { dígito das dezenas } 
 D1 ← Quociente( N, 10 ) { dígito das centenas } 
 N ← (D3 x 100) + (D2 x 10) + (D1) { montagem do número invertido } 
 escreva N 
fim algoritmo 
14– 
{ Determina qual o conceito de um aluno de Programação de Computadores a partir de sua nota } 
Algoritmo 
 declare Nota numérico 
 declare Conceito literal 
leia Nota 
 Determine o conceito do aluno 
 escreva Conceito 
fim algoritmo 
ref: Determine o conceito do aluno 
se Nota >= 90 então { A Nota deve ser um número entre 0 e 100. Não é feita consistência de dados } 
 Conceito ← “A” 
 senão 
se Nota >= 80 então 
 Conceito ← “B” 
 senão 
se Nota >= 70 então 
 Conceito ← “C” 
 senão 
se Nota >= 60 então 
 Conceito ← “D” 
 senão 
se Nota >= 40 então 
 Conceito ← “E” 
 senão 
 Conceito ← “F” 
 fim se 
 fim se 
 fim se 
fim se 
fim se 
fim ref 
15 – 
{ Verifica se três medidas podem formar um triângulo, e de qual tipo } 
Algoritmo 
 declare A, B, C numérico 
 leia A, B, C 
 se A < B+C e B < A+C e C < A+ B então 
 Determine qual o tipo do triângulo 
senão 
 escreva “As medidas não formam um triângulo” 
fim se 
fim algoritmo 
ref: Determine qual o tipo do triângulo 
 se (A = B) e (B = C) então 
 escreva “Triângulo Equilátero” 
 senão 
 se A = B ou A = C ou B = C então 
 escreva “Triângulo Isóceles” 
senão 
 escreva “Triângulo Escaleno” 
fim se 
 fim se 
fim ref 
16– 
{ Determina quantoas notas de 50, 10 e 1 reais são necessárias para se pagar uma conta de buteco } 
Algoritmo 
declare ValorConta { valor da conta do buteco em reais } 
Notas50 { número de notas de 50 reais } 
Notas10 { número de notas de 10 reais } 
Notas1 { número de notas de 1 real } 
numérico 
leia ValorConta 
 Notas50 ← Quociente( ValorConta, 50 ) { multiplicidade do número 50 no valor da conta } 
 ValorConta ← Resto( ValorConta, 50 ) 
 Notas10 ← Quociente( ValorConta, 10 ) { quantidade de dezenas no restante do valor } 
 Notas1 ← Resto( ValorConta, 10 ) { número de unidades } 
 escreva Notas50, Notas10, Notas01 
fim algoritmo 
17 – 
{ Determina o maior valor dentre quatro números dados } 
Algoritmo 
 declare A, B, C, D numérico { quatro números quaisquer fornecidos na entrada } 
 leia A, B, C 
 se A > B e A > C e A > D então 
 escreva A 
 senão 
 Determine o maior valor dentre B, C e D 
 fim se 
fim algoritmo 
 
ref: Determine o maior valor dentre B, C e D 
se B > C e B > D então 
 escreva B 
 senão 
 Determine o maior valor dentre C e D 
 fim se 
fim se 
fim ref 
ref: Determine o maior valor dentre C e D 
se C > D então 
 escreva C 
 senão 
escreva D 
fim se 
fim ref 
18 – 
{ classifica três valores em ordem decrescente } 
Algoritmo 
 declare A, B, C { valores de entrada } 
 Primeiro { maior valor } 
 Segundo{ valor do meio } 
 Terceiro { menor valor } 
 numérico 
 leia A, B, C 
 se A>B e A>C então 
 Primeiro ← A 
 Ordena os dois valores B e C 
 senão 
 se B >C então 
 Primeiro ← B 
 Ordena os dois valores A e C 
 senão 
 Primeiro ← C 
 Ordena os dois valores A e B 
 fim se 
 fim se 
 escreva Primeiro, Segundo, Terceiro 
fim algoritmo 
ref: Ordena os dois valores B e C 
 se B > C então 
 Segundo ← B 
 Terceiro ← C 
 senão 
 Segundo ← C 
 Terceiro ← B 
 fim se 
fim ref 
ref: Ordena os dois valores A e C 
 se A > C então 
 Segundo ← A 
 Terceiro ← C 
 senão 
 Segundo ← C 
 Terceiro ← A 
 fim se 
fim ref 
ref: Ordena os dois valores A e B 
 se A > B então 
 Segundo ← A 
 Terceiro ← B 
 senão 
 Segundo ← B 
 Terceiro ← A 
 fim se 
fim ref 
Observação : 
Quando utilizar “refinamentos sucessivos” não é necessário montar a versão final do algoritmo. Isto será feito diretamente na etapa 
de codificação do programa. 
{ classifica três valores em ordem decrescente } 
Algoritmo 
 declare A, B, C { valores de entrada } 
 numérico 
 leia A, B, C 
 se A>B e A>C e B>C então 
 escreva A, B, C 
 fim se 
 se A>B e A>C e C>B então 
 escreva A, C, B 
 fim se 
 se B>A e B>C e A>C então 
 escreva B, A, C 
 fim se 
 se B>A e B>C e C>A então 
 escreva B, C, A 
 fim se 
 se C>A e C>B e A>B então 
 escreva C, A, B 
 fim se 
 se C>A e C>B e B>A então 
 escreva C, B, A 
 fim se 
fim algoritmo 
Observação: 
Aparentemente a segunda solução é melhor que a primeira, pois o algoritmo é menor. Contudo, podemos verificar que existe um 
padrão de raciocínio na primeira solução. Imagine que sejam quatro valores ao invés de três! 
Veremos adiante que a primeira solução pode ser “modularizada”, o que diminuirá o seu tamanho e a tornará muito mais simples. 
 
S
O
L
U
Ç
Ã
O 
 
A
L
T
E
R
N
A
T
I
V
A 
19 – 
{ Determina o maior dentre dez números quaisquer } 
Algoritmo 
declare A, B, C, D, E, F, G, H , I, J numérico { números quaisquer } 
leia A, B, C, D, E, F, G, H , I, J 
se A>B e A>C e A>D e A>E e A>F e A>G e A>H e A>I e A>J então 
 escreva A 
 senão 
 se B>C e B>D e B>E e B>F e B>G e B>H e B>I e B>J então 
 escreva B 
 senão 
 se C>D e C>E e C>F e C>G e C>H e C>I e C>J então 
 escreva C 
 senão 
se D>E e D>F e D>G e D>H e D>I e D>J então 
 escreva D 
 senão 
 se E>F e E>G e E>H e E>I e E>J então 
 escreva E 
 senão 
 se F>G e F>H e F>I e F>J então 
 escreva F 
 senão 
 se G>H e G>I e G>J então 
 escreva G 
 senão 
 se H>I e H>J então 
 escreva H 
 senão 
 se I>J então 
 escreva I 
 senão 
 escreva J 
 fim se 
 fim se 
 fim se 
 fim se 
 fim se 
 fim se 
 fim se 
fim se 
fim se 
fim algoritmo 
Observações: 
Solução estranha, não? 
Como daria trabalho se fossem 100 ou 1000 números! Dizemos que a solução é possível, mas impraticável. 
Este problema foi colocado na lista para mostrar que falta alguma coisa a mais na notação algorítimica. É isso. O que falta é o 
comando de repetição, que irá abrir novas possibilidades ao raciocínio e levar a soluções bem mais simples. 
O problema seguinte tem o mesmo propósito de mostrar a necessidade do comando de repetição. Observe a solução apresentada e 
imagine como seria para o caso de uma quantidade maior ainda de valores. 
 
20 – 
{ classifica cinco valores em ordem decrescente } 
Algoritmo 
 declare A, B, C, D, E { valores de entrada } 
 Primeiro { primeiro valor em magnitude } 
 Segundo { segundo valor em magnitude } 
 Terceiro { terceiro valor em magnitude } 
 Quarto { quarto valor em magnitude } 
 Quinto { quinto valor em magnitude } 
 numérico 
 leia A, B, C, D, E 
 se A>B e A>C e A>D e A>E então 
 Primeiro ← A 
 Ordena os quatro valores B, C, D e E 
 senão 
 se B >C e B>D e B>E então 
 Primeiro ← B 
 Ordena os quatro valores A, C, D e E 
 senão 
 se C>D e C>E então 
 Primeiro ← C 
 Ordena os quatro valores A, B, D e E 
 senão 
 se D >E então 
 Primeiro ← D 
 Ordena os quatro valores A, B, C e E 
 senão 
 Primeiro ← E 
 Ordena os quatro valores A, B, C e D 
 fim se 
 fim se 
 fim se 
 fim se 
 escreva Primeiro, Segundo, Terceiro, Quarto, Quinto 
fim algoritmo 
ref: Ordena os quatro valores B, C, D e E 
 se B > C e B > D e B > E então 
 Segundo ← B 
 Ordena os três valores C, D e E 
 senão 
 se C > D e C > E então 
 Segundo ← C 
 Ordena os três valores B, D e E 
 senão 
 se D > E então 
 Segundo ← D 
 Ordena os três valores B, C e E 
 senão 
 Segundo ← E 
 Ordena os três valores B, C e D 
 fim se 
 fim se 
 fim se 
fim ref 
ref: Ordena os quatro valores A, C, D e E 
 . . . 
fim ref 
ref: Ordena os quatro valores A,B, D e E . . . 
fim ref 
ref: Ordena os quatro valores A, B, C e E 
 . . . 
fim ref 
ref: Ordena os quatro valores A, B, C e D 
 . . . 
fim ref 
ref: Ordena os três valores C, D e E 
 se C > D e C > E então 
 Terceiro ← C 
 Ordena os dois valores D e E 
 senão 
 se D > E então 
 Terceiro ← D 
 Ordena os dois valores C e E 
 senão 
 Terceiro ← E 
 Ordena os dois valores C e D 
 fim se 
 fim se 
fim ref 
ref: Ordena os três valores B, D e E 
 . . . 
fim ref 
ref: Ordena os três valores B, C e E 
 . . . 
fim ref 
ref: Ordena os três valores B, C e D . . . 
fim ref 
ref: Ordena os dois valores D e E 
 se D > E então 
 Quarto ← D 
 Quinto ← E 
 senão 
 Quarto ← E 
 Quinto ← D 
 fim se 
fim ref 
ref: Ordena os dois valores C e E 
 . . . 
fim ref 
ref: Ordena os dois valores C e D . . . 
fim ref 
Comentários: 
Observe que para cada refinamento “Ordene os quatro valores...” que não foi desenvolvido surgirão outros quatro novos 
refinamentos do tipo “Ordene os três alores...” e assim por diante. 
Mais uma vez estamos diante de um problema cuja solução não é praticável. Imagine se fossem 10 ou 100 valores a serem 
ordenados!

Outros materiais