Conceitos básicos da linguagem C - Unesp
Conceitos básicos da linguagem C - Unesp
Conceitos básicos da linguagem C - Unesp
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
• Histórico)<strong>da</strong>)<strong>linguagem</strong>)C.)<br />
• Tipos)primi8vos)de)<strong>da</strong>dos.)<br />
• Constantes)e)variáveis.)<br />
• Atribuição.)<br />
• Operadores)aritmé8cos.)<br />
• Funções)de)exibição)e)leitura.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
51)<br />
Breve)histórico)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
1966:)Mar8n)Richards)(MIT))propõe)a)Basic)Combined)Programming)<br />
Language)(BCPL))para)o)desenvolvimento)de)compiladores)<br />
simplificados)para)outras)linguagens)de)programação.)To<strong>da</strong>s)as)<br />
variáveis)eram)de)um)único)8po)(word),)cujo)tamanho)dependia)<strong>da</strong>)<br />
arquitetura)do)computador)onde)era)executa<strong>da</strong>.)<br />
O)primeiro)programa)“Hello,)world!”)foi)escrito)em)BCPL.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
52)
Breve)histórico)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
1969:)Ken)Thompson)(Bell)Labs))a<strong>da</strong>ptou)a)Linguagem)BCPL)para)u8lização)<br />
em)mini[computadores.)Criação)de)variáveis)do)8po)caractere)(letras )<br />
e)a)inclusão)de)bibliotecas)externas)de)funções.))B)<br />
1971:)Dennis)Richie)(Bell)Labs))acrescentou)8pagem)à)<strong>linguagem</strong>)B)(inteiro,)<br />
real,)caracter)etc),)e)alterou)seu)compilador)para)produzir)código)em)<br />
<strong>linguagem</strong>)de)máquina.))NB)(New$B).)<br />
1972:)Com)a)inclusão)de)um)programa)pré[processador)ao)compilador)e)<br />
pequenas)alterações)na)sintaxe,)NB)passou)a)se)chamar)C,)sendo)<br />
u8liza<strong>da</strong>)para)reescrever)cerca)de)90%)do)núcleo)do)sistema)<br />
operacional)UNIX,)sendo)também)distribuí<strong>da</strong>)com)este)sistema.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
53)<br />
Principais)caracterís8cas)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
A)<strong>linguagem</strong>)C)combina)caracterís8cas)de)linguagens)de)alto[nível)com)a)<br />
funcionali<strong>da</strong>de)de)linguagens)de)montagem)(assembly$languages).)Dentre)<br />
as)principais)caracterís8cas)que)tornaram)C)uma)<strong>da</strong>s)linguagens)mais)<br />
populares)estão:)<br />
• Seu)compilador)gera)programas[executáveis)menores)e)mais)velozes)do)<br />
que)muitas)outras)linguagens;))<br />
• Uso)extensivo)de)funções:)permite)que)tarefas)específicas)sejam)defini<strong>da</strong>s)<br />
e)codifica<strong>da</strong>s)separa<strong>da</strong>mente)–)um)programa)em)C)é)uma)coleção)de)<br />
funções;)<br />
• Implementação)de)ponteiros:)endereçamento)<strong>da</strong>)memória,)vetores,)<br />
estruturas)e)funções.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
54)
O)menor)programa)em)C)<br />
Todo)programa)escrito)na)<strong>linguagem</strong>)C)possui)um)estrutura)básica,)sobre)a)<br />
qual)são)adiciona<strong>da</strong>s)as)instruções)e)comandos)que)se)deseja)que)o)<br />
programa)execute.)<br />
A)função)int main()!<br />
• É)a)função)principal)de)um)programa)em)C.)<br />
• Sempre)deverá)exis8r.)<br />
• Marca)o)início)<strong>da</strong>)execução)do)programa.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
55)<br />
Algumas)notas)MUITO)importantes)<br />
Tudo)que)tem)um)começo)tem)um)fim)(exceto)a)história)do)filme)Matrix$)<br />
• Os)símbolos)/*)e)*/)indicam)o)começo)e)o)fim)de)um)comentário.)<br />
• Os)símbolos){)e)})indicam)o)começo)e)o)fim)de)um)bloco)de)comandos.)<br />
• Os)símbolos)")e)")indicam)o)começo)e)o)fim)de)uma)cadeia)de)caracteres.)<br />
• Todo)comando)deve)ser)encerrado)com)o)símbolo);)(ponto[e[vírgula).)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
56)
Principais)bibliotecas)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
A)<strong>linguagem</strong>)C)possui)um)conjunto)mínimo)de)instruções,)visando)a)criação)<br />
de)programas)executáveis)de)tamanho)pequeno.)A)adição)de)novas)<br />
funcionali<strong>da</strong>des)é)feita)através)<strong>da</strong>)inclusão)de)bibliotecas,)que)contêm)<br />
classes)de)funções)específicas)para)o)tratamento)de)<strong>da</strong>dos)desejado.)<br />
A)inclusão)de)bibliotecas)devem)ser)as)primeiras)instruções)de)um)<br />
programa)em)C.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
57)<br />
Principais)bibliotecas)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
Biblioteca)<br />
stdio.h!<br />
stdlib.h!<br />
math.h!<br />
time.h!<br />
ctype.h!<br />
string.h!<br />
conio.h!<br />
Principais)funcionali<strong>da</strong>des)<br />
entra<strong>da</strong>)e)saí<strong>da</strong>)de)<strong>da</strong>dos.)<br />
alocação)de)memória)e)comandos)para)o)sistema)operacional.)<br />
funções)matemá8cas.)<br />
manipulação)de)<strong>da</strong>dos)nos)formatos)de)<strong>da</strong>ta)e)hora.)<br />
manipulação)de)caracteres.)<br />
manipulação)de)cadeias)de)caracteres.)<br />
manipulação)do)cursor)na)tela.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
58)
Armazenamento)de)<strong>da</strong>dos)<br />
Antes)de)serem)u8liza<strong>da</strong>s)em)um)programa,)as)informações)do)mundo)<br />
ksico)devem)ser)armazena<strong>da</strong>s)na)memória)do)computador.)Em)<br />
programação,)tais)informações)recebem)o)nome)de)<strong>da</strong>do.)Os)<strong>da</strong>dos)podem)<br />
ser)valores)numéricos)ou)símbolos)gráficos)(caracteres))<br />
Para)isso,)o)programa)reserva)endereços)de)memória,)que)passam)a)ser)<br />
iden8ficados)por)um)nome,)geralmente)relacionado)à)informação)que)ele)<br />
representa)(massa,)altura,)força,)cor)etc.))<br />
Através)deste)nome,)a)informação)con8<strong>da</strong>)no)respec8vo)endereço)de)<br />
memória)pode)ser)modifica<strong>da</strong>)ou)u8liza<strong>da</strong>)em)expressões,)comandos)e)<br />
funções)do)programa.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
59)<br />
Constantes)e)variáveis)<br />
Em)linguagens)de)programação)de)alto)nível,)os)<strong>da</strong>dos)podem)ser)de)duas)<br />
naturezas:)constantes)ou)variáveis.)<br />
Constantes<br />
Assumem)um)único)valor,)do)início)ao)fim)<strong>da</strong>)execução)do)programa,)não)podendo)ser)<br />
alterado)por)nenhum)comando)ou)função.)<br />
Variáveis<br />
Assumem)um)valor)inicial,)que)pode)ser)alterado)por)alguma)função)ou)comando)<br />
durante)a)execução)do)programa.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
60)
Tipos)primi8vos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
A)<strong>linguagem</strong>)C)realiza)operações)sobre)<strong>da</strong>dos)numéricos)e)não[numéricos.)<br />
Os)<strong>da</strong>dos)numéricos)podem)ser)de)3)8pos)dis8ntos:)<br />
int ! !:)para)representar)valores)inteiros;)<br />
float !:)para)representar)valores)de)ponto)flutuante;)<br />
double !:)para)representar)valores)de)ponto)flutuante)de)precisão)dupla.)<br />
O)8po)char)permite)manipular)elementos)não[numéricos)(<strong>da</strong>dos)como)<br />
letras,)dígitos)ou)outro)símbolo)gráfico).)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
61)<br />
Declaração)<br />
A)declaração)é)um)comando)que)associa)<br />
o)nome)de)uma)constante)ou)de)uma)<br />
variável)a)um)determinado)endereço)de)<br />
memória.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
62)
Regras)0a)e)0b)sobre)constantes)e)variáveis)<br />
Declaração)prévia<br />
To<strong>da</strong>)constante)ou)variável)deve)ser)declara<strong>da</strong>)antes)de)ser)usa<strong>da</strong>.)<br />
Declaração)única<br />
O)nome)<strong>da</strong>)constante)ou)variável)deve)ser)único.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
63)<br />
Tipos)e)valores)<br />
Os)valores)admissíveis)para)ca<strong>da</strong>)8po)primi8vo)podem)ser)alterados)com)o)<br />
uso)dos)modificadores)unsigned,)short)e)long.)<br />
Tipo)<br />
Tamanho)<br />
(bytes))<br />
Início)<br />
Intervalo)<br />
Fim)<br />
char! 1) –128) 127)<br />
unsigned char! 1) 0) 255)<br />
short int! 2) –32768) 32767)<br />
unsigned short int! 2) 0) 65535)<br />
int! 4) –2147483648)) 2147483647))<br />
unsigned int! 4) 0) 4294967295)<br />
float! 4) ±3.4)E–38)) ±3.4)E+38)<br />
double! 8) ±1.7)E–308) ±1.7)E+308)<br />
long double! 10) ±3.4)E–4932) ±3.4)E+4932)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
64)
A)tabela)ASCII)padrão)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
65)<br />
Iden8ficadores)de)constantes)e)variáveis)<br />
Os)nomes)<strong>da</strong>dos)às)constantes)ou)variáveis)de)um)programa)denominam[se)<br />
iden8ficadores.)Para)definir)um)iden8ficador)pode[se)u8lizar)uma)<br />
combinação)de:)<br />
• )letras)(maiúsculas)e)minúsculas,)sem)acentuação).)<br />
• )dígitos)(0)a)9),)desde)que)o)primeiro)caractere)não)seja)um)dígito.)<br />
• )caractere)'_')(sublinha).)<br />
A)<strong>linguagem</strong>)C)diferencia)letras)maiúsculas)e)minúsculas.)<br />
int F; ! ! ! ! !// uma variável inteira denomina<strong>da</strong> F !<br />
float f; ! ! ! ! !// uma variável real denomina<strong>da</strong> f!<br />
double valor de A;! ! !// identificador inválido!!<br />
char 1a_inicial;! ! !// identificador inválido!!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
66)
Palavras)reserva<strong>da</strong>s)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
As)seguintes)palavras)não)podem)ser)u8liza<strong>da</strong>s)para)denominar)en8<strong>da</strong>des)<br />
(constantes,)variáveis,)estruturas,)funções)etc.))cria<strong>da</strong>s)pelo)programador:)<br />
• Armazenamento:)auto, extern, register, static.)<br />
• Tipagem:)char, const, double, enum, float, int, long,<br />
short, signed, struct, typedef, union, unsigned, void,<br />
volatile.)<br />
• Controle)de)execução:)break, continue, goto, return.)<br />
• Comandos)de)seleção:)case, default, else, if, switch.)<br />
• Comandos)de)iteração:)do, for, while.)<br />
• Função:)sizeof().)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
67)<br />
Atribuindo)valores)à)variáveis)<br />
A)atribuição)é)um)comando)u8lizado)para)modificar)o)valor)de)uma)<br />
variável.)<br />
Atenção<br />
• )o)símbolo)de)atribuição)=)não)significa)igual<strong>da</strong>de.)<br />
• )a)atribuição)sempre)atua)<strong>da</strong>)direita)para)a)esquer<strong>da</strong>)(←).)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
68)
Atribuindo)valores)à)variáveis)<br />
A)atribuição)é)um)comando)destru8vo,)ou)seja,)o)valor)anteriormente)<br />
armazenado)pela)variável)à)esquer<strong>da</strong>)do)símbolo))= será)subs8tuído)pelo)<br />
valor)<strong>da</strong>)constante,)variável)ou)expressão)no)lado)direito.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
69)<br />
Operadores)aritmé8cos)<br />
A)precedência)<strong>da</strong>s)operações)aritmé8cas)em)C)obedece)às)regras)<br />
estabeleci<strong>da</strong>s)pela)Álgebra.)Os)operadores)com)mesmo)nível)de)<br />
precedência)são)avaliados)pelo)compilador)<strong>da</strong>)esquer<strong>da</strong>)para)a)direita.)<br />
Símbolo) Operação) Resultado) Precedência)<br />
+ adição) soma)dos)argumentos) baixa)<br />
– subtração) diferença)dos)argumentos) baixa)<br />
* mul8plicação) produto)dos)argumentos) média)<br />
/ divisão) quociente)dos)argumentos) média)<br />
% módulo) resto)<strong>da</strong>)divisão)inteira) média)<br />
++ incremento) adiciona)1)ao)operando) alta)<br />
–– decremento) subtrai)1)do)operando) alta)<br />
A)precedência)<strong>da</strong>s)operações)pode)ser)modifica<strong>da</strong>)com)o)uso)de)<br />
parênteses.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
70)
Expressões)aritmé8cas)<br />
Calcular)o)perímetro)e)o)volume)de)uma)esfera)de)raio)r)=)3.)<br />
P)=)4πr 2 .)<br />
V = 4 3 πr3<br />
int main()!<br />
{!<br />
const float PI = 3.14159;!<br />
float r € = 3;!<br />
float p, v;!<br />
p = 4*PI*r*r;!<br />
v = (4.0/3.0)*PI*r*r*r;!<br />
return(0);!<br />
}!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
71)<br />
A)função)de)exibição)printf()!<br />
A)função)printf())é)u8liza<strong>da</strong>)para)exibição)de)informações.)Sua)sintaxe)<br />
é:)<br />
printf("expressão de controle", lista de argumentos);)<br />
A)"expressão de controle")contém)a)mensagem)que)será)exibi<strong>da</strong>)na)<br />
tela,)juntamente)com)os)caracteres)especiais)de)exibição)e)os)códigos)de)<br />
formatação)dos)argumentos.)<br />
A)lista de argumentos)corresponde)à)constantes,)variáveis)e)<br />
expressões)que)serão)exibi<strong>da</strong>s)na)tela,)de)acordo)com)os)formatos)<br />
estabelecidos)pela)"expressão de controle".)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
72)
Símbolos)para)a)função)printf()!<br />
Servem)para)controle)e)formatação)<strong>da</strong>)exibição)em)tela.)<br />
Caractere) Ação)<br />
\n nova)linha)<br />
\t tabulação)<br />
\b retrocesso)(backspace))<br />
\f novo)formulário)<br />
\a alerta)(sinal)sonoro))<br />
\r início)<strong>da</strong>)linha)<br />
\0 caractere)nulo)<br />
\" exibe)o)caractere)")<br />
\\ exibe)o)caractere)\)<br />
Código) Exibição)<br />
%c caractere)simples)<br />
%s cadeia)de)caracteres)<br />
%d valor)inteiro)<br />
%u valor)inteiro)sem)sinal)<br />
%f valor)de)ponto)flutuante)<br />
%e notação)cien{fica)<br />
%o valor)octal)<br />
%x valor)hexadecimal)<br />
%% caractere)%)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
73)<br />
Uso)<strong>da</strong>)função)printf()!<br />
Exibir)uma)mensagem:)<br />
printf("Bom dia!");!<br />
Exibir)uma)mensagem)e)pular)duas)linhas:)<br />
printf("Bom dia!\n\n");!<br />
Exibir)o)valor)de)uma)variável)inteira:)<br />
printf("%d", j);!<br />
Exibir)o)valor)de)uma)variável)inteira)e)uma)variável)real:)<br />
printf("%d %f", j, x);!<br />
Exibir)mensagens)e)valores)de)variáveis:)<br />
printf("Valor de j = %d\nValor de x = %f\n", j, x);!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
74)
A)função)printf()!<br />
Exemplo:)Exibir)um)caractere)de)diversas)formas)diferentes.)<br />
#include !<br />
#include !<br />
int main()!<br />
{!<br />
char a = 'A';!<br />
printf("CAR: %c\nDEC: %d\nOCT: %o\nHEX: %x\n", a, a, a, a);!<br />
system("PAUSE");!<br />
return(0);!<br />
}!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
75)<br />
A)função)de)leitura)scanf()!<br />
A)função)scanf())é)u8liza<strong>da</strong>)para)leitura)de)<strong>da</strong>dos)pelo)teclado.)Sua)<br />
sintaxe)é:)<br />
scanf("expressão de controle", lista de argumentos);)<br />
Diferentemente)<strong>da</strong>)função)printf(),)a)"expressão de controle")<strong>da</strong>)<br />
função)scanf())deverá)conter)apenas)os)códigos)de)formatação)<strong>da</strong>s)<br />
variáveis)a)serem)li<strong>da</strong>s.)<br />
A)lista de argumentos)é)composta)pelos)nomes)<strong>da</strong>s)variáveis)que)<br />
serão)li<strong>da</strong>s,)precedi<strong>da</strong>s)pelo)símbolo)&)(endereço),)de)acordo)com)a)ordem)<br />
estabeleci<strong>da</strong>)pela)"expressão de controle".)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
76)
Uso)<strong>da</strong>)função)scanf()!<br />
Ler)o)valor)de)uma)variável)inteira:)<br />
scanf("%d", &j);!<br />
Ler)o)valor)de)duas)variáveis)inteiras:)<br />
scanf("%d %d", &i, &j);!<br />
Ler)o)valor)de)uma)variável)real)e)uma)variável)inteira:)<br />
scanf("%f %d", &x, &j);!<br />
Na)função)scanf())é)imprescindível)o)uso)do)símbolo)de)endereço)&<br />
imediatamente)antes)do)nome)<strong>da</strong>)variável.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
77)<br />
Exemplo)<br />
Exibir)o)valor)correspondente)em)graus)fahrenheit)de)uma)temperatura)em)<br />
graus)celsius)informa<strong>da</strong>)pelo)usuário.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
78)
Uso)combinado)printf())e)scanf()!<br />
A)função)scanf())não)deve)ser)u8liza<strong>da</strong>)para)exibir)mensagens.)<br />
Isto)não)funciona!!!)<br />
scanf("Entre com o valor de i = %d", &i);!<br />
Isto)sim,)funciona!!!)<br />
printf("Entre com o valor de i = ");!<br />
scanf("%d", &i);!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
79)<br />
Formatando)a)exibição)de)valores)<br />
A)função)printf())permite)definir)como)os)valores)<strong>da</strong>s)constantes)e)<br />
variáveis)serão)exibidos)na)tela.)<br />
Exibindo)valores)inteiros:)<br />
int i = 3;!<br />
printf(”i = %d", i); ! ! !// i = 3!<br />
printf(”i = %5d", i); ! ! !// i = 3!<br />
printf(”i = %05d", i);! ! !// i = 00003!<br />
Exibindo)valores)reais:)<br />
float pi = 3.14159265358;!<br />
printf(”pi = %f", pi);! ! !// pi = 3.14159265!<br />
printf(”pi = %.4f", pi); ! !// pi = 3.1416!<br />
printf(”pi = %8.2f", pi); ! !// pi = 3.14!<br />
Atenção!!!)<br />
Não)se)usa)formatação)de)exibição)na)função)scanf().)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
80)
O)operador)de)subtração)<br />
O)símbolo)–)representa)a)operação)de)subtração.)Quando)u8lizado)numa)<br />
expressão)aritmé8ca,)ele)calcula)e)diferença)entre)os)operadores)<br />
envolvidos.))<br />
Este)símbolo)também)define)o)operador)unário)que)altera)o)sinal)<strong>da</strong>)<br />
constante,)variável)ou)expressão)que)o)sucede.))<br />
Alterar)o)sinal)de)uma)variável)ou)expressão...)<br />
x = -x;!<br />
k = -(i + j);!<br />
...)é)o)mesmo)que)mul8plicar)a)variável)ou)expressão)por)-1))<br />
x = (-1)*x;!<br />
k = (-1)*(i + j);!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
81)<br />
O)operador)de)divisão)!<br />
O)símbolo)/)representa)a)operação)de)divisão.)Uma)expressão)aritmé8ca)<br />
contendo)diversos)valores)no)numerador)ou)no)denominador)deve)ser)<br />
lineariza<strong>da</strong>)com)o)uso)de)parênteses.)<br />
) ) ) ) x←) a + ) b ) ) ) "x = (a + b)/(c + d);!<br />
c + d<br />
O)resultado)<strong>da</strong>)operação)de)divisão)depende)do)8po)dos)operandos)na)<br />
expressão.)<br />
€<br />
Quando)houver)apenas)operando)inteiros...)<br />
Será)realiza<strong>da</strong>)a)divisão)inteira.)<br />
Quando)pelo)menos)um)dos)operandos)for)real...)<br />
Será)realiza<strong>da</strong>)a)divisão)real.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
82)
O)operador)módulo)<br />
O)símbolo)%)representa)o)operador)módulo,)que)calcula)o)resto)<strong>da</strong>)divisão)<br />
inteira)entre)2)operandos)do)8po)inteiro.)<br />
dividendo)<br />
quociente)<br />
Ex:)) 13) 5)<br />
) ) ) 3) ) ) 2) ) ) ) ) ))) ) )13)=)5)*)2)+)3)<br />
divisor)<br />
resto)<br />
int D = 13, d = 5;!<br />
int Q, R;!<br />
Q = D/d;!<br />
R = D%d;!<br />
printf(“Resultado <strong>da</strong> divisão inteira: %d\n”, Q) ;!<br />
printf(“Resto <strong>da</strong> divisão inteira: %d\n”, R);!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
83)<br />
Operadores)de)incremento)e)decremento)<br />
São)u8lizados)para)adicionar)ou)subtrair)1)uni<strong>da</strong>de)de)uma)variável)inteira.)<br />
i++; ! !// equivale ao comando i = i + 1;!<br />
j--; ! !// equivale ao comando j = j – 1;!<br />
Notação)pré[fixa)<br />
O)valor)<strong>da</strong>)variável)é)atualizado)antes)de)ser)u8lizado)na)expressão.)<br />
i = 3;!<br />
j = ++i; !// i assume o valor 4, j assume o valor de i!<br />
Notação)pós[fixa)<br />
O)valor)<strong>da</strong>)variável)é)atualizado)depois)de)ser)u8lizado)na)expressão.)<br />
i = 3;!<br />
j = i++; !// j assume o valor de i, i assume o valor 4!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
84)
Conversão)de)8pos)em)atribuições)<br />
A)<strong>linguagem</strong>)C)permite)a)atribuição)de)valores)entre)constantes)e)variáveis)<br />
de)8pos)diferentes.)Em)alguns)casos)pode)haver)per<strong>da</strong>)de)informação.)<br />
(char) = (int)!<br />
Armazena)apenas)os)bits)menos)significa8vos)<strong>da</strong>)variável)inteira.)<br />
(int) = (float)!<br />
Armazena)apenas)a)parte)inteira)do)valor)de)ponto)flutuante.)<br />
(float) = (char)!<br />
Armazena)o)valor)inteiro)associado)ao)caractere.)<br />
(float) = (int)!<br />
Armazena)o)valor)inteiro)como)um)número)de)ponto)flutuante.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
85)<br />
O)8po)char!<br />
Variáveis)ou)constantes)do)8po)char)são)usa<strong>da</strong>s)para)amazenar)caracteres.)<br />
Na)atribuição)de)valores)a)variáveis)do)8po)char)os)símbolos)devem)ser)<br />
escritos)entre)aspas)simples)' '.)<br />
Usa[se)o)código)de)formatação)%c)para)ler)ou)exibir)valores)do)8po)char.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
86)
Funções)na8vas)de)entra<strong>da</strong>)e)saí<strong>da</strong>)<br />
• getchar():)lê)um)caractere)até)que)a)tecla))seja)pressiona<strong>da</strong>.)<br />
Se)mais)de)um)caractere)for)digitado,)apenas)o)primeiro)caractere)será)<br />
considerado)e)o)restante)será)descartado.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
87)<br />
Funções)na8vas)de)entra<strong>da</strong>)e)saí<strong>da</strong>)<br />
• putchar():)Exibe)na)tela)o)caractere)passado)como)argumento,)a))par8r)<br />
<strong>da</strong>)posição)atual)do)cursor.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
88)
Funções)na8vas)de)entra<strong>da</strong>)e)saí<strong>da</strong>)<br />
• getche():)Lê)um)caractere)do)teclado)sem)pressionar))e)<br />
mostra)o)que)foi)digitado.)<br />
#include !<br />
#include !<br />
int main()!<br />
{!<br />
char a;!<br />
printf("Digite um caractere: ");!<br />
a = getche();!<br />
printf("\nO caractere digitado foi %c.\n", a);!<br />
system("PAUSE");!<br />
return(0);!<br />
}!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
89)<br />
Funções)na8vas)de)entra<strong>da</strong>)e)saí<strong>da</strong>)<br />
• getch():)Lê)um)caractere)do)teclado)sem)pressionar))e)não)<br />
mostra)o)que)foi)digitado.)<br />
#include !<br />
#include !<br />
int main()!<br />
{!<br />
char a;!<br />
printf("Digite um caractere: ");!<br />
a = getch();!<br />
printf("\nO caractere digitado foi %c.\n", a);!<br />
system("PAUSE");!<br />
return(0);!<br />
}!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
90)
A)função)puts()!<br />
• É)u8liza<strong>da</strong>)apenas)para)exibir)mensagens)na)tela.)<br />
• A)mensagem)a)ser)exibi<strong>da</strong>)deverá)ser)escrita)entre)aspas.)<br />
• Após)a)exibição)<strong>da</strong>)mensagem,)a)função)puts())mu<strong>da</strong>)de)linha)<br />
automa8camente.))<br />
int main()!<br />
{!<br />
puts("Digite sua opcao:");!<br />
puts("[1] Consultar");!<br />
puts("[2] Incluir");!<br />
puts("[3] Atualizar");!<br />
puts("[4] Excluir");!<br />
puts("[5] Encerrar");!<br />
printf("-> ");!<br />
...!<br />
}!<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
91)<br />
Funções)de)manipulação)de)caracteres)<br />
char a;!<br />
• isalpha(a):)testa)se)o)caractere)é)uma)letra.)<br />
• isdigit(a):)testa)se)o)caractere)é)um)algarismo.)<br />
• isespace(a):)testa)se)é)o)caractere)espaço)' '.))<br />
• islower(a):)testa)se)é)uma)letra)minúscula.))<br />
• isupper(a):)testa)se)é)uma)letra)maiúscula.)<br />
• tolower(a):)converte)o)caractere)para)minúscula.)<br />
• toupper(a):)converte)o)caractere)para)maiúscula.)<br />
Estas)funções)estão)defini<strong>da</strong>s)na)biblioteca)ctype.h.)<br />
PC3I)©)MAP’2014)<br />
<strong>Conceitos</strong>)básicos)<strong>da</strong>)<strong>linguagem</strong>)C)<br />
92)