Física | Análise de Circuitos | Lógica de Programação | Tecnologia da Informação | Sobre o blog

Mostrando postagens com marcador Lista de Exercícios ALG5. Mostrar todas as postagens
Mostrando postagens com marcador Lista de Exercícios ALG5. Mostrar todas as postagens

terça-feira, 16 de novembro de 2010

L7 - 13 - Escreva um algoritmo que leia duas matrizes 3 X 3 e coloque o produto da multiplicação delas em uma terceira matriz.

Escreva um algoritmo que leia duas matrizes 3 X 3 e coloque o produto da multiplicação delas em uma terceira matriz. No exemplo abaixo é mostrado o resultado da multiplicação de duas matrizes:
Sendo A e B as matrizes multiplicando e multiplicador, a matriz produto C é obtida da seguinte forma:
A0,0 X B0,0 + A0,1 X B1,0 + A0,2 X B2,0
A1,0 X B0,0 + A1,1 X B1,0 + A1,2 X B2,0
A2,0 X B0,0 + A2,1 X B1,0 + A2,2 X B2,0

A0,0 X B0,1 + A0,1 X B1,1 + A0,2 X B2,1
A1,0 X B0,1 + A1,1 X B1,1 + A1,2 X B2,1
A2,0 X B0,1 + A2,1 X B1,1 + A2,2 X B2,1

A0,0 X B0,2 + A0,1 X B1,2 + A0,2 X B2,2
A1,0 X B0,2 + A1,1 X B1,2 + A1,2 X B2,2
A2,0 X B0,2 + A2,1 X B1,2 + A2,2 X B2,2

Algoritmo "exercício13"
Var
    matA: vetor [1..3,1..3] de inteiro
    matB: vetor [1..3,1..3] de inteiro
    matC: vetor [1..3,1..3] de inteiro
    i, j: inteiro
Inicio
    Escreval("Informe os valores da matriz A:")
    Para i de 1 ate 3 faca
        Para j de 1 ate 3 faca
            Escreva("Matriz A ",i , " x ",j , " : ")
            Leia(matA[i,j])
        Fimpara
    Fimpara
    Limpatela
    Escreval("Informe os valores da matriz B:")
    Para i de 1 ate 3 faca
        Para j de 1 ate 3 faca
            Escreva("Matriz B ",i , " x ",j , " : ")
            Leia(matB[i,j])
        Fimpara
    Fimpara
    Limpatela
    Para i de 1 ate 3 faca
        Para j de 1 ate 3 faca
            matC[i,j] <- ( matA[i,1] * matB[1,j] ) + (matA[i,2] * matB[2,j] ) + (matA[i,3] * matB[3,j] )
            Escreval("Matriz C ",i , " x ",j , " : ", matC[i,j])
        Fimpara
    Fimpara
Fimalgoritmo
 Algoritmo Verificado! 

segunda-feira, 15 de novembro de 2010

L7 - 6 - Escreva algoritmo que leia os nomes e conceitos dos alunos de uma turma de tamanho máximo 60.

Escreva algoritmo que leia os nomes e conceitos dos alunos de uma turma de tamanho máximo 60. O algoritmo deverá, para todos os alunos lidos, colocar em uma matriz o nome do aluno na primeira coluna e sua situação na segunda coluna: “aprovado”, se o conceito do aluno for superior a 0; “reprovado” caso contrário. Os conceitos vão de 0 a 4, estando reprovados os alunos cujo conceito é o 0. O algoritmo pára de ler quando o nome informado for “fim” ou tenham sido lidos o nome e o conceito de 60 alunos (tamanho máximo da turma).

Algoritmo "exercicio6"
Var
     nome: vetor [1..60] de literal
     conceito: vetor [1..60] de real
     mat: vetor [1..60,1..3] de literal
     i: inteiro
Inicio
     i <- 1
     Repita
          Escreva("Informe o Nome ",i, " : ")
          Leia(nome[i])
          Se(nome<>"fim")entao 
               mat[i,1] <- nome[i]
               Escreva("Conceito (0-4): ")
               Leia(conceito[i])
               Enquanto (conceito[i] < 0) ou (conceito[i] > 4) FACA
                    Escreval("O conceito deve estar entre 0 e 4.")
                    Escreva("Conceito (0-4): ")
                    Leia(conceito[i]) 
               Fimenquanto
               mat[i,2] <- conceito[i]
               Se(conceito[i]>0)entao
                    mat[i,3] <- "Aprovado"
               Senao
                    mat[i,3] <- "Reprovado"
               Fimse
          Fimse
          i <- i + 1
          Ate(nome[i]= "fim") ou (i > 60)
Fimalgoritmo

L7 - 5 - Escreva algoritmo que leia caracteres em dois vetores vetA e vetB, de cinco posições.

Escreva algoritmo que leia caracteres em dois vetores vetA e vetB, de cinco posições.Após os dois vetores terem sido lidos, o algoritmo deverá colocar em um terceiro vetor vetC a diferença dos dois primeiro, i.e., os caracteres que estão contido em vetA e não estão contido em vetV. Por exemplo, se
vetA = { “A”, “E”, “F”, “6“,“?”}
e
vetB = { “F”, “3”, “?”, “F“,“H”,“E”}
então
vetC = { “A”,“6“}
Algoritmo "exercicio5"
Var
                vetA, vetB: vetor [1..5] de literal
                vetC: vetor [1..10] de literal
                i, j, k: inteiro
                difer: logico
Inicio
                Escreval("Informe os valores do vetor A")
                Para i de 1 ate 5 faca
                                Escreva("informe o ",i, "o valor: ")
                               Leia(vetA[i])
                Fimpara
                Limpatela
    Escreval("Agora, Informe os valores do vetor B")
                Para i de 1 ate 5 faca
                               Escreva("informe o ",i, "o valor: ")
                               Leia(vetB[i])
                Fimpara
                Limpatela
                k<-1
Para i de 1 ate 5 faca
                difer <- VERDADEIRO
                            Para j de 1 ate 5 faca
Se (vetA[i]= vetA[j]) entao
           Se (i <> j) entao
difer <- FALSO
                                                           Fimse
                                    Fimse
Se (vetA[i]=vetB[j]) entao
            difer <- FALSO
                                   Fimse
                             Fimpara
                             Se (difer=VERDADEIRO) entao
                                               vetC[k] <- vetA[i]
                                               k <- k + 1
                             Fimse
                Fimpara
Para i de 1 ate 5 faca
difer <- VERDADEIRO
                               Para j de 1 ate 5 faca
Se (vetB[i]=vetA[j]) entao
difer <- FALSO
                                   Fimse
Se (vetB[i]=vetB[j]) entao
                                               Se(i  <> j) entao
difer <- FALSO
                                               Fimse
                                  Fimse
                               Fimpara
                               Se (difer=VERDADEIRO) entao
                                               vetC[k] <- vetB[i]
                                               k <- k + 1
                               Fimse
                Fimpara
Fimalgoritmo

L7 - 4 - Escreva um algoritmo que leia caracteres em dois vetores vetA e vetB, de cinco posições.

Escreva um algoritmo que leia caracteres em dois vetores vetA e vetB, de cinco posições. Após os dois vetores terem sido lidos, o algoritmo deverá colocar em um terceiro vetor vetC   o resultado da união dos dois primeiros, i.e., os caracteres que estão contidos em um ou outro vetor. Assuma que  em  um mesmo  vetor não  haverá  caracteres  repetidos, mas  uma  caracter  contido  em  vetA poderá também estar contido em vetB. Nesse caso, apenas uma ocorrência é colocada em vetC. Por exemplo, se
vetA = { “A”, “E”, “F”, “6“,“?”}
vetB = { “F”, “3”, “?”, “F“,“H”,“E”}
então
vetC  = { “A”, “E”, “F”, “6“,“?”,”3”,“H”}

Algoritmo "exercicio4"
Var
                vetA, vetB: vetor [1..5] de literal
                vetC: vetor [1..10] de literal
                i, j, k: inteiro
                repet: logico
Inicio
                Escreval("Informe os valores do vetor A")
                Para i de 1 ate 5 faca
                                Escreva("informe o ",i, "o valor: ")
                               Leia(vetA[i])
                Fimpara
                Limpatela
Escreval("Agora, Informe os valores do vetor B")
                Para i de 1 ate 5 faca
                                Escreva("informe o ",i, "o valor: ")
                               Leia(vetB[i])
                Fimpara
                Limpatela
                k<-1
Para i de 1 ate 5 faca
repet <- FALSO
                               Para j de 1 ate 5 faca
Se (vetA[i]=vetA[j]) entao
                                                               Se(i  > j) entao
repet <- VERDADEIRO
                                                               Fimse
                                               Fimse
Se (vetA[i]=vetB[j]) entao
repet <- VERDADEIRO
                                               Fimse
                               Fimpara
                               Se (repet=FALSO) entao
                                               vetC[k] <- vetA[i]
                                               k <- k + 1
                               Fimse
                Fimpara
Para i de 1 ate 5 faca
repet <- FALSO
                               Para j de 1 ate 5 faca
Se (vetB[i]=vetA[j]) entao
repet <- VERDADEIRO
                                               Fimse
Se (vetB[i]=vetB[j]) entao
                                                               Se(i  > j) entao
repet <- VERDADEIRO
                                                               Fimse
                                               Fimse
                               Fimpara
                               Se (repet=FALSO) entao
                                               vetC[k] <- vetB[i]
                                               k <- k + 1
                               Fimse
                Fimpara
Fimalgoritmo

L7 - 3 - Seja o seguinte algoritmo:

01.    algoritmo  "exercicio3"
02.    var
03.        vetA, vetB, vetC: vetor[1..5] de literal
04.        i, j, k : numérico
05.        achou : lógico
06.    início
07.        i <- 1
08.        repita
09.            escreva(“Entre com”, i, “o elemento do vetor A”)
10.            leia(vetA[i]) 
11.            escreva(“Entre com”, i, “o elemento do vetor B”)
12.            leia(vetB[i]) 
13.            i < i + 1
14.        até i > 5
15.        i <-1
16.        repita
17.            vetC[i] <- “” 
18.            i < i + 1 
19.        até i > 5
20.        i <- 1
21.        k <- 1
22.        repita
23.            j <- 1
24.            achou <- FALSO
25.            repita
26.                se vetA[j] = vetB[j] então
27.                    vetC[k] <- vetA[i]
28.                    k <- k+1
29.                    achou <- VERDADEIRO
30.                fimse 
31.                j <- j+1
32.            até (j > 5) ou achou
33.         i <- i+1
34.        até i > 5
35.    fimalgoritmo
Determine  o  conteúdo  final  de  vetC,  mostrando  o  teste  de mesa  completo  utilizado  para  tal, supondo que os valores lido foram
“k”, “d”, “j”, “s”, “d”, “k”, “s”, “j”, “h” e “m”,
nessa ordem.
________________________
vetA[1] vetA[2] vetA[3] vetA[4] vetA[5] vetB[1] vetB[2] vetB[3] vetB[4] vetB[5]
k             j              d             s              h             d             s              k             j              m

vetC[1] vetC[2] vetC[3] vetC[4] vetC[5]                               i               j             k             achou
                                                                                               6             6             1             FALSO


L7 - 2 - Escreva um algoritmo que leia o nome dos alunos de uma turma de tamanho indefinido (mas não superior a 60)


Escreva um algoritmo que leia o nome dos alunos de uma turma de tamanho indefinido (mas não superior a 60) e sua nota em uma prova (0 a 10; o algoritmo deve verificar se a nota fornecida é válida). O algoritmo pára de ler quando o nome do aluno fornecido for vazio (“”). Para cada aluno, o algoritmo deve escrever seu nome e sua nota normalizada, dada pela fórmula:
NNi = Ni X 10/Nmax
Onde NNi  é  a  nota  normalizada  do  i-ésimo  aluno, Ni  é  sua  nota  original,  e Nmax    é  a  nota máxima obtida dentre todos os alunos da turma.
Algoritmo "exercicio2"
Var
                nome: vetor [1..60] de literal
                nota: vetor [1..60] de real
                nmax: real
                i, j: inteiro
                x: logico
Inicio
                x <- verdadeiro
                nmax <- 0
                Escreval("Insira o nome e a nota dos alunos.:")
                Escreval("(Para finalizar, digite enter)")
// inserção dos dados
                Para i de 1 ate 60 faca
                               Se (x = verdadeiro) entao
Escreva(i,"o. nome: ")
Leia(nome[i])
Se(nome[i] <> "") entao
                               Escreva("nota:")
                               Leia(nota[i])
Enquanto (nota[i] < 0) ou (nota[i] > 10) FACA
Escreval("A nota deve ser superior a zero e inferior a 10.")
                                               Escreva("nota:")
                                               Leia(nota[i])
Fimenquanto
j <- i
Se(nota[i] > nmax) entao
nmax<- nota[i]
                                                                              Fimse
                                                               Senao
                                                                               x <- falso
Fimse
Fimse
                Fimpara
//normalização das notas
Limpatela
Escreval(" :: Normalização das notas :: ")
                Para i de 1 ate j faca
                               nota[i] <- (nota[i] * 10) / nmax
                               Escreval(nome[i], ": ",nota[i])
                Fimpara
Fimalgoritmo