C A P Í T U L O 1 As respostas deste capítulo já constam no livro impresso. Página: 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: X peças está para Y potes. Página: 2
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 Página: 3
INÍCIO 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 FIM PORTUGUES ESTRUTURADO VAR X,Y: REAL OP: CARACTER; INICIO ESCREVA( ENTRAR COM (P)EÇAS OU PO(T)ES? ) LEIA(OP) Página: 4
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 Página: 5
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 Página: 6
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 ENTRE COM O TOTAL DE PES PT ENTRE COM O TOTAL DE CABEÇAS T C = (PT-2*T)/2 G=T-C NO CERCADO EXISTEM: C COELHOS E G GALINHAS FIM Página: 7
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 Página: 8
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) Página: 9
b) Y 2X 2 3X 2 2 X X 1 X 1 X 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 Página: 10
4) Escreva os comandos de atribuição (em todas as linguagens vistas) para as seguintes expressões matemáticas. a) X 2B 4A 2F 3 2A 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) 45 3X b) Y 2H 4H3 H 2H 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 ) i ( c d) ( g h) * 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) Página: 11
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 Página: 12
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. Página: 13
Linguagens Visualg Pascal C Java Declaração VAR V,D,R,M:REAL VAR V,D,R,M:REAL; float V,D,R,M; float V,D,R,M; Página: 14