Buscar

Aula 2 - Formas de resolução de problemas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

1 
 
FACULDADE DE COMPUTAÇÃO E INFORMÁTICA 
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO 
Introdução a Programação – Aula 2 – 2º SEMESTRE/2013 
 
 
TEORIA: ALGORITMOS – PARTE (II): FORMAS DE RESOLUÇÃO DE PROBLEMAS 
 
 
 
Nossos objetivos nesta aula são: 
 
 compreender e utilizar as fases típicas de resolução de 
problemas 
 desenvolver algumas estratégias específicas para cada tipo de 
problema 
 resolver alguns problemas simples, utilizando o formalismo 
algorítmico apropriado 
 praticar com resolução de problemas, utilizando algumas 
ferramentas para testar ideias algorítmicas 
 
 
 
 
A referência para esta aula é o Capítulo 2 (O raciocínio e as formas de 
resolução de problemas) do nosso livro-texto: 
 
Piva Jr., D. et al. Algoritmos e Programação de Computadores. Rio de 
Janeiro: Elsevier, 2012. 
 
Não deixem de ler este capítulo após a aula de hoje! 
 
 
 Na nossa aula passada, aprendemos a relação entre problemas e algoritmos: um 
algoritmo resolve um determinado problema. Nesta aula, estabeleceremos uma 
sequência genérica de passos para se resolver problemas, com o objetivo de minimizar 
o processo de tentativa e erro na obtenção de algoritmos. 
 
 Uma sequência genérica1 de passos para se resolver problemas pode ser posta como: 
 
1. Saiba o que deve ser feito 
2. Imagine possíveis soluções 
3. Avalie as soluções levantadas 
4. Uma vez escolhida uma solução, reavalie esta escolha durante o progresso de 
sua aplicação e, caso a solução não se mostre viável, volte ao passo 2 para 
imaginar novas soluções. 
 
1 Polya, G. A arte de Resolver Problemas. Editora Interciência: Rio de Janeiro, 1978. 
2 
 
 O passo 2 (imaginar as soluções), normalmente, exige que o programador faça 
abstrações. Abstrair significa, de uma forma bem genérica, formar imagens mentais do 
problema e dos possíveis passos para resolvê-lo. Muitas vezes, recorremos à 
construção de modelos matemáticos para produzir estas abstrações. 
 
 Assim, estabeleceremos entre o mundo concreto (onde está o problema) e o mundo 
matemático (onde pode estar a solução). Abaixo, tem-se uma sequência de passos 
(derivada da sequência genérica vista anteriormente) para se estabelecer esta relação: 
 
Fonte: Piva Jr., D. et al. Algoritmos e Programação de Computadores. Rio de Janeiro: Elsevier, 2012, pag. 38. 
EXERCÍCIO TUTORIADO 
 
Um buquê de flores com 6 rosas e 4 margaridas custou R$ 50,00. Sabendo que cada margarida 
custou R$ 3,00 a mais do que uma rosa, determine o preço de cada rosa e de cada margarida. 
Resolva este problema utilizando os 9 passos listados no diagrama acima. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3 
 
 
 Uma vez que tenhamos resolvido um problema, vamos descrever as etapas de sua 
resolução na forma algorítmica, ou seja, passo a passo. 
 
 Existem diversas formas para descrever uma solução algorítmica. Nesta aula (e durante 
grande parte da nossa disciplina) vamos utilizar duas formas básicas: fluxograma e 
português estruturado (também conhecido como portugol ou pseudocódigo). 
 
 Uma vez que tenhamos a descrição algorítmica, podemos facilmente escrever um 
programa para esta descrição na linguagem de nossa preferência. Assim, é importante 
novamente ressaltar que o importante para se resolver um problema é a descrição 
algorítmica da solução e não a linguagem de programação. 
 
 Um fluxograma é uma representação gráfica de um procedimento, problema ou 
sistema, cujas etapas ou módulos são ilustrados de forma encadeada por meio de 
símbolos geométricos interconectados. Um sinônimo normalmente utilizado para 
fluxograma é diagrama de fluxo. 
 
 A tabela abaixo mostra alguns dos elementos geométricos (existem outros) mais 
utilizados em fluxogramas: 
 
 
 
 
Fonte: Piva Jr., D. et al. Algoritmos e Programação de Computadores. Rio de Janeiro: Elsevier, 2012, pag. 40. 
 
 
 
4 
 
EXERCÍCIO TUTORIADO 
 
Vamos considerar, novamente, o primeiro problema visto na aula passada: obter dois números, 
somá-los e mostrar o resultado da soma. Construa um fluxograma, utilizando a notação da 
tabela anterior, para descrever um algoritmo que resolva este problema. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EXERCÍCIO COM DISCUSSÃO EM DUPLAS 
 
Consideremos, agora, o segundo problema visto na aula passada: obter dois números e 
mostrar qual o maior deles. Construa um fluxograma, utilizando a notação da tabela anterior, 
para descrever um algoritmo que resolva este problema. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5 
 
 O português estruturado (ou portugol ou pseudocódigo) também possui elementos 
chamados comandos que possibilitam descrever a solução de forma textual. O nome 
português estruturado vem do fato de estarmos utilizando a Língua Portuguesa na 
descrição textual. Porém, isto pode ser feito em qualquer língua. Por isto, muitos autores 
preferem usar o nome pseudocódigo para sair desta dependência da língua. 
 
 Diferente dos algoritmos, não há uma notação padronizada para português estruturado. 
Assim, para a nossa disciplina, vamos fixar a notação mostrada na tabela abaixo: 
 
Fonte: Piva Jr., D. et al. Algoritmos e Programação de Computadores. Rio de Janeiro: Elsevier, 2012, pag. 43. 
 
 Observe que, para cada elemento no fluxograma, há um comando correspondente em 
português estruturado e vice-versa. Assim, você poderá utilizar qualquer um deles para 
descrever o seu algoritmo. 
 
 Porém, é importante observar que o português estruturado é o que mais se aproxima de 
uma linguagem de programação. Assim, pode ficar mais simples a transposição de um 
algoritmo em português estruturado para uma linguagem de programação do que a partir 
de um fluxograma. 
6 
 
EXERCÍCIO TUTORIADO 
 
Transforme o fluxograma do algoritmo para somar dois números para português estruturado. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EXERCÍCIO COM DISCUSSÃO EM DUPLAS 
 
Transforme o fluxograma do algoritmo para mostrar qual o maior de dois números para 
português estruturado. 
 
 
 
 
 
 
 
 
 
 
 
 Com base nestas duas descrições, vamos testá-las em laboratório com o VisualAlg e Java. 
 
 
7 
 
ATIVIDADES DE LABORATÓRIO 
 
Para a nossa primeira atividade de laboratório, considere o primeiro algoritmo (em 
pseudocódigo) visto em aula, para somar dois números: 
 
INICIO 
LEIA (X) 
LEIA (Y) 
S<- X+Y 
ESCREVA (S) 
FIM 
 
Seguindo as instruções de seu professor, transforme este algoritmo para a notação do VisuAlg e 
teste a sua execução: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Seguindo as instruções de seu professor, implemente este algoritmo em Java e teste a sua 
execução: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8 
 
ATIVIDADES DE LABORATÓRIO 
 
Para a nossa segunda atividade de laboratório, considere o segundo algoritmo (em 
pseudocódigo) visto em aula, para mostrar o maior de dois números: 
 
LEIA (X) 
LEIA (Y) 
SE (X > Y) ENTÃO 
 ESCREVA (X) 
SENÃO 
 ESCREVA (Y) 
 
Seguindo as instruções de seu professor, transforme este algoritmo para a notação do VisuAlg e 
teste a sua execução: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Seguindo as instruções de seu professor, implemente este algoritmo em Java e teste a sua 
execução: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9 
 
EXERCÍCIOS EXTRA-CLASSE 
 
1. Ler integralmente o Capítulo 2 do livro-texto, base desta aula. Não se preocupe ainda com 
as linguagens Pascal, C e PHP que aparecem no texto. Na próxima semana, teremos a 
oportunidade de estudar um pouco destas linguagens. 
 
2. Faça um algoritmo que leia dois números e mostre o menor deles. Descreva o seu algoritmo 
em fluxogramae em pseudocódigo. Simule seu algoritmo em VisualAlg e faça uma 
implementação em Java. 
 
3. Faça um algoritmo que receba o salário de um funcionário, calcule e mostre o novo salário, 
sabendo que ele sofreu um aumento de 15%. Descreva o seu algoritmo em fluxograma e 
em pseudocódigo. Simule seu algoritmo em VisualAlg e faça uma implementação em Java. 
[Dica de implementação: para trabalhar com números “quebrados” em VisuAlg, utilize o 
tipo real. Em Java, utilize o tipo double.] 
 
4. Sabe-se que o valor de cada 1000 litros de água corresponde a 2% do salário mínimo. Faça 
um algoritmo que receba o valor do salário mínimo e a quantidade de água consumida em 
uma residência por mês. Calcule e mostre: 
 
a. O valor da conta de água. 
b. O valor a ser pago com desconto de 15%. 
 
Descreva o seu algoritmo em fluxograma e em pseudocódigo. Simule seu algoritmo em 
VisualAlg e faça uma implementação em Java.

Outros materiais