Algoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos resolvidos
1. Alguns algoritmos resolvidos
O post de hoje é um post especial: é sobre algoritmos. Algoritmos são as principais
dificuldades que o programador encontra no início dos seus estudos. Vale lembrar que a
principal tarefa do programador não é programar em si, tipo, fazer códigos... A principal
tarefa do programador é resolver problemas para conseguir criar o software desejado
pela empresa onde trabalha. Se essa é a vida do programador, nada como resolver
alguns algoritmos para treinar desde já a resolução de problemas. Abaixo estão listados 18
algoritmos resolvidos, utilizando a sintaxe do Visualg. Se preferir, é possível usar o
Portugol, mas a sintaxe é um pouco diferente.
1) Faça um algoritmo que receba quatro números inteiros, calcule e mostrea
soma desses números.
var
n1, n2, n3, n4, soma: inteiro
inicio
escreva ("Digiteo primeiro número: ")
leia (n1)
escreva ("Digiteo segundo número: ")
leia (n2)
escreva ("Digiteo terceiro número: ")
leia (n3)
escreva ("Digiteo quarto número: ")
leia (n4)
soma <- n1 + n2 + n3 + n4
escreva (soma)
// Seção de Comandos
fimalgoritmo
2) Faça um algoritmo que receba três notas, calcule e mostrea média
aritmética entre elas.
var
n1, n2, n3, media: real
inicio
escreva ("Digitea primeira nota: ")
leia (n1)
escreva ("Digitea segunda nota: ")
leia (n2)
escreva ("Digitea terceira nota: ")
leia (n3)
media <- (n1 + n2 + n3) / 3)
2. escreva ("A média das notas é: ", media)
// Seção de Comandos
fimalgoritmo
3) Faça um algoritmo que receba três notas e seus respectivos pesos, calcule e
mostre a média ponderada dessas notas.
var
n1, n2, n3, p1, p2, p3, mediaPon: real
inicio
escreva ("Digite a primeira nota: ")
leia (n1)
escreva ("Digite a segunda nota: ")
leia (n2)
escreva ("Digite a terceira nota: ")
leia (n3)
escreva ("Digite o peso da primeira nota: ")
leia (p1)
escreva ("Digite o peso da segunda nota: ")
leia (p2)
escreva ("Digite o peso da terceira nota: ")
leia (p3)
mediaPon <- ((n1 * p1) + (n2 * p2) + (n3 * p3)) / (p1 + p2 + p3)
escreva ("A média ponderada das três notas é: ", mediaPon)
// Seção de Comandos
fimalgoritmo
4) Faça um algoritmo que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo-se
que este sofreu um aumento de 25%.
var
sal, novoSal: real
inicio
escreva ("Digite o salário: ")
leia (sal)
novoSal <- sal * 1.25
escreva ("O salário com aumento é: ", novoSal)
// Seção de Comandos
fimalgoritmo
5) Faça algoritmo que receba o salário de um funcionário e o percentual de aumento e calcule e mostre o
valor do aumento e o novo salário.
var
sal, aumento, novoSal: real
inicio
escreva ("Digite o valor do salário: ")
leia (sal)
3. escreva ("Digite o valor do aumento em porcentagem: ")
leia (aumento)
aumento <- sal * (aumento / 100)
novoSal <- aumento + sal
escreval ("O valor do aumento é: ", aumento)
escreva ("O valor do novo salário é: ", novoSal)
// Seção de Comandos
fimalgoritmo
6) Faça um algoritmo que receba o salário-base de um funcionário, calcule e mostre o salário a receber,
sabendo-se que esse funcionário tem gratificaçãode 5% sobre o salário base e paga imposto de 7%
sobre o salário base.
var
sal, grat, imp, desc, novoSal: real
inicio
escreva ("Digite o sálário base do funcionário: ")
leia (sal)
grat <- sal * 0.05
imp <- sal * 0.07
desc <- sal - imp
novoSal <- desc + grat
escreva ("O salário do funcionário a receber é: ", novoSal)
// Seção de Comandos
fimalgoritmo
7) Faça um algoritmo que receba o salário-base de um funcionário, calcule e mostre seu salário a receber,
Sabendo-se que esse funcionário tem gratificaçãode R$50,00 e paga imposto de 10% sobre o
salário-base.
var
sal, imp, novoSal: real
inicio
escreva ("Digite o salário-base do funcionário: ")
leia (sal)
imp <- sal * 0.10
novoSal <- (sal - imp) + 50
escreva ("O salário que o funcionário tem a receber é: ", novoSal)
// Seção de Comandos
fimalgoritmo
8) Faça um algoritmo que receba o valor de um depósito e o valor da taxa de juros, calcule e mostre o
valor do rendimento e o valor totaldepois do rendimento.
var
deposito, taxa, rend, total: real
inicio
escreva ("Digite o valor do depósito: ")
leia (deposito)
escreva ("Digite o valor da taxa de juros: ")
4. leia (taxa)
rend <- deposito * (taxa / 100)
total <- deposito + rend
escreval ("O valor do rendimento é: ", rend)
escreva ("O valor total após o rendimento é: ", total)
// Seção de Comandos
fimalgoritmo
9) Faça um algoritmo que calcule e mostre a área de um círculo. Sabe-se que: Area=ΠR2.
var
area: real
inicio
area <- (3.14 * 10) ^ 2
escreva ("A área do círculo é: ", area)
// Seção de Comandos
fimalgoritmo
10) Faça um algoritmo que receba um número positivo e maior que zero, calcule e
mostre:
a)O número digitado ao quadrado.
b)O número digitado ao cubo.
c)A raiz quadrada do número digitado.
d)A raiz cúbica do número digitado.
var
num, quadrado, cubo, rQuadrada, rCubica: real
inicio
escreva ("Digite um número positivo e maior do que zero: ")
leia (num)
quadrado <- exp(num, 2)
cubo <- exp(num, 3)
rQuadrada <- exp(num, 1/2)
rCubica <- exp(num, 1/3)
escreval ("O número ao quadrado é: ", quadrado)
escreval ("O número ao cubo é: ", cubo)
escreval ("A raiz quadrada do número é: ", rQuadrada)
escreva ("A raiz cúbica do número é: ", rCubica)
// Seção de Comandos
fimalgoritmo
11) Faça um algoritmo que receba dois números maiores que zero, calcule e mostre um elevado ao outro.
var
num, num2, result: real
inicio
escreva ("Digite um número maior do que zero: ")
5. leia (num)
escreva ("Digite outro número maior do que zero: ")
leia (num2)
result <- exp(num, num2)
escreva ("O número ", num, " elevado a ", num2, " é: ", result)
// Seção de Comandos
fimalgoritmo
12) Faça um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual. Calcule e mostre:
a)A idade dessa pessoa.
b)Quantos anos essa pessoa terá em 2017.
var
aNasc, aAtual, idPres, idFut: inteiro
inicio
escreva ("Digite o ano de nascimento da pessoa: ")
leia (aNasc)
escreva ("Digite o ano atual: ")
leia (aAtual)
idPres <- (aAtual - aNasc)
idFut <- (2017 - aNasc)
escreval ("A idade da pessoa é: ", idPres)
escreva ("A idade que a pessoa terá em 2017 será: ", idFut)
// Seção de Comandos
fimalgoritmo
13) O custo ao consumidor de um carro novo é a soma do preço de fábrica com o percentual
de lucro do distribuidor e dos impostos aplicados ao preço de fábrica. Faça um
algoritmo que receba o preço de fábrica de um veículo, o percentual de lucro do
distribuidor e o percentual de impostos. Calcule e mostre:
a)O valor correspondente ao lucro do distribuidor
b)O valor correspondente aos impostos.
c)O preço final do veículo.
var
pFabr, pLucro, vImp, pFinal: real
inicio
escreva ("Digite o preço de fábrica: ")
leia (pFabr)
escreva ("Digite o percentual de lucro: ")
leia (pLucro)
escreva ("Digite o percentual de impostos: ")
leia (vImp)
pLucro <- pFabr * (pLucro / 100)
vImp <- pFabr * (vImp / 100)
pFinal <- (pFabr + pLucro + vImp)
escreval ("O valor do lucro do distribuidor é: ", pLucro)
escreval ("O valor correspondente aos impostos é: ", vImp)
escreva ("O preço final do veículo é: ", pFinal)
6. // Seção de Comandos
fimalgoritmo
14) Faça um algoritmo que receba o número de horas trabalhadas e o valor do salário
mínimo. Calcule e mostre o salário a receber seguindo as regras abaixo:
a)A hora trabalhada vale a metade do salário mínimo;
b)O salário bruto equivale ao número de horas trabalhadas multiplicado pelo valor da
hora trabalhada.
c)O imposto equivale a 3% do salário bruto.
d)O salário a receber equivale ao salário bruto menos o imposto.
var
nHorasTrab, hTrabalhada, mSalMin, salBruto, imp, sARec: real
inicio
escreva ("Digite o número de horas trabalhadas: ")
leia (nHorasTrab)
escreva ("Digite o valor do salário mínimo: ")
leia (mSalMin)
hTrabalhada <- mSalMin / 2
salBruto <- nHorasTrab * hTrabalhada
imp <- salBruto * 0.03
sARec <- salBruto - imp
escreva ("O salário a receber será: ", sARec)
// Seção de Comandos
fimalgoritmo
15) Um trabalhador recebeu seu salário e depositou em sua contra corrente bancária. Esse trabalhador
emitiu dois cheques e agora deseja saber seu saldo atual. Sabe-se que cada operação bancária de
retirada paga CPMF de 0,38% e o saldo inicial da conta está zerado.
var
salMinimo, cpmf, parcial, parcial2: real
inicio
// Seção de Comandos
escreval ("Digiteo valor do salário do trabalhador: ")
leia (salMinimo)
cpmf <- 0.0038
parcial <- salMinimo * cpmf
salMinimo <- salMinimo - parcial
parcial2 <- salMinimo * cpmf
salMinimo <- salMinimo - parcial2
escreva ("O salário do trabalhador após as retiradas é: ", salMinimo)
fimalgoritmo
16) Faça um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual calcule e mostre:
a)A idade dessa pessoa em anos;
b)A idade dessa pessoa em meses;
7. c)A idade dessa pessoa em dias;
d)A idade dessa pessoa em semanas.
var
ano, idade, meses, dias, semanas: inteiro
inicio
// Seção de Comandos
escreva ("Digiteo ano de nascimento da pessoa: ")
leia (ano)
idade <- 2012 - ano
meses <- idade * 12
dias <- idade * 365
semanas <- idade * 52
escreval ("A pessoa tem ", idade, " anos.")
escreval ("Podemos concluir que ela tem ", meses, " meses.")
escreval ("E exatamente", dias, " dias de vida.")
escreva ("Ela possui, portanto, ", semanas, " semanas.")
fimalgoritmo
17) Faça um algoritmo que receba o número de horas trabalhadas, o valor do salário mínimo e o número
de horas extras trabalhadas. Calcule e mostre o salário a receber seguindo as regras a seguir:
a)A hora trabalhada vale 1/8 do salário mínino;
b)A hora extra vale ¼ do salário mínimo;
c)O salário bruto equivale ao número de horas trabalhadas multiplicado pelo valor da hora trabalhada;
d)A quantia a receber pelas horas extras equivale ao número de horas extras trabalhadas multiplicado
pelo valor da hora extra;
e)O salário a receber equivale ao salário bruto mais a quantia a receber pelas horas extras.
var
hTrab, salMin, hETrab, vHT, vHET, salBruto, HExtraARec, sFinal: real
inicio
// Seção de Comandos
escreva ("Digiteo número de horas trabalhadas: ")
leia (hTrab)
escreva ("Digiteo valor do salário mínimo: ")
leia (salMin)
escreva ("Digiteo número de horas extras trabalhadas: ")
leia (hETrab)
vHT <- salMin / 8
vHET <- salMin / 4
salBruto <- hTrab * vHT
HExtraARec <- hETrab * vHET
sFinal <- salBruto + HExtraARec
escreva ("O salário a receber é de: ", sFinal)
fimalgoritmo
18) Faça um algoritmo que receba a quantidade de dinheiro em reais que uma pessoa que vai viajar
possui. Essa pessoa vai passar por vários países e precisa converter seu dinheiro em dólares, marco
8. alemão e libra esterlina. Sabe-se que a cotação do dólar é de R$ 1,80, do marco alemão é de R$
2,00 e da libra esterlina é de R$ 1,57. O algoritmo deve fazer as conversões e mostrá-las.
var
reais, dolar, marco, libra: real
inicio
// Seção de Comandos
escreva ("Digitea quantidade de dinheiro em reais que a pessoa possui: ")
leia (reais)
dolar <- reais / 1.80
marco <- reais / 2.00
libra <- reais / 1.57
escreval ("O dinheiro da pessoa equivale a ", dolar, " dólares,")
escreval (marco, " marcos ou")
escreva (libra, " libras.")
fimalgoritmo