Buscar

Aula 01 Introdução aos conceitos de algoritmos

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 15 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 15 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 15 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

Prévia do material em texto

Construção de Algoritmos 
Introdução aos conceitos 
de algoritmos 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 2 
Introdução aos conceitos de algoritmos 
 
Este curso tem como objetivo trabalhar o desenvolvimento do 
raciocínio lógico para a resolução de problemas computacionais. 
Primeiramente, vamos discutir alguns aspectos importantes para construção 
de um algoritmo. 
Geralmente, quando pensamos em programação, temos uma ideia 
inicial de ser algo difícil, complicado e até mesmo chato. Mas programar é 
uma arte e está diretamente relacionado a explorar a criatividade, a ter 
concentração, ao aperfeiçoamento de uma habilidade com o passar do tempo 
e com a prática. 
Podemos definir o termo programar como: “É a arte de resolver 
problemas através da criação de um software”. 
Se eu pedisse a várias pessoas diferentes para pintar um quadro de 
uma pessoa, provavelmente teria como resposta: 
 
 
 
Fonte: Disponível em: < www.corbis.com>. Acesso em: ; 
Disponível em: <notasaocafe.wordpress.com/category/arte-ao-cafe/>. Acesso em: 
 
 
Como resultado poderíamos ter vários quadros pintados de formas 
totalmente diferentes. Isto porque cada pessoa pensa de uma forma diferente 
para resolver um determinado problema. 
Outros resultados possíveis de quadros seriam: 
 
 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 3 
 
Fonte: Disponível em: <www.corbis.com>. Acesso em: ; 
Disponível em: <notasaocafe.wordpress.com/category/arte-ao-cafe/>. Acesso em: 
 
 
Afinal, a visão e o pensamento que cada pessoa pode ter para pintar 
um quadro se diferem. 
 
 
O que é lógica? 
 
O uso corriqueiro da palavra lógica está normalmente relacionado à 
coerência e à racionalidade. Frequentemente se associa lógica apenas à 
matemática, não se percebendo sua aplicabilidade e sua relação com as 
demais ciências (Forbellone, 2002). 
Existem várias definições para lógica. Segundo Forbellone (2002), a 
lógica pode ser definida como “a arte de pensar bem”. A lógica está 
relacionada à coerência e a racionalidade. Está relacionada ao que está 
correto. Sempre que você expressar pensamentos de forma correta, você 
está sendo lógico. 
Portanto a lógica se relaciona também com a correção do 
pensamento, determinando quais operações são válidas ou não. Podemos 
dizer que: 
 
 
 
 
Lógica = colocar “ordem no pensamento”! 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 4 
O que é um algoritmo? 
 
Mas o que é um algoritmo? Um algoritmo pode ser definido como “uma 
sequência finita de ações (instruções) encadeadas segundo uma 
determinada lógica com o objetivo de solucionar um problema específico”. 
Ou seja, um algoritmo deve ter uma sequência de passos logicamente 
encadeados e com início e fim bem determinados. 
Já uma instrução é a informação que indica a um computador uma 
ação elementar a ser executada. A instrução tem que ser bem precisa para 
que o computador consiga processá-la. 
 Imagine o seguinte cenário: um robô está no início de um labirinto e 
precisa ser guiado por você até o fim do labirinto. Você formula algumas 
instruções para o robô começar a sua jornada. 
Guia: -Vire à esquerda! 
Robô: -Virando para a direita, virando para a direita, virando para a 
direita... 
A instrução inicial que você deu ao robô não foi precisa. Portanto o 
robô ficará infinitamente girando para a direita. Uma instrução correta para o 
robô seria: “Vire 90º à direita”. 
Percebem o quanto é importante ter clareza na definição de uma única 
instrução que seja em um algoritmo? 
Vamos agora para um exemplo clássico: como fazer um bolo de 
chocolate? 
Para resolver esse problema primeiro temos que saber o que é preciso 
para fazer um bolo de chocolate – quais ingredientes? Depois precisamos 
saber o como preparar o bolo de chocolate – modo de fazer. 
 
O que vai no bolo? 
Farinha, ovos, leite, açúcar, chocolate, manteiga, maisena e fermento. 
Mas qual ordem devo seguir para fazer o bolo? Esse é o modo de 
preparo, ou o algoritmo para fazer um bolo de chocolate. 
 
1. Bater os ovos com a manteiga. 
2. Adicionar o açúcar e a farinha aos poucos. 
3. Adicionar o leite e bater. 
4. Adicionar o chocolate. 
5. Misturar o fermento. 
6. Despejar a mistura em uma forma untada. 
7. Levar ao forno para assar por 30 minutos. 
8. Retirar do forno e comer. 
 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 5 
Os passos devem seguir uma sequência lógica! 
Analisando o algoritmo para fazer o bolo de chocolate, se os passos 
forem invertidos, provavelmente não teremos um bolo de chocolate no final, 
mesmo os passos sendo corretos! A sequência lógica dos passos de um 
algoritmo é de suma importância. 
Se analisarmos o passo 6, podemos observar que é um passo macro. 
Afinal o que é uma forma untada? A partir desse passo podemos elaborar um 
outro algoritmo contendo somente os passos necessários para resolver o 
problema de untar uma forma de bolo. Sendo assim, temos aqui um 
refinamento do algoritmo. 
 
 
Fases de um algoritmo 
 
A lógica computacional é fundamentada por entrada dos dados que 
serão processados para obter a saída. Os dados que entram em 
processamento sofrem transformações resultantes do processo e uma saída 
é produzida, representando a solução de um problema (PUGA & RISSETTI, 
2009). 
Todo algoritmo atua em um princípio básico de três fases. São elas: 
 
 Fase de entrada: corresponde aos possíveis dados de entrada 
de um algoritmo. 
 
 Fase de processamento: fase em que condições ou relações 
devem ser satisfeitas para transformar dados de entrada em 
uma saída aceitável. 
 
 Fase de saída: exibe os resultados provenientes das fases 
anteriores. 
 
Vamos identificar cada uma dessas fases do algoritmo no cálculo da 
média de duas notas. 
 
Pense: como é que se resolve um problema de matemática? 
 
Primeiro, devem-se identificar os dados que o problema oferece; 
depois, qual o resultado esperado e, em seguida, como alcançar tal 
resultado. É assim que fazemos na maioria das vezes. Com algoritmos é a 
mesma coisa! 
 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 6 
Para resolver o problema acima, vamos identificar: 
1. Quais são as entradas? Analisando o enunciado do problema, 
temos que as entradas são as próprias notas. Nota1 e nota2. 
 
2. Quais são as saídas, ou seja, aonde se quer chegar? O que o 
problema pede é o resultado do cálculo da média de duas notas. 
 
3. Qual é o processamento? O próprio cálculo da média, onde média 
= (nota1 + nota2) / 2. 
 
Mas por que identificar primeiro a entrada e a saída? É simples: esses 
dados estarão bem explícitos no enunciado do algoritmo. Sabendo o ponto 
de partida e aonde se quer chegar, é só traçar o caminho (processamento) 
mais adequado. 
 
 
 
 
Portanto, para construir um algoritmo, é necessário: 
 
 Estudar o problema; 
 
 Identificar a solução (entrada, processamento, saída); 
 
 Escrever o algoritmo (refinamento sucessivo); 
 
 Implementar o programa (transcrição do algoritmo); 
 
 Testar a implementação; 
 
 Efetuar a manutenção. 
 
 
É uma técnica para construir algoritmos eficazes. Partindo de um 
problema, encontra-se uma solução e reescreve-se a solução 
sucessivamente até que todos os detalhes do problema sejam 
investigados. 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 7 
Como resolver problemas? 
 
Todo problema para ser resolvido deve primeiramente ser analisado. É 
importante fazeruma análise investigativa para identificar: 
 
 Quais são os dados fornecidos pelo problema? 
 
 O que se espera como resultado final da solução do problema? 
 
 Pensar em como solucionar o problema. 
 
 
 Para tanto, podemos dividir a solução em dois níveis básicos: 
 
 Nível 01 – O que eu tenho que fazer? 
Nesse nível tentar tirar do problema quais são os passos gerais 
para solucioná-lo. 
 
 Nível 02 – Como fazer? 
Aqui se deve desenvolver todo o raciocínio lógico para resolver 
o problema. Identificar quais são os passos a serem seguidos 
para atingir a solução. 
 
 
Vamos analisar um exemplo: 
 
Faça um algoritmo que leia quatro números, calcule e mostre a soma 
desses números. 
Analisando o problema podemos identificar os seguintes passos 
macros para definir o nível 1: 
 
 Saber quais são os quatro números; 
 
 Fazer a soma dos quatro números; 
 
 Apresentar o resultado da soma. 
 
 
Após identificar os passos macros para a solução do problema, é 
possível elaborar um algoritmo refinando tais passos. Sendo assim, 
temos o nível 2: 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 8 
1. Obter o primeiro número (num1); 
2. Obter o segundo número (num2); 
3. Obter o terceiro número (num3); 
4. Obter o quarto número (num4); 
5. Calcular a soma de num1, num2, num3 e num4; 
6. Mostrar a soma dos quatro números (soma). 
 
Essa técnica pode ser utilizada sempre que tivermos que resolver um 
problema computacional. É importante pensar no problema como um todo 
antes de resolvê-lo de fato. 
É preciso ser um gênio para programar? 
A resposta é não! Aprender a programar é como aprender uma nova 
língua. Está relacionado a aprender a se expressar em um novo dialeto. Uma 
linguagem que o computador entenda. 
 
 
Ferramentas a serem utilizadas 
 
Para desenvolver o raciocínio lógico para o desenvolvimento de 
soluções computacionais vamos utilizar a linguagem de programação Java. A 
ideia é utilizar Java como uma ferramenta de apoio na resolução de 
problemas. 
Vamos precisar do kit de desenvolvimento Java (JDK) e da IDE 
NetBeans para a construção de nossos algoritmos. 
 
 
 
Java Development Kit (JDK) – significa Kit de Desenvolvimento 
Java que é um conjunto utilitários que permite criar sistemas de software 
para a plataforma Java e é composto por um compilador e por um conjunto 
de bibliotecas. 
IDE (Integrated Development Environment) – Ambiente Integrado 
de Desenvolvimento, é um programa de computador que reúne 
características e ferramentas de apoio ao desenvolvimento de software 
com o objetivo de agilizar esse processo. 
Disponível em: <http://netbeans.org/downloads/>. 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 9 
Para fazer o download do JDK acesse o site da Oracle. 
 
 
 
Exercitando a lógica 
 
Para começar a exercitar o raciocínio lógico vamos resolver alguns 
problemas de lógica. 
 
 
Problema 1: Problema dos comboios 
 
Um comboio parte de Brasília a uma velocidade de 120 Km/h em 
direção a São Paulo, ao mesmo tempo em que outro comboio parte de São 
Paulo a uma velocidade de 80 km/h em direção a Brasília. Quando os 
comboios se encontram, qual deles está mais próximo de Brasília? 
 
Resposta: Nenhum deles, pois ao se encontrarem, os dois estarão à 
mesma distância de Brasília. 
 
 
Problema 2: 4 pontos e 3 retas 
Dados os quatros pontos a seguir, una os quatro pontos com apenas 
três retas sem levantar a ponta do lápis e acabando no ponto onde começou. 
 
 
 
 
 
 
 
Disponível em: 
<http://www.oracle.com/technetwork/java/javase/downloads/index.html >. 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 10 
 
Resposta: O único polígono possível com três retas é um triângulo. 
Portanto, basta traçar um triângulo para unir os quatro pontos. 
 
 
 
 
 
 
Problema 3: Jarros de água 
Existem dois jarros com capacidade para 5 litros e 3 litros de água 
cada. Descreva os passos para juntar quatro litros de água em um dos dois 
jarros. Os jarros não possuem nenhum medidor de litros e podem ter seu 
conteúdo totalmente despejado no ralo. 
 
Resposta: Para resolver o problema dos jarros, podemos começar 
enchendo o jarro de 5 litros: 
 
 Encher o jarro de 3 litros; 
 
 Despejar o conteúdo do jarro de 3 litros no jarro de 5. Assim, o 
jarro de 3 litros fica vazio e o de 5 litros fica com 3 litros; 
 
 Encher novamente o jarro de 3 litros; 
 
 Despejar o conteúdo do jarro de 3 litros no jarro de 5 litros. 
Assim, o jarro de 5 litros, que tinha 3 litros, passa a ter os 5 
litros e no jarro de 3 litros sobra 1 litro; 
 
 Esvaziar o jarro de 5 litros; 
 
 Despejar o litro do jarro de 3 litros no jarro de 5 litros. Assim, o 
jarro de 5 litros fica com 1 litro e o jarro de 3 litros fica vazio; 
 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 11 
 Encher o novamente o jarro de 3 litros; 
 
 Desejar o jarro de 3 litros no de 5 litros. Como o jarro de 5 litros 
já tinha 1 litro, passa a ter os 4 litros e o jarro de 3 litros fica 
vazio. 
Problema 4: O lobo, a cabra e o repolho 
Um homem precisa atravessar um rio com um barco que possui 
capacidade apenas para carregar ele e mais uma de suas 3 cargas, que são: 
um lobo, uma cabra e um repolho. 
O que o homem deve fazer para conseguir atravessar o rio sem perder 
suas cargas? Lembre que: 
 
 O lobo não pode ficar sozinho com a cabra; 
 
 A cabra não pode ficar sozinha com o repolho. 
 
 
Problema 5: Missionários e canibais 
 
Em um lado do lago existem 3 missionários e 3 canibais. Toda vez que 
os missionários ficam em menor número que os canibais, eles são 
devorados. Como transportar os missionários de uma margem para outra do 
rio, em um barco com 2 lugares, sem que sejam devorados pelos canibais? 
Tanto um missionário quanto um canibal podem navegar o barco. 
 
 
As respostas dos problemas 4 e 5 podem ser obtidas por um site de 
jogos online. Esse site possui vários jogos de lógica para testar o seu 
raciocínio lógico. 
 
 
 
 
 
 
Técnicas para a construção de algoritmos 
 
Disponível em: <http://www.plastelina.net>. 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 12 
Existem várias técnicas para a construção de algoritmos. Dentre elas 
podemos citar: pseudocódigo, descrição narrativa, fluxograma e diagrama de 
Chapin. 
 
Segundo Puga e Rissetti (2009): 
 
 
 O pseudocódigo utiliza linguagem estruturada e assemelha-se, 
na forma, a um programa escrito na linguagem de programação 
Pascal. O pseudocódigo também é denominado português 
estruturado, embora existam pequenas diferenças em sua 
simbologia e estrutura. É bastante utilizado para a resolução de 
problemas computacionais. Veja um exemplo de um 
pseudocódigo. 
 
 A descrição narrativa utiliza linguagem natural para especificar 
os passos para a realização de tarefas. Mas como isso dá 
margem a interpretações errôneas e ambiguidades, inerentes à 
sua característica pouco formal, é pouco utilizada para essa 
finalidade. 
 
 O fluxograma é uma forma universal de representação, pois 
utiliza figuras geométricas para ilustrar os passos a serem 
seguidos a para a resolução dos problemas. Bastante utilizado, 
também é chamado de diagrama de blocos. Veja exemplo de 
um fluxograma. 
 
 diagrama de Chapin apresenta a solução do problema por meio 
de um diagrama de quadros com uma visão hierárquica e 
estruturada. Esse tipo de diagrama não é muito utilizado,pois é 
difícil representar alguns procedimentos, como a recursividade. 
Veja exemplo de um diagrama de Chapin. 
 
 
 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 13 
Exemplo de um Pseudocódigo 
 
 
 
 
 
 
 
 
 
 
 
Exemplo de um fluxograma 
 
 
 
Exemplo de um diagrama de Chapin 
 
 
 
 
 
 
 
 
 
 
 
 
 
Neste curso, vamos utilizar uma abordagem diferenciada. A ideia é 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 14 
construir algoritmos já utilizando a linguagem de programação Java. Para 
tanto, vamos analisar e estudar cada um dos componentes de um algoritmo 
por vez. Essa abordagem leva o aluno a não só escrever soluções 
computacionais, mas também a testá-las e ver o resultado de cada algoritmo 
desenvolvido. 
 
 
 
 
 
 
 
Construção de Algoritmos – Introdução aos conceitos de algoritmos 15 
BIBLIOGRAFIA 
 
ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi 
de. Fundamentos de Programação de Computadores. 2ª ed. São Paulo: 
Pearson Prentice Hall, 2007. 
 
FORBELLONE, A. L. V. & EBERSPÄCHER, H. F. Lógica de Programação: a 
construção de algoritmos e estruturas de dados, 2ª. ed. São Paulo: Makron 
Books, 2002. 
 
PUGA, Sandra; RISSETTI, Gerson. Lógica de programação e estruturas de 
dados com aplicações em Java. 2ª ed. Paulo: Pearson Prentice Hall, 2009.

Outros materiais