SlideShare uma empresa Scribd logo
3.
3.1

Arrays

(o

nome

mais

aproximado

em

português

é

conjunto de

variáveis, do mesmo tipo, indexadas)

Na linguagem de programação, os arrays podem ser considerados como as
estruturas de dados mais simples.
São variáveis, identificados por um nome, que contêm um conjunto de
elementos do mesmo tipo (e geralmente do mesmo tamanho). Estes são acessíveis
através do respectivo nome e da variável de índice correspondente à sua posição
no array.
Os arrays simplificam a utilização de muitas variáveis do mesmo tipo a
guardar em memória, com designações diferentes, agrupando-as numa só variável.
Entre as suas limitações, a mais notável é o facto de ter um tamanho fixo:
a dimensão é determinada no momento em que é criada, e não pode ser alterada
mais tarde.

Os arrays podem ter mais do que uma dimensão. Os mais utilizados são os
arrays unidimensionais (vectores) e os arrays bidimensionais (matrizes).

3.2

Vectores

Um vector (array unidimensional) é uma estrutura de dados que armazena uma
sequência de objectos, todos do mesmo tipo. Têm uma dimensão, utilizando, por
isso, apenas uma variável de índice para o acesso aos elementos.
Exemplo:

Legenda: o quadro acima apresenta o exemplo do vector nome que guarda, neste
caso, quatro valores, correspondendo a quatro nomes. Para tal, é utilizado um
índice (variável n) para aceder a cada um dos elementos do vector (nome[n]).

3.2.1 Operações com vectores
A declaração de vectores é feita na parte declarativa do programa, em
Pascal.

Sintaxe: para declarar um vector é utilizada a palavra Var, seguida do
nome da variável (nome), a seguir o tipo de variável (array) o intervalo dos
seus elementos ou índices ([1..n]) e o tipo de dado dos elementos do vector (of
<tipo de dado>).
Exemplo: é declarada uma variável com o nome km, do tipo array e com o
intervalo de índices de 1 a 10, cujos dados são do tipo real.
Sintaxe das instruções de leitura, de escrita e de atribuição de um vector:

3.2.2 Algoritmos de Ordenação
Os algoritmos de ordenação têm por finalidade organizar sequências de
elementos, do mesmo tipo, por ordem crescente ou decrescente dos seus valores.
Na maioria das vezes, estes algoritmos são criados para serem aplicados aos
elementos de um array, uma vez que, como já foi dito, este tipo de dados permite
guardar, numa mesma variável, um conjunto de elementos do mesmo tipo.
Existem inúmeros algoritmos de ordenação com maior ou menor grau de
dificuldade de implementação, de utilização da memória, entre outros aspectos.
Neste trabalho, vamos abordar os algoritmos de ordenação por: inserção
(Insertion Sort), selecção (Selection Sort) e bolha (Bubble Sort).
O algoritmo de ordenação por inserção (Insertion Sort) assemelha-se ao
processo de organização das cartas existentes na mão de um jogador.
Permite
ordenar os elementos de um vector, percorrendo-os da esquerda para a direita,
comparando-os dois a dois. Numa ordenação crescente, sempre que o elemento da
direita for menor que o anterior, irá,
por comparações sucessivas, ser
posicionado mais à esquerda na ordem correcta.
O algoritmo de ordenação por selecção (Selection Sort) permite ordenar os
elementos de um vector, realizando passagens sucessivas nos elementos, para
identificar o valor mínimo ou
máximo em cada uma delas.

O algoritmo de ordenação por bolha (Bubble Sort) permite ordenar os
elementos de um vector, percorrendo os seus valores da direita para a esquerda,
comparando-os com os das posições adjacentes. Neste processo de ordenação, é
sempre encontrado o valor mais baixo em cada passagem e colocado na posição mais
à esquerda possível de forma ordenada. Esta ordenação é obtida por comparação
dois a dois entre elementos adjacentes, ainda não ordenados, efectuando permutas
de posição sucessivas sempre que o valor da direita for menor que o da esquerda.
3.2.3 Algoritmos de pesquisa
Os algoritmos de pesquisa permitem determinar se um elemento existe num
vector e, caso exista, podem indicar a posição deste. Este tipo de algoritmos
pode ser aplicado em vectores desordenados ou ordenados e com elementos
repetidos (ou não).
Quando se aplica a um vector com elementos repetidos, pode-se efectuar a
pesquisa de forma a obter apenas a posição do primeiro elemento, apenas a
posição do último elemento ou a todas as posições em que o elemento repetido se
encontra. De seguida, abordam-se os algoritmos de pesquisa sequencial e de
pesquisa binária.
O algoritmo de pesquisa sequencial percorre todos os elementos de um
vector (da esquerda para a direita ou da direita para a esquerda). Esta pesquisa
termina quando se encontra o elemento ou, caso contrário, percorre todos os
elementos do vector.

O algoritmo de pesquisa binária permite efectuar a pesquisa de um elemento
nos elementos de um vector com ou sem elementos repetidos, obrigatoriamente
ordenados.
Neste processo de pesquisa são efectuadas divisões inteiras sucessivas por
dois (pesquisa binária) no número de elementos do vector, encontrando-se, desta
forma, a posição do elemento do meio. Este elemento vai ser comparado com o
elemento a pesquisar. Considerando que o vector está ordenado por ordem
crescente, dará origem a uma de três situações:
1. se o elemento do meio for igual ao elemento a procurar, a pesquisa
termina;
2. se o elemento do meio for menor que o elemento a procurar, a
pesquisa continua, repetindo-se o processo nos elementos da metade
direita do vector;
3. em último caso, se o elemento do meio for maior que o elemento a
procurar, a pesquisa continua, repetindo-se o processo nos elementos
da metade esquerda do vector.
Bibliografia
FONSECA, Dalila; PACHECO, Deolinda; MARQUES, Fernando; SOARES, Ricardo.
Aplicações Informáticas B 12º Ano. 1ª edição. Porto: Porto Editora, 2013;
http://pt.wikipedia.org/wiki/Array;
http://www.inf.unibz.it/~calvanese/teaching/ip/lecturenotes/uni12/node2.html;
http://www.ime.usp.br/~pf/algoritmos/aulas/array.html;
http://www.dicasdeprogramacao.com.br/o-que-sao-vetores-e-matrizes-arrays/;
http://www.cise.ufl.edu/~mssz/DatStrucAlg/DSAintro.html;
http://www.arnerobotics.com.br/eletronica/metodos_pesquisa_ordenacao.htm.

Mais conteúdo relacionado

Destaque

Medicion
MedicionMedicion
Medicion
PalomaGalicia22
 
Powerpoint bergen2014
Powerpoint bergen2014Powerpoint bergen2014
Powerpoint bergen2014
annewiegand
 
quemaduras, traumas y tanalogia
quemaduras, traumas y tanalogiaquemaduras, traumas y tanalogia
quemaduras, traumas y tanalogia
Luisantonioa20009414
 
Jai hanuman hardware & electrical
Jai hanuman hardware & electricalJai hanuman hardware & electrical
Jai hanuman hardware & electricalJayHanumanHardware
 
Diana terminado reflex 2
Diana terminado reflex 2Diana terminado reflex 2
Diana terminado reflex 2
Danna Rompiendo Cadenas
 
Seeberger
Seeberger Seeberger
Seeberger
Cisco Case Studies
 
Maledicência
MaledicênciaMaledicência
Maledicência
Victor Passos
 
Promoting a growth mind set classroom ppt v2 (1)
Promoting a growth mind set classroom ppt v2 (1)Promoting a growth mind set classroom ppt v2 (1)
Promoting a growth mind set classroom ppt v2 (1)
brucec10
 
Nacionalidad y ciudadanía
Nacionalidad y ciudadaníaNacionalidad y ciudadanía
Nacionalidad y ciudadanía
Silvia Aravena
 
Osteoartrosis - Reumatología
Osteoartrosis - ReumatologíaOsteoartrosis - Reumatología
Osteoartrosis - Reumatología
Eduardo Iturbide
 
Jonathan Farber PhD: Ways To Reduce Stress
Jonathan Farber PhD: Ways To Reduce StressJonathan Farber PhD: Ways To Reduce Stress
Jonathan Farber PhD: Ways To Reduce Stress
Jonathan Farber, Ph.D.
 
Dream Life India - Business Presentation
Dream Life India - Business PresentationDream Life India - Business Presentation
Dream Life India - Business Presentation
Ramesh Kumar
 

Destaque (13)

Medicion
MedicionMedicion
Medicion
 
Powerpoint bergen2014
Powerpoint bergen2014Powerpoint bergen2014
Powerpoint bergen2014
 
quemaduras, traumas y tanalogia
quemaduras, traumas y tanalogiaquemaduras, traumas y tanalogia
quemaduras, traumas y tanalogia
 
Jai hanuman hardware & electrical
Jai hanuman hardware & electricalJai hanuman hardware & electrical
Jai hanuman hardware & electrical
 
ĢMO – mīti un fakti
ĢMO – mīti un faktiĢMO – mīti un fakti
ĢMO – mīti un fakti
 
Diana terminado reflex 2
Diana terminado reflex 2Diana terminado reflex 2
Diana terminado reflex 2
 
Seeberger
Seeberger Seeberger
Seeberger
 
Maledicência
MaledicênciaMaledicência
Maledicência
 
Promoting a growth mind set classroom ppt v2 (1)
Promoting a growth mind set classroom ppt v2 (1)Promoting a growth mind set classroom ppt v2 (1)
Promoting a growth mind set classroom ppt v2 (1)
 
Nacionalidad y ciudadanía
Nacionalidad y ciudadaníaNacionalidad y ciudadanía
Nacionalidad y ciudadanía
 
Osteoartrosis - Reumatología
Osteoartrosis - ReumatologíaOsteoartrosis - Reumatología
Osteoartrosis - Reumatología
 
Jonathan Farber PhD: Ways To Reduce Stress
Jonathan Farber PhD: Ways To Reduce StressJonathan Farber PhD: Ways To Reduce Stress
Jonathan Farber PhD: Ways To Reduce Stress
 
Dream Life India - Business Presentation
Dream Life India - Business PresentationDream Life India - Business Presentation
Dream Life India - Business Presentation
 

Semelhante a Arrays e Vetores

Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e MatrizesAlgoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
Professor Samuel Ribeiro
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
Gislene Carvalho
 
4234 mysql
4234 mysql4234 mysql
4234 mysqlherbam
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
Arthur Emanuel
 
Arrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programaçãoArrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programação
Jaime Martins
 
Aula Vetores - 08-05-2023.pdf
Aula Vetores - 08-05-2023.pdfAula Vetores - 08-05-2023.pdf
Aula Vetores - 08-05-2023.pdf
Ovidio Marques Antoninho
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmos
Sandro Arpi
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresPedro Valente
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleçõesMaurício Linhares
 
Estruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programaçãoEstruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programação
Everson Wolf
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
Arthur Emanuel
 

Semelhante a Arrays e Vetores (18)

Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e MatrizesAlgoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
 
Cap09
Cap09Cap09
Cap09
 
Cap09
Cap09Cap09
Cap09
 
Cap09
Cap09Cap09
Cap09
 
Trabalho e agrupamento.pdf
Trabalho e agrupamento.pdfTrabalho e agrupamento.pdf
Trabalho e agrupamento.pdf
 
Trabalho e agrupamento.pdf
Trabalho e agrupamento.pdfTrabalho e agrupamento.pdf
Trabalho e agrupamento.pdf
 
Trabalho e agrupamento.pdf
Trabalho e agrupamento.pdfTrabalho e agrupamento.pdf
Trabalho e agrupamento.pdf
 
Arrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programaçãoArrays / Vetores / Matrizes em programação
Arrays / Vetores / Matrizes em programação
 
2 referencial teorico
2 referencial teorico2 referencial teorico
2 referencial teorico
 
Aula Vetores - 08-05-2023.pdf
Aula Vetores - 08-05-2023.pdfAula Vetores - 08-05-2023.pdf
Aula Vetores - 08-05-2023.pdf
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmos
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetores
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
 
Estruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programaçãoEstruturas de dados e técnicas de programação
Estruturas de dados e técnicas de programação
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
 

Arrays e Vetores

  • 1. 3. 3.1 Arrays (o nome mais aproximado em português é conjunto de variáveis, do mesmo tipo, indexadas) Na linguagem de programação, os arrays podem ser considerados como as estruturas de dados mais simples. São variáveis, identificados por um nome, que contêm um conjunto de elementos do mesmo tipo (e geralmente do mesmo tamanho). Estes são acessíveis através do respectivo nome e da variável de índice correspondente à sua posição no array. Os arrays simplificam a utilização de muitas variáveis do mesmo tipo a guardar em memória, com designações diferentes, agrupando-as numa só variável. Entre as suas limitações, a mais notável é o facto de ter um tamanho fixo: a dimensão é determinada no momento em que é criada, e não pode ser alterada mais tarde. Os arrays podem ter mais do que uma dimensão. Os mais utilizados são os arrays unidimensionais (vectores) e os arrays bidimensionais (matrizes). 3.2 Vectores Um vector (array unidimensional) é uma estrutura de dados que armazena uma sequência de objectos, todos do mesmo tipo. Têm uma dimensão, utilizando, por isso, apenas uma variável de índice para o acesso aos elementos. Exemplo: Legenda: o quadro acima apresenta o exemplo do vector nome que guarda, neste caso, quatro valores, correspondendo a quatro nomes. Para tal, é utilizado um
  • 2. índice (variável n) para aceder a cada um dos elementos do vector (nome[n]). 3.2.1 Operações com vectores A declaração de vectores é feita na parte declarativa do programa, em Pascal. Sintaxe: para declarar um vector é utilizada a palavra Var, seguida do nome da variável (nome), a seguir o tipo de variável (array) o intervalo dos seus elementos ou índices ([1..n]) e o tipo de dado dos elementos do vector (of <tipo de dado>). Exemplo: é declarada uma variável com o nome km, do tipo array e com o intervalo de índices de 1 a 10, cujos dados são do tipo real. Sintaxe das instruções de leitura, de escrita e de atribuição de um vector: 3.2.2 Algoritmos de Ordenação Os algoritmos de ordenação têm por finalidade organizar sequências de elementos, do mesmo tipo, por ordem crescente ou decrescente dos seus valores. Na maioria das vezes, estes algoritmos são criados para serem aplicados aos elementos de um array, uma vez que, como já foi dito, este tipo de dados permite guardar, numa mesma variável, um conjunto de elementos do mesmo tipo. Existem inúmeros algoritmos de ordenação com maior ou menor grau de dificuldade de implementação, de utilização da memória, entre outros aspectos. Neste trabalho, vamos abordar os algoritmos de ordenação por: inserção (Insertion Sort), selecção (Selection Sort) e bolha (Bubble Sort). O algoritmo de ordenação por inserção (Insertion Sort) assemelha-se ao processo de organização das cartas existentes na mão de um jogador. Permite ordenar os elementos de um vector, percorrendo-os da esquerda para a direita, comparando-os dois a dois. Numa ordenação crescente, sempre que o elemento da direita for menor que o anterior, irá, por comparações sucessivas, ser posicionado mais à esquerda na ordem correcta.
  • 3. O algoritmo de ordenação por selecção (Selection Sort) permite ordenar os elementos de um vector, realizando passagens sucessivas nos elementos, para identificar o valor mínimo ou máximo em cada uma delas. O algoritmo de ordenação por bolha (Bubble Sort) permite ordenar os elementos de um vector, percorrendo os seus valores da direita para a esquerda, comparando-os com os das posições adjacentes. Neste processo de ordenação, é sempre encontrado o valor mais baixo em cada passagem e colocado na posição mais à esquerda possível de forma ordenada. Esta ordenação é obtida por comparação dois a dois entre elementos adjacentes, ainda não ordenados, efectuando permutas de posição sucessivas sempre que o valor da direita for menor que o da esquerda.
  • 4. 3.2.3 Algoritmos de pesquisa Os algoritmos de pesquisa permitem determinar se um elemento existe num vector e, caso exista, podem indicar a posição deste. Este tipo de algoritmos pode ser aplicado em vectores desordenados ou ordenados e com elementos repetidos (ou não). Quando se aplica a um vector com elementos repetidos, pode-se efectuar a pesquisa de forma a obter apenas a posição do primeiro elemento, apenas a posição do último elemento ou a todas as posições em que o elemento repetido se encontra. De seguida, abordam-se os algoritmos de pesquisa sequencial e de pesquisa binária. O algoritmo de pesquisa sequencial percorre todos os elementos de um vector (da esquerda para a direita ou da direita para a esquerda). Esta pesquisa termina quando se encontra o elemento ou, caso contrário, percorre todos os elementos do vector. O algoritmo de pesquisa binária permite efectuar a pesquisa de um elemento nos elementos de um vector com ou sem elementos repetidos, obrigatoriamente ordenados. Neste processo de pesquisa são efectuadas divisões inteiras sucessivas por dois (pesquisa binária) no número de elementos do vector, encontrando-se, desta forma, a posição do elemento do meio. Este elemento vai ser comparado com o elemento a pesquisar. Considerando que o vector está ordenado por ordem crescente, dará origem a uma de três situações: 1. se o elemento do meio for igual ao elemento a procurar, a pesquisa termina; 2. se o elemento do meio for menor que o elemento a procurar, a pesquisa continua, repetindo-se o processo nos elementos da metade direita do vector; 3. em último caso, se o elemento do meio for maior que o elemento a procurar, a pesquisa continua, repetindo-se o processo nos elementos da metade esquerda do vector.
  • 5. Bibliografia FONSECA, Dalila; PACHECO, Deolinda; MARQUES, Fernando; SOARES, Ricardo. Aplicações Informáticas B 12º Ano. 1ª edição. Porto: Porto Editora, 2013; http://pt.wikipedia.org/wiki/Array; http://www.inf.unibz.it/~calvanese/teaching/ip/lecturenotes/uni12/node2.html; http://www.ime.usp.br/~pf/algoritmos/aulas/array.html; http://www.dicasdeprogramacao.com.br/o-que-sao-vetores-e-matrizes-arrays/; http://www.cise.ufl.edu/~mssz/DatStrucAlg/DSAintro.html; http://www.arnerobotics.com.br/eletronica/metodos_pesquisa_ordenacao.htm.