Jump to content

Recommended Posts

Posted

Um calculador do Teorema de Pitágoras que vai perguntando o que se pretende introduzir, induzindo automaticamente o que se pretende calcular do triângulo rectângulo.

Espero que vos seja útil.

Falhas em programação:

  • Não utiliza estruturas de decisão encadeadas.

program programa_pitagoras;
uses crt;

procedure pitagoras;
var cateto1, cateto2 : real;
   hipotenusa : real;
   i : smallint;
   key, key2 : char;
   opcoes1 : set of char;
begin
    writeln('PITAGORAS');
    writeln;
    opcoes1 := [#49..#51];
    for i:=1 to 2 do begin
        case i of
             1 : begin
                 writeln('Introduzir:');
                 writeln('   1 > Cateto 1');
                 writeln('   2 > Cateto 2');
                 writeln('   3 > Hipotenusa');
                 repeat
                       key := readkey;
                 until (key in opcoes1);
                 opcoes1 -= [key];
                 write('Introduza ');
                 case key of
                      #49 : begin
                            repeat
                                  write('cateto 1: ');
                                  readln(cateto1);
                            until (cateto1>0);
                            end;
                      #50 : begin
                            repeat
                                  write('cateto 2: ');
                                  readln(cateto2);
                            until (cateto2>0);
                            end;
                      #51 : begin
                            repeat
                                  write('hipotenusa: ');
                                  readln(hipotenusa);
                            until (hipotenusa>0);
                            end;
                 end;
                 writeln;
                 end;
             2 : begin
                 writeln('Introduzir:');
                 if ([#49] <= opcoes1) then writeln('1 > Cateto 1');
                 if ([#50] <= opcoes1) then writeln('2 > Cateto 2');
                 if ([#51] <= opcoes1) then writeln('3 > Hipotenusa')
                 else writeln('4 > Cateto 1 = Cateto 2');
                 repeat
                       key2 := readkey;
                 until (key2 in opcoes1+[#52]);
                 case key2 of
                      #49 : begin
                            repeat
                                  write('Introduza cateto 1: ');
                                  readln(cateto1);
                            until (cateto1>0);
                            end;
                      #50 : begin
                            repeat
                                  write('Introduza cateto 2: ');
                                  readln(cateto2);
                            until (cateto2>0);
                            end;
                      #51 : begin
                            repeat
                                  write('hipotenusa: ');
                                  readln(hipotenusa);
                            until (hipotenusa>0);
                            end;
                 end;
                 writeln;
                 end;
        end;
    end;
    if ([key,key2] = [#49,#50]) then begin
       hipotenusa := SQRT( SQR(cateto1) + SQR(cateto2) );
       writeln('Hipotenusa: ',hipotenusa:0:3);
    end;
    if ([key,key2] = [#49,#51]) then begin
       cateto2 := SQRT( SQR(hipotenusa) - SQR(cateto1) );
       writeln('Cateto 2: ',cateto2:0:3);
    end;
    if ([key,key2] = [#50,#51]) then begin
       cateto1 := SQRT( SQR(hipotenusa) - SQR(cateto2) );
       writeln('Cateto 1: ',cateto1:0:3);
    end;
    if ([key,key2] = [#51,#52]) then begin
       cateto1 := hipotenusa / SQRT(2);
       writeln('Cateto 1 = Cateto 2: ',cateto1:0:3);
    end;
end;



begin
    pitagoras;
    writeln;
    write('ENTER para sair... ');
    readln;
end.

Cumprimentos,

thoga31 👍

Knowledge is free!

Posted

"Um dia em Siracusa

Pitágoras disse a seus netos:

O quadrado da hipotenusa é igual

à soma do quadrado dos catetos!"

😁😕

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted

"Um dia em Siracusa

Pitágoras disse a seus netos:

O quadrado da hipotenusa é igual

à soma do quadrado dos catetos!"

😁😕

Viraste poeta, agora? 😕

Eu à espera de um comentário mais "programacional" e saiu-me Camões, Pessoa & Co. style. 👍

Knowledge is free!

Posted

Camões não sei, deve ser mais Livreiro (as in Prof. Livreiro, o meu prof de matemática do 7º ano, e sim, Livreiro era o nome dele)... Grande moca este prof... Muita vez o apagador saltou às testas dos mais incautos, e não era dos de plástico... Era daqueles com pega em madeira.

Lanhos inteiros foram abertos e fechados naquelas aulas!  😕 :confused:

Quanto à programação, é um bom exemplo de vários comandos essenciais em Pascal. Quem está a aprender (e quer aprender) pode por cá o olho.

Quanto ao ter virado poeta, não é porventura a poesia o alimento da alma?

Não é o homem um emaranhado de experiências e vivências sociais, numa amálgama fiel dos desgostos e alegrias que a sociedade lhe incute, tal qual uma flor ao vento que ao ser banhada pelo líquido elemento que lhe dá a vida, se torna forte e viçosa para melhor resistir às intempéries, ou perece na enxurrada numa realidade clara e cruel do que é fraquejar?

Bem, vou-me deitar que isto já está a ficar estranho....

hehehe  😁👍

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted

Camões não sei, deve ser mais Livreiro (as in Prof. Livreiro, o meu prof de matemática do 7º ano, e sim, Livreiro era o nome dele)... Grande moca este prof... Muita vez o apagador saltou às testas dos mais incautos, e não era dos de plástico... Era daqueles com pega em madeira.

Lanhos inteiros foram abertos e fechados naquelas aulas!  😕 :confused:

Quanto à programação, é um bom exemplo de vários comandos essenciais em Pascal. Quem está a aprender (e quer aprender) pode por cá o olho.

Quanto ao ter virado poeta, não é porventura a poesia o alimento da alma?

Não é o homem um emaranhado de experiências e vivências sociais, numa amálgama fiel dos desgostos e alegrias que a sociedade lhe incute, tal qual uma flor ao vento que ao ser banhada pelo líquido elemento que lhe dá a vida, se torna forte e viçosa para melhor resistir às intempéries, ou perece na enxurrada numa realidade clara e cruel do que é fraquejar?

Bem, vou-me deitar que isto já está a ficar estranho....

hehehe  😁👍

Querendo evitar o off-topic, espero ir ainda a tempo de ter pena de vós, alunos do Livreiro que não é livreiro mas sim matemático.

E de facto isso já está a sair muito esquisito para estas bandas de programação... Mas muito belo, quando lido 3 vezes com atenção. 😄

O problema é que raros aprendizes metem os olhos nestes exemplos de programação, e aparecem depois aqui com programas de 3K linhas de código onde só 200 são "funcionais" aka não-crt.

Enfim. Vou ver se desencanto mais tesouros nas minhas pastas ancestrais, tirando a camada de pó fino e humido de cima delas, descobrindo diamantes dos tempos em que era um mero aprendiz, sedento disso a que chamam, infelizmente de forma mordaz, de conhecimento... E também vou-me deitar, que a tua onda pegou-se-me 👍

Knowledge is free!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.