Faça um programa C para calcular o número de lâmpadas 60 watts necessárias para um determinado cômodo. O programa deverá ler um conjunto de informações, tais como: tipo, largura e comprimento do cômodo. O programa termina quando o tipo de cômodo for igual -1. A tabela abaixo mostra, para cada tipo de cômodo, a quantidade de watts por metro quadrado.
Use uma estrutura para agrupar logicamente as informações de um cômodo (int tipo de cômodo, float largura e float altura). Usar uma função (float CalulaArea) para calcular a área do cômodo. Os atributos de entrada serão a largura e comprimento do cômodo. Usar uma função (float Lampada) para calcular a quantidade de lâmpadas necessárias para o cômodo. Os atributos de entrada serão o tipo de cômodo e a área (em m^2 ).
Obs.: Utilize a função ceil(número) em math.h para realizar o arredondamento para cima referente à quantidade de lâmpadas.
Tipo de cômodo Potência (W / m²)
1 12
2 15
3 18
4 20
5 22

Passo 1

O enunciado pede um programa em C que leia repetidamente informações de um cômodo (tipo, largura e comprimento) até que o tipo seja -1, calcule quantas lâmpadas de 60 W são necessárias e exiba esse número. Vamos usar uma struct para agrupar os dados de cada cômodo, uma função CalculaArea para obter a área em m^2 e uma função Lampada que, dado o tipo de cômodo e a área, retorna o número de lâmpadas (usando ceil).

Passo 2

Definimos a struct Comodo com os atributos necessários e criamos a função CalculaArea, que recebe largura e comprimento e retorna a área:
typedef struct {
    int tipo;
    float largura;
    float comprimento;
} Comodo;

float CalculaArea(float largura, float comprimento) {
    return largura * comprimento;
}

Passo 3

Implementamos a função Lampada, que recebe o tipo e a área, seleciona a potência por metro quadrado conforme a tabela e calcula quantas lâmpadas de 60 W são necessárias, aplicando ceil ao resultado de potência total60ê:
#include <math.h>

float Lampada(int tipo, float area) {
    int potencia_por_m2;
    switch (tipo) {
        case 1: potencia_por_m2 = 12; break;
        case 2: potencia_por_m2 = 15; break;
        case 3: potencia_por_m2 = 18; break;
        case 4: potencia_por_m2 = 20; break;
        case 5: potencia_por_m2 = 22; break;
        default: return 0;  // tipo inválido
    }
    float potencia_total = potencia_por_m2 * area;
    return ceil(potencia_total / 60.0f);
}

Passo 4

No main, fazemos um laço while que lê o tipo. Se for diferente de -1, lê largura e comprimento, chama CalculaArea e Lampada, imprime o resultado e repete até tipo == -1:
#include <stdio.h>
#include <math.h>

/* (aqui entram as definições de Comodo, CalculaArea e Lampada) */

int main() {
    Comodo c;
    while (1) {
        printf("Digite o tipo do comodo (-1 para sair): ");
        scanf("%d", &c.tipo);
        if (c.tipo == -1)
            break;
        printf("Digite a largura e o comprimento: ");
        scanf("%f %f", &c.largura, &c.comprimento);
        float area = CalculaArea(c.largura, c.comprimento);
        float qtd = Lampada(c.tipo, area);
        printf("Quantidade de lampadas de 60W: %.0f\n\n", qtd);
    }
    return 0;
}

Resposta

#include <stdio.h>
#include <math.h>

typedef struct {
    int tipo;
    float largura;
    float comprimento;
} Comodo;

float CalculaArea(float largura, float comprimento) {
    return largura * comprimento;
}

float Lampada(int tipo, float area) {
    int potencia_por_m2;
    switch (tipo) {
        case 1: potencia_por_m2 = 12; break;
        case 2: potencia_por_m2 = 15; break;
        case 3: potencia_por_m2 = 18; break;
        case 4: potencia_por_m2 = 20; break;
        case 5: potencia_por_m2 = 22; break;
        default: return 0;
    }
    float potencia_total = potencia_por_m2 * area;
    return ceil(potencia_total / 60.0f);
}

int main() {
    Comodo c;
    while (1) {
        printf("Digite o tipo do comodo (-1 para sair): ");
        scanf("%d", &c.tipo);
        if (c.tipo == -1)
            break;
        printf("Digite a largura e o comprimento: ");
        scanf("%f %f", &c.largura, &c.comprimento);
        float area = CalculaArea(c.largura, c.comprimento);
        float qtd = Lampada(c.tipo, area);
        printf("Quantidade de lampadas de 60W: %.0f\n\n", qtd);
    }
    return 0;
}

Exercícios relacionados