Sei sulla pagina 1di 29

Linguagem C - Introduo

Jos Gustavo de Souza Paiva

Introduo
Linguagens de Programao
Softwares que permitem o desenvolvimento
de programas

Existem vrias linguagens de


programao cada uma com suas
programao,
caractersticas prprias
Exemplos: Pascal,
Pascal Clipper
Clipper, C
C, Visual Basic
Basic,
Delphi, etc.

Introduo
Linguagem C
Linguagem de programao genrica que
utilizada para a criao de programas
diversos como

Processadores de texto
Planilhas eletrnicas
Sistemas operacionais
Programas de comunicao
Etc.

Estrutura de um Programa em C
#include <stdio.h>
i main()
int
i () {
printf("Hello, world!\n");
return(0);

O programa acima exibe na tela a frase Hello world!


Todo programa em C deve possuir a funo main() que representa
o corpo principal do programa
A funo printf responsvel por imprimir (exibir) uma cadeia de
caracteres (string) na tela
Todos os comandos (com exceo do abre e fecha chaves devem
ser finalizados com ponto e vrgula ;
;
A linguagem C case sensitive ou seja, letras maisculas ou
minsculas fazem a diferena no cdigo

Variveis
Locais onde armazenamos valores na
memria
Toda varivel caracterizada por um
NOME, que a identifica em um programa,
por um TIPO, q
que determina o q
que p
pode
ep
ser armazenado naquela varivel
de uma varivel
Declarao
(tipo) nome da varivel;
int soma;

Tipos de Variveis
Variveis inteiras
Variveis utilizadas para armazenar valores inteiros, em formato
binrio
Ex: 1310 = 11012
int: Inteiro cujo comprimento depende do computador.
Ocupa 16 bits e pode armazenar valores de -32768 a 32767

unsigned int: Inteiro cujo comprimento depende do computador


e que armazena somente valores positivos
Ocupa 16 bits e pode armazenar valores de 0 a 65.535

long int: Inteiro que ocupa 32 bits e pode armazenar valores de 2 147 483 648 a 2.147.483.647,
2.147.483.648
2 147 483 647 independente do computador
unsigned long int: Inteiro que ocupa 32 bits e pode armazenar
valores de 0 a 4.294.967.295, independente do computador

Tipos de Variveis
Caracteres
Variveis utilizadas para armazenar letras e outros
smbolos existentes em textos
So, na verdade, variveis inteiras que armazenam
um nmero associado ao smbolo
A principal tabela de smbolos utilizada pelos
computadores
p
a tabela ASCII(American
(
Standard
Code for Information Interchang), mas existem outras
tabelas, como o UNICODE
char: Armazena um smbolo ((no caso, o inteiro
correspondente). Seu valor pode ir de -128 a 127
unsigned char: Armazena um smbolo (no caso, o
inteiro correspondente). Seu valor pode ir de 0 a 255

Tipos de Variveis
Ponto Flutuante
Armazenam valores reais
float: Utiliza 32 bits,
bits sendo 1 para o sinal
sinal, 8
para o expoente e 23 para a mantissa
Pode armazenar valores de (+/-)10
(+/ )10-38 a (+/-)10
(+/ )1038

double: Utiliza 64 bits, sendo 1 para o sinal,


11 p
para o expoente
p
e 52 p
para a mantissa
Pode armazenar valores de (+/-)10-308 a (+/-)10308

Regras para nomes de variveis


em C

Variveis devem comear com uma letra (maiscula ou minscula) ou


subscrito( )
subscrito(_)
Nunca podem comear com um nmero
Podem conter letras maisculas, minsculas, nmeros e subscrito
No possvel utilizar { ( + - * / \ ; . , ? como parte do nome de uma
varivel
i l
As seguintes palavras j tm um significado na linguagem C e por esse
motivo no podem ser utilizadas como nome de variveis:
auto

d bl
double

i
int

struct

b k
break

register
i

typedef
d f

extern

return

union

const

float

unsigned

continue

signed

void

default

goto

sizeof

do

if

char

static

enum

short

volatile

for

while

Constantes
Valores previamente determinados e
que, por algum motivo, devem
aparecer dentro de um programa
Definidas atravs do comando
#define
#define IDADE 34

E
Exemplos
l d
de constantes:
t t
85 0
85,
0.10,
10 c,

Meu primeiro programa

10

Escrevendo na tela
Escrevendo o contedo de uma varivel na tela
Podemos imprimir, alm de texto puro, o contedo de uma
varivel utilizando o comando printf
Para isso, utilizamos um smbolo no texto para representar que
aquele trecho deve ser substitudo por uma varivel e, no final,
passamos uma lista de variveis ou constantes, separadas por
vrgula
Ex: printf ((A
A variavel %s contem o valor %d
%d ,a
a , a);

O cdigo acima imprime A varivel a contem o valor 10


Nesse caso, %s deve ser substitudo por uma varivel
ou constante do tipo string enquanto %d deve ser
substitudo por uma varivel ou constante do tipo inteiro

11

Escrevendo Inteiros

%d Escreve um inteiro na tela sem formatao


Ex: printf ("%d",
("%d" 10) imprime 10

%< numero >d Escreve um inteiro na tela, preenchendo com espaos


esquerda para que ele ocupe pelo menos < numero > casas na tela
Ex: printf ("%4d", 10) imprime < espao >< espao >10

%0< numero >d Escreve


E
um inteiro
i t i na ttela,
l preenchendo
h d com zeros
esquerda para que ele ocupe pelo menos comprimento < numero >
Ex: printf ("%04d", 10) imprime 0010

%< numero1 >.0< numero2 >d Escreve um inteiro na tela, preenchendo


com espaos esquerda para que ele ocupe pelo menos < numero1 >
casas na tela e com zeros para que ele possua pelo menos comprimento <
numero2 >.
Ex: printf ("%6.04d", 10) imprime < espao >< espao >0010

A letra d pode ser substituda pelas letras u e l,


l ou as duas
duas, quando
desejamos escrever variveis do tipo unsigned ou long, respectivamente.
Ex: printf ("%d", 4000000000) escreve -294967296 na tela, enquanto que printf
("%u", 4000000000) escreve 4000000000

12

Escrevendo Outros Nmeros

%f Escreve um ponto flutuante na tela, sem formatao


Ex:
E printf
i tf ("%f",
("%f" 10.0)
10 0) imprime
i
i
10.000000
10 000000

%e Escreve um ponto flutuante na tela, em notao cientfica


Ex: printf ("%e", 10.02545) imprime 1.002545e+01

%< tamanho >


>.<
< decimais >f Escreve um ponto flutuante na tela
tela,
com tamanho < tamanho > e < decimais > casas decimais
O ponto, utilizado para separar a parte inteira da decimal, tambm
conta no tamanho
Ex:
E printf
i tf ("%6.2f",
("%6 2f" 10
10.0)
0) iimprime
i
< espao >10.00
10 00

A letra f pode ser substituda pelas letras lf, para escrever um


double ao invs de um float
Ex: p
printf (("%6.2lf",, 10.0)) imprime
p
< espao
p >10.00

13

Mscaras
Cdigo

Funo

%c

L um nico caractere

%s

L uma srie de caracteres

%d

L um nmero decimal

%
%u

L um d
decimal
i l sem sinal
i l

%l

L um inteiro longo

%f

L um nmero em p
ponto flutuante

%lf

L um double

14

Escrevendo Palavras
%c Escreve uma letra
Ex: printf ("%c", A) imprime a

Note que printf ("%c",


("%c" 65) tambm
imprime a letra A
%s
% Escreve uma string
Ex: printf ("%s", "Meu primeiro programa")
imprime Meu primeiro programa

15

Lendo Coisas Digitadas pelo


U i
Usurio

scanf
Realiza
R li a lleitura
it
d
de um ttexto
t a partir
ti d
do tteclado
l d
Parmetros
Uma string, indicando os tipos das variveis que sero lidas e o formato
dessa leitura
Uma
U
lilista
t d
de variveis
i i

O comando aguarda que o usurio digite um valor e atribui o valor


digitado varivel

#include <stdio.h>
main(){
int n;
printf("Digite um numero: ");
scanf("%d",&n);
printf("O valor digitado foi %d\n",n);

16

Lendo Coisas Digitadas pelo


U i
Usurio
O programa acima composto de quatro
passos:
1.
1
2.
3
3.
4.

Cria uma varivel n;


Escreve na tela Digite um numero;
L o valor do numero digitado;
Imprime o valor do numero digitado.

17

Lendo Coisas Digitadas pelo


U i
Usurio
Leitura de vrias variveis
#include <stdio.h>
void main(){
int m, n, o;
printf("Digite
printf(
Digite tres numeros: ");
);
scanf("%d %d %d",&m, &n, &o);
printf("O
printf(
O valores digitados foram\%d %d %d\n"
%d\n ,
m, n, o);

18

Manipulando Strings
A linguagem C permite que strings sejam escritas na
t l atravs
tela
t da
d ffuno
puts
t
Ela tambm permite que string sejam lidas atravs da
funo gets
Deve-se preferir a utilizao destas funes para a
manipulao de strings
OBSERVAO
Ao manipular uma informao em um dispositivo de
entrada/sada, a linguagem C trabalha com um buffer de
dispositivos, que mantm os dados manipulados mesmo depois
p
realizadas
das operaes
Isso pode causar problemas no momento de leitura da prxima
string
Para evitar esse problema, deve-se utilizar a funo
fflush(stdin) contida na biblioteca <stdio.h>
fflush(stdin),
<stdio h>

19

Manipulando Strings
#include <stdio.h>
#include <conio.h>
int main() {
char nome[30];
printf("Entre
i tf(" t
com o seu nome: ");
")
gets(nome);
printf("\n\n O nome digitado foi --> ");
puts(nome);
getch();
}

20

Manipulando Strings
#include <stdio.h>
#i l d <
#include
<conio.h>
i h>
int main() {
char nome1[30],nome2[30];
printf("Entre com o primeiro nome: ");
gets(nome1);
printf("\n Entre com o primeiro nome: ");
fflush(stdin);
gets(nome2);
printf("\n\n Os nomes digitados foram --> ");
puts(nome1);
printf("
p
( e ");
)
puts(nome2);
getch();
}

21

Variveis na Memria
Toda varivel tem um endereo de memria associado a
ela
l
Esse endereo o local onde essa varivel armazenada
no sistema
Normalmente,
N
l
t o endereo
d
d
das variveis
i i no
so

conhecidos quando o programa escrito


O operador & retorna o endereo de uma determinada
varivel
Ex: printf ("%d", &valor); imprime o endereo da varivel valor

necessrio usar o operador & no comando scanf, pois


esse operador indica que o valor digitado deve ser
colocado no endereo referente a uma varivel
Esquecer de colocar o & comercial um erro muito comum
que p
q
pode ocasionar erros de execuo

22

Atribuio
Atribuir um valor de uma expresso
p
a uma
varivel significa calcular o valor daquela
expresso e copiar aquele valor para uma
determinada varivel
Ex.: soma = a + b;

No exemplo, a varivel soma recebe o valor


calculado da expresso a + b
O operador de atribuio o sinal de igual (=)
A esquerda
q
do operador
p
de atribuio
deve existir
somente o nome de uma varivel
direita, deve haver uma expresso cujo valor ser
calculado e armazenado na varivel

23

Expresses
Uma expresso
p
um conjunto
j
de operaes
p
aritmticas, lgicas ou relacionais utilizados
para fazer clculos" sobre os valores das
variveis
Ex: a + b Calcula a soma de a e b

Uma constante uma expresso e como tal


tal,
pode ser atribuda a uma varivel
Ex: a = 10;

Uma varivel tambm uma expresso


Ex: a = b;

24

Expresses

Exemplos
< expresso
> + < expresso
>: C
Calcula
l l a soma d
de d
duas expresses

Ex: a = a + b;

< expresso > - < expresso >: Calcula a subtrao de duas


expresses
Ex: a = a - b;

< expresso > * < expresso >: Calcula o produto de duas expresses
Ex: a = a * b;

< expresso
p
> / < expresso
p
>: Calcula o q
quociente de duas
expresses
Ex: a = a / b;

< expresso > % < expresso >: Calcula o resto da diviso (inteira) de
duas expresses
Ex: a = a % b;

- < expresso >: Calcula o oposto da expresso


Ex: a = -b;

25

Precedncia de Operaes
Precedncia a ordem na q
qual os operadores
p
sero calculados quando o programa for
executado
Em C,
C os operadores so calculados na
seguinte ordem
* e /, na ordem em que aparecerem na expresso
%
+ e -, na ordem em que aparecerem na expresso

OBS.: As p
precedncias no so obedecidas
caso se use parnteses para agrupar uma
expresso

26

Incremento e Decremento

Possuem duas funes: servem como uma expresso e


incrementam ou decrementam o valor da varivel ao qual esto
associados em uma unidade
Ex: c++ incrementa o valor da varivel c em uma unidade

Dependendo
p
da p
posio
do operador
p
de incremento e decremento,
uma funo executada antes da outra
Operador direita da varivel: Primeiro a varivel incrementada,
depois a expresso retorna o valor da expresso

#include <stdio.h>
void main () {
int a = 10;
printf ("%d", ++a);

Imprime 11

27

Incremento e Decremento
Operador
p
esquerda
q
da varivel: Primeiro a varivel
retornada e depois incrementada

#include <stdio
<stdio.h>
h>
void main () {
int a = 10;
printf ("%d", a++);

}
Imprime 10

28

Atribuies Simplificadas
Uma expresso da forma a = a + b onde ocorre
uma atribuio a uma das variveis da
expresso pode ser simplificada como a += b
Comando

Exemplo

Corresponde a:

+=

a += b

a = a + b;

-=

a -= b

a = a - b;

*=

a *= b;

a = a * b;

/=

a /= b;

a = a / b;

%=

a %= b;

a = a % b;

29

Potrebbero piacerti anche