Buscar

trabalho python

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Trabalho Prático
Programação 2
Data máxima de entrega: 11/12/2018
Valor: 40 pontos
Tema: Perícia Criminal
Parte I: Sobre o problema e os dados disponíveis
Você se formou no Bacharelado em Sistemas de Informação e foi aprovado no concurso para Perito Criminal da
Polícia Federal. Sua primeira investigação envolve uma fraude bancária, e você precisa identificar inconsistências no
Banco de Dados de um banco. O banco de dados contém informações de milhares de contas, mas você recebeu
apenas uma parte das informações de algumas contas sob suspeita.
As informações que você recebeu contêm:
 Dados dos clientes: Por segurança, você recebeu apenas o cpf e o nome dos clientes.
 Dados das agências: Cada agência possui o número, um nome, uma cidade e a sigla do estado em que se
encontra.
 Dados das contas: Cada conta recebida possui apenas o número da conta, saldo atual, cpf do cliente titular
da conta e número da agência a que ela pertence. Obs.: Cada cliente pode possuir uma, nenhuma ou várias
contas.
 Histórico de transações: Cada transação já efetuada em uma determinada conta, indicando o identificador
da transação, o valor da transação, a data e horário em que ocorreu, o número da conta envolvida na
transação e o tipo de operação. Os itens do histórico não estão em ordem cronológica.
As informações disponibilizadas pelo banco serão lidas de 4 arquivos textos, localizados na mesma pasta em que
o(s) arquivo(s) com o código do programa:
1. “clientes.txt”: a primeira linha contém o número de clientes existentes. Em seguida, para cada cliente, existem
duas linhas consecutivas contendo o cpf e o nome do cliente (um dado em cada linha, nesta ordem).
2. “agencias.txt”: a primeira linha contém o número de agências. Em seguida, para cada agência, existem
quatro linhas consecutivas contendo o nome, número, cidade e estado da agência (um dado em cada linha
nesta ordem).
3. “contas.txt”: a primeira linha contém a quantidade de contas no arquivo. Em seguida, para cada conta,
existem quatro linhas consecutivas contendo o número da conta, saldo atual, cpf do titular da conta e número
da agência (um dado em cada linha).
4. “historico.txt”: a primeira linha contém a quantidade de transações. Em seguida, para cada item do histórico,
existem seis linhas consecutivas informando:
◦ Identificador da transação
◦ Valor da transação
◦ Data em que ocorreu a transação (no formato DD/MM/AAAA)
◦ Horário em que ocorreu a transação (no formato HH:MM:SS)
◦ Número da conta envolvida
◦ Tipo da operação (0 para saques e 1 para depósitos)
Parte II: Sobre a investigação
Existem duas investigações sob sua responsabilidade:
1. Algumas contas foram invadidas por hackers, que retiraram dinheiro das contas sem deixar rastros no
histórico de transações. Você deve analisar todo esse histórico de movimentações financeiras para identificar
cada conta cujo saldo atual está inconsistente com o histórico. Considere que todas as contas possuíam um
saldo zerado no momento em que foram criadas.
2. Existe a suspeita de que políticos envolvidos num esquema de corrupção realizaram transferências de altos
valores entre si. Entretanto, o banco não salva operações de transferências no histórico (apenas saques e
depósitos). Você precisa, portanto, identificar todas as situações envolvendo transferências superiores a cem
mil reais entre dois titulares diferentes, sabendo que uma transferência consiste em um saque seguido de um
depósito e que estas duas operações podem ter sido registradas pelo sistema com até 4 horas de atraso.
Parte III: Sobre o resultado da sua investigação
Como resultado, você deve entregar um relatório para o seu chefe com as seguintes informações:
1. Investigação 1:
◦ Contas invadidas: Quais contas foram hackeadas? Qual saldo elas possuem após a invasão, e qual
saldo elas deveriam possuir de acordo com o histórico de transações?
◦ Prejuízo do banco: Considerando todo o valor que os hackers retiraram das contas indevidamente, qual
o valor total que o banco deverá gastar para ressarcir seus clientes?
◦ Agências a serem investigadas: Quais agências possuem contas que foram afetadas pelos hackers?
◦ Contas no vermelho: Dentre as contas hackeadas, quais delas ficaram com saldo negativo e podem
estar pagando juros do cheque especial indevidamente por causa da invasão?
2. Investigação 2:
◦ Transferências suspeitas: Quais transferências suspeitas (ou seja, acima de R$ 100.000) deverão ser
analisadas pela Receita Federal?
◦ Possíveis corruptos: Qual lista, em ordem alfabética, com o nome dos clientes envolvidos nas
transferências suspeitas deve ser divulgada para a imprensa?
◦ Auge do esquema: Em qual ano ocorreu a maior quantidade de transferências suspeitas?
A saída deve ser formatada exatamente como no exemplo a seguir:
­ Contas invadidas:
148 ­ Titular: Elisa Godoi ­ Saldo correto: R$ 577782 ­ Saldo atual R$ 487361
106 ­ Titular: Mem Torquato ­ Saldo correto: R$ ­96989 ­ Saldo atual R$ ­193144
012 ­ Titular: Amélia Castelo ­ Saldo correto: R$ 13313 ­ Saldo atual R$ ­24979
131 ­ Titular: Quintino Godói ­ Saldo correto: R$ 419537 ­ Saldo atual R$ 357784
095 ­ Titular: Estefânia Soto ­ Saldo correto: R$ 952881 ­ Saldo atual R$ 898579
103 ­ Titular: Greice Queiroz ­ Saldo correto: R$ 256980 ­ Saldo atual R$ 160996
028 ­ Titular: Marta Sabala ­ Saldo correto: R$ 701531 ­ Saldo atual R$ 695149
­ Prejuizo do banco: R$ 443289
­ Agencias a serem investigadas:
1301 ­ SERRA ­ SERRA/ES
3195 ­ ITAPOA ­ VILA VELHA/ES
3480 ­ JUCUTUQUARA ­ VITORIA/ES
4292 ­ EMPRESA PORTO ­ VITORIA/ES
4559 ­ COBILANDIA ­ VILA VELHA/ES
3790 ­ BAIRRO PRAIA CANTO ­ VITORIA/ES
8066 ­ ROD.C.LINDENBERG ES ­ VILA VELHA/ES
­ Contas no vermelho:
106 ­ Titular: 685.311.483­32
012 ­ Titular: 220.654.652­39
­ Transferencias suspeitas:
463.255.146­53 transferiu R$ 124846 para 534.504.316­76 no dia 27/07/2018
373.544.144­09 transferiu R$ 186037 para 251.030.123­32 no dia 11/12/2018
401.278.080­86 transferiu R$ 194603 para 801.283.374­35 no dia 28/01/2016
808.841.375­38 transferiu R$ 137129 para 658.352.820­79 no dia 19/02/2016
301.237.104­48 transferiu R$ 195598 para 433.488.235­87 no dia 24/07/2017
852.124.037­66 transferiu R$ 199385 para 248.455.277­74 no dia 28/08/2016
­ Possiveis corruptos:
Carminda Ramires
Estefânia Soto
Eugénia Magalhães
Flamínia Matoso
Judite Carrasqueira
Leónidas Figueiró
Mafalda Morera
Marta Sabala
Moema Mourato
Rafaela Morera
Tainá Flores
Tairine Lobato
­ O auge do esquema ocorreu em 2016 com 3 transferencias suspeitas
A ordem em que as linhas aparecem no resultado de cada parte do relatório é importante apenas na lista de
possíveis corruptos.
Parte IV: Observações
 O código deve ser feito em Python3. 
 Para agilizar o processamento, os dados devem ser armazenados em quatro dicionários (clientes, agencias,
contas e historico). 
 Para verificar se uma transação t1 ocorreu em até 4 horas após uma transação t2, lembre-se que elas
podem ocorrer em dias diferentes (ex: saque ocorre às 23:59:57, seguido de um depósito às 00:00:03 do dia
seguinte. Dica: para ter menor trabalho na manipulação de datas e horários em Python, pesquisa sobre
datetime e timedelta que pertencem ao módulo datetime. 
 Considere que o saldo das contas e o valor das transações são sempre números inteiros. 
 O trabalho deve ser feito individualmente.
 Trabalhos entregues após o prazo serão automaticamente rejeitados. 
 Você será avaliado também pelas boas práticas de programação, como modularização, clareza e reuso de
código.
 Trabalhos considerados plágio, com erro de execução, com formato de saııda incorreto, ou que não
compilarem terão nota 0 (no caso de plágio, para quem copiou e para quem forneceu o trabalho).
 O trabalho deve ser enviado na sala da disciplina do AVA.
 Em caso de dúvidas na especificação do trabalhoou no próprio trabalho, contate-me em hsjunior@gmail.com
“Se todas as tentativas falharem, siga as instruções da especificação.” (Murphy)

Continue navegando