Jump to content

[Dúvida] Principiante


Acqua

Recommended Posts

Boas pessoal! Este é o meu 1º post neste forum, e numa breve descrição de mim, chamo-me Nuno Faria, tnho 17 anos e se td correr bem no próximo ano lectivo serei caloiro de Eng. Informatica.

Agora as dúvidas (todas as dúvidas são de iniciantes pois comecei á muito pouco tempo):

1- utilizando este código (por exemplo, pois acontece-me com muitos)

program triangulo;
var
  area, base, altura: real;
begin
  { Entrada }
  write ('Digite a base: ');
  readln (base);
  write ('Digite a altura: ');
  readln (altura);

  { Calculos }
  area:= (base*altura)/2;

  { Saida}
  writeln ('A area do triangulo e: ',area);
end.

Está tudo muito bem, executo o program, digito a base na boa, porem apos introduzir a altura o program fecha. porqûe é k isto acontece?

2 - Kual o comando para, por exemplo, apos se calcular esta área, poerguntr se kero calcular outra area e voltr a repetir o processo.

Desde já obrigado!

Link to comment
Share on other sites

Explicação de e para principante:

program triangulo;
var
  area, base, altura: real;
begin
  { Entrada }  
  writeln ('Digite a base: ');
  readln (base);  
  writeln ('Digite a altura: ');
  readln (altura);   

  { Calculos }
  area:= (base*altura)/2;   
  { Saida}
  writeln ('A area do triangulo e: ',area);
end.

Tens que por antes do "end." um readln; ficando

program triangulo;
var
  area, base, altura: real;
begin
  { Entrada }  
  writeln ('Digite a base: ');
  readln (base);  
  writeln ('Digite a altura: ');
  readln (altura);   

  { Calculos }
  area:= (base*altura)/2;   
  { Saida}
  writeln ('A area do triangulo e: ',area);
  readln;
end.

Espero ter ajudado, se o problema ficar resolvido, posta aqui!

Link to comment
Share on other sites

kuanto a segunda, ve aqui e adapta

http://www.portugal-a-programar.pt/index.php?showtopic=457

EDIT: ficava melhor assim:

program triangulo;
var
  area, base, altura: integer; // mudei aqui
begin
  { Entrada }  
  writeln ('Digite a base: ');
  readln (base);  
  writeln ('Digite a altura: ');
  readln (altura);   

  { Calculos }
  area:= (base*altura)/2;   
  { Saida}
  writeln ('A area do triangulo e: ',area);
  readln;
end.

mudei o real pa integer, assim o resultado da em numeros "normais"

Proud LEIC-A@IST student!

Link to comment
Share on other sites

Convém explicar o porquê do uso do readln; e do end. no código do programa.

Em Pascal, para dares o código do programa como terminado tens de indicar end. (com um ponto final).

O Readln; serve para o programa ter de receber um último valor antes do fecho do programa. (sendo esse valor um qq, e não percisamos de indicar como variavel).

Link to comment
Share on other sites

Não abri um novo topico, pq a pergunta já tá aqui:

program Calculadora;
var option:char;
var x,y,z:real;
begin
writeln('Carregue em 1 para Somar, 2 para subtrair, 3 para multiplicar, 4 para dividir ou 5 para sair.');readln(option);
case option of
'1':
begin
writeln('Digite o primeiro número da soma.');readln(x);
writeln('Digite o segundo número da soma.');readln(y);
z:=x+y;
writeln('O resultado é: ',z:4:2);
readln;
end;
'2':
begin
writeln('Digite o primeiro número da subtracção.');readln(x);
writeln('Digite o segundo número da subtração.');readln(y);
z:=x-y;
writeln('O resultado é: ',z:4:2);
readln;
end;
'3':
begin
writeln('Digite o primeiro número da multiplicação.');readln(x);
writeln('Digite o segundo número da mutliplicação.');readln(y);
z:=x*y;
writeln('O resultado é: ',z:4:2);
readln;
end;
'4':
begin
writeln('Digite o primeiro número da divisão.');readln(x);
writeln('Digite o segundo número da divisão.');readln(y);
z:=x/y;
writeln('O resultado é: ',z:4:2);
readln;
end;
'5':
begin
exit;
end;
else
begin
writeln('Opção Inválida');
readln;
end;
end;
end.

Neste codigo para fazer um ciclo while, que o TRITON meteu, onde meto isso, como é que fica o código com o ciclo while??

Link to comment
Share on other sites

Tenho + 1 duvida:

Program Exemplo_2;
    Uses CRT;

{Programa para cálculo de área de figuras}

    Var escolha,continua : Char;
        x,y : real;
    Begin
       Repeat
          ClrScr;
          Write('Calculo de área de figuras':53);
          Gotoxy(25, 5);Write('1 - Sair do programa');
          Gotoxy(25, 7);Write('2 - Triângulo');
          Gotoxy(25, 9);Write('3 - Quadrado');
          Gotoxy(25,11);Write('4 - Retângulo');
          Gotoxy(25,13);Write('5 - Circulo');
          TextBackGround(7);
          TextColor(0+16);
          Gotoxy(10,17);Write('Sua escolha ---> ');
          escolha:=ReadKey;
          Textbackground(0);
          Textcolor(14);
          Case escolha of
             '2' : Begin
                      ClrScr;
                      Writeln('Calculo da área de triangulos':55);
                      continua:='s';
                      While Continua='s' Do
                      Begin
                         Writeln;
                         Write('Base   = ');
                         Readln(x);
                         Write('Altura = ');
                         Readln(y);
                         Writeln;
                         Writeln('Área = ',x*y/2:8:2);
                         Writeln;
                         Writeln;
                         Write('Mais cálculos (s/n) --> ');
                         continua:=ReadKey;
                         Writeln;Writeln;
                      End;
                   End;

Não consigo perceber kal é a função desta parte( principalmnt a 1ª linha) e em k vai influenciar no resto do codigo:

continua:='s';
                      While Continua='s' Do

Outra coisa k eu keria perguntr é se alguem estava disposto a ajudar-me a eu perceber as arrays (por msn)... é k n consigo perceber!

Desde já obrigado

Link to comment
Share on other sites

  • 3 weeks later...

Podes usar  uma label que te faz bem o trabalho, Verifica o código abaixo.

Espero que ajude.

program triangulo;
var  area, base, altura: real;
resp:char;
label inicio;
begin  { Entrada }
inicio:  
write ('Digite a base: ');  
readln (base);  
write ('Digite a altura: ');  
readln (altura);  
{ Calculos }  area:= (base*altura)/2;   
{ Saida}  writeln ('A area do triangulo e: ',area);
writeln('Quer voltar a calcular? S/N');
readln(resp);
if (resp=('s')) or (resp=('S')) then
goto inicio;
end.
Link to comment
Share on other sites

Explicando melhor:

Usas uma Label, que é nada mais que uma etiqueta que diz onde o programa deve voltar, e declaras essa label logo abaixo das variáveis, depois perguntas ao utilizador se quer voltar a calcular, e mandas ler a resposta, deseguida usas os IF`s se a resposta for sim ou SIM então ele volta para a etiqueta com o comando goto, e só sai do programa se o utilizador responder n.

Espero ter ajudado!!!! 😉

Link to comment
Share on other sites

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.