Nestas aulas exercitamos o conteudo que nos foi passado anteriormente, o professor Jossandro passou 7 exercicios, os quais resolvemos e corrigimos até o . Disponibilizarei-os a seguir.
1 - Faça um programa que receba um número inteiro e verifique se é par ou ímpar.
algoritmo_par_impar
var
numero: inteiro
inicio
escreval("Digite um número inteiro ")
leia(numero)
SE numero MOD 2=0 ENTAO
escreval("Este numero é par.")
SENAO
escreval("Este número é impar.")
FIMSE
fimalgoritmo
var
numero: inteiro
inicio
escreval("Digite um número inteiro ")
leia(numero)
SE numero MOD 2=0 ENTAO
escreval("Este numero é par.")
SENAO
escreval("Este número é impar.")
FIMSE
fimalgoritmo
Obs. Neste problema foi usado o comando MOD que diz quanto sobrou da divisão(resto), então se o resto da divisão for igual a 0, o numero é par, se esta condição não for aceita então o número obviamente é impar.
2 - A nota final de um estudante é calculada a partir de três notas atribuídas, respectivamente , a um trabalho de laboratório, a uma avaliação semestral e a um exame final. A média das três notas mencionadas obedece aos pesos a seguir:
Nota | Peso |
Trabalho de laboratório | 2 |
Avaliação semestral | 3 |
Exame final | 5 |
Faça um programa que receba as três notas, calcule e mostre a média ponderada e o conceito que segue a tabela:
Média Ponderada | Conceito |
[8,0 – 10,0] | A |
[7,0 – 8,0[ | B |
[6,0 – 7,0[ | C |
[5,0 – 6,0[ | D |
[0,0 – 5,0[ | E |
algoritmo_media_ponderada
var
nota1, nota2, nota3, ponderada: real
inicio
escreval("Digite a nota do Trabalho de Laboratório ")
leia(nota1)
escreval("Digite a nota da Avaliação semestral ")
leia(nota2)
escreval("Digite a nota do Exame final ")
leia(nota3)
ponderada <- (nota1*2+nota2*3+nota3*5)/10
escreva("A nota é: ", ponderada)
SE ponderada <5 ENTAO
escreva(" E")
SENAO
SE (ponderada >=5) e (ponderada <6) ENTAO
escreva(" D")
SENAO
SE (ponderada >=6)e(ponderada <7) ENTAO
escreva(" C")
SENAO
SE (ponderada >=7)e(ponderada <8) ENTAO
escreva(" B")
SENAO (ponderada >=8)e(ponderada <=10) ENTAO
escreva(" A")
FIMSE
FIMSE
FIMSE
FIMSE
fimalgoritmo
Obs. Nesta questão deve-se observar na tabela mensionada acima, onde o colchete esta aberto quer dizer que aquele número pertence ao próximo conceito, por exemplo, " [6,0 – 7,0[ " o colchete esta aberto, ou seja, se a nota for 7 pertencerá ao proximo conceito, se for 6.9 pertencerá a este. Quando o colchete estiver fechado deve-se usar alem do < ou > o =, para que quando seja "[8,0 – 10,0]" o colchete fechado, por exemplo, utilizar a ultima nota.
var
nota1, nota2, nota3, ponderada: real
inicio
escreval("Digite a nota do Trabalho de Laboratório ")
leia(nota1)
escreval("Digite a nota da Avaliação semestral ")
leia(nota2)
escreval("Digite a nota do Exame final ")
leia(nota3)
ponderada <- (nota1*2+nota2*3+nota3*5)/10
escreva("A nota é: ", ponderada)
SE ponderada <5 ENTAO
escreva(" E")
SENAO
SE (ponderada >=5) e (ponderada <6) ENTAO
escreva(" D")
SENAO
SE (ponderada >=6)e(ponderada <7) ENTAO
escreva(" C")
SENAO
SE (ponderada >=7)e(ponderada <8) ENTAO
escreva(" B")
SENAO (ponderada >=8)e(ponderada <=10) ENTAO
escreva(" A")
FIMSE
FIMSE
FIMSE
FIMSE
fimalgoritmo
Obs. Nesta questão deve-se observar na tabela mensionada acima, onde o colchete esta aberto quer dizer que aquele número pertence ao próximo conceito, por exemplo, " [6,0 – 7,0[ " o colchete esta aberto, ou seja, se a nota for 7 pertencerá ao proximo conceito, se for 6.9 pertencerá a este. Quando o colchete estiver fechado deve-se usar alem do < ou > o =, para que quando seja "[8,0 – 10,0]" o colchete fechado, por exemplo, utilizar a ultima nota.
3 - Um funcionário de uma empresa recebe aumento salarial anualmente. Sabe-se que:
a) Esse funcionário foi contratado em 2007, com salário inicial de R$ 1.000,00.
b) Em 2008, ele recebeu aumento de 1,5% sobre seu salário inicial.
c) A partir de 2009 (inclusive), os aumentos salariais sempre corresponderam ao dobro do percentual do ano anterior.
Faça um programa que determine o salário atual desse funcionário. algoritmo_salario_aumento
var
salario, ano1, ano2, ano3, ano4: real
inicio
salario <- 1000
ano1 <- 1000*1.5/100 + salario
ano2 <- ano1*3/100 + ano1
ano3 <- ano2*6/100 + ano2
ano4 <- ano3*12/100 + ano3
escreval("O salário em 2011 é: ", ano4)
var
salario, ano1, ano2, ano3, ano4: real
inicio
salario <- 1000
ano1 <- 1000*1.5/100 + salario
ano2 <- ano1*3/100 + ano1
ano3 <- ano2*6/100 + ano2
ano4 <- ano3*12/100 + ano3
escreval("O salário em 2011 é: ", ano4)
fimalgoritmo
4 - Faça um programa que receba três notas de um aluno, calcule e mostre a média aritmética e a mensagem constante na tabela a seguir. Aos alunos que ficaram para exame, calcule e mostra a nota que deverão tirar para serem aprovados, considerando que a média exigida é 6,0.
Média Aritmética | Mensagem |
[0,0 – 3,0[ | Reprovado |
[3,0 – 7,0[ | Exame |
[7,0 – 10,0] | Aprovado |
algoritmo_reprovado
var
nota1, nota2, nota3, media_arit, passar :real
inicio
escreval("Digite as três notas")
leia(nota1)
leia(nota2)
leia(nota3)
media_arit <- (nota1+nota2+nota3)/3
escreva("A média é:", media_arit)
SE (media_arit <3) ENTAO
escreval(" Aluno Reprovado.")
SENAO
SE(media_arit >=3) e (media_arit <7) ENTAO
passar <- (12-media_arit)
escreval(" Aluno de Exame, para passar deve tirar ", passar)
SENAO
SE(media_arit >=7) e (media_arit <=10) ENTAO
escreval(" Aluno Aprovado")
FIMSE
FIMSE
FIMSE
fimalgoritmo
var
nota1, nota2, nota3, media_arit, passar :real
inicio
escreval("Digite as três notas")
leia(nota1)
leia(nota2)
leia(nota3)
media_arit <- (nota1+nota2+nota3)/3
escreva("A média é:", media_arit)
SE (media_arit <3) ENTAO
escreval(" Aluno Reprovado.")
SENAO
SE(media_arit >=3) e (media_arit <7) ENTAO
passar <- (12-media_arit)
escreval(" Aluno de Exame, para passar deve tirar ", passar)
SENAO
SE(media_arit >=7) e (media_arit <=10) ENTAO
escreval(" Aluno Aprovado")
FIMSE
FIMSE
FIMSE
fimalgoritmo
5 - Faça um programa que receba dois números e mostre o maior.
algoritmo_num_maior
var
num1, num2: real
inicio
escreval("Digite o primeiro número")
leia(num1)
escreval("Digite o segunto número")
leia(num2)
SE (num1>num2) ENTAO
escreval("O número maior é", num1)
SENAO
SE (num1<num2) ENTAO
escreval("O número maior é", num2)
SENAO
SE (num1=num2) ENTAO
escreval("Os números digitados são iguais.")
FIMSE
FIMSE
FIMSE
fimalgoritmo
var
num1, num2: real
inicio
escreval("Digite o primeiro número")
leia(num1)
escreval("Digite o segunto número")
leia(num2)
SE (num1>num2) ENTAO
escreval("O número maior é", num1)
SENAO
SE (num1<num2) ENTAO
escreval("O número maior é", num2)
SENAO
SE (num1=num2) ENTAO
escreval("Os números digitados são iguais.")
FIMSE
FIMSE
FIMSE
fimalgoritmo
6 - Faça um programa que receba três números e mostre-os em ordem crescente. Suponha que o usuário digitará três números diferentes.
alg_crescente
var
n1, n2, n3:real
inicio
escreva("Digite o primeiro número: ")
leia(n1)
escreva("Digite o segundo número: ")
leia(n2)
escreva("Digite o terceiro número: ")
leia(n3)
SE (n1<n2) e (n2<n3) ENTAO
escreva(n1, n2, n3)
SENAO
SE (n2<n1) e (n1<n3) ENTAO
escreva(n2, n1, n3)
SENAO
SE (n1<n3) e (n3<n2) ENTAO
escreva(n1, n3, n2)
SENAO
SE (n2<n3) e (n3<n1) ENTAO
escreva(n2, n3, n1)
SENAO
SE (n3<n1) e (n1<n2) ENTAO
escreva (n3, n1, n2)
SENAO
SE (n3<n2) e (n2<n1) ENTAO
escreva (n3, n2, n1)
SENAO
SE (n1=n2) ou (n1=n3) ou (n2=n3) ENTAO
escreva ("Você digitou números iguais.")
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
fimalgoritmo
7 - Faça um programa que determine a data cronologicamente maior entre duas datas fornecidas pelo usuário. Cada data deve ser composta por três valores inteiros, em que o primeiro representa o dia, o segundo, o mês e o terceiro, o ano.
datas
var
dia1, dia2, mes1, mes2, ano1, ano2:inteiro
inicio
escreval("Digite a primeira data")
escreva("Dia: ")
leia(dia1)
escreva("Mês: ")
leia(mes1)
escreva("Ano: ")
leia (ano1)
escreval("Digite a segunda data:")
escreva("Dia: ")
leia(dia2)
escreva("Mês: ")
leia(mes2)
escreva("Ano: ")
leia (ano2)
SE(dia1>31)ENTAO
escreval("Data incorreta")
SENAO
SE (mes1>12)ENTAO
escreval("Data incorreta")
SENAO
SE (mes1=2) e (dia1>29) ENTAO
escreval ("Data incorreta")
SENAO
SE (dia2>31)ENTAO
escreval("Data incorreta")
SENAO
SE (mes2=2) e (dia2>29) ENTAO
escreval ("Data incorreta")
SENAO
SE (mes2>12)ENTAO
escreval("Data incorreta")
SENAO
SE (ano1>ano2)ENTAO
escreva("A primeira data é a maior")
SENAO
SE (ano1<ano2)ENTAO
escreva("A segunda data é a maior")
SENAO
SE(ano1=ano2)ENTAO
SE(mes1>mes2)ENTAO
escreva("A primeira data é a maior")
SENAO
SE(mes1<mes2)ENTAO
escreva("A segunda data é a maior")
SENAO
SE(mes1=mes2)ENTAO
SE(dia1>dia2)ENTAO
escreva("A primeira data é a maior")
SENAO
SE(dia1<dia2)ENTAO
escreva("A segunda data é a maior")
SENAO
SE(dia1=dia2)ENTAO
escreva("As datas são iguais")
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
fimalgoritmo
var
dia1, dia2, mes1, mes2, ano1, ano2:inteiro
inicio
escreval("Digite a primeira data")
escreva("Dia: ")
leia(dia1)
escreva("Mês: ")
leia(mes1)
escreva("Ano: ")
leia (ano1)
escreval("Digite a segunda data:")
escreva("Dia: ")
leia(dia2)
escreva("Mês: ")
leia(mes2)
escreva("Ano: ")
leia (ano2)
SE(dia1>31)ENTAO
escreval("Data incorreta")
SENAO
SE (mes1>12)ENTAO
escreval("Data incorreta")
SENAO
SE (mes1=2) e (dia1>29) ENTAO
escreval ("Data incorreta")
SENAO
SE (dia2>31)ENTAO
escreval("Data incorreta")
SENAO
SE (mes2=2) e (dia2>29) ENTAO
escreval ("Data incorreta")
SENAO
SE (mes2>12)ENTAO
escreval("Data incorreta")
SENAO
SE (ano1>ano2)ENTAO
escreva("A primeira data é a maior")
SENAO
SE (ano1<ano2)ENTAO
escreva("A segunda data é a maior")
SENAO
SE(ano1=ano2)ENTAO
SE(mes1>mes2)ENTAO
escreva("A primeira data é a maior")
SENAO
SE(mes1<mes2)ENTAO
escreva("A segunda data é a maior")
SENAO
SE(mes1=mes2)ENTAO
SE(dia1>dia2)ENTAO
escreva("A primeira data é a maior")
SENAO
SE(dia1<dia2)ENTAO
escreva("A segunda data é a maior")
SENAO
SE(dia1=dia2)ENTAO
escreva("As datas são iguais")
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
FIMSE
fimalgoritmo
Como normalmente, resolvemos vários exercícios passados pelo professor. Foi-nos apresentado um novo comando, o MOD, que trabalha apenas com o "resto" das operações de divisão, sendo utilizado, por exemplo, em exercícios que tenhamos que descobrir se o número é par ou ímpar, como enfatizei na primeira questão. Devemos também prestar atenção na criação dos algoritmos pelo VisuAlg, pois apenas um espaço, uma letra maiúscula, uma vírgula, pois o VisuAlg trabalha com o modo americano que reconhece apenas a virgula, apenas o ponto, ou até mesmo um tio pode estar causando o problema, ja que ele apenas obedece comandos linha após linha. Além de novos comandos e dicas do VisuAlg, o professor Jossandro resaltou que quando um programador vai na casa ou escritório de um cliente, saber oque ele deseja para o seu software, ele deve sempre tentar "prever" determinados problemas que este possa a vir a sofrer no futuro, sempre perguntando ao usuario o seu parecer, pois este deve concordar, ou pelo menos entender o que pode ocorrer, como por exemplo na questão 5, é pedido apenas o numero maior, mas sempre devemos pensar a frente pondo também se o usuario digitar números iguais para o comunicar do erro.
E para fechar a aula foi marcada a primeiro prova, para dia 18/05/2011, agora é so estudar.
E para fechar a aula foi marcada a primeiro prova, para dia 18/05/2011, agora é so estudar.