bloqueio

domingo, 14 de agosto de 2011

AULAS 23, 24 e 25 - 08/07/2011, 04/08/2001 e 11/08/2011 - Exercicios ..

   Na aula 23 acabei não comparecendo, mas como era a ultima aula antes das férias o professor passou cinco exercícios por e-mail para serem resolvidos nas férias. Voltando das férias na aula 24 o professor Jossandro passou mais 4 questões, para serem corrigidas na aula 25 juntamente com as da aula 23, porém foi sorteado os alunos que foram ao quadro corrigir, ganhando 0.5 na média final quem acertava a questão,  perdendo 0.5 quem não tivesse feito e quem tivesse feito errado ficaria no 0 a 0, ou seja, não ganharia mas também não perderia. Na aula 25 acabei ganhando os 0.5 na média final..  Disponibilizarei todos os exercícios abaixo.


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 "quest_6"
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



Download arquivo alg.


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



Download arquivo alg.


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



Download arquivo alg.


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.






Download arquivo alg.


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



Download arquivo alg.



- Leia um conjunto com n números e informe se existe algum elemento repetido no conjunto.



Download arquivo alg.

- 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



  A minha grande dificuldade foi nos exercícios 1 e 9 pois a contagem dos números repetidos acabava me confundindo.. no restante tive até uma certa facilidade, resolvendo-os e apresentado para os colegas no projetor duas das minhas questões resolvidas.