Você está na página 1de 20

Programao Estruturada

Linguagem C
Fundamentos da Linguagem

Prof. Luis Ncolas de Amorim Trigo


nicolas.trigo@ifsertao-pe.edu.br

Sumrio

Estrutura Bsica
Bibliotecas Bsicas
Tipos de Dados Bsicos
Variveis/Declarao de
Variveis
Palavras Reservadas
Constantes
Expresses
Operadores
Comando de Atribuio

Converso de Tipos
Comandos de Entrada e
Sada
Formataes Numricas

Estrutura Bsica
int main(){
A funo main() a parte
principal de qualquer
<corpo_do_prorgrama>;
programa de linguagem C.
}
Todo programa em C uma
funo.
Execuo inicial.
Com o uso do padro ANSI,
retorna um nmero inteiro e
que poder ter ou no
parmetros de entrada.
O corpo ou as declaraes
de uma funo devem estar
dentro das { }.
3

Bibliotecas bsicas
So um conjunto de
funes compiladas em
arquivos com a extenso
.lib.
Essas bibliotecas oferecem
diversas funes.
Para usar uma determinada
funo de uma das
bibliotecas, inclui no cdigofonte uma referncia para a
biblioteca.

Esta referncia feita


atravs da diretiva
#include.
Exemplo:
#include <biblioteca>
No momento da
compilao, a biblioteca
includa no lugar da diretiva.

Bibliotecas bsicas
stdio.h
Standard Input Output. Funes bsicas de
entrada e sada. Dispe as funes printf e scanf.
stdlib.h
Standard Library Functions. Funes
envolvendo alocao de memria. Necessrio para o
uso de system().
String.h Funes de manipulao de strings.
ctype.h Funes de teste e tratamento de caracteres.
conio.h Funes de manipulao de caracteres na
tela.
math.h Funes matemtica.
5

Tipos de Dados Bsicos


A linguagem C possui diversos tipos de
dados, onde os tipos mais comuns so:
int
float
char

int
Tipo inteiro
int
16, 32, 64 bits.
short int
mnimo de
16 e no pode ser
menor que int.
mnimo de
long int
32 bits.
long long int
mnimo de 64 bits.

char
Ocupa 1 byte e
armazena caracteres.
Com vetores do tipo
char possvel
armazenar strings
(cadeia de
caracteres).

float
Armazena nmeros
com ponto flutuante
de preciso simples,
ou seja, casas
decimais.

double
Armazena nmeros
com ponto flutuante
de dupla preciso.
Normalmente o dobro
do tamanho do float.

10

Tipos de Dados no Padro ANSI


Tipo

Tamanho
em bytes

Faixa Mnima

char

-127 a 127

unsigned char

0 a 255

signed char

-127 a 127

int

-2.147.483.648 a
2.147.483.647

unsigned int

0 a 4.294.967.295
11

Tipos de Dados no Padro ANSI


Tamanho de
Bytes

Faixa Mnima

-2.147.483.648 a 2.147.483.647

short int

-32.768 a 32.767

unsigned short int

0 a 65.535

signed short int

-32.768 a 32.767

long int

-2.147.483.648 a 2.147.483.647

signed long int

-2.147.483.648 a 2.147.483.647

unsigned long int

0 a 4.294.967.295

float

Seis dgitos de preciso

double

Dez dgitos de preciso

long double

10

Dez dgitos de preciso

Tipo

12

Tipos de Dados no Padro ANSI


So acompanhados por modificadores na
declarao de variveis.
Um modificador usado para alterar o
significado de um tipo bsico para adapt-lo s
necessidades.
Os modificadores short e long influenciam no
tamanho usado para representar o valor.
Os modificadores signed, que indica se o tipo
ser usado para representar os valores
negativos e positivos; e unsigned, somente
valores positivos.
13

Variveis
Uma varivel um
espao na memria do
computador que deve ser
nomeado para ser
referenciado.
Variveis devem ser
criadas para ser usadas.

Existem 2 tipos de
variveis:
Local
funciona
apenas dentro da
funo onde a mesma
foi declarada.
Global
declarada
fora da funo, logo
abaixo das diretivas
#include e pode ser
usada em qualquer
funo no programa.
14

Declarao de Variveis
Identifica o tipo de dado, o nome vinculado ao contedo.
A vrgula usado como separador das variveis.
Sintaxe
tipo nomevariavel;
tipo nomevar1, nomevar2, ..., nomevarN;

Exemplos
int numero;
float valor;
...
float nota1, nota2, nota3;

15

Declarao de Variveis
Inicializar uma varivel corresponde a atribuio
de valor a mesma.
C no garante inicializao automtica.
C case sensitive.
A varivel SOMA diferente de soma.
Nome de varivel inicia com letra e pode ser
continuada com letras, nmeros e/ou
sublinhado.
No pode usar palavras reservadas nos nomes
das variveis.
16

Palavras Reservadas
auto

break

case

char

continue

default

do

double

else

enum

extern

float

for

goto

if

int

long

register

return

short

sizeof

static

struct

switch

typedef

union

unsigned

void

while

17

Constantes
Corresponde a um local de armazenamento de dados que
no muda seu valor durante a execuo do programa.
Existem 2 formas para declarar constantes:
Usando #define
Usa const.
Usando const

Usa #define aps as


diretivas #include.
Sintaxe
#define nome valor

Sintaxe
const tipo var = valor;

Exemplo
const float pi = 3.1415;

Exemplo
#define pi 3.1415

18

Expresses
Quando a operao obtm um resultado
falso
0.
Quando a operao obtm um resultado
verdadeiro
1.

19

Operadores Relacionais
Operador

Ao

Exemplo

>

Maior do que

5 < 7

>=

Maior ou igual a

<

Menor do que

<=

Menor ou igual a

==

Igual a

!=

Diferente de

1 (verdadeiro)

20

10

Operadores Lgicos
Operador

Ao

&&

E (AND)

S verdadeiro se os operandos
forem verdadeiros.

||

Ou (OR)

S falso se os operandos forem


falsos.

No (NOT)

A negao de falso verdadeiro e


vice-versa.

Exemplo
(5 < 7) && (10 == 7)

1 && 0

(falso)

21

Operadores Aritmticos
Operador

Descrio

Adio

Subtrao

Multiplicao

Diviso

Resto

Operadores unrios tem maior prioridade,


seguido por (*, /, %) e, por ltimo, (+, ).

22

11

Comandos de Atribuio
Tem a funo de alocar na varivel do lado
esquerdo (a) o valor de uma varivel, constante
ou expresso direita (b).

a = b;
Operador
a += b
a = b

Equivalncia
a=a+b
a=ab

Descrio
Adio
Subtrao

a *= b
a /= b
a %= b

a=a*b
a=a/b
a=a%b

Multiplicao
Diviso
Resto

23

Converso de Tipos de Dados


Converter o valor de um determinado tipo
para outro.
Existem duas formas de converso:
Converso Implcita
Converso Explcita

24

12

Converso Implcita
Ocorre atravs do comando de atribuio.
int
float
acrescenta automaticamente
ponto flutuante.
float
int
ocorre um truncamento da parte
fracionria.
int
char
no apresenta problemas.
char
int
nem sempre ocorre corretamente.

25

Converso Explcita - cast


O operador cast altera o valor explicitamente.
Sintaxe
(novo_tipo) (variavel_a_converter)

Exemplo
...
float b = 220.123585;
(int) (b);
...

26

13

Comando de Sada
O Comando de Sada tem a finalidade de proporcionar um
determinado dado, um resultado do computador para o ser
humano ou elemento que solicita tal dado. Este comando
printf().
Sintaxe
printf(mensagem);
printf(mensagem,argumentos);
A mensagem impressa no
console do DOS (figura acima).
Qualquer texto fixo deve ser
colocado entre aspas.

27

Operadores de Controle
Tem a funo de formatar a apresentao do que impresso.
Lista de operadores abaixo:
Operador

Descrio

\n

Quebra de linha

\f

Salto de pgina

\t

Tabulao horizontal

\b

Retrocesso do cursor em um caractere

\r

Retrocesso do cursor para o incio da linha

\a

Emite um sinal sonoro

Aspa dupla

Aspa simples

\\

Barra invertida

\0

Caractere nulo (usado como terminador de strings)

28

14

Operador sizeof
Retorna o nmero de bytes ocupados pelo operando.
Pode ser usado para variveis ou tipos genricos de dados.
Exemplos:
sizeof(float);

// retorna 4, pois o nmero de


// bytes equivalente ao tipo de
// dado float.

char str[] = valor;


sizeof(str);
// retorna 6, 5 caracteres mais
// o caractere nulo, que indica
// o final da seqncia de caracteres.
29

Operadores de Converso
O printf() tambm possibilita a
apresentao de valores e resultados,
alm das mensagens escritas.

Op.

Descrio

%d

Nmero inteiro (int).

%i

Nmero inteiro (int).

Para isso necessrio o uso de


operador de converso.

%u

Nmero decimal natural


(unsigned int)

Este operador permite a concatenao


dos valores dos argumentos com as
mensagens.

%f

Nmero real (float)

%lf

Nmero real (double)

%c

Caractere (char)

Exemplo

#include <stdio.h>
int main(){
int num = 1;
printf(Total: %d,num);
getch();
return 0;
}

%s

Seqncia de Caracteres

%p

Ponteiro

%x

Nmero inteiro representado


na base hexadecimal

%%

Exibe na tela o smbolo %


30

15

Operador de Endereo
Smbolo &
Indica a referncia ou o endereo da varivel.
atravs do endereo que o valor da varivel
ser atualizado aps a leitura do dado.

31

Comando de Entrada
O comando de entrada promove a leitura de dados por
parte do computador, via teclado, fornecido por um ser
humano ou elemento que possa proporcionar tal dado.
Este comando scanf().
Sintaxe
scanf(operador de converso, &varivel);

Cada varivel a ser lida deve ser precedida pelo


caractere &, que indica o seu endereo.
No caso da seqncia de caracteres (%s), o operador
de endereo & no ser usado.
32

16

Comandos de Entrada e Sada


Os comandos printf() e scanf(), na
verdade, so funes definidas na
biblioteca stdio.
As funes acima trabalham com
sequencia de caracteres, que tem a
capacidade de converter os caracteres em
outros tipos de dados e vice-versa.
Esta ao ocorre por causa dos
Operadores de Converso.
33

Formataes Numricas
Formatao

Descrio

%<nmero>d

Escreve um inteiro na tela, preenchendo com espaos


esquerda para que ocupe <nmero> casas na tela.
Ex.: printf(%4d, 10); //exibir <espao><espao>10

%0<nmero>d

Escreve um inteiro na tela, preenchendo com zeros


esquerda para que ocupe <nmero> casas na tela.
Ex.: printf(%04d, 10); //exibir 0010

%6d

Formata um inteiro com pelo menos seis caracteres.

%.2f

Um nmero do tipo float com duas casas decimais.

%.f

Um nmero do tipo float sem nenhuma casa decimal.

%6f

Ponto flutuante com pelo menos seis caracteres

%6.2f

Ponto flutuante com pelo menos seis caracteres e dois aps a


casa decimal.
34

17

Usando system(pause) ou getch()


Quando executamos os algoritmos no d tempo ver o
resultado na tela antes de fechar.
Para incluir uma parada em pontos estratgicos da execuo
de um algoritmo, podemos usar o comandos:
system(pause)
Na verdade a funo system() possibilita a execuo de
comandos do MS-DOS, onde s pode ser usado em
ambiente Windows.
Pode usar system(cls) para limpar a tela.
Para solucionar o problema de Portabilidade (diferentes
S.O.s) existe outro comando a ser usado:
getch()
35

Comentrios
A finalidade de um comentrio de proporcionar ao
programador um forma de deixar informaes junto ao
cdigo-fonte sem interferir no processo de compilao.
O compilador ir desprezar todo comentrio que estiver
junto ao cdigo-fonte.
Para comentar apenas uma linha, usa o //

Exemplo: //printf(Total: %d,num);


Para comentar vrias linhas de forma seqencial, usa o

/*..*/
Exemplo: /* scanf(%d,&num);
printf(Total: %d,num); */
36

18

Bons vcios de programao


Nomes dos programas com
significado e salvo em
pastas referente ao
assunto.
Nomes das variveis e das
constantes que identifiquem
as suas funes.
Sempre que abrir chaves
{} ou parnteses (),
procure fech-los
imediatamente e, em
seguida, insira os dados
entre eles.

Sempre inicialize as
variveis que sero
utilizadas no cdigo.
Sempre utilize a identao,
este procedimento alm de
organizar o cdigo-fonte,
tambm facilitar a leitura
do mesmo, identificando
dependncias e possveis
erros.
Comente o cdigo-fonte,
isso facilita a identificao
da rotina.
Faa backup de todo
cdigo-fonte.
37

Exerccio 1 de 3
1.
2.
3.
4.

5.

Faa um algoritmo que receba um nmero inteiro e mostre


o seu antecessor e o seu sucessor.
Monte um algoritmo que leia dois nmeros reais (float) e
imprima a mdia aritmtica com a mensagem: Mdia:
antes do resultado e com uma casa decimal.
Elabore um algoritmo que leia o valor de um produto e
imprimir o novo valor, tendo em vista o desconto tambm
informado.
Escrever um algoritmo que leia o seu salrio fixo e o total
de vendas efetuadas por ele no ms (em dinheiro).
Sabendo que este vendedor ganha 15% de comisso sobre
suas vendas efetuadas, informar o salrio no final do ms.
Criar um algoritmo que calcule e imprima a rea de um
tringulo, sendo que os dados de entrada fornecidos pelo
usurio:
triangulo
(base * altura) / 2
38

19

Exerccio 2 de 3
6.

Faa um algoritmo que leia um valor em Celsius (C) e


converta para Fahrenheit (F) e Kelvin (K).
F 32 =
C
= K 273
180
100
100

7.

O custo ao consumidor de um carro novo a soma do


custo de fbrica com a percentagem do distribuidor e dos
impostos (aplicados, primeiro os impostos sobre o custo de
fbrica, e depois a percentagem do distribuidor sobre o
resultado). Supondo que a percentagem do distribuidor seja
de 28% e os impostos 45%. Elabore um algoritmo que leia
o custo de fbrica de um carro, calcule e mostre o valor do
carro na concessionria.
39

Exerccio 3 de 3
8.

Escrever um algoritmo para determinar o consumo mdio


de um automvel sendo fornecida a distncia total
percorrida pelo automvel e o total de combustvel gasto.
9. Elaborar um algoritmo que efetue a apresentao do valor
da converso em real (R$) de um valor lido em dlar (US$).
O algoritmo dever solicitar o valor da cotao do dlar e
tambm a quantidade de dlares disponveis com o
usurio.
10. Faca um algoritmo que receba um valor que foi depositado
e exiba o valor com rendimento apos um ms. Considere
fixo o juro da poupana em 0,70% a.m.
11. A Loja Desconto est vendendo seus produtos em 5
(cinco) prestaes sem juros. Faa um algoritmo que
receba um valor de uma compra e mostre o valor das
prestaes
40

20

Você também pode gostar