Beruflich Dokumente
Kultur Dokumente
+ +
=
N N N
VALOR
VALOR <- (N1+N2+N3) / 3 5
F <- 4
*
X^2 + 7
*
X 2
A <- 3.1416 * R^2
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
72
Exemplo 1
Faa um algoritmo que leia 5 nmeros inteiros
diferentes informados pelo usurio e calcule e
imprima a soma e a mdia aritmtica destes
nmeros.
Frmulas:
SOMA = N1 + N2 + N3 + N4 + N5
MEDIA = SOMA / 5
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
73
Exemplo 1
(algoritmo resolvido)
algoritmo "CalculaSomaMedia"
var n1, n2, n3, n4, n5, soma : inteiro
media : real
incio
escreva("Digite o primeiro nmero: ")
leia(n1)
escreva("Digite o segundo nmero: ")
leia(n2)
escreva("Digite o terceiro nmero: ")
leia(n3)
escreva("Digite o quarto nmero: ")
leia(n4)
escreva("Digite o quinto nmero: ")
leia(n5)
soma <- n1 + n2 + n3 + n4 + n5
media <- soma / 5
escreval("Soma = ",soma)
escreval("Mdia = ",media)
fimalgoritmo
Entrada
de Dados
Clculos
Sada de
Dados
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
74
Exemplo 2
Faa um algoritmo que calcule e imprima o valor da
hipotenusa de um tringulo retngulo. Os valores dos
catetos sero informados pelo usurio.
Frmula:
2
2
2
1
Cateto Cateto Hipotenusa + =
Dados de
Entrada
Dado de
Sada
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
75
Exemplo 2
(algoritmo resolvido)
algoritmo "CalculaHipotenusa"
var hipotenusa, cateto1, cateto2 : real
inicio
escreva("Informe o valor do cateto 1: ")
leia(cateto1)
escreva("Informe o valor do cateto 2: ")
leia(cateto2)
hipotenusa <- (cateto1^2 + cateto2^2) ^ (1/2)
escreval("Hipotenusa = ",hipotenusa)
fimalgoritmo
Entrada
de Dados
Clculos
Sada de
Dados
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
76
Exemplo 3
Faa um algoritmo que solicite ao usurio o valor do
seu salrio bruto e calcule e imprima quanto ele ir
pagar de INSS.
Frmula:
INSS = 8% do salrio
Dado de
Entrada
Dados de
Sada
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
77
Exemplo 3
(algoritmo resolvido)
algoritmo "CalculaINSS"
var salario, inss : real
inicio
escreva("Informe o valor do seu salrio: ")
leia(salario)
inss <- salario * 0.08
escreval("O valor do INSS = ",inss)
fimalgoritmo
#115. Exemplo 1 (algoritmo resolvido Soluo 1)
Entrada
de Dados
Clculos
Sada de
Dados
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
78
Exerccio 1
Fazer um algoritmo que calcule e imprima o
valor da funo abaixo, sendo o valor de x
informado pelo usurio.
Para testar: x = 15 f(x) = 3445
10 4 ) (
3
+ + = x x x f
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
79
Exerccio 1
(algoritmo resolvido)
algoritmo "Funcao"
var fx, x : real
inicio
escreva("Informe o valor de X: ")
leia(x)
fx <- x^3 + 4 * x + 10
escreval("F(x) = ",fx)
fimalgoritmo
Entrada
de Dados
Clculos
Sada de
Dados
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
80
Exerccio 2
A rea da superfcie esfrica e o volume de uma esfera
so calculados a partir das frmulas abaixo. Faa um
algoritmo que leia o raio R de uma esfera e calcule e
imprima a sua rea e volume. Utilizar o valor PI = 3.1416.
Para testar: Raio = 10 rea = 1256.64 e Volume = 4188.8
3
2
3
4
4
R Volume
R rea
t
t
=
=
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
81
Exerccio 2
(algoritmo resolvido)
algoritmo "EsferaAreaVolume"
var Raio, Area, Volume : real
inicio
escreva("Informe o valor do Raio: ")
leia(Raio)
Area <- 4 * 3.1416 * Raio^2
escreval("rea da esfera = ",Area)
Volume <- 4 / 3 * 3.1416 * Raio^3
escreval("Volume da esfera = ",Volume)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
82
Exerccio 3
Faa um algoritmo que calcule e imprima o valor a
ser retido de Imposto de Renda de uma pessoa de
acordo com as frmulas abaixo. O salrio e o nmero
de dependentes sero informados pelo usurio.
Frmulas:
Lquido = Salrio (N de Dependentes x R$60,00)
IR = 15% do Lquido
Para testar: Salrio = 1000 e Dependentes = 3 IR = 123
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
83
Exerccio 3
(algoritmo resolvido)
algoritmo "CalculaImpostoRenda"
var salario, liquido, ir : real
dependentes : inteiro
inicio
escreva("Informe o seu salrio: ")
leia(salario)
escreva("Informe o nmero de dependentes: ")
leia(dependentes)
liquido <- salario - dependentes * 60
ir <- liquido * 0.15
escreval("O valor do IR R$",ir)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
84
Exerccio 4
Faa um algoritmo que leia as coordenadas X e Y de 2
pontos do plano cartesiano e calcule e imprima a
distncia entre eles.
Ponto 1 (X
1
,Y
1
) e Ponto 2 (X
2
,Y
2
)
Frmula:
( ) ( )
2
2 1
2
2 1
y y x x Distncia + =
Para testar: Ponto 1 (X
1
=3, Y
1
=4) e Ponto 2 (X
2
=6, Y
2
=7) Distncia = 4.24..
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
85
Exerccio 4
(algoritmo resolvido)
algoritmo "CalculaDistancia"
var X1, Y1, X2, Y2, DISTANCIA : real
inicio
escreva("Informe coordenada X do ponto 1: ")
leia(X1)
escreva("Informe coordenada Y do ponto 1: ")
leia(Y1)
escreva("Informe coordenada X do ponto 2: ")
leia(X2)
escreva("Informe coordenada Y do ponto 2: ")
leia(Y2)
DISTANCIA <- ((X1 - X2)^2 + (Y1 - Y2)^2) ^ (1/2)
escreval("Distncia = ",DISTANCIA)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
86
Exerccio 5
Fazer um algoritmo que calcule a converso de
temperaturas. O usurio informar o valor de uma
temperatura em Celsius e o algoritmo ir calcular e
imprimir esta mesma temperatura em Kelvin e Fahrenheit.
Para testar: Celsius = 30 Kelvin = 303 e Fahrenheit = 86
9
160 5
273
=
=
t xFahrenhei
Celsius
Kelvin Celsius
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
87
Exerccio 5
(algoritmo resolvido)
algoritmo "ConversorTemperatura"
var C, K, F : real
inicio
escreva("Informe a temperatura em Celsius: ")
leia(C)
K <- C + 273
F <- (C * 9 + 160) / 5
escreval("Temperatura em Kelvin = ",K)
escreval("Temperatura em Fahrenheit = ",F)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
88
Exerccio 6
A distncia entre um ponto P e uma reta R dado pela
funo abaixo. Faa um algoritmo que solicite ao usurio
os valores de A, B e C da reta R e as coordenadas Xo e Yo
do ponto P e calcule e imprima o valor da distncia.
Para testar: A=1, B=2, C=3, X
o
=4 e Y
o
=5 D = 7.60...
2 2
0 0
) , (
B A
C By Ax
Distncia
Y X P
C By Ax R
o o
+
+ +
=
+ + =
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
89
Exerccio 6
(algoritmo resolvido)
algoritmo "CalculaDistancia"
var X, Y, A, B, C, DISTANCIA : real
inicio
escreva("Entre com o valor de A: ")
leia(A)
escreva("Entre com o valor de B: ")
leia(B)
escreva("Entre com o valor de C: ")
leia(C)
escreva("Coordenada X do ponto: ")
leia(X)
escreva("Coordenada Y do ponto: ")
leia(Y)
DISTANCIA <- (A * X + B * Y + C) / (A^2 + B^2) ^ (1/2)
escreval("Distancia = ",DISTANCIA)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
90
Exerccio 7
Faa um algoritmo que solicite ao usurio o
valor de x e calcule e imprima o valor da
funo f(x).
Para testar: x = 5 F(x) = 2.46...
x
x
x f
5
1
) 1
4
( ) (
2
+ + =
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
91
Exerccio 7
(algoritmo resolvido)
algoritmo "Funcao"
var fx, x : real
inicio
escreva("Informe o valor de X: ")
leia(x)
fx <- ((x / 4 + 1)^2 + 1 / 5 * x) ^ (1/2)
escreval("F(x) = ",fx)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
92
Exerccio 8
Faa um algoritmo que solicite ao usurio
dois valores numricos inteiros e calcule e
imprima:
a) A soma dos nmeros;
b) A subtrao dos nmeros;
c) A multiplicao dos nmeros;
d) O resto da diviso inteira do primeiro pelo segundo;
e) O quadrado da soma dos dois nmeros;
f) A raiz quadrada da multiplicao dos dois nmeros;
g) A raiz cbica da soma dos dois nmeros.
Para testar: N1 = 5 e N2 = 2 a=7 b=3 c=10 d=1 e=49 f=3.16... g=1.91...
Ver prximo slide >
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
93
Exerccio 8
Observao: Quando criamos uma expresso
aritmtica com os operadores % e \ (diviso
inteira) TODAS as variveis da expresso tem ser
do tipo INTEIRO.
Exemplo:
var RESTO, NUMERO1, NUMERO2 : inteiro
....
RESTO <- NUMERO1 % NUMERO2
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
94
Exerccio 8
(algoritmo resolvido)
algoritmo "Calculos"
var raiz, quadrado, cubo : real
A, B, resto, soma, subtracao, multiplicacao : inteiro
inicio
escreva("Informe um nmero: ")
leia(A)
escreva("Informe outro nmero: ")
leia(B)
soma <- A + B
subtracao <- A - B
multiplicacao <- A * B
resto <- A % B
quadrado <- soma ^ 2
raiz <- multiplicacao ^ (1/2)
cubo <- soma ^ (1/3)
escreval("A soma dos dois nmeros : ",soma)
escreval("A subtrao do primeiro nmero pelo segundo : ",subtracao)
escreval("A multiplicao dos dois nmeros : ",multiplicacao)
escreval("O resto da diviso inteira do primeiro nmero pelo segundo : ",resto)
escreval("O quadrado da soma dos dois nmeros : ",quadrado)
escreval("A raiz quadrada da multiplicao dos dois nmeros : ",raiz)
escreval("A raiz cbica da soma dos dois nmeros : ",cubo)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
95
Exerccio 9
Faa um algoritmo que solicite ao usurio o valor
de S (rea de um setor circular) e (ngulo) e calcule
e imprima o valor de R (raio). Utilizar o valor PI =
3.1416.
Para testar: S = 20 e = 3 R = 27.63...
360
2
R
S
ot
=
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
96
Exerccio 9
(algoritmo resolvido)
algoritmo "AreaCircular"
var Raio, Angulo, Area : real
inicio
escreva("Informe o valor da Area: ")
leia(Area)
escreva("Informe o valor do Angulo: ")
leia(Angulo)
Raio <- ((Area * 360) / (Angulo * 3.1416)) ^ (1/2)
escreval("Raio = ",Raio)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
97
Exerccio Extra 1
Faa um algoritmo que leia as 3 notas de um
aluno e calcule imprima a mdia final deste aluno.
Considerar que a mdia ponderada e que o
peso das notas : 2, 3 e 5, respectivamente.
Para testar: Nota 1 = 10, Nota 2 = 15 e Nota 3 = 12 Mdia = 12.5
Mdia ponderada a soma das
multiplicaes dos valores dados pelos
respectivos pesos, dividido pela soma dos
pesos.
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
98
Exerccio Extra 1
(algoritmo resolvido)
algoritmo "MediaPonderada"
var media, nota1, nota2, nota2 : real
inicio
escreva("Informe a nota 1: ")
leia(nota1)
escreva("Informe a nota 2: ")
leia(nota2)
escreva("Informe a nota 3: ")
leia(nota3)
media <- (nota1*2 + nota2*3 + nota3*5) / 10
escreval("Mdia Final = ",media)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
99
Exerccio Extra 2
Faa um algoritmo que leia o tempo de durao
de um evento expresso em segundos e mostre-o
expresso em horas, minutos e segundos.
Para testar: Segundos = 10000 Hor = 2, Min = 46, Seg = 40
Dicas:
1) 1 hora = 60 minutos = 3600 segundos;
2) Utilizar os operadores \ e % (resultado e
resto de uma diviso inteira.
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
100
Exerccio Extra 2
(algoritmo resolvido)
algoritmo "TempoDuracao"
var totseg, hor, min, seg : inteiro
inicio
escreva("Informe o total de segundos do evento: ")
leia(totseg)
hor <- totseg \ 3600
min <- totseg % 3600 \ 60
seg <- totseg % 3600 % 60
escreval("Hora = ",hor)
escreval("Minutos = ",min)
escreval("Segundos = ",seg)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
101
Aula 4
Comando CONDICIONAL SE
Exerccios
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
102
Comando SE
(Estrutura condicional)
Comando que nos permite selecionar outros
comandos a serem executados, dependendo se
uma determinada condio for VERDADEIRA
ou FALSA.
Permite que o computador tome decises a
respeito de qual caminho a seguir quando da
execuo de um programa/algoritmo.
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
103
Comando SE
(Estrutura condicional)
Estrutura condicional - SIMPLES
se condio entao {condio pode ser verdadeira ou falsa}
comando
1
comando
2
...
comando
n
fimse
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
104
Comando SE
(Estrutura condicional)
se condio entao
comando
1
comando
2
...
comando
n
fimse
comando
comando
comando
comando
comando
Condio VERDADEIRA: os
comandos depois do entao
SERO executados
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
105
Comando SE
(Estrutura condicional)
se condio entao
comando
1
comando
2
...
comando
n
fimse
comando
comando
comando
comando
comando
Condio FALSA:
os comandos depois do
entao NO SERO
executados
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
106
Comando SE
(Estrutura condicional)
Estrutura condicional - COMPLETA
se condio entao {condio pode ser verdadeira ou falsa}
comando
1
...
comando
n
senao
comando
n+1
...
comando
m
fimse
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
107
Comando SE
(Estrutura condicional)
se condio entao
comando
1
comando
n
senao
comando
n+1
comando
m
fimse
comando
comando
comando
comando
comando
Condio VERDADEIRA:
apenas os comandos
depois do ento SERO
executados
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
108
Comando SE
(Estrutura condicional)
se condio entao
comando
1
comando
n
senao
comando
n+1
comando
m
fimse
comando
comando
comando
comando
comando
Condio FALSA:
apenas os comandos
depois do seno
SERO executados
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
109
Na condio do comando SE utilizamos expresses booleanas
(lgicas) que retornam VERDADEIRO ou FALSO
Podemos utilizar os seguintes operadores booleanos:
VOTO <> 99 Diferente <>
IDADE >= MAIORIDADE Maior ou igual >=
SOMA <= 0 Menor ou igual <=
NUMERO1 > NUMERO2 Maior >
VALOR < 100 Menor <
N1 = N2 Igual =
Exemplo Operao Operador
Comando SE
(Estrutura condicional)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
110
Na condio do comando SE podemos utilizar uma condio
composta, ou seja, mais de uma proposio, unidas por conectores
booleanos (lgicos):
ATENO: No caso de uma condio composta, ou seja, com mais de
uma proposio, separadas pelos conectores booleanos (E e OU),
utilizamos os parntesis para delimitar cada proposio.
nao (CIDADE = "BH")
Nega a condio nao
(IDADE >= 65) ou (SALARIO < 650) Um V = V ou
(NOTA >= 60) e (FALTAS <= 18) Todos V = V e
Exemplo Operao Conector
Comando SE
(Estrutura condicional)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
111
Comando SE
(Estrutura condicional)
Operao Resultado
V e V V
V e F F
F e V F
F e F F
Conector E
Operao Resultado
V ou V V
V ou F V
F ou V V
F ou F F
Conector OU
MAPA DA VERDADE
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
112
Exemplos:
se NUMERO > 10 entao
escreval("Nmero MAIOR que 10")
fimse
se NUMERO > 10 entao
escreval("Nmero MAIOR que 10")
senao
escreval("Nmero MENOR ou IGUAL a 10")
fimse
se (NUMERO >= 10) e (NUMERO <= 100) entao
escreval("Nmero est entre 10 e 100")
senao
escreval("Nmero est fora do limite")
fimse
Comando SE
(Estrutura condicional)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
113
algoritmo "Exemplo"
var NUMERO : inteiro
inicio
escreva("Digite um nmero inteiro: ")
leia(NUMERO)
se NUMERO > 10 entao
escreval("Nmero MAIOR que 10")
fimse
escreval("Fim do algoritmo")
fimalgoritmo
Exemplo
(algoritmo resolvido)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
114
algoritmo "Exemplo"
var NUMERO : inteiro
inicio
escreva("Digite um nmero inteiro: ")
leia(NUMERO)
se (NUMERO > 10) e (NUMERO < 100) entao
escreval("Nmero est entre 10 e 100")
fimse
escreval("Fim do algoritmo")
fimalgoritmo
Exemplo
(algoritmo resolvido)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
115
algoritmo "Exemplo"
var NUMERO : inteiro
inicio
escreva("Digite um nmero inteiro: ")
leia(NUMERO)
se (NUMERO > 10) e (NUMERO < 100) entao
escreval("Nmero est entre 10 e 100")
senao
escreval("Nmero est FORA DO LIMITE")
fimse
escreval("Fim do algoritmo")
fimalgoritmo
Exemplo
(algoritmo resolvido)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
116
Contra-exemplo:
se N1 > 10 e < 100 entao
...
se (N1 > 10) e (N1 < 100) entao
...
Comando SE
(Estrutura condicional)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
117
Contra-exemplo:
se N1 > N2 > N3 entao
...
se (N1 > N2) e (N2 > N3) entao
...
Comando SE
(Estrutura condicional)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
118
Faa um algoritmo para calcular e imprimir o
valor a ser descontado de INSS no salrio de um
empregado utilizando a tabela abaixo. O usurio
fornecer o salrio.
#76. Exemplo (algoritmo resolvido)
Faixa Salarial Alquota
At R$300,00 8%
Acima de R$300,00 10%
Exemplo 1
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
119
algoritmo "CalculaINSS"
var SALARIO, INSS : real
inicio
escreva("Digite o valor do seu salrio: ")
leia(SALARIO)
se SALARIO <= 300 entao
INSS <- SALARIO * 0.08
fimse
se SALARIO > 300 entao
INSS <- SALARIO * 0.10
fimse
escreval("Valor do INSS = ",INSS)
fimalgoritmo
Exemplo 1
(algoritmo resolvido Soluo 1)
Alquota de 8%
Alquota de 10%
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
120
algoritmo "CalculaINSS"
var SALARIO, INSS : real
inicio
escreva("Digite o valor do seu salrio: ")
leia(SALARIO)
se SALARIO <= 300 entao
INSS <- SALARIO * 0.08
senao
INSS <- SALARIO * 0.10
fimse
escreval("Valor do INSS = ",INSS)
fimalgoritmo
Exemplo 1
(algoritmo resolvido Soluo 2)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
121
algoritmo "CalculaINSS"
var SALARIO, INSS : real
inicio
escreva("Digite o valor do seu salrio: ")
leia(SALARIO)
se SALARIO <= 300 entao
INSS <- SALARIO * 0.08
escreval("Voc caiu na alquota de 8%")
senao
INSS <- SALARIO * 0.10
escreval("Voc caiu na alquota de 10%")
fimse
escreval("Valor do INSS = ",INSS)
fimalgoritmo
Exemplo 1
(algoritmo resolvido)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
122
Exemplo 2
Faixa Salarial Alquota
At R$300,00 8%
Acima de R$300,00 at R$1.000,00 9%
Acima de R$1.000,00 10%
Faa um algoritmo para calcular e imprimir o
valor a ser descontado de INSS no salrio de um
empregado utilizando a tabela abaixo. O usurio
fornecer o salrio.
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
123
Exemplo 2
(algoritmo resolvido Soluo 1)
algoritmo "CalculaINSS"
var SALARIO, INSS : real
inicio
escreva("Digite o valor do seu salrio: ")
leia(SALARIO)
se SALARIO <= 300 entao
INSS <- SALARIO * 0.08
fimse
se (SALARIO > 300) e (SALARIO <= 1000) entao
INSS <- SALARIO * 0.09
fimse
se SALARIO > 1000 entao
INSS <- SALARIO * 0.10
fimse
escreval("Valor do INSS = ",INSS)
fimalgoritmo
Alquota de 8%
Alquota de 9%
Alquota de 10%
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
124
Exemplo 2
(algoritmo resolvido Soluo 2)
algoritmo "CalculaINSS"
var SALARIO, INSS : real
inicio
escreva("Digite o valor do seu salrio: ")
leia(SALARIO)
se SALARIO <= 300 entao
INSS <- SALARIO * 0.08
senao
se SALARIO <= 1000 entao
INSS <- SALARIO * 0.09
senao
INSS <- SALARIO * 0.10
fimse
fimse
escreval("Valor do INSS = ",INSS)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
125
Exerccio 1
A Secretaria do Meio Ambiente mediu a quantidade de poluentes
atmosfricos emitidos por uma empresa. Dependendo do valor obtido,
a empresa foi multada conforme a tabela abaixo. Faa um algoritmo
que leia a quantidade de poluentes emitidos por uma empresa e
calcule e imprima a multa aplicada, se for o caso.
Poluentes = 750 Multa = 0
Para testar: Poluentes = 2820.24 Multa = R$3000
Poluentes = 3521.2 Multa = R$17606000
Quantidade de Poluente
emitido [mg/(t*m
2
)]
Valor da Multa [R$]
At 1500 Isento
Acima de 1500 at 3000 3000,00
Acima de 3000 5000,00 x quantidade de poluentes
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
126
Exerccio 1
(algoritmo resolvido Soluo 1)
algoritmo "CalculaPoluente1"
var poluente, multa : real
inicio
escreva("Informe o total de poluentes: ")
leia(poluente)
se poluente <= 1500 entao
multa <- 0
fimse
se (poluente > 1500) e (poluente <= 3000) entao
multa <- 3000
fimse
se poluente > 3000 entao
multa <- poluente * 5000
fimse
escreval("Multa de R$ ",multa)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
127
Exerccio 1
(algoritmo resolvido Soluo 2)
algoritmo "CalculaPoluente2"
var poluente, multa : real
inicio
escreva("Informe o total de poluentes: ")
leia(poluente)
se poluente <= 1500 entao
multa <- 0
senao
se poluente <= 3000 entao
multa <- 3000
senao
multa <- poluente * 5000
fimse
fimse
escreval("Multa de R$ ",multa)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
128
Exerccio 1
(algoritmo resolvido Soluo 3)
algoritmo "CalculaPoluente3"
var poluente, multa : real
inicio
escreva("Informe o total de poluentes: ")
leia(poluente)
se poluente <= 1500 entao
escreval("Isento de multa. ")
fimse
se (poluente > 1500) e (poluente <= 3000) entao
escreval("Multa de R$3000.00")
fimse
se poluente > 3000 entao
multa <- poluente * 5000
escreval("Multa de R$ ",multa)
fimse
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
129
Exerccio 2
Faa um algoritmo para ler o nome, a altura (em
metros) e o peso (em kg) de uma pessoa e informar
a ela a sua situao corporal de acordo com o seu
IMC (ndice de Massa Corporal) que ser calculado
pelo algoritmo.
I MC = Peso / Altura
2
IMC menor que 18 pessoa est desnutrida
IMC menor que 20 pessoa est abaixo do peso
IMC entre 20 e 25 pessoa est no peso ideal
IMC maior que 25 pessoa est acima do peso
IMC maior que 27 pessoa est obesa
Para testar: Altura = 1.75 e Peso = 87.5 > Pessoa est acima do peso
Pessoa est obesa
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
130
Exerccio 2
(algoritmo resolvido)
algoritmo "CalculaIMC"
var NOME : caractere
PESO, ALTURA, IMC : real
inicio
escreva("Informe seu nome: ")
leia(NOME)
escreva("Informe seu peso em Kg: ")
leia(PESO)
escreva("Informe sua altura em metros: ")
leia(ALTURA)
IMC <- PESO / ALTURA^2
se IMC < 18 entao
escreval(NOME," est desnutrido. ")
fimse
se IMC < 20 entao
escreval(NOME," est abaixo do peso. ")
fimse
se (IMC >= 20) e (IMC <= 25) entao
escreval(NOME," est no peso ideal. ")
fimse
se IMC > 25 entao
escreval(NOME," est acima do peso. ")
fimse
se IMC > 27 entao
escreval(NOME," est obesa. ")
fimse
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
131
Exerccio 3
Faa um algoritmo que solicite ao usurio um nmero
inteiro e calcule e imprima se ele divisvel ao mesmo
tempo por 5 e 7.
Observao: Para testarmos se um nmero divisvel por outro
utilizamos o operador % (RESTO DE UMA DIVISO INTEIRA).
Exemplo Se X % 2 = 0
estamos constatando que X divisvel por 2.
Para testar: 35 divisvel simultaneamente por 5 e 7
40 no divisvel simultaneamente por 5 e 7
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
132
Exerccio 3
(algoritmo resolvido Soluo 1)
algoritmo "DivisivelPor5e7a"
var numero : inteiro
inicio
escreva("Informe um nmero: ")
leia(numero)
se (numero % 5 = 0) e (numero % 7 = 0) entao
escreval(numero," divisvel por 5 e 7")
senao
escreval(numero," no divisvel por 5 e 7")
fimse
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
133
Exerccio 3
(algoritmo resolvido Soluo 2)
algoritmo "DivisivelPor5e7b"
var numero, resto1, resto2 : inteiro
inicio
escreva("Informe um nmero: ")
leia(numero)
resto1 <- numero % 5
resto2 <- numero % 7
se (resto1 = 0) e (resto2 = 0) entao
escreval(numero," divisvel por 5 e 7")
senao
escreval(numero," no divisvel por 5 e 7")
fimse
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
134
Exerccio 4
Pela frmula de Bskara abaixo calculamos as razes reais de uma
equao do segundo grau. Faa um algoritmo para solicitar ao
usurio os valores de A, B e C e calcular e imprimir as razes da
funo f(x).
AC B
A
B
Razes
C Bx Ax x f
4
2
) (
2
2
= A
A
=
+ + =
< A
= A
> A
razes tem no
raz
reais razes
_ _ 0
_ 1 0
_ _ 2 0
A=2, B=4 e C=2 teremos 1 raiz = -1
Para testar: A=4, B=3 e C=5 no teremos razes
A=3, B=3 e C=0 teremos 2 razes = 0 e -1
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
135
Exerccio 4
(algoritmo resolvido)
algoritmo "Baskara"
var a, b, c, delta, raiz : real
inicio
escreva("Informe o valor de A: ")
leia(a)
escreva("Informe o valor de B: ")
leia(b)
escreva("Informe o valor de C: ")
leia(c)
delta <- b^2 4 * a * c
se delta > 0 entao
raiz <- (- b + delta^(1/2)) / (2 * a)
escreval("Raiz 1 = ",raiz)
raiz <- (- b - delta^(1/2)) / (2 * a)
escreval("Raiz 2 = ",raiz)
fimse
se delta = 0 entao
raiz <- - b / (2 * a)
escreval("Raiz = ",raiz)
fimse
se delta < 0 entao
escreval("No tem Raiz")
fimse
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
136
Exerccio 5
Fazer um algoritmo que leia 3 valores numricos inteiros e
verifique se eles podem ser as medidas dos seguintes
tringulos:
a) Equiltero = as medidas dos 3 lados so iguais
b) Escaleno = as medidas dos 3 lados so diferentes
c) Retngulo = o quadrado de um dos lados igual a
soma dos quadrados dos outros 2 lados
Valores: 3, 4 e 5 = Tringulo retngulo
= Tringulo escaleno
Para testar: Valores: 7, 7 e 7 = Tringulo eqiltero
Valores: 4, 8 e 9 = Tringulo escaleno
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
137
Exerccio 5
(algoritmo resolvido)
algoritmo "Triangulos"
var lado1, lado2, lado3 : inteiro
inicio
escreva("Informe o valor do lado 1 = ")
leia(lado1)
escreva("Informe o valor do lado 2 = ")
leia(lado2)
escreva("Informe o valor do lado 3 = ")
leia(lado3)
se (lado1 = lado2) e (lado1 = lado3) entao
escreval("Lados de um tringulo eqiltero")
fimse
se (lado1 <> lado2) e (lado1 <> lado3) e (lado2 <> lado3) entao
escreval("Lados de um tringulo escaleno")
fimse
se (lado1^2=lado2^2+lado3^2)ou(lado2^2=lado1^2+lado3^2)ou(lado3^2=lado1^2+lado2^2)entao
escreval("Lados de um tringulo retngulo")
fimse
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
138
Exerccio 6
Fazer um algoritmo que leia 2 valores numricos inteiros e a
opo referente a operao que o usurio deseja que seja feita.
Imprima o resultado da operao.
Nmeros 10 e 12 Operao 1 Resultado = 11
Para testar: Nmeros 5 e 7 Operao 2 Resultado = 35
Nmeros 24 e 11 Operao 3 Resultado = 2
Opo Operao
1 Mdia aritmtica entre os nmeros
2 Produto dos nmeros
3 Resultado da diviso inteira do primeiro pelo segundo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
139
Exerccio 6
(algoritmo resolvido)
algoritmo "CalculaOperacao"
var NUM1, NUM2, OPERACAO, PRODUTO, QUOCIENTE : inteiro
MEDIA : real
inicio
escreva("Informe primeiro nmero: ")
leia(NUM1)
escreva("Informe segundo nmero: ")
leia(NUM2)
escreva("Informe operao (1, 2 ou 3): ")
leia(OPERACAO)
se OPERACAO = 1 entao
MEDIA <- (NUM1 + NUM2) / 2
escreval("Mdia: ",MEDIA)
fimse
se OPERACAO = 2 entao
PRODUTO <- NUM1 * NUM2
escreval("Produto: ",PRODUTO)
fimse
se OPERACAO = 3 entao
QUOCIENTE <- NUM1 \ NUM2
escreval("Quociente: ",QUOCIENTE)
fimse
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
140
Exerccio 7
Faa um algoritmo que receba o valor de x, e calcule
e imprima o valor de f(x) conforme a funo abaixo.
x = 4 f(x) = 0
Para testar: x = 15 f(x) = 5.3953...
x = 2 f(x) = 3.7527...
>
+
=
<
+
=
4 ,
16
3 5
4 , 0
4 ,
16
3 5
) (
2
2
x se
x
x
x se
x se
x
x
x f
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
141
Exerccio 7
(algoritmo resolvido Soluo 1)
algoritmo "FunaoMultipla"
var x, f : real
inicio
escreva("Escreva o valor de X: ")
leia(x)
se x < 4 entao
f <- (5*x + 3)/(16 - x^2)^(1/2)
fimse
se x = 4 entao
f <- 0
fimse
se x > 4 entao
f <- (5*x + 3)/(x^2 - 16)^(1/2)
fimse
escreval("Valor da funo = ",f)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
142
Exerccio 7
(algoritmo resolvido Soluo 2)
algoritmo "FunaoMultipla"
var x, f : real
inicio
escreva("Escreva o valor de X: ")
leia(x)
se x < 4 entao
f <- (5*x + 3)/(16 - x^2)^(1/2)
senao
se x = 4 entao
f <- 0
senao
f <- (5*x + 3)/(x^2 - 16)^(1/2)
fimse
fimse
escreval("Valor da funo = ",f)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
143
Exerccio 8
A legislao brasileira prev a distribuio dos lucros de uma
empresa semestralmente. Cada empresa faz esta distribuio
proporcional ao salrio de cada empregado e com clculos
especficos. Faa um algoritmo que solicite ao usurio o salrio
de um empregado e calcule e imprima o valor de sua
participao nos lucros (PL Lquido) de acordo com a tabela e
frmulas abaixo:
PL Bruto = Valor Fixo + Percentual sobre o Salrio
Imposto de Renda = 25% sobre PL Bruto
PL Lquido = PL Bruto - Imposto de Renda
Salrio Valor fixo % sobre Salrio
At R$ 300,00 R$ 500,00 70%
De R$ 300,01 at R$ 1000,00 R$ 200,00 50%
Acima de R$ 1000,00 Zero 30%
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
144
Exerccio 8
(algoritmo resolvido)
algoritmo "ParticipacaoLucros"
var Salario, PLBruto, PLLiquido, IR : real
inicio
escreva("Informe seu salrio: ")
leia(Salario)
se Salario <= 300 entao
PLBruto <- 500 + Salario * 0.7
fimse
se (Salario > 300) e (Salario <= 1000) entao
PLBruto <- 200 + Salario * 0.5
fimse
se Salario > 1000 entao
PLBruto <- Salario * 0.3
fimse
IR <- PLBruto * 0.25
PLLiquido <- PLBruto - IR
escreval("PL = ",PLLiquido)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
145
Exerccio Extra 1
Faa um algoritmo que leia o nome e a altura (em
metros) de uma pessoa e calcule e imprima os pesos
mnimo e mximo para que ela esteja dentro da faixa
de peso ideal de acordo com a tabela de IMC (ndice
de Massa Corporal) abaixo.
I MC = Peso / Altura
2
IMC menor que 20 pessoa est abaixo do peso
IMC entre 20 e 25 pessoa est no peso ideal
IMC maior que 25 pessoa est acima do peso
Para testar: Altura = 1.75 > Peso Mnimo = 61.25 e Peso Mximo = 76.56
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
146
Exerccio Extra 1
(algoritmo resolvido)
algoritmo "PesoMinimoMaximo"
var altura, pesominimo, pesomaximo : real
nome : caractere
inicio
escreva("Informe seu nome: ")
leia(nome)
escreva("Informe sua altura em metros: ")
leia(altura)
pesominimo <- 20 * altura ^ 2
pesomaximo <- 25 * altura ^ 2
escreval(nome," seu peso mnimo deve ser: ",pesominimo)
escreval(nome," seu peso mximo deve ser: ",pesomaximo)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
147
Exerccio Extra 2
Uma operadora de TV a cabo nacional oferece uma srie de servios aos seus
assinantes. A conta a ser paga por um assinante, no fim do ms, constituda por
um valor fixo mensal somado ao consumo dos canais pay-per-view, que so
cobrados por uso dirio, ambos de acordo com o pacote que ele contratou (ver
tabela 1), mais os servios extras, alm da cobrana dos impostos sobre os
servios prestados que varia conforme a cidade do assinante (ver tabela 2).
Faa um algoritmo que solicite ao usurio o cdigo do seu pacote, a quantidade de
dias de consumo de canais pay-per-view, o valor dos servios extras, e a cidade do
assinante, e calcule e imprima o valor da conta que o assinante dever pagar.
Conta = Valor Fixo + Dirias Canais PPP + Servios Extras + Imposto (sobre Fixo/PPP/Extras)
Pacote Cdigo Valor Fixo (ms) Canais PPP (diria)
Basic 1 R$65,00 R$1,20 limitado a R$65,00
Advanced 2 R$104,00 R$2,10
Premium 3 R$137,00 Isento
Cidade Imposto
Belo Horizonte Isento
So Paulo 1%
Rio de Janeiro 1,5%
Demais cidades 2%
Pacote = 1 Dias = 70 Extras = 57.50 Cidade = Belo Horizonte Conta = 187.50
Testar: Pacote = 2 Dias = 10 Extras = 0.00 Cidade = Rio de Janeiro Conta = 126.88
Pacote = 3 Dias = 2 Extras = 980.00 Cidade = Aracaju Conta = 1139.34
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
148
algoritmo "TVaCabo"
var dias, codigo : inteiro
conta, contafinal, imposto, extras : real
cidade: caractere
inicio
escreva("Informe cdigo do pacote: ")
leia(codigo)
escreva("Informe a quantidade de dias utilizado: ")
leia(dias)
escreva("Informe valor dos servios extras: ")
leia(extras)
escreva("Informe nome da cidade do assinante: ")
leia (cidade)
se codigo = 1 entao
se 1.20*dias > 65 entao
conta <- 65 + 65 + extras
senao
conta <- 65 + 1.20*dias + extras
fimse
fimse
(continua...)
Exerccio Extra 2
(algoritmo resolvido)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
149
(continuao...)
se codigo = 2 entao
conta <- 104 + 2.10*dias + extras
fimse
se codigo = 3 entao
conta <- 137 + extras
fimse
se cidade = "Belo Horizonte" entao
imposto <- 0
senao
se cidade = "So Paulo" entao
imposto <- 0.01
senao
se cidade = "Rio de Janeiro" entao
imposto <- 0.015
senao
imposto <- 0.02
fimse
fimse
fimse
contafinal <- conta + imposto*conta
escreval("Valor da conta = ", contafinal)
fimalgoritmo
Exerccio Extra 2
(algoritmo resolvido)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
150
Exerccio Extra 3
Uma escola de lnguas tem uma frmula bem peculiar para calcular o
RESULTADO FINAL de seus alunos. Ela leva em conta o nmero de faltas, as
trs notas de provas, a nota do trabalho final e a idade do aluno. Faa um
algoritmo para ler as faltas, as notas das provas, a nota do trabalho final e a
idade do aluno, e que calcule e imprima o seu resultado final.
Nota Final = Mdia aritmtica das duas maiores Notas das Provas X Peso1 + Nota do Trabalho Final X Peso2
Nota Final Resultado Final
At 50 Reprovado
De 50 at 70 Regular
De 70 at 80 Bom
De 80 at 90 Muito Bom
Acima de 90 Excelente
Faltas Peso 1
At 5 3
De 5 at 10 2
Acima de 10 1
Idade Peso 2
At 17 1
De 18 at 50 2
Acima de 50 3
Faltas = 0 Provas = 5, 9, 7.2 Trabalho = 10.5 Idade = 15 Resultado = Reprovado
Testar: Faltas = 6 Provas = 12, 20, 3 Trabalho = 30 Idade = 22 Resultado = Excelente
Faltas = 20 Provas = 8, 2.5, 4 Trabalho = 17 Idade = 60 Resultado = Regular
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
151
Exerccio Extra 3
(algoritmo resolvido)
algoritmo "EscolaLinguas"
var faltas, idade, peso1, peso2 : inteiro
prova1, prova2, prova3, somaprova, trabalho, notafinal : real
resultado : caractere
inicio
escreva("Informe idade do aluno: ")
leia(idade)
escreva("Informe quantidade de faltas: ")
leia(faltas)
escreva("Informe nota da prova 1: ")
leia(prova1)
escreva("Informe nota da prova 2: ")
leia(prova2)
escreva("Informe nota da prova 3: ")
leia(prova3)
escreva("Informe nota do trabalho final: ")
leia(trabalho)
(Continua...)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
152
Exerccio Extra 3
(algoritmo resolvido)
(Continuao...)
se faltas < 5 entao
peso1 <- 3
senao
se faltas < 10 entao
peso1 <- 2
senao
peso1 <- 1
fimse
fimse
se idade < 18 entao
peso2 <- 1
senao
se idade < 50 entao
peso2 <- 2
senao
peso2 <- 3
fimse
fimse
(Continua...)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
153
Exerccio Extra 3
(algoritmo resolvido)
(Continuao...)
se (prova1 < prova2) e (prova1 < prova3) entao
somaprova <- prova2 + prova3
senao
se (prova2 < prova1) e (prova2 < prova3) entao
somaprova <- prova1 + prova3
senao
somaprova <- prova1 + prova2
fimse
fimse
notafinal <- somaprova / 2 * peso1 + trabalho * peso2
(Continua...)
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
154
Exerccio Extra 3
(algoritmo resolvido)
(Continuao...)
se notafinal < 50 entao
resultado <- "Reprovado"
senao
se notafinal < 70 entao
resultado <- "Regular"
senao
se notafinal < 80 entao
resultado <- "Bom"
senao
se notafinal < 90 entao
resultado <- "Muito Bom"
senao
resultado <- "Excelente"
fimse
fimse
fimse
fimse
escreval("Resultado Final = ",resultado)
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
155
Aula 5
Comando CONDICIONAL CASO
Exerccios
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
156
Comando CASO
(Estrutura condicional de seleo mltipla)
Comando utilizado para selees mltiplas de
outros comandos.
Pode-se utilizar vrias opes de escolha e
vrios valores de seleo.
Se nenhuma opo for encontrada pode-se criar
uma opo default.
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
157
Comando CASO
(Estrutura condicional de seleo mltipla)
escolha <varivel ou expresso aritmtica>
caso <valor
1
>, <valor
2
>, ... , <valor
n
>
comando
1
...
comando
n
caso <valor
n+1
>, <valor
n+2
>, ... , <valor
m
>
comando
n+1
...
comando
m
caso <valor
m+1
> ate <valor
m+2
>, ... , <valor
o
>
comando
o+1
...
comando
p
...
fimescolha
ate: utilizado para
se definir um
intervalo.
Varivel ou Expresso: Tem que
retornar valores INTEIROS ou
CARACTERES.
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
158
Comando CASO
(Estrutura condicional de seleo mltipla)
var IDADE : inteiro
...
leia(IDADE)
escolha IDADE
caso 0,1,2,3,4,5,6,7,8,9,10
escreval("Criana")
caso 11,12,13,14,15,16,17
escreval("Adolescente")
caso 18 ate 45
escreval("Adulto")
fimescolha
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
159
Comando CASO
(Estrutura condicional de seleo mltipla)
escolha <varivel ou expresso aritmtica>
caso <valor1>, <valor
2
>, ... , <valor
n
>
comando
1
...
comando
n
caso <valor
n+1
>, <valor
n+2
>, ... , <valor
m
>
comando
n+1
...
comando
m
...
outrocaso
comando
m+1
...
comando
o
fimescolha
Opo default: pode
ou no ser declarada
no comando caso.
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
160
Comando CASO
(Estrutura condicional de seleo mltipla)
var IDADE : inteiro
...
leia(IDADE)
escolha IDADE
caso 0 ate 10
escreval("Criana")
caso 11 ate 17
escreval("Adolescente")
caso 18 ate 45
escreval("Adulto")
outrocaso
escreval("Idoso")
fimescolha
Opo default: pode
ou no ser declarada
no comando caso.
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
161
Comando CASO
(Estrutura condicional de seleo mltipla)
escolha IDADE
caso IDADE <= 10
escreval("Criana")
caso de 11 ate 17
escreval("Adolescente")
caso > 45
escreval("Adulto")
outrocaso (NO COLOCAR NADA AQUI)
escreval("Idoso")
fimescolha
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
162
Exemplo 1
O resultado final de um aluno em uma determinada escola
depende da nota final obtida por ele, de acordo com a
tabela abaixo. Faa um algoritmo que leia a nota final (que
inteira) de um aluno, e calcule e imprima o seu resultado
final.
Nota Final Resultado
At 3 Reprovado
De 4 at 7 Em recuperao
De 8 at 10 Aprovado
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
163
Exemplo 1 (utilizando SE)
(algoritmo resolvido)
algoritmo "ResultadoFinal"
var nota : inteiro
inicio
escreva("Entre com a nota final do aluno: ")
leia(nota)
se nota <= 3 entao
escreval("Reprovado")
fimse
se (nota >= 4) e (nota <= 7) entao
escreval("Em recuperao")
fimse
se nota >= 8 entao
escreval("Aprovado")
fimse
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
164
Exemplo 1 (utilizando CASO)
(algoritmo resolvido)
algoritmo "ResultadoFinal"
var nota : inteiro
inicio
escreva("Entre com a nota final do aluno: ")
leia(nota)
escolha nota
caso 0,1,2,3
escreval("Reprovado")
caso 4,5,6,7
escreval("Em recuperao")
caso 8,9,10
escreval("Aprovado")
fimescolha
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
165
Exemplo 1 (utilizando CASO)
(algoritmo resolvido)
algoritmo "ResultadoFinal"
var nota : inteiro
inicio
escreva("Entre com a nota final do aluno: ")
leia(nota)
escolha nota
caso 0 ate 3
escreval("Reprovado")
caso 4 ate 7
escreval("Em recuperao")
caso 8 ate 10
escreval("Aprovado")
fimescolha
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
166
Exemplo 1 (utilizando SE)
(algoritmo resolvido)
algoritmo "ResultadoFinal"
var nota : inteiro
inicio
escreva("Entre com a nota final do aluno: ")
leia(nota)
se (nota >= 0) e (nota <= 10) entao
se nota <= 3 entao
escreval("Reprovado")
fimse
se (nota >= 4) e (nota <= 7) entao
escreval("Em recuperao")
fimse
se nota >= 8 entao
escreval("Aprovado")
fimse
senao
escreval("Nota invlida!")
fimse
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
167
Exemplo 1 (utilizando CASO)
(algoritmo resolvido)
algoritmo "ResultadoFinal"
var nota : inteiro
inicio
escreva("Entre com a nota final do aluno: ")
leia(nota)
escolha nota
caso 0 ate 3
escreval("Reprovado")
caso 4 ate 7
escreval("Em recuperao")
caso 8 ate 10
escreval("Aprovado")
fimescolha
fimalgoritmo
outrocaso
escreval("Nota invlida")
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
168
Exemplo 2
Faa um algoritmo que leia o nome de um time de futebol
do Brasil e informe se ele do Rio de Janeiro, de So
Paulo ou de Minas Gerais.
Atltico Mineiro => Time de Minas Gerais
Para testar: Botafogo => Time do Rio de Janeiro
Corinthians => Time de So Paulo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
169
Exemplo 2
(algoritmo resolvido)
algoritmo "Times"
var time : caractere
inicio
escreva("Entre com o nome de um time de futebol: ")
leia(time)
escolha time
caso "Flamengo","Fluminense","Vasco","Botafogo"
escreval(" um time carioca.")
caso "So Paulo","Palmeiras","Santos","Corinthians"
escreval(" um time paulista.")
caso "Atltico Mineiro","Cruzeiro","Amrica Mineiro","Villa Nova"
escreval(" um time mineiro.")
outrocaso
escreval(" um time de outro estado.")
fimescolha
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
170
Exerccio 1
Uma loteria esportiva paga prmios proporcionais a quantidade de
acertos de cada apostador. Ela tem 13 jogos. Se o apostador acertar
at 5 jogos ele no ganha nada, se acertar de 6 a 10 jogos ele ganha
um outro carto para apostar, se acertar 11 jogos ganha R$100, 12
jogos R$1000 e 13 jogos R$50000. Faa um algoritmo que leia o nome
do apostador e a quantidade de jogos que ele acertou, e calcule e
imprima o prmio que ele ganhou.
Para testar: 4 acertos = Nenhum prmio
7 acertos = Ganha outro carto
13 acertos = Prmio de R$50.000,00
Acertos Prmio
At 5 Nenhum
De 6 at 10 Outro carto
11 R$100,00
12 R$1.000,00
13 R$50.000,00
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
171
Exerccio 1
(algoritmo resolvido)
algoritmo "Loteria"
var nome : caractere
acertos : inteiro
inicio
escreva("Entre com nome do apostador: ")
leia(nome)
escreva("Entre com quantidade de acertos: ")
leia(acertos)
escolha acertos
caso 0 ate 5
escreval(nome," -> Nenhum prmio")
caso 6 ate 10
escreval(nome," -> Ganha outro carto")
caso 11
escreval(nome," -> Prmio de R$100,00")
caso 12
escreval(nome," -> Prmio de R$1.000,00")
caso 13
escreval(nome," -> Prmio de R$50.000,00")
outrocaso
escreval("Quantidade de acertos invlidos")
fimescolha
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
172
Exerccio 2
Faa um algoritmo que solicite ao usurio o nome de um
ms do ano (por extenso) e imprima a qual bimestre ele
pertence.
Para testar: Ms: Janeiro = Bimestre 1
Ms: Julho = Bimestre 4
Ms: Dezembro = Bimestre 6
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
173
Exerccio 2
(algoritmo resolvido)
algoritmo "Bimestre"
var mes : caractere
inicio
escreva ("Entre com o nome de um ms do ano: ")
leia(mes)
escolha mes
caso "Janeiro","Fevereiro"
escreval ("Este ms pertence ao Bimestre 1")
caso "Maro","Abril"
escreval ("Este ms pertence ao Bimestre 2")
caso "Maio","Junho"
escreval ("Este ms pertence ao Bimestre 3")
caso "Julho","Agosto"
escreval ("Este ms pertence ao Bimestre 4")
caso "Setembro","Outubro"
escreval ("Este ms pertence ao Bimestre 5")
caso "Novembro","Dezembro"
escreval ("Este ms pertence ao Bimestre 6")
outrocaso
escreval ("Ms invlido!")
fimescolha
fimalgoritmo
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
174
Exerccio 3
Faa um algoritmo que leia as 3 notas parciais de um
aluno (valores inteiros), calcule a NOTA FINAL (soma das
notas parciais) e imprima o CONCEITO do aluno conforme
a tabela abaixo:
Para testar: Notas 20, 40 e 10 = Conceito C
Notas 5, 10 e 40 = Conceito E
Notas 20, 30 e 40 = Conceito A
Nota Final Conceito
Entre 90 e 100 A
Entre 80 e 89 B
Entre 70 e 79 C
Entre 60 e 69 D
Abaixo de 60 E
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
175
Exerccio 3
(algoritmo resolvido)
algoritmo "Conceito"
var nota1, nota2, nota3, notafinal: inteiro
inicio
escreva("Informe a nota 1: ")
leia(nota1)
escreva("Informe a nota 2: ")
leia(nota2)
escreva("Informe a nota 3: ")
leia(nota3)
notafinal <- nota1 + nota2 + nota3
escolha notafinal
caso 0 ate 59
escreval("Conceito E")
caso 60 ate 69
escreval("Conceito D")
caso 70 ate 79
escreval("Conceito C")
caso 80 ate 89
escreval("Conceito B")
caso 90 ate 100
escreval("Conceito A")
outrocaso
escreval("Nota final invlida!")
fimescolha
fimalgoritmo
Uso de uma
varivel do tipo
INTEIRO
resultado de uma
expresso
aritmtica
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
176
Exerccio 3
(algoritmo resolvido)
algoritmo "Conceito"
var nota1, nota2, nota3 : inteiro
inicio
escreva("Informe a nota 1: ")
leia(nota1)
escreva("Informe a nota 2: ")
leia(nota2)
escreva("Informe a nota 3: ")
leia(nota3)
escolha nota1 + nota2 + nota3
caso 0 ate 59
escreval("Conceito E")
caso 60 ate 69
escreval("Conceito D")
caso 70 ate 79
escreval("Conceito C")
caso 80 ate 89
escreval("Conceito B")
caso 90 ate 100
escreval("Conceito A")
outrocaso
escreval("Nota final invlida!")
fimescolha
fimalgoritmo
Uso de uma
expresso
aritmtica cujo
resultado ser
INTEIRO
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
177
Exerccios (para entregar)
Valor: 8 pontos (cada exerccio vale 1 ponto);
Forma de entrega: rea do aluno na pgina da
escola na internet (exerccio por exerccio);
Data mxima de entrega: 31/03/2013 (domingo at
meia-noite);
Um ou mais exerccios podero ser feitos em dupla
(somente um elemento da dupla entregar o
exerccio);
Colocar seu nome, e de seu colega (se for o caso),
em cada algoritmo, em Autor;
Exerccios sem nome, iguais e mal feitos sero
zerados;
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
178
Exerccio 1
Faa um algoritmo que leia um nmero real qualquer.
Se o valor for maior que zero, calcule e imprima a
rea e o permetro de um quadrado. Caso o valor seja
menor ou igual a zero, mostre uma mensagem
dizendo que o valor INVLIDO.
xLADO PERMETRO
LADO REA
4
2
=
=
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
179
Exerccio 2
Tendo como dados de entrada a altura (em metros)
e o sexo de uma pessoa (F para feminino e M
para masculino), faa um algoritmo que calcule o
peso ideal da mesma, utilizando as seguintes
frmulas:
Para homens:
Para mulheres: 7 . 44 1 . 62 = xALTURA PesoIdeal
58 7 . 72 = xALTURA PesoIdeal
Altura = 1.75 Sexo = F Peso = 63.975
Para testar: Altura = 1.75 Sexo = M Peso = 69.225
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
180
Exerccio 3
Ao se fazer uma determinada aplicao financeira, quando resgatamos o
dinheiro, a financeira calcula o valor a ser resgatado levando-se em conta
o nmero de dias que o dinheiro ficou aplicado, a taxa de juros diria, uma
taxa de administrao de R$10,00 e o valor a ser retido na fonte de
imposto de renda (percentual de 15%). Faa um algoritmo que calcule o
valor resgatado, solicitando ao usurio o capital aplicado, o nmero de dias
que ficou aplicado e a taxa diria e calcule e imprime o rendimento, o
imposto de renda e o valor a ser resgatado.
Rendimento = Capital Aplicado x Taxa Diria x Nmero de Dias
Imposto de Renda = 15% sobre o Rendimento
Valor Resgatado = Capital Aplicado + Rendimento IR Taxa de Administrao
Observao: A Taxa Diria informada percentualmente pelo usurio mas deve
ser convertida para ser utilizada na frmula do clculo do rendimento.
Para testar: Capital Aplicado = R$10000 - Dias = 60 - Taxa Diria = 0.1%
Rendimento = R$600 - IR = R$90 - Valor Resgatado = R$10500
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
181
Exerccio 4
A multa sobre o pagamento de um determinado imposto calculada
de acordo com o nmero de dias de atraso (vide tabela abaixo). Faa
um algoritmo que leia o valor do imposto e o nmero de dias de atraso
e calcule e imprima a multa a ser paga.
Dias de atraso Percentual de multa s/ Imposto
At 10 Isenta
De 11 a 30 2%
De 31 a 60 10% + 0,5% por dia de atraso
De 61 a 100 100%
Acima de 100 150% + R$1,00 por dia de atraso
Imposto = R$100 Dias = 5 Multa = R$0
Para testar: Imposto = R$100 Dias = 50 Multa = R$35
Imposto = R$100 Dias = 120 Multa = R$270
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
182
Exerccio 5
Faa um algoritmo que calcule o salrio mensal a receber de um
vendedor comissionado. O salrio constitudo de um valor fixo de
R$240,00 mais o valor referente a comisso, calculada de acordo com
a tabela abaixo, que varia com as vendas mensais realizadas pelo
vendedor. O algoritmo dever solicitar ao usurio o valor mensal das
vendas do vendedor e calcular e imprimir o seu salrio no ms.
SALRIO = VALOR FIXO + COMISSO
Total Mensal Vendido Clculo da Comisso
At R$1000,00 Zero
De R$1000,01 a 10000,00 10% sobre o valor vendido
Acima de R$10000,00 R$1000,00 fixos
Vendas = R$560,00 Salrio = R$240,00
Para testar: Vendas = R$7500,00 Salrio = R$990,00
Vendas = R$23000,00 Salrio = R$1240,00
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
183
Exerccio 6
Pelas novas regras da CBV, a pontuao que as equipes
de vlei ganham ao fim de uma partida da Super Liga so:
placares de 3 a 0 ou 3 a 1, do 3 pontos a equipe
vencedora e nenhum ponto a equipe perdedora; placar de
3 a 2, do 2 pontos a equipe vencedora e 1 ponto a equipe
perdedora. Faa um algoritmo que leia os nomes das
equipes (equipe 1 e equipe 2) e o placar de um jogo (sets
ganhos da equipe 1 e sets ganhos da equipe 2), e calcule
e imprima os pontuao que cada equipe ganhou na
partida.
Equipe 1 = Cruzeiro Equipe 2 = Minas
Para testar: Sets equipe 1 = 2 Sets equipe 2 = 3
Pontos Cruzeiro = 1 Pontos Minas = 2
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
184
Exerccio 7
Uma indstria produtora de bolas de futebol fabricou uma grande quantidade
para vender na poca da Copa do Mundo em 2014. Para isto ela dever
estocar toda a produo em galpes a serem alugados at a Copa. As bolas
sero armazenadas em caixas de papelo, que comportam at 10 bolas. Cada
galpo a ser alugado comporta at 850 caixas de papelo. Faa um algoritmo
que leia a quantidade de bolas produzidas pela fbrica, a quantidade de bolas
com defeito e que sero descartadas, o preo unitrio das caixas de papelo,
a quantidade de meses at a Copa, alm do valor mensal do aluguel, e calcule
e imprima o custo total de embalagem mais estocagem de toda a produo.
Observao: A ltima caixa de papelo dever ser estocada mesmo que
incompleta. O ltimo galpo dever ser alugado mesmo que no esteja
totalmente cheio.
Para testar: Produo de bolas = 85000 Bolas com defeito = 103
Caixa Papelo = R$0,50 Aluguel Mensal = R$100,00
Meses para a Copa = 44 Custo Total = R$ 48245,00
Prof. Ricardo Luiz de Freitas ricardo@fumec.br
185
Exerccio 8
Faa um algoritmo que leia a hora inicial, minuto inicial,
hora final e minuto final de um jogo. A seguir, calcule e
imprima a durao do jogo, mostrando o resultado no
seguinte formato:
O jogo durou xxx horas e yyy minutos.
Observao: O jogo terminou no mesmo dia em que ele
comeou.
Hora Inicio = 10:15 Hora Fim = 16:25 Durao = 6 hs 10 min
Para testar: Hora Inicio = 10:15 Hora Fim = 10:45 Durao = 0 hs 30 min
Hora Inicio = 10:15 Hora Fim = 18:05 Durao = 7 hs 50 min