A Lógica de Programação
Por: rafaferrarinho • 27/9/2015 • Trabalho acadêmico • 1.796 Palavras (8 Páginas) • 241 Visualizações
[pic 1][pic 2]
Universidade do Sul de Santa Catarina – Unisul
Campus Virtual
[pic 3] | Atividade de avaliação a distância (AD) |
Unidade de Aprendizagem: Lógica de Programação
Curso: Sistemas para Internet
Professor:
Nome do aluno:
Data:
Orientações:
- Procure o professor sempre que tiver dúvidas.
- Entregue a atividade no prazo estipulado.
- Esta atividade é obrigatória e fará parte da sua média final.
- Encaminhe a atividade via Espaço UnisulVirtual de Aprendizagem (EVA).
1. Considere que você tenha em mãos um vetor, ordenado crescentemente por nome, contendo registros de pessoas (nome, idade e telefone). Você recebeu a tarefa de realizar uma busca pelo nome de uma determinada pessoa dentro deste vetor. Qual o método de busca você utilizaria para determinar se o nome da pessoa existe ou não dentro do vetor. Justifique a sua escolha. (2 pontos)
Como o vetor está ordenado crescentemente, escolheria o método de pesquisa binária, pois este método é mais rápido e o número de dados lidos é menor. Esse método consiste na divisão do vetor em duas partes, e verifica se o valor procurado está exatamente na metade do vetor, acima ou abaixo dela. Sendo assim, esse método se torna bastante eficiente na procura da informação desejada.
2. Considere que você tenha o seguinte registro:
TSaldo = REGISTRO
nomeDoMes : LITERAL
saldo : REAL
FIMREGISTRO
Considere que você tenha um vetor (Meses), já preenchido com 12 literais, onde em cada posição exista o nome de um mês.
Considere também que você deverá fazer 100 leituras armazenando-as em um vetor, onde em cada leitura o usuário irá digitar um número entre 1 e 12 ( representando o número de um mês), e um valor (REAL). Após a digitação de todos as 100 leituras mostrar na tela o nome da cada um dos meses e o seu saldo atual. Para esta questão você deverá utilizar registros para armazenar TSaldo dentro de um vetor. (3 pontos)
Algorítmo Questão 2
tipo TSaldo = REGISTRO
nomeDoMes : LITERAL
saldo : REAL
fim-registro
var
VetorResultado : vetor[100] TSaldo
VetorMes : vetor[12] Literal
POS, numeroDoMesEntrada, posicaoMes : inteiro
saldoEntrada : real
inicio
VetorMes[0] < - "Janeiro"
VetorMes[1] < - "Fevereiro"
VetorMes[2] < - "Março"
VetorMes[3] < - "Abril"
VetorMes[4] < - "Maio"
VetorMes[5] < - "Junho"
VetorMes[6] < - "Julho"
VetorMes[7] < - "Agosto"
VetorMes[8] < - "Setembro"
VetorMes[9] < - "Outubro"
VetorMes[10] < - "Novembro"
VetorMes[11] < - "Dezembro"
para POS de 0 até 99 passo 1 faça
escreva "Digite o número do mês entre 1 e 12: "
leia numeroDoMesEntrada
enquanto numeroDoMesEntrada < 1 ou numeroDoMesEntrada > 12 faça
escreva "Digite o número do mês entre 1 e 12: "
leia numeroDoMesEntrada
fimEnquanto
escreva "Digite o saldo:"
leia saldoEntrada
posicaoMes <- buscarMesExistente(VetorResultado, VetorMes[numeroDoMesEntrada - 1])
se posicaoMes <> -1 então
VetorResultado[posicaoMes].saldo <- VetorResultado[posicaoMes].saldo + saldoEntrada
senão
VetorResultado[numeroDoMesEntrada-1].nomeDoMes <- VetorMes[numeroDoMesEntrada-1]
VetorResultado[numeroDoMesEntrada-1].saldo <- saldoEntrada
fimSe
fim-para
mostrarResultado(VetorResultado)
fimAlgoritmo
Funcao mostrarResultado(VetorResultado : Vetor de TSaldo)
var
POS : inteiro
inicio
para POS de 0 até 11 passo 1 faça
escreva "Mês: ", VetorResultado[POS].nomeDoMes
escreva "Saldo: ", VetorResultado[POS].saldo
fim-para
fimFuncao
Funcao buscarMesExistente(VetorResultado : Vetor de TSaldo, nomeMesEntrada : LITERAL) : inteiro
var
POS, posicaoMes : INTEIRO
inicio
posicaoMes <- -1
para POS de 0 até 11 passo 1 faça
se VetorResultado[POS].nomeDoMes = nomeMesEntrada então
posicaoMes <- POS
fimSe
fimPara
retorna posicaoMes
fimFuncao
3. Considere que você tenha o seguinte registro:
TSaldo = REGISTRO
nomeDoMes : LITERAL
saldo : REAL
FIMREGISTRO
Faça um algoritmo para realizar 12 leituras armazenando-as em um vetor, onde em cada leitura o usuário irá digitar o nome de um mês e o seu saldo atual. Após a leitura você deverá ordenar os saldos de forma decrescente (do maior saldo para o menor) e após a ordenação mostrar na tela o nome do mês e o seu saldo. (3 pontos)
Algorítmo Questão 3
tipo TSaldo = registro
nomeDoMes : LITERAL
saldo : REAL
fim-registro
variáveis
VetorResultado : vetor [12] de TSaldo
POS : inteiro
inicio
para POS de 0 até 11 passo 1 faça
escreva "Digite o nome do mês: "
leia VetorResultado[POS].nomeDoMes
escreva "Digite o saldo: "
leia VetorResultado[POS].saldo
fim-para
ordenarSaldoDecrescente(VetorResultado)
mostrarResultado(VetorResultado)
fimAlgoritmo
Funcao ordenarSaldoDecrescente(VetorResultado : Vetor de TSaldo) : vetor de TSaldo
...