sexta-feira, 1 de julho de 2011

Exercicios de Matrizes no VisualG

Concluir a resolução dos sete exervicios passado pelo Prof. Jonatas sobre Matriz.Cada um me consumiu uma certa quantidade de tempo. Depois de resolvido é que se pode ver como é simples fazer. Programar é encontrar caminhos, meios, de se fazer.

Para testar no VisualG, é só copiar e colar o código dos exercicios. Porém é recomendado que cada um estude e saiba fazer o código para fixação da rotina e da solução dos exercícios propostos.

Parece-me que é probido publicar na internet respostas dos exercícios pois, não encontrei nenhum blog, fórum em que se possa ter respostas para os exercicios, nem para facilitar, então, como fonte de auxilio, eis abaixo, em pseudo-código: portugol, programado em VISUALG os seguintes exercicios.

1. Faça um algoritmo para ler uma matriz de 3x4 de números reais e depois exibir o elemento do canto superior esquerdo e do canto inferior

algoritmo "Estudando Matriz"

// Função : Faça um algoritmo para ler uma matriz de 3x4 de números reais
// e depois exibir o elemento do canto superior esquerdo e do canto inferior direito
// Autor : Adão Braga
// Data : 26/6/2011
// Seção de Declarações

var
matriz : vetor[1..3,1..4] de real
i,j:inteiro

inicio
// Seção de Comandos

para i de 1 ate 3 faca
     para j de 1 ate 4 faca
          escreva("Digite um número inteiro: [", i, ",", j, "] ")
                leia(matriz[i,j])
     fimpara
fimpara

para i de 1 ate 3 faca
     para j de 1 ate 4 faca
          escreva(matriz[i,j]:3)
     fimpara
     escreval("")
fimpara
escreval("")
escreval("linha 1 e coluna 1", matriz[1,1])
escreval("linha 3 e coluna 4", matriz[3,4])

fimalgoritmo

2. Ler uma matriz 5X5 e gerar outra em que cada elemento é o cubo do elemento respectivo na matriz original. Imprima depois o elemento do meio desta nova matriz;

algoritmo "Criar Matriz 5x5 e elevar ao cubo"
// Função Ler uma matriz 5X5 e gerar outra em que cada elemento é o cubo
// do elemento respectivo na matriz original.
// Imprima depois o elemento do meio desta nova matriz;
// Autor : Adao Braga
// Data : 26/6/2011
// Seção de Declarações
var
vetA:vetor[1..5,1..5] de real
vetB:vetor[1..5,1..5] de real
i,j:inteiro

inicio
// Seção de Comandos

para i de 1 ate 5 faca
     para j de 1 ate 5 faca
          escreva("Digite os numeros: [",i, " + ", j, " ] ")
          leia(vetA[i,j])
     fimpara
fimpara

para i de 1 ate 5 faca
     para j de 1 ate 5 faca
          escreva(vetA[i,j]:7)
     fimpara
     escreval("")
fimpara

para i de 1 ate 5 faca
     para j de 1 ate 5 faca
          vetB[i,j]<- (vetA[i,j]^3)
     fimpara
fimpara

para i de 1 ate 5 faca
     para j de 1 ate 5 faca

          escreva(vetB[i,j]:7)

     fimpara
     escreval("")
fimpara

fimalgoritmo

3. Faça um algoritmo para ler uma matriz 2X3 real e depois gerar e imprimir sua transposta (matriz 3X2 equivalente);

algoritmo "Matriz: TRANSPORTA"

// Função : Faça um algoritmo para ler uma matriz 2X3 real e depois gerar
// e imprimir sua transposta (matriz 3X2 equivalente);
// Autor : Adão Braga
// Data : 26/6/2011
// Seção de Declarações

var
matrizA : vetor[1..2,1..3] de real
matrizB : vetor[1..3,1..2] de real
i,j:inteiro

inicio
// Seção de Comandos

para i de 1 ate 2 faca
     para j de 1 ate 3 faca
          escreva("Digite um número inteiro: [", i, ",", j, "] ")
                leia(matrizA[i,j])
     fimpara
fimpara

escreval(" ----------  MATRIZ A ----------")
para i de 1 ate 2 faca
     para j de 1 ate 3 faca
          escreva(matrizA[i,j]," ")
     fimpara
          escreval(" ")
fimpara

para i de 1 ate 3 faca
     para j de 1 ate 2 faca
          matrizB[i,j]<-(matrizA[j,i])
     fimpara
fimpara

escreval(" ----------  MATRIZ B ----------")
para j de 1 ate 3 faca
     para i de 1 ate 2 faca
          escreva(matrizB[j,i]," ")
     fimpara
          escreval(" ")
fimpara
escreval(" --------------------")

fimalgoritmo

4. Faça um algoritmo para ler uma matriz 3X3 real e imprimir a soma dos elementos da Diagonal principal.  Generaliza para uma matriz NXN;

algoritmo "Matriz 3x3 Somar Diagonal"
// Função Faça um algoritmo para ler uma matriz 3X3 real e imprimir
// a soma dos elementos da Diagonal principal. Generaliza para uma matriz NXN;
// Autor : Adao Braga
// Data : 26/6/2011
// Seção de Declarações
var
matrizA:vetor[1..3,1..3] de real
somaDiag1:real
i,j:inteiro

inicio
// Seção de Comandos

para i de 1 ate 3 faca
     para j de 1 ate 3 faca
          escreva("Digite os numeros: [",i, " + ", j, " ] ")
          leia(matrizA[i,j])
     fimpara
fimpara

para i de 1 ate 3 faca
     para j de 1 ate 3 faca
          escreva(matrizA[i,j])
     fimpara
     escreval("")
fimpara

para i de 1 ate 3 faca
     para j de 1 ate 3 faca
          somaDiag1<-(matrizA[1,1] + matrizA[2,2] + matrizA[3,3])
     fimpara
fimpara
     escreval("---------------------------------------")
     escreval("Soma da Diagonal 1 é = ", somaDiag1)
     escreval("---------------------------------------")
fimalgoritmo

5. Ler uma matriz 4X3 real e imprimir a soma dos elementos de uma linha L fornecida  pelo usuário;

algoritmo "Criar Matriz 4x3 Somar Linha"
// 5. Ler uma matriz 4X3 real e imprimir a soma dos elementos de uma linha L fornecida pelo usuário
// Autor : Adao Braga
// Data : 30/6/2011
// Seção de Declarações
var
vet4x3:vetor[1..4,1..3] de real
linha,i,j:inteiro
SomarLinha:real

inicio
// Seção de Comandos

para i de 1 ate 4 faca
     para j de 1 ate 3 faca
          escreva("Digite os numeros: [",i, " + ", j, " ] ")
          leia(vet4x3[i,j])
     fimpara
fimpara
escreva(" ")

escreval(" ----------  MATRIZ  4 X 3 ----------")
para i de 1 ate 4 faca
     para j de 1 ate 3 faca
          escreva(vet4x3[i,j]," ")
     fimpara
          escreval(" ")
fimpara
escreval(" --------------------")

escreva("Qual linha quer somar? ")
leia(linha)

somarlinha<-0

para i de linha ate linha faca
     para j de 1 ate 3 faca
        somarlinha <- somarlinha + vet4x3[linha,j]

     fimpara
fimpara

escreval("Linha somada.: ", linha)
escreval("Total da soma da linha: ", somarlinha)

fimalgoritmo

6. Ler uma matriz 4X3 real. Depois, mostre qual é o elemento armazenado em uma linha e coluna C fornecidos pelo usuário;

algoritmo "Matriz 4x3 Mostrar dados solicitado"
// 6. Ler uma matriz 4X3 real. Depois, mostre qual é o elemento armazenado
// em uma linha e coluna C fornecidos pelo usuário;
// Autor : Adao Braga
// Data : 30/6/2011
// Seção de Declarações
var
vet4x3:vetor[1..4,1..3] de real
linha,coluna,i,j:inteiro

inicio
// Seção de Comandos

para i de 1 ate 4 faca
     para j de 1 ate 3 faca
          escreva("Digite os numeros: [",i, " + ", j, " ] ")
          leia(vet4x3[i,j])
     fimpara
fimpara
escreva(" ")

escreval(" ----------  MATRIZ  4 X 3 ----------")
para i de 1 ate 4 faca
     para j de 1 ate 3 faca
          escreva(vet4x3[i,j]," ")
     fimpara
          escreval(" ")
fimpara
escreval(" --------------------")

escreva("Qual linha você quer ver? ")
leia(linha)

escreva("Qual coluna quer ver? ")
leia(coluna)

para i de linha ate linha faca
     para j de coluna ate coluna faca
escreval("O numéro armazenado na linha ",linha, " e na coluna ",coluna, " é: ", vet4x3[linha,coluna])
      fimpara
fimpara

fimalgoritmo

7. Crie uma matriz 7X8 onde cada elemento é a soma dos índices de sua posição dentro da matriz;

algoritmo "Matriz 7x8 soma de seus indices"
// 7. Crie uma matriz 7X8 onde cada elemento é a soma
// dos índices de sua posição dentro da matriz;
// Autor : Adao Braga
// Data : 30/6/2011
// Seção de Declarações
var
vet7x8:vetor[1..7,1..8] de inteiro
i,j:inteiro

inicio
// Seção de Comandos

para i de 1 ate 7 faca
     para j de 1 ate 8 faca
          vet7x8[i,j]<-i+i
     fimpara
fimpara

para i de 1 ate 7 faca
     para j de 1 ate 8 faca
          escreva(vet7x8[i,j]," ")
     fimpara
          escreval(" ")
fimpara

fimalgoritmo

3 comentários:

  1. neste momento estou em sala de aula fazendo um programa com matrizes na aula de algoritimos e não entendo nada dessa matéria estou no primeiro semestre já na segunda etapa e a coisa tá muito dificil mesmo

    ResponderExcluir