Conceitos Básicos de C
Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley, 1994 C: how to program - H. M. Deitel e P. J. Deitel, 2 a edição, Prentice-Hall International, 1994 Linguagem C - Luís Manuel Dias Damas, FCA, 1999 C programming Language - Brian W. Kernighan e Denis M. Ritchie, 2 a edição, Prentice-Hall, 1988 Algorithms in C, Robert Sedgewick, Addison-Wesley, 1998
Informação Histórica 1972 Primeira versão da linguagem C criada nos laboratórios Bell (da AT&T) por Dennis Ritchie, e implementada num computador DEC PDP-11, baseada nas linguagens B e BCPL 1978 C clássico descrito no livro The C Programming Language, por Brian Kernighan e Dennis Ritchie, dos laboratórios Bell 1983 Primeira versão da linguagem C++ (pelo menos com esse nome), uma extensão ao C (sobretudo com facilidades de programação orientada por objectos) criada por Bjarne Stroustrup nos laboratórios Bell (da AT&T) 1988 C standard (ANSI C) descrito na segunda edição do livro de Kernighan e Ritchie e aprovado pelo comité ANSI (ISO 1990) 1995 A linguagem de programação Java é criada na Sun Microsystems, baseada em C e C++ e incorporando características doutras linguagens orientadas por objectos 1997 C++ standard descrito na 3 a edição do livro The C++ Programming Language de Bjarne Stroustup (ISO 1998) 2001 Criada a linguagem C# na Microsoft, baseada em Java e C++
Linguagem C características Linguagem estruturada Reduzido número de elementos na linguagem Utilização de funções externas uso de bibliotecas de funções Operadores de programação de baixo nível Construções de alto nível Código executável eficiente
Linguagem C vantagens Portabilidade dos programas Bibliotecas de funções reutilização de software Compiladores em praticamente todos os sistemas de computação Quase todos os sistemas operativos são escritos em C ou C++
Um programa em C
Processamento de um programa em C
Linguagem C generalidades todo o programa em C contém uma única função main() o programa começa a executar na função main() as instruções em C terminam com ; (ponto e vírgula) as chavetas {} agrupam instruções os comentários são delimitados por /* */ e podem ocorrer em qualquer parte do programa
O pré-processador o pré-processador actua apenas sobre o código fonte as instruções para o pré-processador começam com # #include... insere o ficheiro indicado no texto do programa #define... define um nome que substitui um conjunto de instruções (macro) ou uma constante
Tipos básicos da linguagem C tipo tamanho limite limite (byte) inferior superior char 1-128 127 unsigned char 1 0 255 short int 2-32768 32767 unsigned short int 2 0 65535 int 4-2 31 +2 31-1 long int 4-2 31 +2 31-1 float 4-3.2x10 ±38 +3.2x10 ±38 double 8-1.7x10 ±308 +1.7x10 ±308
Variáveis em C Declaração: <tipo da variável> <lista com os nomes das variáveis>; A declaração é obrigatória e feita: variáveis locais : entre o cabeçalho das funções e a primeira instrução da função variáveis globais : antes de ser usada Exemplos: float numero1, media, raiz; int contador;
Operadores da linguagem C tipo do nome da símbolo símbolo em operador operação em C pseudo-código soma + + subtracção - - multiplicação * * divisão / / aritméticos módulo % % incremento ++ decremento atribiução = = conjunção && e lógicos disjunção ou negação! não igual == == diferente!= maior que > > comparação menor que < < maior ou igual >= >= menor ou igual <= <=
Precedências Operadores associatividade () [] -> esquerda para direita! - ++ * & (cast) sizeof direita para esquerda * / % esquerda para direita + - esquerda para direita << >> esquerda para direita < <= > >= esquerda para direita ==!= esquerda para direita & esquerda para direita ˆ esquerda para direita esquerda para direita && esquerda para direita esquerda para direita?: direita para esquerda = += -= *= /= %= &= = += -= *= /= %= &= direita para esquerda, esquerda para direita
Operadores e expressões em C exemplos tipo expressão em C resultado 7 + 2 9 7 / 4 1 aritméticas 7 % 4 3 7.0 / 4 1.75 var++ incrementa var var decrementa var comparação if (numero1 == numero2)... if (numero1!= numero2)... lógicos if (!(x ==1) && (y = numero2))... if ((no1!= no2) (x > 2)...
Instrução printf formatos disponíveis símbolo do C Descrição %c mostra um carácter %s mostra uma cadeia de carácteres (string) %d, %i mostra um inteiro com sinal %u mostra um inteiro sem sinal %f mostra um float %e, %E mostra um float usando um expoente %g, %G mostra como %f caso o expoente < -4 ou %e caso contrário %x, %X mostra na forma de um hexadecimal %o mostra na forma de um octal O printf é uma instrução para escrever no ecrã
Instrução printf sequências de escape (Esc) código ASCII símbolo do C Descrição 10 \n cursor passa para o início da próxima linha 9 \t posiciona o cursor no próximo tab 8 \b posiciona o cursor uma posição para trás 13 \r posiciona o cursor no início da linha corrente 7 \a sinal sonoro 92 \\ imprime um \ 34 \ imprime 0 \0 imprime o carácter nulo