• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Acqua

[Dúvida] Principiante

14 mensagens neste tópico

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na segunda questão tens de usar um ciclo while e um readln no fim para perguntar se quer calcular mais algum número.

Em Pascal também existe o repeat...until que também deve servir para o que queres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

atencao, em pascal, e melhor nunca usar acentos, pq estes normalmente atrofiam com o compilador, e com o programa

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando fazes um repeat tens de por uma condição no fim com until.

Se precisares de ajudas com arrays, fala comigo que te vou tentar ajudar.  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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!!!! ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá pergunta de quem esta a tentar começar a programar em pascal,depois de compilar, gostava de saber o que o código que fiz diz?outra será que dá para copiar o código e colar, se sim? onde? um abraço.

Maria Luísa

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora