Universidade Estadual do Oeste do Paraná ... - INF-Unioeste
Universidade Estadual do Oeste do Paraná ... - INF-Unioeste
Universidade Estadual do Oeste do Paraná ... - INF-Unioeste
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Universidade</strong> <strong>Estadual</strong> <strong>do</strong> <strong>Oeste</strong> <strong>do</strong> Paraná – UNIOESTE<br />
Campus de Cascavel<br />
Colegia<strong>do</strong> de Informática<br />
Algoritmos e Estruturas de Da<strong>do</strong>s I<br />
Trabalho 1º Bimestre<br />
Descrição<br />
Este trabalho visa possibilitar ao aluno abordagens a novos problemas além <strong>do</strong>s<br />
vistos em sala, crian<strong>do</strong> assim um pensamento mais abrangente, preparan<strong>do</strong>-o para uma<br />
gama maior de solução de problemas.<br />
Exercícios<br />
1) Elaborar um algoritmo que calcule e exibe os termos de uma PA e de uma PG. O<br />
usuário deverá optar por uma das progressões. Caso ele informe o valor 1 estará<br />
escolhen<strong>do</strong> a primeira, caso informe <strong>do</strong>is estará optan<strong>do</strong> pela PG. Assim que o usuário<br />
fizer sua escolha, o programa deve solicitar o número de termos a ser calcula<strong>do</strong>, a razão<br />
da progressão e o primeiro termo. Então o programa deve exibir os termos na tela (o<br />
número de termos que o usuário escolheu) e a soma destes termos. Esse processo de<br />
escolha e exibição deve ocorrer até que o usuário digite 0 (ao invés de 1 ou 2) como<br />
opção, fazen<strong>do</strong> com que o processo seja termina<strong>do</strong>.<br />
2) Construir um programa que leia <strong>do</strong>is valores forneci<strong>do</strong>s pelo usuário. Em seguida,<br />
este programa deve descobrir quantos números primos existem entre os limites<br />
informa<strong>do</strong>s (inclusive). Este processo é repeti<strong>do</strong> até que o usuário informe <strong>do</strong>is valores<br />
iguais. Ao término da execução, o programa deve retornar quais formam os <strong>do</strong>is<br />
números que possuíam o maior número de primos entre eles e quais são estes números<br />
primos.<br />
3) Uma empresa de ônibus precisa fazer uma pesquisa para analisar quantas pessoas<br />
chegam o fim da uma determinada linha. Para auxiliar a empresa, deve-se elaborar um<br />
algoritmo que leia a quantidade de pontos presentes nesta linha onde, em cada ponto,<br />
podem subir e descer pessoas. O programa deve ler também quantas pessoas sobem e<br />
descem em cada um <strong>do</strong>s pontos (deve-se observar que não se pode ter um número<br />
negativo de passageiros e nem um total maior que a capacidade máxima, que será de 54<br />
passageiros). O ponto de partida não é conta<strong>do</strong> com um ponto da linha, por ser a saída<br />
<strong>do</strong> ônibus. Se existirem no ponto, mais pessoas <strong>do</strong> que podem entrar no ônibus, o<br />
programa deve exibir uma mensagem dizen<strong>do</strong> quantas devem ficar no ponto devi<strong>do</strong> à<br />
lotação. Se o usuário tentar descer mais pessoas <strong>do</strong> que os que estão no ônibus o<br />
programa devem exibir aviso dizen<strong>do</strong> que tal fato é impossível. Ao final da execução o<br />
algoritmo deve mostrar quantas pessoas chegaram o fim da linha.<br />
4) Um gerente de vendas de uma indústria de teci<strong>do</strong>s analisou muitos fatores da<br />
empresa e descobriu que as vendas haviam caí<strong>do</strong> devi<strong>do</strong> ao alto preço cobra<strong>do</strong> pelos<br />
seus produtos. Buscan<strong>do</strong> então aumentar as vendas ele decidiu aplicar uma abordagem<br />
que promovesse descontos a clientes que comprassem mais quantidades. Para fazer uma<br />
simulação <strong>do</strong>s resulta<strong>do</strong>s, desenvolva um programa que interaja com o gerente. Este
programa deve perguntar se existem mais clientes a serem atendi<strong>do</strong>s. Enquanto a<br />
resposta for “sim”, o programa deve perguntar qual a quantidade vendida e o preço de<br />
venda <strong>do</strong> produto vendi<strong>do</strong>. Quan<strong>do</strong> a resposta for “não”, o programa termina a<br />
execução.<br />
Ao fim <strong>do</strong> processo o algoritmo deve retornar qual foi o total em R$ de<br />
descontos cedi<strong>do</strong>s aos clientes atendi<strong>do</strong>s e qual seria o total em R$ das vendas se não<br />
fossem da<strong>do</strong>s tais descontos. Lembran<strong>do</strong> que estes descontos são calcula<strong>do</strong>s sobre o<br />
valor total da compra.<br />
Para calcular os descontos, deve seguir as seguintes tabelas:<br />
Valor da Compra Valor <strong>do</strong> Desconto<br />
até 1000 5%<br />
1000 a 2000 10%<br />
2000 a 3000 15%<br />
acima de 3000 20%<br />
Qde. Comprada Valor <strong>do</strong> Desconto<br />
até 15 itens 5%<br />
16 a 30 itens 10%<br />
31 a 45 itens 15%<br />
acima de 45 itens 20%<br />
Quan<strong>do</strong> uma compra entrar em duas categorias distintas, o programa deve contar<br />
o maior desconto. Por exemplo, uma compra de 17 itens que gerou um total de R$<br />
2780,00 receberá um desconto de 15%.<br />
Este exercício deve, obrigatoriamente, aplicar a estrutura de repetição<br />
while.<br />
5) Um ladrão ao invadir uma loja de eletrônicos deparou-se com a seguinte situação: ele<br />
tem uma série de itens que pode escolher para roubar, porém, apenas alguns cabem na<br />
mochila que ele levou para carregar os bens rouba<strong>do</strong>s. Assim, ele deve escolher quais<br />
itens serão rouba<strong>do</strong>s e quais deverão ficar na loja. Como o gatuno foi cuida<strong>do</strong>so, ao não<br />
disparar o alarme, ele tem bastante tempo para fazer a escolha. Dessa forma, decidiu<br />
acessar um computa<strong>do</strong>r da loja e criar um programa em linguagem pascal que o<br />
ajudasse a escolher os itens de forma que a escolha lhe rendesse mais dinheiro no<br />
merca<strong>do</strong> de rouba<strong>do</strong>s. Construam um algoritmo similar ao desenvolvi<strong>do</strong> pelo ladrão<br />
para fazer a escolha <strong>do</strong>s itens de forma que maximize o valor obti<strong>do</strong> pela venda <strong>do</strong>s<br />
produtos rouba<strong>do</strong>s. A lista de itens que cabe na bolsa levada pelo ladrão está abaixo, ao<br />
la<strong>do</strong> <strong>do</strong> item, o valor pelo qual ele consegue vender o item no merca<strong>do</strong> paralelo, o peso<br />
de cada item e a quantidade disponível. A resposta correta será aquela que retorne o<br />
maior valor na venda sem que a capacidade da bolsa seja ultrapassada. O total suporta<strong>do</strong><br />
pela mochila <strong>do</strong> ladrão é de 25 Kg. Deve-se aplicar a estrutura de repetição Repeat.<br />
Item Valor de venda Peso (Kg) Quantidade<br />
Notebook R$ 800,00 9 2<br />
Placa de vídeo 512 M R$ 100,00 1,1 3<br />
HD 500 G R$ 80,00 2 5<br />
Placa Mãe R$ 90,00 1,8 4<br />
DVD Player R$ 80,00 3,5 6<br />
Home Theater R$ 185,00 5 3
Monitor LCD 21” R$ 120,00 5 3<br />
NetBook R$ 190,00 4 3<br />
Smartphone R$ 150,00 1 3<br />
6) Construir, para to<strong>do</strong>s os exercícios anteriores o código em portugol. Para Facilitar o<br />
processo de construção de tais algoritmos, não é necessário toda a formatação formal de<br />
interação com o usuário, por exemplo, não há necessidade de exibir ao usuário:<br />
“Digite seu nome:”;<br />
Leia Nome;<br />
“Digite sua idade: ”;<br />
Leia Idade;<br />
Pode ser feito da seguinte forma:<br />
“Digite Nome, Idade, Tempo de Serviço: ”;<br />
Leia Nome, Idade, TmpServ;<br />
O objetivo de realização deste exercício é desenvolver a capacidade de criar<br />
algoritmos independentes da linguagem em que serão implementa<strong>do</strong>s. A resolução deste<br />
exercício deve ser entregue em arquivo texto (os desenvolve<strong>do</strong>res podem escolher a<br />
extensão) junto com o restante <strong>do</strong> trabalho.<br />
Especificações:<br />
a) O trabalho deve ser desenvolvi<strong>do</strong> individualmente. Trabalhos com <strong>do</strong>is alunos ou<br />
mais serão desconsidera<strong>do</strong>s.<br />
b) O valor total <strong>do</strong> trabalho representará 30 décimos da nota <strong>do</strong> primeiro bimestre.<br />
c) Devem ser entregues arquivos contento o código fonte (.pas). Este código deve ser<br />
entregue em formato digital entregue em mãos. Deve ser entregue também o arquivo<br />
(ou arquivos) em formato texto conten<strong>do</strong> os códigos em portugol. Não serão aceitos<br />
trabalhos envia<strong>do</strong>s via e-mail.<br />
d) Cópias de trabalhos serão penalizadas com a perda total <strong>do</strong> valor <strong>do</strong> trabalho.<br />
e) A linguagem utilizada para desenvolver este trabalho deve ser o Pascal (podem ser<br />
utiliza<strong>do</strong>s os compila<strong>do</strong>res Free Pascal, Turbo Pascal, DevPascal, Pascalzim, Geany).<br />
h) A data de entrega <strong>do</strong> trabalho é 21/05/2009 até as 16:30. A entrega pode ser feita em<br />
mãos com o professor da disciplina ou deixada no escaninho presente no colegia<strong>do</strong>.<br />
i) A mídia utilizada para entrega deve ser marcada com nome <strong>do</strong> desenvolve<strong>do</strong>r <strong>do</strong><br />
trabalho, disciplina e bimestre.