CS50-MCZ

Uma introdução aos empreendimentos intelectuais da Ciência da Computação e da arte da programação.


Fiftyville


Escreva consultas SQL para resolver um mistério.

Um Mistério em Fiftyville

O Pato CS50 foi roubado! A cidade de Fiftyville chamou você para resolver o mistério do pato roubado. As autoridades acreditam que o ladrão roubou o pato e, logo em seguida, partiu da cidade com a ajuda de um cúmplice. Seu objetivo é identificar:

Tudo o que você sabe é que o roubo aconteceu em 28 de julho de 2021 e que ele ocorreu na Rua Humphrey.

Como você vai resolver esse mistério? As autoridades de Fiftyville pegaram alguns registros da cidade em torno do momento do roubo e prepararam um banco de dados SQLite para você, fiftyville.db, que contém tabelas de dados da cidade. Você pode consultar essa tabela usando consultas SQL SELECT para acessar os dados de seu interesse. Usando apenas as informações no banco de dados, sua tarefa é resolver o mistério.

Começando

Acesse code.cs50.io, clique na janela do seu terminal e execute cd sozinho. Você deve encontrar que o prompt da janela do seu terminal se assemelha ao abaixo:

$

Depois execute

wget https://cdn.cs50.net/2022/fall/psets/7/fiftyville.zip

para baixar um arquivo ZIP chamado fiftyville.zip para o seu espaço de código.

Em seguida, execute

unzip fiftyville.zip

para criar uma pasta chamada fiftyville. Você não precisa mais do arquivo ZIP, então pode executar

rm fiftyville.zip

e responda com "y" seguido de Enter no prompt para remover o arquivo ZIP que você baixou.

Agora digite

cd fiftyville

seguido de Enter para se mover para dentro (ou seja, abrir) esse diretório. Seu prompt agora deve se parecer com o abaixo.

fiftyville/ $

Execute ls sozinho e você deverá ver alguns arquivos:

answers.txt  fiftyville.db  log.sql

Se você encontrar algum problema, siga essas mesmas etapas novamente e veja se pode determinar onde você errou!

Especificação

Para este problema, tão importante quanto resolver o próprio mistério é o processo que você utiliza para resolvê-lo. No arquivo log.sql, mantenha um registro de todas as consultas SQL que você executar no banco de dados. Acima de cada consulta, rotule cada uma com um comentário (em SQL, comentários são quaisquer linhas que começam com --) descrevendo por que você está executando a consulta e/ou que informações você espera obter com essa consulta específica. Você pode usar comentários no arquivo de log para adicionar notas adicionais sobre seu processo de pensamento ao resolver o mistério: em última análise, esse arquivo deve servir como evidência do processo que você usou para identificar o ladrão!

Ao escrever suas consultas, você pode perceber que algumas delas podem se tornar bastante complexas. Para ajudar a manter suas consultas legíveis, consulte os princípios de bom estilo em sqlstyle.guide. A seção de indentação pode ser especialmente útil!

Assim que você resolver o mistério, preencha cada uma das linhas em answers.txt com o nome do ladrão, a cidade para a qual o ladrão escapou e o nome do cúmplice do ladrão que o ajudou a fugir da cidade. (Certifique-se de não alterar nenhum texto existente no arquivo ou adicionar outras linhas ao arquivo!)

No final, você deve enviar tanto o arquivo log.sql quanto o arquivo answers.txt.

Dicas

Testando

Execute o código abaixo para avaliar a correção do seu código usando check50.

check50 cs50/problems/2023/x/fiftyville

Como enviar

No seu terminal, execute o comando abaixo para enviar o seu trabalho.

submit50 cs50/problems/2023/x/fiftyville

Agradecimentos

Inspirado por outro caso em SQL City.