O documento discute princípios e métodos para resolução de problemas, incluindo representações gráficas e em pseudocódigo. As principais etapas para resolução de problemas são apresentadas, assim como exemplos de fluxogramas e algoritmos em pseudocódigo para ilustrar os conceitos.
1. 08/08/2013
1
Tema: Análise e princípios de resolução de
problemas – representação gráfica e em
pseudolinguagem de algoritmos
Professor MSc. Edilene A. Veneruchi
de Campos
Objetivos deste encontro
• Compreender e utilizar as fases típicas para
resolução de problemas;
• Desenvolver estratégias específicas para tratar
cada tipo de problema;
• Resolver problemas utilizando o formalismo
algorítmico apropriado.
O que é um problema?
“É a situação que constitui o ponto de partida de
qualquer indagação, ou seja, a situação é
indeterminada. (John Dewey).
2. 08/08/2013
2
Fases para resolver um problema
1. Compreender o problema;
2. Identificar as entradas do problema;
3. Identificar as informações que respondem ao
problema;
4. Determinar o que é preciso para transformar
dados em informações;
5. Construir a sequência de passos (algoritmo) que
possibilite a realização do passo 4;
6. Testar o algoritmos em várias situações.
Fases para resolver problema
(versão mais detalhada)
• Compreender exatamente o que deseja
resolver;
• Levantamento de hipóteses de resolução;
• Experimentar cada hipótese de resolução;
• Concluir se alguma hipótese resolve a
questão;
• Rever todos os passos anteriores;
• Concluir com a resolução mais adequada.
Hipótese
“Na língua portuguesa, uma hipótese designa
qualquer suposição de algo verossímil, possível de
ser verificado, a partir da qual se extrai uma
conclusão.”
(www.significados.com.br/hipotese)
3. 08/08/2013
3
Hipótese
“Na Matemática, as hipóteses são o conjunto de
condições iniciais a partir das quais, com base num
raciocínio lógico, é elaborada a demonstração de
um determinado resultado, chegando a uma tese.”
(www.significados.com.br/hipotese)
Exemplificando hipótese...
São 10h30 e você se pergunta: por que será
que meu colega de trabalho ainda não
chegou (está com mais de 2 horas de
atraso)?
h1: seu ônibus quebrou durante o trajeto.
h2: está doente.
h3: acordou atrasado.
h4: ganhou na mega sena e está de férias.
...
Foco no contexto
Pensamento Crítico
Resolução de Problemas
4. 08/08/2013
4
Passos para resolução genérica de
problemas
1. Saiba o que deve ser feito;
2. Imagine a(s) solução(ões);
3. Avalie as soluções listadas;
4. Reavalie.
Resolvendo problema ...
Tirar um automóvel da garagem.
Passos ...
1. Saiba o que deve ser feito
Características da garagem? Características do
veículo? Posicionamento do veículo na garagem?
Onde estacionar depois? Características da rua? ...
2. Imagine as soluções
Sair da garagem de ré;
Sair da garagem de frente.
5. 08/08/2013
5
Passos ...
3. Avalie as soluções listadas
Rua muito movimentada e com muitos carros
estacionados, dificultando a visão do trânsito. Muitas
crianças circulando no local (próximo a uma escola).
Então, sair de ré é mais arriscado que sair de frente.
A solução mais indicada é sair de frente.
4. Reavaliar
A solução definida resolveu
adequadamente o problema.
Passos para resolução de problemas
matemáticos
1. Entender o que deve ser feito;
2. Interpretar o texto e as imagens;
3. Identificar os dados e as relações;
4. Definir as incógnitas;
5. Escrever a(s) equação(ões);
6. 08/08/2013
6
6. Resolver a(s) equação(ões);
7. Determinar a(s) equação(ões) e o domínio;
8. Indicar a(s) solução(ões) do problema;
9. Responder ao problema.
Passos para resolução de problemas
matemáticos
Resolvendo problema ...
Calcular o valor do novo salário bruto de um
funcionário que acabou de saber que
recebeu uma promoção e, assim, terá um
aumento de 15% do seu salário atual.
Passos ...
1. Entender o que deve ser feito
Calcular novo salário do funcionário promovido e
que receberá 15% de aumento
2. Interpretar o texto e as imagens
Pensar que será necessário descobrir o salário
inicial do funcionário. Entender que o que se
deseja saber é 15% maior que este salário inicial.
etc.
7. 08/08/2013
7
Passos ...
3. Identificar os dados e as relações
salário inicial; 15% de aumento
4. Definir as incógnitas
SI = salário inicial
A = valor do aumento do salário
SF = salário final
Passos ...
5. Escrever as equações
SF = SI + 15% do SI
6. Resolver o sistema de equação
SI = 1000
A = 1000 * 15 /100 = 150
SF = 1000 + 150 = 150
Passos ...
7. Indicar as equações e o domínio
A = SI * 15/100
SF = SI + A
8. Indicar a solução do problema
S = {1150}
9. Responder ao problema
O novo salário é R$ 1.150,00
8. 08/08/2013
8
Representação das soluções
• Fluxograma (representação gráfica)
• Português estruturado (portugol ou
pseudolinguagem de programação)
Elementos de um fluxograma
Terminal – indica o ponto inicial e final de um
algoritmo.
Entrada ou saída – indica interação do
algoritmo com o ambiente externo.
Fluxo – indica o sentido da execução dos
passos de um algoritmo.
Processo – indica um passo (uma ação) de um
algoritmo.
Condição - indica situação em que a execução
de um algoritmo deve decidir seguir por um ou
por outro caminho.
Relação entre fluxograma e português
estruturado
INICIO - FIM
LEIA()
ESCREVA()
Ordem de apresentação dos
comandos
Qualquer ação.
SE – ENTÃO - SENÃO
9. 08/08/2013
9
Fluxograma para tirar veículo da garagem
Inicio
Veículo, rua,
garagem
Analisar
posição do
veículo
Frente
voltada p/
portão?
Retirar o
veículoSim
Analisar
espaço na
garagem
Não
Fim
É possível
manobrar?
Não
Manobrar o
veículo
Sim
Fluxograma para calcular novo salário de
um funcionário
Inicio
Salário inicial Calcular o
aumento
Fim
Calcular salário
final
Salário final
Portugol para calcular novo salário
Algoritmo “Novo Salario”
Var
SI, A , SF: real
ESCREVA “Digite valor do salário inicial: “
LEIA SI
A SI * 15 / 100
SF SI + A
ESCREVA “Salário final é “, SF
FimAlgoritmo
10. 08/08/2013
10
Exercitando ...
Criar um algoritmo que troque conteúdo de duas
variáveis de memória entre si.
Fluxograma para trocar o conteúdo de 2
variáveis entre si
Inicio
a, b Guardar o valor
de a em aux
Fim
Copiar o valor
de b para a
a, b
Copiar o valor
de aux para b
11. 08/08/2013
11
Português estruturado
Algoritmo “Troca valores”
Var
a, b, aux: real
ESCREVA “Digite valor de a: “
LEIA a
ESCREVA “Digite valor de b: “
LEIA b
Português estruturado
aux a
a b
b aux
ESCREVA “Novo valor de a: “, a
ESCREVA “Novo valor de b: “, b
FimAlgoritmo
Exercitando ...
Criar um algoritmo que determine se um inteiro
qualquer é múltiplo de 8.
12. 08/08/2013
12
Solução em Fluxograma
Início
num
Dividir o num
por 8 e guardar
o resto em r
Fim
r = 0
Sim
Não Não é
múltiplo
É múltiplo
Solução em Português estruturado
Algoritmo “Multiplo”
Var
num, r: inteiro
ESCREVA “Digite valor do número: ”
LEIA num
r RESTO(num/8)
SE r = 0
ENTÃO ESCREVA “É múltiplo”
SENÃO ESCREVA “Não é múltiplo”
FimAlgoritmo
13. 08/08/2013
13
Exemplo de programa em C
Descobrir se um número inteiro é múltiplo de 8:
#include <stdio.h>
main() {
int num, r;
printf(“Digite o número: );
scanf(“%d%*c”, &num);
r = num % 8;
if (r == 0)
printf(“É múltiplo”);
else printf(“Não é múltiplo”);
getchar();
}
Exemplo de programa em Pascal
Descobrir se um número inteiro é múltiplo de 8:
PROGRAM MULTIPLO;
VAR
num, r: INTEGER;
BEGIN
WRITELN(“Digite o número: );
READLN(num);
r := num mod 8;
IF (r = 0)
THEN WRITELN(“É múltiplo”)
ELSE WRITELN(“Não é múltiplo”);
READLN();
END.
Exemplo de programa em Java
Descobrir se um número inteiro é múltiplo de 8:
import java.util.Scanner;
public class Multiplo {
public static void main(String args[]) {
int num, r;
Scanner e = new Scanner(System.in);
System.out.println(“Digite o número: “);
num = e.nextInt();
r = num % 8;
if (r == 0)
System.out.println(“É múltiplo”);
else System.out.println(“Não é múltiplo”);
} }
14. 08/08/2013
14
“Tudo deve ser feito da forma mais simples
possível, mas não mais simples que isso”
(Albert Einstein)
Em busca da melhor solução para um
problema ...
“Se em tudo o mais forem idênticas as várias
explicações de um fenómeno, a mais simples é a
melhor” (William de Ockham)
“A perfeição não é alcançada quando já não há
mais nada para adicionar, mas quando já não há
mais nada que se possa retirar“ (Antoine de Saint-
Exupéry)
Em busca da melhor solução para um
problema ...
Evite tentativa e erro!
Não tente fazer tudo de
uma vez!
Primeiro encontre uma
solução para o
problema. Depois, tente
melhorá-la.Fonte: http://upload.wikimedia.org/wikipedia/commons/thumb/
8/89/Nt-9point-1-2.svg/500px-Nt-9point-1-2.svg.png