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

Introduo Programao

Introduo a Linguagem C
Construes Bsicas

Programa em C
#include
#include <stdio.h>
int main
int
main ( ) {

Palavras
Reservadas

float celsius
celsius ;
E ainda
float farenheit
farenheit ;
celsius = 30;
expresses...
farenheit = 9.0/5 *celsius + 32;
printf (30 graus celsius = %f graus farenheit,farenheit);
return 0;
}

Identificadores criados
por terceiros (chamadas
de funes)

Identificadores
criados pelo
programador
2

Tpicos da Aula
Hoje aprenderemos a escrever um programa em C,
para isto veremos
Caractersticas da linguagem
Estrutura de um programa
Ciclo de construo de um programa em C
Estruturas bsicas de uma linguagem de programao
Identificadores,Variveis,Tipos de dados, Atribuio

Conceito de funes

Depois escreveremos um programa em um ambiente


de programao
Apresentao de um ambiente de programao

Executando um programa

Linguagem C - Caractersticas
Linguagem de programao de finalidade
geral criada por Dennis Ritchie em 1972
Criada para desenvolver o sistema operacional
Unix
Padronizada em 1989 pela ANSI
Tornou-se muito popular

Ela faz parte das linguagens denominadas


imperativas
Aes que o computador deve executar so
especificadas como comandos que alteram o
estado da memria
4

Linguagem C - Caractersticas
Combina o alto nvel com o baixo nvel,
permitindo a manipulao direta de bits, bytes
e endereos de memria
Possui fluxos de controle e estruturas de
dados presentes na maioria das linguagens
imperativas
Agrupamento de comandos
Tomadas de decises (if-else)
Laos para permitir a repetio de comandos

Linguagem C - Caractersticas
Possui apenas
32
palavras-chaves
(reservadas)
Permite economia
de expresso e gera
cdigos reduzidos
Possibilita alocao dinmica de memria
Permite estruturar o software em mdulos,
arquivos fontes, bibliotecas

Linguagem C - Crticas
D-se muita liberdade ao programador
Programas ininteligveis, acesso direto
memria
No h verificao de tipos e nem de limites
de arrays (veremos depois)
Simplifica o projeto do compilador C

Mensagens de erro muito vagas (limitao do


compilador )

Estrutura de um Programa
Em C, a construo fundamental a funo:
Um programa constitudo de uma ou mais funes
Uma destas funes deve ser a funo main
O programa inicia sua execuo na funo main

Mas, o que uma funo?


um conjunto de instrues para realizar uma ou
mais tarefas que so agrupadas em uma mesma
unidade e que pode ser referenciada por um nome
nico
8

Estrutura de um Programa
Dentro de uma funo pode haver:
Declaraes, expresses, chamadas de outras funes,
comandos, etc

Uma funo em C pode retornar algum valor, assim


como acontece com funes matemticas
Inteiro, real, caractere, etc

Porm, uma funo no precisa necessariamente


retornar um valor
Quando no retorna um valor, dizemos que a funo do
tipo void
9

Estrutura de um Programa
funo 1

funo 2
.
.
.

funo n
int main ()
{
.
.
.

Comandos,
declaraes, chamada
de funes, etc

return 0;
}
10

Exemplo de um Programa em C
#include <stdio.h>
int main()
{
Declarao de variavel
int resultado;
Expresso aritmtica
resultado = 6 + 7;
printf(%d,resultado);
return 0 ;
}
Chamada de funo
Comando

11

Estrutura de uma Funo


Assinatura da funo

int multiplicacao (int p1, int p2)


{
int produto;
produto = p1 * p2;
return produto;
}

Corpo da
funo

Uma funo deve conter:


Uma assinatura
Um corpo
12

Estrutura de uma Funo


Tipo retornado

Nome

Lista de parmetros

int multiplicacao (int p1, int p2)


{
int produto;
produto = p1 * p2;
return produto;
Parnteses
obrigatrios
}
Assinatura de uma funo deve informar:
Tipo de valor retornado (se for o caso)
Nome
Lista de parmetros formais (se houver)
Nome do parmetro e tipo do parmetro

13

Estrutura de uma Funo


int multiplicacao (int p1, int p2)
{
int produto;
produto = p1 * p2;
return produto;
}

Corpo da
funo
dentro das
chaves { }

Instrues devem ser separadas


por ponto e vrgula (;)

Corpo de uma funo contm:


Instrues
Declaraes, comandos, expresses, etc

O comando return, caso o tipo de retorno seja diferente de


void
14

Funes de Bibliotecas
A linguagem C oferece um conjunto de funes j
definidas que so organizadas em bibliotecas
Programador pode utilizar (chamar) estas funes no programa
Reduzem o tempo de desenvolvimento do programa

Algumas das funes oferecidas permitem:


realizar operaes de E/S
manipulao de caracteres (strings)
aplicaes matemticas, etc.

15

Funes de Bibliotecas
Informaes sobre as funes de bibliotecas so
encontradas em vrios arquivos
header files ou arquivos com extenso .h

Para usar estas bibliotecas, o programa deve indicar os


nomes dos arquivos que as contm
Estas bibliotecas so adicionadas ao programa usando
a diretiva de pr-processamento # include
Por exemplo: # include < stdio.h >
No possui ponto_e_vrgula ( ; )
stdio.h uma biblioteca que contm funes de
entrada/sada, tal como a funo printf que permite
mostrar alguma mensagem no monitor
16

Outro Exemplo de Programa em C


#include <stdio.h>

Inclui a biblioteca stdio

int multiplicacao (int p1, int p2)


{
int produto;
produto = p1 * p2;
return produto;
Chama a funo multiplicacao
}

int
{

main

( )
Argumentos da
funo

int resultado;
resultado = multiplicacao(6,7);
printf(6 vezes 7 eh %d,resultado);
return 0 ;
}

Chama funo da biblioteca stdio

17

Diretivas de Pr-Processamento
O pr-processador um programa que examina o
programa fonte em C e executa certas modificaes
com base em instrues chamadas de diretivas
Exemplos: include, define, etc

Uma diretiva deve vir precedida de #


Deve ser escrita em uma nica linha
Se passar de uma linha deve-se usar a barra invertida (\) ao
final da linha e contiunuar na seguinte

Diretivas no fazem parte da linguagem C


Servem para auxiliar o desenvolvimento do programa fonte
18

Exemplo da Diretiva include


#include <stdio.h>

Inclui a biblioteca stdio

int multiplicacao (int p1, int p2)


{
int produto;
produto = p1 * p2;
return produto;
}

int
{

main

( )

int resultado;
resultado = multiplicacao(6,7);
printf(6 vezes 7 eh %d,resultado);
return 0 ;
}

Chama funo da biblioteca stdio

19

Variveis
Programas manipulam dados (valores) e
esses dados so armazenados em variveis
Uma varivel uma posio na memria
referenciada por um identificador (nome)
Uma varivel deve ser declarada informando
o tipo de dado que ela armazenar e o nome
dela
tipo

nome
int total;
int count, temp, result;

Muitas variveis podem ser criadas em uma declarao


20

Variveis
Uma declarao
compilador:

de

varivel

instrui

a reservar um espao de memria suficiente para


armazenar o tipo de dado declarado
o nome ao qual iremos referenciar esta posio
de memria

S aps a declarao da varivel, que esta


pode ser referenciada (utilizada)
Quando uma varivel referenciada no
programa, o valor armazenado nela
utilizado
21

Variveis
Onde se declara variveis?
No corpo de uma funo (varivel local)
Recomenda-se que as declaraes de
variveis sejam as primeiras instrues da
funo
Na lista de parmetros de funes
Parmetros formais
Fora das funes (varivel global)

22

Declarao de Variveis
#include <stdio.h>
int resultado;

Declarao de
varivel global
Declarao de variveis nos
parmetros formais

int multiplicacao (int p1, int p2)


{
int produto;
Declarao de varivel local
produto = p1 * p2;
return produto;
}

int

main () {
resultado = multiplicacao(6,7);
printf(6 vezes 7 eh %d,resultado);
return 0 ;

23

Atribuio
Um comando de atribuio modifica o valor
armazenado na varivel
O operador de atribuio o sinal de =
int total;
total = 55;

Varivel total armazena


valor 55

Valor 65 sobrescreve o total = 65;


valor armazenado antes

S se deve atribuir a uma varivel


valores compatveis com o tipo
declarado da varivel
24

Inicializao de Variveis
Uma varivel pode ser inicializada com o comando
de atribuio na hora de sua declarao
Declara varivel total do tipo int
int total = 55;

Inicializa total com valor


55

Em C, variveis locais no so
inicializadas automaticamente

25

Constantes
Uma constante um identificador semelhante a
uma varivel, exceto pelo fato de s poder
armazenar o mesmo valor durante toda sua
existncia
Uma constante declarada usando a palavra
reservada const
Deve-se inicializar a constante no ato da sua
declarao
const float PI = 3.1416;
Esse comando gera um
PI = 3.141618;
erro de compilao

No se pode mudar o valor de uma


constante

26

Constantes
So teis para dar um significado
compreensvel a determinados valores

mais

Exemplo : PI mais compreensvel que o valor 3,1416

Facilitam a manuteno do programa


Caso uma alterao no programa seja necessria que
acarrete uma mudana no valor da constante e esta
constante seja referenciada em vrios lugares do programa,
s precisamos alterar o programa em um lugar

Explicitam formalmente que um determinado valor


no pode ser alterado
Evitam erros de outros programadores

27

Constantes
comum utilizar-se tambm a diretiva de prprocessamento define para definir constantes
#define PI 3.1416
int main() {
float raio = 5;
float area = PI*raio*raio;
float comp = 2*PI*raio;
return 0;
}

No pr-processamento, ocorre
a substituio

int main() {
float raio = 5;
float area = 3.1416*raio*raio;
float comp = 2*3.1416*raio;
return 0;
}

28

Linguagem C - Tipos de Dados


Cada dado possui associado a ele um tipo e pode
possuir um qualificador
C possui 5 tipos bsicos de dado
char: tipo caractere (tamanho de um byte)
int: tipo inteiro (nmeros sem parte decimal)
float: tipo ponto flutuante de preciso simples
double: tipo ponto flutuante de preciso dupla
void: no possui valor
Mais utilizado para indicar que uma funo no retorna
nenhum valor

Qualificadores: short, long, unsigned, signed


Precedem o tipo na declarao do tipo
Ex: unsigned int valor ;
29

Linguagem C - Tipos de Dados


O tipo de dado define o tamanho do dado e a forma
de armazenamento

Valores Inteiros e suas Representatividades


Tipo

Tamanho

Representatividade

char

1 byte

-128 a 127

unsigned char

1 byte

0 a 255

short int

2 bytes

-32768 a 32767

unsigned short int

2 bytes

0 a 65535

long int (ou int) em


ambientes de 32 bits

4 bytes

-2147483648 a
2147483647

unsigned long int

4 bytes

0 a 4294967295

30

Linguagem C - Tipos de Dados


Valores Reais e suas Representatividades
Tipo

Tamanho

Representatividade

float

4 bytes

3.4 X10-38 a 3.4 X1038

double

8 bytes

1.7 X 10-308 a 1.7X10308

long double

10 bytes

3.4 X 10-4932 a 3.4X104932

31

Tipos de Dados Numricos


Nmeros com e sem sinal
C permite que o programador defina se uma
varivel de tipo numrico deva ou no reservar o
bit de sinal (nmeros negativos)
Notao
signed tipo
unsigned tipo
Se nenhum modificador for indicado, o compilador
C reservar o bit de sinal

32

Tipo de Dados Caractere


Representado pelo tipo char
a,b, 1, \n etc
internamente representa um cdigo da tabela
ASCII

ASCII: na verdade aceita at 255 caracteres


(unsigned char)
char letra = A;

char letra = 65;

Instruo equivalente

33

Identificadores
Identificadores
so
palavras
que
programador utiliza em programas
Consiste de um ou mais caracteres.

o primeiro caractere deve ser letra ou "_


demais so uma combinao de letras, nmeros e
"_"
Identificadores no podem comear com um
dgito
Exemplo de identificadores vlidos: _a, a3_,bom_dia
Exemplo de identificadores invlidos: 2a, a-b, a_ b

C case-sensitive
Os identificadores casa e CASA so diferentes
34

Identificadores
Identificadores podem ser:
Nomes que o programador escolheu
Exemplo: nome de uma varivel, funo, constante, etc

Nomes que terceiros escolheram


Exemplo: nome de uma funo de uma biblioteca
utilizada

Palavras reservadas da linguagem


No podem ser usadas de outra forma
Exemplo: main, const, int, etc

35

Identificadores em C
#include
#include <stdio.h>
int main
int
main ( ) {

Palavras
Reservadas

float celsius
celsius ;
E ainda
float farenheit
farenheit ;
celsius = 30;
expresses...
farenheit = 9.0/5 *celsius + 32;
printf (30 graus celsius = %f graus farenheit,farenheit);
return 0;
}

Identificadores criados
por terceiros (chamadas
de funes)

Identificadores
criados pelo
programador
36

Executando de um Programa em C
Escrever o programa em um arquivo texto
(cdigo fonte)
Salvar o arquivo com a extenso .c

Compilar o programa fonte para gerar o


cdigo executvel (*.exe)
Um programa em C pode ser composto de vrios
cdigos fontes (vrios arquivos .c)
comum a gerao de um cdigo objeto (*.obj ou
*.o) para cada cdigo fonte e a posterior gerao
do cdigo executvel (linkedio)
37

Construo de Programas em C
Codigo,
Palavras
reservadas

Editor

Programa
Fonte

Prprocessador

Programa
Fonte

Compilador

Programas
Objeto

Programa
fonte
Programa
Fonte
Modificado

Programa
Objeto

Programa
Executvel

Edio

Pr-processamento

Compilao
Link-Edio

Adio /Localizao de cdigos objetos das bibliotecas

38

Ambiente de Programao
Para acelerar o desenvolvimento de programas,
comum utilizar ambientes de programao ou IDEs
(Integrated Development Environment)
Integra vrias ferramentas em um nico ambiente
Editores de texto
Compiladores
Bibliotecas
E muito mais ...
CodeBlocks, DevC++, Visual Studio, Eclipse etc

39

Resumindo ...
Caractersticas da linguagem
Estrutura de um programa
Ciclo de construo de um programa em C
Estruturas bsicas de uma linguagem de
programao
Identificadores,Variveis,Tipos de dados, Atribuio

Conceito de funes

40