Apostila de Apoio - Lógica e Linguagem de Programação


SEMANA 1 - Criando seu Primeiro Algoritmo

Descrição da Atividade:
Escolha UMA das situações abaixo e escreva um algoritmo detalhado no caderno ou editor de texto:

Requisitos obrigatórios:

  1. Mínimo de 10 passos e máximo de 20 passos.
  2. Utilize a estrutura: ALGORITMO / INÍCIO / passos numerados / FIM.
  3. Seja específico e claro nas instruções.
  4. Considere possíveis problemas durante o processo (ex: falta de ingrediente, pneu furado grave, etc.).

Exemplo de Resolução em Python:

# Exemplo de sequência lógica simples em Python:
print("--- Algoritmo: Preparar Suco Natural ---")
print("1 - Lavar as frutas com água corrente")
print("2 - Descascar e cortar as frutas em pedaços")
print("3 - Verificar se as sementes foram removidas")
print("4 - Adicionar as frutas cortadas no liquidificador")
print("5 - Adicionar 500ml de água e gelo a gosto")
print("6 - Tampar o liquidificador adequadamente")
print("7 - Ligar o liquidificador e bater por 2 minutos")
print("8 - Desligar o equipamento e provar o suco")
print("9 - Adoçar se necessário e misturar novamente")
print("10 - Servir em um copo limpo")

Instruções de entrega: Após finalizar a atividade, envie o algoritmo completo aqui no AVA.


SEMANA 2 - Sistema de Vendas

Descrição da Atividade:
Você vai criar um sistema para calcular o valor final de uma venda em uma loja, aplicando regras de negócio para descontos e frete.

Regras do Negócio:

Requisitos do Algoritmo:

  1. Leia o valor total dos produtos (subtotal).
  2. Calcule o desconto apropriado com base no valor.
  3. Adicione o frete se o valor for menor que R$200,00.
  4. Mantenha a exibição de:

Código Python:

valor = float(input("Valor da compra: R$ "))

desconto = 0.0

if valor > 500:
    desconto = valor * 0.10
elif valor > 100:
    desconto = valor * 0.05

frete = 0.0

if valor < 200:
    frete = 15.0

total = valor - desconto + frete

print(f"Subtotal: R$ {valor:.2f}")
print(f"Desconto: R$ {desconto:.2f}")
print(f"Frete: R$ {frete:.2f}")
print(f"Total Final: R$ {total:.2f}")

Instruções de entrega: Após finalizar a atividade, envie o código de programação no AVA.


SEMANA 3 - Sistema de Classificação de Idade

Descrição da Atividade:
Você deve criar um sistema completo que classifica pessoas por faixa etária e indica permissões específicas de acordo com a idade fornecida.

Faixas Etárias e Permissões Exigidas:

Etapas do Desenvolvimento:

Planejamento:

Codificação:

Casos de Teste:

Código Python:

idade = int(input("Digite sua idade: "))

if idade <= 12:
    print("Classificação: Criança")
    print("Permissão: Entrada gratuita em cinemas")
elif idade <= 17:
    print("Classificação: Adolescente")
    print("Permissão: Meia entrada garantida")
elif idade <= 64:
    print("Classificação: Adulto")
    print("Permissão: Pode dirigir e votar")
else:
    print("Classificação: Idoso")
    print("Permissão: Prioridade em filas")

Instruções de entrega: Envie arquivo em word, pdf, ou foto do caderno contendo toda a criação aqui no AVA.


SEMANA 4 - Operadores Relacionais na Prática

Descrição da Atividade:
Melhoria contínua na prática: praticar a validação de condições utilizando operadores relacionais para verificação lógica de maioridade e permissões.

Materiais Necessários:

Passo a Passo:

  1. Em grupos com até 5 pessoas, leiam com atenção a atividade proposta no roteiro.
  2. Antes de iniciar a codificação, realizem esboços no papel para definir a lógica das verificações booleanas.
  3. Utilizem as ferramentas de desenvolvimento disponíveis para implementar a atividade.

Código Python:

idade = int(input("Digite sua idade: "))

eh_maior_de_idade = idade >= 18
eh_menor_de_idade = idade < 18

print("É maior de idade (>= 18)?", eh_maior_de_idade)
print("É menor de idade (< 18)?", eh_menor_de_idade)

Instruções de entrega: Registre suas respostas e observações do grupo diretamente aqui no AVA.


SEMANA 5 - Integrando Estrutura Sequencial com o Comando SE (Calculadora de Média)

Descrição da Atividade:
Você deve criar um programa que leia duas notas de um aluno, calcule a média aritmética e verifique se o aluno foi aprovado ou não. A média mínima para aprovação é 6.0.

Instruções para Realização da Atividade:

  1. Declare as variáveis para armazenar as duas notas e a média.
  2. Solicite e leia as duas notas do usuário.
  3. Calcule a média aritmética das notas: media = (nota1 + nota2) / 2.
  4. Exiba a média calculada no console.
  5. Use a estrutura SE (if) para verificar se a média é maior ou igual a 6.0.
  6. Se for verdadeiro, exiba a mensagem "Aprovado". Caso contrário, exiba "Reprovado".

Código Python:

nota1 = float(input("Digite a primeira nota: "))
nota2 = float(input("Digite a segunda nota: "))

media = (nota1 + nota2) / 2

print(f"Média calculada: {media:.1f}")

if media >= 6.0:
    print("Situação: Aprovado")
else:
    print("Situação: Reprovado")

Instruções de entrega: Entregue a atividade no AVA em documento no formato .doc ou .pdf com o exemplo de algoritmo desenvolvido no decorrer da atividade.


SEMANA 6 - Projeto Guiado - Lógica e Condição (Número Positivo/Negativo)

Descrição da Atividade:
Atividade de melhoria contínua na prática focada em análise condicional e validação de números.

Materiais Necessários:

Passo a Passo:

  1. Leiam com atenção a atividade proposta no roteiro.
  2. Antes de iniciar a codificação, elaborem esboços no papel para definir a lógica de verificação numérica.
  3. Utilizem as ferramentas de desenvolvimento disponíveis para implementar a atividade.

Código Python:

numero = int(input("Digite um número inteiro: "))

if numero > 0:
    print("O número digitado é POSITIVO.")
elif numero < 0:
    print("O número digitado é NEGATIVO.")
else:
    print("O número digitado é ZERO (Neutro).")

Instruções de entrega: Após finalizar a atividade, envie o relatório com as respostas aqui no AVA.


SEMANA 7 - Estrutura SE/SENÃO (E-commerce de Atacado)

Descrição da Atividade:
Vamos desenvolver uma venda para um e-commerce de atacado! Imagine que vocês fazem parte da equipe de desenvolvimento de um e-commerce de atacado. Só pode liberar vendas se o cliente tiver 18 anos ou mais.

Desafio em Grupo:

Em grupos, pensem em como a estrutura SE/SENÃO poderia ser usada para implementar essa lógica. Considerem os seguintes cenários de teste:

  1. Uma venda onde o cliente digitou a idade = 43.
  2. Uma venda onde o cliente digitou a idade = 10.

Para cada cenário, descrevam em pseudocódigo a lógica de decisão que o sistema usaria (usando Visualg ou Python). Pensem nas seguintes perguntas orientadoras:

Código Python:

idade = int(input("Digite a idade do cliente: "))

if idade >= 18:
    print("Venda LIBERADA. O cliente possui idade permitida para compras no atacado.")
else:
    print("Venda BLOQUEADA. O cliente é menor de idade e não pode finalizar a compra.")

Instruções de entrega: Envie a resolução com a análise dos dois cenários e a resposta às perguntas diretamente aqui no AVA.


SEMANA 8 - Estruturas de Repetição (Loop While)

Descrição da Atividade:
O detetive de bugs: encontrando e corrigindo um loop infinito utilizando a estrutura de repetição enquanto (while).

Materiais Necessários:

Passo a Passo:

  1. Leiam com atenção a atividade proposta no roteiro.
  2. Antes de iniciar a codificação, realizem esboços no papel para definir a lógica de parada da repetição.
  3. Utilizem as ferramentas de desenvolvimento disponíveis para implementar e corrigir o código.

Código Python:

# Exemplo de controle de repetição e prevenção de loop infinito
contador = 1

while contador <= 5:
    print(f"Tentativa número {contador}")
    contador += 1 # Incremento obrigatório para atualização do laço

Instruções de entrega: Sigam as instruções para o registro e envio diretamente aqui no AVA.


SEMANA 9 - Estruturas de Repetição (Loop For)

Descrição da Atividade:
Programando o Robô Chef: sua primeira receita utilizando a estrutura de repetição contada para (for).

Materiais Necessários:

Passo a Passo:

  1. Leiam com atenção a atividade proposta no roteiro.
  2. Antes de iniciar a codificação, realizem esboços no papel para definir a sequência de iterações.
  3. Utilizem as ferramentas de desenvolvimento disponíveis para implementar a solução.

Código Python:

# Exemplo de automação de passos de uma receita com o laço for
passos_receita = [
    "Misturar os ingredientes",
    "Bater a massa",
    "Colocar na forma",
    "Assar por 40 minutos"
]

for indice, passo in enumerate(passos_receita, 1):
    print(f"Passo {indice}: {passo}")

Instruções de entrega: A entrega da atividade deve ser realizada aqui no AVA em um documento em formato .pdf ou .doc.


SEMANA 10 - Estruturas de Repetição Aninhadas

Descrição da Atividade:
Detetives de performance: analisando e construindo laços de repetição aninhados para resolver problemas complexos.

Materiais Necessários:

Passo a Passo:

  1. Leiam com atenção a atividade proposta no roteiro.
  2. Antes de iniciar a codificação, realizem esboços no papel para definir o fluxo interno e externo do laço.
  3. Utilizem as ferramentas de desenvolvimento para implementar e testar o algoritmo.

Código Python:

# Exemplo de laços aninhados (Gerador de Tabuada)
for i in range(1, 4):
    print(f"--- Tabuada do {i} ---")
    for j in range(1, 4):
        print(f"{i} x {j} = {i * j}")

Instruções de entrega: Ao final, envie um arquivo doc, pdf ou imagem com as respostas do grupo aqui no AVA.


SEMANA 11 - Vetores (Arrays Unidimensionais)

Descrição da Atividade:
Ordenando listas com o algoritmo Bubble Sort em vetores unidimensionais.

Materiais Necessários:

Passo a Passo:

  1. Leiam com atenção a atividade proposta no roteiro.
  2. Antes de iniciar a codificação, realizem testes de mesa no papel para entender as trocas de posição no vetor.
  3. Utilizem as ferramentas para implementar o algoritmo de ordenação.

Código Python:

# Exemplo do algoritmo de ordenação Bubble Sort em vetores
numeros = [5, 2, 8, 1, 9]
tamanho = len(numeros)

for i in range(tamanho):
    for j in range(0, tamanho - i - 1):
        if numeros[j] > numeros[j + 1]:
            numeros[j], numeros[j + 1] = numeros[j + 1], numeros[j]

print("Lista ordenada:", numeros)

Instruções de entrega: Envie um arquivo de texto com as respostas e o código no AVA.


SEMANA 12 - Matrizes (Arrays Bidimensionais)

Descrição da Atividade:
Desafio: Construindo a lógica base e a estrutura bidimensional para um Jogo da Velha utilizando matrizes.

Materiais Necessários:

Passo a Passo:

  1. Leiam com atenção a atividade proposta no roteiro.
  2. Antes de iniciar a codificação, realizem esboços das coordenadas de linhas e colunas no papel.
  3. Utilizem as ferramentas de desenvolvimento para implementar a estrutura de matriz.

Código Python:

# Estrutura base de representação de uma Matriz 3x3 para Jogo da Velha
tabuleiro = [
    [" ", " ", " "],
    [" ", " ", " "],
    [" ", " ", " "]
]

print("Exibição do Tabuleiro:")
for linha in tabuleiro:
    print(" | ".join(linha))

Instruções de entrega: Envie a resolução da atividade prática conforme orientado no AVA.


SEMANA 13 - Funções e Procedimentos

Descrição da Atividade:
Boas práticas de nomeação, modularização e implementação de funções com e sem retorno.

Materiais Necessários:

Passo a Passo:

  1. Execute o código, entenda seu funcionamento e comente o papel de cada função.
  2. Renomeie as funções e variáveis com nomes claros e descritivos (padrão snake_case).
  3. Garanta a criação de funções com retorno de dados e procedimentos de exibição.
  4. Teste com diferentes entradas de dados.
  5. Salve o programa final em um arquivo .py.
  6. Escreva um breve relato explicando as melhorias estruturais implementadas.

Código Python:

# Função com retorno
def calcular_media(notas):
    if not notas:
        return 0.0
    return sum(notas) / len(notas)

# Procedimento (função sem retorno explícito)
def exibir_status_aluno(media):
    if media >= 6.0:
        print("Status: Aprovado")
    else:
        print("Status: Reprovado")

# Execução do programa
notas_aluno = [7.5, 8.0, 6.0]
media_final = calcular_media(notas_aluno)
print(f"Média calculada: {media_final:.2f}")
exibir_status_aluno(media_final)

Instruções de entrega: Envie o arquivo contendo o código ajustado e o relato explicativo no AVA.


SEMANA 14 - Revisão Integrada e Modularização

Descrição da Atividade:
Do caos à ação: priorizando melhorias e construindo um sistema modularizado de revisão integrando menus, listas e funções.

Materiais Necessários:

Passo a Passo:

  1. Leiam com atenção a atividade proposta no roteiro.
  2. Antes de iniciar a codificação, desenhe o fluxo do menu e a conexão entre os módulos.
  3. Utilizem as ferramentas de desenvolvimento para implementar o projeto final modularizado.

Código Python:

# Mini-projeto modularizado integrando funções e estruturas de controle
def exibir_menu():
    print("\n--- SISTEMA MODULAR ---")
    print("1 - Adicionar item")
    print("2 - Listar itens")
    print("0 - Sair")

def sistema_principal():
    itens = []
    opcao = -1
    
    while opcao != 0:
        exibir_menu()
        opcao = int(input("Escolha uma opção: "))
        
        if opcao == 1:
            novo_item = input("Digite o nome do item: ")
            itens.append(novo_item)
            print("Item adicionado com sucesso!")
        elif opcao == 2:
            print("\nItens cadastrados:", itens)
        elif opcao == 0:
            print("Encerrando o sistema...")
        else:
            print("Opção inválida!")

# Inicialização do programa
sistema_principal()

Instruções de entrega: Entregar no AVA um documento contendo a resolução completa e o código do projeto final.