Anda di halaman 1dari 14

15/09/2014

Estrutura de Dados
Tema 1: Introduo s
Estruturas de Dados.

Informaes

A Cincia da Computao trata das estratgias


para organizar, manipular e utilizar informaes.
As informaes so
gravadas na memria,
usando a unidade bsica
chamada bit (binary digit)

Informaes
Um bit a menor poro de informao,
assumindo dois possveis valores: 0 ou 1.
Os bits so utilizados
para representar na
memria qualquer tipo
de informao: inteiros,
reais, negativos,
caracteres, etc.

15/09/2014

Representao interna das


informaes
Para inteiros no negativos: Sistema de numerao
binria.
Exemplo: O nmero 18 da base decimal para a
binria 000010010
18 | 2___
0 9 | 2___
1 4 | 2___
0 2 | 2___
0 1 | 2___
1 0

Representao interna das


informaes
Para inteiros em geral (no negativos e
negativos):
notao de
complemento de 1;
notao de
complemento de 2.

Representao interna das


informaes
Notao de complemento de 1: aps a
converso do valor (sem sinal) para binrio,
determina-se o complemento de cada dgito
para 1.
Ex: Converso do nmero
-18 (base decimal):
000010010
11101101

15/09/2014

Representao interna das


informaes
Notao de complemento de 2: aps a
aplicao do mtodo complemento de 1,
soma-se 1 ao nmero resultante.
Ex: Converso do nmero
-18 (base decimal):
11101101
+1
11101110

Representao interna das


informaes
Para
nmeros reais: Notao de ponto
flutuante. O nmero decomposto em
mantissa, base e expoente.
Ex: nmero 8,91 :
891 / 100 =
891 * 10-2 expoente
mantissa

base

Representao interna das


informaes
Usando complemento de 2, temos:
Mantissa (891) : 0000000010000101
Expoente (-2): 11111110
Assim: 8,91 =
000000001000010111111110

15/09/2014

Representao interna das


informaes
Para caracteres: sequncia de bits para
representar um caractere.
Atribui-se um valor para cada caractere.
Exemplo : A tabela ASCII
atribui 65 (decimal) para
o caractere A. Logo, sua
representao binria :
01000001

Representao interna das


informaes
A representao de uma cadeia de caracteres
(String) a sequencia da cadeia binria de
cada caractere.
Exemplo: a codificao da cadeia ABC :
A = 01000001
B = 01000010
C = 01000011
Logo, ABC =
010000010100001001000011

Continuando
Tema 1: Introduo s
Estruturas de Dados.

15/09/2014

Interpretao dos bits


Um conjunto de bits pode representar
diferentes tipos de informao (inteiro no
negativo, caractere, real, string, etc).
Para interpretar o
significado de um
conjunto de bits so
utilizados os tipos de
dados.

Tipos de dados
Os computadores possuem implementados
alguns tipos de dados nativos para garantir a
realizao de aes bsicas de armazenamento
e processamento. Eles:
definem quantidade
necessria de bytes;
realizam operaes
bsicas sobre os dados;
armazenam valores na
memria.

Tipos de dados
Representam mtodo de interpretao do
contedo armazenado na memria do
computador.
So dependentes das
funes incorporadas no
hardware.
S so teis se
fornecerem recursos para
atender necessidades do
usurio.

15/09/2014

Tipos de Dados Abstratos - TDA


Permite a definio de um nmero ilimitado
de tipos dados. Pode ser implementado via
hardware ou software.
Um TDA define as
caractersticas de um
dados, bem como as
operaes que podero
ser realizadas sobre os
dados.

Exemplo de Tipo de Dados Abstratos


TDA: Nota
Caractersticas:
valor mximo 10, valor mnimo 0, uma casa
decimal.
Operaes:
Gravar, mostrar, alterar,
excluir, arredondar, e
truncar.

Estruturas de Dados
Recursos de software que permitem a
implementao de Tipos de dados
abstratos.
Em C, temos:
Vetores (uni e
multidimensionais);
Estruturas (struct);
Unies (union).

15/09/2014

Vetores em C
Estruturas de dados estticas.
int x[10];
float y[3][5];
Permitem acessar uma
posio diretamente
para obter ou alterar o
seu contedo (desde
que se tenha os ndices
da posio desejada).

Estruturas em C (struct)
Conjunto de caractersticas que descrevem
um mesmo elemento.
Uma struct define um
novo tipo de dados,
utilizando tipos nativos
da linguagem ou outras
structs.

Estruturas em C (struct)
Exemplo: struct que represente um tipo
produto.
struct produto {
int codigo;
char descricao[40];
float qtdade;
float pvenda;
float pcompra;
};

15/09/2014

Unio em C (union)
Permite definir dentro
diferentes elementos.
Exemplo:
struct livro {
char autor[50];
char editora[40];
int anoPublicacao;
int tipo;

de

uma

struct

union {
struct {
int serie;
char disciplina[20];
} didatico;
struct {
char estilo[30];
} literatura;
}
} cadastro;

Agora sua Vez


Tema 1: Introduo
s Estruturas de Dados.

15/09/2014

Convertendo um nmero inteiro no


negativo
Converter o nmero 14 (base decimal) para
um nmero binrio sem sinal de 8 bits.
0 0 0 0 1 1 1 0

Convertendo um nmero inteiro


negativo (complemento de 1)
Converter o nmero -14 (base decimal) para
um nmero binrio de 8 bits
0 0 0 0 1 1 1 0
1 1 1 1 0 0 0 1

Convertendo um nmero real em


notao de ponto flutuante
Converter o nmero -2,3 (base decimal) para
um nmero binrio de 24 bits. (2,3 = 23 * 10-1)
Base = 10
Mantissa = 23
Expoente = -1

15/09/2014

111111111101010111111111
Mantissa = 23
0000000000101011
11 11111111010100
1111111111010101
Expoente: -1
0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1

Criar um TDA que represente um


Aluno
Caractersticas: nome, endereo, telefone,
srie
Operaes:
Matricular;
Transferir;
Emitir documentos;

Crie uma funo que receba um vetor


de 30 posies de inteiros, determine
e retorne o maior dos seus nmeros.
int maiorNumero(int num[]) {
int maior, i;
maior = num[0];
for (i=1; i<30; i++) {
if (num[i] > maior)
maior = num[i];
}
return maior; }

10

15/09/2014

Criar uma funo que receba um


vetor de 10 posies de struct
produto. Determine e mostre o lucro
gerado por cada produto.
...
struct produto {
int codigo;
char descricao[40];
float qtdade;
float pvenda;
float pcompra;
};
...

void calculaLucro(struct produto prod[]) {


int i;
float l;
for (i=0; i<10; i++) {
l = prod[i].pvenda prod[i].pcompra;
printf(\n\nProduto:%s, prod[i].descricao);
printf
(\nLucro gerado: %f + l);
}
}

Crie uma funo que receba uma


matriz quadrada (bidimensional),
determine e retorne a soma dos
elementos da diagonal principal.
int somaDiagonal(float mat[][4]) {
float soma = 0, i;
for (i=0; i<4; i++) {
soma += mat[i][i];
}
return soma;
}

11

15/09/2014

Finalizando
Tema 1: Introduo s
Estruturas de Dados

Informaes
Referem-se s necessidades do usurio;
So armazenadas na memria do computador;
So gravadas em
binrio, usando
diferentes mtodos de
converso;
Precisam ser tratadas e
recuperadas sempre que
necessrio.

Tipos de dados
Determinam a quantidade de bits necessrios
para representar uma informao.
Determinam
procedimentos corretos
para tratar e recuperar
informaes;
Os computadores
possuem vrios tipos
de dados nativos.

12

15/09/2014

Tipos de dados abstratos


Permitem representar ilimitados tipos de
dados;
Definem as caractersticas da informao e as
formas de trat-la e recuper-la;
Representam um conceito,
independente de
implementao;
Podem ser implementados
atravs de hardware e de
software.

Tipos de Dados em C

Nmero real float y;


Nmero real de dupla preciso double z;
Nmero inteiro int w;
Caractere char letra;
Numero inteiro sem
sinal unsigned int a;
...

Estrutura de Dados
Permitem a implementao de TDA atravs
de software;
Determina a utilizao de memria
(alocao, liberao e acesso);
Determina o
tratamento dado
informao
(operaes).

13

15/09/2014

Estruturas de Dados em C
Vetor unidimensional char nome[30];
Vetor multidimensional char [5][30];
int x[4][8][3];
Estrutura struct
Unio union

Concluses
Tipo de dados imprescindvel para
manipulao da informao;
TDA uma definio terica;
TDA podem ser implementados em hardware
ou software;
Estrutura de dados trata
da implementao por
software de diferentes
TDAs;
Estrutura de Dados o
foco desta disciplina.

14

Anda mungkin juga menyukai