Algoritmos I - Primeiro semestre de 2009
Sétima Lista de Exercícios - Exercícios envolvendo vetores e matrizes
1. Escreva um algoritmo para LER uma lista de N nomes e idades de pessoas, onde
N também é fornecido pelo usuário, e mostrar o nome e a idade da pessoa mais
idosa e da pessoa mais jovem.
2. Gerar a matriz transposta de uma matriz 5x5 dada pelo usuário (a transposta é
obtida permutando-se as linhas e as colunas de uma matriz).
3. Queremos efetuar a compactação de um vetor V1 de N algarismos 0 e 1 (N<=40)
digitado pelo usuário (onde cada algarismo ocupa uma posição do vetor) , de forma
que o vetor resultante V2 de N elementos (N<=40) possua menos elementos do
que o vetor original. A regra de compactação é a seguinte:
(a) O primeiro elemento do vetor V2 é o número de algarismos zero que o vetor V1
contém, a partir do seu início, até o primeiro algarismo um;
(b) O próximo elemento do vetor V2 é o número de algarismos um que o vetor V1
contém, a partir do último zero encontrado, até o próximo algarismo zero;
(c) O próximo elemento do vetor V2 é o número de algarismos zero que o vetor V1
contém, a partir do último um encontrado, até o próximo algarismo um;
(d) Repete-se os passos (b) e (c) até o final do vetor V1.
Exemplo: para o vetor digitado V1 = (0,0,0,1,1,0,1,0,1,1,0),
obtém-se V2 = (3,2,1,1,1,2,1)
Escreva o algoritmo para efetuar esta compactação, recebendo como entrada
do usuário o valor de N e o vetor V1 e testando se os algarismos digitados são
somente 0’s e 1’s.
4. Escreva um algoritmo que calcule a interseção (valores em comum) entre os
valores contidos em dois vetores V1 e V2 e armazene estes valores no vetor V3.
5. Faça um algoritmo para ordenar um vetor de N inteiros (Dica: encontrar o maior de
todos os inteiros e trocá-lo com o último elemento do vetor, repetindo este
procedimento N vezes porém descartando, a cada iteração, os elementos já
ordenados).
6. Uma matriz quadrada A, cujos elementos são designados por Ai,j é dita simétrica
se Ai,j = Ai,j. Construir um algoritmo para ler uma matriz NxN digitada pelo usuário
(onde o valor de N também é fornecido pelo usuário) e determinar se ela é ou não
simétrica.
7. Escreva um algoritmo para calcular o produto cartesiano (AxA) do conjunto abaixo
armazenado no vetor A = {a, b, c}. O produto cartesiano de um vetor é o conjunto
de todos os pares ordenados formados pelos elementos do vetor. Logo, o produto
cartesiano A x A = {(a,a), (a,b), (a,c), (b,a), (b,b), (b,c), (c,a), (c,b), (c,c) }. Armazene
AxA em uma matriz tridimensional, isto é, uma matriz de 3 linhas e 3 colunas, onde
cada elemento da matriz é um vetor de dois elementos.
[a,a] [a,b] [a,c]
[b,a] [b,b] [b,c]
[c,a] [c,b] [c,c]
8. A distância entre várias cidades é dada pela tabela abaixo (em km):
1
2
3
4
5
1
-
15
30
5
12
2
15
-
10
17
28
3
30
10
-
3
11
4
5
17
3
-
80
5
12
28
11
80
-
A) Escreva um algoritmo para, dadas as cidades X e Y, lidas pelo teclado,encontrar
a distância entre elas;
B) Dado um percurso entre as cidades 1, 2, 3, 4 e 5, o seu algoritmo deve lê-lo
pelo teclado (por exemplo, ler as cidades até que o usuário digite zero para sair) e
calcular a distância o total do percurso.
Ex: o usuário digita o seguinte percurso: 2, 4, 5, 2 e zero para encerrar. O
algoritmo deve imprimir 125 km (17 + 80 + 28).
9. Escrever um algoritmo para gerar a seguinte matriz:
1
1
1
1
1
1
1
2
2
2
2
1
1
2
3
3
2
1
1
2
3
3
2
1
1
2
2
2
2
1
1
1
1
1
1
1
10. Dadas as matrizes A e B abaixo, descreva o resultado do algoritmos abaixo:
A=
1
3
2
1
1
4
B=
1
2
1
3
1
4
PARA (i de 1 ATÉ 2) FAÇA
{
PARA (j de 1 ATÉ 2) FAÇA
{
PARA (k de 1 ATÉ 2) FAÇA
{
imprima(A[i,k] + B[k,j]);
}
}
}
11. Considere o seguinte sistema de equações:
a11x1
a21x1 + a22x2
a31x1 + a32x2 + a33x3
.......................................
an1x1 + an2x2 + an3x3 + ........ +annxn
= b1
= b2
= b3
= bn
Escreva um algoritmo para resolver o sistema acima para qualquer valor de
n ≧ 30. O algoritmos deverá ler pelo teclado:
✔ o número de incógnitas do sistema (n)
✔
os termos independentes (bi)
✔
os coeficientes não nulos da 1ª, 2ª, 3ª,..., n-ésima equação (bij)
✔
calcular e imprimir o valor das n incógnitas (x1, x2, ..., xn) que satisfaçam o
sistema.
Download

Algoritmos I - Primeiro semestre de 2009 Sétima