Exercicios resolvidos Estrutura
DATA: ___/___/_____
DISCIPLINA:
PROFESSOR(A):
PERÍODO:
TURNO:
AVALIAÇÃO:
ALUNO(A): ______________________________________________________________________
GRAU:
VISTO DO PROFESSOR:
1 - Implemente uma função com o seguinte protótipo: float acessa (int n, float **mat, int i, int j);
Essa função devolve o valor de um elemento (i, j) da matriz mat com tamanho n x n. A matriz mat é simétrica, ou seja, o programa principal apenas armazenou os elementos da diagonal principal e da metade dos elementos restantes, ou seja, os elementos abaixo da diagonal, para os quais i é diferente de
j.
Exemplo de matriz simétrica 3 x 3:
5.0 6.0 8.0
6.0 9.0 7.0
8.0 7.0 1.0
Na primeira linha seria armazenado apenas o elemento 5.0, na segunda linha 6.0 e 9.0 e na terceira linha
8.0, 7.0 e 1.0. Para implementação da função, considere que o programa principal já armazenou corretamente os elementos em mat, com alocação dinâmica em vetor de ponteiros.
A função deve verificar, ainda, se os índices i,j (passados como parâmetros) são válidos.
2 - Faça um programa que leia uma tabela com n alunos de uma escola, incluindo Matrícula, Nota 1, Nota
2 e Nota 3 correspondentes (conforme exemplo abaixo). O valor de n será lido no início do programa.
Matrícula
20.2
30.5
.
.
Nota 1
10.0
2.0
.
.
Nota 2
9.5
8.4
.
.
Nota 3
8.3
4.7
.
.
A seguir, o programa deverá ler um conjunto de dados, incluindo matrícula e nome de alunos da escola
(término dos dados com matrícula = 0). O programa deverá mostrar o nome e a média das notas, caso o aluno seja encontrado no conjunto inicial; ou uma mensagem “Aluno não encontrado na tabela”. Crie, ainda, uma função para busca seqüencial à tabela, que retorne a posição do elemento encontrado.
a) Crie uma versão do programa, alocando a tabela dinamicamente em uma matriz do tipo Float.
Escolha implementar a matriz utilizando um vetor de ponteiros ou representando como um vetor unidimensional. b) Crie uma segunda