Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 07Linguagem de Programação I - UNIGRAN VETORES Nesta aula veremos as estruturas de dados homogêneas, mais conhecidas como vetor ou em inglês (array). É um tipo de variável usada para armazenar vários valores de um mesmo tipo (int, float, char...). Desta forma, eliminamos a criação de várias variáveis, e passamos a manipular apenas uma. Esta estrutura é composta por elementos, onde cada um deles fica em uma posição diferente, e seus valores são armazenados, um a um nessas posições. Vetores trabalham em conjunto com estruturas de repetição, assim é possível percorrer todo o vetor, da primeira à última posição. Esta é maneira mais fácil e indicada de se manipular um vetor, usando- se estruturas de repetição. A primeira posição de um vetor será sempre zero e a última, será o tamanho dele menos um. Nesta aula, veremos os seguintes tipos de arrays: • Array unidimensional • Array multidimensional 131 Linguagem de Programação I - UNIGRAN Objetivos de aprendizagem Ao término desta aula, vocês serão capazes de: • conhecer os tipos de arrays acima propostas; • identificar a melhor tipo de array para cada situação; • aprender a manipular os arrays utilizando estruturas de repetição. Seções de estudo • Seção 1 – Arrays unidimensionais • Seção 2 – Arrays multidimensionais Seção 1 – Array unidirecionais Um array é uma estrutura de dados homogêneos (uma sequencia de vários valores de um mesmo tipo), composta por uma quantidade x de elementos. Desta forma, esses elementos ficam armazenados sequencialmente na memória do computador, e é possível acessá-los por uma única variável que apontará para todos eles. Mesmo utilizando-se apenas uma variável para acessar eles valores, é possível acessá-los individualmente, informando a sua posição. Cada elemento dentro do array fica em uma posição exclusiva, ou seja, não podemos colocar dois elementos em uma mesma posição no array, e se o fizermos, substituiremos o primeiro valor, pelo segundo. Sintaxe: tipo_dos_elementos nome_do_array[número_de_elementos]; O vetor tem seu tamanho defi nido na sua declaração, e não é possível aumentar ou diminuir o tamanho do vetor no decorrer do programa. 132 Linguagem de Programação I - UNIGRAN Vamos entender melhor? Quando criamos um array ou vetor, criamos uma variável que pode armazenar mais de um valor. Como isso é possível? Um vetor tem mais de uma posição, e os valores armazenados ficam nestas posições individuais. Vamos propor um vetor de tamanho 5, este vetor terá as seguintes posições: 0,1,2,3,4. Em cada uma dessas posições poderá ficar armazenado qualquer valor que seja necessário, lembrando que é preciso respeitar o tipo do vetor, se ele for do tipo char nas posições dele poderemos armazenar apenas valores do tipo char. Detalhando a figura acima: • o elemento 2 está na posição 0; • o elemento 5 está na posição 1; • o elemento 7 está na posição 2; • o elemento 9 está na posição 3; • o elemento 10 está na posição 4; • o elemento 12 está na posição 5; • o elemento 13 está na posição 6; • o elemento 15 está na posição 7; • o elemento 16 está na posição 8; • o elemento 19 está na posição 9. Vamos ver alguns exemplos? Exemplo: Criar um vetor de cinco posições de inteiros, e atribuir os valores 10, 20, 30, 40 e 50 em suas posições. FIGURA 7.1 – Ilustração de um vetor de tamanho dez Fonte: criação nossa 133 Linguagem de Programação I - UNIGRAN Neste exemplo que acabamos de ver, os valores do vetor não são informados pelo usuário, eles são atribuídos ao vetor na sua declaração. O programa foi feito desta maneira, para que seja possível entender como um vetor pode ser inicializado. Agora vamos ver um exemplo em que o usuário informa os valores a serem armazenados no vetor. Exemplo: Criar um programa que contenha um vetor de 10 posições e que o usuário irá informar os seus valores. Depois de informados os valores, mostrar na tela de saída, os valores informados. FIGURA 7.2 - Utilização do array Fonte: criação nossa FIGURA 7.3 – Tela de saída do programa representado pela fi gura 7.2 Fonte: criação nossa 134 Linguagem de Programação I - UNIGRAN A tela de saída do programa acima pode ser vista através da figura abaixo, com os seguintes valores informados: 1,2,3,4,5,6,7,8,9 e 10 Vamos ver agora um exemplo com variável do tipo char. Exemplo: Criar um programa para ler 15 caracteres que deverão ser armazenados em um vetor. E ao final mostrar esses caracteres separados por vírgula. FIGURA 7.4 - Utilização do array Fonte: criação nossa FIGURA 7.5 – Tela de saída do programa representado pela fi gura 7.4 Fonte: criação nossa 135 Linguagem de Programação I - UNIGRAN Podemos ver a saída do programa apresentado na figura 7.6, através da figura abaixo, com os seguintes valores de entrada: a, b, c, d, e, f, g, h, i, j, k, l, m, n e o Note que o tipo char, nada mais é do que um vetor, assim como em um vetor de inteiros, podemos manipular os elementos do vetor de char individualmente. Vermos como manipular strings (ou vetor de char) mais a frente. FIGURA 7.6 - Utilização de um array de char Fonte: criação nossa FIGURA 7.7 – Tela de saída do programa representado pela fi gura 7.6 Fonte: criação nossa 136 Linguagem de Programação I - UNIGRAN Seção 2 – Array multidimensional Até agora vimos arrays unidimensionais, que simplificando, podemos dizer que possuem apenas uma linha. Os dados ficam lado a lado, armazenados em uma mesma dimensão (linha). Agora veremos os arrays multidimensionais, que são vetores com mais de uma dimensão, ou seja, mais de uma linha. Então, para facilitar o entendimento, vou dizer que uma matriz é uma tabela, que possui duas ou mais linhas que usadas para referenciar estas dimensões. As mesmas regras que foram vistas para os arrays aplicam-se a matrizes também. Portanto, quando definimos uma matriz de inteiros não podemos armazenar nela valores de outro tipo, como float, por exemplo. Da mesma forma que informamos o número de elementos do vetor também é necessário informar o número de elementos de uma matriz. Uma matriz pode ser representada da seguinte forma: Sintaxe: tipo nome_da_matriz[número_de_linhas][número_de_colunas] Explicando melhor: • tipo -> é o tipo de informação que a matriz vai armazenar (float, int, char) • nome_da_matriz -> o nome é dado para que seja possível acessar os dados à ela atribuídos • número_de_linhas -> como é uma tabela, então podemos ter mais de uma linha. Assim, na sua declaração, é preciso informar o número de linhas que a matriz possui, assim como é preciso informar o número de colunas. FIGURA 7.8 – Ilustração de matriz de três por três Fonte: criação nossa 137 Linguagem de Programação I - UNIGRAN • número_de_colunas -> é o número de colunas que a matriz possui, assim como em um array unidimensional, em uma matriz também é necessário informar o número de colunas. Vamos ver um exemplo? Exemplo: Criar um programa que contenha uma matriz de três por três de inteiros. Ler os valores para a matriz e mostrar os valores que foram informados. A tela de saída do programa visto na figura 7.9 pode ser vista na figura 7.10, com os seguintes valores de entrada: 1,2,3,4,5,6,7,8 e 9 FIGURA 7.9 - Utilização de uma matriz de três por três de inteiros Fonte: criação nossa 138 Linguagem de Programação I - UNIGRAN Sobre o exemplo apresentado: Como podemos ver, agora, além de uma variável para contar o número de posições que o vetor tem (colunas), precisamos também de uma variável para contar o número de linhas. Essas variáveis servem como um índice, utilizado para determinar em qual posição o elemento está. Não é mais possível acessar um elemento passando apenas a coluna em que ele se encontra, é preciso também, informar a linhaem que o elemento está. Note que precisamos criar um for aninhado (um for dentro do outro for), para que possamos percorrer todas as linhas e colunas da matriz. O primeiro for (aquele em que a variável de controle é “i”), é criado para que seja possível acessar todas as linhas da matriz, e o segundo (a variável de controle é “j”) para acessar todas as suas colunas. Atribuindo valores à matriz: Assim como com vetores, podemos inicializar uma matriz informando os valores dos elementos em uma única instrução. Abaixo são apresentados vários métodos de inicializar a matriz. int vt[3][3] = {1,2,3,4,5,6,7,8,9} -> nesse caso, estamos atribuindo os valores que estão entre chaves à todos os elementos da matriz, seguindo a ordem linear, partindo de 0 até 2, que é o último elemento. int vt[3][3] = {0} -> nesse caso, estamos atribuindo o valor zero a todas as posições da matriz, quer dizer que todos os elementos receberão o valor zero. FIGURA 7.10 – Tela de saída do programa representado pela fi gura 7.9 Fonte: criação nossa 139 Linguagem de Programação I - UNIGRAN int vt[3][3] = {{1,2,3},{4,5,6},{7,8,9}} -> nesse caso estamos atribuindo valores individuais para cada um dos elemento da matriz. Seria o mesmo que vt[0][0] = 1; vt[0][1] = 2; vt[0,2] =3; vt[1,0] = 4 e assim por diante. Vamos ver mais um exemplo? Exemplo: Criar um programa que contenha uma matriz de cinco por cinco de inteiros, leia os valores dos elementos desta matriz. Mostre na tela de saída do programa a multiplicação da primeira coluna pela última linha da matriz. FIGURA 7.11 - Utilização de uma matriz de cinco por cinco de inteiros Fonte: criação nossa 140 Linguagem de Programação I - UNIGRAN Observe que para multiplicar a primeira coluna pela última linha, precisamos de apenas um for, isto porque, não é preciso percorrer todos os elementos da matriz, precisamos apenas dos elementos que se encontram na primeira coluna (definida por zero) e na última linha (definida por quatro). Assim utilizamos o “i” apenas para movimentar para o lado e para baixo, isso simplificou a manipulação dos elementos, e apenas mudando o “i” de lugar conseguimos ir para a próxima linha e para a próxima coluna. Retomando a conversa inicial • Seção 1 – Arrays unidimensionais Vimos que o arrays unidimensionais são capazes de armazenar/manipular vários valores em uma única variável, modificando-se apenas a posição em que os elementos estão dispostos. Isso diminui a necessidade da criação de inúmeras variáveis que tem uma mesma finalidade no programa. • Seção 2 – Arrays multidimensionais Muito semelhante ao array visto anteriormente, modifica-se unicamente pela utilização de várias linhas (dimensões) que o array possui. Também é utilizado para eliminar a criação de várias variáveis que são criadas para um mesmo fim, agrupando as informações nelas contidas em uma única estrutura – matriz. FIGURA 7.12 – Tela de saída do programa representado pela fi gura 7.11 Fonte: criação nossa Vamos relembrar um pouco do que vimos na aula 7? 141 Linguagem de Programação I - UNIGRAN Sugestões de leituras e sites Leituras Leia o capítulo 3 do livro: Treinamento em linguagem C. Sites • http://www.metropoledigital.ufrn.br/aulas/disciplinas/prog_est/aula_06.html Autoavaliação Veja se aprendeu a Aula 05 respondendo ao questionário auto-avaliativo. Depois confi ra o resultado das respostas, que está disponível na ferramenta Arquivos da plataforma. 1. Em um array unidimensional podemos ter várias linhas e várias colunas. ( ) Verdadeiro ( ) Falso 2. O tamanho do array pode ser modifi cado, quando surgir a necessidade para tal. ( ) Verdadeiro ( ) Falso 3. Em um array todos os valores nele armazenados são de um mesmo tipo. ( ) Verdadeiro ( ) Falso 4. Podemos manipular individualmente cada um dos elementos de uma matriz. ( ) Verdadeiro ( ) Falso 5. Os valores da matriz estão armazenados de maneira sequencial. ( ) Verdadeiro ( ) Falso 6. Somente com um laço é possível percorrer todos os elementos de uma matriz. ( ) Verdadeiro ( ) Falso 7. Matrizes e vetores são utilizado afi m de diminuir a criação de variáveis de um mesmo tipo e criadas para um mesmo fi m ( ) Verdadeiro ( ) Falso 142
Compartilhar