domingo, 14 de agosto de 2011

Aula 23 - 08/07/11

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 "Exercicio 6"


var
matriz1 : vetor [1..4,1..5] de real
matriz2 : vetor [1..5,1..2] de real
matriz3 : vetor [1..4,1..2] de real
a,b,c:inteiro
inicio
para a de 1 ate 4 faca
   para b de 1 ate 5 faca
      escreval ("Primeira matrix 4x5, Linha: ",a,". Coluna: ",b,". Digite um número: ")
      leia (matriz1[a,b])
   fimpara
fimpara

para a de 1 ate 5 faca
   para b de 1 ate 2 faca
      escreval ("Segunda matrix 5x2, Linha: ",a,". Coluna: ",b,". Digite um número: ")
      leia (matriz2[a,b])
   fimpara
fimpara

para a de 1 ate 4 faca
   para b de 1 ate 2 faca
      para c de 1 ate 5 faca
         matriz3[a,b] <- matriz3[a,b]+( matriz1[a,c]* matriz2[c,b] )
      fimpara
   fimpara
fimpara

para a de 1 ate 4 faca
     para b de 1 ate 2 faca
          escreval ("Linha: ",a,". Coluna: ",b,". Total: ",matriz3[a,b])
     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, verefique se a matriz possui ponto de sela e , se possuir, mostre seu valor e sua localizaçao.




algoritmo "Exercicio 7"

var
matrizA : vetor [1..5,1..7] de real
a,b:inteiro
menor: vetor [1..5] de real
maior: vetor [1..7] de real
linhamenor,colunamaior,cont:real
inicio
para a de 1 ate 5 faca
     para b de 1 ate 7 faca
          escreval ("Linha: ",a,". Coluna: ",b,". Digite um número: ")
          leia (matrizA[a,b])
     fimpara
fimpara
menor[1] <- matrizA[1,1]
menor[2] <- matrizA[2,1]
menor[3] <- matrizA[3,1]
menor[4] <- matrizA[4,1]
menor[5] <- matrizA[5,1]
maior[1] <- matrizA[1,1]
maior[2] <- matrizA[1,2]
maior[3] <- matrizA[1,3]
maior[4] <- matrizA[1,4]
maior[5] <- matrizA[1,5]
maior[6] <- matrizA[1,6]
maior[7] <- matrizA[1,7]
linhamenor <- 0
colunamaior <- 0
para a de 1 ate 5 faca
     para b de 1 ate 7 faca
     se matrizA[a,b] < menor[a] entao
     menor[a] <- matrizA[a,b]
     linhamenor <- a
     fimse
     fimpara
fimpara

para a de 1 ate 7 faca
     para b de 1 ate 5 faca
     se matrizA[b,a] > maior[a] entao
     maior[a] <- matrizA[b,a]
     colunamaior <- a
     fimse
     fimpara
fimpara
cont = 0
para a de 1 ate 5 faca
     para b de 1 ate 7 faca
     se menor[a] = maior[b] entao
     escreval ("Linha",a,". Coluna: ",b,". Numero: ",menor[a])
     cont <- cont + 1
     fimse
     fimpara
fimpara
se cont = 0 entao
escreval ("Nos número digitados não possui 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 "Exercicio 8"

var
matriz1 : vetor [1..6,1..4] de inteiro
a,b,cont:inteiro

inicio
para a de 1 ate 6 faca
     para b de 1 ate 4 faca
     escreval ("Linha: ",a,". Coluna: ",b,". Digite um número: ")
     leia (matriz1[a,b])
     fimpara
fimpara
cont <- 0
para a de 1 ate 6 faca
     para b de 1 ate 4 faca
     se (matriz1[a,b] > 30 ) entao
     cont <- cont + 1
     escreval("Maior que 30: ",matriz1[a,b])
     fimse
     se (matriz1[a,b] = 30) entao
     matriz1[a,b] <- 0
     fimse
     se (matriz1[a,b] <> 30) entao
     escreval ("Linha: ",a,". Coluna: ",b,". Numero: ",matriz1[a,b])
     fimse
     fimpara
fimpara
escreval (cont," numeros sao maiores que 30.")




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.


algoritmo "Exercicio 9"

var
repete: vetor [1..15,1..5] de real
cont: vetor [1..15,1..5] de real
conte,conti: real
a,b,n,c,d: inteiro
inicio

para a de 1 ate 15 faca
   para b de 1 ate 5 faca
      escreval ("Linha: ",a,". Coluna: ",b,". Digite um número: ")
      leia (repete[a,b])
   fimpara
fimpara
para a de 1 ate 15 faca
   para c de 1 ate 5 faca
      conte <- 0
      para b de a ate 15 faca
         para d de c ate 5 faca
            se (repete[a,c] = repete[b,d]) entao
               conte <- conte + 1
               cont[a,c] <- conte
            fimse
         fimpara
      fimpara
   fimpara
fimpara
para a de 1 ate 15 faca
   para b de 1 ate 5 faca
      se (cont[a,b] = 0) e (conti = 0) entao
         escreval ("O número: ",repete[a,b]," Nao repete.")
      fimse
      se (a <= 14) e (b <= 4) entao
         se  (repete[a,b] <> repete[a,b+1]) entao
            se (repete[a,b] <> repete[a+1,b]) entao
               conti <- 0
            fimse
         fimse
      fimse
      se (cont[a,b] >= 1) e (conti = 0)entao
         escreval ("O número: ",repete[a,b],". Repetiu : ",cont[a,b]," veses.")
         conti <- conti + 1
      fimse
   fimpara
fimpara

fimalgoritmo
(Questao 9 nao esta 100% correta)



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 "Exercicio 10"

var
matriz: vetor [1..10,1..10] de inteiro
a,b,c,troca:inteiro
inicio
para a de 1 ate 10 faca
     para b de 1 ate 10 faca
          escreval ("Linha: ",a,". Coluna: ",b,". Digite um número inteiro: ")
          leia (matriz[a,b])
     fimpara
fimpara

para a de 1 ate 10 faca
     para b de 1 ate 10 faca
     escreval ("Linha: ",a,". Coluna: ",b,". Número: ",matriz[a,b])
     fimpara
fimpara

para a de 1 ate 10 faca
     troca <- matriz[2,a]
     matriz[2,a] <- matriz[8,a]
     matriz[8,a] <- troca
fimpara

para a de 1 ate 10 faca
     troca <- matriz[a,4]
     matriz[a,4] <- matriz[a,10]
     matriz[a,10] <- troca
fimpara

c <- 11
para a de 1 ate 10 faca
     troca <- matriz[a,a]
     c <- c - 1
     matriz[a,a] <- matriz[c,a]
     matriz[c,a] <- troca
fimpara


para a de 1 ate 10 faca
     troca <- matriz[5,a]
     matriz[5,a] <- matriz[a,10]
     matriz[a,10] <- troca
fimpara

para a de 1 ate 10 faca
     para b de 1 ate 10 faca
     escreval ("Linha: ",a,". Coluna: ",b,". Número: ",matriz[a,b])
     fimpara
fimpara

fimalgoritmo




Sem muita dificuldade, o mais dificil agora nao é fazer o algoritmo é intender o que realmente ele pede. Unico exercicio que tive mta dificuldade foi o exercicio 9, nao consegui terminalo corretamente.




Nenhum comentário: