TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula 6

16
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula 6 1 02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

description

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula 6. Agenda. Matrizes Unidimensionais Multidimensionais Declaração de Vetores. Vetores. Dados Homogêneos Uma estrutura de dados, que utiliza somente um tipo de dado, em sua - PowerPoint PPT Presentation

Transcript of TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula 6

Page 1: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

1

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

LINGUAGEM DE PROGRAMAÇÃO I

Aula 6

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 2: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

2

AgendaMatrizes

UnidimensionaisMultidimensionaisDeclaração de Vetores

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 3: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Vetores

Dados HomogêneosUma estrutura de dados, que utiliza somente um tipo de dado, em sua Definição é conhecida como dados homogêneos. Variáveis compostas homogêneas correspondem a posições de memória, identificadas por um mesmo nome, individualizado por índices e cujo conteúdo é composto do mesmo tipo. Sendo os vetores (também conhecidos como estruturas de dados unidimensionais) e as matrizes (estruturas de dados bidimensionais) os representantes dos dados homogêneos

305/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 4: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Vetores

Vetor - O vetor é uma estrutura de dados linear que necessita de somente um índice para que seus elementos sejam endereçados.

Usado para armazenar lista de valores do mesmo tipo. Cada célula armazena somente um valor de dados do vetor

tipo. Cada célula tem seu próprio endereço ou indice. Características principais

Alocação estática, Estrutura homogênea, alocação seqüencial

405/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 5: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Vetores Inserção/Exclusão

Realocação dos elementosPosição de memória não liberadaEx : int nota [ 5 ]nota [1]=9.5; nota[2]=7.4 .........

505/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 6: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Matriz Uma matriz é um arranjo bidimensional ou multidimensional de alocação

estática e seqüencial. A matriz é uma estrutura de dados que necessita de um índice para referenciar a linha e outro para referenciar a coluna para que seus elementos sejam endereçados.

Ex. Char letras[3][6]

605/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 7: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Matriz Funções para alocação de memória

Na linguagem C, a alocação dinâmica de memória pode ser realizada com apenas quatro chamadas a funções:

void * malloc(int qty_bytes_alloc);void * calloc(int qty, int size);void * realloc(void * pointer, int new_size);free( void * pointer);

705/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 8: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Uso de Memória em C Funções para alocação de memória

É a função malloc que realiza a alocação de memória. Deve-se informar para a função a quantidade de bytes para alocação. A função irá retornar, se existir memória suifciente, um endereço que deve ser colocado em uma variável do tipo ponteiro.Como a função retorna um ponteiro para o tipo void, deve-se utilizar o typecast, transformando este endereço para o tipo de ponteiro desejado.

805/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 9: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Uso de Memória em C Funções para alocação de memória

calloc - Em vez de se alocar uma quantidade de bytes através da função malloc, pode-se usar a função calloc e especificar a quantidade de bloco de um determinado tamanho. Funcionalmente a alocação irá ocorrer de maneira idêntica. A única diferença entre o malloc e o calloc é que a última função, além de alocar o espaço, também inicializa o mesmo com zeros.

905/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 10: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Uso de Memória em C Funções para alocação de memória Função realloc

Às vezes é necessário expandir uma área alocada. Para isto deve-se usar a função realloc. Deve-se passar para ela o ponteiro retornado pelo malloc e aindicação do novo tamanho. A realocação de memória pode resultar na troca de blocos na memória.

1005/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 11: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Uso de Memória em C Funções para alocação de memória Função free - Quando não se deseja mais uma área

alocada, deve-se liberá-la através da função free. Deve ser passado para a função o endereço, que se deseja liberar, que foi devolvido quando a alocação da memória ocorreu.

1105/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 12: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Declaração de Vetores Ocorre da mesma forma que a declaração de uma variavel

simplesTipo nome_variavel[no. De elementos] OU Int notas[4];

Tipo – Tipo de dados de cada um dos elementos do vetor Nome_variavel – Indica o Nome pelo qual o vetor sera chamado. No. De elementos – Valor constante que indica quantos

elementos tem o vetor. Um vetor pode conter elementos de qualquer tipo de ddaos,

mas os elementos são todos do mesmo tipo definido na declaração do vetor.

1205/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 13: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Declaração de Vetores Carga inicial – como as variaveis contem valores aleatorios. É possivel iniciar automaticamente todos os elementos de um

vetor : Tipo var[n] = {valor1,valor2,valor3,...valorn}; Ex. de prog. Para leitura de salarios:

1305/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 14: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Matrizes e vetores Multidimensionais A declaração de um vetor com n dimensões é realizada da

seguinte maneira: Tipo vetor[dim1] [dim2] [...] [dimn] Ex. de vetor para implementar o jogo da velha usando um

vetor de duas dimensões:

Constantes – Nome correspondente a um valor fixo (não se pode alterar ao longo da execução do programa.Const tipo simbolo = valor ou#define simbolo valor

1405/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 15: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

Matrizes e vetores Multidimensionais Diferenças entre const e #define. Uma constante definida com const existe fisicamente em uma

determinada posição de memória. Uma constante definda com #define não existe fisicamente na

memória, sendo seu valor substituido ao longo do programa na fase de pré processamento (antes da compilação)

Const faz parte das palavras reservadas da linguagem C #define é uma diretiva que indica ao pré-processador que o simbolo

que a segue vai ficar com o valor que aparece depois do simbolo, antes de compilar o pré-processdor subtitui o simbolo pelo valor definido.

Constante definida com const fica com o tipo de dado indicado na definição enquanto que se usar #define o tipo resulta da expressão que aparece no componente valor.

Como #define não faz parte da ling. C não precisa de ; no final

1505/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Page 16: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula  6

16

Bibliografia

02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

BIBLIOGRAFIA BÁSICA1 DAMAS, Luís. Linguagem C. 10ª Edição. São Paulo: LTC, 2007.2 FEOFILOFF, P. Algoritmos de Janeiro: Elsevier, 2009.

3MIZRAHI, Victorine Viviane. Treinamento 2ª Edição. São Paulo: Pearson Education, 2008.

4ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi. Fundamentos da Programação de Computadores. 2ª Edição. São Paulo: Pearson Education, 2007.

BIBLIOGRAFIA COMPLEMENTAR

1DASGUPTA, Sanjoy; UMESH, Vazirani, PAPADIMITRIOU Christos, Algoritmos. 1ª Edição. São Paulo: McGraw-Hill, 2009.

2LAUREANO, M. Estrutura de Dados com Algoritmos e C. 1ª Edição. São Paulo: Brasport, 2008.

3PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais – Conceitos e Aplicações. 7ª Edição. São Paulo: Érica, 2008.

4SOUZA, Marco Antonio Furlan et al. Algoritmos e Lógica de Programação. São Paulo: Cengage Learning, 2008.

5ZIVIANI, Nívio. Projeto de Algoritmos com Implementações em Pascal e C. 3ª Edição. São Paulo: Cengage Learning, 2010.

RECURSOS DIDÁTICOS

1 TV/VÍDEO/DVD 4 LABORATÓRIO – Software “Turbo C” ou “Dev C++”

2 DATASHOW 5 Aula expositiva em laboratório3 RETRO-PROJETOR 6 Exercícios em laboratório