Aula 4: Introdução à Programação

Traduzido por Ana Paula Costa

Qualquer programa não é mais do que um conjunto de instruções para o computador. O computador irá executar um comando a seguir ao outro, em princípio na ordem pela qual os comandos foram escritos (com excepção das instruções chamadas estruturas de controlo que serão estudadas mais tarde). O computador fará exactamente aquilo que lhe dissermos para fazer, nada mais, nada menos.

Mais ainda, é preciso dar (escrever) cada instrução com muito cuidado. O computador "compreende" apenas as coisas que lhe ensinamos a compreender.


Engenharia de Software


Criar programas consiste sempre dos seguintes passos:
 
  1. Pensar! Estudar e analisar o problema. Recolher informação. Encontrar uma solução possível. Não tocar ainda no teclado! Utilizar lápis e papel.
  2. Escrever um programa. Utilizar um qualquer editor para escrever o programa.
  3. Eliminar os erros do programa (fazer o "debuggin"). Existem vários tipos de erros:
    • erros de compilação. Erros de escrita do código (Por exemplo quando se escreve prinntf em vez de printf). São erros fáceis de eliminar; o compilador dá uma ajuda apresentado uma mensagem de erro como por exemplo "type-mismatch error in line 34"
    • erros de programação. Por exemplo esquecer de inicializar (atribuir um certo valor) as variáveis. Isto pode também causar os chamados "run-time errors", por exemplo "division by zero error".
    • erros de lógica (por exemplo, não se saber que a Regra de Pitágoras é a2 + b2 = c2). O programa irá correr sem gerar erros mas o resultado não será aquele que se esperava.
  4. Analisar o resultado. É isto que se pretende? Talvez o programa tenha escrito "A raíz quadrada de 9 é 4", claramente um resultado diferente do pretendido.
  5. Se necessário, repetir os passos 3,2 ou mesmo 1.
Demorar mais tempo no ponto 1 significa muitas vezes poupar muito tempo nos outros passos.
The First Computer Bug 

Grace Murray Hopper, working in a temporary World War I building at Harvard University on the Mark II computer, found the first computer bug beaten to death in the jaws of a relay. She glued it into the logbook of the computer and thereafter when the machine stops (frequently) they tell Howard Aiken that they are "debugging" the computer. The very first bug still exists in the National Museum of American History of the Smithsonian Institution. Edison had used the word bug and the concept of debugging previously but this was probably the first verification that the concept applied to computers.(copiado de http://www./firstcomputerbug.html)



 

A linguagem de programação C


A linguagem C foi inventada nos Laboratórios Bell (Bell Labs) em 1971-9173. Foi uma evolução da linguagem B, que por sua vez foi baseada em BCPL. Em 1983 a linguagem foi standarizada e tornou-se numa versão oficial. É provavelmente a linguagem de programação mais utilizada do mundo.
A evolução do C andou de mãos dadas com a evolução do sistema operativo UNIX que vamos usar nas nossas aulas (na forma de Linux, que é uma variante gráfica do UNIX). De facto, o próprio UNIX foi escrito em C.

Um programa é uma sequência de instruções, que informam o computador sobre uma tarefa específica que nós queremos que ele realize.
A maioria das linguagens de programação modernas têm um formato muito legível, próximo do Inglês, tornando fácil a sua leitura e escrita por parte dos humanos. Isto contrasta com as linguagens de programação mais antigas, que eram mais próximas da linguagem que o computador compreende. Ver por exemplo a linguagem assembler (aula 2).

Um programa muito simples em C:

#include <stdio.h>

main()
{
  printf("Hello World\n");
}
 

Vamos dar uma espreitadela a este programa.

Palavras Reservadas em ANSI C
auto 
break 
case 
char 
continue 
default 
do 
double 
else 
extern
float 
for 
goto 
if 
int 
long 
register 
return 
short 
sizeof()
static 
struct 
switch 
typedef 
union 
unsigned 
void 
while
De notar que existe apenas uma função definida na linguagem C, a função sizeof(). Todas as outras funções são descritas nas chamadas bibliotecas. Por exemplo, a função printf pode ser encontrada na biblioteca stdio. Assim sendo, para o compilador reconhecer a função printf é necessário colocar a directiva #include <stdio.h> no início do código.

Identificadores


Identificadores, como o próprio nome indica, são utilizados para identificar coisas. Podem ser nomes de  funções e nomes de variáveis. Iremos ver isso nas próximas aulas. Como na maioria das linguagens, os nomes dos identificadores em C têm algumas restrições:


Programação Estruturada

O mais importante em programação é escrever programas claros, lógicos e estruturados.
 
           main(l
      ,a,n,d)char**a;{
  for(d=atoi(a[1])/10*80-
 atoi(a[2])/5-596;n="@NKA\
CLCCGZAAQBEAADAFaISADJABBA^\
SNLGAQABDAXIMBAACTBATAHDBAN\
ZcEMMCCCCAAhEIJFAEAAABAfHJE\
TBdFLDAANEfDNBPHdBcBBBEA_AL\
 H E L L O,    W O R L D! "
   [l++-3];)for(;n-->64;)
      putchar(!d+++33^
           l&1);}
Olhe, neste exemplo da linguagem C aqui acima. Isto é um exemplo de mal programação. Percebe o que é que o programa faz? Mesmo os especialistas profesionalistas não conseguem determinar o que é que o programa faz. Se quiser saber o que é que o programa faz, clique aqui.
(programa copiado de http://www.ioccc.org/)

Teste Rápido:

Para testar os conhecimentos sobre o que aprendeu nesta aula, prima aqui para fazer um teste on-line. De notar que este Não é o formato que será utilizado no teste final!


Peter Stallinga. Universidade do Algarve, 14 outubro 2002