Buscar

Aula - Conceitos básicos de C

Prévia do material em texto

Conceitos Básicos
Introdução a Programação
Pitágoras
Roteiro
• Tipos Básicos
▫ Modificacores
• Variáveis
▫ Escopo
▫ Modificadores
• Constantes
▫ Inteiras
▫ Ponto flutuante
▫ Caractere
▫ Cadeia de caracteres
• Operadores
▫ Atribuição
▫ Aritméticos
▫ Relacionais
▫ Lógicos
▫ Bit a bit
▫ Especiais
Laboratório de Programação I - Glaudiney Mendonça
2
• Os demais tipos são baseados nesses
Tipos Básicos
Laboratório de Programação I - Glaudiney Mendonça
3
Tipo Palavra-chave
Caractere char
Inteiro int
Ponto flutuante 
float
precisão dupla double
Sem valor void
Tipo bits Valor Mínimo Valor Máximo
char 8 -27 (-128) 27-1 (127)
int 32
-231 
- 2.147.483.648
231-1
2.147.483.647
float 32 Seis dígitos de precisão
double 64 Dez dígitos de precisão
Tipos Básicos
Informações
4
Laboratório de Programação I - Glaudiney Mendonça
• Precede os tipos
• Altera o significado de um tipo
Tipos Básicos
Modificadores
Laboratório de Programação I - Glaudiney Mendonça
5
Modificador Palavra-chave
Sinal
Com signed
Sem unsigned
Tamanho
Longo long
Curto short
Tipo bits
Valor
Mínimo
Valor
Máximo
char 8
-128 127
signed
unsigned 0 255
Tipos Básicos
Modificadores para char
Laboratório de Programação I - Glaudiney Mendonça
6
Tipo bits Valor Mínimo Valor Máximo
int
32
- 2.147.483.648 2.147.483.647
signed
unsigned 0 4.294.967.295
short
16
-215 (-32.768) 215-1 (32.767)
signed short
unsigned short 0 65.535
long
32
mesmo que int
signed long
unsigned long mesmo que unsigned int
long long 64 -263 (-9,2x1018) 263-1(9,2x1018)
Tipos Básicos
Modificadores para int
Laboratório de Programação I - Glaudiney Mendonça
7
Tipo bits Precisão
double
64
Dez dígitos
long 80
Tipos Básicos
Modificadores para double
Laboratório de Programação I - Glaudiney Mendonça
8
Observações
long float Mesmo que double e não 
é padronizado
signed int Redundante pois o tipo
padrão já o é
unsigned double Não recomendado por não
ser 100% portável
Tipos Básicos
Modificadores
Laboratório de Programação I - Glaudiney Mendonça
9
• Nomes de variáveis, funções, constantes, etc.
▫ Primeiro caractere
 Letra (a-z|A-Z) ou sublinhado (_)
 Evitar usar acentos e ç
▫ Demais caracteres
 Letras, números ou sublinhados
• Podem ter qualquer tamanho
▫ C99 define 63 caracteres
▫ Porem_nomes_muito_grandes_podem_ser_inco
modos_de_visualizar_e_de_ler
Identificadores
Laboratório de Programação I - Glaudiney Mendonça
10
• Respeitar maiúsculas e minúsculas
▫ Casa  CASA  casa  cAsa...
• Não podem ser iguais a uma palavra-chave
▫ Erro
• Não devem ser iguais a funções da biblioteca C
▫ Não será possível usar a função do C
Identificadores
Laboratório de Programação I - Glaudiney Mendonça
11
• Posição nomeada de memória
• Guarda um valor que pode ser modificado pelo 
programa
• Definição
▫ Podem ser definidas em qualquer parte do código
 Porém devem ser definidas antes de serem usadas
▫ Aloca memória para a variável
Variáveis
Laboratório de Programação I - Glaudiney Mendonça
12
• Utilize nomes que identifiquem o propósito da 
variável
▫ media, saldo...
• Utilize letras maiúsculas no caso de variáveis 
compostas de mais de um nome
▫ somaDasNotas
• Evite l (letra ele) e o (letra o) 
▫ Por parecer 1 (número um) e 0 (número zero)
Variáveis
Recomendações
Laboratório de Programação I - Glaudiney Mendonça
13
• Declaração
Variáveis
Laboratório de Programação I - Glaudiney Mendonça
14
Exemplos
int i, j, k;
short int si;
unsigned int ui;
double balance, profit, loss;
modificadores tipo lista_de_variaveis;
modificadores Qualquer quantidade 
tipo Tipo válido
lista_de_variáveis Nomes das variáveis separados por vírgula (,)
• Onde uma variável é definida
• Determina qual a região em que ela pode ser 
utilizada 
• Tipos
▫ Local
▫ Parâmetro Formal
▫ Global
Variáveis
Escopo
Laboratório de Programação I - Glaudiney Mendonça
15
• Definida dentro de um bloco (função)
▫ Só podem ser utilizadas dentro do bloco que foram 
definidas
▫ Criada no início do bloco e “destruída” no final
▫ A memória só será alocada quando necessária
▫ Evita problemas em outras partes do código
Variáveis
Escopo Local
Laboratório de Programação I - Glaudiney Mendonça
16
Exemplo
void func1()
{
int x;
x = 10;
}
void func2()
{
int x;
x = -199;
}
• Como qualquer variável local
▫ Valores que serão passados para uma função
▫ Definidas depois o nome da função e entre 
parênteses
Variáveis
Escopo de Parâmetro Formal
Laboratório de Programação I - Glaudiney Mendonça
17
Exemplo
is_in(char* s, char c)
{
while(*s)
if (*s == c) return 1;
else s++;
}
• Reconhecidas no código inteiro
• Podem ser usadas em qualquer lugar do código
▫ Guardam os valores durante toda a execução do 
programa
• Declara fora de qualquer função 
▫ Nas declarações globais
• Alocadas quando o programa inicia e 
“destruídas” quando o programa termina
Variáveis
Escopo Global
Laboratório de Programação I - Glaudiney Mendonça
18
• Existem modificadores que alteram variáveis
Variáveis
Modificadores
Laboratório de Programação I - Glaudiney Mendonça
19
Tipo Significado Exemplo
const Tratada como constante const int pi = 3.1415;
static
Não perde o valor ao 
sair do escopo
static int a;
• Pode inserir um valor a uma variável no 
momento de sua criação
Variáveis
Inicialização
Laboratório de Programação I - Glaudiney Mendonça
20
Exemplos
char ch = ‘a’;
int first = 0;
float balance = 123.23;
tipo variavel = valor;
tipo Tipo válido
variavel Nome da variável
valor Valor inicial
• Valores que não podem ser alterados
• Inteiras
Constantes
Laboratório de Programação I - Glaudiney Mendonça
21
Tipo Início Dígitos Exemplos
Decimal 0 a 9 1, 0, 123, 21000
Octal 0 (zero) 0 a 7 01, 044533, 042, 077
Hexadecimal
0x ou 0X 
(zero xis)
0 a 9 
A a F
0x34AF, 0XFBC, 0x3FD
• Ponto flutuante
• Cadeia de caracteres
Constantes
Ponto Flutuante
Laboratório de Programação I - Glaudiney Mendonça
22
Tipo Composição Exemplos
Parte inteira separada da 
fracionária por ponto (.)
123.12333, -0.9876
Notação 
Científica
Apresentada depois 4.34e-3
Composição Exemplo
Delimitada por aspas (“)
"Este e um exemplo de 
cadeia"
Constantes
Caractere
Laboratório de Programação I - Glaudiney Mendonça
23
Tipo Composição Exemplos
Delimitado por apóstrofo (‘) 'A', 'a', '1'
Número Número da tabela ASCII 65, 97, 49
Especial
Precedido de barra invertida 
(\)
\b Retrocesso
\n Quebra de linha
\t
Tabulação 
horizontal
\” Aspas
\’ Apóstrofo
\\ Barra invertida
\0 Caractere nulo
\a Alerta
• Operações elementares de uma linguagem
• Aplicados a um ou mais valores
▫ Operandos
• Aridade
▫ Unários
▫ Binários
▫ Ternários
Operadores
Laboratório de Programação I - Glaudiney Mendonça
24
• Utilização
• Múltiplas atribuições
▫ x = y = z = 12;
• Conversão de tipos
Operadores
Atribuição
Laboratório de Programação I - Glaudiney Mendonça
25
nome_da_variavel = expressao;
nome_da_variavel Variável que irá receber o valor
expressao Expressão matemática que será calculada
Automática Realizada pelo C
int x = 5.3;
x igual a 5
Explícita
(Casting)
Altera o resultado final 
de uma expressão
float x = (int)(3.5 + 5.2);
x igual a 8.0
Dest. Expressão Perdido Exemplo
char
unsigned
char
Se>127,
negativo
chara = 129;
a igual a -127
int
Primeiros 
24 bits
a = 33000;
a igual a -24
int float
Parte 
fracionário
int x = 5.3;
x igual a 5
float double Precisão
float y = 
5.0123456789;
y igual a 5.012346
Operadores
Atribuição - Conversão
26
Laboratório de Programação I - Glaudiney Mendonça
Operador Ação
Aritméticos
- Subtração e menos unário
+ Adição
* Multiplicação
/ Divisão
% Módulo da divisão (resto)
-- Decremento
++ Incremento
Operadores
27
Laboratório de Programação I - Glaudiney Mendonça
• Divisão (/ )
▫ Se aplicado a inteiros, o resto é truncado
 5 / 2 == 2
▫ Caso se deseje o valor fracionário deve-se 
transformar pelo menos um dos números em 
ponto flutuante
 5 / 2.0 == 2.5
▫ Caso sejam variáveis inteiras, usa-se o casting
Operadores
Aritméticos - Observações
Laboratório de Programação I - Glaudiney Mendonça
28
Exemplo
float x;
int y = 5, z = 2;
x = y / (float) z;
• Resto (% )
▫ Não pode ser utilizado em ponto flutuante
• Incremento (++) e decremento (-- )
▫ Em expressões, podem ser utilizados de duas formas
Operadores
Aritméticos - Observações
Laboratório de Programação I - Glaudiney Mendonça
29
Forma O que ocorre Exemplo x y z
x = 10; 10 ? ?
Prefixo
Altera variável antes 
de utilizar valor
y = ++x; 11 11 ?
Sufixo
Altera variável depois 
de usar valor
z = x++; 12 11 11
Precedência
++
--
- (unário)
*
/
%
+
-
Operadores
Aritméticos
30
Laboratório de Programação I - Glaudiney Mendonça
Operador Ação
Relacionais
> Maior que
>= Maior que ou igual
< Menor que
<= Menor que ou igual
== Igual
!= Diferente 
Lógicos
! Não
&& E
|| OU
Operadores
31
Laboratório de Programação I - Glaudiney Mendonça
Operadores
Relacionais e Lógicos - Observações
32
Laboratório de Programação I - Glaudiney Mendonça
• Resultam em um valor inteiro
• Podem ser utilizados em expressões
▫ 7 + (5 > 3) == 8
• Operandos são números
▫ 0 || 34 == 1
0 Falso
 0 (1) Verdadeiro
Operadores
Relacionais e Lógicos – Tabela verdade
33
Laboratório de Programação I - Glaudiney Mendonça
X Y !X X && Y X || Y
0 0 1 0 0
0  0 1 0 1
 0 0 0 0 1
 0  0 0 1 1
Operadores
Relacionais e Lógicos
34
Laboratório de Programação I - Glaudiney Mendonça
Precedência
!
++
--
-
*
/
%
+
-
>
>=
<
<=
==
!=
&& ||
Operador Ação
Bit a bit
& E
| OU
^ OU Exclusivo
~ Complemento de um
>>
Deslocamento
à direita
<< à esquerda
Operadores
Bit a bit
35
Laboratório de Programação I - Glaudiney Mendonça
• Não podem ser usados com ponto flutuante
• Usos interessantes
▫ Observação
 7 == 00111 
 -8 == 11000
Operadores
Bit a bit - Observações
Laboratório de Programação I - Glaudiney Mendonça
36
Uso O que ocorre Exemplo x y
Deslocamento
de 1 bit
Multiplica (<<1) 
ou divide (>>1)
o número por 2
int x = 7 << 1;
int y = 7 >> 1;
14 3
Complemento
de um
Inverte os
valores
dos bits
int x = ~7; -8
Operador Significado
(tipo) expr Casting
+=, -=, *=,
/=, %=...
Atribuição aritmética
Simplifica o uso da atribuição com 
outro operador
x = x+3  x += 3
? : Substituir condicional
& Manipular endereço de memória
* Acessar conteúdo de memória
Operadores
Especiais
Laboratório de Programação I - Glaudiney Mendonça
37
Operador Significado
sizeof Retornar o tamanho de uma estrutura
(em bytes)
. (ponto) 
Referenciar elementos em estruturas
-> (seta)
, (vírgula)
Encadeia expressões
x =(y=3,y+1);
( ) Aumenta a precedência
[ ] Indexa vetores e matrizes
Operadores
Especiais
Laboratório de Programação I - Glaudiney Mendonça
38
Precedência Geral
( )
[ ]
->
.
!
~
++
--
-
(tipo)
*
&
sizeof
*
/
%
+
-
<<
>>
<
<=
>
>=
==
!=
& ^ | && || ?:
=
+=
-=
*=
/=
%=
<<=
>>=
&=
|=
^=
,
Operadores
Laboratório de Programação I - Glaudiney Mendonça
39

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes