Publicado por: Elzo Brito | 09/10/2008

Visão geral da linguagem C

As origens de C

  • Implementada por Dennis Ritchie em 1970 e utilizava o sistema operacional UNIX;

  • As linguagens precursoras foram BCPL (Martin Richards) e B (Ken Thompsom);

  • Um grande número de implementações de C foram criadas. Para criar um padrão entre todas, foi criado o C padrão ANSI.

C é uma linguagem de médio nível

  • C é assim classificada pois combina elementos de linguagens de alto nível (Pascal, BASIC) com a funcionalidade e recursos de linguagens de baixo nível (Assembly).

  • Esta característica torna os programas escritos em C portaveis, ou seja, embora desenvolvidos para um tipo de computador podem ser adaptados para outro.

C é uma linguagem estruturada

  • Compartimentalização do código e dos dados : dividir e esconder do resto do programa informações necessárias para se realizar uma tarefa;

  • Esta característica é atingida pelo uso de funções (isoladas) e variáveis locais. Assim os eventos que ocorrem dentro de cada função não atingem o resto do programa.

  • Linguagens modernas apresentam o modelo estruturado.

Compiladores X Interpretadores

  • São programas sofisticados que operam sobre o código-fonte do programa;

  • Código fonte: O texto de um programa que o usuário pode ler (programa). É a entrada para o compilador;

  • Interpretador: Lê o código-fonte linha por linha, e executa a instrução específica contida na linha. Deve estar presente em toda execução;

  • Compilador: Lê o programa inteiro e converte-o em um código-objeto, que é a tradução do código-fonte em código de máquina, sendo então passível de execução direta pelo computador (apenas digitando seu nome). Entrada para o linkeditor;

  • Tempo de Compilação: Eventos que ocorrem enquanto o programa é compilado (erro de sintaxe – escrita);

  • Tempo de Execução: Eventos que ocorrem quando o programa é executado (erro de semântica – significado, lógica);

Forma de um programa em C

  • A linguagem C padrão é formada por 32 palavras-chave, cujo número pode variar de acordo com o compilador utilizado;

  • Todas as palavras chave são MINÚSCULAS;

  • Em C minúsculas e maiúsculas são diferentes, ou seja, elseELSE;

  • Todo programa C consiste em uma ou mais funções com funções definidas;

  • A única função obrigatória é a main(), que a primeira a ser chamada quando o programa é executado;

A lista de palavras chave é :

auto

double

int

switch

break

enum

long

typedef

case

extern

register

union

char

float

return

unsigned

const

for

short

void

continue

goto

signed

volatile

Do

if

sizeof

while

default

else

static

struct

A forma geral de um programa é:

declarações globais (variáveis, funções e bibliotecas);

tipo main (lista de parâmetros)

{

seqüência de comandos;

}

tipo função1 (lista de parâmetros)

{

seqüência de comandos;

}

.

.

.

tipo funçãon (lista de parâmetros)

{

seqüência de comandos;

}

A biblioteca e a Linkedição

  • Todo compilador C vem com uma biblioteca padrão de funções que realizam as tarefas necessárias e mais comuns;

  • Portanto uma biblioteca, nada mais é que um arquivo contendo as funções que um programa C pode usar (funções de E/S e outras rotinas úteis);

  • O padrão ANSI especifica o conjunto mínimo de funções que pode variar de compilador para compilador;

  • As bibliotecas básicas mais utilizadas para problemas simples são: <stdio.h>=e/s;<math.h>=recursos matemáticos, etc….

  • Para executar as mesmas em programas, temos a sintaxe:

#include <bibliot>

  • O linkeditor combina o código-objeto do programa escrito com o código objeto das funções da biblioteca C padrão e gera um programa executável.

Compilação de um programa

Criação do programa

Compilação do programa

Linkedição do programa com as funções

Obs.: A maioria dos compiladores já vem com editores que texto para feitura dos programas. Em outros onde não estes não estão inclusos deve-se usar editores padrão para criar o programa.

Expressões em C

Tipos básicos de Dados

Informa ao compilador a forma de tratamento de dados;

  • O tamanho e faixa de valores variam com o tipo de processador e compilador. São eles:

  1. inteiro (int)= ocupa geralmente 1 byte;

  2. caracter(char)= ocupa geralmente 2 bytes representados por valores definidos pelo conjunto de caracteres ASCII

  3. ponto flutuante(float)= depende da representação

  4. ponto flutuante de precisão dupla (double)= idem anterior;

  5. sem valor (void)= define funções sem retorno.

Modificadores de tipo básicos

  • São usados para alterar o significado de um tipo básico para adapta-lo mais precisamente às necessidades de diversas situações;

  • Devem preceder os tipos quando da declaração de variáveis;

  • São: signed (com sinal), unsigned(sem sinal), short(curto), long (longo)

Todos os tipos de dados definidos no padrão ANSI

Tipo

Tamanho aproximado em bits

Faixa

Char

8

-127 a 127

Unsigned char

8

0 a 255

Signed char

8

-127 a 127

Int

16

-32767 a 32767

Unsigned int

16

0 a 65535

Signed int

16

O mesmo que int

Short int

16

O mesmo que int

Unsigned short int

16

0 a 65535

Signed short int

16

O mesmo que short int

Long int

32

-2.147.483.647 a 2.147.483.647

Signed long int

32

O mesmo que long int

Unsigned long int

32

0 a 4.294.967.295

Float

32

Seis digitos de precisão

Double

64

Dez dígitos de precisão

Long double

80

Dez dígitos de precisão

Variáveis

  • Uma variável é uma posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa;

  • Todas as variáveis a serem utilizadas em um programa devem ser declaradas antes de serem usadas;

  • A forma geral (sintaxe) é:

tipo lista de variáveis;

onde tipo é qualquer tipo de dados válido em C padrão e lista de variáveis pode consistir em um ou mais nomes de identificadores separados por vírgulas;

Identificadores

  • São nomes dados a funções, variáveis e outros objetos definidos pelo usuário;

  • Pode ter de um a diversos caracteres (6 quando estiver envolvido em linkedição e 31 quando não estiver). O número é definido pelo compilador;

  • Deve começar com uma letra ou um sublinhado “_” e os caracteres subseqüentes devem ser letra, números ou sublinhados.

  • Não pode ser igual a uma palavra chave;

  • Letras maiúsculas e minúsculas são tratadas diferentes então = cont, Cont e CONT são identificadores distintos.

Exemplos:

Correto

Incorreto

Count

1count

teste23

hi!there

nome_alu

nome…aluno

Onde as variáveis são declaradas

  1. Variáveis Globais: Declaradas fora de todas as funções. É conhecida, utilizada, alocada, e mantém seu valor enquanto o programa estiver em execução.

  2. Variáveis Locais: Declaradas internamente as funções ou blocos “{ }”. São conhecidas e utilizadas somente no bloco de comandos onde foram criadas. Existem apenas enquanto o bloco em que foram declaradas está sendo executado.

  3. Parâmetros Formais: Se uma função usa argumentos, estas variáveis devem ser declaradas. Sua validade na função é idêntica a das variáveis locais.

Exemplos:

Global

#include <stdio.h>

int x;

void main (void)

{

}

Local

#include <stdio.h>

void main (void)

{

int x;

}

ou

void main (void)

{

int I;

I=10;

{

int j;

j=10

}

Parametro formal

#include <stdio.h>

void main (void)

{

}

void f1 (int i)

{

I=2+5;

}

Inicialização de variáveis

  • Valores podem ser dados as variáveis no momento da declaração;

  • Sintaxe: tipo nome_da_variável = constante;

  • Exemplos:

char ch = ’a’;

int first = 0;

float balance = 123.23;

Constantes

São valores fixos que o programa não pode alterar;
  • Pode ser dos cinco valores básicos de C;

  • Constantes caracter: envolvidas por aspas simples (ex.:‘Cascavel’),

  • Constantes inteiras: especificadas com números sem componentes fracionários (ex.:10,-100),

  • Constante ponto flutuante: requerem o ponto decimal seguido da parte fracionária no número (ex.: 11.23)

  • Constantes string: Conjunto de caracteres colocados entre aspas duplas. Exemplo: “Curitiba é a capital do Paraná” é uma string.

  • Constantes caracter de barra inversa: A grande maioria das constantes caracter podem ser impressas. Porem outros caracteres como “retorno do carro” ou “pular uma linha” são impossíveis inserir pelo teclado por uma representação gráfica. Assim, estas constantes definem caracteres não impressos pelos comandos de saída.

Alguns exemplos:

código

Significado

\n

Nova linha

\a

Alerta (beep)

\b

Retrocesso

\r

Retorno de carro

Operadores

  • Operador de atribuição: Representado pelo caracter “=” e estabelece a sintaxe : nome_da_variável = valor

exemplo: i =10;

Também pode definir atribuições múltiplas: i = j = x = 10;

  • Operadores Aritméticos: Realizar operações elementares da matemática entre dados numéricos. A tabela abaixo aponta os principais operadores e a ordem de prioridade de execução dos mesmos.

maior

Operador

Ação

++ –

Incremento e Decremento

-

Menos

* / %

Multiplicação, divisão e resto divisão inteira

+ -

Soma e subtração

menor

Obs.1: O operador de incremento soma um a seu operando e o de decremento subtrai um de seu operando. Assim: x = x+1 é o mesmo que x++ e que ++x. E x = x-1 é o mesmo que x– ou –x. Quando são usados em expressões a posição determina a ordem se execução, ou seja:

x =10; y = ++x; o y recebeu 11 e

x=10; y=x++; o y recebeu 10 e x recebeu 11

Obs2.: Existe uma variante do comando de atribuição chamado de C reduzido, que simplifica a codificação de um certo tipo de operações de atribuição. Por exemplo: x = x +10; pode ser reescrito como x += 10; Assim, podemos reduzir o código para quaisquer operadores aritméticos através da sintaxe: var operador=expressão

Operadores Relacionais e Lógicos

  • Operadores Relacionais servem para comparar números: >, >=, <,<=, = =, !=.

  • Operadores Lógicos resultam valores verdadeiro e falso para expressões e regem os resultados a partir destas combinações lógicas: &&, !!, ! (e, ou e não).

  • As expressões podem combinar os dois tipos de operadores e o resultado sempre será verdadeiro (em C qualquer valor diferente de 0) ou falso (em C é 0)

  • A tabela verdade para os operadores lógicos podem descritas como:

P

Q

P &&Q

P !!Q

!P

V

V

V

V

F

V

F

F

V

F

F

V

F

V

V

F

F

F

F

V

Precedência

maior

!

> >= < <=

= = !=

&&

!!

menor

Operadores Parênteses “( )”: Alteram a ordem de execução das expressões. Os primeiros cálculos a serem resolvidos pelo compilador são os escritos nos parênteses mais internos. Ex.: x = 1* (2+3)

Resumo das Precedências

Maior

( )

++ – –

- / %

+ -

< <= > >=

= = !=

!

&&

!!

= += – = *= /=

Menor

Download

Para fazer o download do DEV-CPP clique no link abaixo

http://www.bloodshed.net/devcpp.html


Deixe uma resposta

Sua resposta:

Categorias