Você está na página 1de 9

O seguinte relatório do projeto do curso de Engenharia informatica de Gestão da Universidade

Jean Piaget tem como objectivo, fazer um programa que facilite ler a data de nascimento (dia,
mes, ano) dos alunos de cada turma de uma Escola primaria, calcular e guardar numa matriz.
Percorrer a matriz de idades, calcular e armazenar as medias de idades num vector. Mostrar a
matriz de idade e mostrar a media de idade por turma.
Objectivo solucionar o problema da escola primaria de acordo as condições que eles pediram .
A primeira linha #include <stdio.h> é uma diretiva de pré-processador que
permite que você use funções de entrada e saída padrão em seu programa.

Em seguida, é definida uma constante TURM com o valor 10 usando a


diretiva #define.

É declarado um array de ponto flutuante medias com tamanho TURM (que é


igual a 50).

#define ALUNOS_POR_TURM 2 é uma diretiva de pré-processador que define


uma constante chamada ALUNOS_POR_TURM com o valor 2, mas também
não está no lugar correto.

printf("Decare a data de nascimento do Aluno (dia mes ano): "); é outra


declaração de impressão fora de uma função.

scanf("%d", &ano_at); é uma declaração de leitura de entrada usando scanf,


mas não está dentro de uma função.

Em seguida, é declarada uma matriz id de inteiros com dimensões TURM por


ALUNOS_POR_TURM.

É impresso um cabeçalho para a escola.

Em seguida, há um loop for aninhado, que provavelmente deveria ser a


função main(). No entanto, há erros nas variáveis de controle do loop:

for ( sala = 0; sala < TURM; saa++) deveria ser for (sala = 0; sala < TURM; sala+
+).

for ( auno = 0; aluno < ALUNOS_POR_TURM; aluno++) deveria ser for (aluno
= 0; aluno < ALUNOS_POR_TURM; aluno++).

Dentro do loop, há uma declaração de função main(), o que não é permitido


em C. A função main() deve ser definida fora de qualquer loop ou função
existente.

Há uma leitura de entrada usando scanf para obter o dia, mês e ano de
nascimento do aluno.

/ Calcula a idade do aluno id[sala][aluno] = idade; int idade = anoat -anonsc;


for (sala = 0; sala < TURM; saa++) { // Cacuar a média de idades por
turma } } // Armazena a idade na matriz s_idade = 0;

A linha id[sala][aluno] = idade; está armazenando a idade de um aluno em


uma matriz chamada id. A matriz id tem dimensões [sala][aluno], onde sala
representa o número da sala de aula e aluno representa o número do aluno.

A próxima linha int idade = anoat - anonsc; está calculando a idade


subtraindo o ano de nascimento (anonsc) do ano atual (anoat).

O loop for seguinte for (sala = 0; sala < TURM; saa++) { percorre todas as
salas de aula (de 0 a TURM-1) e realiza o cálculo da média de idades por sala.
No entanto, há um erro de digitação na variável saa, que deveria ser sala. A
linha corrigida seria: for (sala = 0; sala < TURM; sala++) {.

Dentro do loop, você pode adicionar código para calcular a média de idades
por sala, usando as idades armazenadas na matriz id. No entanto, essa parte
do código está faltando.

A linha s_idade = 0; parece ser uma inicialização de uma variável chamada


s_idade, mas não está claro como ela é usada posteriormente no código.

for (auno = 0; aluno < ALUNOS_POR_TURM; aluno++) {

Este é o início de um loop (laço de repetição) que será executado para cada
aluno na turma. A variável aluno é inicializada com o valor 0 e o loop será
repetido enquanto o valor de aluno for menor que ALUNOS_POR_TURM.

s_idade += id[sala][aluno];

Essa linha está adicionando o valor da idade do aluno à variável s_idade.


Parece que id é uma matriz multidimensional (ou seja, uma matriz de
matrizes) que armazena as idades dos alunos. A variável sala representa o
número da sala atual e aluno representa o número do aluno atual.

medias[sala] = (float)s_idade / ALUNOS_POR_TURM;

Aqui, o código está calculando a média das idades dos alunos na sala sala e
armazenando o resultado na matriz medias. O valor da média é obtido
dividindo a soma das idades (s_idade) pelo número total de alunos por turma
(ALUNOS_POR_TURM). A conversão (float) antes de s_idade é usada para
garantir que a divisão seja realizada como uma operação de ponto flutuante,
para que a média seja um número real (com casas decimais) em vez de um
número inteiro.

O fechamento do loop for. Isso marca o final do bloco de código que será
repetido para cada aluno na turma.
Nesta fase o código começa com a declaração de uma string para exibir a
palavra "Idades" na saída do programa. Em seguida, é utilizado o comando
printf para imprimir essa string.

Depois, há um comentário indicando que a matriz de idades será mostrada.


Em seguida, um loop é iniciado para percorrer cada sala de aula (sala) e cada
aluno (aluno) dentro da sala. Dentro desse loop, é utilizado o comando printf
para imprimir a idade de cada aluno. O formato da string de formatação é
Idade do Aluno %d: %d, onde o primeiro %d indica a posição do aluno na sala
(incrementado em 1 porque a contagem começa em zero), e o segundo %d
representa a idade do aluno na matriz de idades.

Em seguida, um novo loop externo é iniciado para percorrer cada sala de


aula (sala). Dentro desse loop, há outro loop interno para percorrer cada
aluno (aluno). Dentro do loop interno, é utilizado o comando printf para
imprimir a string "Sala X:", onde X representa o número da sala de aula
(incrementado em 1 porque a contagem começa em zero).
A seguir o código exibe a mensagem "Idades:" no console.

Depois é utilizado a função printf para imprimir a idade de um aluno


específico. O valor de aluno é incrementado em 1 para exibir o número do
aluno corretamente, e id[sala][aluno] representa a idade desse aluno.

A seguir a linha imprime uma nova linha em branco.

O bloco seguinte contém um loop for que itera sobre os alunos em uma
turma. O contador é inicializado como auno = 0 e o loop continua enquanto
aluno for menor que o número máximo de alunos por turma
(ALUNOS_POR_TURMA). A cada iteração, o código imprime a mensagem
"Sala x:", onde x é o número da sala atual.

No bloco do loop, espera-se que haja código adicional para calcular a média
das idades dos alunos nessa turma. No entanto, essa parte está ausente no
código fornecido.

Em seguida, há um segundo loop for que itera sobre as salas. O contador é


inicializado como sala = 0 e o loop continua enquanto sala for menor que o
número máximo de turmas (TURM). A cada iteração, o código imprime a
mensagem "Sala x: y", onde x é o número da sala atual e y é o valor da média
de idades calculada para essa sala.

Após o segundo loop, há uma linha que imprime a mensagem "Media de


idades" no console.

Em seguida, há um terceiro loop for (que aparentemente está incompleto,


pois não contém nenhum código dentro dele) que também itera sobre as
salas.

Por fim, o código retorna 0, indicando que o programa foi concluído com
sucesso.

Apresentação do código feito poara a resolução do probrema.


#include <stdio.h>

#define TURM 10

#define ALUNOS_POR_TURM 50
int main() {

int id[TURM][ALUNOS_POR_TURM];

float medias[TURM];

int dia_nsc, mes_nsc, ano_nsc, ano_at, idade, s_idade, sala, aluno;

printf("----------Escola Primaria N5112-------------\n\n");

printf("Declare a data do ano atual\n");

scanf("%d", &ano_at);

for ( sala = 0; sala < TURM; sala++) {

printf("Sala %d:\n", sala + 1);

for ( aluno = 0; aluno < ALUNOS_POR_TURM; aluno++) {

printf("Aluno %d:\n", aluno + 1);

printf("Declare a data de nascimento do Aluno (dia mes ano): ");

scanf("%d %d %d", &dia_nsc, &mes_nsc, &ano_nsc);

// Calcula a idade do aluno

int idade = ano_at - ano_nsc;

// Armazena a idade na matriz

id[sala][aluno] = idade;

// Calcular a média de idades por turma

for (sala = 0; sala < TURM; sala++) {

s_idade = 0;

for (aluno = 0; aluno < ALUNOS_POR_TURM; aluno++) {

s_idade += id[sala][aluno];

medias[sala] = (float)s_idade / ALUNOS_POR_TURM;


}

// Mostrar a matriz de idades

printf("\nIdades:\n");

for (sala = 0; sala < TURM; sala++) {

printf("Sala %d:\n", sala + 1);

for (aluno = 0; aluno < ALUNOS_POR_TURM; aluno++) {

printf("Idade do Aluno %d: %d \n", aluno + 1, id[sala][aluno]);

printf("\n");

// Mostrar a média de idades por turma

printf("\nMedia de idades\n");

for (sala = 0; sala < TURM; sala++) {

printf("Sala %d: %.1f\n", sala + 1, medias[sala]);

return 0;

Resumo do programa:

Define a constante TURM como 10 e declara o array medias com tamanho


TURM.

Solicita ao usuário que insira a data de nascimento de cada aluno.


Define as variáveis dia_nsc, mes_nsc, ano_nsc, ano_at, idade, s_idade, sala e
aluno.

Armazena a idade de cada aluno em uma matriz id[sala][aluno].

Calcula a idade de cada aluno com base na data de nascimento e na data


atual.

Define a constante ALUNOS_POR_TURM como 50.

Solicita ao usuário que insira a data atual.

Define a matriz id com tamanho TURM x ALUNOS_POR_TURM.

Calcula a idade de cada aluno e armazena na matriz id.

Calcula a média das idades por turma e armazena no array medias.

Exibe as idades de cada aluno e as médias de idade por turma.

Este programa em C calcula a média de idades por turma em uma escola


primária. Ele solicita ao usuário que insira a data de nascimento de cada
aluno, calcula a idade de cada aluno com base na data atual e armazena
essas idades em uma matriz. Em seguida, o programa calcula a média das
idades de cada turma e exibe as idades de cada aluno e as médias de idade
por turma.

Você também pode gostar