Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de...

25
Matrizes Unidimensionais

Transcript of Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de...

Page 1: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Matrizes Unidimensionais

Page 2: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Definição

Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo

Para referir-se a uma localização ou elemento particular no array, são necessários o nome do array e o número da posição

Page 3: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Declaração de Arrays

Arrays possuem um número fixo de variáveis do mesmo tipo

A declaração e a alocação de arrays são operações distintas (em alguns casos)

Exemplos de declaração:Inteiro[] contadoresReal[] resultadosTexto[] nomes tipo[] identificador

Page 4: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Alocação

Sintaxe:

tipo[tamanho]; Exemplos:

contadores = Inteiro[10]

Resultados = Real[15]

nomes = Texto[10]

Page 5: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Organização

0 1 2 3 4 5 6 7 8 9

contadores

Cada caixa é uma variável do tipo Inteiro Os números acima são os índices das

variáveis Um array de tamanho 10 tem índices de 0 a

9 (em grande parte dos casos)

Page 6: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Índices de Arrays

Arrays podem conter qualquer tipo de valor Índices são usados para acessar valores

específicos do array Exemplos:

contadores[0] /* primeira variável em contadores*/contadores[1] /* segunda variável em contadores*/contadores[9] /* última variável em contadores */contadores[10] /* erro */

Page 7: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Expressões como índices

Índices de array não precisam ser constantes Índices de Array necessitam ser expressões

inteiras que resultam em um índice válido para o array

Exemplos:contadores[i]

contadores[2*i]

contadores[I/2]

Page 8: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Inicialização

Arrays podem ser inicializados por uma lista de elementos dados

Se a lista possui n elementos os índices serão de 0 a n – 1

Exemplo:Inteiro[] primos = {2, 3, 5, 7, 11, 13, 17, 19}

Page 9: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Inicializando Arrays de Texto

Texto[] NAME = { “Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”}

Page 10: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.
Page 11: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Repetição e Processamento

Inicializa contadores com 0, 10, 20, … , 90Inteiro i=0para(i < 10; i=i+1) faça contadores[i] = i * 10fimpara

Imprime o conteúdoInteiro i=0para (i < 10;i=i+1) faça imprimir contadores[i]fimpara

Page 12: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Capacidade

Arrays não podem crescer uma vez que eles foram alocados

Você pode alocar mais espaço do que você acredita que vai precisar

Se você escolher um valor baixo, ainda ficará sem espaço

Não é necessário usar todos os elementos de um array (mas a memória total de um computador não é infinita)

Page 13: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Busca

Esta repetição termina logo que encontra o valor 90 armazenado em resuladosLógico found = falso

Inteiro i = 0

Enquanto (i < size & !found) faça

se (resultados[i] == x)então

found = verdadeiro

senão

i=i+1

fimse

fimenquanto

Page 14: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Busca

Quando procurar por valores inteiros comparações exatas podem ser feitas

(A[i] == key) Comparar dois valores Reais para igualdade

nem sempre será uma operação correta Um modo melhor para Reais é ((A[i]–key) < epsilon) Epsilon deve ser um valor pequeno aceitável

para a aplicação

Page 15: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Processando Arrays simultaneamente Esta repetição conta quantos de estudantes

melhoraram o rendimento no segundo exameinteiro melhorou = 0

Inteiro i=0

para (i < size;i=i+1) faça

se (grades1[i] < grades2[i]) então

melhorou = melhorou+1

fimse

fimpara

Page 16: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.
Page 17: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Ordenação por seleção

Encontrar o menor elemento entre A[0]..A[n-1] e chamá-lo A[min]

trocar A[0] e A[min] fazendo com que A[0] contenha o menor elemento e A[1]..A[n-1] sejam não ordenados

Agora, encontrar o menor elemento entre A[1]..A[n-1] e chamá-lo A[min]

trocar A[1] e A[min] de modo que A[1] contenha o segundo menor elemento A[2]..A[n-1] sejam não ordenados

Faça de maneira similar para o restante dos elementos

Page 18: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

SelectionSort – parte 1

Algoritmo selectionSort () Início /*inserir a criação/leitura do array A*/ Inteiro i=0 para ( i < size; i=i+1) faça inteiro j=i+1 inteiro min = i para(j < size; j=j+1)faça se (A[j] < A[min]) então min =j fimse fimpara

Page 19: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

SelectionSort – parte 2

Real temp = A[i]

A[i] = A[min]

A[min] = temp

fimpara

fim

Page 20: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Bubble SortProcedimento bubbleSort (Inteiro[] &vet)Início Inteiro i=0 para ( i < size; i=i+1) faça inteiro j=i+1 para(j < size; j=j+1)faça se (vet[j] < vet[i]) então inteiro aux =vet[i] vet[i]=vet[j] vet[j]=aux fimse fimpara fimparafim

Page 21: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Arrays multidimensionais

Arrays podem ter mais do que uma dimensão

As chamadas matrizes podem ser vistas como arrays de arrays

Sintaxe

Inteiro[][] matriz = Inteiro[10][10]

Page 22: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Exercício 1

Completar o algoritmo selectioSort com a parte que está faltando

Page 23: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Exercício 2

Faça um algoritmo que leia 20 números entre 10 e 100, inclusive. O algoritmo deve imprimir o número somente se ele não for uma duplicata de um número lido anteriormente

Page 24: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Exercício 3

Utilize uma matriz bidimensional para resolver o seguinte problema: Uma empresa tem 4 vendedores que vendem 5 produtos. Uma vez por dia, cada vendedor entrega uma nota de cada tipo de produto diferente vendido. Cada nota contém 1) número do vendedor, 2) número do produto e 3) valor total vendido deste produto em reais.

Page 25: Matrizes Unidimensionais. Definição Matrizes unidimensionais ou arrays são áreas contíguas de memória que possuem o mesmo nome e o mesmo tipo Para referir-se.

Exercício 3

Faça um programa que leia o total de notas para cada produto para cada vendedor e calcule a comissão de cada vendedor. A comissão é calculada pela seguinte equação:

Comissão = 10%*(totalProd1)+ 20%*(totalProd2)+ 10%*(totalProd3)+ 20%*(totalProd4)+ 10%*(totalProd5)