Laboratório 2 - Semana de 13 Mar.

Antes de começar, certifique-se que consegue criar um ficheiro hello.c com o seguinte código:

#include <stdio.h>

int main() {     printf("Olá mundo!\n");   return 0; }

Para compilar e correr, basta fazer (no terminal):
    gcc -Wall -ansi -pedantic -o hello hello.c
   ./hello

Se não tem dúvidas sobre o exemplo em cima, passe então para os seguintes exercícios:

1. (Maior de Três) Escreva um programa que determine o maior de três números inteiros dados pelo utilizador usando a função
   int maior (int a, int b, int c);

2. (Maior e Menor) Escreva um programa que determine o maior e o menor número de N números reais dados pelo utilizador. Considere que N é um valor pedido ao utilizador no inicío da execução. Sugestão: tome como ponto de partida os exemplos da aula teórica.

3. (Produto ou Soma) Escreva um programa que calcule o produto dos números inteiros pares e a soma dos números inteiros ímpares entre N1 e N2 (dados pelo utilizador). 

4. (Média) Escreva um programa que calcule o média de N números reais dados pelo utilizador usando a função
   float media (int N);
Nota: a leitura dos valores pode ser feita dentro da função media().

5. (Keep fit!) O índice de massa corporal (IMC) relaciona a altura com o peso da pessoa através da fórmula IMC=peso/altura 2. A tabela de classificação é a seguinte: 

 Valor IMC      Categoria
      IMC < 19   Magro
19 <= IMC <= 25  Normal
25 <  IMC <= 30  Excesso de peso
30 <  IMC <= 40  Obeso
49 <  IMC        Obesidade Mórbida

Escreva um programa que calcule os seguintes indicadores: IMC, categoria, peso mínimo (PMI=19×altura 2) e peso máximo (PMA=25×altura 2) que garantem que a pessoal pertence à categoria normal. Utilize e implemente as funções
  float imc (float peso, float altura);
  void escreveCategoria (float imc);
  float pesoMinimo (float altura);
  float pesoMaximo (float altura);

6. (Conversão) Escreva um programa que pede ao utilizador um valor N que corresponde a um certo período de tempo em  segundos. O programa deverá apresentar no output esse período de tempo no formato HH:MM:SS. 

7. (Digitos) Escreva um programa que pede ao utilizador um valor positivo N. O seu programa deverá voltar a pedir um valor para N caso o utilizador introduza um valor inválido. No output, deverá mostrar o número de dígitos que compõem N, assim como a soma dos dígitos de N. Por exemplo, o número 12345 tem 5 dígitos e a soma desses dígitos é 15. 

8. (Quadrado de Números) Escreva um programa que desenhe um quadrado de números como o exemplo que se segue utilizando a função
   void quadrado (int N);
O valor de N, dado pelo utilizador, deverá ser obrigatoriamente maior ou igual 2. O quadrado apresentado é o exemplo para N = 5.

1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

9. (Pirâmide de Números) Escreva um programa que desenhe uma pirâmide de números utilizando a função
   void piramide (int N);
O valor de N, dado pelo utilizador, deverá ser obrigatoriamente superior ou igual 2. A pirâmide apresentada é o exemplo para N = 5.

        1
      1 2 1
    1 2 3 2 1
  1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1

Sugestão. Utilize as seguintes funções:

void escreveCaracter (char c, int n); (escreve o caracter passado no primeiro parâmetro tantas vezes quantas forem passadas no segundo parâmetro); 
void escreveNumerosAsc (int a, int b); (escreve os números inteiros entre o primeiro parâmetro e o segundo em ordem crescente); 
void escreveNumerosDesc (int a, int b); (escreve os números inteiros entre o primeiro parâmetro e o segundo em ordem decrescente).