SlideShare uma empresa Scribd logo
1 de 8
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)
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)
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: ")
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: ")
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)
// 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;
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
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

Mais conteúdo relacionado

Mais procurados

Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Videoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoVideoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoaldoirjava
 
Algoritmos - Aula 07 B - Exercicios Vetores - Resolucao
Algoritmos - Aula 07 B - Exercicios Vetores - ResolucaoAlgoritmos - Aula 07 B - Exercicios Vetores - Resolucao
Algoritmos - Aula 07 B - Exercicios Vetores - ResolucaoRodrigo Kiyoshi Saito
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaMario Sergio
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
Matemática Financeira - Descontos
Matemática Financeira - DescontosMatemática Financeira - Descontos
Matemática Financeira - Descontosguest20a5fb
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Aula 8 - Validação - parte 1
Aula 8 - Validação - parte 1Aula 8 - Validação - parte 1
Aula 8 - Validação - parte 1Pacc UAB
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
4ª Lista de Exercícios – Logaritmos
4ª Lista de Exercícios – Logaritmos4ª Lista de Exercícios – Logaritmos
4ª Lista de Exercícios – Logaritmosceliomelosouza
 

Mais procurados (20)

1ª lista de_algoritmos
1ª lista de_algoritmos1ª lista de_algoritmos
1ª lista de_algoritmos
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Videoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoVideoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programação
 
Algoritmos - Aula 07 B - Exercicios Vetores - Resolucao
Algoritmos - Aula 07 B - Exercicios Vetores - ResolucaoAlgoritmos - Aula 07 B - Exercicios Vetores - Resolucao
Algoritmos - Aula 07 B - Exercicios Vetores - Resolucao
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Algoritmos - Aula 07 A - Vetores
Algoritmos - Aula 07 A - VetoresAlgoritmos - Aula 07 A - Vetores
Algoritmos - Aula 07 A - Vetores
 
Manual básico de conversão de pseudocódigo para C#
Manual básico de conversão de pseudocódigo para C#Manual básico de conversão de pseudocódigo para C#
Manual básico de conversão de pseudocódigo para C#
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs Java
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Matemática Financeira - Descontos
Matemática Financeira - DescontosMatemática Financeira - Descontos
Matemática Financeira - Descontos
 
Pascal Registros
Pascal RegistrosPascal Registros
Pascal Registros
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Aula 8 - Validação - parte 1
Aula 8 - Validação - parte 1Aula 8 - Validação - parte 1
Aula 8 - Validação - parte 1
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
4ª Lista de Exercícios – Logaritmos
4ª Lista de Exercícios – Logaritmos4ª Lista de Exercícios – Logaritmos
4ª Lista de Exercícios – Logaritmos
 

Semelhante a Algoritmos resolvidos

Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxaronoliveira3
 
Alg aula 03 - construcao algoritmos2 tp1
Alg   aula 03 - construcao algoritmos2 tp1Alg   aula 03 - construcao algoritmos2 tp1
Alg aula 03 - construcao algoritmos2 tp1Thalles Anderson
 
Programação em Python_6.pptx
Programação em Python_6.pptxProgramação em Python_6.pptx
Programação em Python_6.pptxzarusca
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9Felipe Santos
 
Algoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.pptAlgoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.pptRobertoPereiradePaiv
 
2ª lista avaliativa (1)
2ª lista   avaliativa (1)2ª lista   avaliativa (1)
2ª lista avaliativa (1)Hiago Rodrigues
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Conceitos e técnicas de programação exercícios i respostas
Conceitos e técnicas de programação  exercícios i respostasConceitos e técnicas de programação  exercícios i respostas
Conceitos e técnicas de programação exercícios i respostasRobson Ferreira
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosRegis Magalhães
 
Lista de exercício
Lista de exercício   Lista de exercício
Lista de exercício Jota Thin
 
Projeto Integrador 2
Projeto Integrador 2Projeto Integrador 2
Projeto Integrador 2r7c4rd0
 
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc SaidaAlgoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc SaidaRodrigo Kiyoshi Saito
 

Semelhante a Algoritmos resolvidos (20)

Hggyjg
HggyjgHggyjg
Hggyjg
 
Lista algoritmos 1
Lista algoritmos 1Lista algoritmos 1
Lista algoritmos 1
 
Aula 3 - 06/04/11
Aula 3 - 06/04/11Aula 3 - 06/04/11
Aula 3 - 06/04/11
 
Construcao de Algoritmos - Aula 05
Construcao de Algoritmos - Aula 05Construcao de Algoritmos - Aula 05
Construcao de Algoritmos - Aula 05
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
Alg aula 03 - construcao algoritmos2 tp1
Alg   aula 03 - construcao algoritmos2 tp1Alg   aula 03 - construcao algoritmos2 tp1
Alg aula 03 - construcao algoritmos2 tp1
 
Programação em Python_6.pptx
Programação em Python_6.pptxProgramação em Python_6.pptx
Programação em Python_6.pptx
 
apostila C++
apostila C++apostila C++
apostila C++
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
02 fp02
02 fp0202 fp02
02 fp02
 
Algoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.pptAlgoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.ppt
 
2ª lista avaliativa (1)
2ª lista   avaliativa (1)2ª lista   avaliativa (1)
2ª lista avaliativa (1)
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Algop - aula 04
Algop - aula 04Algop - aula 04
Algop - aula 04
 
Conceitos e técnicas de programação exercícios i respostas
Conceitos e técnicas de programação  exercícios i respostasConceitos e técnicas de programação  exercícios i respostas
Conceitos e técnicas de programação exercícios i respostas
 
Logica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 SubalgoritmosLogica Algoritmo 07 Subalgoritmos
Logica Algoritmo 07 Subalgoritmos
 
Lista de exercício
Lista de exercício   Lista de exercício
Lista de exercício
 
Projeto Integrador 2
Projeto Integrador 2Projeto Integrador 2
Projeto Integrador 2
 
Algop - aula 07
Algop - aula 07Algop - aula 07
Algop - aula 07
 
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
Algoritmos - Aula 12 A - Traducao ling C - Ent Proc SaidaAlgoritmos - Aula 12 A - Traducao ling C - Ent Proc Saida
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