Ir ao conteúdo

C Programa de area de formas geométricas


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

Galera, o programa que preciso fazer para a facul pede para calcular a area de certas figuras geometricas, mas não sei como calcular a area de varias figuras usando o for, conseguem me ajudar?

segue enunciado:

Citação

faça um programa que mostre um menu de opções:

receba a altura e a base de 10 triângulos, calcule e mostre área de cada triângulo;

receba a altura e a base de 15 retângulos, calcule e mostre área de cada retângulo;

receba a altura, a base maior e a base menor de 20 trapézios, calcule e mostre área de cada trapézio;

e receba o raio de 15 circunferências, calcule e mostre área de cada circunferência.

como faço isso usando o for?

Postado

@Ragnarbrody Você usar o For em um switch para calcular as áreas de acordo com a escolha,

 

  switch(figura){
    case 1:
      for(i=1;i<=10;i++){
        printf("Entre com a altura e base da figrura: ");
      }
      break;
    case 2:
      for(i=1;i<=15;i++){
        printf("Entre com a altura e base da figrura: ");
      }
    break;
    
    ...

 

  • Curtir 1
Postado
#include <stdio.h> 
#include <stdlib.h> 
//mostre um menu de opções aqui
int i,alturatriangulo[10],basetriangulo[10],rtriangulo[10];
int main(){ 
//receba a altura e a base de 10 triângulos, calcule e mostre área de cada triângulo;
for(i=0;i<10;i++){
	printf("Entre com altura do triangulo %d: ",i+1);
	scanf ("%d",&alturatriangulo[i]);
	printf("Entre com base do triangulo %d: ",i+1);
	scanf ("%d",&basetriangulo[i]);
	rtriangulo[i]=basetriangulo[i]*alturatriangulo[i]/2;
	printf ("area do triangulo %d e:%d \n",i+1,rtriangulo[i]);
}
//receba a altura e a base de 15 retângulos, calcule e mostre área de cada retângulo;
for(i=0;i<15;i++){
}
//receba a altura, a base maior e a base menor de 20 trapézios, calcule e mostre área de cada trapézio;
for(i=0;i<20;i++){
}
 //receba o raio de 15 circunferências, calcule e mostre área de cada circunferência.
for(i=0;i<15;i++){
}

}

 

  • Curtir 1
Postado

Está uns 90% pronto. O resto é com você:

#include <stdio.h>
#include <stdlib.h>

#if defined(_WIN32)
#define esperar system("pause")
#define limparTela system("cls")
#elif defined(__linux__)
#define esperar system("read null")
#define limparTela system("clear")
#endif

double calcularAreaCirculo(double raio);

double calcularAreaRetangulo(double altura, double largura);

double calcularAreaTrapezio(double altura, double baseMenor, double baseMaior);

double calcularAreaTriangulo(double altura, double base);

int menu();

int main() {
    double base = 0.0;
    double altura = 0.0;
    double largura = 0.0;
    double raio = 0.0;
    double baseMenor = 0.0;
    double baseMaior = 0.0;

    int opcao = 0;
    int quantidade = 0;

    do {
        opcao = menu();
        limparTela;

        switch (opcao) {
            case 0:
                printf("[ I ]: Programa encerrado. \n");
                break;
            case 1:
                quantidade = 15;
                printf(">> Area do circulo \n");
                for (int i = 0; i < quantidade; ++i) {
                    printf("Informe o raio [ %i de %i ]: ", (i + 1), quantidade);
                    scanf(" %lf%*c", &raio);
                    printf("Area: %.2f \n", calcularAreaCirculo(raio));
                }
                break;
            case 2:
                quantidade = 15;
                printf(">> Area do retangulo \n");
                for (int i = 0; i < quantidade; ++i) {
                    printf("Informe a largura [ %i de %i ]: ", (i + 1), quantidade);
                    scanf(" %lf%*c", &largura);
                    printf("Informe a altura [ %i de %i ]: ", (i + 1), quantidade);
                    scanf(" %lf%*c", &altura);
                    printf("Area: %.2f \n", calcularAreaRetangulo(altura, largura));
                }
                break;
            case 3:
                quantidade = 20;
                printf(">> Area do trapezio \n");
                for (int i = 0; i < quantidade; ++i) {
                    printf("Informe a altura [ %i de %i ]: ", (i + 1), quantidade);
                    scanf(" %lf%*c", &altura);
                    printf("Informe a base menor [ %i de %i ]: ", (i + 1), quantidade);
                    scanf(" %lf%*c", &baseMenor);
                    printf("Informe a base maior [ %i de %i ]: ", (i + 1), quantidade);
                    scanf(" %lf%*c", &baseMaior);
                    printf("Area: %.2f \n", calcularAreaTrapezio(altura, baseMenor, baseMaior));
                }
                break;
            case 4:
                quantidade = 10;
                printf(">> Area do triangulo \n");
                for (int i = 0; i < quantidade; ++i) {
                    printf("Informe a altura [ %i de %i ]: ", (i + 1), quantidade);
                    scanf(" %lf%*c", &altura);
                    printf("Informe a base [ %i de %i ]: ", (i + 1), quantidade);
                    scanf(" %lf%*c", &base);
                    printf("Area: %.2f \n", calcularAreaTriangulo(altura, base));
                }
                break;
            default:
                printf("[ E ]: Isso nao deveria ser exibido. Verifique a funcao menu. \n");
                exit(EXIT_FAILURE);
        }

        esperar;
    } while (opcao != 0);

    limparTela;
    return EXIT_SUCCESS;
}

double calcularAreaCirculo(double raio) {
}

double calcularAreaRetangulo(double altura, double largura) {
}

double calcularAreaTrapezio(double altura, double baseMenor, double baseMaior) {
}

double calcularAreaTriangulo(double altura, double base) {
}

int menu() {
    int opcao = 0;

    do {
        limparTela;
        printf("Menu \n");
        printf("[ 1 ] - Calcular area do circulo \n");
        printf("[ 2 ] - Calcular area do retangulo \n");
        printf("[ 3 ] - Calcular area do trapezio \n");
        printf("[ 4 ] - Calcular area do triangulo \n");
        printf("[ 0 ] - Sair \n");
        printf("> ");
        scanf(" %i%*c", &opcao);
    } while (opcao < 0 || opcao > 4);

    return opcao;
}

 

  • Curtir 1
Postado

@AdrianoSiqueira @herbertbahia @Midori  Gente, muito obrigado mas meu professor disse que preferencialmente é para fazer sem usar switch, eu fiz usando goto e for, meu código ficou assim (nota se que fiz somente das circuferências no momento):

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main ()
{
    submenu:   
    system ("cls");
    setlocale(LC_ALL, "portuguese");
    int opcao=0, isub=0;
    char csub;
    printf("\n");
    printf("\nEscolha qual forma calcular a área:");
    printf("\n");
    printf("\n[01] Área do círculo");
    printf("\n[02] Área do retângulo");
    printf("\n[03] Área do trapézio");
    printf("\n[04] Área do triângulo");
    printf("\n[05] Retornar ao Menu Principal"); //coloquei essa opção porque esse programa será um sub de outro principal
    printf("\n");
    printf("\nDigite aqui uma das opções");
    printf("\nR: ");
    scanf("%d", &opcao);
    if (opcao == 1)
    {
        #define pi 3.14159265
        float areac=0, raio=0;
        system ("cls");
        subcir:
        printf("\n");
        printf("\n>> Área do Círculo");
        printf("\n");
        for (isub=0; isub<15; isub++)
        {
            printf("\nInforme o raio (em centímetros) [ %d de 15 ]", (isub+1));
            printf("\nR: ");
            scanf("%f*c", &raio);
            areac=(pi*(raio*raio));
            printf("Aqui está a area: %.2f cm²", areac);
            printf("\n");
        }
        novaareacircu:
        printf("\n");
        printf("\nDeseja calcular a Área de 15 outras cicunferências? [S/N]");
        printf("\nR: ");
        csub = getche ();
        if (csub == 's' || csub == 'S')
        {
            system ("cls");
            goto subcir;
        }
        if (csub == 'n' || csub == 'N')
        {
            system ("cls");
            goto submenu;
        }
        if (csub != 's' || csub != 'S')
        {
            printf("\n");
            printf("\nLetra inválida!! Digite uma letra Válida!!");
            printf("\n");
            goto novaareacircu;
        }
    }
}

 

  • Solução
Postado

@Ragnarbrody Dá pra fazer usando só um For,

 

int main(void) {
  int op, i, n, a, b;
  float A;

  printf("(1)Triângulo\n(2)Retângulo\n:");
  scanf("%d", &op);

  if(op==1) n=10;
  if(op==2) n=15;

  for(i=0;i<n;i++){
    if(op==1){
      printf("Altura e Base do triângulo [%d]: ", i+1);
      scanf("%d %d", &a, &b);
      A=(a*b)/(float)2;
    }else if(op==2){
      printf("Altura e Base do retângulo [%d]: ", i+1);
      scanf("%d %d", &a, &b);
      A=(a*b);
    }
    
    printf("A = %.2f\n", A);
  }
  return 0;
}

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!