Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante   Click to listen highlighted text! Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante

Lógica de Programação – Teórica – Aula 02

Da Solução ao Algoritmo: Representando Problemas

Tema da aula

Como transformar uma solução em um algoritmo organizado?

Na aula anterior descobrimos que:

  • computadores não pensam;
  • precisamos fornecer instruções;
  • essas instruções formam um algoritmo;
  • antes de escrever qualquer algoritmo devemos compreender o problema.

Hoje responderemos outra pergunta:

Como organizar essas informações para que possamos escrever algoritmos corretamente?


Objetivos da aula

Ao final desta aula o estudante deverá ser capaz de:

  • identificar corretamente um problema;
  • separar dados importantes de dados irrelevantes;
  • identificar entradas;
  • identificar saídas;
  • definir o processamento;
  • construir algoritmos simples em linguagem natural;
  • escrever seus primeiros algoritmos em Portugol utilizando entrada e saída.

Revisão da Aula 01

Perguntas

  • O que é um algoritmo?
  • Todo passo a passo é um algoritmo?
  • O computador pensa?
  • O que significa algoritmo finito?
  • O que significa algoritmo correto?
  • Quais eram as quatro perguntas que todo programador faz?

Motivação

“Quanto custa pintar uma parede?”

“Como responder essa pergunta?”

Possíveis respostas:

  • depende do tamanho;
  • depende da tinta;
  • depende da mão de obra;
  • depende da quantidade de demãos.

Pergunta:

Qual dessas informações realmente precisamos?


Todo problema possui informações

Todo algoritmo resolve um problema.

Mas nenhum algoritmo consegue resolver um problema sem informações.

Essas informações podem ser:

  • fornecidas pelo usuário;
  • medidas;
  • consultadas em um banco de dados;
  • calculadas por outro algoritmo.

Essas informações recebem um nome muito importante:

Dados de entrada.


Modelo Universal dos Algoritmos

Quadro:

           ENTRADA
              ↓
       PROCESSAMENTO
              ↓
            SAÍDA

Então:

Todo algoritmo, dos mais simples aos mais complexos, pode ser entendido por esse modelo.

Entrada

São as informações necessárias para resolver o problema.

Exemplos:

  • idade;
  • salário;
  • nota;
  • peso;
  • altura;
  • temperatura.

Sem entrada não há problema a resolver.


Como analisar qualquer problema

Sempre que precisar desenvolver um algoritmo, utilize a seguinte sequência de raciocínio:

PROBLEMA
      ↓
Quais são as entradas?
      ↓
Como esses dados serão processados?
      ↓
Qual será a saída?
      ↓
Escrever o algoritmo
      ↓
Validar a solução (Teste de Mesa)
Essa sequência será utilizada durante toda a disciplina. Independentemente do problema proposto, o primeiro passo será identificar as entradas, o processamento e a saída antes de escrever qualquer algoritmo.

Processamento

É o conjunto de operações realizadas com os dados.

Pode envolver:

  • cálculos;
  • comparações;
  • decisões;
  • repetições;
  • organização de informações.

O processamento representa o “trabalho” executado pelo computador.


Saída

É o resultado produzido pelo algoritmo.

Exemplos:

  • média do aluno;
  • valor do salário;
  • preço final;
  • mensagem;
  • relatório.

Sem saída, o algoritmo não entrega valor ao usuário.


Estudo de Caso 1 — Média Escolar

Problema: Calcular a média de duas notas.

Qual é a entrada?

  • Nota 1
  • Nota 2

Qual é o processamento?

média ← (nota1 + nota2) / 2

Qual é a saída?

média

Esquema:

Entrada
nota1
nota2
↓
Processamento
média ← (nota1 + nota2)/2
↓
Saída
média

Estudo de Caso 2 — Área de um Terreno

Problema:

Calcular a área de um terreno retangular.

Pergunta:

O que precisamos saber?

Resposta:

  • comprimento;
  • largura.

Processamento:

área ← comprimento × largura

Resultado:

área

Estudo de Caso 3 — Consumo de Combustível

Problema:

Um automóvel percorreu 480 km consumindo 40 litros de combustível.

Calcule o consumo médio.

Perguntas:

Entrada?

  • distância;
  • litros.

Processamento:

consumo ← distância ÷ litros

Saída:

consumo médio

Nem toda informação é importante

Problema:

João, estudante do IFPE, possui 19 anos, mora em Palmares, mede 1,80 m e tirou 8,5 e 9,0 em Lógica de Programação.

Pergunta:

Queremos calcular a média.

Quais informações realmente interessam?

Abstração: identificar apenas os dados relevantes para resolver um problema.


Exercício de Abstração

Um posto de saúde deseja calcular o Índice de Massa Corporal (IMC) de um paciente.

Durante o atendimento foram registrados os seguintes dados:

  • Nome;
  • CPF;
  • Peso;
  • Altura;
  • Estado civil;
  • Cor dos olhos;
  • Número do cartão do SUS;
  • Idade.

Pergunta

Quais informações são realmente necessárias para calcular o IMC?


Resposta esperada

As únicas informações necessárias são:

  • Peso;
  • Altura.

As demais informações podem ser importantes para o cadastro do paciente, mas não participam do cálculo do IMC.

Essa capacidade de selecionar apenas os dados relevantes recebe o nome de abstração.


Segundo exercício de abstração

Local de inserção:

Imediatamente após o exercício anterior.


Exercício de Abstração

Uma locadora deseja calcular o valor do aluguel de um veículo.

As seguintes informações estão disponíveis:

  • Nome do cliente;
  • CPF;
  • Modelo do veículo;
  • Cor do veículo;
  • Quantidade de diárias;
  • Valor da diária;
  • Quilometragem inicial;
  • Quilometragem final;
  • Cidade onde o cliente mora.

Pergunta

Quais informações são necessárias para calcular o valor do aluguel?


Discussão

Observe que algumas informações são importantes para o cadastro do cliente, mas não para resolver o problema proposto. Um bom programador identifica apenas os dados realmente necessários para cada situação.


Construindo Algoritmos em Linguagem Natural

Problema:

Calcular a idade de uma pessoa.

Algoritmo:

  1. Ler o ano de nascimento.
  2. Ler o ano atual.
  3. Calcular a diferença entre os anos.
  4. Mostrar a idade.

Pergunta:

  • Está claro?
  • Está completo?
  • Pode melhorar?

Introdução ao Portugol

O Portugol é uma forma padronizada de escrever algoritmos (linguagem de programação).

Estrutura mínima:

Algoritmo "Nome"
Var
Inicio
FimAlgoritmo

Primeiro Algoritmo com Entrada e Saída

Problema:

Ler o nome de uma pessoa e exibir uma mensagem.

Algoritmo "BoasVindas"

Var
   nome : caractere
Inicio
   Escreva("Digite seu nome: ")
   Leia(nome)
   Escreva("Olá ", nome)
FimAlgoritmo

Comandos:

  • Escreva → mostra informações.
  • Leia → recebe informações.
  • nome → espaço para armazenar um dado.

Exercícios em Sala

Organize em três níveis.

Nível 1 — Identificação

Para cada problema, identifique:

  • Entrada
  • Processamento
  • Saída

Problemas:

  1. Calcular o dobro de um número.
  2. Calcular a idade de uma pessoa.
  3. Calcular o perímetro de um retângulo.
  4. Calcular o salário com aumento de 10%.
  5. Converter horas em minutos.

Nível 2 — Linguagem Natural

Escreva o algoritmo em linguagem natural para:

  • calcular a área de um círculo;
  • calcular o IMC;
  • calcular o troco de uma compra.

Nível 3 — Portugol

Escreva em Portugol:

  • Ler dois números e mostrar sua soma.
  • Ler comprimento e largura e calcular a área.
  • Ler um nome e uma idade e exibir uma mensagem personalizada.

Estudo de Caso — Folha de Pagamento

Uma empresa paga aos seus funcionários um salário-base e um adicional por hora extra.

Pergunta:

Quais informações precisamos conhecer?

Possíveis repostas:

  • salário-base;
  • quantidade de horas extras;
  • valor da hora extra.

Perguntas:

  • Qual será o processamento?
  • Qual será a saída?

Escreva o algoritmo.


Erros Frequentes

Durante a construção de algoritmos, alguns erros são muito comuns entre os iniciantes.

Evite os seguintes equívocos:

  • Confundir entrada com saída;
  • Esquecer alguma informação necessária para resolver o problema;
  • Utilizar informações desnecessárias no processamento;
  • Escrever o algoritmo antes de compreender completamente o problema;
  • Colocar o resultado do problema como dado de entrada;
  • Esquecer de apresentar o resultado ao usuário.

Sempre que terminar um algoritmo, revise cada etapa e confirme se ela está coerente com o problema proposto.


Desafio

Uma locadora cobra:

  • R$ 120,00 por diária de um veículo;
  • R$ 0,80 por quilômetro rodado.

Sem escrever o algoritmo, identifique:

Entrada


 

Processamento


Saída


Observe que o problema não fornece a fórmula pronta. Antes de escrever qualquer algoritmo, é necessário compreender quais informações serão utilizadas e como elas se relacionam para produzir o resultado esperado.


Exercício – Validação da Solução (Teste de Mesa)

Depois de construir um algoritmo, o próximo passo é verificar se ele realmente resolve o problema proposto. Uma das maneiras mais simples de fazer isso é por meio do teste de mesa, que consiste em simular manualmente a execução do algoritmo, acompanhando o valor das variáveis a cada etapa.

Problema

Uma papelaria deseja calcular o valor final de uma compra.

O algoritmo recebe o preço de um produto e a quantidade comprada. Em seguida, calcula o valor total da compra e exibe o resultado.

Algoritmo em Portugol

Algoritmo "Valor_da_Compra"
Var
   preco, total : Real
   quantidade : Inteiro
Inicio
   Escreva("Preço do produto: ")
   Leia(preco)
   Escreva("Quantidade: ")
   Leia(quantidade)
   total <- preco * quantidade
   Escreva("Valor total = R$ ", total)
FimAlgoritmo

Teste de Mesa

Considere os seguintes valores de entrada:

  • Preço do produto = R$ 12,50

  • Quantidade = 4

Complete a tabela abaixo.

Etapa Preço Quantidade Total
Após a leitura do preço      
Após a leitura da quantidade      
Após o cálculo do total      
Valor exibido ao usuário      

Perguntas

  1. Qual será o valor final exibido pelo algoritmo?


  1. O algoritmo resolveu corretamente o problema?

( ) Sim

( ) Não

Justifique.


  1. O que aconteceria se a quantidade fosse igual a 0?


  1. O algoritmo continuaria funcionando se o preço fosse R$ 8,90 e a quantidade 12? Faça um novo teste de mesa para confirmar.


Desafio

Teste de mesa utilizando:

  • Preço = R$ 35,90

  • Quantidade = 3

Preencha a tabela.

Etapa Preço Quantidade Total
Após a leitura do preço      
Após a leitura da quantidade      
Após o cálculo do total      
Valor exibido ao usuário      

Conclusão

Um algoritmo não deve ser considerado correto apenas porque “parece certo”. Antes de implementá-lo em uma linguagem de programação, é importante validá-lo utilizando diferentes conjuntos de dados. O teste de mesa permite identificar erros de lógica, confirmar se os cálculos estão corretos e verificar se o algoritmo realmente produz os resultados esperados. Essa técnica é amplamente utilizada no ensino de algoritmos e no desenvolvimento de software como etapa inicial de verificação da solução.


Resumo da Aula

Nesta aula você aprendeu que:

  • Todo algoritmo resolve um problema.
  • Todo problema precisa de informações para ser resolvido.
  • Essas informações podem ser classificadas como entrada, processamento e saída.
  • Nem toda informação disponível é relevante para resolver um problema; selecionar apenas os dados importantes é um processo chamado abstração.
  • Um algoritmo pode ser escrito inicialmente em linguagem natural e, posteriormente, em Portugol.
  • Antes de implementar uma solução, é importante verificar se ela funciona corretamente utilizando o teste de mesa.

Fechamento

O modelo central da aula:

PROBLEMA
↓
ENTRADA
↓
PROCESSAMENTO
↓
SAÍDA
↓
ALGORITMO

Ideia central:

Todo algoritmo começa pela compreensão do problema. Antes de pensar em comandos, um bom programador identifica quais dados serão utilizados, como serão processados e qual resultado deve ser produzido. A sintaxe vem depois; o raciocínio vem primeiro.


Fim da aula

Click to listen highlighted text!