Páginas

AULAS 23 - 08/07/11 , 24 - 04/08/211 e 25 - 11/08/11 - Exercicios e mais exercícios


   Segue abaixo os exercícios apresentados nas aulas 23, 24 e 25:

6 - Crie um programa que preencha uma primeira matriz de ordem 4x5 e uma segunda matriz 5x2. O programa deverá, também, calcular e mostrar a matriz resultante do produto matricial das duas matrizes anteriores, armazenando-o em uma terceira matriz de ordem 4x2.

algoritmo "questao6"
var
   mat1:vetor[1..4,1..5] de real
   mat2:vetor[1..5,1..2] de real
   res:vetor[1..5,1..2] de real
   l,c: inteiro
inicio
      para l de 1 ate 4 faca
           para c de 1 ate 5 faca
                escreval("digite o numero da linha",l," e coluna ",c,":")
                leia(mat1[l,c])
           fimpara
      fimpara
      para l de 1 ate 5 faca
           para c de 1 ate 2 faca
                escreval("digite o numero da linha",l," e coluna ",c,", da segunda matriz:")
                leia(mat2[l,c])
           fimpara
      fimpara
      para l de 1 ate 4 faca
           para c de 1 ate 2 faca
                res[l,c]<- ((mat1[l,1]*mat2[1,c])+(mat1[l,2]*mat2[2,c])+(mat1[l,3]*mat2[3,c])+(mat1[l,4]*mat2[4,c])+(mat1[l,5]*mat2[5,c]))
           fimpara
      fimpara
      para l de 1 ate 4 faca
           para c de 1 ate 2 faca
                escreval (res[l,1]," |",res[l,2])
           fimpara
      fimpara
fimalgoritmo


7 - Um elemento Aij de uma matriz é dito ponto de sela da matriz A se, e somente se , Aij for ao mesmo tempo o menor elemento da linha i e o maior elemento da coluna j. Faça um programa que carregue uma matriz de ordem 5x7, verifique se a matriz possui ponto de sela e , se possuir, mostre seu valor e sua localização.

algoritmo "ponto_de_sela7"
var
   matr:vetor[1..5,1..7] de real
   l,c,l2,cont,conta,lin,co: inteiro
   sela:real
inicio
      para l de 1 ate 5 faca
           para c de 1 ate 7 faca
                escreval("digite o numero referente a linha",l," e coluna",c,":")
                leia(matr[l,c])
           fimpara
      fimpara
      conta<-0
      para l de 1 ate 5 faca
      sela<- matr[l,1]
      lin<- l
      co<- 1
           para c de 1 ate 7 faca
                se sela > matr[l,c] entao
                   sela<- matr[l,c]
                   lin<- l
                   co<- c
                fimse
           fimpara
           cont<-0
           para l2 de 1 ate 5 faca
                se sela <= matr[l2,co] entao
                   se (l2<>lin) e (c<>co) entao
                      cont<- cont+1
                   fimse
                fimse
           fimpara
           se cont = 0 entao
              escreval(" ")
              escreval("o ponto de sela da matriz esta na linha",lin,", e na coluna",co," e tem valor",matr[lin,co],".")
              conta<- conta+1
           fimse
      fimpara
      se conta = 0 entao
         escreval(" ")
         escreval("essa matriz não tem nenhum ponto de sela.")
      fimse
fimalgoritmo
8 - Elabore um programa que preencha uma matriz de 6x4 com números inteiros, cacule e mostre quantos elementos dessa matriz são maiores que 30 e, em seguida, monte uma segunda matriz com os elementos diferentes de 30. No lugar do número 30 da segunda matriz, coloque o número zero.

algoritmo "quest8"
var
   matr: vetor[1..6,1..4] de inteiro
   l,c,cont:inteiro
inicio
      cont<-0
      para l de 1 ate 6 faca
           para c de 1 ate 4 faca
                escreval("digite o numero referente a linha",l," e coluna",c,":")
                leia (matr[l,c])
                se (matr[l,c] > 30) entao
                   cont<- cont +1
                fimse
                se matr[l,c] = 30 entao
                   matr[l,c] <- 0
                fimse
           fimpara
      fimpara
      escreval("a matriz tem ",cont," numeros maiores que 30.")
      para l de 1 ate 6 faca
           para c de 1 ate 4 faca
                escreva(" | ",matr[l,c])
           fimpara
           escreval(" |")
      fimpara
fimalgoritmo

9 - Crie um programa que preencha uma matriz 15 x 5 com números inteiros, calcule e mostre quais elementos da matriz se repetem e quantas veses cada um se repete.


10 - Elabore um programa que preencha uma matriz 10 x 10 com números inteiros, execute as trocas especificadas a seguir e mostre a matriz resultante:
- A linha 2 com a linha 8;
- A coluna 4 com a coluna 10;
- A diagonal principal com a diagonal secundária;
- A linha 5 com a coluna 10.

algoritmo "trocas"
var
   matr:vetor[1..10,1..10] de real
   matr2:vetor[1..10,1..10] de real
   l,c,c2:inteiro
inicio
      para l de 1 ate 10 faca
           para c de 1 ate 10 faca
                escreval("digite o número referente a linha",l," e coluna",c,":")
                leia(matr[l,c])
                matr2[l,c] <- matr[l,c]
           fimpara
      fimpara
      c2<-10
      para l de 1 ate 10 faca
           matr2[2,l] <- matr[8,l]
           matr2[8,l] <- matr[2,l]
           matr2[l,4] <- matr[l,10]
           matr2[l,10] <- matr[l,4]
           matr2[l,l] <- matr[l,c2]
           matr2[l,c2] <- matr[l,l]
           c2 <- c2-1
           matr2[5,l] <- matr[l,10]
           matr2[l,10] <- matr[5,l]
      fimpara
      escreval("  matriz final ")
      para l de 1 ate 10 faca
           escreval("| ",matr2[l,1]," | ",matr2[l,2]," | ",matr2[l,3]," | ",matr2[l,4]," | ",matr2[l,5]," | ",matr2[l,6]," | ",matr2[l,7]," | ",matr2[l,8]," | ",matr2[l,9]," | ",matr2[l,10]," | ")
      fimpara
fimalgoritmo

- Leia um conjunto com n números e informe se existe algum elemento repetido no conjunto.
- Leia uma matriz quadrada de ordem 10 e calcule a sua transposta. Imprima as duas matrizes.

algoritmo "transposta"
var
   matr:vetor[1..10,1..10] de real
   matr2:vetor[1..10,1..10] de real
   l,c:inteiro
inicio
      para l de 1 ate 10 faca
           para c de 1 ate 10 faca
                escreval("digite o valor referente a linha ",l," e coluna ",c,":")
                leia(matr[l,c])
           fimpara
      fimpara
      para l de 1 ate 10 faca
           para c de 1 ate 10 faca
                matr2[l,c] <- matr[c,l]
           fimpara
      fimpara
      escreval(" matriz original ")
      para l de 1 ate 10 faca
                escreval("| ",matr[l,1]," | ",matr[l,2]," | ",matr[l,3]," | ",matr[l,4]," | ",matr[l,5]," | ",matr[l,6]," | ",matr[l,7]," | ",matr[l,8]," | ",matr[l,9]," | ",matr[l,10]," | ")
      fimpara
      escreval(" ")
      escreval(" matriz transposta ")
      para l de 1 ate 10 faca
                escreval("| ",matr2[l,1]," | ",matr2[l,2]," | ",matr2[l,3]," | ",matr2[l,4]," | ",matr2[l,5]," | ",matr2[l,6]," | ",matr2[l,7]," | ",matr2[l,8]," | ",matr2[l,9]," | ",matr2[l,10]," | ")
      fimpara
fimalgoritmo

- Ler uma matriz 6 x 6 e atribuir o valor 0 para os valores negativos
encontrados fora das diagonais principal e secundaria

algoritmo "diagonais"
var
   matr:vetor[1..6,1..6] de real
   l,c,h:inteiro
inicio
      para l de 1 ate 6 faca
           para c de 1 ate 6 faca
                escreval("digite o número referente a linha",l," e coluna",c,":")
                leia(matr[l,c])
           fimpara
      fimpara
      h<-6
      para l de 1 ate 6 faca
           para c de 1 ate 6 faca
                se (l<>c) e (c<>h) e (matr[l,c]<0) entao
                      matr[l,c] <- 0
                fimse
           fimpara
           h<- h-1
      fimpara
      escreval(" matriz final ")
      para l de 1 ate 6 faca
           escreval(" | ",matr[l,1]," | ",matr[l,2]," | ",matr[l,3]," | ",matr[l,4]," | ",matr[l,5]," | ",matr[l,6]," | ")
      fimpara
fimalgoritmo

- Leia matriz A de 8x8, depois preencha uma matriz B de mesma ordem, trocando as linhas da matriz A pelas colunas da matriz B. Exemplo:
1ª linha da matriz A, será a 1ª coluna da matriz B
2ª linha da matriz A, será a 2ª coluna da matriz B
e assim por diante. Escreva a matriz resultante.


algoritmo "linha_colu"
var
   matr:vetor[1..8,1..8] de real
   matr2:vetor[1..8,1..8] de real
   l,c:inteiro
inicio
      para l de 1 ate 8 faca
           para c de 1 ate 8 faca
                escreval("digite o valor referente a linha ",l," e coluna ",c,":")
                leia(matr[l,c])
           fimpara
      fimpara
      para l de 1 ate 8 faca
           para c de 1 ate 8 faca
                matr2[l,c] <- matr[c,l]
           fimpara
      fimpara
      escreval(" ")
      escreval(" matriz resultante ")
      para l de 1 ate 8 faca
                escreval("| ",matr2[l,1]," | ",matr2[l,2]," | ",matr2[l,3]," | ",matr2[l,4]," | ",matr2[l,5]," | ",matr2[l,6]," | ",matr2[l,7]," | ",matr2[l,8]," | ")
      fimpara
fimalgoritmo


Tive bastante dificuldade na resolução de alguns dos exercícios, agora é se preparar para a prova.