Laboratório 4 - Semana de 14 Mar.
1. (Tabelas bidimensionais) Um treinador de atletismo treina 5 atletas e faz 7 sessões de treino por semana. Em cada sessão, cada atleta percorre uma distância que é cronometrada. Os valores dos tempos, em segundos, são registados sob a forma de uma m atriz (e.g., tempos[DIM1][DIM2]), onde cada linha identifica um atleta e cada coluna uma sessão de treino. Escreva um programa para:
- calcular e escrever a média dos tempos realizados em cada sessão de treinos;
- determinar e escrever o melhor tempo realizado por cada um dos atletas nas 7 sessões.
Neste exercício, implemente as seguintes funções:
- para ler os tempos:
void leMatriz (float tempos[][DIM2], int atletas, int sessoes);
- para calcular e escrever a média dos tempos em cada sessão de
treinos:
void escreveMediaColunas(float tempos[][DIM2], int atletas, int sessoes);
- para calcular e escrever o melhor tempo realizado por cada um dos
atletas:
void escreveMinimoLinhas(float tempos[][DIM2], int atletas, int sessoes);
Ver sugestão de resolução incompleta aqui: atletasInc.c
2. (Leitura
Formatada) Números complexos são identificados pela sua parte
real e imaginária. Faça um programa que lê dois números complexos (um de cada
vez) no formato x+yi (ex: 5+3i).
3. (Estruturas)
Implemente uma função complexo soma(complexo a, complexo b)
que
recebe dois números complexos como argumento e devolva a soma dos dois.
Ver sugestão de resolução incompleta aqui: complexosInc.c
4. (Estruturas)
Considere que um depósito bancário é definido pelo valor depositado e pela
taxa anual nominal (TAN). Defina um novo tipo de dados por forma a
representar os depósitos. Implemente a função leDeposito
que
devolve um novo depósito onde o valor e a TAN são introduzidos pelo
utilizador. Implemente a função mostraDeposito
que mostra um
depósito ao utilizador.
5. (Estruturas)
Escreva um programa que lê um depósito do utilizador e que calcula o valor
bruto e liquido dos juros do depósito após um ano. Considere que o valor
bruto dos juros é o produto do valor depositado pela TAN, e que o valor
liquido dos juros é o valor bruto menos 21 % de imposto.
6. (Vectores de
Estruturas) Escreva um programa que lê um conjunto de N
depósitos do utilizador para um vector de depósitos. Considere que o valor N
é uma constante do seu programa. Mostre ao utilizador qual o valor médio da
TAN do conjunto de depósitos.
7. (Vectores de Estruturas) Escreva um programa que lê um conjunto de N depósitos do utilizador para um vector de depósitos. Mostre ao utilizador o saldo que resulta da soma dos valores depositados e respectivos juros liquidos após um ano.
Ver sugestão de resolução incompleta aqui: depositosInc.c
Nota final: Quando trabalhamos com vectores em C, é comum fazer erros que levam a Segmentation Faults . Para saber o que fazer, poderá ler esta wiki .