Introdução à Linguagem C

1.1 Introdução

As linguagens de programação evoluiram exponencialmente desde que os primeiros computadores electrónicos foram feitos para calcular dados de telemetria durante a 2.ª Guerra Mundial, onde os programadores trabalhavam apenas com as mais primitivas instruções, a linguagem máquina. Essas instruções consistiam em longas cadeias de uns e zeros.

De seguida apareceram os assembladores que mapeavam mnemónicas (mais facilmente utilizadas) para a linguagem máquina.

Com o passar do tempo, apareceram linguagens de mais alto nível como BASIC e COBOL. Estas linguagens permitiram que os programadores utilizassem algo parecido com palavras e frases usadas normalmente como "Let I = 100". Essas instruções eram então traduzidas para linguagem máquina por interpretadores e compiladores.

Durante alguns anos, o primeiro objectivo de programação foi escrever pequenas porções de código que eram executadas rapidamente. O programa precisava de ser pequeno, visto que a memória era cara e precisava de ser executado rapidamente, porque o poder de processamento também era dispendioso. à medida que os computadores se tornaram mais pequenos, mais baratos, mais rápidos e a memória mais barata, as prioridades mudaram. Hoje em dia, o tempo dispendido por um programador numa aplicação é muito mais caro do que o hardware utilizado. Código bem escrito e fácil de actualizar é a prioridade da maioria das aplicações de hoje.

A linguagem C foi criada e implantada pela primeira vez por Dennis Ritchie num Dec PDP-11, utilizando o sistema operativo Unix.

A linguagem C foi desenvolvida nos laboratórios Bell na década de 70, tendo surgido a partir da necessidade de escrever programas, que utilizassem as potencialidades da linguagem máquina, mas de uma forma mais simples e portátil que esta.

Usada inicialmente para a programação de sistemas, viria pela sua flexibilidade e poder, a tornar-se numa linguagem de uso geral nos mais diversos contextos, sendo actualmente muito utilizada pelos programadores profissionais.

A linguagem C pode ser considerada uma linguagem de médio nível, porque para além de possuir instruções de alto nível e ser tão estruturada como por exemplo o PASCAL, também possui instruções de baixo nível.

1.2 Características

As suas principais características são :

Existem algumas particularidades na linguagem C que a tornam especialmente interessante :

1.3 Estrutura de um Programa

Um programa em linguagem C é constituído por uma ou mais funções e variáveis.

Uma função contém instruções que especificam as operações de computação a serem executadas, enquanto as variáveis armazenam os valores.

A função permite encapsular (esconder certa complexidade) alguma computação, podendo depois ser utilizada sabendo-se apenas o que faz e sem preocupações quanto à forma como o faz.

As funções em C assemelham-se aos procedimentos e funções do Pascal. A execução de um programa começa tipicamente numa função de nome main, que deverá existir em qualquer parte do programa.

O aspecto geral de uma função é o seguinte :

tipo_retornado nome_função(declarações de parâmetros){
   declarações locais;
   instruções;
}

Assim, uma função é composta por um cabeçalho seguido do respectivo corpo.

O cabeçalho é constituído pelo nome da função a que se segue entre parêntesis, uma lista de declarações de parâmetros. Caso estes não existam, os parêntesis surgem vazios.

Quanto ao corpo da função, este é delimitado por chavetas

{ }
e contêm, declarações de variáveis, ou mesmo de outras funções, a serem utilizadas, seguidas de instruções.

Sempre que se pretenderem incluir comentários num programa, pode-se fazê-lo colocando esses comentários entre /* e */.

Uma função pode retornar um valor para a função que a chama, o que é conseguido com a instrução return, sendo o seu aspecto:

return expressão;

em que,

expressão
pode ser qualquer expressão . Por exemplo :

return 5;       /*Retorna a constante inteira 5 */
return val*val; /*Retorna o resultado do produto entre as variáveis 

As funções são chamadas (invocadas para execução) dando-se o nome da função, juntamente com os argumentos, entre parêntises:

nome_função(prim_arg, seg_arg, ...);

Os valores dos argumentos na chamada da função, são atribuidos aos parâmetros da função pela ordem em que se encontram.

Exemplo 1 : Programa que imprime no ecrâ : "O meu primeiro programa !"

#include <stdio.h>  /* Inclui dados sobre funções de entrada e saída 
                             standards (standard input output), como a printf */

main(){  /* Definição da função main */
   printf (O meu primeiro programa !);   /*Chama a função printf */
}
O resultado da execução do programa será a impressão no ecrâ do texto contido entre aspas na função printf. A instrução #include <stdio.h> tem por finalidade incluir no programa informação sobre funções de entrada e saída de dados, tal como a função printf que será explicada no Capítulo 4 .

Exemplo 2 : O programa seguinte chama uma função mul(), que multiplica dois números inteiros e retorna o resultado.

O valor retornado passa a ser o argumento da função printf() que o imprime.

Os dois parâmetros a e b da função mul(), recebem respectivamente os dois argumentos 5 e 4, com que a função é chamada.

#include <stdio.h>

main(){
   printf( A multiplicação de 5 com 4 é igual a %d,mul(5,4));
}

int mul(int a,int b){
   return (a*b);
}
A impressão no ecrâ será : A multiplicação de 5 com 4 é igual a 20, o que significa que %d vai ser substituido pelo valor retornado pela função mul().

Notar ainda que as variáveis a e b, definidas na função mul() só são reconhecidas no interior desta.

Uma variável é o nome que é dado a uma zona de memória, cujo tamanho varia conforme o tipo dessa variável. No exemplo anterior, a e b são variáveis capazes de armazenar inteiros. Este assunto será abordado detalhadamente na secção 2.3 .

A produção e execução de programas, depende do sistema operativo em que se esteja a trabalhar, bem como do compilador utilizado.

A função main(), como função que é, também pode retornar um valor. Neste caso, o valor será retornado ao ambiente exterior, responsável pela execução do programa.

Habitualmente o valor 0 significa um final sem erro, e um valor diferente de 0 um final com erro. No entanto, e para simplificação não será utilizada a instrução return 0 nas várias funções main() aqui apresentadas.

1.4 Instruções

Uma expressão seguida de ; (ponto e virgula) é uma instrução.

Expressões são formadas por constantes, variáveis e operadores combinados de uma forma válida.

As instruções dividem-se em simples e compostas.

Simples quando se trata de apenas uma instrução, e compostas quando se trata de um conjunto (bloco) de instruções.

Estes conceitos, de instrução simples e composta, farão mais sentido quando, no capítulo 3, forem discutidas as instruções de controle de sequência.

Instrução simples : expressão;

Exemplo :

printf(O meu primeiro programa!);

Instruções Compostas : Instruções simples dentro de chavetas.
{
   instrução;
   instrução;
   instrução;
   ...;
}
Exemplo:
{
   X=10;
   Y=X+X;
}

O sinal '=' significa atribuição, isto é, para o exemplo acima apresentado, à variável X foi-lhe atribuido o valor 10.

UP
Up
FORWARD
Forward

BackTo front page Pages by Nuno Nunes.