Você está na página 1de 43

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 Conceito de funes Ciclo de construo de um programa em C Apresentao de um ambiente de programao Executando um programa Estruturas bsicas de uma linguagem de programao
Identificadores,Variveis,Tipos de dados, Atribuio

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


main a funo principal do programa 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

Usando o Conceito de Funes para Estruturar Programas


funo soma { instruo 1 instruo 2 ... } funo mostraResultado { instruo 1 Cada vez que a funo instruo 2 chamada, as ... instrues da funo } so executadas funo principal { soma mostraResultado instruo 3 ... } 9

Estrutura de um Programa
Dentro de uma funo pode haver vrios tipos de instrues:
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
10

Estrutura de um Programa em C
funo 1 funo 2
. . .

funo n

int main () { .
. .

Comandos, declaraes, chamada de funes, etc

}
11

Exemplo de um Programa em C
#include <stdio.h> int main() { printf(Ola Mundo!); }

Mostra na tela a mensagem Ola Mundo!

12

Outro 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

13

Estrutura de uma Funo


Assinatura da funo

int multiplicacao (int p1, int p2) { int produto; produto = p1 * p2; return produto; } Uma funo deve conter:
Uma assinatura
Um corpo

Corpo da funo

14

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

15

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
16

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.

17

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 18

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

19

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
20

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
21

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)
22

Construo de Programas em C
Editor Codigo, Palavras reservadas Programa fonte Programa Fonte Modificado

Edio

Programa Fonte

Prprocessador

Pr-processamento

Programa Fonte

Compilador

Programa Objeto

Compilao

Programas Objeto

Programa Executvel

Link-Edio
23

Adio /Localizao de cdigos objetos das bibliotecas

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

24

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
25

Variveis
Uma declarao compilador: de varivel instrui o

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
26

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)

27

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 ;

28

Atribuio
Um comando de atribuio modifica o valor armazenado na varivel O operador de atribuio o sinal de =
int total; total = 55; Valor 65 sobrescreve o total = 65; valor armazenado antes Varivel total armazena valor 55

S se deve atribuir a uma varivel valores compatveis com o tipo declarado da varivel
29

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

30

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

31

Constantes
So teis para dar um significado compreensvel a determinados valores
Exemplo : PI mais compreensvel que o valor 3,1416

mais

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

32

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; }

33

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 ;
34

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
char unsigned char

Tamanho
1 byte 1 byte

Representatividade
-128 a 127 0 a 255

short int
unsigned short int long int (ou int) em ambientes de 32 bits

2 bytes
2 bytes 4 bytes

-32768 a 32767
0 a 65535 -2147483648 a 2147483647

unsigned long int

4 bytes

0 a 4294967295

35

Linguagem C - Tipos de Dados


Valores Reais e suas Representatividades
Tipo float double long double Tamanho
4 bytes 8 bytes 10 bytes

Representatividade
3.4 X10-38 a 3.4 X1038 1.7 X 10-308 a 1.7X10308 3.4 X 10-4932 a 3.4X104932

36

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

37

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

38

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

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
39

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

40

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


41

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

42

Introduo Programao

Introduo a Linguagem C
Construes Bsicas
Adriano Augusto de Moraes Sarmento

http://www.cin.ufpe.br/~if669ec