O documento apresenta respostas de exercícios de um livro de Algoritmos e Programação de Computadores. São fornecidas soluções detalhadas para problemas envolvendo transporte de produtos, cálculo de animais em um cercado e expressões matemáticas.
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Algoritmos para cálculos matemáticos
1. Página: 1
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
C A P Í T U L O 1
As respostas deste capítulo já constam no livro impresso.
2. Página: 2
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
C A P Í T U L O 2
1) Um furgão de um frigorífico tem a capacidade de transportar 200 peças de
frios ou 500 potes de manteiga. Você acabou de ser contratado pelo dono do
frigorífico para desenvolver um algoritmo que possibilite o planejamento
adequado do transporte dos produtos. Geralmente, se tem uma quantidade do
pedido (frios ou potes). O algoritmo deve calcular e fornecer a quantidade do
segundo produto (para que o furgão sempre transporte sua capacidade máxima).
1º Ler o enunciado do problema
Leia com atenção, destacando as variáveis existentes.
2º Interpretar o texto e as imagens
Temos que imaginar aqui a situação, formando as imagens mentais... o
caminhão, as peças de frios, os potes de manteiga, e a relação entre
potes e peças.
3º. Identificar os dados e as relações
Número de peças de frios (até um total de 200)
Número de potes de manteiga (até um total de 500)
4º Definir as incógnitas
peças e potes
5º Escrever as equações
Podemos utilizar a regra de 3 simples:
200 peças está para 500 potes, assim como:
X peças está para Y potes.
3. Página: 3
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
Dependendo do que será fornecido, isola-se X ou Y.
6º Resolver o sistema de equações
X = (Y*200)/500
Y = (X*500)/200
7º Indicar a equações e o domínio
Para calcular o total de peças... X = (Y*200)/500
Para calcular o total de potes... Y = (X*500)/200
8º Indicar a solução do problema
Se for passado o total de potes (Y) teremos:
X = (Y*200)/500
Se for passado o total de peças (X) teremos:
Y = (X*500)/200
9º Responder ao problema
Se for passado o total de potes (Y) teremos:
X = (Y*200)/500
Se for passado o total de peças (X) teremos:
Y = (X*500)/200
FLUXOGRAMA
4. Página: 4
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
INÍCIO
FIM
ENTRAR
COM
(P)EÇAS OU
PO(T)ES?
OP
OP = “P”
X Y
Y=(X*500)/200 X=(Y*200)/500
X PEÇAS E Y
POTES
PORTUGUES ESTRUTURADO
VAR
X,Y: REAL
OP: CARACTER;
INICIO
ESCREVA(“ENTRAR COM (P)EÇAS OU PO(T)ES?”)
LEIA(OP)
5. Página: 5
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
SE (OP = “P”) ENTAO
LEIA(X)
Y=(X*500)/200
ESCREVA(X, “ PEÇAS E “, Y, “ POTES.”)
SENAO
LEIA(Y)
X=(Y*200)/500
ESCREVA(X, “ PEÇAS E “, Y, “ POTES.”)
FIMSE
FIMALGORITMO
2) Um fazendeiro acabou de montar um cercado. Nele, o fazendeiro colocou
galinhas e coelhos compartilhando o mesmo espaço. O fazendeiro gostaria que
você fizesse um algoritmo que determinaria a quantidade de coelhos e a
quantidade de galinhas, apenas informando os números totais de cabeças e de pés
existentes no cercado.
1º Ler o enunciado do problema
Leia com atenção, destacando as variáveis existentes.
2º Interpretar o texto e as imagens
Temos que imaginar aqui a situação, formando as imagens mentais...
as galinhas e os coelhos. Pensar que as galinhas possuem dois pés e
os coelhos 4 pés.
3º. Identificar os dados e as relações
Como já dito, as galinhas possuem 2 pés e os coelhos 4 pés. Cada um
possui apenas uma cabeça.
4º Definir as incógnitas
6. Página: 6
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
O número de cabeças de galinhas (g)
O número de cabeças de coelhos (c)
O número de pés de galinhas (pg)
O número de pés de coelhos (pc)
Número total de cabeças (t)
O número total de pés (pt)
5º Escrever as equações
t = g + c
pt = pg + pc
pt = 2*g + 4*c
6º Resolver o sistema de equações
t = g + c
pt = 2*g + 4*c
7º Indicar a equações e o domínio
Isolando uma das variáveis e aplicando a outra:
g = t – c
pt = 2(t-c) + 4*c pt = 2t – 2c + 4c pt = 2t + 2c
ou
c = t – g
pt = 2*g + 4(t-g) pt = 2g + 4t – 4g pt = 4t – 2g
8º Indicar a solução do problema
Uma vez passado o total de pés (pt) e de cabeças (t) utiliza-se as
equações acima para se chegar ao número de galinhas e coelhos.
pt = 2t + 2c
7. Página: 7
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
substitui-se em g = t – c e pronto!
9º Responder ao problema
Supondo 24 pés e 8 cabeças, qual o número de galinhas e coelhos no
cercado?
pt = 2t+2c 24 = 2*8 + 2*c 24 – 16 = 2c
8 / 2 = c c = 4
g = 8 – 4 g = 4
Dessa forma, temos 4 galinhas e 4 coelhos.
FLUXOGRAMA
INÍCIO
FIM
C = (PT-2*T)/2
G=T-C
ENTRE COM
O TOTAL DE
PES
PT
ENTRE COM
O TOTAL DE
CABEÇAS
T
NO
CERCADO
EXISTEM:
C COELHOS E
G GALINHAS
8. Página: 8
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
PORTUGUES ESTRUTURADO
VAR
G,C,T,PT,PG,PC: REAL
INICIO
ESCREVA(“ENTRE COM O TOTAL DE PES:”)
LEIA(PT)
ESCREVA(“ENTRE COM O TOTAL DE CABEÇAS:”)
LEIA(T)
C = (PT – 2*T)/2
G = T - C
ESCREVA(“NO CERCADO EXISTEM: “ )
ESCREVA(C, “ COELHOS E ”, G, “ GALINHAS”)
FIMALGORITMO
9. Página: 9
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
C A P Í T U L O 3
1) Indique o resultado das seguintes expressões:
a)2 > 3
FALSO
b)( 6 < 8 ) OR ( 3 > 7 )
VERDADEIRO
c)((( 10 DIV 2 ) MOD 6 ) > 5 ) XOR ( 3 < ( 2 MOD 2 ) )
5 MOD 6 = 5 > 5 XOR 3 < 0
FALSO XOR FALSO
FALSO
d)NOT ( 2 < 3 )
FALSO
2) Escreva o comando de atribuição e resolva a expressão das seguintes
expressões matemáticas (implemente o comando de atribuição em todas as
linguagens vistas: VisuAlg, Pascal, C, Java e PHP).
a) X
A
B
C
D
E
F
onde A= 2, B= 6, C = 3, D=4, E=8, F=4
Resolução X = 2
Implementações:
VisuAlg : X (A+B/C)/(D-E/F)
Pascal : X := (A+B/C)/(D-E/F)
C : X = (A+B/C)/(D-E/F)
Java : X = (A+B/C)/(D-E/F)
PHP : $X = ($A+$B/$C)/($D-$E/$F)
10. Página: 10
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
b)
X
X
X
X
X
X
Y
2
1
2
3
2 1
2
onde X = 2
Resolução: √ -2 + 0,2165 -1,7835
Implementações:
VisuAlg : Y (((2*QUAD(X)-3*EXP(X,X+1))/2)+(RAIZQ(X+1)/X))/EXP(2,X)
Pascal : Y :=(((2*SQR(X)-3*EXP(X+1*LN(X))/2)+(SQRT(X+1)/X))/EXP(X*LN(2))
C : Y = (((2*pow(X,2)-3*pow(X,X+1))/2)+(sqrt(X+1)/X))/pow(2,X)
Java : Y = (((2*Math.pow(X,2)-3*Math.pow(X,X+1))/2)+(Math.sqrt(X+1)/X))/Math.pow(2,X)
PHP : $Y = (((2*pow($X,2)-3*pow($X,$X+1))/2)+(sqrt($X+1)/$X))/pow(2,$X)
3) Construa o algoritmo que calcule as seguintes expressões:
a)2 + 3 * { 23 - 12 + [ { ( 123 / 34 ) + 10 } / 2 - 1 * ( 45 - 12 ) ] / 3
}
A 2+3*(23-12+(((123/34)+10)/2-1*(45-12))/3)
A 8,808824
b)[ ( 2 * 3 ) ^2 - 1 ] ^ 4
B EXP(QUAD(2*3)-1,4)
B 1500625
c)( 2 + [ 2 * 3 - ( 4 / 20 ) ^ 2 ] )/ (10 * { [ ( 7 * 3 ) - 2 ] ^ 3 })
C (2+(2*3-QUAD(4/20)))/10*(EXP((7*3)-2,3))
C 5459,764
11. Página: 11
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
4) Escreva os comandos de atribuição (em todas as linguagens vistas) para as
seguintes expressões matemáticas.
a) X
B A F
A
2 4 2
3 2
3
VisuAlg : X (RAIZQ(2*B-4*A)+2*EXP(F,-3))/(3-2*A)
Pascal : X := (SQRT(2*B-4*A)+2*EXP(-3*LN(F)))/(3-2*A)
C : X = (sqrt(2*B-4*A)+2*pow(F,-3))/(3-2*A)
Java : X = (Math.sqrt(2*B-4*A)+2*Math.pow(F,-3))/(3-2*A)
PHP : $X = (sqrt(2*$B-4*$A)+2*pow($F,-3))/(3-2*$A)
b)
Y H
X
H H
H
2
45
3
4 3
2
VisuAlg : Y 2*H-(EXP((45/(3*X))-(4*H*(3-H)),2*H)
Pascal : Y := 2*H-(EXP((2*H)*LN((45/(3*X))-(4*H*(3-H)))))
C : Y = 2*H-(pow((45/(3*X))-(4*H*(3-H)),2*H)
Java : Y = 2*H-(Math.pow((45/(3*X))-(4*H*(3-H)),2*H)
PHP : $Y = 2*$H-(pow((45/(3*$X))-(4*$H*(3-$H)),2*$H)
c) X
a b e f
c d g h
i
j
( ) ( )
( ) ( )
*
VisuAlg : X (((a-b)+(e+f))/((c-d)+(g+h)))*(i/j)
Pascal : X := (((a-b)+(e+f))/((c-d)+(g+h)))*(i/j)
C : X = (((a-b)+(e+f))/((c-d)+(g+h)))*(i/j)
Java : X = (((a-b)+(e+f))/((c-d)+(g+h)))*(i/j)
PHP : $X = ((($a-$b)+($e+$f))/(($c-$d)+($g+$h)))*($i/$j)
12. Página: 12
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
C A P Í T U L O 4
1) Faça uma busca na internet e em livros especializados em cada uma
das linguagens trabalhadas neste livro para saber mais sobre os
vários outros tipos de dados existentes.
Depois disso, faça uma tabela contendo as seguintes colunas: Tipo
de Dados, Faixa de Valores, Quantidade de Bits (ou bytes)
reservados na memória e um exemplo de valor que poderia ser
armazenado.
Cada estudante deve realizar sua pesquisa e apresentar ao docente
para verificação.
2) Indique, a cada um dos valores abaixo, o melhor tipo de dado, em
cada uma das linguagens indicadas:
Valores VISUALG PASCAL C JAVA
127 INTEIRO INTEGER INT INT
“Z” CARACTER CHAR CHAR CHAR
Falso LOGICO BOOLEAN BYTE BOOLEAN
0.556789075 REAL REAL FLOAT FLOAT
-456 INTEIRO INTEGER INT INT
“Algoritmo” CARACTER STRING CHAR STRING
3) Levando em consideração o as expressões matemáticas a seguir e a
respectiva atribuição dos valores. Qual seria o tipo de dados que
você atribuiria às variáveis x e y nas linguagens Visualg, Pascal,
C e Java?
X ( 4 / 5 + 5 * 6 ) / 2
Y RAIZQ (67) + 5
13. Página: 13
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
Linguagens X Y
Visualg REAL REAL
Pascal REAL REAL
C FLOAT FLOAT
Java FLOAT FLOAT
4) Levando em consideração o algoritmo a seguir, como você faria a
declaração das variáveis utilizadas nas seguintes linguagens:
Visualg, Pascal, C e Java?
INICIO
ESCREVA(“QUAL O VALOR DO BUQUE?”)
LEIA (V)
ESCREVA(“QUAL O VALOR DA DIFERENÇA ENTRE ROSAS E MARGARIDAS?”)
LEIA (D)
R = (V – (D*4)) / 10
M = R + D
ESCREVA(“O VALOR DA ROSA EH”, R)
ESCREVA(“O VALOR DA MARGARIDA EH, M)
FIMALGORITIMO.
14. Página: 14
Resposta dos Exercícios para Fixar
Livro: Algoritmo e Programação de Computadores
Autores: Dilermando Piva Junior, Gilberto Shigueo Nakamiti, Angela de
Mendonça Engelbrecht e Francisco Bianchi.
Editora Campus / Elsevier, 2012.
Linguagens Declaração
Visualg
VAR
V,D,R,M:REAL
Pascal
VAR
V,D,R,M:REAL;
C float V,D,R,M;
Java float V,D,R,M;