CSE 110: Introdução à Programação

S06 - Atividade de Aprendizagem (2 de 2): Dados em Arquivos

Preparação

Visão Geral

Nesta aula, você continuará aplicando todos os tópicos deste semestre enquanto trabalha com dados em arquivos.

Material de Preparação

Na maior parte, você conhece todos os tópicos necessários para concluir esta aula. Contudo, há uma estratégia adicional que pode ser útil.

Encontrando o Máximo ou Mínimo

Lembre-se das aulas anteriores: uma maneira de encontrar o maior número em uma lista é acompanhar o maior número encontrado até o momento, e então atualizar esse valor se encontrar um outro número que seja maior. Por exemplo:


numeros = [42, 25, 18, 83, 23, 85, 38, 2]

maior_ate_agora = numeros[0]

for numero in numeros:
    if numero > maior_ate_agora:
        # Este número é maior que o maior que vimos até agora

        # Então é o novo maior que vimos
        maior_ate_agora = numero

# Agora, após o loop podemos exibi-lo:
print(f"O maior é: {maior_ate_agora}")

Isso gera a seguinte saída (output):


O maior é: 85

É importante lembrar de inicializar a variável maior_ate_agora com o primeiro valor (supondo que não seja uma lista vazia), ou então, em algo que você sabe que será menor que tudo na sua lista. Caso contrário, você não considerará alguns números. Por exemplo, se você começou com 10, nunca consideraria nada menor que 10.

Acompanhar o Item que é o Máximo ou Mínimo

E se você quiser saber não apenas qual é o maior número, mas também qual é o item correspondente ao maior número? Por exemplo, você pode querer saber não apenas o maior preço no seu carrinho de compras, mas também o respectivo produto. A lógica acima encontrará apenas o maior valor. Para encontrar o item correspondente ao maior valor, você também precisará registrar seu nome ao longo do processo.

Considere a seguinte lista de produtos em um carrinho de compras, juntamente com seus preços:


carrinho_de_compras = [
    ["Salgadinho", 2.99],
    ["Pão", 2.50],
    ["Leite", 3.19],
    ["Sorvete", 6.99],
    ["Queijo", 5.99],
    ["Barra de chocolate", 0.99]
]

Para encontrar o preço mais alto, podemos percorrer da mesma forma que fizemos antes:


maior_preco = -1

for item in carrinho_de_compras:
    preco = item[1] # O preço é a segunda parte do item

    if preco > maior_preco:
        # Este é o novo máximo
        maior_preco = preco

print(f"O maior preço é: {maior_preco}")

Isso gera a seguinte saída:


O maior preço é: 6.99

Se quisermos encontrar o nome do item de maior preço, precisamos declarar uma variável (por exemplo, produto_maior_preco) antes do loop para rastrear o produto que teve o maior preço. Então, sempre que atualizarmos maior_preco para salvar um novo preço, também atualizaremos produto_maior_preco para ser o nome do produto correspondente. Por exemplo:


maior_preco = -1
produto_maior_preco = "" # Não importa qual valor você definiu aqui, 
                         # é apenas necessário declarar a variável


for item in carrinho_de_compras:
  nome_do_produto = item[0] # O nome do produto é a primeira parte
  preco = item[1] 

  if preco > maior_preco:
    # Este é o novo máximo
    maior_preco = preco

    # Salve também o nome deste produto como o produto mais caro
    produto_maior_preco = nome_do_produto

print(f"O maior preço é: {maior_preco}")
print(f"O produto com o maior preço é: {produto_maior_preco}")
      

Isso gera a seguinte saída:


O maior preço é: 6.99
O produto com o maior preço é: Sorvete
    

Outro Código com Loops e Arquivos

Além dos exemplos de código que você viu aqui, lembre-se de que você pode usar todos os outros componentes que aprendeu ao longo do semestre com arquivos. Por exemplo, se você quiser restringir sua análise de produtos apenas àqueles que têm um preço acima de um determinado valor ou que têm um nome que corresponde a determinados critérios, você pode incluir uma instrução if no meio do loop que está percorrendo o arquivo.

De muitas maneiras, esta aula reúne todos os elementos fundamentais que você aprendeu neste semestre.

Nesta atividade, você continuará praticando o trabalho com instruções if, usando programas e lógicas ainda mais complexos.

Instruções da Atividade

Visão Geral

Pratique encontrar elementos em uma lista.

Instruções

Para simplificar seu programa e se concentrar na tarefa em questão, em vez de ler um arquivo, copie e cole a seguinte lista de pessoas e suas idades em seu programa:


pessoas = [
    "Stephanie 36",
    "João 29",
    "Emília 24",
    "Graça 54",
    "Nícolas 12",
    "Penelope 32",
    "Miguel 2",
    "Jacó 10"
]

Escreva um programa para encontrar a pessoa mais jovem da lista.

Considere seguir estas etapas para construir o programa finalizado:

  1. Percorra a lista e exiba cada string na tela.

  2. Divida a string em nome e idade e exiba esses dados na tela.

  3. Encontre a menor idade.

  4. Acompanhe o nome da pessoa mais nova.

Exemplo de Solução

Quando terminar seu programa, por favor, consulte o exemplo de solução para comparar sua abordagem com a apresentada.

Primeiro, trabalhe para concluir o programa sem consultar o exemplo de solução. Caso tenha trabalhado por um longo tempo e ainda enfrente dificuldades, sinta-se à vontade para usar o exemplo para ajudá-lo a finalizar seu programa.

Procedimento de Teste

Como não há entrada do usuário, não é necessário testar o programa com valores diferentes. Em vez disso, certifique-se de que os seguintes componentes estejam presentes no programa:

  1. A lista de pessoas está incluída no programa.

  2. O programa pode percorrer cada string da lista.

  3. O programa pode dividir a string nas partes apropriadas.

  4. A menor idade é identificada.

  5. O nome da pessoa mais nova é identificado.

Envio de Tarefa

Agora você concluiu todas as atividades de aprendizagem da semana!

Lembre-se de:

Próxima Atividade

Outros Links: