CI208 – Programação de Computadores
2o semestre 2012
Exercícios ♯07
Vetores e Matrizes



Os exercícios desta lista são compilações de materiais gerados por professores do DINF/UFPR para a disciplina de CI208 - Programação de Computadores.

Nos exercícios abaixo, os nomes entre parênteses no início do enunciado são sugestões para os nomes dos programas solicitados.

1.

(prodmatvet)  Dada uma matriz de valores to tipo real A com m linhas e n colunas e um vetor real V com n elementos, determinar o produto de A por V.

2.

(prodmat)  Dadas duas matrizes reais A (m x n) e B (n x p) calcular o produto de A por B.

3.

(repetemat)  Dada uma matriz real A (m x n), verificar se existem elementos repetidos em A.

4.

(prndiagonais)  Crie um programa que leia uma matriz de 10 linhas e 10 colunas e imprima em linhas distintas os elementos da diagonal principal e da diagonal secundária da matriz lida.

5.

(somamat)  Dadas duas matrizes reais A (m x n) e B (m x n), fazer um programa que calcula a soma de A com B. A soma deve ser efetuada por uma função que recebe 3 (três) matrizes: a primeira recebe o resultado da soma das outras duas.

6.

(matpermuta)  Dizemos que uma matriz inteira A (n x n) é uma matriz de permutação se em cada linha e em cada coluna houver n-1 elementos nulos e um único elemento igual a 1. Dada uma matriz inteira A (n x n) verificar se A é de permutação. Exemplos:

0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1

é de permutação, enquanto que:
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
2

não é.
7.

(lincolnulas)  Dada uma matriz A (n x m) imprimir o número de linhas e o número de colunas nulas da matriz. Exemplo:

0
0
0
0
1
0
2
2
4
0
5
6
0
0
0
0

tem duas linhas nulas e uma coluna nulas.
8.

(quadradomagico)  Dizemos que uma matriz quadrada inteira é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e secundária são todos iguais. Exemplo:

8
0
7
4
5
6
3
10
2

é um quadrado mágico pois
8+0+7 = 4+5+6 = 3+10+2 = 8+4+3 = 0+5+10 = 7+6+2 = 8+5+2 = 3+5+7
Dada uma matriz quadrada A (n x m), verificar se A é um quadrado mágico.
9.

(custotransp)  Os elementos M[i,j] de uma matriz M (n x n) representam os custos de transporte da cidade i para a cidade j. Dados n itinerários, cada um com k cidades, calcular o custo total para cada itinerário. Exemplo:

4
1
2
3
5
2
1
400
2
1
3
8
7
1
2
5

O custo do itinerário 1 4 2 4 4 3 2 1 é:
M[1,4]+M[4,2]+M[2,4]+M[4,4]+M[4,3]+M[3,2]+M[2,1] = 3+1+400+5+2+1+5 = 417.
10.

(transinvmat)  Fazer uma função que receba três parâmetros: uma matriz e dois inteiros representando as dimensões da matriz. A função deve retornar a transposta de matriz

11.

(somamultmat)  Fazer funções que recebam como parâmetros: duas matrizes e dois inteiros representando as dimensões da matriz. Retornar:

  • a soma das duas matrizes
  • a multiplicação das duas matrizes
12.

(vetbindec)  Dadas duas seqüências com N números inteiros, cada qual assumindo os valores 0 ou 1, interpretadas como números binários:

  1. imprimir o valor decimal dos números;
  2. calcular a soma de ambos (em binário);
  3. imprimir o valor decimal da soma.
13.

(maiorelem)  Fazer um programa que calcula o maior elemento de cada linha de uma matriz e coloca estes valores em um vetor, onde cada n-ésimo elemento deste corresponde ao maior elemento da n-ésima linha da matriz.

14.

(triangpascal)  Um coeficiente binomial, C(n,k), representa o número de possíveis combinações de N elementos tomados K a K. Um Triângulo de Pascal, uma homenagem ao grande matemático Blaise Pascal, é uma tabela de valores de coeficientes combinatoriais para pequenos valores de N e K. Os números que não são mostrados na tabela têm valor zero.
Este triângulo pode ser construído automaticamente usando-se uma propriedade conhecida dos coeficientes binomiais, denominada fórmula da adição: C(r,k) = C(r 1,k) + C(r 1,k 1). Ou seja, cada elemento do triângulo é a soma de dois elementos da linha anterior, um da mesma coluna e um da coluna anterior. Veja um exemplo de um triângulo de Pascal com 7 linhas, com uma indicação de como obter os elementos:

1
1
1
1
2
1
1
3
3
1
1
4
6
4
1
1
5
10
10
5
1
1
6
15
20
15
6
1

Faça um programa para gerar um triângulo de PASCAL de N linhas em uma matriz de tamanho NxN.
15.

(somamatrizes)  Crie uma função que some duas matrizes A e B, com dimensões máximas de 10x10. A função deve receber como argumentos as duas matrizes, suas dimensões reais (que deverão estar dentro do limite 10x10) e o resultado deve ser colocado em uma outra matriz, também passada como argumento da função.

16.

(multmatrizes)  Crie uma função que multiplique duas matrizes A e B. A função deve receber como argumentos as duas matrizes, suas dimensões reais e o resultado deve ser colocado em uma outra matriz, também passada como argumento da função. A função deve retornar 0 (zero) se a operação for bem sucedida e -1 se houver qualquer tipo de impedimento para a operação.

17.

(trocaelems)  Faça um programa que obtenha do usuário uma matriz quadrada (dimensão máxima de 10x10) e troque o maior elemento de cada linha com o elemento da diagonal.

18.

(preencheprod)  Faça um programa que preenche uma matriz 15x9 com o produto dos índices de cada posição.