1
Crie um tipo de registro que contenha os seguintes campos: Nome, RA, frequencia, notas[3] e media. Crie um vetor de variáveis deste registro. Faça um programa que permita inserir, remover, visualizar e buscar elementos do registro pelo RA.
Crie um tipo de registro que contenha os seguintes campos: Nome, RA, frequencia, notas[3] e media. Crie um vetor de variáveis deste registro. Faça um programa que permita inserir, remover, visualizar e buscar elementos do registro pelo RA.
Passo 1
Beleza, vamos dar uma olhada no que você precisa fazer aqui! O exercício pede para criar um tipo de registro com os campos Nome, RA, frequência, notas[3] e média. Depois, precisamos criar um vetor desse tipo de registro e desenvolver um programa que permita inserir, remover, visualizar e buscar elementos pelo RA.
Para resolver isso, vamos usar conceitos de estruturas de dados (no caso, registros) e vetores. Também vamos precisar entender como manipular esses registros no programa para realizar as operações solicitadas.
Passo 2
Primeiro, vamos definir o tipo de registro. Dependendo da linguagem de programação que você está usando (como C, Python, Java, etc.), a sintaxe pode variar. Vou dar um exemplo em C, que é bem comum para esse tipo de exercício.
Em C, podemos definir um struct para representar o registro:
typedef struct {
char nome[50];
int RA;
float frequencia;
float notas[3];
float media;
} Registro;
Aqui, typedef cria um novo tipo chamado Registro com os campos que você mencionou.
Passo 3
Agora, vamos criar um vetor para armazenar múltiplos registros. Ainda em C, podemos definir um vetor de Registro. Vamos supor que o tamanho máximo do vetor seja 100 elementos:
#define MAX 100
Registro vetorRegistros[MAX];
int contador = 0; // Para acompanhar quantos registros já foram inseridos
Aqui, vetorRegistros é o nosso vetor de registros, e contador vai ajudar a saber quantos registros já estão armazenados.
Passo 4
Vamos criar funções para cada uma das operações que o programa deve realizar: inserir, remover, visualizar e buscar pelo RA.
Função para Inserir
void inserirRegistro() {
if (contador < MAX) {
printf("Digite o nome: ");
scanf("%s", vetorRegistros[contador].nome);
printf("Digite o RA: ");
scanf("%d", &vetorRegistros[contador].RA);
printf("Digite a frequencia: ");
scanf("%f", &vetorRegistros[contador].frequencia);
printf("Digite as 3 notas:\n");
vetorRegistros[contador].media = 0;
for(int i = 0; i < 3; i++) {
printf("Nota %d: ", i+1);
scanf("%f", &vetorRegistros[contador].notas[i]);
vetorRegistros[contador].media += vetorRegistros[contador].notas[i];
}
vetorRegistros[contador].media /= 3;
contador++;
printf("Registro inserido com sucesso!\n");
} else {
printf("Vetor cheio. Não é possível inserir mais registros.\n");
}
}
Explicação: Essa função verifica se ainda há espaço no vetor. Se sim, solicita que o usuário digite os dados, calcula a média das notas e incrementa o contador.
Função para Remover
void removerRegistro(int RA) {
int encontrado = -1;
for(int i = 0; i < contador; i++) {
if(vetorRegistros[i].RA == RA) {
encontrado = i;
break;
}
}
if(encontrado != -1) {
for(int i = encontrado; i < contador - 1; i++) {
vetorRegistros[i] = vetorRegistros[i+1];
}
contador--;
printf("Registro removido com sucesso!\n");
} else {
printf("Registro com RA %d não encontrado.\n", RA);
}
}
Explicação: Essa função busca pelo RA no vetor. Se encontrar, remove o registro deslocando os demais elementos para preencher o espaço vazio.
Função para Visualizar
void visualizarRegistros() {
if(contador == 0) {
printf("Nenhum registro para exibir.\n");
return;
}
for(int i = 0; i < contador; i++) {
printf("Registro %d:\n", i+1);
printf("Nome: %s\n", vetorRegistros[i].nome);
printf("RA: %d\n", vetorRegistros[i].RA);
printf("Frequência: %.2f%%\n", vetorRegistros[i].frequencia);
printf("Notas: %.2f, %.2f, %.2f\n", vetorRegistros[i].notas[0], vetorRegistros[i].notas[1], vetorRegistros[i].notas[2]);
printf("Média: %.2f\n", vetorRegistros[i].media);
printf("-------------------------\n");
}
}
Explicação: Essa função percorre o vetor e exibe os dados de cada registro armazenado.
Função para Buscar
void buscarRegistro(int RA) {
for(int i = 0; i < contador; i++) {
if(vetorRegistros[i].RA == RA) {
printf("Registro encontrado:\n");
printf("Nome: %s\n", vetorRegistros[i].nome);
printf("RA: %d\n", vetorRegistros[i].RA);
printf("Frequência: %.2f%%\n", vetorRegistros[i].frequencia);
printf("Notas: %.2f, %.2f, %.2f\n", vetorRegistros[i].notas[0], vetorRegistros[i].notas[1], vetorRegistros[i].notas[2]);
printf("Média: %.2f\n", vetorRegistros[i].media);
return;
}
}
printf("Registro com RA %d não encontrado.\n", RA);
}
Explicação: Essa função busca por um registro específico usando o RA informado e exibe seus dados se encontrado.
Passo 5
Por fim, vamos criar um menu para o usuário interagir com o programa, escolhendo qual operação deseja realizar.
int main() {
int opcao, RA;
while(1) {
printf("----- Menu -----\n");
printf("1. Inserir Registro\n");
printf("2. Remover Registro\n");
printf("3. Visualizar Registros\n");
printf("4. Buscar Registro pelo RA\n");
printf("5. Sair\n");
printf("Escolha uma opção: ");
scanf("%d", &opcao);
switch(opcao) {
case 1:
inserirRegistro();
break;
case 2:
printf("Digite o RA do registro a remover: ");
scanf("%d", &RA);
removerRegistro(RA);
break;
case 3:
visualizarRegistros();
break;
case 4:
printf("Digite o RA para buscar: ");
scanf("%d", &RA);
buscarRegistro(RA);
break;
case 5:
printf("Saindo do programa.\n");
return 0;
default:
printf("Opção inválida. Tente novamente.\n");
}
}
}
Explicação: Esse trecho cria um loop infinito que exibe as opções disponíveis. Dependendo da escolha do usuário, chama a função correspondente ou encerra o programa.
Resposta
Pronto! Com esses passos, você consegue criar um programa que gerencia registros contendo Nome, RA, frequência, três notas e a média, permitindo inserir, remover, visualizar e buscar registros pelo RA. Experimente compilar e rodar o programa para ver como tudo funciona na prática!
Exercícios relacionados
Faça uma função que receba uma string como parâmetro e retorne o número de consoantes que existem na string.
Dada uma matriz MAT de inteiros com
elementos, faça um algoritmo para somar os elementos de cada linha gerando o vetor SOMALINHA. Em seguida, some
os valores dos elementos do vetor em uma variável TOTAL, que deve impressa ao final.
os valores dos elementos do vetor em uma variável TOTAL, que deve impressa ao final.
Ler um vetor
de números inteiros com 100 posições. Imprimir quantos números ímpares e quantos números pares existem no vetor.
Ler uma matriz
de números inteiros com
posições. Ler mais um número inteiro
. Buscar o número
na matriz
e imprimir apenas a primeira posição em que ele foi encontrado. Caso o número
não seja encontrado, imprimir a mensagem