Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
Linguagens de Programação I
Profa. Susana M. Iglesias
Tema # 3
Tipos básicos de dadosVariáveis
2
• As linguagens imperativas são baseadas em
executar um conjunto de operações sob dados,
• os dados podem ser representados por variáveis
ou constantes,
• na maioria das linguagens as variáveis devem ser
declaradas, especificando o tipo de dados que
elas representam,
• quase todas as linguagens fornecem um conjunto
de dados básicos a serem utilizados na declaração
das variáveis.
INTRODUÇÃO
3
• Um tipo básico de dados define:
• As características 1 e 2 dependem da arquitetura
do computador, do sistema operacional e do
compilador utilizado.
1. a quantidade de memória disponível para armazenar o dado,
2. a forma em que essa memória será utilizada na representação,
3. um conjunto de operações são definidas sobre o tipo de dados e estão disponíveis na linguagem através de operadores ou funções.
INTRODUÇÃO
4
• Um tipo de dado e o conjunto de operações
definidas sobre ele, é chamado de Tipo de Dado
Abstrato (TDA).
• Tipos de dados básicos em C:
1. Tipo caractere, char
2. Tipo inteiro, int
3. Tipo ponto flutuante de simples precisão, float
4. Tipo ponto flutuante de dupla precisão, double
5. Tipo vazio, void
INTRODUÇÃO
5
• é utilizado para representar o conjunto de
caracteres ASCII,
• ele pode conter um caractere: ‘a’, ‘A’, ‘7’, ‘\n’, ‘\0’
• pode ser utilizado para representar um
subconjunto dos números inteiros [0..255],
• existe uma correspondência entre o subconjunto
de inteiros [0..255] e a tabela ASCII, que
freqüentemente é utilizada em programação,
TIPO CARATERE
6
• a mesma correspondência é utilizada para
representar um char na memória, geralmente 8
bits são utilizados,
• Entre as operações suportadas pelo tipo caractere
temos a operação de atribuição e operações de
comparação.
bit: 1 2 3 4 5 6 7 8
TIPO CARATERE
7
• e utilizado para representar o conjunto dos
números inteiros,
• a representação de um inteiro na memória
depende da arquitetura do computador,
geralmente ela corresponde com o tamanho de
uma palavra (32 ou 64 bits).
• representação de um inteiro na memóriabit: 1 2 3 30 31 32. . .
1 bit para o sinal,
31 bits para o valor,
TIPO INTEIRO
8
• Qual é o maior inteiro que uma representação de 8 bits pode representar?
• Qual é o maior inteiro que a representação anterior pode representar?
• o tipo inteiro suporta a operação de atribuição, as operações aritméticas definidas para os números naturais (soma, resta, multiplicação, divisão e resto) e operações de atribuição.
• Os inteiros são freqüentemente utilizados em programação como auxiliares, por exemplo: subscritos de arrays, ou estruturas de repetição controladas por contador.
TIPO INTEIRO
9
• é utilizado para representar o conjunto dos
números reais,
• ao igual que o tipo inteiro a representação na
memória depende da arquitetura do computador,
geralmente uma palavra de memória é utilizada
para armazenar um dado ponto flutuante simples.
TIPO PONTO FLUTUANTE SIMPLES
10
• representação de um ponto flutuante:
• Qual é o maior número de ponto flutuante que a representação anterior consegue representar?
• Qual é a precisão (quantidade de casas decimais) da representação?
bit: 1 2 3 30 31 32. . .
1 bit para o sinal (azul)
8 bits para o expoente (amarelo)
23 bits para a mantissa (marrom)
8 9 10 11
1 bit para o sinal (claro)
7 bits para o valor (forte)
. . .
TIPO PONTO FLUTUANTE SIMPLES
11
• O tipo float é incapaz de representar todo o
conjunto dos números reais, apenas um
subconjunto consegue ser representado,
• mesmo dentro de uma determinada faixa a
precisão do número real tem que ser truncada,
pois existe um número finito de bits para
armazenar a mantissa.
• As operações definidas para os dados float, são
atribuição, operações aritméticas definidas para
os números reais e operações de comparação.
TIPO PONTO FLUTUANTE SIMPLES
12
• O tipo ponto flutuante de precisão dupla, é uma
extensão do ponto flutuante de precisão simples,
• tem o objetivo de representar uma faixa maior de
números reais e aumentar a precisão da
representação,
• o tipo double utiliza o dobro da memória que o
tipo simples, geralmente 64 bits, sendo 1 bit para
o sinal, 12 bits para o expoente e 51 bits para a
mantissa,
TIPO PONTO FLUTUANTE SIMPLES
13
• as operações suportadas pelo double são
similares as operações suportadas pelos floats,
• o uso de variáveis double só se justifica em
aplicações onde uma alta precisão de cálculos
matemáticos seja exigida.
• Qual é o maior número que a representação de
ponto flutuante duplo consegue representar?
TIPO PONTO FLUTUANTE DUPLO
14
• o tipo vazio ou void é um tipo de dados especial,
• é utilizado para declarar explicitamente funções
que não retornam nenhum valor,
• é utilizado para criar ponteiros genéricos,
• ambos usos são tópicos avançados de
programação.
TIPO VAZIO (VOID)
15
• os tipos básicos podem ter diferentes
modificadores,
• os modificadores podem ser usados para alterar o
significado de um tipo básico,
• o uso de modificadores aumenta a eficiência no
uso da memória e melhora o desempenho da
aplicação,
• os modificadores presentes em C são: unsigned, short e long,
• unsigned e short só se aplicam a inteiros.
MODIFICADORES
16
• Ao utilizar os tipos básicos de dados para
representar valores numéricos podem ocorrer
situações onde se ultrapassem os limites superior
ou inferior do conjunto de números que pode ser
representado,
• se o limite superior e ultrapassado temos um
overflow e os resultados da execução são
imprevisíveis, em alguns compiladores a execução
do programa é abortada,
OVERFLOW E UNDERFLOW
17
• se o limite inferior é ultrapassado temos um
underflow, o valor do número será substituído
com zero e a execução continua,
• ambas condições overflow e underflow devem ser
evitadas.
• Qual dois tipos de erros é mais prejudicial
Overflow ou Underflow?
OVERFLOW E UNDERFLOW
18
• Existem dois tipos básicos de dados que não são
encontrados na linguagem C, pero aparecem na
maioria das outras linguagens, o string e o
boleano.
• Tipo string, é utilizado para representar cadeias
de caracteres (palavras o frases), este recurso é
implementado em C usando arrays de caracteres
ou ponteiros a caracteres.
TIPOS DE DADOS NÃO PRESENTES EM C
19
• Tipo boleano, tem só dois valores possíveis,
verdadeiro (true) e falso (false), são utilizados
em expressões lógicas, como sentinelas ou em
estruturas de seleção. A linguagem C considera
qualquer expressão com valor igual a zero como
falso e qualquer expressão com valor diferente
de zero como verdadeiro. (Ex)
TIPOS DE DADOS NÃO PRESENTES EM C
20
• variável, é uma posição de memória , que é usada
para guardar um valor que pode ser acessado pelo
programa,
• todas as variáveis possuem um identificador, um
tipo e um valor,
• Todas as variáveis em C devem ser
declaradas antes de serem usadas,
• A forma geral de uma declaração de variáveis é:
tipo lista_de_identificadores
VARIÁVEIS
21
• O identificador de uma variável não tem nenhuma
relação com o tipo,
• Exemplos de declaração de variáveis:
int i, j, count;
long int k;
unsigned int m;
char c, d;
float x, y;
long double fx;
VARIÁVEIS
22
• Identificadores em C:
−um identificador válido e uma serie de
caracteres que consistem em letras, dígitos e
sublinhados,
−não pode começar com dígito,
−não pode ser uma palavra reservada da
linguagem,
−apenas caracteres da tabela ASCII podem ser
utilizados.
VARIÁVEIS
23
• Identificadores em C ...−um identificador pode ter qualquer
cumprimento, apenas os 31 primeiros caracteres
são reconhecidos,
−A linguagem C, é case sensitive, os caracteres
minúsculos e maiúsculos são diferentes.
−Escolha nomes significativos para suas variáveis,
tornando seu programa auto-explicativo, menos
comentários se farão necessários.
−A primeira letra do identificador de uma variável
simples deve ser minúscula.
VARIÁVEIS
24
• Onde as variáveis são declaradas?
dentro de funções ou
blocos
na definição dos
parâmetros das funções
fora de todas as
funções
variáveis locais
parâmetros formais
variáveis globais
VARIÁVEIS
25
• Variáveis locais:−são declaradas dentro de uma função ou bloco
de código,
−são “criadas” quando começa o bloco (caractere
{ ),
−são “destruídas” quando finaliza o bloco
(caractere } ),
−elas existem enquanto o bloco no qual foram
declaradas esta sendo executado,
−o conteúdo da variável é perdido quando o bloco
deixa de ser executado,
VARIÁVEIS
26
• Variáveis locais ...− só podem ser referenciadas por comandos que
estão dentro do bloco no qual foram declaradas,
− exemplos,
− vantagens de utilizar variáveis locais:
1. as variáveis só serão alocadas se for necessário,
não existiram até que o bloco associadas a elas
seja executado,
2. evita efeitos colaterais indesejados, ela não
poderá ser acidentalmente modificada fora do
bloco.
VARIÁVEIS
27
• Parâmetros Formais:
− se uma função usa argumentos, ela deve
declarar variáveis que receberão os valores
dos argumentos, essas variáveis são os
parâmetros da função.
− os parâmetros, assim como as variáveis locais
tem escopo de função, elas são criadas e
destruídas ao executar a função.
− Exemplos.
VARIÁVEIS
28
• Variáveis Globais:
− são criadas declarando-as fora de qualquer
função,
− são reconhecidas pelo programa inteiro e
podem ser utilizadas em qualquer segmento
de código,
− guardam seus valores dentro de toda a
execução do programa,
− exemplos,
VARIÁVEIS
29
• Variáveis Globais ...
− se uma variável local tem o mesmo nome que
uma variável global, todas as referências ao
nome da variável no bloco local dizem respeito
a variável local e não tem efeito algum sobre a
variável global.
− variáveis globais podem parecer atraentes,
− elas ocupam espaço durante toda a execução
de seu programa e não apenas quando as
variáveis são necessárias,
VARIÁVEIS
30
• Variáveis Globais ...
− elas limitam a reutilização do código,
− elas podem causar erros e efeitos colaterais
indesejáveis se forem mal utilizadas,
− evite o uso de variáveis globais tanto como for
possível.
VARIÁVEIS
31
• Modificador de acesso: const
− variáveis do tipo const não podem ser
modificadas por seu programa,
− elas podem receber apenas um valor inicial,
− utilize variáveis de tipo const para representar
constantes,
− existem algumas constantes que foram
incluídas na linguagem C
− exemplos.
CONSTANTES
32
• Inicialização de variáveis:
− sintaxe: tipo nome_da_variável = constante;
− exemplos.
VARIÁVEIS
33
O SEGUNDO PROGRAMA EM C/* Programa para somar dois numeros */
#include <stdio.h>
#include <stdlib.h>
int main(){
int num1, num2, soma;
printf("Entre com o primeiro numero: ");
scanf("%d", &num1);
printf("Entre com o segundo numero: ");
scanf("%d", &num2);
soma = num1 + num2;
printf("A soma e %d\n", soma);
system("PAUSE");
return 0;
}