Estruturas de Dados Arrays Unidimensionais Prof Csar Frana

  • Slides: 15
Download presentation
Estruturas de Dados Arrays Unidimensionais Prof. César França FAFICA - Faculdade de Filosofia, Ciências

Estruturas de Dados Arrays Unidimensionais Prof. César França FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 1

Roteiro • O que são arrays (vetores)? • Operações simples com arrays • Arrays

Roteiro • O que são arrays (vetores)? • Operações simples com arrays • Arrays multidimensionais (matrizes) • Operações simples com matrizes FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 2

ARRAYS FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 3

ARRAYS FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 3

Funcionamento da Memória (I) P a o Á g u a A ç ú

Funcionamento da Memória (I) P a o Á g u a A ç ú c a r F a r i n h a B a t … Pão Água Açúcar Farinha Batata Carne … FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 4

Funcionamento da Memória (II) MSN MS Office Media Player Notepad Internet Explorer Fragmentação de

Funcionamento da Memória (II) MSN MS Office Media Player Notepad Internet Explorer Fragmentação de Memória Processamento FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 5

Arrays Vetores unidimensionais conjunto finito e ordenado de elementos homogêneos. [Tenembaum] Sorteio da Megasena

Arrays Vetores unidimensionais conjunto finito e ordenado de elementos homogêneos. [Tenembaum] Sorteio da Megasena 5 0 1 6 2 `17 23 41 3 57 4 5 0 0 0 6 0 0 1 7 0 0 2 3 0 0 4 1 0 0 5 7 Int (4 B) FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru Int (4 B) 6

Arrays Array Type Instanciação (I) int resultado[6] = {5, 6, 17, 23, 41, 57};

Arrays Array Type Instanciação (I) int resultado[6] = {5, 6, 17, 23, 41, 57}; Array Size lower 0 Array Elements Array Positions resultado 1 2 3 upper 4 5 0 0 0 6 0 0 1 7 0 0 2 3 0 0 4 1 0 0 5 7 FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 7

Arrays Array Type Instanciação (II) index int resultado[6]; resultado[0] = 5; Array Size resultado[1]

Arrays Array Type Instanciação (II) index int resultado[6]; resultado[0] = 5; Array Size resultado[1] = 6; Atribuição simples resultado[2] = 17; resultado[3] = 23; resultado[4] = 41; resultado[5] = 57; index 0 resultado 1 2 3 4 5 0 0 0 6 0 0 1 7 0 0 2 3 0 0 4 1 0 0 5 7 Array Elements FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 8

Arrays Considerações • Array size = upper – lower + 1 • lower sempre

Arrays Considerações • Array size = upper – lower + 1 • lower sempre é 0 • upper e lower não podem mudar • Todos os elementos tem tamanho fixo • Porque não usar N variáveis diferentes? Arrays: Itens armazenados uniformemente na memória, com acesso rápido e direto sob um único identificador Memória x Processamento Memória ? FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 9

Exercícios 1. Criar um array contendo todas as letras do alfabeto. Imprimir o seu

Exercícios 1. Criar um array contendo todas as letras do alfabeto. Imprimir o seu nome na tela usando as letras do array. 2. Criar um array contendo os nomes de todos os alunos que estão presentes na sala. Imprimir na tela os nomes dos alunos que estão sentados ao seu lado. 3. Criar um array de inteiros contendo todos os números de 0 a 100. Imprimir na tela a soma de todos eles. 4. Implemente a função que duplica todos os elementos de um array de inteiros. Imprimir o array na tela antes e depois de executar o laço. FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 10

ARRAYS: OPERAÇÕES SIMPLES FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 11

ARRAYS: OPERAÇÕES SIMPLES FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 11

Expandir char[] salva(char[] agenda, char letra){ int i=0; boolean gravado; while(!gravado){ Agenda if(agenda[i] ==

Expandir char[] salva(char[] agenda, char letra){ int i=0; boolean gravado; while(!gravado){ Agenda if(agenda[i] == null) { agenda[i] = letra; } else { i=i+1; } } return agenda; 0 … … … 3 } FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru B C D … ? char agenda[4]; salva(agenda, ‘a’); salva(agenda, ‘b’); salva(agenda, ‘c’); salva(agenda, ‘d’); salva(agenda, ‘e’); A E 12

Expandir char[] salva(char[] agenda, char nome){ int i=0; boolean gravado; while(!gravado){ int tamanho =

Expandir char[] salva(char[] agenda, char nome){ int i=0; boolean gravado; while(!gravado){ int tamanho = sizeof(agenda); if(i>=tamanho){ int tamanho_novo = 2 * tamanho; char copia[tamanho_novo]; Agenda for(int j = 0; j < tamanho; j++){ copia[j] = agenda[j]; } agenda = copia; 0 … … … } if(agenda[i] == null) { agenda[i] = nome; } else { i=i+1; } 3 A B C D … … } return agenda; … } E … char agenda[4]; salva(agenda, ‘a’); salva(agenda, ‘b’); salva(agenda, ‘c”); salva(agenda, ‘d’); salva(agenda, ‘e’); … 7 FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 13

Exercícios 1. Implementar e testar a função concatenar char[] concatenar(char array 1[], char array

Exercícios 1. Implementar e testar a função concatenar char[] concatenar(char array 1[], char array 2[]) Esta função deve juntar dois arrays em um único array. 2. Implementar e testar a função comparar boolean comparar(char array 1[], char array 2[]) Esta função deve retornar “TRUE” apenas se todos os elementos dois arrays forem idênticos. 3. Implementar e testar a função cortar char[] cortar(char array 1[], int init_pos, int final_pos) Esta função deve retornar um pedaço do array, entre as posições init_pos e final_pos. FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 14

Estruturas de Dados Arrays Unidimensionais Prof. César França FAFICA - Faculdade de Filosofia, Ciências

Estruturas de Dados Arrays Unidimensionais Prof. César França FAFICA - Faculdade de Filosofia, Ciências e Letras de Caruaru 15