Estruturas de dados aulas - bloco 1

41
UNDB ESTRUTURAS DE DADOS ESTRUTURAS DE DADOS Prof. Alessandro Gonçalves Prof. Alessandro Gonçalves [email protected] [email protected]

description

Aulas de estruturas de dados

Transcript of Estruturas de dados aulas - bloco 1

Page 1: Estruturas de dados   aulas - bloco 1

UNDB

ESTRUTURAS DE DADOSESTRUTURAS DE DADOS

Prof. Alessandro GonçalvesProf. Alessandro Gonç[email protected]@gmail.com

Page 2: Estruturas de dados   aulas - bloco 1
Page 3: Estruturas de dados   aulas - bloco 1

Estrutura da informação - revisão

Bit – representação binária (0 ou 1)

Menor unidade de informação

Page 4: Estruturas de dados   aulas - bloco 1

Estrutura da informação - revisão

Byte – conjunto de 8 bits

0 0 0 1 0 0 0 1

Page 5: Estruturas de dados   aulas - bloco 1

Estrutura da informação - revisão

Byte – conjunto de 8 bits

Em decimal: 17

0 0 x 27 0

0 0 x 26 0

0 0 x 25 0

1 1 x 24 16

0 0 x 23 0

0 0 x 22 0

0 0 x 21 0

1 1 x 2° 1

Page 6: Estruturas de dados   aulas - bloco 1

Representação de caracteres

ASCII – American Standard Code for Information Interchange

Binário Decimal Representação

01000001 65 A

01000010 66 B

01000011 67 C

00001101 13 CR

00001010 10 LF

Page 7: Estruturas de dados   aulas - bloco 1

Estrutura da informação - revisão

Word – conjunto de bytes

0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1

Page 8: Estruturas de dados   aulas - bloco 1

Tipos: primitivos e complexos

Primitivos – base para todos os outros

• Char ‘A’, ‘.’, ‘5’

• Integer 0, 1, 200, -5

• Boolean True, False

• Real 750.78, -32457, 0.0001

Page 9: Estruturas de dados   aulas - bloco 1

Tipos: primitivos e complexos

Complexos – gerados a partir dos primitivos

• String ‘ROSE’

• Array [1,2,5] [‘ab’,’cd’] [true,false]

Page 10: Estruturas de dados   aulas - bloco 1

Tipos: declarando em C

Int numero;

Char letra;

Variável Tipo Endereço Valor

Numero Int 16538 ?

Letra Char 17200 ?

Page 11: Estruturas de dados   aulas - bloco 1

Tipos: declarando em C

Int numero = 5;

Char letra = ‘a’;

Variável Tipo Endereço Valor

Numero Int 16538 5

Letra Char 17200 a

Page 12: Estruturas de dados   aulas - bloco 1

Motivacional

Page 13: Estruturas de dados   aulas - bloco 1

Filas

Page 14: Estruturas de dados   aulas - bloco 1

Filas

A B C

INÍCIO

FIM

Page 15: Estruturas de dados   aulas - bloco 1

Filas - operações

• Incluir elemento

• Excluir elemento

• Limpar fila

Page 16: Estruturas de dados   aulas - bloco 1

Filas – incluir elemento

• elementos = elementos + 1;

A B C

D

Page 17: Estruturas de dados   aulas - bloco 1

Filas – excluir elemento

• elementos = elementos - 1;

B C DA

Page 18: Estruturas de dados   aulas - bloco 1

Filas - limpar

• elementos = 0;

B C DA

Page 19: Estruturas de dados   aulas - bloco 1

Pilhas

Estrutura de Dados do tipo LIFO (Last in First Out)

Apesar de simples, tem muitas aplicações

E

D

C

B

A

Topo

Base

Page 20: Estruturas de dados   aulas - bloco 1

Pilhas - operações

Inclusão: sempre o elemento superior

Exclusão: sempre o elemento superior

E

D

C

B

A

X

E

D

C

B

A

E

D

C

B

A

D

C

B

A

Page 21: Estruturas de dados   aulas - bloco 1

Pilhas - operações

Restrições de operações ?

E

D

C

B

A

X

E

D

C

B

A

E

D

C

B

A

D

C

B

A

Page 22: Estruturas de dados   aulas - bloco 1

Pilhas

Estrutura de Dados do tipo LIFO (Last in First Out)

Apesar de simples, tem muitas aplicações

E

D

C

B

A

Topo

Base

Page 23: Estruturas de dados   aulas - bloco 1

Pilhas - operações

Inclusão: sempre o elemento superior

Exclusão: sempre o elemento superior

E

D

C

B

A

X

E

D

C

B

A

E

D

C

B

A

D

C

B

A

Page 24: Estruturas de dados   aulas - bloco 1

Pilhas - operações

Restrições de operações ?

E

D

C

B

A

X

E

D

C

B

A

E

D

C

B

A

D

C

B

A

Page 25: Estruturas de dados   aulas - bloco 1

A Linguagem C

Criada por Dennis Ritchie, na década de 70

Procedural e compilada

Inicialmente voltada ao ambiente Unix

Simples e poderosa: 28 comandos

Gera código muito eficiente

Page 26: Estruturas de dados   aulas - bloco 1

A Linguagem C

Pré-processador

Compilador

Código fonte

Linker

Page 27: Estruturas de dados   aulas - bloco 1

Sintaxe

Os comandos terminam com ;

Case sensitive

Em todo o programa existe o corpo:

main(){

}

Page 28: Estruturas de dados   aulas - bloco 1

Declaração de variáveis

[tipo] nome da variável {inicialização}

Ex:

int x;char teste = 'a';

Page 29: Estruturas de dados   aulas - bloco 1
Page 30: Estruturas de dados   aulas - bloco 1

Tipos escalares

Char Caractere

Int Inteiro (±215)

Float Decimal ±3.4 x 238

Page 31: Estruturas de dados   aulas - bloco 1

Operadores aritméticos

X = 5;

X = X + 10;

Y = Y – 1;

Z = X * Y;

A = B/C;

A = 2^3 (2 ELEVADO A 3)

Page 32: Estruturas de dados   aulas - bloco 1

Operadores relacionais

> maior que >= maior ou igual < menor <= menor ou igual== igual!= diferente

Page 33: Estruturas de dados   aulas - bloco 1

Operadores lógicos

&& e|| ou! não

Page 34: Estruturas de dados   aulas - bloco 1

Comandos de I/O

printf(“olá”); /* Exibe texto na tela */

Para exibição de variáveis, deve-se informar o tipo:

main() {char l = 'x';printf(“A letra eh %c”, l);

}

ResultadoA letra eh x

Page 35: Estruturas de dados   aulas - bloco 1

Comandos de I/O - printf\n nova linha \" aspas \\ barra

%c caractere simples%d decimal%e notação científica%f ponto flutuante%i inteiro%s cadeia de caracteres%u decimal sem sinal

Page 36: Estruturas de dados   aulas - bloco 1

Comandos de I/O - printfmain() {

char l = 'x';printf(“A letra eh

%c\n----------\n\”Fim\”\n----------”, l);}

Resultado:A letra eh x----------“Fim”----------

Page 37: Estruturas de dados   aulas - bloco 1

Comandos de I/O - printfmain() {

float x = 10;printf(“valor de x %e\n”, l);

}

Resultado:valor de x: 1.000000e+001

Page 38: Estruturas de dados   aulas - bloco 1

Comandos de I/O - printfExercícios

1) Crie um programa em C que defina duas variáveis, some seus valores e exiba o resultado na tela

Page 39: Estruturas de dados   aulas - bloco 1

Comandos de I/O - scanfmain() {

char s;printf (“Digite um caractere\n”);scanf(“%c”, &s);printf(“%c”, s);

}

Page 40: Estruturas de dados   aulas - bloco 1

Comandos de I/O - scanfExercícios

1) Crie um programa em C que aguarde a digitação de 3 números e exiba a média deles na tela;

Page 41: Estruturas de dados   aulas - bloco 1

UNDB

ESTRUTURAS DE DADOS

Prof. Alessandro Gonç[email protected]