Universidade Federal do Vale do São Francisco
Curso de Engenharia de Computação
Introdução a Algoritmos
(LISTA DE EXERCÍCIOS UNIDADE 01)
Prof. Jorge Cavalcanti
[email protected]
www.univasf.edu.br/~jorge.cavalcanti
www.twitter.com/jorgecav
1
Exercícios
Escreva um programa que calcula o valor do imposto de renda de uma
pessoa física, com as seguintes condições: se o salário >= 3.000,
alíquota será 15%. Se 3.000>salário>=1500, alíquota será 7%. Se
salário < 1500, isento.
algoritmo "Imposto de Renda"
// Seção de Declarações
var
salario, imposto: real
aliquota: caractere
inicio
// Seção de Comandos
escreva(" Informe o valor do salário: ")
leia(salario)
// definicao da alíquota
se (salario >= 3000) entao
aliquota <- "c"
senao
se (salario < 1500) entao
aliquota <- "a"
senao
aliquota <- "b"
fimse
fimse
escolha aliquota
caso "a"
imposto <- 0
caso "b"
imposto <- salario * 0.07
caso "c"
imposto <- salario * 0.15
fimescolha
escreval(" Valor do imposto de renda:",imposto)
fimalgoritmo
2
Exercícios
Escreva um algoritmo que calcule N!, sendo que N é um inteiro
fornecido pelo usuário e que 0! =1, por definição.
algoritmo "Fatorial de N"
// Seção de Declarações
var N, F, C: inteiro // entrada, fatorial e controle)
inicio
// Seção de Comandos
Escreva ("Digite um número inteiro: ")
leia(N)
Se (N = 0)entao
escreva ("Fatorial de ", N, " = 1")
senao
F <-1
para c de 1 ate n faca
F <- F*C
fimpara
escreva ("Fatorial de ", N, " = ", F)
Fimse
Fimalgoritmo
3
Exercícios
Elabore um algoritmo para cada estrutura de repetição
(enquanto, repita e para) imprimir a tabuada do número 5.
algoritmo "Tabuada do 5 usando enquanto"
// Seção de Declarações
var cont: inteiro
inicio
// Seção de Comandos
cont <- 1
enquanto (cont <=10) faca
escreval (cont, " x 5 = " , cont*5)
cont <- cont +1
fimenquanto
fimalgoritmo
algoritmo "Tabuada do 5 usando repita"
// Seção de Declarações
var cont: inteiro
inicio
// Seção de Comandos
cont <- 1
repita escreval (cont, " x 5 = " , cont*5)
cont <- cont +1
ate (cont>10)
fimalgoritmo
algoritmo "Tabuada do 5 usando para“
var cont: inteiro
Inicio
para cont de 1 ate 10 faca
escreval (cont, " x 5 = " , cont*5)
fimpara
fimalgoritmo
4
Exercícios
O IMC – Índice de Massa Corporal é um critério da OMS para
dar a indicação sobre a condição de peso de uma pessoa
adulta. A fórmula é IMC=peso/(altura)2. Elabore um algoritmo
que leia o peso e a altura de um adulto e mostre sua condição,
conforme tabela abaixo:
IMC em adultos
5
Condição
Abaixo de 18,5
Abaixo do peso
Entre 18,5 e 25
Peso normal
Entre 25 e 30
Acima do peso
Acima de 30
Obeso
Exercícios
algoritmo "IMC"
var
p, h, imc: real
inicio
// Seção de Comandos
escreva ("digite o peso: ")
leia (p)
escreva ("digite a altura: ")
leia (h)
imc <- p/(h^2)
se (imc<18.5) entao
escreva ("IMC=", imc," -Condição: abaixo do peso")
senao
se (imc>=18.5) e (imc<25) entao
escreva ("IMC=", imc," - Condição: peso normal")
senao
se (imc>=25) e (imc<30) entao
escreva ("IMC=", imc," - Condição: acima do peso")
senao escreva("obeso")
fimse
fimse
fimse
fimalgoritmo
Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf
6
Exercícios
Construa um algoritmo que calcule a média aritmética de um
conjunto de números pares fornecidos pelo usuário. O valor da
finalização será a entrada do número 0. Nada impede que o
usuário forneça números ímpares, só que nesse caso eles não
serão considerados.
7
Exercícios
algoritmo "media numeros pares"
var
n, cont, acum: inteiro
media: real
inicio
// Seção de Comandos
cont <-0
acum <-0
n <-1
enquanto (n>0) faca // teste de parada
escreva ("Digite um numero inteiro: ")
leia (n)
se (n>0) e ((n%2)=0) entao// testa se é par
acum <- acum + n // acumula os pares
cont <-cont +1 //conta os pares
fimse
fimenquanto
se (cont > 0) entao //verifica se houve pelo menos um nº par
media <-acum/cont
escreva ("Média=", media)
senao
escreva ("Nenhum par foi fornecido!")
fimse
fimalgoritmo
Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf
8
Exercícios
Escreva um algoritmo que receba um único valor representando
segundos. Em seguida chame um procedimento que converta a
entrada em horas, minutos e segundos e escreva na saída
esses valores.
9
Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf
Exercícios
algoritmo "converte segundos“
var
seg: inteiro
procedimento converta (segundos: inteiro)
var
h, m, s, r: inteiro
inicio
h <- segundos\3600 // observar o operador quociente div inteira.
r <- segundos%3600
m <-r\60
s <- r%60
escreva (segundos, "segundos equivalem a:", h, "h ", m,"min ", s, "seg.")
fimprocedimento
inicio
// Seção de Comandos
escreva ("Digite a quantidade de segundos: ")
leia (seg)
converta(seg)
fimalgoritmo
Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf
10
Exercícios
Analise o seguinte algoritmo e indique o que será impresso na
saída padrão.
algoritmo "exercício variável global"
var num, first, sec: inteiro
funcao func(first:inteiro; sec:inteiro):inteiro
inicio
first <- (first+sec)\2
num <- num - first+1
retorne (first)
fimfuncao
inicio
first <- 0
sec <- 50
num <- 10
escreval ("num antes = ", num)
escreval ("first antes = ", first)
escreval ("sec antes = ", sec)
num <- num + func(first, sec)
escreval ("num depois = ", num)
escreval ("first depois = ", first)
escreval ("sec depois = ", sec)
fimalgoritmo
11
Download

Lista de Exercícios - Unidade 01