C A P Í T U L O 1
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:
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
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)
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.
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.
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
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
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)
b) X X X X X X Y 2 1 2 3 2 2 1 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
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)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
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)
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;