Buscar

Apostila LPA 4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Paulista (UNIP)
Disciplina: Lógica de Programação e Algoritmo (LPA)
Prof. MSc. Vladimir Camelo
São Paulo, 2017
Vetores e Matrizes
VETORES
Pode-se definir um Vetor como uma estrutura de dados homogênea UNIDIMENSIONAL (1 linha com várias colunas), ou seja, uma estrutura em que todos os dados armazenados devem ser obrigatoriamente do mesmo tipo. Esta estrutura armazena de forma contigua em memória as posições que possibilitem o armazenamento dos dados. Cada posição é identifica por um índice que possibilita a localização dos dados armazenados nesta estrutura.
Escrita de um vetor em algoritmo:
Var
	nomeVetor : vetor [<início>..<quantidade_de_posições>] de <tipo_de_vetor>
Ex.:
	nomeVetor: vetor [1..10] de inteiro
A forma de armazenamento de um elemento em um vetor é dada a seguir:
nomeVetor [indíce] <- elemento ou nomeVetor [indíce] := elemento
	
Ex.: 
	nomeVetor[0] <- 10
	nomeVetor[1] <- 10
	nomeVetor[2] <- 10
	nomeVetor[3] <- 10
Até que sejam inseridos todos os elemento nas posições do vetor. Utilizando uma estrutura de repetição a forma utilizada para a inserção dos elementos é dada a seguir:
para i <- 0 ate 9
	nomeVetor[i] <- valor
fimpara
ou com base na declaração acima
para i <- 1 ate 10
	nomeVetor[i] <- valor
fimpara
Para que seja lido uma informação do usuário e armazenada em um vetor no algoritmo segue-se a declarção abaixo na estrutura de repetição:
para i <- 1 ate 10
	leia (nomeVetor[i])
fimpara
Exemplo: Escreva um algoritmo para ler a nota de 10 alunos, calcular a média geral da turma e escrever quantos alunos obtiveram nota acima da média calculada (media >= 7).
algoritmo "semnome"
var
 soma, media: real
 nota: vetor [1..10] de real
 x, n, cont: inteiro
inicio
 soma <- 0
 media <- 0
 cont <- 0
 para x <- 1 ate 10 faca
 leia (nota [x])
 soma <- soma + nota [x]
 fimpara
 media <- soma / 10
 para n <- 1 ate 10 faca
 se (nota [n] > media) entao
 cont <- cont + 1
 fimse
 fimpara
 escreval (cont)
fimalgoritmo
Operações básicas com vetores
Assim como em variáveis simples, também é possível operar com variáveis indexadas (vetores ou matrizes). Contudo não é possível operar diretamente com o conjunto completo, mas com cada um de seus elementos de forma separada.
O acesso individual a cada elemento de um vetor é realizado pela especificação de sua posição na mesma por meio do nome do vetor e informando o índice que deseja pesquisar.
Área de atuação de vetores
A área de aplicação de vetores em algoritmos é muito extenso, mas normalmente os vetores são usados em duas tarefas muito importantes no processamento de dados: pesquisa e classificação.
A pesquisa consiste na verificação da existência de um valor dentro de um vetor. Trocando em miúdos, pesquisar um vetor consiste em procurar dentre seus elementos um determinado valor.
A classificação de um vetor consiste em arranjar seus componentes numa determinada ordem, segundo um critério específico. Por exemplo, este critério pode ser a ordem alfabética de um vetor de dados caracter, ou então a ordem crescente ou decrescente para um vetor de dados numéricos. Há vários métodos de classificação, mas o mais conhecido é o método da bolha (Bubble Sort).
Exercício:
Exercícios utilizando Arrays (Vetores e Matrizes)
Crie um vetor de 10 posições e armazene os números em ordem aleatória. Após inserir os números ordene-os em ordem decrescente.
Crie um vetor de 10 posições e armazene os valores. Peça ao usuário um número qualquer e verifique quantos números do vetor são inferiores a esse número e quantos são superiores.
Crie dois vetores do tipo inteiro chamado respectivamente A e B com 10 posições cada. Receba do usuário valores para armazenar em ambos os vetores. Armazene os elementos do vetor A e do vetor B em um vetor resultante chamado C. Ordene em ordem crescente e apresente os elementos do vetor C.
Crie dois vetores do tipo inteiro chamado respectivamente A e B com 10 posições cada. Armazene a multiplicação dos respectivos elementos de cada vetor em um vetor resultante chamado C.
Escreva um programa para pedir 10 números ao usuário, armazene esses valores em um array (vetor). Peça ao usuário que informe um número qualquer e verifique quantos números do array são inferiores a esse número.
Escreva uma classe que some os elementos da diagonal principal de uma matriz bidimensional quadrada (você pode escolher o tamanho contanto que seja quadrada), fornecida pelo usuário.
Dado o seguinte vetor:
Qual será o conteúdo do vetor V depois de executado o algoritmo abaixo?
para i de 8 até 5 passo -1 Faça
aux <- [i]
v [i] <- [8 - i + 1]
v [8 - i + 1] <- aux
fimpara
v [3] <- [1]
v [v [3]] <- [v [2]]
Escreva um algoritmo que permita a leitura dos nomes de 10 pessoas e armaze os nomes lidos em
um vetor denominado nomes. Após isto, o algoritmo deve permitir a leitura de mais 1 nome qualquer de pessoa e depois escrever a mensagem ACHEI, se o nome estiver entre os 10 nomes lidos anteriormente (guardados no vetor), ou NÃO ACHEI caso contrário.
Escreva um algoritmo que implemente um vetor de 10 posições com os valores conforme apresentado na figura abaixo. Para a execução deste algoritmo siga os seguintes passos:
Na primeira interação o algoritmo deverá ordenar (crescente) o vetor conforme especificado na figura. (ordenar apenas a primeira parte (0 até 4) e depois a segunda parte (5 até 9))
Na segunda interação realize a ordenação da seguinte forma: posição 0 com posição 5, posição 1 com posição 6, posição 2 com posição 7, posição 3 com posição 8, posição 4 com posição 9.
Na terceira interação realize a ordenação da seguinte forma: posição 0 com posição 9, posição 1 com posição 8, posição 2 com posição 7, posição 3 com posição 6, posição 4 com posição 5.
Na quarta interação realize a ordenação conforme feito no item a desta questão.
MATRIZES
Este tipo de estrutura também tem sua principal utilização vinculada à criação de tabelas. Caracteriza-se por ser definida uma única variável vinculada dimensionada com um determinado tamanho. A dimensão de uma matriz é constituída por constantes inteiras e positivas. Os nomes dados às matrizes seguem as mesmas regras de nomes utilizados para as variáveis simples. Assim como um vetor é uma estrutura de dados homogênea.
A sintaxe do comando de definição de matrizes de duas dimensões é a seguinte:
var
<nome_da_variável> : MATRIZ [<linha_inicial>..<linha_final>,<coluna_inicial>..<coluna_final> ] DE <tipo_de_dado>
Ex.: 
var
m : matriz [1 .. 5 , 1 .. 10] de inteiro
Também é possível definir matrizes com várias dimensões, por exemplo:
Ex.:
var
N : MATRIZ [1 .. 4] DE INTEIRO
O : MATRIZ [1 .. 50 , 1 .. 4] DE INTEIRO
P : MATRIZ [1 .. 5, 1 .. 50 , 1 .. 4] DE INTEIRO
Q : MATRIZ [1 .. 3 , 1 .. 5, 1 .. 50 , 1 .. 4] DE INTEIRO
R : MATRIZ [1 .. 2 , 1 .. 3 , 1 .. 5, 1 .. 50 , 1 .. 4] DE INTEIRO
S : MATRIZ [1 .. 2 , 1 .. 2 , 1 .. 3 , 1 .. 5, 1 .. 50 , 1 .. 4] DE INTEIRO
Exemplo de um algoritmo utilizando uma matriz quarada de tamanho 5X5.
algoritmo "semnome"
var
 num: vetor [1..5, 1..5] de real
 L, C: inteiro
inicio
 para L <- 1 ate 5 faca
 para C <- 1 ate 5 faca
 escreva ("Digite o valor de num [",L,",",C,"] = ")
 leia (num [L,C])
 fimpara
 fimpara
 escreval()
 para L <- 1 ate 5 faca
 para C <- 1 ate 5 faca
 escreval ("o valor de num [",L,",",C,"] = ",num [L,C])
 fimpara
 fimpara
fimalgoritmo
Exercício:
Construa um algoritmo que solicite do usuário a inserção de 25 valores. Armazene-os em uma matriz quadrada e realize a seguinte:
Capture os elementos armazenados na diagonal principal e armazene em um vetor denominado principal, conforme figura abaixo:
Capture os elementos armazenados na diagonal secundaria e armazeneem um vetor denominado secundaria, conforme figura abaixo:
Realize a inversão dos valores do vetor principal para o vetor secundário, conforme apresentado abaixo:
Resultando nos vetores abaixo
Após a inversão dos valores no vetor realize a inserção novamente na matriz conforme figura abaixo:
Construa um algoritmo que implemente duas matriz com tamanho 5X4 e 4X5 denominadas A e B respectivamente. Coloque em uma matriz C a soma dos valores da matriz A e B.
Construa um algoritmo que troque os valores entre as colunas na matriz conforme figura abaixo: (Observação: não é para criar uma nova matriz, os valores devem ser trocados e colocados na mesma matriz) 
Crie uma matriz conforme apresentado na figura abaixo e realize as seguintes tarefas:
Ache 5 alunos com as maiores notas e informe o nome, disciplina e a nota
Informe a média geral da turma e a média geral de cada aluno
Ache 5 alunos com as menores notas e informe o nome, disciplina e a nota
Encontre os alunos que estão de exame em determinadas disciplinas, pois apresentam média < 7 e media >= 4. Informe o nome do aluno, a disciplina e a nota destes alunos.
Encontre os alunos que estão de DP em determinadas disciplinas, pois apresentam média < 4. Informe o nome do aluno, a disciplina e a nota destes alunos:

Outros materiais