Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

silvio_cezar

Algoritmo, Soma maiores

Recommended Posts

Pessoal o professor de lógica, pediu para que fizessemos o seguinte exercício.Ler 3 valores ( Considere que não serão informados valores iguais) e escrever a soma dos dois maiores.Criei o algoritmo, más não estou conseguindo roda-lo no turbo pascal.Alguém poderia por favor analisar este algoritmo e ver onde está o erro, pois eu rodo ele no turbo pascal e o mesmo não me apresenta o resultado.program soma_dois_maiores; uses crt;var x, y, z : integer;beginx := 0;y := 0;z := 0;clrscr;writeln;write ('Informe um valor: ');readln (x);writeln;write ('Informe outro valor: ');readln (y);writeln;write ('Informe outro valor: ');readln (z);writeln;if (x > y) and (y > z) thenwriteln ('A soma dos dois maiores eh: ', x+y)elseif (z > y) and (y > x) thenwriteln ('A soma dos dois maiores eh: ', z+y)elsewriteln ('A soma dos dois maiores eh: ', x+z);writeln;end.endPreciso muito saber se está certo, pois caiu ele na prova de hoje.Muito obrigado SilvioSilvio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Situações possíveis (6 pela análise combinatória!):x y z1 2 3 >>> ok, nega 1º. 'if' e entra no 2º. 'if'1 3 2 >>> FALHA, nega os 2 if e resulta 1+22 1 3 >>> ok, nega os 2 'if' e resulta 2+32 3 1 >>> FALHA, nega os 2 'if' e resulta 2+13 1 2 >>> ok, nega os 2 'if' e resulta 3+23 2 1 >>> ok, entra no 1º. 'if'Agora é com você ;)DICA: seus testes 'IF' devem compreender as 6 situações !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlew

bom acho que você já fez mas vou mandar o cod:Program ex_f;uses crt;varx1, x2, x3:integer; function maior (n1, n2, n3:integer):integer; var soma:integer; begin soma := 0; maior:=n1; if (maior>n2) then begin soma := maior+n3; maior := soma; end else if (maior>n3) then begin soma := maior+n2; maior := soma; end else if (n2>maior) then begin soma := n2+n3; maior := soma; end else if (n2>n3) then begin soma := n2+n1; maior := soma; end else if (n3>n2) then begin soma := n3+maior; maior := soma; end else if (n3>maior) then begin soma := n3+n2; maior := soma; end ; ; ; ; ; ; end; begin clrscr; write ('Digite n1:'); readln (x1); write ('Digite n2:'); readln (x2); write ('Digite n3:'); readln (x3); write ('A soma do maior valor ‚ = : ',maior (x1, x2, x3));readln;end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.