Buscar

Algoritmos de Programação CAP 3

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

- -1
ALGORITMOS DE PROGRAMAÇÃO
CAPÍTULO 3 - INTRODUÇÃO A ALGORITMOS
Rafael Alves Florindo
- -2
Objetivos do capítulo
Ao final deste capítulo, você será capaz de:
• Analisar e construir algoritmos em sua forma abstrata, mas ainda sem relações com o pseudocódigo.
Tópicos de estudo
• Fundamentos de algoritmos.
• O que é um algoritmo?
• Algoritmo, fluxogramas e programação.
• Formato e execução.
• Ordenando pensamentos e ações.
• Análise de algoritmos.
• Interpretando problemas com algoritmos.
• Execução sequencial.
• Exemplos dirigidos.
• Projeto de algoritmos.
• Propriedades.
• Contingências e eventualidades.
• O passo a passo para o desenvolvimento de um algoritmo.
• Exemplos dirigidos.
• Treinando algoritmos.
• Exemplos com algoritmos.
Contextualizando o cenário
Neste capítulo, tem início o desenvolvimento de algoritmos na forma narrativa e em pseudo-códigos. Assim,
inicialmente, as três formas de construção de um algoritmo são comparadas, a fim de reforçar o conhecimento de
cada uma delas. Também, apresenta-se como resolver os problemas computacionais, por meio de exercícios e da
resolução de exemplos.
Nesse sentido, é preciso compreender os conceitos de fluxogramas, os quais são o ponto de partida da maioria dos
exemplos deste capítulo, a fim de desenvolver algoritmos, colocando em prática os conceitos estudados.
Diante do exposto, surge o seguinte questionamento: para o desenvolvimento de um sistema computacional,
são necessários os conhecimentos de lógica e de algoritmos? Ou é possível, simplesmente, “ir direto ao
ponto”?
3.1 Fundamentos de algoritmos
Os algoritmos devem ser o ponto de partida para o desenvolvimento de qualquer , do tipo , software desktop web
ou, até mesmo, aplicativos. Todos esses devem seguir uma linha de raciocínio, para que o futurosoftwares
desenvolvedor tenha certa flexibilidade, ou seja, para que o software como um todo seja de fácil interpretação e
manutenção.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
- -3
O processo de desenvolvimento dos sistemas computacionais, normalmente, é baseado em duas etapas de
trabalho. A primeira é a análise do problema (fluxograma e, agora, algoritmos). A segunda corresponde à
programação do sistema, por meio de uma linguagem de programação.
3.1.1 O que é um algoritmo?
Como exposto anteriormente, um algoritmo auxilia a resolução de um problema, mas cada desenvolvedor é único,
cada um pensa de uma forma e tem um raciocínio lógico específico. Dessa forma, há muitas soluções para o
mesmo problema.
Para entender o que é um problema computacional, primeiro, é preciso compreender o significado da palavra 
. Clique no botão a seguir.problema
PROBLEMA
De acordo com o dicionário Aurélio, essa significa “1 – Questão matemática proposta para se
lhe achar a solução. 2 – Questão, dúvida. 3 – O que é difícil de explicar”. Para o dicionário
Michaelis, essa palavra significa “1 – Tema, em qualquer área do conhecimento, cuja solução
ou resposta requer considerável pesquisa, estudo e reflexão”.
Segundo Manzano e Oliveira (2000, p. 10), “problema é uma questão que foge a uma determinada regra, ou melhor,
é o desvio de um percurso, o qual impede de atingir um determinado objetivo com eficiência e eficácia”. A partir
dessas definições, é possível introduzir os conceitos de algoritmos para a resolução de um problema
computacional.
Conforme expõem Manzano e Oliveira (2000, p. 6), o algoritmo é “um processo de cálculo matemático ou de
resolução de um grupo de problemas semelhantes”. Sendo assim, é possível utilizar algoritmos para resolver todos
os problemas do .dia a dia
Há três tipos de algoritmos: narrativo, fluxograma e pseudocódigo. Clique nos itens a seguir para saber mais sobre
cada um deles.
• Narrativo
Por meio de uma língua (português, inglês etc.), descreve ou narra os passos a serem
executados para resolver determinado problema.
• 
Fluxograma
É a forma simbólica de expor esses passos.
• 
Pseudocódigo
É o mais próximo que se chega da programação.
AFIRMAÇÃO
“No dia-a-dia, as pessoas utilizam-se de algoritmos de maneira intuitiva, sem que haja
necessidade de planejar previamente a sequência de passos para a resolução das tarefas
cotidianas” (PUGA; RISSETTI, 2003, p. 8).
•
•
•
- -4
Veja a figura a seguir:
Tipos de algoritmos
Fonte: © pratyaksa / / 123RF.
3.1.2 Algoritmo, fluxograma e programação
É possível comparar o algoritmo, o fluxograma e a programação. Para desenvolver um algoritmo, é preciso
estabelecer um padrão de comportamento (ou uma ordem de passos), que deve ser seguido, para que se possa
alcançar o resultado de um problema, como no caso de um problema simples como somar dois valores e imprimir
o resultado na tela.
Neste momento, ainda não se trata da sintaxe de tipo de variável, mas é algo apenas pedagógico. Assim, no
algoritmo , é preciso descrever os passos necessários para a compreensão do problema. Clique nas abasnarrativo
para conhecer cada um dos passos.
Passo 1 Ler o valor 1.
Passo 2 Ler o valor 2.
Passo 3
Somar o valor 1 com o valor 2 e armazenar o resultado em valor
3.
Passo 4 Imprimir o valor 3.
- -5
Enquanto, nos algoritmos, são descritos os processos, passo a passo, em formato de texto, no fluxograma, o
algoritmo é apresentado em formato gráfico, ou seja, representa o mesmo problema por meio dos símbolos
gráficos, conforme demonstra a figura “Algoritmo em formato de fluxograma”.
Algoritmo em formato de fluxograma.
Fonte: © Viktor Bondar / / 123RF.
No caso da programação, como foram criadas várias linguagens de programação, é necessário certo conhecimento
de uma linguagem. Essas linguagens, de maneira parecida com a linguagem natural, permitem que os
desenvolvedores programem as tarefas que o computador realizará, mas cada linguagem segue sua própria
sintaxe.
As linguagens de programação ficam entre a linguagem máquina (Assembly) e a natural (Narrativo). A linguagem
máquina corresponde aos códigos numéricos para as operações que um computador pode executar, os quais são
formados por cadeias de 0s e 1s, ou seja, dígitos binários (bits).
Ademais, é difícil ler e escrever a linguagem máquina, pois ela não se assemelha à notação matemática
convencional ou à linguagem humana e seus códigos variam de computador para computador. Os códigos binários
de 0s e 1s são impulsos elétricos, que podem ser representados por “desligado” e “ligado”, respectivamente.
Um grupo de dígitos é denominado instrução e é traduzido em um comando para que o CPU (Central Processing
Unity) possa entender (FORBELLONE; EBERSPACHER, 2005). Para exemplificar, a seguir, há a linguagem Pascal,
utilizada para fins acadêmicos.
DICA
A descrição narrativa é utilizada somente quando se quer descrever um algoritmo de forma que
o receptor entenda o assunto sem saber o que é algoritmo. Esse tipo de descrição é utilizado
apenas nesses casos, devido a sua falta de precisão.
- -6
Nesse código, foram declaradas três variáveis do tipo inteiro. Em seguida, há a leitura e o armazenamento dessas
variáveis. Após o processo de entrada e armazenamento, é realizado o processamento computacional, que envolve
a operação de subtração. Por fim, há a impressão do resultado da operação.
A partir de um algoritmo bem elaborado em fluxograma e no pseudocódigo, o programador pode implementá-lo
em qualquer linguagem de programação que conheça ou deseje utilizar.
3.1.3 Formato e execução
Segundo Manzano e Oliveira (2000), algoritmo é uma sequência de passos para se chegar a um resultado. Esses e
outros autores, como Ascencio e Campos (2010), utilizam a palavras passo, e , que determinam a ordem deordem
execução do algoritmo.
Em fluxograma, há uma ordem a ser executada, por meio de símbolos. O algoritmo narrativo, por sua vez, é a
linguagem que mais chega perto do desenvolvedor, pois ocorre de forma natural e expressa o raciocínio e a troca
de informações mediante a forma nativa da linguagem.
Retomando o exemplo da soma de dois valores, foram identificados quatro passos:
Passo 1: Ler o valor 1.
Passo 2: Ler o valor 2.
Passo 3: Somar o valor1 com o valor 2 e armazenar o resultado em valor 3.
Passo 4: Imprimir o valor 3.
É válido salientar que essa sintaxe não é uma regra. Podem ser utilizadas várias formas, como:
1. Ler o valor 1.
2. Ler o valor 2.
3. Somar o valor 1 com o valor 2 e armazenar o resultado em valor 3.
PAUSA PARA REFLETIR
Cada desenvolvedor tem uma perspectiva. Assim, podem existir perspectivas diferentes em
relação aos quatros passos que foram identificados? Poderia haver mais passos nesse algoritmo?
Como seriam os passos utilizando esse formato?
- -7
4. Imprimir o valor 3
Ou:
• Ler o valor 1.
• Ler o valor 2.
• Somar o valor 1 com o valor 2 e armazenar o resultado em valor 3.
• Imprimir o valor 3.
Agora, considere outro exemplo de algoritmo, que pode ser pensado a partir da ideia de “tomar água de uma
garrafa PET”. Clique nos itens para ler como será será processada pelo computador.
Passo 1 Pegar a garrafa.
Passo 2 Destravar ou retirar a tampa da garrafa.
Passo 3 Levar a garrafa à boca.
Passo 4
Beber até que termine a água da garrafa ou até que a sede seja
saciada.
Passo 5 Tampar a garrafa.
Passo 6 Jogar a garrafa no lixo ou guardá-la.
Portanto, o algoritmo narrativo é considerado uma narração do processo, para se chegar a um resultado favorável,
ou seja, o algoritmo é uma descrição sequencial de passos a serem seguidos. Nesse sentido, deve-se evitar a
ambiguidade de informações, pois as pessoas são diferentes umas das outras, logo, o que uma pessoa descreve,
talvez, não é o suficiente para o entendimento da outra e vice-versa.
3.1.4 Ordenando pensamentos e ações
Como exposto no último exemplo, é necessário seguir um processo, isto é, uma ordem de pensamento, que
significa uma ordem de execução de passos. Às vezes, porém, essa ordem pode ser invertida, desde que não se
percam o sentido e a função do algoritmo. Nessa perspectiva, surge um questionamento: se os passos 1 e 2 forem
invertidos, a execução do algoritmo será impedida? Observe:
Passo 1: Ler o valor 2.
Passo 2: Ler o valor 1.
Passo 3: Somar o valor 1 com o valor 2 e armazenar o resultado em valor 3.
Passo 4: Imprimir o valor 3.
Mesmo que a ordem seja alterada, a execução do algoritmo não é impedida e encontra-se o mesmo resultado.
Agora, se forem invertidos o passo 4 e o 3, o resultado será igual? Observe:
Passo 1: Ler o valor 2.
Passo 2: Ler o valor 1.
Passo 3: Imprimir o valor 3.
Passo 4: Somar o valor 1 com o valor 2 e armazenar o resultado em valor 3.
Nesse caso, a inversão ocasiona um erro de execução, pois não é possível imprimir o resultado de uma operação
sem ter realizado seu cálculo.
Ainda analisando o exemplo “tomar água de uma garrafa PET”, observa-se que essa é uma forma de beber água,
mas não é a única. É possível tomar a água colocando-a em um copo ou utilizando um canudo de plástico, por
exemplo. É válido salientar que, nesse caso, não importa a forma, desde que se chegue ao ponto final e com o
objetivo cumprido.
A partir desses exemplos, é possível afirmar, conforme os autores que embasam este capítulo, que cada
desenvolvedor pensa de uma forma, ou seja, tem uma ordenação de pensamentos diferente de outro
desenvolvedor. Isso não significa que um está certo e o outro está errado, mas, de qualquer modo, não se pode
interferir na ordem correta de execução, ou seja, entrada, processamento e saída de dados.
Nessa perspectiva, surge outro questionamento: na figura “Construção de uma casa”, é possível inverter algum
processo da construção?
- -8
Construção de uma casa.
Fonte: © Romolo Tavani / / 123RF.
Na figura “Construção de uma casa”, há duas frentes de serviços: uma trabalha com a alvenaria, fazendo o reboco
das paredes, e a outra está trabalhando no telhado. Nesse caso, ambas as frentes trabalham paralelamente, mas é
possível colocar o telhado antes de rebocar ou rebocar antes de colocar o trabalho.
Ainda nessa figura, também é possível visualizar a ordem dos passos. Primeiro, há a planta arquitetônica, pois toda
a casa é construída sobre a planta. Depois, há o levantamento das paredes e, em paralelo, há o acabamento das
paredes e do telhado da casa. Sendo assim, no mesmo algoritmo, podem existir os passos que não podem ser
invertidos, os que podem ser invertidos e os que podem aparecer em conjunto.
3.2 Análise de algoritmos
A é um campo da área de Tecnologia da Informação (TI) que sempre está em grandeanálise de algoritmos
expansão, devido à necessidade de se mensurar a qualidade dos algoritmos após a construção deles. Quando os
algoritmos são construídos, não são considerados os desempenhos de processamento, velocidade, estabilidade e
escalabilidade, mas esses e outros requisitos fazem a diferença na execução de um algoritmo aplicado com grande
quantidade de dados.
DICA
Para entender um pouco mais sobre a análise de algoritmos, leia: Nove algoritmos que podem
estar tomando decisões sobre sua vida – sem você saber, de Fernando Duarte.
- -9
De acordo com Souza (2011), todo algoritmo deve ter uma estrutura concisa e suas ações devem ser bem et al.
especificadas, claras, precisas e ter uma semântica correta. Aqui, a semântica estabelece regras para se realizar a
interpretação do algoritmo, pois cada símbolo, ou comando, tem um significado, que deve ser, rigorosamente,
respeitado.
Todo algoritmo precisa ser analisado e, se necessário, o seu desempenho deve ser corrigido. Nesse caso, é
necessária uma sequência de passos que permitam a resolução do problema de maneira automática. Ao terminar
um algoritmo, para ver se o que foi desenvolvido pode ser respondido com todas as possíveis entradas, podem ser
feitas as perguntas que listamos nos itens a seguir. Clique para ler.
• 
Esse algoritmo resolve o problema?
• 
Quanto tempo o algoritmo consome para processar todas as suas tarefas?
• 
Há ambiguidades?
Há ambiguidade quando existe mais de uma interpretação para o mesmo fato, ou seja, cada passo deve permitir
uma única interpretação. Nesse sentido, se o algoritmo falhar em alguma dessas perguntas, deve-se retomar a
análise do que foi realizado e propor as correções necessárias, colocando-as em teste novamente.
Na figura “Analisando algoritmos em fluxograma”, é possível verificar que o desenvolvedor está olhando os
elementos do fluxograma, verificando-os. É nesse momento que se valida o fluxograma.
Analisando algoritmos em fluxograma.
Fonte: © Dinis Tolipov / / 123RF.
•
•
•
- -10
A análise do desenvolvimento de um algoritmo permite interpretá-lo, a fim de construir algoritmos com um menor
índice de erros. Esse é o próximo assunto deste capítulo.
3.2.1 Interpretando problemas com algoritmos
De forma análoga ao fluxograma, antes de iniciar um algoritmo narrativo, ou pseudocódigo, é preciso entender o
real problema que deve ser resolvido, antes de fazê-lo, conforme expõem Manzano e Oliveira (2000). Ainda
segundo esses autores, o desenvolvimento deve iniciar com o algoritmo narrativo, seguido do fluxograma e do
pseudocódigo (português estruturado).
Sabendo do real significado da palavra problema, constata-se que todo sistema computacional nasce de um
problema, o qual é “criado” para sanar as dificuldades e a necessidade do ser humano de registrar e acessar as
informações. Sendo assim, não é difícil comparar dois sistemas que chegam ao mesmo resultado, porém, ao se
analisar cada um dos sistemas separadamente, verifica-se que cada um segue um processo diferente do outro.
Dessa forma, para resolver um problema computacional, primeiramente, é necessário encontrar uma maneira de
descrever esse problema de forma clara e precisa, por meio do algoritmo. Assim, identifica-se a sequência provável
de passos, a qual permite que o problema seja resolvido.
3.2.2 Execução sequencial
O algoritmo é processado sequencialmente e deve seguir um padrão que possa nortear a sua continuidade no
desenvolvimento do sistema. Sendo assim, se o início for “passo 1”, “1” ou “–”, é preciso utilizar esse padrão até o
fim, sem mesclar diversas formas dentro de um algoritmo.
Na execução sequencial, todas as atividades são executadas umaapós a outra, ou seja, ao se executar um teste no
algoritmo, deve-se percorrê-lo inteiramente, pois não é possível alterar a ordem de execução. Após processar o
primeiro passo, processa-se o segundo e assim sucessivamente. Isso já é realizado pelas pessoas de modo natural,
estabelecendo, portanto, certo padrão de comportamento (MANZANO, OLIVEIRA, 2000; ASCENCIO, CAMPOS, 2010).
Para o desenvolvimento de um algoritmo ser eficiente, é preciso definir ações simples, sem ambiguidade. Ademais,
o algoritmo deve ser organizado e ordenado, estabelecendo as ações dentro de uma sequência finita de passos.
Considerando o exemplo “lavar roupa na máquina”, clique nos botões e veja os passos.
Passo 1 Recolher a roupa suja.
Passo 2 Separar as roupas claras das roupas escuras.
Passo 3 Colocar as roupas na máquina.
Passo 4 Colocar o sabão e o amaciante.
Passo 5 Ligar a máquina.
Passo 6 Escolher o programa de lavagem.
Passo 7
Aguardar o término do programa de
lavagem.
PAUSA PARA REFLETIR
Um algoritmo sempre é sequencial? Ele pode tomar decisões? Os passos de um algoritmo
podem ser repetidos?
- -11
Passo 8 Retirar a roupa da máquina.
Passo 9 Sacudir a roupa e estendê-la no varal.
Nesse exemplo, foram necessários 9 passos, mas poderiam ser desmembrados em mais passos ou eles poderiam
ser invertidos, como o 3 pelo 4 ou, ainda, o passo 2 poderia ser omitido, dentre outras possibilidades de alterações
nesse algoritmo. A realização de mais algoritmos de forma sequencial é o próximo assunto deste capítulo.
3.2.3 Exemplos dirigidos
Nos exercícios a seguir, o conteúdo será abordado de forma sequencial. Desse modo, execute apenas o que se
pede.
1. Construa um algoritmo que ligue uma televisão e selecione o canal 14, com o volume 55.
Resposta: O enunciado não informa se há ou não o controle, logo, entende-se que há um controle.
Passo 1: Ligar a TV na tomada.
Passo 2: Pegar o controle remoto.
Passo 3: Apertar o botão para ligar ( ).power
Passo 4: Apertar o número 1, seguido do número 4, formando, assim, o número 14.
Passo 5: Apertar o botão de volume até que se atinja o número 55.
2. Faça um algoritmo para a troca do pneu de um carro.
Resposta: O comando não esclarece se o carro está parado ou em movimento. Aqui, entende-se que o carro está
parado.
Passo 1: Abrir o porta-malas.
Passo 2: Retirar o triângulo de sinalização.
Passo 3: Sinalizar o local.
Passo 4: Pegar a chave de roda.
Passo 5: Pegar o macaco.
Passo 6: Afrouxar os parafusos.
Passo 7: Posicionar o macaco no local correto.
Passo 8: Levantar o carro com o macaco.
Passo 9: Retirar os parafusos.
Passo 10: Retirar o pneu furado.
Passo 11: Pegar o pneu bom.
Passo 12: Guardar o pneu furado.
Passo 13: Posicionar o pneu bom.
Passo 14: Colocar os parafusos.
Passo 15: Apertar os parafusos.
Passo 16: Abaixar o carro.
Passo 17: Apertar mais um pouco os parafusos.
Passo 18: Guardar a chave de roda.
Passo 19: Guardar o triângulo de sinalização.
Foram utilizados 19 passos, mas podem ser mais ou menos, o que depende do nível de abstração do analista
/desenvolvedor.
3. Construa um algoritmo que efetue o cálculo de uma circunferência, apresentando a área calculada.
Resposta: Antes de iniciar a resolução do problema, é preciso entendê-lo e saber qual fórmula deve ser utilizada.
De acordo com os conceitos matemáticos, área = πr2. Com essa fórmula, é possível iniciar o desenvolvimento do
algoritmo, mas ela não pode ser usada como está, por isso, é necessário adaptá-la, conforme as sintaxes
permitidas. Dessa forma: área < – PI * r * r.
Passo 1: Ler o raio da circunferência e armazenar em r.
Passo 2: Armazenar em PI o valor 3,14.
Passo 3: Executar a fórmula e armazená-la em área.
- -12
Passo 4: Imprimir na tela o resultado que está na área.
4. Construa um algoritmo que leia quatro notas bimestrais e imprima na tela a média do aluno.
Resposta: Esse exemplo é mais direto e objetivo, mas também é preciso conhecer a fórmula. Na Matemática, a
média corresponde à soma das notas, divididas pela quantidade de notas. Assim, se são quatro notas, há:
Como no exemplo anterior, o computador não consegue entender essa fórmula, logo, é preciso decompor os
elementos de uma forma que o computador os entenda. No caso de “média = (n1 + n2 + n3 + n4) / 4”, nota-se a
utilização dos parênteses para separar as duas operações matemáticas, a fim de se obter o resultado correto.
Passo 1: Ler nota 1.
Passo 2: Ler nota 2.
Passo 3: Ler nota 3.
Passo 4: Ler nota 4.
Passo 5: Somar as quatro notas, dividi-las por quatro e armazenar na média.
Passo 6: Imprimir a média.
Mesmo após esses exemplos dirigidos, ainda é necessário praticar esses conceitos.
3.3 Projeto de algoritmos
Até aqui, foram abordados os algoritmos e suas características quanto à semântica adequada para o
desenvolvimento da solução do problema. Nesse sentido, foram apresentados alguns exemplos e exercícios de
algoritmos, como forma de fixação do conhecimento adquirido. Agora, tem início a fase de projeto e construção de
algoritmos, para que seja possível projetar e construir o algoritmo de forma não ambígua.
3.3.1 Propriedades
Para Souza et al. (2011, p. 71), “todo algoritmo possui uma série de propriedades”, que são: valores de entrada,
valores de saída, finitude, passos elementares e correção.
Em relação aos , para que um algoritmo tenha algum valor de entrada, deve ter umvalores de entrada
processamento computacional, ou seja, realizar um cálculo aritmético ou armazenar um valor. A quantidade de
valores de entrada depende da necessidade e da amplitude de um algoritmo, então, uns possuem mais e outros
menos.
A quantidade excessiva de valores de entrada pode influenciar, diretamente, o desenvolvimento e a execução do
algoritmo.
A seguir, há um exemplo de algoritmo que não possui valores de entrada.
Exemplo: algoritmo para fazer vitamina de abacate com banana.
1: Escolha o abacate.
2: Escolha a banana.
3: Pegue o leite.
4: Pegue o liquidificador.
5: Coloque o abacate, sem a casca e o caroço, dentro do liquidificador.
6: Coloque a banana descascada dentro do liquidificador.
7: Acrescente a quantidade de leite desejada.
8: Adoce a gosto.
9: Bata a vitamina até o ponto desejado.
10: Sirva a vitamina.
- -13
Nesse algoritmo, não há leitura de valores, apenas o passo a passo de uma receita.
Agora, apresenta-se um algoritmo com valores de entrada.
Exemplo: algoritmo para calcular a diferença entre dois pontos quaisquer.
1: Ler o ponto 1.
2: Ler o ponto 2.
3: Calcular a diferença entre os dois pontos, subtraindo o ponto 2 do ponto 1.
4: Exibir a diferença entre os pontos.
Nesse exemplo, há dois valores de entrada para armazenar o valor dos dois pontos. Os valores de entrada também
podem ser informados no decorrer do processamento computacional, de acordo com as necessidades do
algoritmo.
Os advêm do resultado de um processamento computacional ou do fim de uma sequência finitavalores de saída
de passos. Os valores de saída, resultam um valor na tela do monitor ou na impressora. Em ambos os exemplos
(tanto da vitamina quanto da diferença entre os pontos), há um valor de saída.
Ademais, todo bom projeto tem início, meio e fim, logo, um algoritmo também deve ter essas características, o que
resulta na , ou seja, todos os passos do algoritmo devem proporcionar uma conclusão. Os exemplos emfinitude
questão (vitamina e diferença entre os pontos) têm início, meio e fim, cada um com a sua especificidade.
É válido salientar que, no algoritmo, podem existir estruturas que, se colocadas de forma errônea, podem
ocasionar um fim tardio ou impossibilitar o fim, demonstrando algo eterno. Pode-se desenvolver um exemplo de
algoritmo sem finitude, utilizando uma das estruturas de repetições, o laço “Enquanto”.
Essa estrutura de repetição repete um bloco de instruções quantas vezes forem necessárias, ou seja, enquanto a
condição de parada seja satisfeita. Caso não seja satisfeita, a execução sai do laço, continuando o fluxo do
algoritmo. A condição de parada é formada por um conjunto de variáveis e operadores (lógicos ou relacionais),
executados noinício do laço. Se a condição é satisfeita, o conteúdo do laço é executado.
Exemplo: algoritmo para ler a idade de 10 pessoas.
1: Ler a idade.
2: Iniciar i com valor 1.
3: Enquanto i <10 faça.
4: Ler a idade.
5: Imprimir a idade.
6: fim do enquanto.
Nesse exemplo, o valor da idade é informado pelo usuário “ ” vezes, contudo, como o valor armazenado em in
nunca sofrerá alteração, esse valor entrará em um processo sem fim, não satisfazendo a propriedade da finitude.
Por sua vez, para atender aos , os passos dos algoritmos devem satisfazer um processamentopassos elementares
que o computador conheça, nesse caso, operação e expressões aritméticas, lógicas e relacionais. Excluindo esses
casos, é necessário fazer o computador entender esses passos, pois não são tão triviais. Nesse sentido, a seguir, há
um exemplo de algoritmos com passos elementares e outro sem esses passos.
Exemplo: fazer um algoritmo que calcule a quantidade de litros abastecidos, tendo como dados de entrada o valor
do abastecimento e o preço unitário do combustível.
1: Ler o valor total pago pelo combustível.
2: Ler o valor unitário do combustível.
3: Dividir o valor pago pelo valor unitário do combustível.
Exemplo: criar um algoritmo que cozinhe um feijão.
1: Pegar o pacote de feijão e deixar os grãos de molho.
2: Pegar a panela de pressão.
3: Colocar o feijão dentro da panela.
4: Tampar a panela.
5: Levar a panela ao fogão.
6: Acender a boca desejada.
7: Colocar a panela na boca ligada.
- -14
8: Esperar o tempo de cozimento do alimento.
9: Retirar a pressão da panela e provar se já está cozido.
10: Temperar o feijão e servir.
É possível verificar que o exemplo do combustível tem elementos complementares, pois há uma operação
matemática, enquanto o algoritmo do cozimento do feijão não tem elementos complementares.
Por fim, no que se refere à propriedade da correção, todo algoritmo deve ser colocado em prova constantemente,
com os mais variados tipos de valores de entrada, para que seja possível alcançar um valor efetivo, ou seja, um
valor real.
Todas essas propriedades, juntas, devem ser analisadas e projetadas caso a caso, algoritmo por algoritmo, o qual
tem determinadas propriedades que podem ser refinadas, aumentando a efetividade do sistema. Nesse caso,
refinar um algoritmo é repassá-lo várias vezes, em busca de melhorias em sua estrutura.
3.3.2 Contingências e eventualidades
Não existe uma única forma de construir algoritmos, pois cada algoritmo realizado tem uma estrutura e uma
sequência de passos. Portanto, não existe uma receita exata para construir um algoritmo. Eventualidades e
contingências, isto é, situações não previstas e fatos inesperados podem ocorrer no decorrer da construção de
algoritmos e devem ser tratados.
Exemplo: ligação telefônica interurbana pelo smartphone.
Passo 1: Ligar o aparelho.
Passo 2: Procurar o número do telefone armazenado no aparelho.
Passo 3: Realizar a ligação.
Passo 4: Falar ao telefone.
Passo 5: Desligar o telefone ao término da ligação.
Aparentemente, o algoritmo está correto, mas ele pode ser considerado completo? Os comandos estão expressos
de forma clara para o destinatário? Esses comandos são de total entendimento do destinatário. No entanto, caso
algum desses passos não se concretize, deve-se realizar o refinamento do algoritmo inicial quantas vezes forem
necessárias.
Considerando que, em uma ligação, o número do telefone pode não estar armazenado no aparelho, há uma
eventualidade, ou seja, um problema novo e que deve ser tratado. Para resolver esse problema, deve-se utilizar a
estrutura de condição, “ ”. Essa estrutura é utilizada para testar uma condição. Caso a condiçãose-então-senão
testada seja satisfeita, ela executa o bloco do “se”, caso contrário, executa o bloco do “senão”.
O bloco do “ ” verifica se o número do telefone existe no aparelho. Caso exista, ele realiza a ligação, se caso
, executa o bloco do “ ” e, nesse bloco, no teclado, deve-se digitar o número do telefone. Secontrário senão
nenhuma dessas condições for satisfeita, deve-se encerrar a ligação. A seguir, há o refinamento.
Exemplo: primeira refinação do algoritmo de ligação telefônica interurbana pelo smartphone.
- -15
Analisando esse algoritmo, já há um refinamento satisfatório, que determina se é possível ou não realizar a ligação
telefônica, mas o ideal é salvar o número do telefone na agenda telefônica, caso o contato não esteja salvo? Nesse
caso, pode-se fazer mais um refinando no algoritmo, a fim de salvar o número.
Exemplo: segunda refinação do algoritmo de ligação telefônica interurbana pelo smartphone.
Nesse refinamento, há a frase salvar o contato no telefone no segundo teste condicional, pois o armazenamento é
realizado se o contato não estiver no aparelho e se o número do contato for conhecido. Mesmo após essas
explicações, ainda não foi introduzido no algoritmo “se o destinatário atendeu ao telefone”.
Exemplo: terceiro refinamento do algoritmo de ligação telefônica interurbana pelo smartphone.
- -16
Nesse terceiro refinamento, há um algoritmo mais conciso, contudo, se o destinatário não atender ao telefone, é
preciso reiniciar todo o processo de ligação. Nesse caso, deve-se estruturar o algoritmo, para possibilitar a
realização da ligação quantas vezes forem necessárias, para isso, são utilizadas as repetições.
Exemplo: quarto refinamento do algoritmo de ligação telefônica interurbana pelo smartphone.
- -17
A palavra foi utilizada para que se possa repetir a ligação telefônica quantas vezes forem necessárias, atéenquanto 
que ela seja efetuada com sucesso, isto é, enquanto não conseguir falar ao telefone, tente novamente, mas é
preciso que o algoritmo permaneça finito, que ele tenha um fim. Se a condição colocada dentro da repetição nunca
for satisfeita, o algoritmo não será mais finito, ou seja, será executado infinitamente.
Analisando o quarto refinamento, há esse problema, visto que, enquanto o destinatário não atende ao telefone,
volta-se ao início. Sendo assim, é necessário um quinto refinamento para corrigir esse problema e, nesse caso, é
possível fazer uma pergunta ao usuário, questionando se ele deseja continuar a ligação.
Exemplo: quarto refinamento do algoritmo de ligação telefônica interurbana pelo smartphone.
- -18
Como observado, foram realizadas alterações significativas no algoritmo, por isso, deve-se colocar um critério de
parada, porque, enquanto o telefone não é atendido, ele liga novamente, de forma infinita. A condição de teste que
pergunta ao usuário se ele deseja continuar é responsável pela renovação ou não da ligação. No caso do
“enquanto”, ele verifica se o usuário já falou ou se deseja continuar a ligação.
Ademais, deve-se pensar em um cenário macro, para, depois, pensar em um cenário micro. Nesse contexto, o
cenário macro corresponde ao todo, ou seja, à realização da ligação. No cenário micro, pensa-se nos mínimos
detalhes, como no exemplo do telefone, em que todas as regras são implementadas como em um micro cenário.
- -19
É válido salientar que não é possível seguir a mesma estrutura de um algoritmo em outro, devido ao fato de cada
algoritmo ter suas próprias necessidades de processamento. Dessa forma, antes de iniciar o desenvolvimento de
algoritmos, deve-se analisar todo o entorno do problema, refinando-o quantas vezes forem necessárias.
Para Souza . (2011, p. 22), “não existe em computação uma ‘fórmula mágica’ para resolver problemas”. Nesseet al
sentido, o autor expõe um conjunto de dicas, que estão expostas a seguir.
Ao se deparar com um problema novo, tente entendê-lo – Aqui devemos realizar toda análise do
algoritmo, ou seja, interpretá-lo, verificar seu real objetivo.
Crie um plano de solução – Crie uma estrutura condizente com o algoritmo, veja se já não fez algo
parecido, contudo lembre-se de que nem sempre um código será igual ao outro. Sendo assim, atente-
se para não imaginar que o seu código já estará pronto caso já tenha resolvido problema parecido.
Faça os refinamentos se necessário, saindo do macro e indo para o micro.Formalize a solução.
Exame dos resultados – É a hora de você testar o algoritmo com diversos valores de entrada e
confrontar com os resultados esperados. Caso haja alguma divergência, o algoritmo deve ser revisto e
corrigido. Após a correção, deve-se iniciar do zero a fase de teste. Só passar para a próxima fase se tudo
estiver correto.
Otimização da solução – Como um algoritmo nunca é pronto, sempre há o que melhorar. Faça quantos
refinamentos forem necessários, para que o mesmo propicie uma utilização agradável e consistente
(SOUZA ., 2011, p. 22).et al
Na figura “Fluxo de melhoria contínua do algoritmo”, é possível identificar várias engrenagens trabalhando em
conjunto, formando um todo, que, nesse caso, poderia ser um algoritmo. Cada engrenagem pode ser considerada
um processo no desenvolvimento de algoritmos e cada processo deve ser refinado, a fim de que todos os processos
não fiquem redundantes ou falhos.
Fluxo de melhoria contínua do algoritmo.
Fonte: © Rabia Elif Aksoy / / 123RF.
Com base nessas explicações acerca das contingências e eventualidades encontradas durante a estrutura e o
desenvolvimento de algoritmos, é possível desenvolvê-los de forma mais efetiva.
- -20
3.3.3 O passo a passo para o desenvolvimento de um algoritmo
Para construir um algoritmo, de acordo com Manzano e Oliveira (2000), devem ser considerados três níveis básicos:
entrada, processamento e saída. Cada nível é responsável pela execução dos passos no decorrer do algoritmo.
Níveis básicos de um algoritmo.
Aplicando-se esses níveis, é mais fácil utilizar o pseudocódigo e, no futuro, o programa computacional.
Primeiramente, na entrada, são fornecidas as informações necessárias para que o algoritmo possa ser executado,
as quais podem ser fornecidas no momento em que o programa está sendo executado ou estar embutidas dentro
dele.
No processamento, por sua vez, são avaliadas todas as expressões algébricas, relacionais e lógicas, assim como
todas as estruturas de controle existentes no algoritmo (condição e/ou repetição). Por fim, na saída, todos os
resultados do processamento (ou parte deles) são enviados para um ou mais dispositivos de saída, como monitor,
impressora ou, até mesmo, a própria memória do computador (FOBERLLONE; EBERSPACHER, 2005). A seguir, há
um exemplo simples, para que seja possível a internalização desse conceito.
Exemplo: construir um algoritmo que leia dois valores e realize a multiplicação deles.
Após essa operação, imprimir o resultado em tela.
Nesse caso, deve-se resolver uma simples multiplicação, mas, para isso, é necessário colocar os valores, para,
depois, imprimir, o que resulta em uma impressão do valor na tela. Sendo assim, primeiro, são utilizados os três
níveis. Clique na interação a seguir para saber mais.
•
Entrada
Ler dois valores, que podem ser valor1 e valor2.
•
Processamento
Multiplique os valores, valor1 por valor2, e armazene em resultado.
•
Saída
Imprima na tela o valor do resultado.
•
•
•
- -21
Agora que os três níveis a serem executados já são conhecidos, fica mais fácil a construção dos algoritmos.
Passo 1: Ler valor 1 e armazenar em valor1.
Passo 2: Ler valor 2 e armazenar em valor2.
Passo 3: Multiplicar o valor1 por valor2 e armazenar em resultado.
Passo 4: Imprimir na tela o valor do resultado.
Sempre que for necessário desenvolver um algoritmo ou um programa de computador, esses passos devem ser
executados. Portanto, é preciso descobrir quais são os dados de entrada, como será realizado o processamento e
qual dado será necessário para se chegar à saída.
3.3.4 Exemplos dirigidos
Este é o momento de treinar os conceitos adquiridos ao longo deste capítulo. Caso surjam dúvidas, é preciso rever
o conteúdo, fazer anotações e treinar novamente com os exercícios anteriores.
1. Construa um algoritmo que gere a folha de pagamento semanal do professor, sabendo que ele recebe por aula
dada. Desse modo, informe a quantidade de aulas dadas na semana e o valor da aula.
Resolução: primeiramente, é preciso interpretar o comando do exercício. Assim, um professor recebe por semana,
pela quantidade de aula dada. Se ele trabalhar cinco aulas e cada uma valer R$ 10,00, ele recebe R$ 50,00. Nesse
caso, utiliza-se a multiplicação para se chegar ao resultado.
Aplicando-se os três níveis, há:
• Entrada: ler a quantidade de aulas dadas e armazenar em “aulasDadas”. O valor da aula deve ser 
armazenado em “valorAula”.
• Processamento: multiplicar as “aulasDadas” e o “valorAula” e armazenar em “folhaPagamento”.
• Saída: imprimir o resultado da “folhaPagamento”.
Passo 1: Ler a quantidade de aulas dadas e armazenar em aulasDadas.
Passo 2: Ler o valor da aula e armazenar em valorAula.
Passo 3: Multiplicar aulasDadas por valorAula e armazenar o resultado em folhaPagamento.
Passo 4: Imprimir na tela o valor de folhaPagamento.
2. Construa um algoritmo que receba uma temperatura em graus Fahrenheit e apresente-a convertida em graus
Celsius. A fórmula para essa conversão é definida por: C < - (F - 32) * (5/9).
Resolução: Primeiramente, é preciso converter o grau Fahrenheit em Celsius. F é a temperatura em Fahrenheit e C é
a temperatura em Celsius. Aplicando-se os três níveis, há:
• Entrada: ler o grau em Fahrenheit e armazenar em F.
• Processamento: realizar o cálculo (F - 32) * (5/9) e armazenar o resultado em C.
• Saída: imprimir o resultado de C.
Passo 1: Ler o grau em Fahrenheit e armazenar em F.
Passo 2: C < - (F - 32) * (5/9).
Passo 3: Imprimir na tela o valor de graus Celsius que está em C.
3. Construa um algoritmo que leia dois valores, A e B, efetue a troca de A por B e imprima os valores invertidos.
DICA
Uma entrada e uma saída podem ocorrer de diversas formas e em diversos momentos dentro de
um algoritmo. Por exemplo, uma entrada pode ser realizada via teclado ou leitor ótico e uma
saída poderá ser realizada no monitor ou na impressora.
•
•
•
•
•
•
- -22
Resolução: primeiro, é preciso inverter os valores das variáveis, ou seja, o valor que está em A passa para B e o que
estiver em B passa para A. Contudo, se for feito A <- B, perde-se o valor de A. Se for feito B <- A, perde-se o valor de
B. Então, o que deve ser feito para não se perder valores? É necessário um espaço para armazenar A ou B. Assim,
pode-se fazer: AUXÍLIO <- A. Aqui, há uma cópia de A, e é possível receber o valor de B, ficando A <- B. Dessa forma,
o B <- AUXÍLIO. Aplicando os três níveis, há:
• Entrada: ler A e B.
• Processamento: realizar as inversões AUXÍLIO <- A; A <- B; B <- AUXÍLIO.
• Saída: imprimir o A e B.
Passo 1: Ler o valor de A.
Passo 2: Ler o valor de B.
Passo 3: AUXÍLIO <- A.
Passo 4: A <- B.
Passo 5: B <- AUXÍLIO.
Passo 6: Imprimir o valor de A e de B.
Agora, você pode continuar treinando. Continue a empregar os dados de entrada, o processamento a ser realizado
e, por fim, o que deve ser apresentado.
3.4 Treinando algoritmos
Nesta parte do capítulo, há mais explicações e práticas acerca dos algoritmos.
Depois, você poderá treinar sozinho. Por isso, é muito importante não ter dúvidas.
3.4.1 Exemplos com algoritmos
A seguir, há mais alguns exercícios relacionados aos algoritmos. Se precisar, não hesite em retornar ao início deste
estudo, para compreender as atividades.
 1. Construa um algoritmo para uma receita de bolo de chocolate preto.
Primeiramente, para construir esse algoritmo, é preciso ter uma receita de bolo de chocolate, nesse caso, a receita
foi retirada de uma embalagem de leite condensado.
Passo 1: Bater duas claras em neve.
Passo 2: Adicionar duas gemas.
Passo 3: Adicionar uma xícara de açúcar.
Passo 4: Adicionar duas colheres de margarina.
Passo 5: Adicionar uma xícara de farinha de trigo.
Passo 7: Adicionar uma xícara de chocolate em pó.
Passo 8: Levar à batedeira até formar uma massa homogênea.
Passo 9: Colocar em uma forma e levar ao forno, em fogo brando.
Obs.: essa receita não foi testada. Está sendo apresentada apenas com caráter pedagógico.
2. Construa um algoritmo para ligar um automóvel.
Para resolver esse programa, é preciso se atentar ao tipode veículo. Como, nesse caso, não está claro, pois se trata
apenas de um automóvel, adota-se, como critério, o carro popular comum.
Passo 1: Abrir a porta do carro.
Passo 2: Entrar no carro.
Passo 3: Colocar a chave na ignição.
Passo 4: Colocar a marcha em neutro.
Passo 5: Girar a chave no sentido horário.
Passo 6: Soltar a chave.
3. Descreva a sequência de passos para se realizar uma ligação telefônica em um aparelho fixo.
•
•
•
- -23
Resolução: o enunciado pede que seja realizada uma ligação em um aparelho de telefone fixo (com ou sem fio), e
não em um celular.
Passo 1: Encontrar o número para ligar.
Passo 2: Retirar o fone do aparelho do gancho.
Passo 3: Discar o número.
Passo 4: Esperar alguém atender.
Passo 5: Falar ao telefone.
Passo 6: Colocar o fone no gancho ao terminar a ligação.
4. Propor uma solução para trocar uma lâmpada a dois metros de altura.
Resolução: o enunciado afirma que a lâmpada que deve ser trocada está a dois metros de altura do chão, logo,
deve-se utilizar uma escada para realizar a troca. Não foi mencionado se a lâmpada é de filamento ou de LED e se
há outra lâmpada para colocar no lugar da que será retirada. Por exemplo, se for de filamento, a lâmpada estará
quente. Sendo assim, assume-se que a lâmpada está fria e que há outra lâmpada para fazer a substituição
necessária.
Passo 1: Pegar uma escada.
Passo 2: Abrir a escada e posicioná-la embaixo da lâmpada a ser trocada.
Passo 3: Subir a escada e retirar a lâmpada queimada.
Passo 4: Descer, com cuidado, a escada.
Passo 5: Pegar a lâmpada nova.
Passo 6: Com cuidado, subir a escada novamente, segurando a lâmpada nova.
Passo 7: Colocar a lâmpada nova.
Passo 8: Descer a escada.
Passo 9: Guardar a escada.
Esses algoritmos foram de fácil resolução, mas sempre é preciso praticar e perceber que o cotidiano é um
algoritmo.
Proposta de atividade
Agora é a hora de recapitular tudo o que você aprendeu neste capítulo! Pense em um problema de sua rotina diária
(particular ou no trabalho) e crie um algoritmo de acordo com os passos que você, normalmente, utiliza para
resolver esse problema, destacando as principais ideias abordadas ao longo deste capítulo. Ao produzir o
algoritmo, considere as leituras básicas e complementares realizadas.
Recapitulando
Este capítulo abordou a importância do uso do fluxograma e da construção de um algoritmo que possa representar
um raciocínio, envolvendo a lógica de programação. Essa lógica permite que uma estrutura sequencial seja
seguida, ou seja, o algoritmo é executado passo a passo e, a partir disso, é possível considerar detalhes de
informações que, mais tarde, podem ser acrescentadas durante o refinamento do código. Além disso, um
algoritmo pode ser construído para tomar decisões a partir de desvios de fluxos e ter parte de seu código repetido,
diminuindo o número de linhas.
O processo de análise e a construção de um algoritmo requerem interpretação lógica do problema a ser resolvido
e, para resolvê-lo, é necessária uma sequência de passos que caminhe por três níveis: entrada, processamento e
saída. Dessa forma, no desenvolvimento de um algoritmo, é pouco provável que se chegue a um resultado
satisfatório sem, primeiro, serem realizadas todas as análises, para que, depois, o algoritmo seja construído.
- -24
Por exemplo, para dirigir um veículo em uma cidade nova, em que não se conhecem as ruas, geralmente, é preciso
utilizar um GPS ou outro dispositivo de navegação que auxilie o decorrer do percurso. Nesse caso, uma entrada é
fornecida, o dispositivo realiza o processamento e, assim, é possível chegar ao destino.
Por meio dos exemplos expostos ao longo deste capítulo, ficou evidente como uma solução simples facilita a
construção de algoritmos para determinado problema do mundo real, os quais podem ser traduzidos,
futuramente, para uma linguagem de programação. Ainda, a partir da resolução de exemplos e exercícios, foi
possível praticar o conceito de fluxo sequencial.
Referências
ASCENCIO, A. F. G.; CAMPOS, E. A. V. . Fundamentos da Programação de Computadores 5. ed. São Paulo: Prentice
Hall, 2010.
DUARTE, F. Nove Algoritmos que Podem Estar Tomando Decisões sobre sua Vida – sem você saber. , 04/02BBC
/2018. Disponível em: < >. Acesso em: 20/11/2018.https://www.bbc.com/portuguese/geral- 42908496
FORBELLONE, A. L. V.; EBERSPACHER, H. F. : construção de algoritmos e estruturas deLógica de Programação
dados. 3. ed. São Paulo: Prentice Hall, 2005.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. : algoritmos. São Paulo: Editora Érica, 2000.Estudo Dirigido
PUGA, S.; RISSETTI, G. . São Paulo:Lógica de Programação e Estruturas de Dados com Aplicações em Java
Pearson Prentice Hall, 2003.
SOUZA, M. A. F. . : um texto introdutório para engenharia. 2. ed. Sãoet al Algoritmos e Lógica de Programação
Paulo: Cengage Learning, 2011.
https://www.bbc.com/portuguese/geral- 42908496
	Objetivos do capítulo
	Tópicos de estudo
	Contextualizando o cenário
	3.1 Fundamentos de algoritmos
	3.1.1 O que é um algoritmo?
	3.1.2 Algoritmo, fluxograma e programação
	3.1.3 Formato e execução
	3.1.4 Ordenando pensamentos e ações
	3.2 Análise de algoritmos
	3.2.1 Interpretando problemas com algoritmos
	3.2.2 Execução sequencial
	3.2.3 Exemplos dirigidos
	3.3 Projeto de algoritmos
	3.3.1 Propriedades
	3.3.2 Contingências e eventualidades
	3.3.3 O passo a passo para o desenvolvimento de um algoritmo
	Entrada
	Processamento
	Saída
	3.3.4 Exemplos dirigidos
	3.4 Treinando algoritmos
	3.4.1 Exemplos com algoritmos
	Proposta de atividade
	Recapitulando
	Referências

Continue navegando