Estruturas de Dados Arrays Unidimensionais Prof Csar Frana





![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](https://slidetodoc.com/presentation_image_h2/47641046c7d4c5085ee65c632815758c/image-6.jpg)
![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};](https://slidetodoc.com/presentation_image_h2/47641046c7d4c5085ee65c632815758c/image-7.jpg)
![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]](https://slidetodoc.com/presentation_image_h2/47641046c7d4c5085ee65c632815758c/image-8.jpg)



![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] ==](https://slidetodoc.com/presentation_image_h2/47641046c7d4c5085ee65c632815758c/image-12.jpg)
![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 =](https://slidetodoc.com/presentation_image_h2/47641046c7d4c5085ee65c632815758c/image-13.jpg)
![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](https://slidetodoc.com/presentation_image_h2/47641046c7d4c5085ee65c632815758c/image-14.jpg)

- Slides: 15
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 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
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 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 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}; 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] = 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 é 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 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
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 = 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 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 e Letras de Caruaru 15















