Ir para o conteúdo
Acqua

[Dúvida] Principiante

Mensagens Recomendadas

Acqua    0
Acqua

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!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tharis    3
Tharis

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!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
karva    0
karva

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"

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
UnKnowN    0
UnKnowN

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).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tharis    3
Tharis

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??

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Acqua    0
Acqua

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

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:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
cibersoft    0
cibersoft

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
cibersoft    0
cibersoft

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!!!! ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MARIA LUISA    0
MARIA LUISA

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

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade