O documento descreve a linguagem de programação C, incluindo sua origem, tipos de dados e variáveis, operadores, e estrutura básica de um programa em C.
1. Linguagem C
• Origem de C está associada ao sistema Unix
• Histórico:
– 1970: Ken Thompson desenvolve B, baseada em BCPL, para o
primeiro Unix no DEC PDP-7
– 1972: Dennis Ritchie projeta a linguagem C, baseada na
linguagem B.
– 1988: o American Na+onal Standard Ins+tute (ANSI) define o
padrão ANSI C
• É considerada uma linguagem de nível médio
• É “case sensi`ve”, ou seja, interpreta como diferentes
letras maiúsculas de minúsculas
2
3. Variáveis
• Como armazenar os dados de entrada, fornecidos
pelo usuário?
• O que fazer com os resultados das operações?
• Variáveis são elementos que estão associados a
posições de memória, cujo obje`vo é o
armazenamento informações.
• ...por tempo suficiente ao seu processamento
4
4. Iden`ficadores
• Nome que fazem referência a elementos tais como as
variáveis
• Regras para a definição de iden`ficadores:
– Na formação do iden`ficador só podem ser u`lizados: dígitos,
letras (tanto maiúsculas quanto minúsculas) e o caractere de
sublinha ( _ )
– O iden`ficador deve começar sempre com uma letra ou
caractere de sublinha
• Apenas os 31 primeiros caracteres são considerados
5. Iden`ficadores
• Em C, há diferença entre maiúsculo e
minúsculo
– Exemplo:
– Nome ≠ nome ≠ NOME
• Não pode ser empregar qualquer uma das
palavras reservadas à linguagem C como
iden`ficadores
6. Palavras-chave de C (ANSI)
auto break case char const con`nue default
do double else enum extern float for goto if
int long register return short signed sizeof
sta`c struct switch typeof union unsigned void
vola`le while
7
7. Variáveis
• Exemplos de nomes de variáveis:
Corretos Incorretos
Contador 1contador
Teste23 oi!gente
Alto_Paraiso Alto..Paraíso
__sizeint _size-int
8
8. 9
Tipos de Dados
• O +po de uma variável define os valores que
ela pode assumir e as operações que podem
ser realizadas com ela
• Descreve a natureza da informação
• Ex:
– variáveis `po int recebem apenas valores inteiros
– variáveis `po float armazenam apenas valores
reais
9. 10
Tipos de dados básicos em C
• char: um byte que armazena o código de um
caractere do conjunto de caracteres local
• int: um inteiro cujo tamanho depende do
processador, `picamente 16 ou 32 bits
• float: um número real com precisão simples
• double: um número real com precisão dupla
10. 11
Modificadores de Tipos
• Os modificadores alteram algumas caracterís`cas dos
`pos básicos para adequá-los a necessidades
específicas
• Modificadores:
– signed: indica número com sinal (inteiros e caracteres)
– unsigned: número apenas posi`vo (inteiros e caracteres)
– long: aumenta abrangência (inteiros e reais)
– short: reduz a abrangência (inteiros)
11. Abrangência de dados: 16 bits
Tipo Tamanho Abrangência
(bytes)
char 1 -128 a 127
unsigned char 1 0 a 255
int 2 -32768 a 32767
unsigned int 2 0 a 65535
short int 2 -32768 a 32767
long int 4 -2.147.483.648 a 2.147.483.647
unsigned long int 4 0 a 4.294.967.295
float 4 ± 3,4·10 -38 a ± 3,4·10 38
double 8 ± 1,7·10 -308 a ± 1,7·10 308
long double 10 ± 3,4·10 -4932 a ± 3,4·10 4932
12
12. Abrangência de dados: 32 bits
Tipo Tamanho Abrangência
(bytes)
char 1 -128 a 127
unsigned char 1 0 a 255
int 4 -2.147.483.648 a 2.147.483.647
unsigned int 4 0 a 4.294.967.295
short int 2 -32768 a 32767
long int 4 -2.147.483.648 a 2.147.483.647
unsigned long int 4 0 a 4.294.967.295
float 4 ± 3,4·10 -38 a ± 3,4·10 38
double 8 ± 1,7·10 -308 a ± 1,7·10 308
long double 10 ± 3,4·10 -4932 a ± 3,4·10 4932
13
13. 14
Declaração de variáveis
• A declaração de uma variável segue o modelo:
TIPO_VARIÁVEL lista_de_variaveis;
• Ex:
int x, y, z;
float f;
unsigned int u;
long double df;
char c = ‘A’; /* variavel definida e iniciada */
char s[ ] = “vetor de caracteres”;
15. Operadores
• Correspondem a símbolos simples ou combinados
que representam operações de natureza: aritmé`ca,
relacional ou lógica.
• Podem ser classificados também quanto a
quan`dade de elementos sob os quais incidem, i.e.,
unários, binários ou ternários
a = b++;
a = b-c;
var = a>b ? c : d;
17. Op. Relacionais
• Estabelecem relações/comparações
Operação Operador
Igualdade ==
Diferença !=
Maior >
Maior ou igual >=
Menor <
Menor ou igual <=
18. Op. Lógicos
• Representam as operações básica dada na lógica
matemá`ca
Operação Operador
Negação !
Conjunção &&
Disjunção ||
19. Op. de Atribuição (de variável)
• Forma geral:
variavel = expressão ou constante
• Armazena o conteúdo dado a direita no elemento
dado à esquerda
• Múl`plas atribuições
– C permite a atribuição de mais de uma variável em um
mesmo comando:
x = y = z = 0;
20
20. Expressões
• Expressões são compostas por:
– Operandos: a, b, x, Meu_dado, 2, ...
– Operadores: +, -, %, ...
– Pontuação: ( )
– Funções: sin(), abs(), sqrt(), ...
• Ex:
X
14
x + y
(x + y)*z + w – v
( -b + sqrt(delta) ) / 2*a
21
21. Expressões
• Expressões retornam um valor:
x = 5 + 4 /* retorna 9 */
• esta expressão atribui 9 a x e retorna 9 como resultado
da expressão
((x = 5 + 4) == 9) /* retorna verdade = 1 */
• na expressão acima, além de atribuir 9 a x, o valor
retornado é u`lizado em uma comparação
22
22. Expressões
• a ordem em que uma expressão é avaliada depende
da prioridade dos operadores e da pontuação
• expressões podem aparecer em diversos pontos de
um programa
– comandos /* x = y; */
– parâmetros de funções /* sqrt(x + y); */
– condições de teste /* if (x == y) */
23
23. Conversão de Tipos
• Quando uma variável de um `po é atribuída a uma de
outro `po, o compilador automa`camente converte o
`po da variável a direita de “=” para o `po da variável
a esquerda de “=”
• Ex:
int i; char ch; float f;
ch = i; /* ch recebe 8 bits menos significa`vos de x */
i = f; /* i recebe parte inteira de f */
f = ch; /* f recebe valor 8 bits conver`do para real */
f = i; /* idem para inteiro i */
24
25. Programação em C
• Todo programa, escrito na linguagem C, deve
apresentar uma função principal chamada main, que
define todo o corpo do programa
• Exemplo:
int main() {
/* corpo do programa */
}
26. Comandos de Saída
• Empregados para que o sistema forneça, em um
disposi`vo de saída, as mensagens e resultados de
seu processamento.
• O disposi`vo padrão de saída é o monitor.
• A linguagem C oferece alguns comandos de saída,
mas o que apresenta propósito mais geral é o prinÜ.
27. Comando PRINTF()
• Sintaxe:
prinÜ(Mensagem, lista de variáveis);
• Funcionamento:
– O comando escreve a mensagem dada no disposi`vo
padrão de saída, realizando a subs`tuição das máscaras de
formatação encontradas pelas respec`vas variáveis dadas
na lista subseqüente a mensagem.
– O disposi`vo padrão é dado pela variável stdout
28. 29
Máscaras de formatação
• Símbolo de por cento seguido de uma letra:
• %c Caractere
• %d Inteiros com sinal
• %u Inteiros sem sinal
• %f Números reais
• %e Notação cienàfica
• %x Números em hexadecimal
• %s Cadeia de caracteres (strings)
29. 30
Exemplo
• Saída formatada prinÜ(). Ex:
– O trecho abaixo:
int i = 10;
float r = 3.1514;
char s[] = “Blablabla”; /* cadeia de caracteres */
prinÜ(“Inteiro: %d, Real: %f, String: %s”,i,r,s);
– Produz:
Inteiro: 10, Real: 3.151400, String: Blablabla
30. 31
Constantes do Tipo Char
• Barra inver`da seguido de um caractere:
• a bip
• b backspace
• n nova linha
• r return
• t tabulação horizontal
• ’ apóstrofe
• ” aspas
• barra inver`da
• %% percent
31. Comandos de entrada
• U`lizado para receber dados fornecidos pelo usuário
(dados de entrada) e armazená-los na memória principal
(em variáveis)
• Os dados são fornecidos ao sistema por meio de um
disposi`vo de entrada, cuja configuração dada como
padrão é o teclado.
• A linguagem C oferece vários comandos de entrada, cada
qual mais indicado para uma situação em par`cular.
• O principal comando de entrada é o scanf
32. Comando SCANF()
• Sintaxe:
scanf(formato, variável);
• Funcionamento:
– O comando coleta as informações dadas no disposi`vo
padrão de entrada, interpretando as informações segundo
a máscara de formatação e armazenando na(s)
respec`va(s) variável(is) dada(s) subseqüentemente ao
formato.
– O disposi`vo padrão é dado pela variável stdin
33. 34
Exemplo
• Entrada formatada scanf().
– Ex:
int i; float r; char str[10];
scanf(“%d”,i);
scanf(“%f”,r);
scanf(“%s”,str);
– Ou ainda:
int dia, mes, ano;
scanf(“%d/%d/%d”, dia, mes, ano);
35. Programa C
#include stdio.h
#include math.h
int main(){
int num1, num2, media;
printf(Digite 2 numeros: );
scanf(%d %d,num1, num2);
media=(num1+num2)/2;
printf(nMedia: %d, media);
getch();
return 0;
}
36. Exercícios
37
1) Ler o tamanho do lado de um quadrado e
imprimir sua área.
2) Ler um número inteiro e imprimir a soma do
sucessor de seu triplo com o antecessor de seu
dobro.
37. Exercícios
38
3) Elaborar um algoritmo que calcula e exibe as médias de
prova (MP), de 2 trabalhos (MT) e final (MF).
MP: (2P1 + 3P2 + 3P3)/8
MT = (T1+T2)/2
MFinal = (7MP + 3MT)/10
4) Faça um programa que determine o perímetro de um
polígono regular de N lados, circunscrito a uma
circunferência de raio R. Sabe-se que o perímetro é dado
por:
#include math.h Função seno:
#include stdio.h a = sin(b);
⎟
⎠
⎞
⎜
⎝
⎛
∗
=
N
sen
NR
per
π
2
38. Exercícios
39
5) Fazer um programa que leia 2 valores inteiros para
duas variáveis A e B, escreva os conteúdos das
variáveis na tela, e em seguida troque os
conteúdos das duas variáveis, exibindo novamente
os seus conteúdos na tela.
6) Faça um programa para ler um número
inteiro, positivo de três dígitos, e gerar outro
número formado pelos dígitos invertidos do
número lido.