1. TugaTech » Software » Dúvidas e Ajuda de Software
Siga-nos

Realize o Login na sua conta ou Registe-se para participar.

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

#1[Ajuda] Código para programa em C+ Empty [Ajuda] Código para programa em C+ - Sáb 17 Nov 2012 - 20:13

KinyuOne

GodUser
KinyuOne
Boas pessoal.

Tou aqui a tentar fazer um código para um programa em C+ que calcule áreas (triângulo, circulo, quadrado ou trapézio) conforme o que o utilizador peça.

Ora bem, eu consegui criar todo o código, mas no fim quando faço o programa pedir o que o utilizador quer calcular e o utilizador escolhe o trapézio (nas outras opções funciona), o programa não deixa o utilizador inserir os dados (base maior e base menor), apenas deixa inserir o valor da altura.

Aqui vai o codigo que eu criei:

Código:
float lado1, lado2, base, altura, raio, basemenor, basemaior, altura2, quadrado, triangulo, circulo, trapezio;
  char escolha, Q, T, C, T2;
 
  printf("Escolha a area que quer calcular:\n\n");
  printf("Q - Quadrado\nT - Triangulo\nC - Circulo\nT2 - Trapezio\n\n");
  scanf("%c",&escolha);
 
  if(escolha=='Q')
  {
      printf("Insira o valor do lado 1:\n");
      scanf("%f",&lado1);
      printf("\n\nE agora do lado 2\n");
      scanf("%f",&lado2);
      quadrado=lado1*lado2;
      printf("\nA area do quadrado e: %.2f\n\n",quadrado);
     
  }
  if(escolha=='T')
  {
        printf("Insira o valor da base:\n");
        scanf("%f",&base);
        printf("\n\nAgora insira o valor da altura:\n");
        scanf("%f",&altura);
        triangulo=(base*altura)/2;
        printf("\nA area do triangulo e: %.2f\n\n",triangulo);
  }
  if(escolha=='C')
  {
        printf("Insira o valor do raio:\n\n");
        scanf("%f",&raio);
        circulo=3.14*(raio*raio);
        printf("\nA area do circulo e: %.3f\n\n",circulo);
  }
  if(escolha=='T2')
  {
        printf("Insira o valor da base maior:\n");
        scanf("%f",&basemaior);
        printf("\n\nAgora insira o valor da base menor:\n");
        scanf("%f",&basemenor);
        printf("\n\nPor fim, insira a altura:\n");
        scanf("%f",&altura2);
        trapezio=((basemaior+basemenor)/2)*altura2;
        printf("\nA area do trapezio e: %.3f", trapezio);
  }   

Agradecia a ajuda pessoal, não tou mesmo a ver como resolver isto!

Btw, dá-me este erro por vezes:
"[Warning] multi-character character constant"

O que é isto?

desde já obrigado.

Cumps

Conectado

#2[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Sáb 17 Nov 2012 - 20:26

DJPRMF

Administrador
DJPRMF
Boas,

Pode ser algo simples, mas tente alterar o "T2" por uma letra apenas.

Quanto ao erro (e crie um backup do codigo antes de alterar) experimente substituir:
Código:
if(escolha == 'Q')
por
Código:
if(escolha == Q)

Altere igualmente as restantes escolhas. Wink

Cumps


____________________________________________

[Ajuda] Código para programa em C+ Tugatechuserbar
[Ajuda] Código para programa em C+ 3
[Ajuda] Código para programa em C+ 2
TugaTech || Host TugaTech
https://tugatech.com.pt https://www.facebook.com/DJPRMF https://twitter.com/dj_prmf DJPRMF

#3[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Sáb 17 Nov 2012 - 21:18

KinyuOne

GodUser
KinyuOne
Isso resolveu, obrigado Very Happy

Agora tenho outra duvida. Queria que o programa continuasse a pedir o que a pessoa quer calcular, até que ela carregasse numa certa tecla que neste caso seria S de Sair xD

Já tive a pensar que tinha que usar um while e já tive atentar fazer, mas não estou a ver como o fazer!

Conectado

#4[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Sáb 17 Nov 2012 - 21:47

DJPRMF

Administrador
DJPRMF
A minha programação em C+ está um pouco "enferrujada" Razz
No entanto:

Código:
do
{
  //  codigo geral do programa
} while ( !condição );

Neste caso a condição será até a tecla que pretende ser pressionada.


____________________________________________

[Ajuda] Código para programa em C+ Tugatechuserbar
[Ajuda] Código para programa em C+ 3
[Ajuda] Código para programa em C+ 2
TugaTech || Host TugaTech
https://tugatech.com.pt https://www.facebook.com/DJPRMF https://twitter.com/dj_prmf DJPRMF

#5[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Sáb 17 Nov 2012 - 22:22

KinyuOne

GodUser
KinyuOne
Portanto ficaria algo como:

Código:


do
{
aquele código todo que pus aí em cima
}
While

E agora no while é fiquei confuso xD O "!" significa negação certo? Então que condição é que tenho que negar? Eu quero que o programa só feche quando o utilizador carregar no S

Ficaria:

...
while(!escolha=='S')
(enquanto escolha não for S)

Algo deste género?

Peço desculpa, mas também não estou muito dentro nisto xD Ainda não demos muita coisa Smile

Conectado

#6[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Sáb 17 Nov 2012 - 22:53

DJPRMF

Administrador
DJPRMF
Neste caso teste com ambos os casos (com e sem o "!")


____________________________________________

[Ajuda] Código para programa em C+ Tugatechuserbar
[Ajuda] Código para programa em C+ 3
[Ajuda] Código para programa em C+ 2
TugaTech || Host TugaTech
https://tugatech.com.pt https://www.facebook.com/DJPRMF https://twitter.com/dj_prmf DJPRMF

#7[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Sáb 17 Nov 2012 - 23:52

KinyuOne

GodUser
KinyuOne
Tanto com como sem o programa sai no fim em vez de pedir ao utilizador que outra área quer calcular :/

Conectado

#8[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Dom 18 Nov 2012 - 10:42

DJPRMF

Administrador
DJPRMF
Poderia colocar o código completo?
Incluindo a função do...while... Wink


____________________________________________

[Ajuda] Código para programa em C+ Tugatechuserbar
[Ajuda] Código para programa em C+ 3
[Ajuda] Código para programa em C+ 2
TugaTech || Host TugaTech
https://tugatech.com.pt https://www.facebook.com/DJPRMF https://twitter.com/dj_prmf DJPRMF

#9[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Dom 18 Nov 2012 - 11:22

KinyuOne

GodUser
KinyuOne
Aqui vai Smile

Código:

{
 
  float lado1, lado2, base, altura, raio, basemaior, basemenor, altura2, quadrado, triangulo, circulo, trapezio, trapezio2, trapezio3;
  char escolha, Q, T, C, P, S;
 
 
 
  printf("Escolha a area que quer calcular:\n\n");
  printf("Q - Quadrado\nT - Triangulo\nC - Circulo\nP - Trapezio\nS - Sair\n\n");
  scanf("%c",&escolha);
  do
  {
  if(escolha=='Q')
  {
      printf("Insira o valor do lado 1:\n");
      scanf("%f",&lado1);
      printf("\n\nE agora do lado 2\n");
      scanf("%f",&lado2);
      quadrado=lado1*lado2;
      printf("\nA area do quadrado e: %.2f\n\n",quadrado);
     
  }
  if(escolha=='T')
  {
        printf("Insira o valor da base:\n");
        scanf("%f",&base);
        printf("\n\nAgora insira o valor da altura:\n");
        scanf("%f",&altura);
        triangulo=(base*altura)/2;
        printf("\nA area do triangulo e: %.2f\n\n",triangulo);
  }
  if(escolha=='C')
  {
        printf("Insira o valor do raio:\n\n");
        scanf("%f",&raio);
        circulo=3.14*(raio*raio);
        printf("\nA area do circulo e: %.3f\n\n",circulo);
  }
  if(escolha=='P')
  {
        printf("Insira o valor da base maior:\n");
        scanf("%f",&basemaior);
        printf("\n\nAgora insira o valor da base menor:\n");
        scanf("%f",&basemenor);
        printf("\n\nPor fim, insira a altura:\n");
        scanf("%f",&altura2);
        trapezio=basemaior+basemenor;
        trapezio2=trapezio/2;
        trapezio3=trapezio2*altura2;
        printf("\nA area do trapezio e: %.3f", trapezio3);
  }   
  }
  while(escolha=='S');
 
  system("PAUSE");   
  return(0);
 
}

Pus vários trapézios porque quis. Visualmente é mais simples de entender, sei que podia ter usado apenas um Smile

Conectado

#10[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Dom 18 Nov 2012 - 11:45

DJPRMF

Administrador
DJPRMF
Teste colocar o "do" antes de:
Código:
printf("Escolha a area que quer calcular:\n\n");

Wink


____________________________________________

[Ajuda] Código para programa em C+ Tugatechuserbar
[Ajuda] Código para programa em C+ 3
[Ajuda] Código para programa em C+ 2
TugaTech || Host TugaTech
https://tugatech.com.pt https://www.facebook.com/DJPRMF https://twitter.com/dj_prmf DJPRMF

#11[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Dom 18 Nov 2012 - 12:00

KinyuOne

GodUser
KinyuOne
Dá o mesmo de antes :/

Conectado

#12[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Dom 18 Nov 2012 - 12:04

DJPRMF

Administrador
DJPRMF
Bom, infelizmente, neste ponto, não consigo ajudar muito mais.
Mas irei continuar a testar algumas alternativas para ver. Wink

Se encontrar algo entretanto, coloco aqui. Smile


____________________________________________

[Ajuda] Código para programa em C+ Tugatechuserbar
[Ajuda] Código para programa em C+ 3
[Ajuda] Código para programa em C+ 2
TugaTech || Host TugaTech
https://tugatech.com.pt https://www.facebook.com/DJPRMF https://twitter.com/dj_prmf DJPRMF

#13[Ajuda] Código para programa em C+ Empty Re: [Ajuda] Código para programa em C+ - Dom 18 Nov 2012 - 12:08

KinyuOne

GodUser
KinyuOne
Muito obrigado pela ajuda Smile

O mais importante está feito também, ainda não demos isto portanto xD

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos




Aplicações do TugaTechAplicações TugaTechDiscord do TugaTechDiscord do TugaTechRSS TugaTechRSS do TugaTechSpeedtest TugaTechSpeedtest TugatechHost TugaTechHost TugaTech