Comandos Web
Webfólio sobre as aulas de Lógica e Algoritmo do Técnico em Informática - T10 - UNISC-RS
domingo, 26 de fevereiro de 2012
AULA 26
Na aula de hoje foi feita a prova, onde na minha opinião fui muito bem tendo nota 9,0 e ficando coincidentemente com média 9 em Lógica e Algoritmo, sendo então aprovado, e Java ai vou eu.. HAHA
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.
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
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
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.
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.
1 - Leia um conjunto com n números e informe se existe algum elemento repetido no conjunto.
Download arquivo alg.
2 - 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
3 - 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
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 "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.
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
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
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
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.
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.
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
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. 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
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.
quinta-feira, 30 de junho de 2011
AULA 20 - 29/06/2011 - Matrizes
Na aula de hoje nos foi passado mais uma matéria nova. Começamos a estudar agora também as matrizes, o professor Jossandro passou a teoria em slides que disponibilizarei abaixo e passou também dois execicios para melhor compreensão na prática, disponibilizarei todos resolvidos.
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 "prova1"
var
not: vetor [1..10, 1..3] de real
cont1, cont2, cont3, 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
cont1<-0
cont2<-0
cont3<-0
PARA l de 1 ate 10 FACA
SE (not[l,1] <= not[l,2]) e (not[l,1] <= not[l,3]) ENTAO
cont1<- cont1 + 1
escreval("A menor nota do aluno ",l," é ", not[l,1])
SENAO
SE (not[l,2] <= not[l,1]) e (not[l,2] <= not[l,3]) ENTAO
cont2<- cont2 + 1
escreval("A menor nota do aluno ",l," é ", not[l,2])
SENAO
SE (not[l,3] <= not[l,2]) e (not[l,3] <= not[l,1]) ENTAO
cont3<- cont3 + 1
escreval("A menor nota do aluno ",l," é ", not[l,3])
FIMSE
FIMSE
FIMSE
FIMPARA
escreval(cont1," alunos tiveram a menor nota na prova 1")
escreval(cont2," alunos tiveram a menor nota na prova 2")
escreval(cont3," alunos tiveram a menor nota na prova 3")
fimalgoritmo
Download arquivo alg.
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 "soma2"
var
som: vetor [1..5, 1..5] de inteiro
cont, l, c: inteiro
inicio
PARA l de 1 ate 5 FACA
PARA c de 1 ate 5 FACA
escreval("Digite o número referente a linha ",l," e coluna ",c,":")
leia(som[l,c])
FIMPARA
FIMPARA
cont<- 0
PARA l de 1 ate 5 FACA
PARA c de 1 ate 5 FACA
SE (som[l,c] > 50) ENTAO
cont<- cont +1
escreval("O número referente a linha ",l," e coluna ",c," é maior do que 50")
FIMSE
FIMPARA
FIMPARA
SE (cont = 0) ENTAO
escreval("Nenhum número digitado foi maior do que 50")
FIMSE
fimalgoritmo
Download arquivo alg.
Hoje no inicio da explicação achei que teria mais dificuldade com o conteudo, mas depois da explicação do professor vi que a materia não era nem um bicho de sete cabeças, com escessão da matriz tridimensional, na pratica foi bem melhor compreendida, ja que tudo na pratica se é mais entendido, a dificuldade fica por conta da tão falada lógica que as vezes acaba nos traindo, mas consegui resolver os exercicios numa boa.
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 "prova1"
var
not: vetor [1..10, 1..3] de real
cont1, cont2, cont3, 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
cont1<-0
cont2<-0
cont3<-0
PARA l de 1 ate 10 FACA
SE (not[l,1] <= not[l,2]) e (not[l,1] <= not[l,3]) ENTAO
cont1<- cont1 + 1
escreval("A menor nota do aluno ",l," é ", not[l,1])
SENAO
SE (not[l,2] <= not[l,1]) e (not[l,2] <= not[l,3]) ENTAO
cont2<- cont2 + 1
escreval("A menor nota do aluno ",l," é ", not[l,2])
SENAO
SE (not[l,3] <= not[l,2]) e (not[l,3] <= not[l,1]) ENTAO
cont3<- cont3 + 1
escreval("A menor nota do aluno ",l," é ", not[l,3])
FIMSE
FIMSE
FIMSE
FIMPARA
escreval(cont1," alunos tiveram a menor nota na prova 1")
escreval(cont2," alunos tiveram a menor nota na prova 2")
escreval(cont3," alunos tiveram a menor nota na prova 3")
fimalgoritmo
Download arquivo alg.
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 "soma2"
var
som: vetor [1..5, 1..5] de inteiro
cont, l, c: inteiro
inicio
PARA l de 1 ate 5 FACA
PARA c de 1 ate 5 FACA
escreval("Digite o número referente a linha ",l," e coluna ",c,":")
leia(som[l,c])
FIMPARA
FIMPARA
cont<- 0
PARA l de 1 ate 5 FACA
PARA c de 1 ate 5 FACA
SE (som[l,c] > 50) ENTAO
cont<- cont +1
escreval("O número referente a linha ",l," e coluna ",c," é maior do que 50")
FIMSE
FIMPARA
FIMPARA
SE (cont = 0) ENTAO
escreval("Nenhum número digitado foi maior do que 50")
FIMSE
fimalgoritmo
Download arquivo alg.
Hoje no inicio da explicação achei que teria mais dificuldade com o conteudo, mas depois da explicação do professor vi que a materia não era nem um bicho de sete cabeças, com escessão da matriz tridimensional, na pratica foi bem melhor compreendida, ja que tudo na pratica se é mais entendido, a dificuldade fica por conta da tão falada lógica que as vezes acaba nos traindo, mas consegui resolver os exercicios numa boa.
domingo, 26 de junho de 2011
AULA 19 - 22/06/2011 - Vetores
Na aula de hoje começamos a utilizar vetores nos algoritmos, o professor Jossandro nos passou toda a teoria que disponibilizarei no slide abaixo, e passou e corrigiu 5 exercícios para começarmos a praticar já que na pratica tudo se entende melhor.
1 - Faça um programa que leia 10 nomes de alunos, guarde em uma lista e mostre.
algoritmo "nome_alunos"
var
nomes: vetor[1..10] de caractere
i: inteiro
inicio
PARA i de 1 ate 10 FACA
escreval ("Digite o nome ",i," :")
leia(nomes[i])
FIMPARA
PARA i de 1 ate 10 FACA
escreval ("O nome ",i," e ", nomes[i])
FIMPARA
fimalgoritmo
Download arquivo alg.
2 - Faça um programa que leia 10 nomes de alunos e sua media final e guarde em listas. Ao final listar o nome dos aluno e sua media, mostrando "aprovado" se a media for maior ou igual a 7 ou "reprovado" caso contrario.
algoritmo "nomes_media"
var
nomes: vetor [1..10] de caracter
medias: vetor [1..10] de real
i: inteiro
inicio
PARA i de 1 ate 10 FACA
escreval("Digite o nome ",i,":")
leia(nomes[i])
escreval("Digite a mmedia do aluno ",i,":")
leia(medias[i])
FIMPARA
PARA i de 1 ate 10 FACA
escreva("Aluno(a) ",nomes[i]," tem media ",medias[i]," e esta ")
SE (medias[i]>=7) ENTAO
escreval("aprovado")
SENAO
escreval("reprovado")
FIMSE
FIMPARA
fimalgoritmo
Download arquivo alg.
3 - Faça um programa que leia 50 valores reais e guarde em um vetor. Ao final mostrar a soma e a media dos valores lidos.
algoritmo "soma_media"
var
num: vetor[1..50] de real
i: inteiro
media, soma: real
inicio
soma<- 0
PARA i de 1 ate 50 FACA
escreval("Digite um numero: ")
leia(num[i])
soma<- soma+num[i]
FIMPARA
media<- soma/50
escreval("A soma dos 50 numeros digitados e: ", soma)
escreval("A media dos 50 numeros digitados e: ", media)
fimalgoritmo
Download arquivo alg.
4 - Faça um programa que calcule a media ((nota1+nota2)/2) de 10 alunos e guarde em um vetor, percorra o vetor e mostre as medias. Ao final mostre a media geral do turno.
algoritmo "media_geral"
var
medias: vetor [1..10] de real
i: inteiro
media_tot, nota1, nota2, geral: real
inicio
PARA i de 1 ate 10 FACA
escreval("Digite a primeira nota do aluno ",i," :")
leia(nota1)
escreval("Digite a segunda nota do aluno ",i," :")
leia(nota2)
medias[i]<- ((nota1+nota2)/2)
FIMPARA
limpatela
geral<-0
PARA i de 1 ate 10 FACA
escreval("A media do aluno(a) ",i," e: ",medias[i])
geral<- geral+medias[i]
FIMPARA
media_tot<- geral/50
escreval("A media do turno e: ", media_tot)
fimalgoritmo
Download arquivo alg.
5 - Faça um programa que mostre o mês dos ano de acordo com o numero (de 1 a 12) informado pelo usuário.
algoritmo "mes"
var
mes: vetor[1..12] de caractere
num: inteiro
inicio
mes[1]<- "Janeiro"
mes[2]<- "Fevereiro"
mes[3]<- "Março"
mes[4]<- "Abril"
mes[5]<- "Maio"
mes[6]<- "Junho"
mes[7]<- "Julho"
mes[8]<- "Agosto"
mes[9]<- "Setembro"
mes[10]<- "Outubro"
mes[11]<- "Novembro"
mes[12]<- "Dezembro"
REPITA
escreval("Digite o numero equivalente ao mes desejado: ")
leia(num)
ATE (num>=1) e (num <=12)
escreval("O mes digitado e: ", mes[num])
fimalgoritmo
Download arquivo alg.
Não tive grandes dificuldades, consegui entender com facilidade o novo conteúdo, a minha maior dificuldade nem foi em relação ao conteúdo foi uma falha no meu pensamento logico na questão 5, onde eu deveria apenas utilizar a variável que era utilizada para ler o numero digitado pelo usuário como índice do vetor, mas fora isso achei o conteúdo bem fácil.
1 - Faça um programa que leia 10 nomes de alunos, guarde em uma lista e mostre.
algoritmo "nome_alunos"
var
nomes: vetor[1..10] de caractere
i: inteiro
inicio
PARA i de 1 ate 10 FACA
escreval ("Digite o nome ",i," :")
leia(nomes[i])
FIMPARA
PARA i de 1 ate 10 FACA
escreval ("O nome ",i," e ", nomes[i])
FIMPARA
fimalgoritmo
Download arquivo alg.
2 - Faça um programa que leia 10 nomes de alunos e sua media final e guarde em listas. Ao final listar o nome dos aluno e sua media, mostrando "aprovado" se a media for maior ou igual a 7 ou "reprovado" caso contrario.
algoritmo "nomes_media"
var
nomes: vetor [1..10] de caracter
medias: vetor [1..10] de real
i: inteiro
inicio
PARA i de 1 ate 10 FACA
escreval("Digite o nome ",i,":")
leia(nomes[i])
escreval("Digite a mmedia do aluno ",i,":")
leia(medias[i])
FIMPARA
PARA i de 1 ate 10 FACA
escreva("Aluno(a) ",nomes[i]," tem media ",medias[i]," e esta ")
SE (medias[i]>=7) ENTAO
escreval("aprovado")
SENAO
escreval("reprovado")
FIMSE
FIMPARA
fimalgoritmo
Download arquivo alg.
3 - Faça um programa que leia 50 valores reais e guarde em um vetor. Ao final mostrar a soma e a media dos valores lidos.
algoritmo "soma_media"
var
num: vetor[1..50] de real
i: inteiro
media, soma: real
inicio
soma<- 0
PARA i de 1 ate 50 FACA
escreval("Digite um numero: ")
leia(num[i])
soma<- soma+num[i]
FIMPARA
media<- soma/50
escreval("A soma dos 50 numeros digitados e: ", soma)
escreval("A media dos 50 numeros digitados e: ", media)
fimalgoritmo
Download arquivo alg.
4 - Faça um programa que calcule a media ((nota1+nota2)/2) de 10 alunos e guarde em um vetor, percorra o vetor e mostre as medias. Ao final mostre a media geral do turno.
algoritmo "media_geral"
var
medias: vetor [1..10] de real
i: inteiro
media_tot, nota1, nota2, geral: real
inicio
PARA i de 1 ate 10 FACA
escreval("Digite a primeira nota do aluno ",i," :")
leia(nota1)
escreval("Digite a segunda nota do aluno ",i," :")
leia(nota2)
medias[i]<- ((nota1+nota2)/2)
FIMPARA
limpatela
geral<-0
PARA i de 1 ate 10 FACA
escreval("A media do aluno(a) ",i," e: ",medias[i])
geral<- geral+medias[i]
FIMPARA
media_tot<- geral/50
escreval("A media do turno e: ", media_tot)
fimalgoritmo
Download arquivo alg.
5 - Faça um programa que mostre o mês dos ano de acordo com o numero (de 1 a 12) informado pelo usuário.
algoritmo "mes"
var
mes: vetor[1..12] de caractere
num: inteiro
inicio
mes[1]<- "Janeiro"
mes[2]<- "Fevereiro"
mes[3]<- "Março"
mes[4]<- "Abril"
mes[5]<- "Maio"
mes[6]<- "Junho"
mes[7]<- "Julho"
mes[8]<- "Agosto"
mes[9]<- "Setembro"
mes[10]<- "Outubro"
mes[11]<- "Novembro"
mes[12]<- "Dezembro"
REPITA
escreval("Digite o numero equivalente ao mes desejado: ")
leia(num)
ATE (num>=1) e (num <=12)
escreval("O mes digitado e: ", mes[num])
fimalgoritmo
Download arquivo alg.
Não tive grandes dificuldades, consegui entender com facilidade o novo conteúdo, a minha maior dificuldade nem foi em relação ao conteúdo foi uma falha no meu pensamento logico na questão 5, onde eu deveria apenas utilizar a variável que era utilizada para ler o numero digitado pelo usuário como índice do vetor, mas fora isso achei o conteúdo bem fácil.
quarta-feira, 22 de junho de 2011
AULAS 17 e 18 - 08/06/2011 e 15/06/2011 - Exercicios de recuperação...
Na aula 17 o professor Jossandro passou um trabalho para recuperar as notas da prova, contendo ele três questões que deveriam ser resolvidas e enviadas por email a ele, com o prazo de entrega sendo até dia 13/06/2011 as 23:59 h. Ja na aula 18 foi então corrigidas as três questões e foi passada mais uma apenas para exercitar.
1 - Em uma eleição presidencial existem quatro candidatos. Os votos são informados por meio de código. Os códigos utilizados são:
1, 2, 3, 4 | Votos para os respectivos candidatos |
5 | Voto nulo |
6 | Voto em branco |
Faça um programa que calcule e mostre:
- o total de votos para cada candidato;
- o total de votos nulos;
- o total de votos em branco;
- a percentagem de votos nulos sobre o total de votos;
- a percentagem de votos em branco sobre o total de votos.
Para finalizar o conjunto de votos, tem-se o valor ZERO e, para códigos inválidos, o programa deverá mostrar uma mensagem.
algoritmo "Questão_1"
var
voto, cand1, cand2, cand3, cand4, cand5, cand6, cont_total: inteiro
porc_nulos, porc_branco: real
inicio
escreval("Digite seu voto: ")
leia(voto)
SE (voto<0) ou (voto>6) ENTAO
REPITA
escreval("Essa opção de voto não existe. Digite o voto novamente: ")
leia(voto)
ATE (voto>0) e (voto<7)
FIMSE
cand1<- 0
cand2<- 0
cand3<- 0
cand4<- 0
cand5<- 0
cand6<- 0
cont_total<- 0
porc_nulos<- 0
porc_branco<- 0
SE (voto<>0) ENTAO
REPITA
SE (voto=1) ENTAO
cand1<- cand1+1
FIMSE
SE (voto=2) ENTAO
cand2<- cand2+1
FIMSE
SE (voto=3) ENTAO
cand3<- cand3+1
FIMSE
SE (voto=4) ENTAO
cand4<- cand4+1
FIMSE
SE (voto=5) ENTAO
cand5<- cand5+1
FIMSE
SE (voto=6) ENTAO
cand6<- cand6+1
FIMSE
cont_total<- cont_total+1
porc_nulos<- cand5*100/cont_total
porc_branco<- cand6*100/cont_total
escreval("Digite o seu voto: ")
leia(voto)
SE (voto<0) ou (voto>6) ENTAO
REPITA
escreval("Essa opção de voto não existe. Digite o voto novamente: ")
leia(voto)
ATE (voto>0) e (voto<=6)
FIMSE
ATE (voto=0)
FIMSE
escreval("A votação foi encerrada")
escreval("O candidado 1 teve: ",cand1," votos")
escreval("O candidado 2 teve: ",cand2," votos")
escreval("O candidado 3 teve: ",cand3," votos")
escreval("O candidado 4 teve: ",cand4," votos")
escreval("Tiveram ",cand5," votos nulos")
escreval("Tiveram ",cand6," votos em branco")
escreval("A porcentagem de votos nulos sobre o total de votos foi de ", porc_nulos," %")
escreval("A porcentagem de votos em branco sobre o total de votos foi de ", porc_branco,"%")
fimalgoritmo
var
voto, cand1, cand2, cand3, cand4, cand5, cand6, cont_total: inteiro
porc_nulos, porc_branco: real
inicio
escreval("Digite seu voto: ")
leia(voto)
SE (voto<0) ou (voto>6) ENTAO
REPITA
escreval("Essa opção de voto não existe. Digite o voto novamente: ")
leia(voto)
ATE (voto>0) e (voto<7)
FIMSE
cand1<- 0
cand2<- 0
cand3<- 0
cand4<- 0
cand5<- 0
cand6<- 0
cont_total<- 0
porc_nulos<- 0
porc_branco<- 0
SE (voto<>0) ENTAO
REPITA
SE (voto=1) ENTAO
cand1<- cand1+1
FIMSE
SE (voto=2) ENTAO
cand2<- cand2+1
FIMSE
SE (voto=3) ENTAO
cand3<- cand3+1
FIMSE
SE (voto=4) ENTAO
cand4<- cand4+1
FIMSE
SE (voto=5) ENTAO
cand5<- cand5+1
FIMSE
SE (voto=6) ENTAO
cand6<- cand6+1
FIMSE
cont_total<- cont_total+1
porc_nulos<- cand5*100/cont_total
porc_branco<- cand6*100/cont_total
escreval("Digite o seu voto: ")
leia(voto)
SE (voto<0) ou (voto>6) ENTAO
REPITA
escreval("Essa opção de voto não existe. Digite o voto novamente: ")
leia(voto)
ATE (voto>0) e (voto<=6)
FIMSE
ATE (voto=0)
FIMSE
escreval("A votação foi encerrada")
escreval("O candidado 1 teve: ",cand1," votos")
escreval("O candidado 2 teve: ",cand2," votos")
escreval("O candidado 3 teve: ",cand3," votos")
escreval("O candidado 4 teve: ",cand4," votos")
escreval("Tiveram ",cand5," votos nulos")
escreval("Tiveram ",cand6," votos em branco")
escreval("A porcentagem de votos nulos sobre o total de votos foi de ", porc_nulos," %")
escreval("A porcentagem de votos em branco sobre o total de votos foi de ", porc_branco,"%")
fimalgoritmo
2 - Faça um programa que receba um conjunto de valores inteiros e positivos, calcule e mostre o maior e o menor valor do conjunto. Considere que:
- para encerrar a entrada de dados, deve ser digitado valor zero;
- para valores negativos, deve ser enviada uma mensagem;
- os valores negativos ou iguais a zero não entram nos cálculos.
algoritmo "questao2"
var
num, maior, menor: inteiro
inicio
escreval("Digite um número inteiro e positivo: ")
leia(num)
SE (num<>0) ENTAO
ENQUANTO (num<0) FACA
escreval("Você digitou um número inválido")
leia(num)
FIMENQUANTO
SE (num<>0) ENTAO
maior<- num
menor<- num
REPITA
SE (maior<num) ou (maior = num) ENTAO
maior<- num
FIMSE
SE (menor>num) ou (menor=num) ENTAO
menor<- num
FIMSE
escreval("Digite um número inteiro e positivo: ")
leia(num)
ENQUANTO (num<0) FACA
escreval("Você digitou um número inválido")
leia(num)
FIMENQUANTO
ATE (num=0)
FIMSE
FIMSE
SE (maior=0) e (menor=0) ENTAO
escreval("Você não digitou nenhum número")
SENAO
escreval("O maior número é: ", maior)
escreval("O menor número é: ", menor)
FIMSE
fimalgoritmo
var
num, maior, menor: inteiro
inicio
escreval("Digite um número inteiro e positivo: ")
leia(num)
SE (num<>0) ENTAO
ENQUANTO (num<0) FACA
escreval("Você digitou um número inválido")
leia(num)
FIMENQUANTO
SE (num<>0) ENTAO
maior<- num
menor<- num
REPITA
SE (maior<num) ou (maior = num) ENTAO
maior<- num
FIMSE
SE (menor>num) ou (menor=num) ENTAO
menor<- num
FIMSE
escreval("Digite um número inteiro e positivo: ")
leia(num)
ENQUANTO (num<0) FACA
escreval("Você digitou um número inválido")
leia(num)
FIMENQUANTO
ATE (num=0)
FIMSE
FIMSE
SE (maior=0) e (menor=0) ENTAO
escreval("Você não digitou nenhum número")
SENAO
escreval("O maior número é: ", maior)
escreval("O menor número é: ", menor)
FIMSE
fimalgoritmo
Download arquivo alg.
3 - Faça um programa que receba os dados a seguir de vários produtos: preço unitário, país de origem (1- Brasil, 2- Portugal e 3 – outros), meio de transporte (T – terrestre, F – fluvial e A – aéreo), carga perigosa (S- sim, N – não), finalize a entrada de dados com um preço inválido, ou seja, menor ou igual a zero e que calcule e mostre:
- O valor do imposto, usando a tabela a seguir.
Preço unitário | Percentual de imposto sobre o preço unitário |
Até R$ 280,00 | 5.00% |
Maior que R$ 280,00 | 10.00% |
- O valor do transporte usando a tabela a seguir
Carga Perigosa | País de Origem | Valor do Transporte |
S | 1 | R$ 140,00 |
2 | R$ 59,00 | |
3 | R$ 67,00 | |
N | 1 | R$ 34,00 |
2 | R$ 59,00 | |
3 | R$ 168,00 |
- O valor do seguro, usando a regra a seguir:
Os produtos que vêm de Portugal e os produtos que utilizam transporte aéreo pagam metade do valor do seu preço unitário como seguro.
- O preço final, ou seja, preço unitário mais imposto mais valor do transporte mais valor do seguro.
- O total dos impostos (somando impostos de todos os produtos).
algoritmo "questao3"
var
prec_unit, pais, trans2, prec_total, seguro, porc_impos, imp, imp_total: real
trans, carga: caracter
inicio
imp_total<-0
escreval("Digite o preço unitário: ")
leia(prec_unit)
ENQUANTO (prec_unit<0) FACA
escreva("Valor inválido. Digite novamente: ")
leia(prec_unit)
FIMENQUANTO
SE (prec_unit<>0) ENTAO
REPITA
escreval("Digite o país de origem (1- Brasil, 2- Portugal e 3- outros):")
leia(pais)
ENQUANTO (pais<1) ou (pais>3) FACA
escreval("Pais inválido. Digite novamente: ")
leia(pais)
FIMENQUANTO
escreval("Digite o meio de transporte (T - terrestre, F - fluvial e A - aéreo): ")
leia(trans)
ENQUANTO (trans<>"T") e (trans<>"F") e (trans<>"A") FACA
escreval("Você digitou um meio de transporte inválido. Digite novamente: ")
leia(trans)
FIMENQUANTO
escreval("É carga perigosa (S - sim, N - não): ")
leia(carga)
ENQUANTO (carga<>"S") e (carga<>"N") FACA
escreval("Você digitou uma tipo de carga inválido. Digite novamente: ")
leia(carga)
FIMENQUANTO
SE (prec_unit<280) ou (prec_unit=280) ENTAO
porc_impos<- prec_unit*5/100
SENAO
SE (prec_unit>280) ENTAO
porc_impos<- prec_unit*10/100
FIMSE
FIMSE
SE (carga="s") ENTAO
SE (pais=1) ENTAO
trans2<- 140
FIMSE
SE (pais=2) ENTAO
trans2<- 59
FIMSE
SE (pais=3) ENTAO
trans2<- 67
FIMSE
SENAO
SE (carga="n") ENTAO
SE (pais=1) ENTAO
trans2<- 34
FIMSE
SE (pais=2) ENTAO
trans2<- 59
FIMSE
SE (trans=3) ENTAO
trans2<- 168
FIMSE
FIMSE
FIMSE
SE (pais=2) ou (trans="a") ENTAO
seguro<- prec_unit/2
SENAO
SE (pais<>2) ou (trans<>"a") ENTAO
seguro<-0
FIMSE
FIMSE
prec_total<- prec_unit+porc_impos+seguro+trans2
imp<- porc_impos
imp_total<- imp_total+imp
prec_total<- prec_unit+porc_impos+seguro+trans2
limpatela
escreval("")
escreval("O imposto unitário custa: ",porc_impos," reais")
escreval("O transporte custa: ",trans2," reais")
escreval("O seguro custa: ",seguro," reais")
escreval("O preço final é: ",prec_total," reais")
escreval("")
escreval("Digite o proximo valor unitário: ")
leia(prec_unit)
ENQUANTO (prec_unit<0) FACA
escreva("Valor inválido. Digite novamente: ")
leia(prec_unit)
FIMENQUANTO
ATE (prec_unit=0)
SENAO
escreval("Você não digitou nenhum valor válido.")
FIMSE
escreval("O total dos impostos é: ",imp_total," reais")
fimalgoritmo
var
prec_unit, pais, trans2, prec_total, seguro, porc_impos, imp, imp_total: real
trans, carga: caracter
inicio
imp_total<-0
escreval("Digite o preço unitário: ")
leia(prec_unit)
ENQUANTO (prec_unit<0) FACA
escreva("Valor inválido. Digite novamente: ")
leia(prec_unit)
FIMENQUANTO
SE (prec_unit<>0) ENTAO
REPITA
escreval("Digite o país de origem (1- Brasil, 2- Portugal e 3- outros):")
leia(pais)
ENQUANTO (pais<1) ou (pais>3) FACA
escreval("Pais inválido. Digite novamente: ")
leia(pais)
FIMENQUANTO
escreval("Digite o meio de transporte (T - terrestre, F - fluvial e A - aéreo): ")
leia(trans)
ENQUANTO (trans<>"T") e (trans<>"F") e (trans<>"A") FACA
escreval("Você digitou um meio de transporte inválido. Digite novamente: ")
leia(trans)
FIMENQUANTO
escreval("É carga perigosa (S - sim, N - não): ")
leia(carga)
ENQUANTO (carga<>"S") e (carga<>"N") FACA
escreval("Você digitou uma tipo de carga inválido. Digite novamente: ")
leia(carga)
FIMENQUANTO
SE (prec_unit<280) ou (prec_unit=280) ENTAO
porc_impos<- prec_unit*5/100
SENAO
SE (prec_unit>280) ENTAO
porc_impos<- prec_unit*10/100
FIMSE
FIMSE
SE (carga="s") ENTAO
SE (pais=1) ENTAO
trans2<- 140
FIMSE
SE (pais=2) ENTAO
trans2<- 59
FIMSE
SE (pais=3) ENTAO
trans2<- 67
FIMSE
SENAO
SE (carga="n") ENTAO
SE (pais=1) ENTAO
trans2<- 34
FIMSE
SE (pais=2) ENTAO
trans2<- 59
FIMSE
SE (trans=3) ENTAO
trans2<- 168
FIMSE
FIMSE
FIMSE
SE (pais=2) ou (trans="a") ENTAO
seguro<- prec_unit/2
SENAO
SE (pais<>2) ou (trans<>"a") ENTAO
seguro<-0
FIMSE
FIMSE
prec_total<- prec_unit+porc_impos+seguro+trans2
imp<- porc_impos
imp_total<- imp_total+imp
prec_total<- prec_unit+porc_impos+seguro+trans2
limpatela
escreval("")
escreval("O imposto unitário custa: ",porc_impos," reais")
escreval("O transporte custa: ",trans2," reais")
escreval("O seguro custa: ",seguro," reais")
escreval("O preço final é: ",prec_total," reais")
escreval("")
escreval("Digite o proximo valor unitário: ")
leia(prec_unit)
ENQUANTO (prec_unit<0) FACA
escreva("Valor inválido. Digite novamente: ")
leia(prec_unit)
FIMENQUANTO
ATE (prec_unit=0)
SENAO
escreval("Você não digitou nenhum valor válido.")
FIMSE
escreval("O total dos impostos é: ",imp_total," reais")
fimalgoritmo
algoritmo "primo"
var
x, num, soma_prim, divid, z: inteiro
inicio
soma_prim<- 0
PARA x de 1 ate 10 FACA
escreval("Digite o ",x," numero: ")
leia(num)
divid<- 0
PARA z de 1 ate num FACA
SE (num mod z=0) ENTAO
divid<- divid+1
FIMSE
FIMPARA
SE (divid<2) ou (divid=2) ENTAO
soma_prim<- soma_prim+1
FIMSE
FIMPARA
escreval("Entre os numeros digitados", soma_prim," eram primos")
fimalgoritmo
Download arquivo alg.
No inicio achei um pouco complicado resolver aquelas três questões mas mesmo assim optei por resolve-las sozinho, estou no aguardo da correção mas acredito que me sai muito bem, recuperando boa parte da nota perdida na prova. Ja na ultima questão passada pelo professor apenas para exercitar tive muita dificuldade já que ali teria que calcular os números primos, conta a qual em sempre me complico, mas como disse para o professor agora ela pode vir ate na próxima prova com certeza não me complicarei mais.
Assinar:
Comentários (Atom)