Acqua Posted August 16, 2006 at 04:51 PM Report Share #44659 Posted August 16, 2006 at 04:51 PM 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 More sharing options...
Tharis Posted August 16, 2006 at 05:02 PM Report Share #44660 Posted August 16, 2006 at 05:02 PM 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 More sharing options...
Acqua Posted August 16, 2006 at 05:09 PM Author Report Share #44665 Posted August 16, 2006 at 05:09 PM Resolveu-me o problema da 1ª kestao... obrigado 😛 Link to comment Share on other sites More sharing options...
Tharis Posted August 16, 2006 at 05:11 PM Report Share #44667 Posted August 16, 2006 at 05:11 PM A 2ª não sei, pois ia por a mesma questão. Link to comment Share on other sites More sharing options...
karva Posted August 16, 2006 at 06:07 PM Report Share #44679 Posted August 16, 2006 at 06:07 PM 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 More sharing options...
Triton Posted August 16, 2006 at 06:15 PM Report Share #44683 Posted August 16, 2006 at 06:15 PM 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. <3 life Link to comment Share on other sites More sharing options...
UnKnowN Posted August 17, 2006 at 11:22 AM Report Share #44793 Posted August 17, 2006 at 11:22 AM 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 More sharing options...
Tharis Posted August 18, 2006 at 10:49 AM Report Share #44978 Posted August 18, 2006 at 10:49 AM 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 More sharing options...
karva Posted August 18, 2006 at 11:34 AM Report Share #44985 Posted August 18, 2006 at 11:34 AM atencao, em pascal, e melhor nunca usar acentos, pq estes normalmente atrofiam com o compilador, e com o programa Proud LEIC-A@IST student! Link to comment Share on other sites More sharing options...
Acqua Posted August 18, 2006 at 04:21 PM Author Report Share #45040 Posted August 18, 2006 at 04:21 PM 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 More sharing options...
Triton Posted August 18, 2006 at 04:34 PM Report Share #45042 Posted August 18, 2006 at 04:34 PM 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. 😁 <3 life Link to comment Share on other sites More sharing options...
cibersoft Posted September 3, 2006 at 08:22 PM Report Share #48137 Posted September 3, 2006 at 08:22 PM 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 More sharing options...
cibersoft Posted September 3, 2006 at 09:03 PM Report Share #48143 Posted September 3, 2006 at 09:03 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now