domingo, 14 de agosto de 2011

Aula 26 - 11/068/11

Foram corrigidos os exercicios da aula 24, a correçao desses exercicios foi mais dinamica, alguns alunos sorteados tiveram que apresentar os exercicios, e explicar diante da turma sua soluçao, assim mostrando sua forma de intender e resolver o problema, as veses uma forma mais facil as veses de uma forma mais complexa.

Aula 25 - 10/08/11

Foram corrigidos os exercicios da aula 23.

Aula 24 - 04/08/11


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

algoritmo "Exercicio_1_data_04-08-11"

var
repete: vetor [1..100] de real
cont: vetor [1..100] de real
conte,conti: real
a,b,n: inteiro
inicio
escreval ("Digite a quantidade de números que deseja digitar: ")
leia (n)

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



2) Leia uma matriz quadrada de ordem 10 e calcule a sua transposta. Imprima as
duas matrizes.



algoritmo "Exercicio 2"

var
matriz,matriz1: vetor[1..3,1..3] de real
linha,coluna:inteiro
inicio
para linha de 1 ate 3 faca
   para coluna de 1 ate 3 faca
      escreval ("Linha: ",linha,". Coluna: ",coluna,". Numero: ")
      leia (matriz[linha,coluna])
   fimpara
fimpara
para linha de 1 ate 3 faca
   para coluna de 1 ate 3 faca
      matriz1[linha,coluna] <- matriz[coluna,linha]
   fimpara
fimpara
escreval ("                                                    ")
para linha de 1 ate 3 faca
   para coluna de 1 ate 3 faca
      escreval ("Linha: ",linha,". Coluna: ",coluna,". Numero: ",matriz[linha,coluna])
   fimpara
fimpara
escreval ("                                                    ")
escreval ("******** Matriz transposta ************")
para linha de 1 ate 3 faca
   para coluna de 1 ate 3 faca
      escreval ("Linha: ",linha,". Coluna: ",coluna,". Numero: ",matriz1[linha,coluna])
   fimpara
fimpara
escreval ("******** Matriz transposta ************")
fimalgoritmo




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

algoritmo "Exercicio 3"

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

para a de 1 ate 10 faca
c <- 4
     para b de 1 ate 10 faca
          c <- c - 1
         se (matriz[a,b] < 0) e ((matriz[a,b] = matriz[a,a]) ou (matriz[a,b] = matriz[c,b])) entao
         matriz[a,b] <- 0
         fimse
         escreval ("Linha: ",a,". Coluna: ",b,". Número: ",matriz[a,b])
     fimpara
fimpara
fimalgoritmo




4) 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 "Exercicio 4"

var
matrizA,matrizB: vetor [1..3,1..3] de real
a,b:inteiro
inicio
para a de 1 ate 3 faca
   para b de 1 ate 3 faca
      escreval ("Matriz A, Linha: ",a,". Coluna: ",b,". Número: ")
      leia (matrizA[a,b])
   fimpara
fimpara

para a de 1 ate 3 faca
   para b de 1 ate 3 faca
      matrizB[a,b] <- matrizA[b,a]
   fimpara
fimpara

para a de 1 ate 3 faca
   para b de 1 ate 3 faca
      escreval ("Matriz B, Linha: ",a,". Coluna: ",b,". Número: ",matrizB[a,b])
   fimpara
fimpara
fimalgoritmo



Sem muita dificuldade nesses exercicios, dificil lembrar o que era matriz transposta mais com o tempo vamo relembrando.


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.




segunda-feira, 11 de julho de 2011

Aula 22 - 06/07/11

1- Faça um algoritmo que preencha uma matriz M (2x2), calcule e mostre a matriz R, resultante da multiplicação dos elementos de M pelo seu maior elemento.

algoritmo "Exercicio 1"


var
m,r : vetor [1..2,1..2] de real
maior:real
a,b,c,d,f,g:inteiro
inicio
para a de 1 ate 2 faca
     para b de 1 ate 2 faca
          escreval ("Linha",a,". Coluna",b,". Digite um número: ")
          leia (m[a,b])
     fimpara
fimpara
maior <- m[1,1]
para c de 1 ate 2 faca
     para d de 1 ate 2 faca
        se (maior < m[c,d]) entao
        maior <- m[c,d]
        fimse
     fimpara
fimpara
escreval ("Maior número é",maior)
para f de 1 ate 2 faca
     para g de 1 ate 2 faca
          r[f,g] <- maior * m[f,g]
          escreval ("Linha",f," coluna",g," Resultado : ",r[f,g])
     fimpara
fimpara
fimalgoritmo


2 - Faça um programa que preencha:
" Um vetor com oito posições, contendo nomes de lojas;
" Outro vetor com quatro posições, contendo nomes de produtos;
" Uma matriz com os preços de todos os produtos em cada loja.
O programa deverá mostrar todas as relações (nome do produto - nome da loja) em que o preço não ultrapasse R$ 120,00.

algoritmo "Exercicio 2"



var
nome_loja : vetor [1..8] de caracter
nome_produto :vetor [1..4] de caracter
preco :vetor [1..8,1..4] de real
a,b,c,d,f,g:inteiro
inicio
para a de 1 ate 8 faca
   escreval ("Escreva o nome da loja ",a," .")
   leia (nome_loja[a])
fimpara
para b de 1 ate 4 faca
   escreval ("Digite o nome do ",b," produto.")
   leia (nome_produto[b])
fimpara

para c de 1 ate 8 faca
   para d de 1 ate 4 faca
      escreval ("Nome da loja: ",nome_loja[c],". Nome do produto: ",nome_produto[d],". Digite o preço desse produto: ")
      leia (preco[c,d])
   fimpara
fimpara
para f de 1 ate 8 faca
   para g de 1 ate 4 faca
      se (preco[f,g] <= 120) entao
         escreval ("Nome da loja: ",nome_loja[f],". Nome do produto: ",nome_produto[g],".Preço do produto é: ",preco[f,g])
      fimse
   fimpara
fimpara
fimalgoritmo


3 - Na teoria dos sistemas, define-se o elemento MINMAX de uma matriz como o maior elemento da linha em que se econtra o menor elemento da matriz.
Elabore um programa que carregue uma matriz 4x7 com números reais, calcule e mostre seu MINMAX e sua posição (linha e coluna).

algoritmo "Exercicio 3"



var
minmax : vetor[1..4,1..7] de real
colunamaior,colunamenor,linha,a,b:inteiro
menor,maior:real
inicio
para a de 1 ate 4 faca
     para b de 1 ate 7 faca
          escreval ("Linha: ",a,". Coluna: ",b,". Digite um número: ")
          leia (minmax[a,b])
     fimpara
fimpara
menor <- minmax[1,1]
maior <- minmax[1,1]
linha <- 1
colunamenor <- 1
colunamaior <- 1
para a de 1 ate 4 faca
     para b de 1 ate 7 faca
          se (menor > minmax[a,b]) entao
          menor <- minmax[a,b]
          linha <- a
          colunamenor <- b
          fimse
     fimpara
fimpara
para b de 1 ate 7 faca
     se (maior < minmax[linha,b]) entao
     maior <- minmax[linha,b]
     colunamaior <- b
     fimse
fimpara
escreval ("Minmax é: ",maior,". Linha: ",linha,". Coluna : ",colunamaior)
fimalgoritmo



Um pouco de dificuldade no exercício 2, mas deu para tirar as duvidas.

terça-feira, 5 de julho de 2011

Aula 21 - 04/07/11

1). Faça um programa que preencha dois valores de cinco elementos numéricos cada um e mostre o vetor resultante da multiplicaçao dos valores deste vetores.


algoritmo "Exercicio 1"

var
vet1 : vetor [1..5] de inteiro
vet2 : vetor [1..5] de inteiro
a,b,c:inteiro
multi:real
inicio
para a de 1 ate 5 faca
escreval ("Digite um número")
leia (vet1[a])
fimpara
escreval ("*******************************")
para b de 1 ate 5 faca
escreval ("Digite um número")
leia (vet2[b])
fimpara
para c de 1 ate 5 faca
multi <- vet1[c] * vet2[c]
escreval ("O resultado é: ",multi)
fimpara
fimalgoritmo



2) Uma pequena loja de artesanato possui apenas um vendedor e comercializa dez tipos de objetos. Ovendedor recebe, mensalmente, salário de R$ 400,00, acrescido de 5% do valor total de suas vendas. O valor unitário dos objetos deve ser informado e armazenado em uma matriz; a quantidade vendida de cada peça deve ficar na mesma matriz, em outra coluna.
Crie um programa que receba os preços e as quantidades vendidas e armazenando-os na matriz.
Depois determine e mostre

- um relatório contendo quantidade vendida , valor unitário e valor de cada objeto. Ao final deverá ser mostrado um valor geral das vendas e o valor da comissao que será paga ao vendedor

- o valor do objeto mais vendido e sua posiçao na matriz (mostre linha e coluna.Não se preocupe com empates).



algoritmo "Exercicio 2"

var
valor: vetor[1..10,1..2] de inteiro
valorotal,maior,maior1,comi,valorgeral,valortotal:real
a,b,c,d,f,linha,coluna:inteiro
inicio
para a de 1 ate 10 faca
          escreval ("Digite o valor do produto",a," : ")
          leia (valor[a,1])
          escreval ("Digite a quantidade vendida do produto",a," :")
          leia (valor[a,2])
          limpatela
fimpara
maior <- valor[1,2]
maior1 <- valor[1,1]
valorgeral <- 0
comi <- 0
para c de 1 ate 10 faca
     valortotal <- valor[c,1] * valor[c,2]
     valorgeral <- valorgeral + valortotal
     escreval ("Produto ",c)
       escreval ("A quantidade vendia foi de: ",valor[c,2])
       escreval ("O valor unitário do produto é: ",valor[c,1])
          se (maior < valor[c,2]) entao
          maior1 <- valor[c,1]
          linha <- c
          maior <- valor[c,2]
          fimse
fimpara
comi <- valorgeral * 0.05
escreval ("*******************************************************************")
escreval ("O valor geral das vendas é: ",valorgeral)
escreval ("A comissao que será paga ao vendedor é de: ",comi," .")
escreval ("O valor do produto mais vendido é: ",maior1)
escreval ("Sua posição na matriz é linha: ",linha," coluna: 2.")

fimalgoritmo



3)Faça um programa que preencha uma matriz 10x3 com as notas de dez alunos em tres provas. O programa deverá mostrar um relatório com o número dos alunos(número da linha) e a média do aluno nas 3 prova. Ao final do relatório, deverá mostrar a média geral de todos os alunos.



algoritmo "Exercicio 3"

var
notas: vetor [1..10,1..3] de inteiro
a,b,c,d:inteiro
mediatotal,media:real
inicio
para a de 1 ate 10 faca
     para b de 1 ate 3 faca
          escreval ("Digite a nota da",b," prova do aluno",a)
          leia(notas[a,b])
          se (b = 3) entao
          limpatela
          fimse
     fimpara
fimpara
mediatotal <- 0
para c de 1 ate 10 faca
media<- 0
     para d de 1 ate 1 faca
     media <- (notas[c,1] + notas[c,2] + notas[c,3]) / 3
     mediatotal <- mediatotal + notas[c,1] + notas[c,2] + notas[c,3]
     escreval ("Aluno: ",c," media das notas: ",media)
     fimpara
fimpara
mediatotal <- mediatotal / 30
escreval ("A media total dos 10 alunos é: ",mediatotal)
   
fimalgoritmo



Nesta aula foi feito exercícios da prova do ano passado, primeiro e terceiro exercicio não tive dificuldades, no segunda ja foi um pouco complicado, mais deu pra tirar as duvidas com o professor, o que podemos fazer é praticar.

quarta-feira, 29 de junho de 2011

Aula 20 - 29/06/11

                               Matriz

Slide explicativo sobre matriz.




Exercícios Matriz
1) Faça um programa que preencha uma matriz 10 x 3 com as notas de dez alunos em três provas. O  programa deverá mostrar um relatório com o número dos alunos (numero da linha) e a prova em que cada aluno obteve menor nota. Ao final do relatório, deverá mostrar quantos alunos tiveram menor nota em cada uma das provas: na prova 1, na prova 2 e na prova 3.

Algoritmo "Matriz Exercício 1"

var
provas: vetor [1..10,1..3] de inteiro
a,b,c,prova1,prova2,prova3:inteiro
inicio
para a de 1 ate 10 faca
   para b de 1 ate 3 faca
      escreva ("da linha ",a," e coluna ",b, " - nota: ")
      leia (provas[a,b])
   fimpara
fimpara
prova1 <- 0
prova2 <- 0
prova3 <- 0
para c de 1 ate 10 faca
   se (provas[c,1] < provas[c,2]) e (provas[c,1] < provas[c,3]) entao
      escreval ("Aluno ",c," Menor nota é na prova 1 tendo a nota: ",provas[c,1])
      prova1 <- prova1 + 1
   senao
      se (provas[c,2] < provas[c,1]) e (provas[c,2] < provas[c,3]) entao
         escreval ("Aluno ",c," Menor nota é na prova 2 tendo a nota: ",provas[c,2])
         prova2 <- prova2 + 1
      senao
         se (provas[c,3] < provas[c,1]) e (provas [c,3] < provas[c,2]) entao
            escreval ("Aluno ",c," Menor nota é na prova 3 tendo a nota: ",provas[c,3])
            prova3 <- prova3 + 1
         fimse
      fimse
   fimse
fimpara
escreval ("Na primeira prova ",prova1," tiraram nota baixa.")
escreval ("Na segunda prova ",prova2," tiraram nota baixa.")
escreval ("Na terceira prova ",prova3," tiraram nota baixa.")
fimalgoritmo





2) Faça um programa que preencha uma matriz de 5 x 5 com números inteiros, calcule e mostre os números superiores a cinquenta e suas respectivas posições (linha e coluna). O programa deverá mostrar mensagem se não existir nenhum número nessa condição. 

Algoritmo "Matriz Exercício 2"

var
num: vetor [1..5,1..5] de inteiro
a,b,c,d,cont:inteiro
inicio
cont <- 0
para a de 1 ate 5 faca
   para b de 1 ate 5 faca
      escreval ("Linha:",a," Coluna:",b," Escreva um número: ")
      leia (num[a,b])
      se (b = 5) entao
      limpatela
      fimse
   fimpara
fimpara
para c de 1 ate 5 faca
   para d de 1 ate 5 faca
      se (num[c,d] > 50 ) entao
         escreval ("Numero:",num[c,d]," Linha: ",c," Coluna: ",d)
         cont <- cont + 1
      fimse
   fimpara
fimpara
se (cont = 0) entao
   escreval ("Nao foi digitado número superior a 50")
fimse
fimalgoritmo




Bom um pouco mais complicado que vetor, o primeiro exercício foi meio difícil de fazer acho que n tinha intendido muito bem, o segundo já foi mais fácil.