Exercícios propostos


Esta folha procura oferecer algumas sugestões para que possa experimentar os exemplos discutidos nas primeiras duas aulas teóricas. A 1ª aula laboratorial da semana 22-26 de Fevereiro já abordará os exercícios da 2ª folha de exercícios. 


1. Olá mundo!
Considere os exemplos dados na primeira aula teórica de IAED.  Procure criar e compilar o seu primeiro código em C, seguindo os passos em baixo. 
  1. Escolha um directório de trabalho e entre dentro desse directório.  Por exemplo, pode criar na sua área de trabalho um novo directório IAED_lab1, escrevendo no terminal (a seguir à prompt $) o comando
    $ mkdir ~/IAED_lab1 
    e entrar no directório criado com o comando:
    $ cd ~/IAED_lab1
  2. Utilizando um editor de texto à sua escolha (ex: sublimeemacsvikate, gedit, etc.), crie um ficheiro hello.c escrevendo por exemplo
    $ gedit hello.c &
    e copie o seguinte código, e guarde-o no directório criado:

#include <stdio.h>
int main()

   printf("Olá mundo!\n");
   return 0;
}
  1. Experimente compilar e correr, escrevendo no terminal (no mesmo ponto da árvore de directórios em que criou o ficheiro hello.c):
    $ gcc-Wall ola.c
    (A utilização da opção "-Wall" (Warning All) é sempre recomendada no âmbito desta cadeira.)
    Foi criado um ficheiro executável a.out com o programa que escreveu.
  2. Encontre o ficheiro criado listando o directório corrente com o comando: 
    $ ls -l
  3. Pode agora executar o programa criado:
    $ ./a.out
  4. O executável pode ser nomeado durante a compilação com a opção -o:
    $ gcc -Wall -o ola ola.c
    $ ./ola

     
2. Conversor de temperaturas
Considere o exemplo em baixo do conversor de temperaturas discutido na aula teórica 02. Copie o código dado para um editor de texto e compile & execute. Substitua as variáveis inferior, superior e passo por constantes definidas por directivas de pré-compilador #define. Corrija o problema da divisão inteira, substituindo variáveis inteiras (int's) por float's quando apropriado. 

#include <stdio.h>
/* Conversao Fahrenheit-Celsius */
int main ()
{
int fahr, celsius;
  int inferior, superior, passo;
  inferior = 0;
  superior = 300;
  passo = 20;
  fahr = inferior;
  while (fahr <= superior)
  {
    celsius = 5 * (fahr-32) / 9;
    printf("%d\t%d\n", fahr, celsius);
    fahr = fahr + passo;
  }
  return 0;
}