Buscar

Algoritmos e Lógica de Programação

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

Cristiano de Macêdo Neto
Algoritmos e Lógica 
de Programação 
Cristiano de Macêdo Neto
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
Belo Horizonte
Janeiro de 2016
COPYRIGHT © 2015
GRUPO ĂNIMA EDUCAÇÃO
Todos os direitos reservados ao:
Grupo Ănima Educação
Todos os direitos reservados e protegidos pela Lei 9.610/98. Nenhuma parte deste livro, sem prévia autorização 
por escrito da detentora dos direitos, poderá ser reproduzida ou transmitida, sejam quais forem os meios 
empregados: eletrônicos, mecânicos, fotográficos, gravações ou quaisquer outros.
Edição
Grupo Ănima Educação
Vice Presidência
Arthur Sperandeo de Macedo
Coordenação de Produção
Gislene Garcia Nora de Oliveira
Ilustração e Capa
Alexandre de Souza Paz Monsserrate
Equipe EaD
Conheça 
o Autor
Cristiano de Macêdo Neto é mestre em 
Engenharia Elétrica e bacharel em Ciência 
da Computação. 
Atua na área acadêmica como professor 
universitário, ministrando aulas para cursos 
de graduação e pós-graduação na área de TI 
desde 2003. Atua no mercado de produção 
de software desde 1995, já tendo trabalhado 
com desenvolvimento de software, análise 
de sistemas, suporte a usuários e análise de 
negócios e requisitos em sistemas de médio 
e grande porte para empresas como: Governo 
de Minas Gerais, Drogaria Araújo, Usiminas, 
Magnesita, entre outras.
Os conhecimentos e técnicas relacionados à lógica de programação 
e programação de computadores vêm sendo inseridos nos currículos 
escolares cada vez mais nas séries iniciais em várias regiões do 
mundo. 
No contexto do profissional da tecnologia da informação, tal 
conhecimento se mostra como algo essencial para o futuro na 
profissão do estudante, uma vez que grande parte dos aprendizados 
e habilidades necessários para o profissional de tecnologia da 
informação requerem tal conhecimento.
Para os estudantes e profissionais da engenharia, a apresentação 
de tal disciplina se mostra extremamente útil pelo fato de incentivar 
o raciocínio lógico, a capacidade de abstração e desenvolver nas 
pessoas uma forma sistêmica de resolução de problemas.
Na área de engenharia, temos visto todo dia um número cada vez 
maior de cursos criando uma maior vinculação com a programação 
de computadores, que já é o caso da Engenharia de Controle 
de Automação, Engenharia Elétrica, Engenharia de Computação 
e Engenharia Mecânica. Tal evolução pode não estar distante 
de impactar diretamente as outras engenharias, uma vez que a 
programação de computadores se mostra como uma atividade de 
apoio para todas as áreas.
O foco será centrado no desenvolvimento do raciocínio lógico e da 
aplicação do conhecimento gerado para a resolução de pequenos 
problemas matemáticos na forma de algoritmos.
Para um melhor aproveitamento, esta disciplina conta com unidades 
em que se trabalha o conteúdo de forma teórica, com o objetivo de 
construir uma sólida base da teoria dos assuntos apresentados, e 
Apresentação 
da disciplina
também conta com unidades práticas, em que é possível ao aluno 
aplicar todo o conteúdo exibido na resolução de problemas de 
forma algorítmica, através de uma plataforma de programação 
criada especialmente para a construção e execução dos algoritmos 
desenvolvidos por eles.
UNIDADE 4 073
Estruturas de controle 074
Estruturas de controle 076
Estrutura de seleção ou condicional 077
Estrutura de repetição 085
Revisão 096
UNIDADE 3 057
Construção de algoritmos sequenciais e modulares 058
Apresentação do ambiente de aprendizado prático 059
Principais erros 065
Revisão 072
UNIDADE 2 029
Estruturas sequenciais e modularização 030
Algoritmo mínimo 031
Variáveis e constantes 033
Comandos de entrada e saída 041
Operadores aritméticos 046
Operadores relacionais e operadores lógicos 048
Construção e análise de expressões 051
Modularização e construção de sub-rotinas 051
Revisão 055
UNIDADE 1 003
Introdução a algoritmos e lógica de programação 004
Contextualização da lógica de programação na sociedade atual 006
Conceitos básicos de lógica de programação 007
Algoritmos não computacionais e computacionais 011
Fases de um algoritmo computacional 020
Regras de construção de algoritmos computacionais 021
Estrutura básica de algoritmo computacional 022
Revisão 027
UNIDADE 8 148
Construção de Algoritmos computacionais em pseudocódigo 149
Construção de algoritmos computacionais utilizando todo o 
conteúdo ministrado 150
Revisão 159
REFERÊNCIAS 160
UNIDADE 7 130
Construção de algoritmos com utilização de tipos de dados homogêneos 131 
Tipos de dados homogêneos suportados pelo Ambiente de 
Aprendizado Prático 132
Tipos de dados homogêneos multidimensionais ou matrizes 142
Revisão 147
UNIDADE 6 116
Tipo de dados homogêneos: vetores e matrizes 117
Tipos de dados homogêneos unidimensionais ou vetores 119
Tipos de dados homogêneos multidimensionais ou matrizes 124
Revisão 128
UNIDADE 5 100
Construção de algoritmos com estruturas de controle 101
Estruturas de controle suportadas pelo ambiente de aprendizado prático 102
Estruturas de seleção ou condição simples 103
Estrutura de seleção ou condição composta 106
Estrutura de repetição ou iteração 109
Estruturas de repetição ou iteração controladas por contador 109
Estruturas de repetição ou iteração controladas por condição 110
Revisão 114
Introdução a 
algoritmos e lógica 
de programação 
• Contextualização 
da lógica de 
programação na 
sociedade atual
• Conceitos básicos 
de lógica de 
programação
• Algoritmos não 
computacionais e 
computacionais
• Fases de 
um algoritmo 
computacional
• Regras de 
construção 
de algoritmos 
computacionais
• Estrutura básica 
de algoritmo 
computacional
• Revisão
Introdução
Um questionamento muito comum entre alunos de graduação ao 
iniciarem os estudos de lógica de programação é como a disciplina 
poderá impactar no seu futuro profissional e qual a sua relação com 
o conteúdo do seu curso. E até pouco tempo atrás, a resposta vinha 
apenas dos professores da área de programação, tentando mostrar 
para o aluno qual é a importância de tal conteúdo na sua vida 
acadêmica e profissional. Porém, esse cenário vem mudando e a 
cada dia que passa temos um grupo maior de pessoas defendendo 
o ensino de programação, não apenas para alunos dos cursos 
associados à tecnologia da informação e engenharias, mas sim 
que tal disciplina deve fazer parte do currículo do ensino básico, 
ser apresentada nos primeiros anos da vida escolar às disciplinas 
associadas à lógica de programação.
No evento Transformar 2014, Mitchl Resnick, pesquisador do MIT, 
diz que acredita que saber programar é tão importante quanto saber 
ler e que “escrever no mundo de hoje significa saber nos expressar 
com as tecnologias atuais: saber programar”.
Para ele, a necessidade de aprender a escrever algoritmos e 
programas vai além da utilidade profissional. Mesmo que não sejam 
cientistas da computação, Resnick defende que todas as crianças 
devem ter a oportunidade de serem “fluentes” em programação. 
“Todas as crianças aprendem a escrever porque é uma habilidade 
útil para todos e em todos os aspectos da vida. A programação 
funciona da mesma forma.” E segundo ele a maior vantagem em 
aprender a programar não é se dar melhor no mercado de trabalho, 
mas a mudança mental que a programação produz. Além de 
organizar as ideias, a programação ajuda a ver o mundo de maneira 
mais criativa e crítica.
Para Gustavo Furtado, apesar de parecer intimidante no começo, 
programar não é tão complicado como muitos pensam. Na verdade, 
da mesma forma como ler, escrever e fazer cálculos básicos, 
programação é a nova disciplina básica paraalfabetização. “Tenho 
uma convicção de que daqui a uns 10 ou 20 anos, programação 
será ensinada nas escolas como uma coisa tão básica quanto 
ler, escrever e fazer cálculos básicos como soma, subtração, 
multiplicação e divisão”, disse Gustavo Furtado.
Podemos definir a atividade de programar como sendo a arte de 
ensinar uma máquina a resolver problemas. E uma das principais 
atividades dos profissionais de engenharia e tecnologia da 
informação está exatamente em criar soluções para a resolução 
de problemas, ou seja, estudar uma forma de automatizar 
decisões e atividades através de comandos é uma ótima maneira 
de desenvolver a técnica de resolução de problemas em futuros 
profissionais. 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
006
Cada vez mais é um 
consenso entre os 
profissionais que 
sabem programar 
que a imaginação é 
realmente o limite, 
com relação às 
facilidades que 
um computador 
pode trazer para 
sua vida pessoal e 
profissional.
Contextualização da 
lógica de programação 
na sociedade atual
Para Daniel Caetano, a programação é uma atividade que auxilia 
o estudante de engenharia a aprimorar sua habilidade para 
desenvolver métodos de solução para problemas complexos, em 
um processo que se chama sistematização de soluções, e aponta 
que existem diversas situações no dia a dia de um engenheiro em 
que a habilidade de programar pode simplificar muito a sua vida, 
desde o desenvolvimento de planilhas e macros para controles 
financeiros até cálculos complexos como movimento de terra, 
cálculos de circuitos e alterações nas vazões de rios - dentre muitos 
outros - que podem ser programados por esse profissional com 
relativa simplicidade.
A habilidade necessária para a programação é o desenvolvimento da 
lógica de programação, que deve ser utilizada no curso com o propósito 
de desenvolver a capacidade de sistematizar a solução de problemas 
abrindo inúmeras facilidades para engenheiros e alunos da área de 
tecnologia da informação, que vão desde o desenvolvimento de simples 
planilhas de Excel que realizem automaticamente cálculos repetíveis, até 
o desenvolvimento de sistemas que permitam cálculos refinados que não 
são possíveis de serem realizados à mão, proporcionando economia e 
eficiência aos projetos.
Cada vez mais é um consenso entre os profissionais que sabem 
programar que a imaginação é realmente o limite, com relação às 
facilidades que um computador pode trazer para sua vida pessoal 
e profissional.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
007
A lógica de 
programação é a 
técnica que nos 
permite desenvolver 
a habilidade de 
descrever soluções 
de problemas que 
serão automatizados 
através de 
computadores. 
Conceitos básicos de 
lógica de programação
A lógica de programação é a técnica que nos permite desenvolver a 
habilidade de descrever soluções de problemas que serão automatizados 
através de computadores. 
Para Marcio Leitão, do blog <marcioleitaoexpress.wordpress.com>, 
“o homem por si só é um ser lógico, e essa lógica é um dom que 
não se aprende de uma hora para outra. Resulta, em geral, de 
experiências do dia a dia. Usamos lógica quando executamos 
ordenadamente uma série de rotinas predeterminadas, tais como: 
levantar da cama, pegar os chinelos, ir ao banheiro, tomar banho, 
etc. Estas ações são justificadas pela experiência prévia nestes 
procedimentos que nos fazem reconhecê-los como mais eficazes e 
agradáveis para começar o dia de atividade”. 
Se procurarmos uma definição de lógica, encontraremos uma 
infinidade de respostas que, entre elas, podemos citar:
• “O conjunto de leis, princípios ou métodos que determinam 
um raciocínio coerente, induzindo a uma solução prática e 
eficaz do problema.” (LEITÃO, Marcio. O conceito de lógica. 
In: Site “Marcio Leitão Express”)
• “Organização e planejamento das instruções, assertivas, 
etc. em um algoritmo, a fim de viabilizar a implantação de 
um programa.” (MEDEIROS, 2009, p. 3) 
• “E se procurarmos uma definição no Google para lógica 
de programação, iremos encontrar entre outras definições 
a seguinte descrição: “lógica de programação é a técnica 
de desenvolver algoritmos (sequências lógicas) para 
atingir determinados objetivos dentro de certas regras 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
008
Se decompormos 
o ato de descrever 
uma solução de 
forma que seja 
passível a sua 
execução por 
um computador, 
chegaremos 
essencialmente a 
duas partes: cálculos 
aritméticos e 
decisões lógicas. 
baseadas na lógica matemática e em outras teorias 
básicas da ciência da computação e que depois são 
adaptados para a linguagem de programação utilizada 
pelo programador para construir seu software.” (O QUE É 
Lógica de Programação. In: Site “Intellectuale - Tecnologia 
& Treinamento”) 
Se decompormos o ato de descrever uma solução de forma que 
seja passível a sua execução por um computador, chegaremos 
essencialmente a duas partes: cálculos aritméticos e 
decisões lógicas. 
Baseado nessa decomposição, podemos dizer que programar 
um computador é basicamente conseguir identificar e descrever 
quais os cálculos necessários e quais decisões lógicas devem 
ser tomadas para a solução do problema em questão.
É relativamente comum utilizarmos o termo lógica ou lógico, 
porém defini-lo não é assim tão simples. Se eu solicitasse para 
me explicar o que significa o termo lógico, você seria capaz de 
descrever sem nenhuma dificuldade? Caso a sua resposta seja 
não, não se assuste, pois toda vez que faço essa pergunta em 
sala de aula, é comum logo em seguida um silêncio absoluto 
reinar, até que eu fale alguma outra coisa.
Então, vamos tentar lembrar em quais momentos utilizamos 
o termo lógico ou é lógico. Toda vez que tento lembrar, vêm 
automaticamente à minha memória aqueles momentos em que 
alguém acabou de realizar uma tarefa cujo resultado não foi o 
esperado e instintivamente alguém mais do que depressa solta 
a frase “É lógico que iria dar errado!”. 
Se analisarmos os momentos em que dizemos “É lógico que 
iria dar errado!”, vamos começar a perceber que normalmente 
dizemos essa frase quando sabemos o que deveria ter sido 
feito e como deveria ter sido feito, e verificamos que a pessoa 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
009
Podemos definir 
algoritmo como uma 
série de instruções 
que mostram 
como determinado 
problema pode ser 
resolvido. 
que executou a tarefa não a realizou da maneira como sabemos 
que iria dar certo.
Podemos então dizer que a sentença “é lógico” é utilizada todas 
as vezes que sabemos qual é a sequência de passos para 
realizar uma tarefa com sucesso, isto é, o termo lógico pode 
ser associado à forma de fazer algo com sucesso ou à forma de 
resolver um problema com sucesso.
Repare que o termo sequência apareceu no parágrafo acima. 
Se buscarmos conceituar o que é sequência, vamos chegar a 
uma definição que remete à ordem em que as coisas ocorrem, 
ou seja, se juntarmos as palavras sequência e lógica, teremos 
o termo sequência lógica, que na nossa disciplina poderemos 
definir como a sequência ou ordem de execução de passos 
(instruções) a serem seguidos ou executados para podermos 
resolver um problema com sucesso.
Para complicar um pouquinho mais as coisas, apareceu agora 
a palavra instrução, que é um termo que utilizamos com uma 
certa frequência, mas para explicar a sua definição nem sempre 
é assim tão simples. Tentando simplificar, no contexto da nossa 
disciplina, para nós, instrução será definida como uma ação ou 
operação elementar a ser executada por um computador.
Agora vamosao conceito mais importante da nossa disciplina 
e a nossa principal ferramenta de trabalho. Um termo que 
utilizaremos constantemente é algoritmo e será nosso principal 
alvo na disciplina. Porém, ao contrário do que muitos imaginam, 
a definição de algoritmo não foi criada para atender a área de 
computação ou programação de computadores e nem é uma 
exclusividade dessa área. Na verdade, já tivemos contato com um 
monte de algoritmos em nossas vidas, algumas vezes utilizamos 
algoritmos mais formais e outras vezes utilizamos algoritmos 
informais. Mas afinal das contas, o que seria um algoritmo?
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
010
Podemos concluir 
então que a principal 
característica 
na construção 
de um algoritmo 
de qualidade é 
conseguir descrever 
de forma precisa, 
simples e clara a 
ordem de instruções 
seguindo uma 
sequência lógica.
Podemos definir algoritmo como uma série de instruções que 
mostram como determinado problema pode ser resolvido. 
Isto é, podemos considerar que uma receita culinária é um 
algoritmo, um manual de instruções de como realizar algo 
também é. E o que define a qualidade de um algoritmo é o quão 
preciso e simples ele é. Costumo utilizar como exemplo de um 
bom repositório de algoritmos o site <www.tudogostoso.com.
br>, uma vez que receitas culinárias também são algoritmos. Lá 
no site, podemos verificar que as receitas que alcançam uma 
maior pontuação dos usuários são aquelas escritas de forma 
clara ou simples, em que qualquer pessoa, independente da 
sua habilidade culinária, poderá seguir aquela receita e ter um 
resultado de sucesso.
Na programação de computadores não é diferente, os 
algoritmos que alcançarão êxito na sua execução serão aqueles 
que forem escritos de forma precisa, simples e clara. Uma vez 
que o computador terá que repetir todos os passos descritos 
por nós, assim como em uma receita culinária, com a não 
realização de um passo ou a realização no momento errado, 
poderemos não alcançar o sucesso esperado.
Podemos concluir então que a principal característica na 
construção de um algoritmo de qualidade é conseguir descrever 
de forma precisa, simples e clara a ordem de instruções 
seguindo uma sequência lógica.
Referências:
LEITÃO, Marcio. O conceito de lógica. In: Site “Marcio Leitão Express”. 
Disponível em: <https://marcioleitaoexpress.wordpress.com/logica-de-
programacao/>. Acesso em: 12 jan. 2016.
MEDEIROS, Carlos Augusto G.; GONÇALVES NETO, Estanislau. Cap. 1 – 
Conceitos Básicos. In: ______. Lógica de Programação e Algoritmos: com 
exemplos na linguagem JAVA. 2009. P. 03. Disponível em: <https://ccunip.
files.wordpress.com/2009/11/apostila-cap1_conceitosbasicos_exemp_em_
java.pdf>. Acesso em: 25 jan. 2016.
O QUE É Lógica de Programação. In: Site “Intellectuale - Tecnologia & 
Treinamento”. Disponível em: <http://cursosdeprogramacao.com.br/blog/o-
que-e-logica-de-programacao/>. Acesso em: 29 jan. 2016. 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
011
Os algoritmos 
podem ser 
classificados como 
computacionais 
e não 
computacionais, 
dependendo 
de quem é o 
responsável 
por executá-los. 
Algoritmos não 
computacionais e 
computacionais
Os algoritmos podem ser classificados como computacionais 
e não computacionais, dependendo de quem é o responsável 
por executá-los. 
Algoritmos não computacionais
Os algoritmos não computacionais são os tipos de algoritmos que mais 
frequentemente nós executamos de forma inconsciente, e são tão comuns 
que na maioria das vezes nem percebemos que estamos seguindo uma 
sequência lógica de passos para a realização de tal tarefa. Normalmente, 
quando realizamos tarefas simples do dia a dia, como por exemplo escovar 
os dentes, trocar pneu de um carro, tomar banho ou trocar uma lâmpada, 
seguimos sempre a mesma sequência de passos que sabemos que nos 
levará ao sucesso.
Porém, se analisarmos outras pessoas executando uma mesma 
tarefa, perceberemos que existe mais de uma forma correta de 
fazer a mesma coisa, e que alguns passos podem ter a sua 
sequência alterada que não prejudica o sucesso da atividade 
que estamos realizando. Já outros passos, caso troquemos a 
ordem em que fazemos a tarefa, prejudicarão o resultado final, 
nos impedindo de alcançar o sucesso da atividade.
Imagine que nosso objetivo é criar um site que ensina a realizar 
pequenos reparos domésticos, e para isso podemos listar uma série 
de tarefas que possam ser interessantes. Dentre as quais, podemos 
descrever como trocar uma torneira, como trocar uma lâmpada, 
como trocar a resistência de um chuveiro, como colocar um quadro 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
012
Quanto à sequência 
dos passos, 
podemos verificar 
que se trocarmos a 
ordem dos passos 5 
e 6, continuaremos 
tendo o mesmo 
resultado para a 
tarefa.
na parede, e por aí vai. Se analisarmos o que já discutimos até agora, 
repararemos que cada uma dessas tarefas pode se tornar um 
algoritmo. Para exemplificar, vamos mostrar a tarefa de descrever o 
algoritmo não computacional de trocar uma torneira.
Início
1. Comprar a nova torneira
2. Comprar fita veda rosca
3. Localizar o registro referente à torneira a ser trocada
4. Fechar o registro referente à torneira a ser trocada
5. Retirar a torneira instalada
6. Passar oito voltas de veda rosca na rosca da torneira nova
7. Rosquear a torneira nova
8. Abrir o registro referente à torneira
9. Verificar se existe vazamento na torneira instalada
10. Se existir vazamento 
11. Retirar a torneira instalada 
12. Retirar o veda rosca 
13. Voltar ao passo 6
14. Testar o funcionamento da torneira instalada
15. Se não estiver funcionando corretamente
16. Acionar um bombeiro profissional
Fim
Repare que no algoritmo não computacional apresentado acima 
alguns cuidados foram tomados, como por exemplo, em cada 
passo, foi colocado apenas um verbo ou ação. Isso foi feito para 
que o leitor, ao tentar seguir os passos, não possa se confundir 
ou ter um entendimento ambíguo da operação, e esse é um dos 
cuidados que devem ser tomados para a criação de algoritmos que 
sejam simples, consistentes e claros.
Quanto à sequência dos passos, podemos verificar que se trocarmos 
a ordem dos passos 5 e 6, continuaremos tendo o mesmo resultado 
para a tarefa.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
013
Os algoritmos 
computacionais 
são aqueles que 
serão executados 
pelo computador 
e, por esse motivo, 
teremos que criar 
um algoritmo ainda 
mais rígido do que 
os algoritmos não 
computacionais.
....
6. Passar oito voltas de veda rosca na rosca da torneira nova
5. Retirar a torneira instalada
....
Porém, se trocarmos a ordem dos passos 4 e 5, já comprometeremos 
o sucesso da ação.
....
5. Retirar a torneira instalada
4. Fechar o registro referente à torneira a ser trocada
....
Ou seja, a ordem em que os passos ocorrem é importante e pode 
impactar diretamente no resultado final, e isso é o que consideramos 
sequência lógica.
Algoritmos computacionais
Os algoritmos computacionais são aqueles que serão executados 
pelo computador e, por esse motivo, teremos que criar um algoritmo 
ainda mais rígido do que os algoritmos não computacionais, pois ao 
contrário do que muitos imaginam, o computador é uma máquina 
que não é dotada de raciocínio ou inteligência, e que não analisa se 
os passos que lhe são instruídos para executar seguem ou não uma 
sequência lógica.
Antes de construirmos algoritmos computacionais, é interessante 
entendermos o que é um computador, mesmo que essa definição 
seja dada de forma simplificada.E ao solicitar ao “Dr. Google” que ele definisse computador, ele me 
trouxe a seguinte resposta: “máquina destinada ao processamento 
de dados, capaz de obedecer a instruções que visam produzir certas 
transformações nesses dados para alcançar um fim determinado” 
(COMPUTADOR. In: Dicionário Houaiss Online).
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
014
Para entendermos melhor o que é e como construir algoritmos 
computacionais, vamos tentar entender a definição de computador 
do Google, desmembrando cada um dos conceitos apresentados e 
fazendo uma analogia com outras áreas.
Processamento
A primeira parte da definição apresentada pelo site Google.
com e apresentada acima fala que “é uma máquina destinada 
ao processamento de dados...”. Acredito que o que é uma 
máquina está muito claro para todos, porém o que é processar 
ou processamento? Você conseguiria me explicar com as suas 
palavras? Caso sua resposta seja não, vamos tentar entender o 
que significa primeiro a ação de processar.
Se olharmos em nossa casa, mais especificamente na cozinha, 
vamos perceber que temos uma série de processadores 
de comida. Alguns têm a audácia de ter o nome de 
multiprocessadores, outros possuem nomes específicos e, 
apesar de não remeterem ao termo processador no nome, 
também podem ser considerados processadores. Um bom 
exemplo disso é o liquidificador, que é considerado um 
processador de alimentos.
Quando analisamos o funcionamento de um liquidificador, 
podemos entender melhor o que significa o verbo processar. 
Em um liquidificador, se colocamos dentro dele um limão, 500 
ml de água, duas colheres de açúcar e 50 ml de leite, após ligá-
lo e deixá-lo em funcionamento por cinco minutos, o que temos 
de resultado?
A primeira parte 
da definição 
apresentada pelo 
site Google.com e 
apresentada acima 
fala que “é uma 
máquina destinada 
ao processamento 
de dados...”.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
015
FIGURA 1 - Ingredientes
Fonte: Núcleo de Educação a Distância (NEaD), Una, 2015.
Continuamos tendo os mesmos ingredientes que colocamos? Ou 
passamos a ter um novo alimento?
Após a utilização do liquidificador, isto é, após o processamento, 
passaremos a ter uma limonada suíça não coada, e não teremos 
mais os ingredientes iniciais. Pois os ingredientes não foram apenas 
misturados, eles sofreram um processamento, ou seja, sofreram 
uma transformação e, em grande parte dos casos, não teremos 
mais condições de voltar à matéria-prima inicial.
Isto é, processar é transformar, e assim podemos adaptar a definição 
inicial do Google em “é uma máquina destinada ao processamento 
à transformação de dados...”.
Mas ao utilizar o liquidificador, temos que analisar algumas 
outras situações que ainda não foram apresentadas e que são 
interessantes de serem discutidas. Vamos imaginar agora que, ao 
invés de utilizá-lo para fazer uma limonada suíça, vamos utilizá-lo 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
016
para bater leite. Ou seja, colocaremos leite no liquidificador, deixá-lo 
ligado por três minutos e, ao desligar, o que teremos?
Ocorreu alguma transformação? Ocorreu algum processamento? 
Ou apenas desperdiçamos energia?
FIGURA 2 - Ingredientes 2
Fonte: Núcleo de Educação a Distância (NEaD), Una, 2015.
Repare que, para que ocorra a transformação, é necessário que 
exista mais de um ingrediente, pois raramente apenas uma matéria-
prima conseguirá se transformar em algo novo a partir de um 
processamento; ela poderá no máximo mudar o seu estado.
Dados
Agora falta entender o que são dados, pois a primeira parte da 
definição fala que “é uma máquina destinada ao processamento à 
transformação de dados...”. 
Podemos definir como dados os valores específicos que possuam 
algum significado em um contexto. Isto é, quando falamos da 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
017
cotação do dólar, estamos falando de um valor específico que indica 
alguma coisa em determinado contexto. Outro exemplo de dados é 
a velocidade média de um veículo ou o valor de um produto. O que 
vamos perceber em todos os dados que possamos identificar é que 
eles são em sua essência valores numéricos, e que são passíveis 
de se relacionarem com outros valores para se gerar um novo valor.
Ou seja, quando falamos de dados, estamos falando de números, e 
quando falamos de processamento de dados, estamos falando de 
transformação de números. Transformação esta que já vimos na 
matemática, em que aprendemos um conjunto de quatro operações 
básicas que transformam seus operandos em resultados.
Agora, podemos rever a definição inicial do Google e dizer que 
computador “é uma máquina destinada ao processamento à 
transformação de dados números...”. 
Algoritmo
Voltando à definição completa do Google: “é uma máquina destinada 
ao processamento de dados à transformação de números, capaz de 
obedecer a instruções que visam produzir certas transformações 
nesses dados para alcançar um fim determinado”, vemos que na 
segunda parte ela trata da construção de algoritmos, uma vez que 
podemos defini-los como “sequência de instruções que visam 
produzir certas transformações nesses dados para alcançar um fim 
determinado”. 
E como podemos fazer essas transformações? Se eu pegar o 
número 8 e número 2, como posso gerar o número 6? 
8 ? 2 = 6, onde podemos substituir o ? por – (subtração) e teremos 8 – 2 = 6
As formas de transformar números ou processar dados nada 
mais são do que utilizar as operações e funções matemáticas. 
Quando falamos de operações, vamos na maioria das vezes 
As formas de 
transformar 
números ou 
processar dados 
nada mais são 
do que utilizar 
as operações 
e funções 
matemáticas. 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
018
nos remeter às operações básicas, que são soma, subtração, 
multiplicação e divisão. 
Quando falamos de algoritmos, falamos em combinar as operações 
aritméticas ou cálculos e falamos também em decisões lógicas, 
que são responsáveis por coordenar quais cálculos devem ser 
realizados e que, devido à sua relevância no contexto matemático, 
foram formalizados pelos filósofos e representados através de 
sentenças declarativas, também conhecidas como proposições, 
que podem ser falsas ou verdadeiras.
Proposições
As proposições consideradas na lógica matemática possuem 
duas características:
• Uma proposição é verdadeira ou falsa.
• Uma proposição não pode ser verdadeira e falsa, 
simultaneamente.
As proposições da lógica podem ser agrupadas em uma proposição 
composta, com o uso de operadores lógicos E, OU, NÃO. 
Por exemplo: consideremos que, para que um aluno possa ser 
aprovado em uma disciplina de EAD, ele precise de uma nota final 
>= 70. Usando o símbolo NF para indicar a média, podemos escrever 
a condição de aprovação na forma da proposição lógica simples:
p: NF >= 70
Já se quisermos representar também a aprovação de um aluno 
em uma disciplina presencial, além de considerarmos a nota final, 
temos que levar em conta o percentual de frequência na disciplina, 
devendo ser maior ou igual a 75% (setenta e cinco por cento), que 
será representado pelo símbolo F, como mostra a proposição:
As proposições 
da lógica podem 
ser agrupadas em 
uma proposição 
composta, com o 
uso de operadores 
lógicos E, OU, NÃO. 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
019
q: F >= 0,75 (75%)
r: p E q
s: A > 10% 
t: E > 5%
Isto é, para representar a condição de aprovação das disciplinas 
presenciais, não basta apenas verificar as proposições simples, 
teremos que combinar a proposição p com a proposição q de formaque essas duas condições sejam verdadeiras para que o aluno seja 
aprovado. Assim, podemos escrever:
Em que a proposição r indica se o aluno está aprovado (verdadeira) 
ou reprovado (falsa).
Repare que a proposição r será verdadeira se e somente se NF e 
F forem simultaneamente verdadeiras. Se qualquer uma delas (ou 
ambas) for falsa, r será falsa, indicando que o aluno está reprovado.
Em um outro exemplo, podemos construir a proposição u, que 
indica se uma equipe de projetos é ruim. Consideremos A como 
a taxa de atraso nas entregas da equipe e E como a taxa de erros 
graves encontrados nos projetos construídos, então podemos fazer 
as afirmações s e t:
Consideramos uma má equipe de projetos aquela que atrasa as 
entregas frequentemente ou que gera projetos com altas taxas de 
erros (qualquer um dos dois), descrevendo a proposição u como:
u: s OU t
Assim, u será verdadeira sempre que A ou E forem verdadeiras, 
independente da equipe ter as proposições verdadeiras isolada ou 
simultaneamente.
Repare que a 
proposição r 
será verdadeira 
se e somente 
se NF e F forem 
simultaneamente 
verdadeiras. Se 
qualquer uma 
delas (ou ambas) 
for falsa, r será 
falsa, indicando 
que o aluno está 
reprovado.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
020
A função do operador NÃO é utilizada para inverter o resultado de 
proposição. Por exemplo, se uma má equipe é dada pela proposição 
u representada acima, uma boa equipe pode ser representada por 
uma proposição NÃO u.
Algoritmos computacionais
Os algoritmos computacionais geralmente são resoluções que 
demandam cálculos matemáticos que podem ser desde simples 
problemas, como calcular o índice de massa corpórea (IMC) de 
uma pessoa e verificar em qual categoria de obesidade essa 
pessoa se enquadra, até a resolução de cálculos complexos, como 
calcular qual a rota mais rápida para se chegar a determinado local, 
realizado por aplicativos como o Waze, ou o cálculo da quantidade 
de aço necessário na construção de uma ponte.
Como vimos anteriormente, qualquer tarefa que siga um padrão 
pode ser escrita por um algoritmo. E toda tarefa que se baseia na 
realização de um processamento pode ter o problema apresentado 
em três fases fundamentais.
Fases de um 
algoritmo 
computacional
Fases de um processamento
ENTRADA SAÍDAPROCESSAMENTO
Entrada: São os dados de entrada necessários para a resolução do 
problema solucionado pelo algoritmo.
Os algoritmos 
computacionais 
geralmente são 
resoluções que 
demandam cálculos 
matemáticos que 
podem ser desde 
simples problemas.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
021
Processamento: São as tarefas a serem executadas para se chegar 
ao resultado final, geralmente compostas por cálculos aritméticos e 
por condições lógicas.
Saída: São os dados resultantes do(s) processamento(s) realizado(s) 
que geralmente representam os objetivos dos algoritmos.
Para a construção de qualquer tipo de algoritmo computacional, é 
necessário seguir estes passos:
• Compreender completamente o problema a ser resolvido, 
destacando os pontos mais importantes e os objetos que 
o compõem.
• Definir os dados de entrada, ou seja, quais dados serão 
fornecidos e quais objetos fazem parte desse cenário-problema.
• Definir o processamento, isto é, quais cálculos e condições 
serão efetuados e quais as restrições para esses cálculos. 
O processamento é responsável pela transformação dos 
dados de entrada em dados de saída. Além disso, deve-se 
verificar quais objetos são responsáveis pelas atividades.
• Definir os dados de saída, ou seja, quais dados serão 
gerados depois do processamento.
• Construir o algoritmo utilizando uma linguagem 
formal (pseudocódigo, fluxograma) ou uma linguagem 
de programação.
• Testar o algoritmo realizando simulações.
Regras de construção 
de algoritmos 
computacionais
Processamento: São 
as tarefas a serem 
executadas para se 
chegar ao resultado 
final, geralmente 
compostas por 
cálculos aritméticos 
e por condições 
lógicas
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
022
Os algoritmos computacionais podem ser descritos de várias 
formas, porém as formas mais comuns e que permitem uma 
solução já projetada para respeitar as restrições necessárias 
para a execução da solução pelo computador são: pseudocódigo, 
fluxograma e linguagem de programação.
Independente da forma escolhida, a estrutura sempre deverá 
respeitar as fases de execução de um algoritmo, que consistem nas 
etapas de entrada, processamento e saída, podendo esse ciclo se 
repetir várias vezes na resolução de um problema.
Pseudocódigo
Consiste em escrever os passos a serem realizados pelo 
computador na resolução de um problema computacional através 
da adoção de uma pseudolinguagem conhecida como português 
estruturado, que é uma alusão à posterior implementação em uma 
linguagem de programação. 
A grande vantagem em descrever a solução nessa pseudolinguagem 
é que os nossos algoritmos serão independentes de linguagem 
de programação e utilizarão como base o vocabulário em nossa 
língua nativa, o português. Já a quase totalidade das linguagens de 
programação se baseia na língua inglesa. 
Outra vantagem é que, por ser escrito baseado na língua portuguesa, 
o algoritmo será mais fácil de se interpretar e mais fácil de codificar. 
Mas nunca devemos nos esquecer de que a sua escrita deverá ser 
intermediária entre a linguagem falada e a linguagem de programação 
(a forma em que o computador consegue executar a solução).
Estrutura básica 
de algoritmo 
computacional
Os algoritmos 
computacionais 
podem ser descritos 
de várias formas, 
porém as formas 
mais comuns e 
que permitem uma 
solução já projetada 
para respeitar 
as restrições 
necessárias para a 
execução da solução 
pelo computador 
são: pseudocódigo, 
fluxograma e 
linguagem de 
programação.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
023
O fluxograma é uma 
forma padronizada 
e eficaz para 
representar os 
passos lógicos de 
um determinado 
processamento. 
Fluxograma ou diagrama de blocos
O fluxograma é uma forma padronizada e eficaz para representar os 
passos lógicos de um determinado processamento. 
Com o fluxograma, podemos definir uma sequência de símbolos, 
com significado bem determinado. Portanto, sua principal função é 
a de facilitar a visualização dos passos de um processamento.
Exemplo da construção de um 
algoritmo computacional
Como exemplo, podemos imaginar que desejamos criar um 
algoritmo que seja responsável por calcular a idade que uma pessoa 
completará em um determinado ano. Esse algoritmo poderá no futuro 
ser utilizado para diferentes finalidades, como por exemplo fazer um 
cartão de aniversário personalizado com a idade da pessoa, ou criar 
um bolo de aniversário que já vem com a idade a ser comemorada 
impressa, ou quem sabe para indicar qual a quantidade correta de 
velas a serem compradas e uma série de outros problemas que 
possam demandar conhecer a idade a ser comemorada.
Se voltarmos ao item que descreve os passos para a construção 
de um algoritmo, vamos ver que temos x passos a serem seguidos, 
que estão descritos de forma simplificada abaixo:
• Compreender 
o Esta é com certeza a etapa mais importante para podermos 
criar o nosso algoritmo e a etapa para a qual devemos dedicar 
mais tempo, por mais simples que possa parecer o problema. 
o No nosso caso, precisamos ser capazes de:
• Identificar qual idade uma pessoa completará em 
determinado ano e, para isso, precisamos identificar quais 
são os dados de entrada que nos permitem calcular o dado 
desejado(idade a comemorar).
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
024
Identificar em quais 
situações o dado 
desejado não é 
válido, ou em quais 
situações os dados 
necessários para 
o cálculo não são 
válidos, e assim 
poderemos criar as 
nossas proposições 
ou condições 
lógicas.
• Identificar em quais situações o dado desejado não é 
válido, ou em quais situações os dados necessários para o 
cálculo não são válidos, e assim poderemos criar as nossas 
proposições ou condições lógicas.
• Definir os dados de entrada
o Após a compreensão do problema, identificamos que os 
dados de entrada necessários para o cálculo da idade a 
comemorar são: o ano de nascimento e o ano desejado.
• Definir o processamento
o Nesta etapa, devemos definir quais cálculos devem ser 
realizados e também quais são as condições lógicas que 
devem ser testadas.
o O cálculo necessário para se obter a idade a comemorar é 
a subtração do ano desejado e o ano de nascimento, que 
para atender ao formalismo necessário para a execução 
dos passos pelo computador será representado por: 
idade_comemora ano_nascimentoano_desejado 
• Quando se trata da condição lógica relativa ao processamento 
de uma idade válida, podemos criar uma proposição r em 
que o ano desejado será representado por “desejado” e o ano 
de nascimento será representado por “nascimento”. E como 
não é possível calcular a idade de quem ainda não nasceu, 
teremos a seguinte proposição para uma idade válida: r: 
desejado > nascimento
• Definir os dados de saída
• Os dados de saída são os objetivos que se deseja alcançar, 
nesse caso é a idade a comemorar.
• Construir o algoritmo 
• A construção do algoritmo consiste em seguir uma linguagem 
formal pré-definida e organizar os passos seguindo uma 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
025
sequência lógica. Como ainda não detalhamos as instruções 
existentes em portugol, faremos um algoritmo mais simples, 
que não adotará toda a formalidade necessária para que seja 
possível a sua execução por um computador.
Início
Leia ano_desejado
Leia ano_nascimento
Se ano_desejado > ano_nascimento Então
Início
idade_comemora ← ano_desejado – ano_nascimento
Mostre idade_comemora
Senão
Mostre “Idade inválida!”
Fim
Fim
Testar o algoritmo
• O teste consiste em colocar valores de que se conhece o 
resultado e verificar se, realizando os passos do algoritmo, 
obtém-se o mesmo resultado.
ano_desejado
2016
2016
2016
ano_nascimento
2020
2000
1996
ano_desejado – ano_nascimento
2016 – 2020 = -4
2016 – 2000 = 16
2016 – 1996 = 20
idade_comemora
Idade inválida
16
20
ENTRADAS PROCESSAMENTO SAÍDA
Como podemos ver no quadro de testes acima, cujos valores 
foram preenchidos a partir da simulação de execução do algoritmo 
proposto, podemos inferir que o algoritmo está correto, uma vez 
que os resultados que são gerados na coluna de saída atendem as 
expectativas geradas de valores, porque todas as situações testes 
Quadro 1 - Teste de algoritmo
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
026
utilizadas são de valores esperados como resposta, que o autor 
já conhecia de antemão. Essa etapa de validação é extremamente 
importante, pois muitas vezes um pequeno erro na organização de 
nosso algoritmo poderá gerar a descrição de um algoritmo errado, 
como será demonstrado na aula referente a esta unidade.
A criação de aplicativos para celulares tem como ponto de partida os 
conhecimentos de lógica de programação apresentados nesta unidade.
Como exemplo prático, podemos imaginar a criação de uma ferramenta 
para controle de gastos pessoais, que poderá ser realizado tanto de 
forma manual, através de anotações em um bloco de papel, ou de forma 
automatizada, a partir de uma planilha Excel ou de um aplicativo para 
celular. O primeiro passo em qualquer um dos casos é definir de forma clara 
quais são as informações necessárias de serem anotadas (entrada), quais 
são as informações que desejamos que sejam criadas (saída) e também a 
forma como conseguiremos chegar a esse valor criado (processamento). 
A partir do momento em que compreendemos o problema, é perfeitamente 
possível criarmos agora a nossa solução. 
Caso a nossa opção seja por uma planilha de Excel, já conseguimos definir 
que é necessário que sejam anotados todos os valores a receber dentro do 
mês e todos os gastos, assim será possível calcular qual o saldo ao final 
do mês.
A criação de um aplicativo consiste em seguir praticamente os mesmos 
passos que foram seguidos na criação da planilha Excel, a única diferença 
está na forma de descrever a solução: ao invés de criar uma planilha, 
teremos que criar um algoritmo responsável pela realização da tarefa.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
027
Nesta unidade, vimos os conceitos básicos de lógica de 
programação e os passos necessários para a escrita de um 
algoritmo de qualidade. Aprendemos aqui que a ordem em que os 
passos são descritos pode influenciar diretamente no resultado 
final do nosso objetivo, e que para criar algoritmos de qualidade é 
necessário cumprirmos uma sequência de requisitos.
Vimos também que o passo principal é a compreensão do problema 
em questão e que, para criar algoritmos que possam ser executados 
pelo computador, temos que ser claros e objetivos.
Aprendemos também que a criação de algoritmos computacionais 
consiste basicamente na identificação dos cálculos necessários 
e das condições logicas, que podem ser descritas no formato 
de proposições.
Uma boa fonte para buscar conhecimentos adicionais são os sites e 
iniciativas de aprendizagem de programação, ferramentas estas que 
são construídas para atender a demanda de pessoas de todas as 
idades e níveis de conhecimento. Entre elas, podemos citar o site code.
org, que é a principal iniciativa mundial para o ensino de programação 
e conta com módulos de aprendizagem baseados em soluções 
gráficas e jogos, que podem ser utilizados por pessoas de todas as 
idades. Outra extremamente interessante é o site KhanAcademy.org, 
que possui um módulo de aprendizagem de ciência da computação e 
cursos para todos os níveis de conhecimento, partindo do nível básico 
até os níveis avançados.
Para quem desejar um jogo cujo objetivo é treinar o raciocínio lógico, 
podemos buscar o Light Bot, que está disponível no site lightbot.com e 
possui versões para web, Android e iOS.
Revisão
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 1
028
Os livros de fundamentos de programação são sempre uma ótima 
opção para reforçar nossa base teórica. Entre eles, podemos citar o livro 
adotado como bibliografia básica da nossa disciplina, “Fundamentos de 
Programação de Computadores”, de Ana Fernanda Ascênsio.
Outra excelente opção de aprendizagem, para quem quer ir além do nosso 
conteúdo e aplicar os conhecimentos aqui apresentados na utilização de 
uma linguagem de programação, são as videoaulas e tutorias presentes no 
<www.youtube.com>. Entre eles, podemos citar o canal canalfessorbruno, 
disponível em <https://www.youtube.com/user/canalfessorbruno>, que 
contém um excelente material.
Estruturas 
sequenciais e 
modularização
• Algoritmo 
mínimo
• Variáveis e 
constantes
• Comandos de 
entrada e saída
• Operadores 
aritméticos
• Operadores 
relacionais e 
operadores 
lógicos
• Construção 
e análise de 
expressões
• Modularização 
e construção de 
sub-rotinas
• Revisão
Introdução
Nesta unidade, apresentaremos as instruções que nos permitirá 
solucionar problemas computacionais sequenciais. Levando em 
consideração as fases de umalgoritmo que foram abordadas na 
unidade anterior, falaremos das instruções que serão responsáveis 
pela entrada de dados; dos operadores e das expressões que 
possibilitarão a execução de processamento e avaliações lógicas; 
das instruções que serão responsáveis pela saída dos dados. 
Além das instruções de entrada e saída, das expressões responsáveis 
pelo processamento e das avalições lógicas, trabalharemos coma 
alguns conceitos essenciais para a construção de algoritmos. Entre 
eles estão o conceito de variáveis e os tipos de dados.
Para a construção organizada de soluções algorítmicas, abordaremos 
também a técnica de modularização, que nos permitirá a construção 
de algoritmos menores, mais precisos e objetivos e que, no futuro, 
poderão ser reutilizados em outras situações.
A partir desta unidade, o foco estará apenas em algoritmos 
computacionais, que serão descritos em duas formas distintas: o 
pseudocódigo ou portugol e o fluxograma ou diagrama de fluxos. 
Alguns exemplos serão apresentados utilizando essas duas formas 
de descrição de algoritmo; em outros, selecionaremos apenas 
uma delas, permitindo que o aluno desenvolva a capacidade de 
transcrever uma solução algorítmica descrita em pseudocódigo 
para fluxograma, e vice-versa.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
031
Algoritmo mínimo é o menor algoritmo que se pode escrever. Leva 
esse nome pelo fato de não executar absolutamente nada. Possui a 
estrutura mínima de qualquer algoritmo que deve possuir um início 
e um fim.
Fluxograma mínimo
Para a construção do fluxograma mínimo, adotaremos os símbolos 
que denotam as instruções de início e fim. Tais símbolos são 
chamados, em fluxograma, de terminados e são representados pelo 
símbolo abaixo:
Como podemos perceber, temos um símbolo único responsável por 
representar duas fases muito distintas do fluxograma. Se não tivermos 
nenhum recurso para diferenciá-los, poderemos causar dúvidas e 
confusão quanto ao que se pretende informar. 
Para resolver esse problema, no fluxograma, todos os símbolos devem 
vir com uma anotação dentro deles. No caso do terminado, as anotações 
possíveis são início ou fim, possibilitando a identificação de qual das fases 
do algoritmo está sendo representada pelo símbolo.
Símbolo terminador responsável por início e fim.
Algoritmo mínimo
Algoritmo mínimo é o 
menor algoritmo que 
se pode escrever. 
Como um algoritmo mínimo é composto por início e fim, o 
fluxograma mínimo também é representado apenas por esses dois 
símbolos, conforme podemos visualizar na figura abaixo.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
032
Início
Fim
algoritmo
fim_algoritmo.
Fluxograma mínimo
Se analisarmos o fluxograma mínimo apresentado na figura acima, 
perceberemos que, entre os dois símbolos, existe uma seta que se 
inicia no símbolo de início e finaliza no símbolo de fim. Essa seta 
também faz parte do modelo de representação do fluxograma e 
o seu objetivo é demonstrar o sentido no qual os passos estão 
sendo executados. 
Pseudocódigo mínimo
Assim como no fluxograma, o pseudocódigo também tem uma 
estrutura mínima a ser seguida e que será comum a qualquer 
pseudocódigo criado. A sua sintaxe (forma de escrever) vai variar entre 
diferentes autores, mas, em todos eles, a estrutura será a mesma.
Abaixo apresentamos o algoritmo mínimo, adotando a sintaxe 
proposta por Ana Fernanda Ascencio.
Algoritmo mínimo adotando a sintaxe proposta por Ana 
Fernanda Ascencio.
Assim como no 
fluxograma, o 
pseudocódigo 
também tem uma 
estrutura mínima a 
ser seguida e que será 
comum a qualquer 
pseudocódigo criado. 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
033
O conceito de variáveis e constantes não será novidade em nossa 
vida acadêmica, uma vez que, provavelmente, já utilizamos tal 
recurso para resolver problemas matemáticos e físicos com uma 
certa constância.
Sempre questiono meus alunos sobre qual teria sido a primeira 
vez, na vida acadêmica deles, em que tiveram contato com o 
conceito de variáveis. Geralmente respondem ter sido na disciplina 
de Matemática, quando o professor apresentou as equações 
matemáticas, que utilizam as variáveis x, y ou z, conforme o 
exemplo abaixo.
Variáveis e 
constantes
x + 2 = 5
Expressão 1: Expressão matemática com utilização de variável
Porém, costumo dizer que o primeiro contato se deu bem antes 
disso. Ocorreu provavelmente quando nos deparamos com as 
nossas primeiras soluções de problemas matemáticos, nos quais 
o professor solicitava que preenchêssemos o quadro abaixo com a 
valor correto.
+ 2 = 5
Expressão 2: Primeiros problemas matemáticos da nossa vida 
acadêmica
Se repararmos bem as duas expressões apresentadas, 
perceberemos que representam exatamente a resolução do mesmo 
problema, porém de modos distintos. Na solução de cada uma das 
questões, o que importa é o valor dado, de forma que o resultado 
da expressão esteja correto. Ou seja, o mais importante de uma 
variável, não é a sua forma (x ou quadrado a preencher), mas sim o 
conteúdo que ela armazena, uma vez que a solução do problema só 
estará correta se existir um conteúdo correto.
O mais importante 
de uma variável, 
não é a sua forma 
(x ou quadrado a 
preencher), mas sim 
o conteúdo que ela 
armazena, uma vez 
que a solução do 
problema só estará 
correta se existir um 
conteúdo correto.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
034
Na computação, uma variável não é muito diferente daquela 
aprendida na matemática. Ambas representam uma estrutura 
que armazena determinado valor. Segundo Sandra Puga, uma 
variável é utilizada para representar valores desconhecidos, porém 
necessários para a resolução de um problema, podendo ser 
alterados de acordo com a situação. Por isso, pode-se dizer que as 
variáveis armazenam valores (dados) temporariamente.
Se analisarmos conforme o seu objetivo, podemos classificar as 
variáveis em: 
variável de entrada, variável de saída e variável auxiliar
Variável de entrada
As variáveis de entrada são as responsáveis por armazenarem os 
valores que são geralmente fornecidas pelo usuário e que consistem 
nos valores necessários para a solução do problema.
Como exemplo podemos utilizar a necessidade de se encontrar 
as raízes de uma equação de 2º grau. Neste caso, as variáveis de 
entrada seriam: a, b e c.
Variável de saída
As variáveis de saída são as responsáveis por armazenar os 
valores calculados pelo algoritmo e são geralmente os resultados 
esperados para a resolução dos problemas.
Nas equações de segundo grau, por exemplo, as variáveis de saída 
seriam x’ e x’’, ou seja, as raízes da equação.
Variável auxiliares
As variáveis auxiliares são as responsáveis por armazenar os 
valores intermediários da solução de determinados problemas. 
As variáveis de saída 
são as responsáveis 
por armazenar os 
valores calculados 
pelo algoritmo e 
são geralmente 
os resultados 
esperados para 
a resolução dos 
problemas.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
035
Tomando novamente o exemplo das raízes de uma equação de 
segundo grau, a variável auxiliar seria o delta, que tem seu cálculo 
necessário para se obter o valor de cada raiz. 
Identificação das variáveis para os 
algoritmos
Para que os algoritmos possam identificar as variáveis e as utilizarem 
no decorrer da sua execução, é necessário que se realize uma etapa 
que chamamos de declaração de variáveis. A declaração de variáveis 
consiste em definir um nome e o tipo de informação que ela poderá 
armazenar ao longo da execução do algoritmo.
Para que seja possível que o computadoridentifique uma 
variável, há algumas restrições a serem seguidas, conforme 
apresentadas abaixo.
• Seu nome deve ser único e não pode ter outra função já 
predeterminada na linguagem que estamos adotando, 
ou seja, não poderemos ter uma variável chamada 
início, pois vimos que a palavra início já tem uma função 
predeterminada em pseudocódigo.
• Não devemos utilizar espaço entre as letras. 
• Essa restrição se dá pelo fato de o computador não 
conseguir interpretar que palavras separadas podem 
significar uma mesma coisa. Então, se queremos criar 
uma variável para armazenar a data de nascimento de 
uma pessoa, seu nome deverá ser data_nascimento 
ou dataNascimento, pois assim o computador saberá 
interpretá-la. O caractere ‘sublinha’ ou ‘underline’ (_) pode 
ser utilizado para representar o espaço entre as letras, 
apesar de que, no padrão atual de programação, não se 
adota mais o sublinhado, mas sim a letra maiúscula, para 
simbolizar a primeira letra de uma palavra composta, 
conforme pode ser visto no exemplo dataNascimento.
A declaração de 
variáveis consiste em 
definir um nome e o 
tipo de informação 
que ela poderá 
armazenar ao longo 
da execução do 
algoritmo.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
036
• Não iniciar o nome da variável com números. 
• É o caso do exemplo ‘2valor’. Nesse caso, o computador, 
ao entrar em contato com o um número no início de uma 
palavra, ele “entende” que o número deverá ser utilizado 
para fazer cálculo. Então, o correto fica sendo ‘valor2’.
• Não utilizar acentos e caracteres especiais no nome das 
variáveis. 
• Essa restrição se deve a dois motivos: nem todos os 
idiomas possuem acento/caracteres especiais e os que o 
possuem não necessariamente apresentam as mesmas 
características. Logo, os códigos não serão interpretados 
por qualquer computador, em qualquer idioma. 
• Não utilizar símbolos (@, !, &, %, dentre outros) no nome 
das variáveis. 
• Essa restrição se dá pelo fato de grande parte desses 
símbolos já possuir outra função dentro do contexto de 
programação e já ser utilizado para simbolizar alguma 
outra operação.
• Ser sucinto e utilizar nomes coerentes
• Isso simplifica o entendimento do seu algoritmo pelo 
programa de computador. Se o nome das suas variáveis 
remeter ao seu significado, ficará bem mais simples 
compreender a sua utilização. Evite sempre utilizar nomes 
como a, b, c, ci, pois à medida que o seu algoritmo se tornar 
mais complexo, será extremamente difícil identificar o 
objetivo de cada uma das variáveis.
Identificação das variáveis em 
pseudocódigo
Em pseudocódigo, assim como na maioria das linguagens de 
programação, a definição do nome da variável deve respeitar as 
Não utilizar 
símbolos (@, !, &, %, 
dentre outros) no 
nome das variáveis. 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
037
restrições apresentadas no item acima. Além disso, é necessário 
também definir o tipo de informação que cada variável poderá 
armazenar – o que chamamos de ‘tipos de dados’.
Tipos de dados
Os tipos de dados são responsáveis por definir quais valores 
podem ser guardados em uma variável, bem como quais tipos 
de operação poderão ser executados com a variável. Os tipos de 
dados que adotaremos na nossa disciplina são: numérico, lógico e 
literal (ou caractere).
Numéricos
As variáveis pertencentes ao tipo numérico, como o próprio nome 
diz, são responsáveis por guardarem valores numéricos, podendo 
ser valores positivos ou negativos. Os tipos numéricos suportam 
tanto o número com casas decimais (ou fracionários) quanto 
apenas valores inteiros.
Outra informação importante refere-se à língua inglesa: a parte 
decimal é separada da parte inteira por um ponto, e não por uma 
vírgula, como ocorre na nossa língua. Essa informação é importante, 
porque quase a totalidade das linguagens de programação são 
definidas tendo como base a língua inglesa. 
Na hora de resolver determinados problemas, é importante que tenhamos 
a consciência de que o tipo numérico pode ser subdividido em números 
inteiros e números reais. E essa divisão pode ser de grande importância, 
uma vez que determinadas soluções só existem no domínio dos números 
inteiros, como é o caso dos números pares e ímpares.
Os tipos de dados 
são responsáveis 
por definir quais 
valores podem 
ser guardados em 
uma variável, bem 
como quais tipos de 
operação poderão 
ser executados com 
a variável.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
038
Lógicos 
As variáveis pertencentes ao tipo lógico são variáveis que podem 
assumir apenas dois valores (verdadeiro ou falso) e, por serem 
advindos da álgebra de Boole, são também chamados de booleanos. 
Literais ou caracteres
É possível que as variáveis pertencentes ao tipo literal assumam 
valores que podem ser formados por um único caractere ou por uma 
cadeia de caracteres. Para que o computador identifique esse valor, 
ele deverá sempre vir dentro de aspas – em algumas linguagens de 
programação, usam-se aspas duplas, em outras, aspas simples.
Declaração de variáveis em pseudocódigo
O portugol tem uma área reservada para a declaração de todas as 
variáveis necessárias para o algoritmo e, independentemente do 
objetivo (entrada, saída ou auxiliar), todas elas devem ser definidas 
nessa área.
Para indicar ao algoritmo que um conjunto de variáveis será 
declarado, foi definido como palavra reservada (palavra que tem um 
objetivo bem definido na linguagem) a palavra declare.
algoritmo
 Declare nome_variável tipo_variável
 //bloco de comandos do algoritmo
fim_algoritmo.
Como exemplo, utilizaremos o algoritmo computacional 
apresentado na unidade 1, que tem como objetivo indicar a 
quantidade de velas correta a ser comprada para o aniversário de 
Exemplo de declaração de variáveis
Para indicar ao 
algoritmo que um 
conjunto de variáveis 
será declarado, 
foi definido como 
palavra reservada 
(palavra que tem um 
objetivo bem definido 
na linguagem) a 
palavra declare.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
039
uma pessoa. Após a análise e compreensão do problema, vimos 
que, para calcular a quantidade de velas, precisamos saber qual 
idade o aniversariante irá comemorar. E a forma correta de obter 
essa informação é perguntar a ela o seu ano de nascimento e 
considerar o ano de comemoração. Assim teremos duas variáveis 
de entrada: anoNascimento e anoComemoracao. E, como 
resultado ou objetivo, temos a quantidade de velas necessárias, 
que será considerada, em nosso problema, como a variável de 
saída qtdeVelas. Ao analisarmos a solução, percebemos que 
nenhum cálculo intermediário é necessário, ou seja, não teremos 
variáveis auxiliares.
Então, no algoritmo de cálculo de velas para uma comemoração, 
teremos a declaração de três variáveis. É preciso verificar qual tipo de 
informação melhor se adequa aos valores que serão armazenados 
e, a partir disso, concluir que o melhor tipo de dados a ser adotado é 
o tipo numérico, ficando o algoritmo conforme representado abaixo. 
Algoritmo
 Declare anoNascimento, anoComemoracao, qtdeVelas numerico
 //bloco de comandos do algoritmo
fim_algoritmo
Analisando o algoritmo representado acima, podemos perceber 
que, em uma mesma linha, é possível realizar a declaração de mais 
de uma variável. A única restrição é que todas elas pertencerão a 
um mesmo tipo – o que, no caso do exemplo, é o tipo numérico. 
Outra informação importante é que, para ser possível a declaração 
de mais de uma variável, o nome de cada uma deverá ser separado 
por vírgula, conforme já exemplificado aqui. 
Declaração de variáveis doalgoritmo de cálculo de quantidade de velas para uma 
comemoração de aniversário
É preciso verificar 
qual tipo de 
informação melhor 
se adequa aos 
valores que serão 
armazenados e, a 
partir disso, concluir 
que o melhor tipo de 
dados a ser adotado 
é o tipo numérico.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
040
Operador de atribuição de valor a 
uma variável
A operação de valor atribuída diretamente a uma variável é feita 
por um operador denominado ‘operador de atribuição’, sendo 
representada pelo símbolo ←. 
Em várias linguagens de programação, o símbolo adotado pelo 
operador de atribuição é o =. E para não confundirmos com seu uso 
na matemática, normalmente lemos a utilização desse operador 
como ‘recebe’, conforme será representado nos exemplos abaixo.
Exemplos de atribuição de valores 
a variáveis
1. Algoritmo
2. Declare anoNascimento, anoComemoracao, qtdeVelas numerico
3. anoNascimento ←1996
4. anoComemoracao ← 2016
5. qtdeVelas ← anoComemoracao - anoNascimento 
6. fim_algoritmo
Se analisarmos o algoritmo acima, perceberemos que:
• na linha 3, estamos atribuindo à variável anoNacimento o 
valor 1996; 
• na linha 4, estamos atribuindo à variável anoComemoracao 
o valor 2016;
• na linha 5, estamos atribuindo à variável qtdeVelas 
o resultado da expressão anoComemoracao - 
anoNascimento, que, no exemplo acima, será o mesmo 
que atribuir 2016 - 1996, cujo resultado será 20, ou 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
041
seja, dentro da variável qtdeVelas teremos o valor 
20 armazenado;
• este algoritmo possui um problema: ele sempre calcula 
os mesmo valores, e isso quer dizer que ele não se propõe 
a resolver um grupo de problemas, mas apenas uma 
situação, que é a quantidade de velas a comprar no ano de 
2016 para uma pessoa que nasceu em 1996.
Identificação das variáveis em fluxograma
No fluxograma, diferentemente do pseudocódigo, não é necessário 
realizar a declaração de variáveis, porém, a representação da atribuição 
de valores a variáveis é possível, e deverá ser feita no símbolo que 
equivale ao processamento, conforme representado abaixo.
Início
Fim
anoNascimento ← 1996
anoComemoracao ← 2016
qtdeVelas ← anoComemoracao - anoNascimento
Fluxograma com atribuição de valores a variáveis
Analisando a imagem abaixo, que representa as fases de um algoritmo, 
vemos que o usuário é o responsável pela entrada de dados no 
programa, a partir do qual se realiza o processamento e a exibição do 
resultado no computador, cumprindo assim o ciclo de um algoritmo.
Comandos de 
entrada e saída
O usuário é o 
responsável pela 
entrada de dados no 
programa, a partir 
do qual se realiza o 
processamento e a 
exibição do resultado 
no computador, 
cumprindo assim 
o ciclo de um 
algoritmo.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
042
FIGURA 3 - Fases de um algoritmo
Fonte: Núcleo de Educação a Distância (NEaD), Una, 2016.
Se relacionarmos o algoritmo apresentado anteriormente, 
que calculava a quantidade de velas a ser utilizada em uma 
comemoração de aniversário, com a figura acima, perceberemos 
que, para corrigir o problema de calcular a quantidade de velas para 
qualquer situação, basta ter uma instrução que permita ao usuário 
informar os valores das variáveis de entrada e outra instrução que 
nos permite exibir o resultado no computador. Tais instruções são 
chamadas de comandos de entrada e saída.
Comando de entrada
O comando de entrada é utilizado para que o usuário possa 
digitar um valor que será diretamente armazenado em uma 
variável de entrada. Essa instrução é representada em portugol 
pela instrução LEIA.
A sintaxe de utilização da instrução LEIA é:
LEIA anoNascimento
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
043
Essa instrução permitirá ao usuário digitar um valor, que será 
armazenado na variável anoNascimento.
Comando de saída
O comando de saída é utilizado para que o algoritmo possa exibir o 
conteúdo de uma variável ou um texto na tela do computador. Essa 
instrução é representada em portugol pela instrução ESCREVA.
A sintaxe de utilização da instrução ESCREVA é:
ESCREVA anoNascimento
Essa instrução permitirá ao algoritmo exibir na tela do computador 
o valor que está armazenado na variável anoNascimento.
ESCREVA “Ano de nascimento é: ” = anoNascimento
Essa instrução permitirá ao algoritmo exibir na tela do computador 
o texto “Ano de nascimento é:” acompanhado do valor que está 
armazenado na variável anoNascimento.
Exemplo de algoritmo utilizando 
comandos de entrada e saída
1. Algoritmo
2. Declare anoNascimento, anoComemoracao, qtdeVelas numerico
3. LEIA anoNascimento
4. LEIA anoComemoracao
5. qtdeVelas ← anoComemoracao - anoNascimento 
6. ESCREVA “Velas necessárias: ”, qtdeVelas
7. fim_algoritmo
Exemplo de algoritmo utilizando comandos de entrada e saída.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
044
Se analisarmos o algoritmo acima, perceberemos que na:
• linha 3, estamos atribuindo à variável anoNascimento o 
valor que será informado pelo usuário;
• linha 4, estamos atribuindo à variável anoComemoracao 
o valor que será informado pelo usuário, ou seja, a cada 
utilização, o usuário poderá informar diferentes valores, 
fazendo assim com que o programa possa atender a uma 
infinidade de comemorações diferentes; 
• linha 5, estamos atribuindo à variável qtdeVelas o resultado 
da expressão anoComemoracao - anoNascimento, que será 
calculado de acordo com os valores informados pelo usuário;
• linha 6, estamos exibindo os resultados na tela do 
computador para que o usuário possa conhecer o resultado 
e assim atingir o seu objetivo ao utilizar o programa.
Exemplo de fluxograma utilizando 
comandos de entrada e saída
No fluxograma, existem símbolos específicos para a entrada e a 
saída de dados e que podem variar conforme o padrão adotado.
Os símbolos mais comumente utilizados para a entrada de dados é 
o símbolo de dados ou o símbolo de entrada manual: 
ou
Símbolos adotados para entrada de dados no fluxograma
Os símbolos mais comumente utilizados para a saída de dados é o 
símbolo de dados ou o símbolo de documento ou o símbolo de exibir:
No fluxograma, 
existem símbolos 
específicos para a 
entrada e a saída de 
dados e que podem 
variar conforme o 
padrão adotado.
ou ou
Símbolos adotados para s saída de dados no fluxograma
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
045
Fluxograma de cálculo de velas para uma comemoração
Fluxograma de cálculo de velas para uma comemoração
E o exemplo do algoritmo para cálculo de quantidade de velas 
para uma comemoração é representado no fluxograma abaixo.
Início
Fim
qtdeVelas ← anoComemoracao - anoNascimento
anoNascimento
anoComemoracao
qtdeVelas
Início
Fim
qtdeVelas
anoComemoracao
anoNascimento
qtdeVelas ← anoComemoracao - anoNascimento
Outro exemplo de fluxograma, utilizando outro grupo de símbolos 
de representação, é apresentado abaixo:
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
046
Os operadores aritméticos representam as operações aritméticas 
básicas de soma, subtração, multiplicação e divisão.
Os operadores podem ser utilizados apenas com operandos 
numéricos. Tais operandos podem ser tanto constantes numéricas 
quanto variáveis do tipo numérico.
Operadores aritméticos
Os símbolos adotados para representar os operadores são:
Operadores 
aritméticos
+
*
-
/
Soma
Multiplicação
Subtração
Quociente da divisão
SÍMBOLO OPERAÇÃO
Expressões aritméticas
As expressões formadas por operadores aritméticossão 
chamadas ‘expressões aritméticas’, devendo possuir seus 
operandos numéricos e produzir um resultado também numérico. 
São comumente utilizadas ao serem combinadas com uma 
operação de atribuição de valor a uma variável, pois, se solicitamos 
ao computador que realize a resolução de uma expressão 
aritmética apenas, ele realiza o cálculo, porém não armazena o 
resultado produzido.
As expressões 
formadas por 
operadores 
aritméticos 
são chamadas 
‘expressões 
aritméticas’, 
devendo possuir 
seus operandos 
numéricos e 
produzir um 
resultado também 
numérico. 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
047
Linearização de expressões 
Para a correta execução da expressão pelo computador, todas as 
expressões aritméticas devem ser linearizadas, ou seja, colocadas 
em linha. Além disso, os operadores aritméticos tradicionais devem 
ser substituídos pelos seus correspondentes para os símbolos 
computacionais, conforme o exemplo abaixo.
Tradicional
2 + (5-3) + 1 =
3
Computacional
(2/3 + (5-3)) + 1 =
Linearização de expressões, Costa 1998
Expressões aritméticas em 
fluxogramas
As expressões aritméticas são representadas no fluxograma pelo 
símbolo de processo ou pelo símbolo de processo predefinido, 
conforme apresentado abaixo – já tendo sido utilizado no exemplo 
dado de cálculo de quantidade de velas.
ou
Símbolo adotado para representar expressões aritméticas
Dentro do símbolo representado, devemos sempre colocar a 
expressão aritmética que ele representa, pois o símbolo, por si só, 
possui um significado completo.
As expressões 
aritméticas são 
representadas 
no fluxograma 
pelo símbolo de 
processo ou pelo 
símbolo de processo 
predefinido.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
048
Os operadores relacionais e os operadores lógicos são responsáveis 
por realizarem as condições lógicas necessárias para a construção 
de uma solução algorítmica. 
Operadores relacionais
Os operadores relacionais são responsáveis por realizar 
comparação entre valores numéricos e também já são familiares no 
estudo da matemática.
Em pseudocódigo, os operadores relacionais são representados 
pelos símbolos apresentados abaixo.
Operadores 
relacionais e 
operadores lógicos
>
>=
=
<
<=
<>
Maior que
Maior ou igual a
Igual a 
Menor que
Menor ou igual a
Diferente de
SÍMBOLO OPERAÇÃO
O erro mais comum que cometemos é confundir o oposto dos 
operadores maior que ( > ) ou do operador menor que ( < ). 
Normalmente pensamos que o oposto do sinal maior que ( > ) é o 
sinal menor que ( < ), porém o correto é ter outro tipo de raciocínio: 
quando dizemos que queremos tudo que não é maior do que 5, 
estamos falando que queremos todos os item que possuem valores 
Os operadores 
relacionais e os 
operadores lógicos 
são responsáveis 
por realizarem as 
condições lógicas 
necessárias para a 
construção de uma 
solução algorítmica. 
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
049
que são menores do que 5 e todos os itens que possuem valores 
iguais a 5. Ou seja, o contrário do operador maior que ( > ) em 
portugol é menor ou igual a ( <= ), e o contrário do operador menor 
que ( < ) em portugol é maior ou igual a ( >= ).
Expressões relacionais
As expressões relacionais possuem operandos numéricos e 
operadores relacionais e produzem resultados lógicos (verdadeiro 
ou falso).
Operadores lógicos ou booleanos
Os operadores lógicos ou booleanos são responsáveis por realizar 
a comparação entre valores lógicos e já nos foram apresentados na 
unidade 1 desta disciplina.
Em pseudocódigo, os operadores lógicos são representados pelos 
símbolos apresentados abaixo.
E
NÃO
OU
Retorna verdadeiro, se ambos os operandos 
forem verdadeiros.
Retorna verdadeiro se, pelo menos, um dos 
operandos forem verdadeiros.
Retorna verdadeiro, se o operando for falso e 
retorna falso, se o operando for verdadeiro.
SÍMBOLO OPERAÇÃO
Expressões lógicas ou booleanas
As expressões lógicas possuem operandos lógicos, operadores 
lógicos e produzem resultados lógicos (verdadeiro ou falso), 
sendo frequentemente utilizadas para combinarem duas ou mais 
expressões relacionais.
As expressões 
lógicas possuem 
operandos lógicos, 
operadores lógicos e 
produzem resultados 
lógicos (verdadeiro 
ou falso), sendo 
frequentemente 
utilizadas para 
combinarem duas 
ou mais expressões 
relacionais.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
050
Tabela-verdade
V
F
V
F
V
V
F
F
V
F
F
F
V
V
V
F
F
V
F
V
F
F
V
V
var1 var2 var2 E var2 NÃO (var1)var1 OU var2 NÃO(var2)
Expressões relacionais e expressões 
lógicas em fluxogramas
As expressões relacionais e as expressões lógicas são 
representadas no fluxograma pelo símbolo de condicional ou 
decisão, conforme apresentado abaixo.
Símbolo adotado para representar expressões relacionais e expressões lógicas
Dentro do símbolo representado, devemos sempre colocar a 
expressão relacional ou lógica que ele representa, pois o símbolo, 
por si só, possui um significado completo.
Uma característica peculiar desse símbolo é o fato de ele ser o único, 
em fluxograma, que nos permite dividir o caminho de execução do 
fluxo em duas possibilidades: um para as situações nas quais o 
resultado da análise de expressão dê o resultado verdadeiro e outro 
para situações nas quais o resultado da análise da expressão dê o 
resultado falso.
As expressões 
relacionais e as 
expressões lógicas 
são representadas 
no fluxograma 
pelo símbolo de 
condicional ou 
decisão.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
051
Independentemente de a expressão ser aritmética ou lógica, o 
computador sempre irá analisá-la da esquerda para a direita, assim 
como fazemos com a solução de problemas matemáticos. Porém, em 
alguns casos, é necessário que mudemos a ordem de solução dessa 
expressão, para que tenhamos o resultado esperado. Essa mudança 
na ordem de solução é chamada de prioridade e, assim como na 
matemática, aqui também temos o operador que nos permitirá fazer 
essa alteração.
Na matemática, os operadores de modificação de prioridade são 
as chaves “{ }”, os colchetes “[ ]” e os parênteses “( )”. No portugol, só 
adotamos os parênteses como operador de prioridade, porém, diferente 
da matemática, no portugol é permitido utilizar um par de abre e 
fecha parênteses dentro de outro par de abre e fecha parênteses, na 
quantidade que for necessária para resolver a expressão.
A programação de problemas complexos consiste na divisão do problema 
em partes menores e específicas, tornando a escrita e o entendimento 
do algoritmo mais simples e fáceis de serem realizados e facilitando a 
possibilidade de reutilizar soluções já construídas anteriormente.
A cada uma dessas partes que dividimos e construímos, chamamos de 
sub-rotinas em portugol e procedimento, função ou método em outras 
linguagens de programação.
Construção e análise 
de expressões
Modularização 
e construção de 
sub-rotinas
No portugol, 
só adotamos 
os parênteses 
como operador 
de prioridade, 
porém, diferente 
da matemática, no 
portugol é permitido 
utilizar um par 
de abre e fecha 
parênteses dentro 
de outro par de abre 
e fecha parênteses, 
na quantidade que 
for necessária para 
resolver a expressão.
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 
unidade 2
052
Quanto menor for a tarefa que conseguirmos transformar em sub-
rotinas, mais eficiente será o seu reuso em programas futuros, e maior 
será a independência desse módulo na solução do problema.
Criação

Outros materiais