bloqueio

segunda-feira, 11 de julho de 2011

AULA 22 - 06/07/2011 - Exercicios

  Na aula de hoje o professor Jossandro corrigiu as questões da aula anterior, e passou mais 3 questões que disponibilizarei a seguir.

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 "multi_maior_1"
var
   m:vetor [1..2,1..2] de real
   r:vetor [1..2,1..2] de real
   maior,lim,col:real
   n,i:inteiro
inicio
      PARA n de 1 ate 2 FACA
           PARA i de 1 ate 2 FACA
                escreval("Digite um número para linha ",n," e para coluna ",i,":")
                leia(m[n,i])
           FIMPARA
      FIMPARA
      maior<- m[1,1]
      pos<- 1,1
      PARA n de 1 ate 2 FACA
           PARA i de 1 ate 2 FACA
                SE (maior < m[n,i]) ENTAO
                   maior<- m[n,i]
                   lim<- n
                   col<- i
                FIMSE
           FIMPARA
      FIMPARA
      escreval("O número maior da matriz foi",maior)
      PARA n de 1 ate 2 FACA
           PARA i de 1 ate 2 FACA
                r[n,i]<- m[n,i] * maior
                escreval("O resultado da multiplicação entre ",m[n,i]," e ",maior," foi ",r[n,i])
           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 "aula22_ex2"
var
  loja: vetor [1..8] de caractere
  prod: vetor [1..4] de caractere
  preco: vetor [1..8,1..4] de real
  i, j : inteiro
inicio
  para i <- 1 ate 8 faca
    escreval("Digite o nome da loja ",i)
    leia(loja[i])
  fimpara
  para i <- 1 ate 4 faca
    escreval("Digite o nome do produto ",i)
    leia(prod[i])
  fimpara
  para i <- 1 ate 8 faca
    para j <- 1 ate 4 faca
      escreval("Digite o preco do(a) ",prod[j]," na loja ",loja[i])
      leia(preco[i,j])
    fimpara
  fimpara
  para i <- 1 ate 8 faca
    para j <- 1 ate 4 faca
      se (preco[i,j] <= 120) entao
        escreval(prod[j]," custa R$",preco[i,j]," na loja ",loja[i])
      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 "minmax3"
var
   mat:vetor[1..4,1..7] de real
   menor,maior,coluna,colunamaior,linha: real
   n,i: inteiro
inicio
      PARA n de 1 ate 4 FACA
           PARA i de 1 ate 7 FACA
                escreval("Digite o número pertencente a coluna ",i," e a linha ",n,":")
                leia(mat[n,i])
           FIMPARA
      FIMPARA
      menor<- mat[1,1]
      linha<- 1
      coluna<- 1
      PARA n de 1 ate 4 FACA
           PARA i de 1 ate 7 FACA
                SE menor < mat[n,i] ENTAO
                   menor<- mat[n,i]
                   linha<- n
                   coluna<- i
                FIMSE
           FIMPARA
      FIMPARA
      maior<- mat[linha,1]
      colunamaior<- 1
      PARA n de 1 ate 1 FACA
           PARA i de 1 ate 7 FACA
                SE maior < mat[linha,i] ENTAO
                   maior<- mat[linha,i]
                   colunamaior<- i
                FIMSE
           FIMPARA
      FIMPARA
      escreval("O menor número é ",menor," esta na linha ",linha,",e na coluna ",coluna," e o maior desta linha é ",maior," esta na coluna ",colunamaior)
fimalgoritmo


 Como sempre a lógica sempre dificulta,  na questão 2 tive grande dificuldade na compreensão do exercício, mas o professor Jossandro me explicou e acabei compreendendo, as outras duas tive uma certa facilidade em soluciona-las, mesmo o MINMAX da questão 3 e a multiplicação da matriz pelo maior elemento da questão 1 sendo a principio confusos. Mas depois que conseguimos nos concentrar com certeza todos eles ficam mais fáceis..

terça-feira, 5 de julho de 2011

AULA 21 - 04/07/2011 - Exercitando vetores e matrizes ..

   Na aula de hoje o professor passou mais três exercícios para resolvermos, dando a aula inteira para resolução destes, que serão corrigidos na próxima aula, que será no laboratório. Abaixo segue os exercícios resolvidos.


1 - Faça um programa que preencha dois vetores de cinco elementos numéricos cada um e mostre o vetor resultante da multiplicação dos valores destes vetores.
Vetor 1:
3
5
4
2
2
1
2
3
4
5

Vetor 2:
7
15
20
0
18
1
2
3
4
5

Vetor resultante da multiplicação:
21
75
80
0
36
1
2
3
4
5

algoritmo "mult1"
var
   pm: vetor[1..5] de real
   sm: vetor[1..5] de real
   rm: vetor[1..5] de real
   n: inteiro
inicio
      PARA n de 1 ate 5 FACA
           escreval("Digite um número a ser multiplicado: ")
           leia(pm[n])
           escreval("Digite um número a ser multiplicado com o número acima: ")
           leia(sm[n])
           rm[n]<-(pm[n]*sm[n])
      FIMPARA
      PARA n de 1 ate 5 FACA
           escreval("A multiplicação ",n," tem resultado: ",rm[n])
      FIMPARA
fimalgoritmo


2 - Uma pequena loja de artesanato possui apenas um vendedor e comercializa dez tipos de objetos. O vendedor 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 total de cada objeto. Ao final deverá ser mostrado um valor geral das vendas e o valor da comissão que será paga ao vendedor
  • o valor do objeto mais vendido e sua posição na matriz (mostre linha e coluna. Não se preocupe com empates).
algoritmo "loja2"
var
   prod: vetor[1..10,1..2] de real
   vg,vt,porc,maior: real
   n,posic: inteiro
inicio
      vg<-0
      PARA n de 1 ate 10 FACA
           escreval("Digite o valor unitario do objeto ",n,": ")
           leia(prod[n,1])
           escreval("Digite a quantidade vendida do produto",n,": ")
           leia(prod[n,2])
      FIMPARA
      PARA n de 1 ate 10 FACA
           vt<-(prod[n,1]*prod[n,2])
           vg<-(vg+vt)
           escreval("O produto ",n," tem valor R$ ",prod[n,1]," e foram vendidos ",prod[n,2]," unidades, obtendo o valor total R$ ",vt,".")
      FIMPARA
      porc<- ((vg*5)/100)
      posic<-1
      maior<-prod[1,2]
      PARA n de 2 ate 10 FACA
           SE (maior < prod[n,2]) ENTAO
              maior<- prod[n,2]
              posic<- n
           FIMSE
      FIMPARA
      escreval("O valor geral das vendas é ",vg," e a comissão ganha pelo vendedor neste mês foi de ",porc,".")
      escreval("O valor do objeto mais vendido foi R$",prod[posic,1]," e esta localizado na coluna 2 e na linha ",posic,".")
fimalgoritmo

Download arquivo alg. 

3 - 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  (número  da linha) e a média do aluno nas 3 provas. Ao final do relatório, deverá mostrar a média geral de todos os alunos.

algoritmo "alun3"
var
   not: vetor [1..10, 1..3] de real
   mediag,media,contmediag: real
   l, c: inteiro
inicio
      PARA l de 1 ate 10 FACA
           PARA c de 1 ate 3 FACA
                escreval("Digite a nota da prova ",c," do aluno ",l,": ")
                leia(not[l,c])
           FIMPARA
      FIMPARA
      contmediag<-0
      PARA l de 1 ate 10 FACA
           media<-((not[l,1]+not[l,2]+not[l,3])/3)
           escreval("O aluno ",l," teve média ",media,".")
           contmediag<-contmediag+media
      FIMPARA
      mediag<- contmediag/10
      escreval("A média geral foi ",mediag)
fimalgoritmo


Download arquivo alg.

    Como de costume a lógica é sempre a grande vilã da aula, mas tive grande facilidade em resolver a primeira questão, tendo facilidade também para compreender a segunda questão, sendo difícil adaptar a minha lógica ao algoritmo, acabei fazendo do jeito mais difícil segundo o professor, mas pelo menos consegui resolver as questões.