You are on page 1of 14

Bacharelado em Cincia e Tecnologia

BC-0505 Processamento da Informao


Lista de Exerccios N 01
Algoritmos Estruturas Sequenciais
RESOLUO em PORTUGOL

ATENO- Para cada um dos exerccios abaixo, antes de escrever o algoritmo, identifique
ENTRADA, PROCESSAMENTO e SADA, utilizando a seguinte tcnica de interpretao de
enunciado:

1. Leia um nmero inteiro e escreva seu sucessor e antecessor.

SADA: Quais os resultados que o algoritmo dever fornecer ?


Sucessor e antecessor de um nmero inteiro.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Um nmero inteiro (Z).

PROCESSAMENTO: Como transformar os insumos na sada?


Sucessor=Z+1
Antecessor=Z-1

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
//DECLARAO DE VARIVEIS
inteiro z, ant, suc

// ENTRADA
escreva ("Digite um nmero inteiro:\n")
leia (z)

// PROCESSAMENTO
ant = z - 1
suc = z + 1

// SADA
escreva ("\nAntecessor: " + ant)
escreva ("\nSucessor: " + suc)
}
}

2. Leia dois nmeros e escreva o dividendo, divisor, quociente e resto.

SADA: Quais os resultados que o algoritmo dever fornecer ?


O dividendo, divisor, quociente e resto entre dois nmeros.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Dois nmeros (n1 e n2).

PROCESSAMENTO: Como transformar os insumos na sada?


Dividendo = n1
Divisor = n2
Quociente = n1/n2
Resto = n1 (n2*Quociente)

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
//DECLARAO DE VARIVEIS
inteiro n1, n2, divid, divis, quoc, resto

// ENTRADA
escreva ("Digite o primeiro nmero inteiro:\n")
leia (n1)
escreva ("Digite o segundo nmero inteiro:\n")
leia (n2)

// PROCESSAMENTO
divid = n1
divis = n2
quoc = n1 / n2
resto = n1 % n2

// SADA
escreva ("\nDividendo: " + divid + "\nDivisor: " + divis + "\nQuociente: " + quoc + "\nResto: " +
resto)
}
}

3. Calcule a dvida do cheque especial ao ser quitada 6 meses depois a uma taxa de 5% de juros. O valor
do emprstimo deve ser informado.

SADA: Quais os resultados que o algoritmo dever fornecer ?


O valor da dvida do cheque especial a ser quitada.

ENTRADA: Quais os insumos necessrios para se obter a sada?


O valor do emprstimo (N).

PROCESSAMENTO: Como transformar os insumos na sada?


Frmula de juros compostos: D=N(1+0.05)^6

PROGRAMA - PORTUGOL
programa
{
inclua biblioteca Matematica --> mat
funcao inicio()
{
//DECLARAO DE VARIVEIS
real N, D

// ENTRADA
escreva ("Digite o valor do emprstimo:\n")
leia (N)

// PROCESSAMENTO (Frmula de Juros Compostos)


D = N * (mat.potencia((1 + 0.05),6.0))

// SADA
escreva ("\nValor da dvida: " + D)
}
}

4. Dada a base e a altura de um retngulo, calcule o permetro, a rea e a diagonal.

SADA: Quais os resultados que o algoritmo dever fornecer ?


O permetro, a rea e a diagonal do retngulo.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Base e altura de um retngulo

PROCESSAMENTO: Como transformar os insumos na sada?


Permetro = (2*altura) + (2*base)
rea = altura*base
Diagonal = sqrt((base*base) + (altura*altura))

PROGRAMA - PORTUGOL
programa
{
inclua biblioteca Matematica -> mat
funcao inicio()
{
//DECLARAO DE VARIVEIS
real base, alt, per, area, diag

// ENTRADA
escreva ("Informe o valor da base do retngulo:\n")
leia (base)
escreva ("Informe o valor da altura do retngulo:\n")
leia (alt)

// PROCESSAMENTO
per = (2*alt) + (2*base)
area = alt*base
diag = mat.raiz((base*base) + (alt*alt),2.0)

// SADA
escreva ("\nO permetro do retngulo : " + per)
escreva ("\nA rea do retngulo : " + area)
escreva ("\nA diagonal do retngulo : " + diag)
}
}

5. Dada o lado de um quadrado, calcule o permetro, a rea e a diagonal.

SADA: Quais os resultados que o algoritmo dever fornecer ?


O permetro, a rea e a diagonal de um quadrado.

ENTRADA: Quais os insumos necessrios para se obter a sada?


O lado (L) do quadrado.

PROCESSAMENTO: Como transformar os insumos na sada?


Permetro= Lx4
rea= L^2
Diagonal= sqrt(2)xL

PROGRAMA - PORTUGOL
programa
{
inclua biblioteca Matematica --> mat
funcao inicio()
{
//DECLARAO DE VARIVEIS
real L, P, A, D

// ENTRADA
escreva ("Informe o valor do lado do quadrado:\n")
leia (L)

// PROCESSAMENTO
P=L*4
A=L*L
D=L*(mat.raiz(2.0,2.0))

// SADA
escreva ("\nO permetro do quadrado : " + P)
escreva ("\nA rea do quadrado : " + A)
escreva ("\nA diagonal do quadrado : " + D)
}
}

6. Dado o raio de um crculo, calcule o permetro e a rea.

SADA: Quais os resultados que o algoritmo dever fornecer ?


O permetro e a rea de um crculo.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Raio de um crculo (R).

PROCESSAMENTO: Como transformar os insumos na sada?


Permetro = (2**R)
rea = (*R*R)

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
//DECLARAO DE VARIVEIS
real R, area, per, pi
// ENTRADA
escreva ("Informe o valor do raio do crculo:\n")
leia (R)

// PROCESSAMENTO
pi = 3.1416
per = 2*pi*R
area = pi*(R*R)

// SADA
escreva ("\nO permetro do crculo : " + per)
escreva ("\nA rea do crculo : " + area)
}
}

7. Dados os trs lados de um paraleleppedo, calcule o permetro, a rea, o volume e a diagonal.

SADA: Quais os resultados que o algoritmo dever fornecer ?


Permetro, rea, volume e diagonal de um paraleleppedo.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Os trs lados de um paraleleppedo (A, B, C).

PROCESSAMENTO: Como transformar os insumos na sada?


Permetro= 4*(A+B+C)
rea= 2(AB+BC+CA)
Volume= A*B*C
Diagonal= sqrt(A^2+B^2+C^2)

PROGRAMA - PORTUGOL
programa
{
inclua biblioteca Matematica --> mat
funcao inicio()
{
//DECLARAO DE VARIVEIS
real ladoA, ladoB, ladoC, perimetro, area, volume, diagonal

// ENTRADA
escreva("Informe o valor do primeiro lado do paraleleppedo:\n")
leia(ladoA)
escreva("Informe o valor do segundo lado do paraleleppedo:\n")
leia(ladoB)
escreva("Informe o valor do terceiro lado do paraleleppedo:\n")
leia(ladoC)

// PROCESSAMENTO
perimetro = 4*(ladoA + ladoB + ladoC)
area = 2*(ladoA*ladoB + ladoB*ladoC + ladoC*ladoA)
volume = ladoA * ladoB * ladoC
diagonal = mat.raiz (ladoA*ladoA + ladoB*ladoB + ladoC*ladoC, 2.0)

// SADA
escreva("\nPermetro: ",perimetro,"\nrea: ",area,"\nVolume: ",volume,"\nDiagonal: ",diagonal)
}
}

8. Dados dois catetos de um triangulo retngulo, calcule a hipotenusa.

SADA: Quais os resultados que o algoritmo dever fornecer ?


A hipotenusa de um tringulo retngulo.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Dois catetos do tringulo retngulo. (cat1, cat2)

PROCESSAMENTO: Como transformar os insumos na sada?


Hipotenusa = sqrt ((cat1*cat1) + (cat2*cat2))

PROGRAMA - PORTUGOL
programa
{
inclua biblioteca Matematica --> mat
funcao inicio()
{
//DECLARAO DE VARIVEIS
real cat1, cat2, hip

// ENTRADA
escreva("Informe o valor de um cateto do tringulo retngulo:\n")
leia(cat1)
escreva("Informe o valor do outro cateto do tringulo retngulo:\n")
leia(cat2)

// PROCESSAMENTO
hip = mat.raiz((cat1*cat1) + (cat2*cat2),2.0)

// SADA
escreva("\nA hipotenusa do tringulo retngulo : " + hip)
}
}

9. Dada a razo de uma PA e seu primeiro termo, calcular o 20 termo.

SADA: Quais os resultados que o algoritmo dever fornecer ?


O 20 termo de uma PA.

ENTRADA: Quais os insumos necessrios para se obter a sada?


A razo e o primeiro termo de uma PA.

PROCESSAMENTO: Como transformar os insumos na sada?


Frmula do termo geral de uma PA: An=A1+(n-1)*r, onde n=20.

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
//DECLARAO DE VARIVEIS
real termo20, razao, termo1

// ENTRADA
escreva("Informe o valor do primeiro termo da PA:\n")
leia(termo1)
escreva("Informe o valor da razo da PA:\n")
leia(razao)

// PROCESSAMENTO
termo20 = termo1 + (20-1)*razao

// SADA
escreva("\nO 20 termo desta PA : " + termo20)
}
}

10. Dada a razo de uma PG e seu primeiro termo, calcular o 20 termo.

SADA: Quais os resultados que o algoritmo dever fornecer ?


O 20 termo de uma PG.

ENTRADA: Quais os insumos necessrios para se obter a sada?


A razo (q) e o primeiro termo (A1) de uma PG.

PROCESSAMENTO: Como transformar os insumos na sada?


Frmula do termo geral de uma PG: An=A1*(q^(n-1)), onde n=20.

PROGRAMA - PORTUGOL
programa
{
inclua biblioteca Matematica --> mat
funcao inicio()
{
// DECLARAO DE VARIVEIS
real A1, q, An
// ENTRADA
escreva("Informe o valor do primeiro termo da PG:\n")
leia(A1)
escreva("Informe o valor da razo da PG:\n")
leia(q)

// PROCESSAMENTO
An = A1 * mat.potencia(q,19.0)

// SADA
escreva("\nO 20 termo desta PG : " + An)

}
}

11. Dado um horrio, calcule quantos minutos e segundos transcorreram desde o incio do dia.

SADA: Quais os resultados que o algoritmo dever fornecer ?


Minutos (M) e segundos (S) transcorridos.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Um horrio horas, minutos e segundos(h, m, s).

PROCESSAMENTO: Como transformar os insumos na sada?


S=(3600*h)+(60*m)+s
M=S/60

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
//DECLARAO DE VARIVEIS
inteiro horas, minutos, segundos
real MIN, SEG

// ENTRADA
escreva("Informe o horrio:\n")
escreva("Horas: ")
leia(horas)
escreva("Minutos: ")
leia(minutos)
escreva("Segundos: ")
leia(segundos)

// PROCESSAMENTO
SEG = (3600.0*horas) + (60.0*minutos) + segundos
MIN = SEG/60.0

// SADA
escreva("\nPassaram-se ",MIN," minutos e ",SEG," segundos.")
}
}

12. Dado o valor do salrio-mnimo e um determinado salrio, calcule quantos salrios-mnimos esto
contidos nele.

SADA: Quais os resultados que o algoritmo dever fornecer ?


Quantidade de salrios-mnimos que esto contidos em um determinado salrio.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Valor do salrio-mnimo (salariomin) e de um determinado salrio (salario).
PROCESSAMENTO: Como transformar os insumos na sada?
Quant = salario/salariomin

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
// DECLARAO DE VARIVEIS
real salariomin, salario, quant

// ENTRADA
escreva("Informe o valor do salrio mnimo:\n")
leia(salariomin)
escreva("Informe o valor de um salrio:\n")
leia(salario)

// PROCESSAMENTO
quant = salario/salariomin

// SADA
escreva("\nEsto contidos ", quant, " salrios mnimos dentro do salrio informado.")
}
}

13. Escreva um algoritmo para mostrar a mdia final de um aluno a partir de 4 notas. Para o calculo da
media final, deve-se utilizar mdia ponderada, aplicando-se a seguinte frmula:
M = ( ( p1 x 30) + (p2 x 40) + (t1 x 10) + (t2 x 20) ) / 100

Legenda: p1: primeira prova (peso de 30%) / p2: segunda prova (peso de 40%)
t1: primeiro trabalho (peso de 10%) / t2: segundo trabalho (peso de 20%)

SADA: Quais os resultados que o algoritmo dever fornecer ?


A mdia (M).

ENTRADA: Quais os insumos necessrios para se obter a sada?


P1, P2, T1, T2

PROCESSAMENTO: Como transformar os insumos na sada?


Aplicar a frmula: M = ( ( p1 x 30) + (p2 x 40) + (t1 x 10) + (t2 x 20) ) / 100

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
// DECLARAO DE VARIVEIS
real M, P1, P2, T1, T2

// ENTRADA
escreva("Informe o valor da nota da P1: ")
leia(P1)
escreva("Informe o valor da nota da P2: ")
leia(P2)
escreva("Informe o valor da nota do T1: ")
leia(T1)
escreva("Informe o valor da nota do T2: ")
leia(T2)

// PROCESSAMENTO
M = ((P1*30.0) + (P2*40.0) + (T1*10.0) + (T2*20.0))/100.0

// SADA
escreva(\nA mdia : + M)
}
}

14. Escreva um algoritmo para calcular a quantidade de latas de tintas necessrias para pintar o piso de um
quintal que possui uma rea retangular. Deve-se calcular tambm o custo total para comprar as latas de
tintas necessrias.

Sabe-se que:
Cada lata de tinta contm 5 litros
Cada litro de tinta pinta 3 metros quadrados
A rea de um retngulo dada por: base X altura

SADA: Quais os resultados que o algoritmo dever fornecer ?


Quantidade de latas de tintas necessrias e o custo total para compra das latas de tintas necessrias.
ENTRADA: Quais os insumos necessrios para se obter a sada?
Base (base) e altura (alt) da rea retangular.

PROCESSAMENTO: Como transformar os insumos na sada?


Aplicar a frmula: latas = (base*alt)/15

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
// DECLARAO DE VARIVEIS
real base, alt, qtd, precounit, custototal

// ENTRADA
escreva("Informe o valor da base da rea retangular: ")
leia(base)
escreva("Informe o valor da altura da rea retangular: ")
leia(alt)
escreva("Informe o valor do preo de uma lata de tinta em reais: ")
leia(precounit)

// PROCESSAMENTO
qtd = (base*alt)/(15.0)
custototal = qtd*precounit
// SADA
escreva("\nSo necessrias ", qtd, " latas custando ao todo R$ ", custototal)

}
}

Observao: Na sada de dados deveria se arredondar para cima o nmero de latas, portanto um valor
inteiro de latas, porm tal fato utilizaria uma funo criada com desvios condicionais o que ainda no foi
trabalhado nesse ponto do curso.

15. Construa um algoritmo que, tendo como dados de entrada dois pontos quaisquer do plano, P(x 1,y1) e
Q(x2,y2), imprima a distncia entre eles. A frmula que efetua tal clculo
d ( x2 x1 ) 2 ( y 2 y1 ) 2 .

SADA: Quais os resultados que o algoritmo dever fornecer ?


Distncia (d) entre os pontos P e Q.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Um ponto P(x1,y1) e um ponto Q(x2,y2).

PROCESSAMENTO: Como transformar os insumos na sada?


Aplicar a frmula: d=sqrt((x2-x1)^2+(y2-y1)^2)

PROGRAMA - PORTUGOL
programa
{
inclua biblioteca Matematica --> mat
funcao inicio()
{
// DECLARAO DE VARIVEIS
real d, X1, Y1, X2, Y2

// ENTRADA
escreva("Ponto P(X1,Y1):\n")
escreva("X1: ")
leia(X1)
escreva("Y1: ")
leia(Y1)

escreva("Ponto Q(X2,Y2):\n")
escreva("X2: ")
leia(X2)
escreva("Y2: ")
leia(Y2)

// PROCESSAMENTO
d = mat.raiz((X2 - X1)*(X2 - X1) + (Y2 - Y1)*(Y2 - Y1) , 2.0)

// SADA
escreva("\nDistncia: ",d)
}
}

16. Um motorista anota a marcao do odmetro do seu veculo antes e aps uma viagem, bem como o
nmero de litros de combustvel gastos. Escreva um algoritmo para ler os trs dados acima, o preo do
litro do combustvel e imprima:
o A quilometragem rodada
o Quantos quilmetros, por litro, faz o veculo
o O custo da viagem

SADA: Quais os resultados que o algoritmo dever fornecer ?


Quilometragem rodada, quantos quilmetros por litro o veculo faz e o custo da viagem.
ENTRADA: Quais os insumos necessrios para se obter a sada?
Marcao do odmetro antes da viagem (iniciood), marcao do odmetro aps a viagem (fimod), o
nmero de litros de combustvel gastos (litrogasto) e o preo do litro do combustvel (precolitro)
PROCESSAMENTO: Como transformar os insumos na sada?
Quilometragem rodada = fimod iniciood
Quilometros por litro = (fimod iniciood) / (litrogasto)
Custo da viagem = precolitro * litrogasto

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
// DECLARAO DE VARIVEIS
real iniciood, fimod, litrogasto, precolitro, kmrodado, kmporlitro, custoviagem

// ENTRADA
escreva("Informe a marcao do odmetro antes da viagem: ")
leia(iniciood)
escreva("Informe a marcao do odmetro aps a viagem: ")
leia(fimod)
escreva("Informe a quantidade de litros de combustvel gastos na viagem: ")
leia(litrogasto)
escreva("Informe o preo do litro de combustvel: ")
leia(precolitro)

// PROCESSAMENTO
kmrodado = fimod - iniciood
kmporlitro = kmrodado/litrogasto
custoviagem = precolitro * litrogasto

// SADA
escreva("\nA quilometragem rodada foi de ", kmrodado)
escreva("\nSendo feito ", kmporlitro, " km/litro")
escreva("\nPor fim, a viagem custou R$", custoviagem)

}
}
17. O custo ao consumidor de um carro novo a soma do custo de fbrica, acrescido da porcentagem do
distribuidor, mais os impostos (aplicados ao custo de fbrica). Supondo que a percentagem do
distribuidor seja de 28% e os impostos de 45%, escrever um algoritmo que leia o custo de fbrica de um
carro e escreva o custo do consumidor.

SADA: Quais os resultados que o algoritmo dever fornecer ?


O custo do consumidor de um carro novo (Cc).

ENTRADA: Quais os insumos necessrios para se obter a sada?


O custo de fbrica de um carro novo (Cf).

PROCESSAMENTO: Como transformar os insumos na sada?


Calcular o custo do consumidor a partir do custo de fbrica, a porcentagem do distribuidor e os impostos:
Cc=Cf+(Cf*0.28)+(Cf*0.45)

PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
// DECLARAO DE VARIVEIS
real custo_con, custo_fab

// ENTRADA
escreva("Custo de fbrica de um carro novo: ")
leia(custo_fab)

// PROCESSAMENTO
custo_con = custo_fab + (custo_fab*0.28) + (custo_fab*0.45)

// SADA
escreva("\nCusto do consumidor: ",custo_con)
}
}

18. Uma revendedora de carros usados paga seus funcionrios vendedores um salrio fixo por ms, mais
uma comisso, tambm fixa, por cada carro vendido, e mais 5% do valor das vendas por ele efetuadas.
Escrever um algoritmo e um fluxograma para ler o nmero do vendedor, o nmero de carros por ele
vendido, o valor total de suas vendas, o salrio fixo e o valor que recebe por carro vendido. Ao final, o
algoritmo deve calcular o salrio mensal do vendedor, escrevendo-o juntamente com o seu nmero de
identificao.

SADA: Quais os resultados que o algoritmo dever fornecer ?


Salrio mensal do vendedor e o seu nmero de identificao.

ENTRADA: Quais os insumos necessrios para se obter a sada?


Nmero do vendedor (id), nmero de carros por ele vendido (carrosvendidos), o valor total de suas
vendas (valorvendas), o salrio fixo (salariofixo) e o valor que recebe por carro vendido (valorporcarro).

PROCESSAMENTO: Como transformar os insumos na sada?


Salrio = salariofixo + (valorporcarro*carrosvendidos) + (0.05*valorvendas)
Identificao do funcionrio: id
PROGRAMA - PORTUGOL
programa
{
funcao inicio()
{
// DECLARAO DE VARIVEIS
real salariofixo, valorporcarro, valorvendas, salariofinal
inteiro id, carrosvendidos

// ENTRADA
escreva("Informe o nmero de identificao do vendedor: ")
leia(id)
escreva("Informe o salrio fixo por ms: ")
leia(salariofixo)
escreva("Informe o nmero de carros vendidos pelo vendedor no ms: ")
leia(carrosvendidos)
escreva("Informe o valor que ele recebe por cada carro vendido: ")
leia(valorporcarro)
escreva("Informe o valor total de vendas do vendedor no ms: ")
leia(valorvendas)

// PROCESSAMENTO
salariofinal = salariofixo + (valorporcarro*carrosvendidos) + (0.05*valorvendas)

// SADA
escreva("\nO vendedor com registro ", id)
escreva("\nTer o salrio mensal de R$", salariofinal)

}
}