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

Kallean

Calculo das Areas

11 mensagens neste tópico

Boa tarde,

Eu estou a fazer um programa em Pascal que pergunta se queremos calcular as areas ou os volumes e depois temos varias opções para escolha....

Penso que para vocês deve ser um programa de fácil resolução mas para mim está a ser uma dorzinha de cabeça....

Aqui vai o código-fonte:

Program Areas;


Uses Crt;
var n,a,lado: integer;
    Aquadrado:integer;
    comprimento,largura,Arectangulo:integer;

Begin
ClrScr;

writeln(' O que pretende calcular? 1-Volume 2- Area ');
readln(n);
if
(n=1)
then
writeln( 'Escolheu calcular um volume.');
if
(n=2)
then
writeln(' Escolheu calcular uma  rea. ');
writeln;
writeln(' Que  rea pretende calcular(selecione entre as opções dispon¡veis) ');
writeln;
writeln('1- Quadrado');
writeln;
writeln('2-Rectangulo');
writeln;
writeln('3-Triangulo');
writeln;
writeln('4-Paralelogramo');
writeln;
writeln('5-Trapézio');
writeln;
writeln('6-Circinferencia e c¡rculo');
readln(a);
if(a=1)
then writeln('Diga o valor do lado do quadrado',lado);
readln(lado);
ClrScr;
Aquadrado:=lado*lado; {calcula a  area do quadrado}
writeln;writeln;
writeln('A area do quadrado e de ',Aquadrado);

if(a=2)
then writeln;writeln('Diga o valor do comprimento do rectangulo',comprimento);
readln(comprimento);
writeln;writeln('Diga o valor da largura do rectangulo',largura);
readln(largura);
Arectangulo:=comprimento*largura;
writeln;writeln('A area do rectangulo e de ',Arectangulo);
if(n>2)
then
writeln('ERRO: Opção indispon¡vel. Por favor escolha uma opçãoo valida.');
while not keypressed do;
end.

Então é o seguinte:

O programa ainda não está completo. Apenas se podem escolher algumas opções.O problema é que eu escolho, por exemplo, calcular uma área, e aparece-me a lista das areas, mas se escolher calcular um volume, aparece-me na mesma a lista das areas...

Ora era isto que gostava que me explicassem e que me ajudassem a resolver...

Cumps e obrigado por toda a ajuda que venham a oferecer...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É uma questão de Begin's e End's. Até deve poder ser resolvido de outra maneira, mas eu resolvi assim:

Program Areas;

Uses Crt;
var n,a,lado: integer;
    Aquadrado:integer;
    comprimento,largura,Arectangulo:integer;

Begin
ClrScr;

writeln(' O que pretende calcular? 1-Volume 2- Area ');
readln(n);
if
(n=1)
then
begin
writeln( 'Escolheu calcular um volume.');
end;
if
(n=2)
then
begin
writeln(' Escolheu calcular uma  rea. ');
writeln;
writeln(' Que  rea pretende calcular(selecione entre as opçoeses disponiveis) ');
writeln;
writeln('1- Quadrado');
writeln;
writeln('2-Rectangulo');
writeln;
writeln('3-Triangulo');
writeln;
writeln('4-Paralelogramo');
writeln;
writeln('5-Trapezio');
writeln;
writeln('6-Circinferencia e c¡rculo');
readln(a);
end;
if(a=1)
then
begin
writeln('Diga o valor do lado do quadrado',lado);
readln(lado);
ClrScr;
Aquadrado:=lado*lado; {calcula a  area do quadrado}
writeln;writeln;
writeln('A area do quadrado e de ',Aquadrado);
end;
if(a=2)
then
begin
writeln;writeln('Diga o valor do comprimento do rectangulo',comprimento);
readln(comprimento);
writeln;writeln('Diga o valor da largura do rectangulo',largura);
readln(largura);
Arectangulo:=comprimento*largura;
writeln;writeln('A area do rectangulo e de ',Arectangulo);
end;
if(n>2)
then
begin
writeln('ERRO: Opçãoo indispon¡vel. Por favor escolha uma opçãoo valida.');
end;
while not keypressed do;
end.

N ligues aos caracteres estranhos, deve ser do IDE k uso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Upa...obrigado pela ajuda...vou testar e já digo algo...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Por favor quando colocarem código coloquem entre as tags code.

O nosso fórum tem este template que permite fazer o highlight do código por isso usem-no pff...

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Boas,

Por favor quando colocarem código coloquem entre as tags code.

O nosso fórum tem este template que permite fazer o highlight do código por isso usem-no pff...

Cumps

N sabia, para próxima já uso =)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boa tarde,

Já deu para por isto a funcionar direitinho....

Até vos vou apresentar a primeira parte do programa....

Program Areas;


Uses Crt;
var n,a,lado: integer;
Aquadrado:integer;
comprimento,largura,Arectangulo,Atriangulo,altura,base,Aparalelogramo,base_maior, base_menor,Atrapezio:integer;
raio,Acirculo:integer;

Begin
ClrScr;

writeln(' O que pretende calcular? 1-Volume 2- Area ');
readln(n);
if
(n=1)
then
begin
write( 'Escolheu calcular um volume.');
end;
if
(n=2)
then
begin
writeln(' Escolheu calcular uma  rea. ');
writeln;
writeln(' Que área pretende calcular(selecione entre as opções disponíveis) ');
writeln;
writeln('1- Quadrado');
writeln;
writeln('2-Rectângulo');
writeln;
writeln('3-Triângulo');
writeln;
writeln('4-Paralelogramo');
writeln;
writeln('5-Trapézio');
writeln;
writeln('6-Circinferência e círculo');
readln(a);
end;
if(a=1)
then
begin
writeln('Diga o valor do lado do quadrado',lado);
readln(lado);
ClrScr;
Aquadrado:=lado*lado; {calcula a  rea do quadrado}
writeln;writeln;
writeln('A area do quadrado e de ',lado*lado);
end;
if(a=2)
then
begin
writeln;writeln('Diga o valor do comprimento do rectangulo',comprimento);
readln(comprimento);
writeln;writeln('Diga o valor da largura do rectangulo',largura);
readln(largura);
writeln;writeln('A area do rectangulo e de ',comprimento*largura);
end;
if(a=3)
then
begin
writeln('Diga o valor da base',base);
readln(base);
writeln;writeln('Diga a altura do triangulo',altura);
readln(altura);
writeln('A area do triangulo e de ',(base*altura)/2);
end;
if (a=4)
then
begin
writeln('Diga o valor da base',base);
readln(base);
writeln;writeln('Diga o valor da altura',altura);
readln(altura);
writeln('A area do paralelogramo e de ',base*altura);
end;
if(a=5)
then
begin
writeln('Diga o valor da base maior',base_maior);
readln(base_maior);
writeln('Diga o valor da base menor',base_menor);
readln(base_menor);
writeln('Diga o valor da altura',altura);
readln(altura);
writeln('A area do trapezio e de ',((base_maior+base_menor)/2)*altura);
end;
if(a=6)
then
begin
writeln('Diga o valor do raio',raio);
readln(raio);
writeln;writeln('A area da circunferencia e de ',PI*raio*raio:0:5);
end;
if(n>2)

then
begin
writeln('ERRO: Opção indisponível. Por favor escolha uma opção valida.');
end;
while not keypressed do;
end.

Isto está um bocadinho para o grande mas em princípio ainda ficará maior, porque falta colocar o menu do volume e as suas respectivas opções...

No entanto, isto ainda vai laver alguns retoques no que toca a ClrScreens e a cores de background para ficar mais animado em ambiente DOS...

Fiquem bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Parece que vamos ter programa para nos facilitar a vida em cálculo de áreas e volumes...

Apesar da sintaxe estar ainda muito simples o programa não deixa de estar bom...Pena ainda não focares ciclos while ou for mas isso com a experiencia vem automaticamente...

Só espero para ver a versão final na área projectos....

Com um ambiente DOS bastante animadinho...

Se precisares de alojamento eu forneço-te a minha página pessoal....

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OK...aqui fica a versão BETA do meu programa.....em código é claro...

Aqui vai ele....

Program Areas;


Uses Crt;
var n,a,lado: integer;
Aquadrado:integer;
comprimento,largura,Arectangulo,Atriangulo,altura,base,Aparalelogramo,base_maior, base_menor,Atrapezio:integer;
raio,Acirculo:integer;
b,largura_base_menor,comprimento_base_menor,largura_base_maior,comprimento_base_maior,area_base: integer;

Begin
ClrScr;

writeln(' O que pretende calcular? 1-Volume 2- Area ');
readln(n);
if
(n=1)
then
begin
writeln( 'Escolheu calcular um volume.');
writeln;
writeln('Que volume pretende calcular entre as opçoes disponiveis');
writeln;
writeln('1-Cubo');
writeln;
writeln('2-Paralelipipedo');
writeln;
writeln('3-Prismas');
writeln;
writeln('4-Cilindros');
writeln;
writeln('5-Piramides');
writeln;
writeln('6-Cones');
writeln;
writeln('7-Esfera');
readln(b);
end;
if(b=1)
then
begin
writeln('Diga o valor do lado do cubo----> ',lado);
readln(lado);
writeln;writeln('O volume do cubo e de ',lado*lado*lado);
end;
if(b=2)
then
begin
writeln('Diga o valor da largura da base-----> ',largura);
readln(largura);
writeln;
writeln('Diga o valor do comprimento da base-----> ',comprimento);
readln(comprimento);
writeln;
writeln('Diga o valor da altura do paralelipipedo----> ',altura);
readln(altura);
writeln;
writeln('O volume do paralelipipedo e de ',largura*comprimento*altura);
end;
if(b=3)
then
begin
writeln('Diga o valor da largura da base maior----> ',largura_base_maior);
readln(largura_base_maior);
writeln;
writeln('Diga o valor do comprimento da base maior-----> ', comprimento_base_menor);
readln(comprimento_base_menor);
writeln;
writeln('Diga o valor da largura da base menor------> ', largura_base_menor);
readln(largura_base_menor);
writeln;
writeln('Diga o valor do comprimento da base menor-----> ', comprimento_base_menor);
readln(comprimento_base_menor);
writeln;
writeln('Diga o valor da altura do prisma-----> ', altura);
readln(altura);
writeln('O volume do prisma e de ',(((largura_base_maior*comprimento_base_maior)+(largura_base_menor*comprimento_base_menor))/2)*altura);
end;
if(b=4)
then
begin
writeln('Qual o raio da base-----> ', raio);
readln(raio);
writeln;
writeln('Qual a altura do cilindro-------> ',altura);
readln(altura);
writeln;
writeln('O volume do cilindro e de ',(PI*raio*raio)*altura:0:3);
end;
if(b=5)
then
begin
writeln('Qual a area da base-----> ',area_base);
readln(area_base);
writeln;
writeln('Qual a altura-------> ',altura);
readln(altura);
writeln;
writeln('O volume da piramide e de ',(1/3*area_base)*altura);
end;
if(b=6)
then
begin
writeln('Qual a area da base-----> ',area_base);
readln(area_base);
writeln;
writeln('Qual a altura-----> ', altura);
readln(altura);
writeln;
writeln('O volume do cone e de ',(1/3*area_base)*altura);
end;
if(b=7)
then
begin
writeln('Qual o valor do raio-----> ',raio);
readln(raio);
writeln;
writeln('O volume da esfera e de ', 4/3*PI*raio*raio*raio:0:3);
end;
if
(n=2)
then
begin
writeln(' Escolheu calcular uma  rea. ');
writeln;
writeln(' Que área pretende calcular(selecione entre as opções disponíveis) ');
writeln;
writeln('1- Quadrado');
writeln;
writeln('2-Rectângulo');
writeln;
writeln('3-Triângulo');
writeln;
writeln('4-Paralelogramo');
writeln;
writeln('5-Trapézio');
writeln;
writeln('6-Circinferencia e círculo');
readln(a);
end;
if(a=1)
then
begin
writeln('Diga o valor do lado do quadrado',lado);
readln(lado);
ClrScr;
Aquadrado:=lado*lado; {calcula a  rea do quadrado}
writeln;writeln;
writeln('A area do quadrado e de ',lado*lado);
end;
if(a=2)
then
begin
writeln;writeln('Diga o valor do comprimento do rectangulo',comprimento);
readln(comprimento);
writeln;writeln('Diga o valor da largura do rectangulo',largura);
readln(largura);
writeln;writeln('A area do rectangulo e de ',comprimento*largura);
end;
if(a=3)
then
begin
writeln('Diga o valor da base',base);
readln(base);
writeln;writeln('Diga a altura do triangulo',altura);
readln(altura);
writeln('A area do triangulo e de ',(base*altura)/2);
end;
if (a=4)
then
begin
writeln('Diga o valor da base',base);
readln(base);
writeln;writeln('Diga o valor da altura',altura);
readln(altura);
writeln('A area do paralelogramo e de ',base*altura);
end;
if(a=5)
then
begin
writeln('Diga o valor da base maior',base_maior);
readln(base_maior);
writeln('Diga o valor da base menor',base_menor);
readln(base_menor);
writeln('Diga o valor da altura',altura);
readln(altura);
writeln('A area do trapezio e de ',((base_maior+base_menor)/2)*altura);
end;
if(a=6)
then
begin
writeln('Diga o valor do raio',raio);
readln(raio);
writeln;writeln('A area da circunferencia e de ',PI*raio*raio:0:5);
end;
if(n>2)

then
begin
writeln('ERRO: Opção indisponível. Por favor escolha uma opção valida.');
end;
while not keypressed do;
end.

Faltam algumas coisinhas que depois explicarei e colocarei aqui....

O programa ficará alojado no site do meu primão deathseeker25 e depois todos poderão fazer download do mesmo....

Fiquem bem

Nota: não seria melhor aqui no syntax highlight haver uma setinha lateral que desse para descer? É que assim os tópicos com código ficam gigantescos...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tou a gostar de ver...

os que anteriormente andaram aí com dúvidas de Pascal estão agora a solucionar os probs a outros.. só tenho uma coisa a dizer...

Parabéns! além de demonstrarem que já dominam a linguagem, ainda contribuem a fundo na dúvida dos outros...

acho excelente isto... :D

mais uma vez parabéns doutores....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tou a gostar de ver...

os que anteriormente andaram aí com dúvidas de Pascal estão agora a solucionar os probs a outros.. só tenho uma coisa a dizer...

Parabéns! além de demonstrarem que já dominam a linguagem, ainda contribuem a fundo na dúvida dos outros...

acho excelente isto... :D

mais uma vez parabéns doutores....

Ora é para isso que o forum serve: para "educar" uns para que no futuro possam educar outros que tambem necessitam...

É uma sensação boa a de ensinar....mas melhor ainda é a de aprender... :D

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tem algumas falhas mais concretamente na formatação das saidas dos dados

tem que por por exemplo raio:2:1

se nao sai coisa do género 120324E10

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