Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2018:alunos:trabalho_final:jessica_corsso:start

Jéssica Thais Corsso

tigre.jpg

Trabalho com biologia de Elasmobrânquios. Bacharela em Ciências do Mar pela Universidade Federal de São Paulo (UNIFESP). Mestranda PPG Biodiversidade e Ecologia Marinha e Costeira, Laboratório de Ecologia e Conservação Marinha (LABECMAR), Universidade Federal de São Paulo - UNIFESP, Campus Baixada Santista.

Aqui você encontra meus Exercícios Resolvidos (JT Corsso).

Trabalho Final

Plano A - Planejamento de mergulhos

Contextualização

O aumento do conhecimento sobre os efeitos do mergulho autônomo no corpo humano, fazem com que cada vez mais a atividade possa ser realizada com segurança, o que torna cada vez mais recorrente tanto para recreação quanto para pesquisa. Um fator limitante para as aventuras subaquáticas é a quantidade de nitrogênio absorvida pelo corpo. Quanto maior a pressão ou o tempo em profundidade, maior a quantidade dissolvida nos tecidos. O excesso de nitrogênio, ao voltar à pressão atmosférica, não consegue permanecer dissolvido nos tecidos, então vai para a corrente sanguínea e dela até o pulmão, onde, com o tempo, o mergulhador deverá exalar este nitrogênio naturalmente, caso ele possua níveis aceitáveis no corpo. Caso o mergulhador não tenha planejado bem seu mergulho, há o risco de o nitrogênio sair de seus tecidos com uma velocidade acima do normal, assim formando bolhas nos tecidos. A formação de bolhas dentro do corpo pode causar uma doença gravíssima chamada Doença Descompressiva, que pode ocorrer em diversos níveis diferentes, e os sintomas dependem da área afetada, podendo incluir: paralisia, tontura, formigamento, dores nas articulações e membros, estado de choque, dormência, dificuldade respiratória, fraqueza e fadiga prolongadas e em casos graves, perda de consciência e morte.

Atualmente há dois métodos usuais para o planejamento de mergulhos: a tabela RDP (Recreational Dive Planner) e os computadores de mergulho. Os computadores ainda possuem um custo muito elevado, mas ajudam o mergulhador à por exemplo determinar quanto tempo de intervalo ele deve ter entre mergulhos para estar na margem de segurança de um mergulho não descompressivo. A tabela pode fazer o mesmo pelo mergulhador, porém não é tão intuitiva e a confusão pode acarretar danos graves e irreversíveis à saúde.

A tabela RDP é composta de 3 etapas. Para planejar o primeiro mergulho, o mergulhador olha na tabela 1 (tabela de designação de grupos e limites não descompressivos), procura a coluna correspondente à profundidade que pretende mergulhar e dela pode tirar as informações de tempo máximo possível naquela profundidade ou grupo de pressão após um tempo pretendido de mergulho.

tabela1_e_2.png

Tabela 1 - tabela de designação de grupos e limites não descompressivos (esquerda) e Tabela 2 - tabela de créditos de intervalo de superfície (direita)

Para planejar o segundo mergulho, ele precisa guardar qual seu grupo de pressão após o primeiro mergulho (letra correspondente ao tempo que ficou no primeiro mergulho, de acordo com a tabela 1), e precisa do tempo que ficou na superfície (Intervalo de superfície) pois esse tempo fez com que seu grupo de pressão fosse alterado (nitrogênio foi expelido) e neste momento, seu novo grupo de pressão está representado pela intersecção entre a letra que nomeia a linha da tabela 2 (letra esta que foi armazenada na etapa da tabela 1) e a letra que nomeia a coluna da tabela 2 (tabela de créditos de intervalo de superfície). Tendo então seu novo grupo de pressão após o intervalo de superfície, o mergulhador parte para a tabela 3 (tabela para calcular o tempo de mergulhos repetitivos).

tabela3.jpg

Tabela 3 - tabela para calcular o tempo de mergulhos repetitivos

Na tabela 3, procura por sua profundidade de mergulho desejada, e segue na linha até encontrar a coluna de seu grupo de pressão. A linha branca da tabela 3 lhe indica seu tempo de nitrogênio residual (TNR), e a linha azul indica quanto tempo limite (TL) que poderá permanecer no segundo mergulho. Para planejar o terceiro mergulho, deve-se somar o tempo de nitrogênio residual (TNR) com o tempo real de fundo (TRF) do segundo mergulho, resultando no tempo total de fundo (TTF), e retornar à tabela 1. Nela o mergulhador procura a profundidade executada no segundo mergulho e o tempo total de fundo (TTF) calculado, assim encontrará o grupo de pressão após o segundo mergulho, podendo seguir para o terceiro mergulho após ver qual seu novo grupo de pressão levando em conta esta procura e um novo Intervalo de Superfície (IS entre mergulho 2 e mergulho 3), segue então para a tabela 3, procura sua profundidade pretendida para o terceiro mergulho e encontra qual seu tempo máximo disponível para o terceiro mergulho. Os próximos mergulhos seguem este mesmo procedimento de planejamento.

A função proposta realizaria o cálculo do Intervalo de Superfície (IS) entre o primeiro e o segundo mergulho(1), otimizando o tempo durante a atividade de mergulho, fazendo com que o mergulhador consiga aproveitar ao máximo a duração de sua expedição de mergulho. A função reduzirá erros de leitura da tabela por inexperiência ou distração, e consequentemente reduzirá os riscos à saúde de forma prática e barata para o mergulhador, podendo este focar seus esforços nos outros vários fatores que influenciam sua segurança durante a atividade.

1- Devido à complexidade de planejamento de múltiplos mergulhos em sequência, gostaria de me propor a realizar apenas a função que calcula o IS entre o primeiro e segundo mergulho. Caso consiga cumprir essa etapa antes do prazo de entrega, tentarei expandir para múltiplos mergulhos.

Como dito anteriormente, a tabela não é intuitiva, e a compreensão é complicada principalmente para quem está conhecendo ela agora. Por isso, procurei um vídeo bem didático no youtube para ajudar a compreensão caso a pessoa que esteja avaliando esta proposta esteja conhecendo a tabela agora:


Planejamento da função

Entrada:

 diveplan(n, p, trf) 

• Número de mergulhos (n) (Observação: devido à complexidade, limitaremos n = 2 inicialmente).

• Profundidade (p): vetor numérico de n valores.

• Tempo (real) de fundo (trf): vetor numérico de n valores.

Verificando os parâmetros:

• n é menor que 2? Se não for, pare a função e retorne a mensagem: “Esta função foi desenvolvida apenas para 2 mergulhos consecutivos no momento, há intenção de ampliar sua aplicação em breve. Por enquanto use-a apenas em caso de n=2.”

• O tamanho de p é igual a n? Se não for, pare a função e retorne a mensagem: “O número de profundidades “p” deve ser o mesmo que o número de mergulhos “n”.

• O tamanho de trf é igual a n? Se não for, pare a função e retorne a mensagem: “ O número de tempos de fundo “trf” deve ser o mesmo que o número de mergulhos “n”.

• Ordem decrescente de profundidades? Se não, Warning: “Para sua segurança é recomendado que seus mergulhos obedeçam a ordem decrescente de profundidades”.

• Alguma profundidade p é maior do que 30 m? Se sim, pare a função e retorne a mensagem: “As profundidades devem ser menores do que 30 metros”.

Pseudo-código:

1. Ler tabelas 1, 2 e 3 da tabela RDP (Recreational Dive Planner).

2. Criar vetor com tamanho n preenchido inicialmente por NA chamado p1.

3. Fazer varredura no nome das colunas em comparação com os valores de profundidade, verificando se a tabela 1 contém o valor fornecido pelo usuário, caso não contenha, atribui-se a posição do valor maior mais próximo (procedimento de segurança), e caso contenha, atrubui-se a posição do mesmo valor que foi fornecido.

4. Preencher o vetor p1 com as posições do nome das linhas da tabela 1 correspondentes ao que foi encontrado no passo anterior.

5. Criar t1 com tamanho n.

6. Fazer varredura do primeiro tempo (trf) fornecido pelo usuário (trf[1]) na coluna relacionada à posição p1[1], procurando o valor igual ou o próximo maior se não houver o igual na tabela.

7. Armazenar o nome da linha correspondente à varredura no vetor t1 na posição 1 (t1[1]).

8. Usar a tabela 3. Procurar na linha referente à próxima posição do vetor p1 o tempo fornecido pelo usuário trf[2] ou o próximo valor maior e armazenar o nome da coluna correspondente à varredura no vetor t1 na posição 2 (t1[2]).

9. Ler na tabela 2 a posição da linha correspondente ao número de t1[1] e a posição da coluna correspondente ao número de t1[2]. (tabela2(t1[1], t1[2])).

10. Retornar ao usuário o valor do intervalo mínimo que ele deve permanecer na superfície para que seus mergulhos planejados sejam mergulhos não descompressivos.

Saída:

• Intervalo mínimo de superfície (is): vetor numérico de (n-1) valores.

Plano B - Simulador de renda fixa

Contextualização

Para decidir qual o melhor destino para o dinheiro de uma pessoa que deseja poupar, é necessário que esta pessoa conheça os tipos de investimento que existem ao seu dispor e como eles funcionam. Muitas pessoas deixam de avaliar suas opções e se conformam com o investimento na Poupança, que possui um dos menores rendimentos do mercado. Caso estas pessoas avaliassem seu retorno final de acordo com o dinheiro investido e o tempo que ele permaneceu investido, poderiam escolher qual o melhor investimento para seu perfil. Mesmo com pouco dinheiro existem diversas aplicações financeiras com liquidez diária possíveis, porém a falta de conhecimento traz insegurança para o investidor iniciante, fazendo que ele não considere as oportunidades que possui.

O Tesouro Selic é um dos investimentos em Renda Fixa onde o investidor pode retirar o dinheiro a qualquer momento, possui liquidez diária e retorno melhor do que a poupança, ideal para o investidor que ainda não conhece o mercado, mas já cansou do baixo rendimento da poupança.

O intuito desta proposta de função é mostrar as projeções de retorno de um investimento onde o usuário informa qual o valor que irá investir e por quanto tempo. Como é pretendido alcançar o investidor iniciante, o resultado da função será o retorno que obteria com a taxa de juros correspondente ao Tesouro Selic e à Poupança para que ele compare os investimentos facilmente.

Planejamento da função

Entrada:

 moneysim(di, t, am=FALSE) 

• di: dinheiro investido > número inteiro com a quantidade de dinheiro pretendido para investimento.

• t: tempo de investimento > número inteiro com o tempo em meses que o dinheiro permanecerá investido

• am: aporte mensal > componente lógico, se FALSE o cálculo deve ser realizado para um único valor de di. Se TRUE o cálculo deve ser feito para t * di, levando em conta taxas de juros diferentes de acordo com o tempo que o dinheiro permaneceu investido.

Verificando os parâmetros:

• di é um número positivo, maior do que 30? Se não, pare e retorne “o mínimo para investimento em Tesouro Selic é de 30 reais”.

• t é um número positivo, maior do que zero? Se não, pare e retorne “Duração inválida”.

Pseudo-código:

1. Criar um vetor j e armazenar a taxa de juros do tesouro Selic na posição 1 e a taxa de juros da poupança na posição 2.

2. Verifique se há aportes mensais (am=TRUE), se não, prossiga para 3. Se sim, ir para passo 7.

3. Crie uma variável imposto (imp), verifique se t < 6, se sim e atribua o valor 22.5% a imp. Se t > 6, verifique se t < 12, se sim, atribua o valor 20% à variável imp. Se t >12 e menor que 24 meses atribua o valor 17.5%. Se t > 24 atribua o valor 15% à variável imp.

4. Realizar a conta de rendimento final com a expressão ((di*j[1] )*t) – ( (((di*j[1])*t) – di)*imp ), e guardar resultado em um objeto chamado selic.

5. Realizar a conta para os juros da poupança, com a expressão ( di*j[2]*t) e guardar resultado em um objeto chamado poup.

6. Repetir o passo 3, mas agora para cada posição em t (t[1], t[2], …), criando o vetor imp com os impostos relativos à cada período do dinheiro investido.

7. Realizar a conta de rendimento mês a mês de acordo com as taxas de imposto, somando a conta de cada mês e guardar resultado em um objeto chamado selic.

8. Realizar a conta para os juros da poupança, com a expressão ( di*j[2]*t) e guardar resultado em um objeto chamado poup.

9. Retornar uma matriz contendo o nome do investimento no nome das colunas (Selic e Poupança) e na primeira linha o valor do retorno no Tesouro Selic ( matrix[1,1] ← selic), e o valor do retorno na Poupança ( matrix[1,2] ← poup).

Saída:

• Projeção do retorno financeiro obtido ao final do período no Tesouro Selic e na Poupança.

Comentários Danilo

Jéssica, como já tínhamos conversado, seu plano A é interessante. E achei uma boa ideia estabelecer como meta inicial o cálculo dos intervalos de superfície e como “bônus-se-der-tempo” os outros cálculos.

Como o plano B me parece muito simples, sugiro fazer o plano A mesmo.

Danilo

Trabalho Final - Plano A executado

Segui com meu Plano A para a entrega da função. Como já explicado, seu intuito é informar ao usuário qual o tempo mínimo que deve permanecer na superfície entre 2 mergulhos não descompressivos consecutivos, baseado na tabela RDP (Recreational Dive Planner). Assim, como produto final temos a função diveplan.

Aqui você encontra o meu código da função: diveplan

Aqui você encontra o minha página de ajuda HELP diveplan

05_curso_antigo/r2018/alunos/trabalho_final/jessica_corsso/start.txt · Última modificação: 2020/09/23 17:16 por adalardo