Вы находитесь на странице: 1из 7

1.

Fundamentos da Linguagem C
Neste capitulo sero vistos os fundamentos da linguagem C. O conceito de linguagem de programao, linguagens de alto e baixo nvel, linguagens genricas e especificas. Ser visto um pouco do histrico da criao da linguagem e a descrio das caractersticas mais importantes da linguagem C. Finalmente, ser visto o aspecto geral de um cdigo fonte escrito em C. 1.1 Linguagens de Programao

Um programa de computador um conjunto instrues que representam um algoritmo para a resoluo de algum problema. Estas instrues so escritas atravs de um conjunto de cdigos (smbolos e palavras). Este conjunto de cdigos possui regras de estruturao lgica e sinttica prpria. Dizemos que este conjunto de smbolos e regras formam uma linguagem de programao. 1.1.1 Exemplos de cdigos.

Existem muitas linguagens de programao. Podemos escrever um algoritmo para resoluo de um problema por intermdio de qualquer linguagem. A seguir mostramos alguns exemplos de trechos de cdigos escritos em algumas linguagens de programao. Exemplo: trecho de um algoritmo escrito em Pseudo-linguagem que recebe um nmero num e escreve a tabuada de 1 a 10 para este valor: leia num para n de 1 at 10 passo 1 faa tab = num * n imprime tab fim faa Exemplo: trecho do mesmo programa escrito em linguagem C: scanf(&num); for(n = 1; n <= 10; n++){ tab = num * n; printf(\n %d, tab); };

Exemplo: trecho do mesmo programa escrito em linguagem Basic: 10 input num 20 for n = 1 to 10 step 1 30 let tab = num * n 40 print chr$ (tab) 50 next n Exemplo: trecho do mesmo programa escrito em linguagem Fortran: read (num); do 1 n = 1:10 tab = num * n write(tab) 10 continue Exemplo: trecho do mesmo programa escrito em linguagem Assembly para INTEL 8088: MOV CX,0 IN AX,PORTA MOV DX,AX LABEL: INC CX MOV AX,DX MUL CX OUT AX, PORTA CMP CX,10 JNE LABEL

1.1.2

Linguagens de baixo e alto nvel.

Linguagens de baixo nvel: So linguagens voltadas para a mquina So genericamente chamadas de linguagens Assembly. Vantagens: Programas so executados com maior velocidade de processamento. Os programas ocupam menos espao na memria. Desvantagens: Em geral um cdigo gerado para um tipo de processador no serve para outro. Linguagens de alto nvel: So linguagens voltadas para o ser humano. As linguagens de alto nvel podem se distinguir quanto a sua aplicao em genricas como C, Pascal e Basic ou especficas como Fortran (clculo matemtico), GPSS (simulao), LISP (inteligncia artificial) ou CLIPPER (banco de dados). Vantagens: podendo ser executados em varias plataformas com pouqussimas modificaes. Desvantagens: Em geral, as rotinas geradas (em linguagem de maquina) so mais genricas e portanto mais complexas e por isso so mais lentas e ocupam mais memria.

1.2

Linguagem C

A linguagem C tem como meta caractersticas de flexibilidade e portabilidade. O C foi usado para desenvolver o sistema operacional UNIX, e hoje esta sendo usada para desenvolver novas linguagens, entre elas a linguagem C++ e Java. 1.2.1 Caractersticas do C

Entre as principais caractersticas do C, podemos citar:


O C uma linguagem de alto nvel com uma sintaxe bastante estruturada e flexvel tornando

sua programao bastante simplificada.

Programas em C so compilados, gerando programas executveis. programao direta do microprocessador. Com isto, rotinas cuja dependncia do tempo crtica, podem ser facilmente implementadas usando instrues em Assembly. Por esta razo o C a linguagem preferida dos programadores de aplicativos.

O C compartilha recursos tanto de alto quanto de baixo nvel, pois permite acesso e

O C uma linguagem estruturalmente simples e de grande portabilidade. O compilador C

gera cdigos mais enxutos e velozes do que muitas outras linguagens.


Embora estruturalmente simples (poucas funes intrnsecas) o C no perde funcionalidade

pois permite a incluso de uma farta quantidade de rotinas do usurio. Os fabricantes de compiladores fornecem uma ampla variedade de rotinas pr-compiladas em bibliotecas. 1.2.2 Histrico

1970: Denis Ritchie desenha uma linguagem a partir do BCPL Chama a linguagem de B. 1978: Brian Kerningham junta-se a Ritchie para aprimorar a linguagem. A nova verso chamase C. Pelas suas caractersticas de portabilidade e estruturao j se torna popular entre os programadores. ~1990: A Borland International Co, fabricante de compiladores profissionais escolhe o C e o Pascal como linguagens de trabalho para o seu Ambiente Integrado de Desenvolvimento: surge o Turbo C. ~1992: O C se torna ponto de concordncia entre tericos do desenvolvimento da teoria de programao orientada a objetos : surge o C++. 1.3 Estrutura de um programa em C Um programa em C constitudo de:
um cabealho contendo as diretivas de compilador onde se definem o valor de constantes

simblicas, declarao de variveis, incluso de bibliotecas, declarao de rotinas, etc.

um bloco de instrues principal e outros blocos de rotinas.

documentao do programa: comentrios. Programa Exemplo: O arquivo e0101.cpp contm um programa para calcular a raiz quadrada de um nmero real positivo: 1.3.1 Conjunto de caracteres

Um programa fonte em C um texto no formatado escrito em um editor de textos usando um o conjunto padro de caracteres ASCII. A seguir esto os caracteres utilizados em C: Caracteres vlidos: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890 +-*/\=|&!?#%(){}[]_.,:<> Caracteres no vlidos: @$ Os caracteres acima so vlidos apenas em strings. Veja seo 2.1.4. 1.3.2 Comentrios

Em C, comentrios podem ser escritos em qualquer lugar do texto para facilitar a interpretao do algoritmo. Para que o comentrio seja identificado como tal, ele deve ter um /* antes e um */ depois. Observe que no exemplo e0101.cpp todo o cabealho esta dentro de um comentrio. Exemplo: /* esta e uma linha de comentrio em C */ Exemplo: // este e um comentrio valido apenas em C++

1.3.3

Diretivas de Compilao 1.3.4 Declarao de variveis

Em C, como na maioria das linguagens, as variveis devem ser declaradas no inicio do programa. Estas variveis podem ser de vrios tipos: int (inteiro), float (real de simples preciso) e outras que sero vistas no capitulo 2. No exemplo acima num, raiz, inf e sup so declaradas como variveis reais, enquanto i declarada como uma varivel inteira. 1.3.5 Entrada e sada de dados

Em C existem varias maneiras de fazer a leitura e escrita de informaes. Estas operaes so chamadas de operaes de entrada e saida. Veremos no capitulo 3 algumas funes de entrada e sadia de informaes via teclado e tela. Outras funes de leitura e escrita em arquivos, saida grfica, funes de manipulao de mouse, entrada e saida de informaes via portas serial e paralela sero vistas em captulos posteriores. No exemplo acima printf uma funo de escrita na tela, scanf uma funo de leitura de teclado.

1.3.6

Estruturas de controle

A linguagem C permite uma ampla variedade de estruturas de controle de fluxo de processamento. Estas estruturas sero vistas em detalhes nos captulos 4 e 5. Duas estruturas das estruturas bsicas (deciso e repetio) so muito semelhantes as estruturas usadas nas Pseudo-linguagem algortmicas: Estrutura de Deciso: Permite direcionar o fluxo lgico para dois blocos distintos de instrues conforme uma condio de controle. Pseudo-linguagem se condio ento bloco 1 seno bloco 2 fim se }; Estrutura de Repetio: Permite executar repetidamente um bloco de instrues ate que uma condio de controle seja satisfeita. Linguagem C if(condio){ bloco 1; }else{ bloco 2;

Pseudo-linguagem faa bloco at condio do{

Linguagem C

bloco; }while(condio);