Exercícios
1) (Vectores) Escreva em linguagem C um programa que pede ao utilizador uma sequência de valores inteiros. O programa começa por pedir ao utilizador para definir o tamanho da sequência a introduzir. Supondo que n é o tamanho da sequência, o programa deverá ler do standard input n inteiros. No final, mostra todos os inteiros positivos que compõem a sequência.
2) (Pontos 2D e Rectângulos) Considere que um ponto é definido pelas suas coordenadas e que um rectângulo é definido pelos pontos dos cantos superior esquerdo e inferior direito. Considere ainda as seguintes definições para pontos e rectângulos:
typedef struct {
int x;
int y;
} Ponto;
typedef struct {
Ponto se;
Ponto id;
} Rectangulo;
a) Implemente a função Ponto * lePontos(int n) que lê um conjunto de n pontos e retorna um vector contendo todos os pontos. Considere que n é um número pedido ao utilizador.
b) Implemente a função void escrevePontos(Ponto * pontos, int n) que mostra no standard output os pontos contidos num vector de tamanho n.
c) Implemente a função Rectangulo * defineRectangulo(Ponto * pontos, int n) que dado um vector de pontos de tamanho n devolve o rectângulo de menor área que contém todos os pontos do vector.
3) (Vectores de Estruturas) Considere que se pretende ler do standard input a informação de um conjunto de inscrições de alunos a disciplinas e respectivas notas. A estrutura que guarda a informação de uma inscrição está definida do seguinte modo:
typedef struct {
int num_aluno;
char* cod_disc;
int nota;
} Inscricao;
a) Escreva em linguagem C a função Inscricao* lerInscricoes(int n) que lê um sequência de n inscrições do standard input e devolve um novo vector de inscrições de alunos em disciplinas. Assuma que o código de uma disciplina é uma sequência de letras e digitos com tamanho máximo de 10 caracteres.
b) Escreva em linguagem C a função int* distribuicaoNotas(Inscricao* ins, int n, char* disc) que dado um vector de inscrições de tamanho n devolve um novo vector de inteiros com a distribuição das notas de uma disciplina. Ou seja, na posição indice i do vector deverá conter o número de alunos que teve nota i à disciplina.