Crie um registro chamado funcionario que contenha os seguintes campos:
  • nome (string): Nome do funcionário.
  • id (int): ID do funcionário.
  • cargo (string): Cargo do funcionário.
  • salario (float): Salário do funcionário.
    No programa principal, declare um vector de funcionario para armazenar informações de até N funcionários, onde o valor de N é lido. Solicite ao usuário os dados de cada funcionário e preencha os campos do registro.
    O programa deve calcular e exibir o salário médio dos funcionários e o nome e o cargo do funcionário com maior salário.
    Digite a quantidade de funcionarios: 3
    Digite o nome do funcionário: João Silva
    Digite o ID do funcionário: 101
    Digite o cargo do funcionário: Gerente
    Digite o salário do funcionário: 5000.0
    Digite o nome do funcionário: Maria Oliveira
    Digite o ID do funcionário: 102
    Digite o cargo do funcionário: Analista
    Digite o salário do funcionário: 3800.0
    Digite o nome do funcionário: Lucas Ferreira
    Digite o ID do funcionário: 103
    Digite o cargo do funcionário: Consultor
    Digite o salário do funcionário: 3200.0
    Salário Médio dos Funcionários: 4000.0
    Maior salário: João Silva, Gerente

Passo 1

Beleza, vamos dar uma olhada no que a questão está pedindo. Precisamos criar um registro chamado funcionario que vai guardar informações sobre cada funcionário, como nome, ID, cargo e salário. Depois, no programa principal, vamos criar um vetor (ou seja, uma lista) para armazenar até N funcionários, onde N é um número que o usuário vai digitar. Vamos pedir ao usuário para preencher os dados de cada funcionário, calcular o salário médio e identificar quem tem o maior salário, mostrando o nome e o cargo dessa pessoa. Para resolver isso, vamos precisar entender sobre registros (ou structs), vetores, laços de repetição e operações básicas com números.

Passo 2

Primeiro, vamos definir o registro que vai representar um funcionário. Em programação, um registro (ou struct) é uma maneira de agrupar diferentes tipos de dados sob um único nome. No nosso caso, cada funcionário tem um nome (string), um ID (inteiro), um cargo (string) e um salário (número de ponto flutuante).
Aqui está como podemos definir isso em código (usando, por exemplo, C++):
struct Funcionario {
    std::string nome;
    int id;
    std::string cargo;
    float salario;
};

Passo 3

Agora, no programa principal, vamos precisar criar um vetor para armazenar vários funcionários. Um vetor é basicamente uma lista que pode guardar vários itens do mesmo tipo. Mas antes de criar o vetor, precisamos saber quantos funcionários vamos ter, ou seja, ler o valor de N que o usuário vai fornecer.
int main() {
    int N;
    std::cout << "Digite a quantidade de funcionarios: ";
    std::cin >> N;
    
    std::vector<Funcionario> funcionarios(N);
    
    // ... (próximos passos)
}

Passo 4

Com o vetor criado, vamos pedir ao usuário para preencher os dados de cada funcionário. Para isso, vamos usar um laço de repetição que vai de 0 até N-1, permitindo que preenchamos cada posição do vetor com as informações fornecidas.
for(int i = 0; i < N; ++i) {
    std::cout << "Digite o nome do funcionário: ";
    std::cin >> funcionarios[i].nome;
    
    std::cout << "Digite o ID do funcionário: ";
    std::cin >> funcionarios[i].id;
    
    std::cout << "Digite o cargo do funcionário: ";
    std::cin >> funcionarios[i].cargo;
    
    std::cout << "Digite o salário do funcionário: ";
    std::cin >> funcionarios[i].salario;
}

Passo 5

Depois de preencher os dados, precisamos calcular o salário médio dos funcionários. Para isso, vamos somar todos os salários e depois dividir pelo número total de funcionários. A fórmula matemática para isso é:
Salário Médio = sumi=1^N salárioiN áéá
Vamos implementar isso:
float somaSalarios = 0.0;
for(int i = 0; i < N; ++i) {
    somaSalarios += funcionarios[i].salario;
}
float salarioMedio = somaSalarios / N;

Passo 6

Agora, precisamos identificar qual funcionário tem o maior salário. Para isso, vamos percorrer o vetor e comparar os salários, mantendo o registro do maior encontrado até o momento.
float maiorSalario = funcionarios[0].salario;
std::string nomeMaior;
std::string cargoMaior;

for(int i = 1; i < N; ++i) {
    if(funcionarios[i].salario > maiorSalario) {
        maiorSalario = funcionarios[i].salario;
        nomeMaior = funcionarios[i].nome;
        cargoMaior = funcionarios[i].cargo;
    }
}

// Considerando que o primeiro funcionário também pode ser o de maior salário
nomeMaior = funcionarios[0].nome;
cargoMaior = funcionarios[0].cargo;
for(int i = 1; i < N; ++i) {
    if(funcionarios[i].salario > maiorSalario) {
        maiorSalario = funcionarios[i].salario;
        nomeMaior = funcionarios[i].nome;
        cargoMaior = funcionarios[i].cargo;
    }
}

Resposta

Depois de executar o programa com os dados fornecidos:
  • Salário Médio dos Funcionários: 4000.0
  • Maior salário: João Silva, Gerente

Exercícios relacionados