Buscar

Lógica de Programação - Unidade 1 - Introdução à Computação e aos Algoritmos

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 44 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 44 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 44 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

Introdução à Computação e aos 
Algoritmos
Lógica de 
Programação 
Diretor Executivo 
DAVID LIRA STEPHEN BARROS
Gerente Editorial 
CRISTIANE SILVEIRA CESAR DE OLIVEIRA
Projeto Gráfico 
TIAGO DA ROCHA
Autoria 
IZABELLY MORAIS DE MORAIS
LEANDRO C. CARDOSO
MAX ANDRÉ DE AZEVÊDO SILVA
AUTORIA
Izabelly Morais de Morais
Sou licenciada em Ciência da Computação pela Universidade Federal da 
Paraíba (UFPB), e mestre em Ciência da Computação com ênfase em Engenharia 
de Software e Linguagens de Programação pela Universidade Federal de 
Pernambuco (UFPE). Leciono como professora formadora no Instituto Federal de 
Pernambuco (IFPE) e na Faculdade Pitágoras (João Pessoa, na Paraíba), onde tenho 
a oportunidade de transmitir minha experiência na área de Tecnologia e Educação. 
Por isso fui convidada pela Editora Telesapiens a integrar seu elenco de autores 
independentes. Estou muito feliz em poder ajudar você nesta fase de muito estudo 
e trabalho. Conte comigo!
Leandro C. Cardoso 
Sou graduado em Comunicação Social com habilitação em Design Digital, e 
mestre em Tecnologias da Inteligência e Design Digital pela Pontifícia Universidade 
Católica de São Paulo (PUC-SP), com mais de 20 anos de experiência em direção 
de arte e criação. Passei por empresas como a Laureate International Universities 
– FMU/Fiam-Faam, a Universidade Anhembi Morumbi e o Centro Paula Souza 
(Fatec-Etec). Já atuei como analista de desenvolvimento pedagógico sênior, 
coordenador de curso técnico de Design Gráfico e revisor técnico e validador para 
curso EAD para clientes Laureate International Universities, DeVry Brasil, Unef, 
FAESF, Faculdade Positivo, Uninter e Platos Soluções Educacionais S.A. (Krotonn – 
Universidade Anhanguera). Além disso, sou autor de mais de 24 livros didáticos e 
um dos organizadores da Maratona de Criação e Design do Curso de Comunicação 
Visual da Etec Albert Einstein. Sou apaixonado pelo que faço e adoro transmitir 
minha experiência de vida àqueles que estão iniciando em suas profissões. Por 
isso fui convidado pela Editora Telesapiens a integrar seu elenco de autores 
independentes. Estou muito feliz em poder ajudar você nesta fase de muito estudo 
e trabalho. Conte comigo!
Max André de Azevêdo Silva
Sou formado em Ciência da Computação, pela Universidade Federal da 
Paraíba (UFPB), e mestre em Ciência da Computação com ênfase em Engenharia de 
Software pela Universidade Federal da Paraíba (UFPB). Tenho experiência na área 
de Desenvolvimento de Sistemas Web, Mobile e Jogos Eletrônicos. Atualmente, 
trabalho como analista de sistemas. Por isso fui convidado pela Editora Telesapiens 
a integrar seu elenco de autores independentes. Estou muito feliz em poder ajudar 
você nesta fase de muito estudo e trabalho. Conte comigo!
ICONOGRÁFICOS
Olá. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez 
que:
OBJETIVO:
para o início do 
desenvolvimento de 
uma nova compe-
tência;
DEFINIÇÃO:
houver necessidade 
de se apresentar um 
novo conceito;
NOTA:
quando forem 
necessários obser-
vações ou comple-
mentações para o 
seu conhecimento;
IMPORTANTE:
as observações 
escritas tiveram que 
ser priorizadas para 
você;
EXPLICANDO 
MELHOR: 
algo precisa ser 
melhor explicado ou 
detalhado;
VOCÊ SABIA?
curiosidades e 
indagações lúdicas 
sobre o tema em 
estudo, se forem 
necessárias;
SAIBA MAIS: 
textos, referências 
bibliográficas e links 
para aprofundamen-
to do seu conheci-
mento;
REFLITA:
se houver a neces-
sidade de chamar a 
atenção sobre algo 
a ser refletido ou dis-
cutido sobre;
ACESSE: 
se for preciso aces-
sar um ou mais sites 
para fazer download, 
assistir vídeos, ler 
textos, ouvir podcast;
RESUMINDO:
quando for preciso 
se fazer um resumo 
acumulativo das últi-
mas abordagens;
ATIVIDADES: 
quando alguma 
atividade de au-
toaprendizagem for 
aplicada;
TESTANDO:
quando o desen-
volvimento de uma 
competência for 
concluído e questões 
forem explicadas;
SUMÁRIO
Introdução à Computação ...................................................................... 10
O Ábaco, Ossos de Napier e Auxílio Mecânico para os Cálculos................ 10
Gerações dos Computadores e Evolução dos Recursos 
Computacionais ................................................................................................................................ 14
Linguagens de Programação ................................................................. 18
Conceitos Fundamentais ........................................................................................................... 18
Classificação das Linguagens de Programação ......................................................22
Infraestrutura dos Sistemas Computacionais ................................26
Unidade Central de Processamento (CPU) ..................................................................26
Dispositivos de Entrada e Saída ......................................................................................... 30
Infraestrutura de Software ........................................................................................................33
Introdução à Lógica de Programação Algorítmica ....................... 35
O que é Lógica? ...............................................................................................................................35
Algoritmos Computacionais ....................................................................................................37
7
UNIDADE
01
Lógica de Programação 
8
INTRODUÇÃO
Você sabia que compreender a área da Ciência da Computação, 
sobretudo no que concerne a softwares e programação de computadores, 
é fundamental para começar o entendimento da lógica de programação? 
Isso mesmo. Conhecer a história e entender os conceitos relacionados à 
Ciência da Computação é vital para o desenvolvimento das competências 
de programação de computadores. Ao longo desta primeira etapa de 
estudos, iremos desbravar todo esse conhecimento. Entendeu? Ao longo 
desta unidade letiva você vai mergulhar neste universo!
Lógica de Programação 
9
OBJETIVOS
Olá. Seja muito bem-vindo à Unidade 1. Nosso objetivo é auxiliar 
você no desenvolvimento das seguintes competências profissionais até o 
término desta etapa de estudos:
1. Entender a história dos computadores e a evolução dos recursos 
computacionais.
2. Compreender o funcionamento e os vários paradigmas das 
linguagens de programação.
3. Identificar e compreender a infraestrutura dos sistemas 
computacionais, discernindo sobre hardware, software e 
peopleware.
4. Definir e entender o conceito e as funcionalidades da lógica de 
programação e algoritmos computacionais.
Lógica de Programação 
10
Introdução à Computação
OBJETIVO:
Ao término deste Capítulo você será capaz de conhecer 
a história dos computadores e a evolução dos recursos 
computacionais. Isso será fundamental para o exercício 
de sua profissão. E então? Motivado para desenvolver esta 
competência? Então vamos lá. Avante!.
O Ábaco, Ossos de Napier e Auxílio 
Mecânico para os Cálculos
O ábaco foi um dos primeiros instrumentos desenvolvidos para 
auxiliar os humanos na realização de cálculos, muitos atribuem sua 
criação à China, mas existem evidências dele na Babilônia do ano 300 a.C. 
(MORAIS; AZEVEDO, 2017b). O próprio nome “computador” está associado 
ao termo “contar”. E era isso que o ábaco fazia: ajudava as pessoas a 
mecanizar o processo da contagem numérica, realizando as operações 
de soma e subtração de maneira bastante visual e intuitiva (MORAIS; 
AZEVEDO, 2017b), como podemos observar na Figura 1.
Figura 1 – O ábaco ajudava a mecanizar o processo da contagem numérica
Fonte: Freepik
Lógica de Programação 
11
Em 1617, John Napier construiu um dispositivo simples e barato para 
auxiliar os cálculos matemáticos, este ficou conhecido como “Ossos de 
Napier” ou “Bastões de Napier”. Em 1642, o francês Blaise Pascal, aos 19 
anos, criou a primeira calculadora mecânica do mundo, e essedispositivo 
ficou conhecido como “As rodas dentadas de Pascal” ou “Pascaline” 
(MORAIS; AZEVEDO, 2017b).
Figura 2 – A primeira calculadora mecânica do mundo
Fonte: Wikimedia commons
O mecanismo de funcionamento da Pascaline é o mesmo utilizado 
nos odômetros de carros, nos quais as engrenagens são organizadas de 
tal forma a simular o “vai um” para a próxima casa decimal nas operações 
de adição. Em 1801, Joseph-Marie Jacquard construiu a máquina de tecer 
com cartões perfurados. Joseph era um costureiro que trabalhava com 
desenhos em tecidos. No entanto, esse processo era demorado e isso o 
levou a construir uma máquina para fazer os desenhos nos tecidos. Esse 
mecanismo ficou conhecido como “tear programável”, pois, por meio 
das instruções contidas nos cartões perfurados, a máquina cortava e 
desenhava em tecidos. 
Em 1820, Charles Babbage (matemático inglês), preocupado com 
os erros contidos nas tabelas matemáticas de sua época, construiu 
um modelo para calcular tabelas de funções (logaritmos, funções 
trigonométricas etc.), sem a intervenção de um operador humano. Nascia, 
então, a máquina diferencial de Babbage. Babbage projetou essa máquina 
para ser composta por diversos discos giratórios operados por manivelas. 
Em 1823, o governo britânico concordou em financiar a construção da 
máquina de Charles Babbage (MORAIS; AZEVEDO, 2017b). 
Lógica de Programação 
12
Figura 3 – Máquina diferencial de Babbage
Fonte: Wikimedia commons
Todavia, as ferramentas da época não eram suficientemente 
sofisticadas para construir a máquina. Babbage, então, gastou tempo 
construindo ferramentas e, por diversas vezes, a construção da máquina 
parou por falta de fundos.
SAIBA MAIS:
Veja o vídeo a seguir para saber mais sobre Babbage e suas 
criações. Para acessar, clique aqui.
Em 1833, Babbage abandonou a ideia da máquina diferencial e 
iniciou um trabalho em seu novo projeto, conhecido como máquina 
analítica de Babbage. Essa máquina podia ser programada por meio de 
cartões perfurados e calculava funções diferentes. Porém, a tecnologia 
Lógica de Programação 
https://www.youtube.com/watch?v=s8IKAJxl75U
13
pouco avançada da época não possibilitou que a máquina fosse 
concluída e, somente um século depois, suas ideias foram postas em 
prática. Para muitos, Charles Babbage é considerado o verdadeiro “pai” 
da Computação. Em 1880, os dados do censo demográfico dos Estados 
Unidos, que ocorria a cada 10 anos, levaram quase 8 anos para serem 
processados. Dessa forma surgiu uma preocupação quanto ao tempo 
necessário para processar os dados de 1890. Então, Herman Hollerith 
(estatístico) foi designado pela Agência Estatística dos Estados Unidos 
para desenvolver uma técnica de aceleração do processamento dos 
dados daquele censo. Hollerith utilizou a ideia de Jackard e desenvolveu 
a perfuradora de cartões, modo pelo qual os dados eram perfurados em 
cartões, que podiam ser classificados por meio de pinos passando pelos 
furos (MORAIS; AZEVEDO, 2017b).
A máquina de Hollerith era tão veloz que uma simples contagem 
ficava pronta em seis semanas e, uma análise estatística completa, em 
dois anos e meio. A população aumentara em cerca de 13 milhões de 
pessoas durante a década anterior, até um total de 62.622.250 habitantes. 
Mesmo assim, a tabulação do censo de 1890 demorou, aproximadamente, 
um terço do tempo gasto por seu predecessor. A máquina de Hollerith 
ficou mundialmente conhecida, tendo sido utilizada por vários países 
em diversos segmentos de mercado. Assim, Hollerith montou uma 
empresa chamada International Business Machines Corporation, mais 
popularmente conhecida como IBM, uma marca forte e atuante até os 
dias de hoje (MORAIS; AZEVEDO, 2017b).
Lógica de Programação 
14
Gerações dos Computadores e Evolução 
dos Recursos Computacionais
A primeira geração dos computadores (1946-1954) é marcada 
pela utilização de válvulas. A válvula era um tubo de vidro, similar a uma 
lâmpada, que aquecia bastante e costumava queimar com facilidade. O 
armazenamento dos dados desses computadores era feito, inicialmente, 
através de cartões perfurados. Posteriormente, esse armazenamento 
passou a ser feito por meio de fitas magnéticas. Esses computadores 
eram máquinas extremamente grandes, chegando a ocupar áreas da 
ordem de 180 m². Outra característica desses computadores era que, 
para programá-los, costumava-se levar muito tempo. Desde o primeiro 
computador eletrônico inventado, o processo evolutivo daquelas máquinas 
foi célere e intenso. Após a primeira geração, houve muitas outras até 
que chegássemos às atuais máquinas em uso. Farias e Medeiros (2013), 
trazem os principais acontecimentos, conforme as respectivas décadas. 
A segunda geração (1952-1964) foi marcada pela substituição da válvula 
pelo transistor, que eram menores que as válvulas a vácuo e tinham outras 
vantagens: não exigiam tempo de pré-aquecimento, consumiam menos 
energia, geravam menos calor e eram mais rápidos e confiáveis (MORAIS; 
AZEVEDO, 2017b).
A terceira geração (1964-1977) foi marcada pela utilização dos 
circuitos integrados, feitos de silício. Essa geração se caracterizou pelo 
advento dos microchips. Seu processo de fabricação possibilitava a 
construção de vários circuitos simultaneamente, facilitando a produção 
em massa. A quarta geração (1977-1991) é caracterizada pelo surgimento 
dos microprocessadores – unidade central de processamento. Sistemas 
operacionais como MS-DOS, Unix e CP/M eram os utilizados à época. 
Linguagens de programação orientadas a objeto como C++ e Smalltalk 
foram desenvolvidas e discos rígidos eram utilizados como memória 
secundária. As impressoras matriciais e os teclados com layouts atuais 
foram criados nessa época. A quinta geração é iniciada no ano de 1991. Os 
computadores da quinta geração usam processadores com milhões de 
circuitos integrados, essa geração é marcada pela Inteligência Artificial e 
sua conectividade (MORAIS; AZEVEDO, 2017b).
Lógica de Programação 
15
Em relação à evolução dos recursos computacionais, é evidente 
que ao armazenarmos algo, esse algo pode ser quantificado, por 
exemplo, podemos armazenar água em um reservatório e, para sabermos 
a quantidade armazenada, podemos nos basear no seu volume. Este é 
medido em litros (l) ou metros cúbicos (m3). No mundo da Informática, 
os dados são transmitidos e armazenados, portando, também podem ser 
quantificados e mensurados em unidades de medida. Os computadores 
trabalham com diversas unidades de medidas, então, vamos esclarecer 
algumas das mais importantes, começando pelo fato que consegue 
mensurar a capacidade de armazenamento de dados (MORAIS; AZEVEDO, 
2017b).
O computador armazena dados em sua memória, reservando um 
pequeno espaço denominado “byte”. Cada byte consegue representar um 
pequeno fragmento de dado, que podemos chamar de “caractere”. Este 
pode ser um algarismo de 0 a 9, uma letra do alfabeto de A a Z, ou um 
símbolo especial, como &, @, - etc. Um byte, ou um conjunto deles, pode, 
ainda, representar um ponto luminoso na tela do computador ou uma 
nota musical que compõe uma canção armazenada em sua memória 
(MORAIS; AZEVEDO, 2017b).
VOCÊ SABIA?
Um byte pode, ainda, ser subdividido em fragmentos 
menores. Um byte é, na realidade, uma combinação de 8 
bits. Estes são sinais binários, representados pelos números 
0 e 1. Cada bit, portanto, pode equivaler a zero ou a um. 
Internamente, esses sinais binários são simulados pela 
presença ou ausência de corrente elétrica dentro do chip.
Agora que você entendeu o que são bits e bytes, observe o quadro 
1, que mostra as diferentes unidades de medida de armazenamento de 
um computador, em bytes.
Lógica de Programação 
16
Quadro 1 – Unidades de medida de armazenamento de dados
Fonte: Morais e Azevedo (2017a).
Outra medida importante para os computadores diz respeito à 
velocidade de processamento, chamada de megahertz. Um megahertz,ou MHz, equivale a 1 milhão de ciclos por segundo, ou seja, 106 (10 elevado 
à sexta potência), diferentemente de megabyte, que, como vimos, utiliza 
outro tipo de potenciação: a de base dois (210 = 1.024).
Quadro 2 – Unidades de medida de velocidade de processamento
Fonte: Morais e Azevedo (2017a).
Lógica de Programação 
17
Um termo comumente utilizado no mercado de informática é 
“Clock”. Ao adquirir um computador, você pode se referir à sua velocidade 
de processamento usando esse termo, que significa, na realidade, 
a frequência com que o processador pergunta para a placa-mãe 
(motherboard) se há alguma instrução a ser processada.
RESUMINDO:
E então? Gostou do que lhe mostramos? Aprendeu mesmo 
tudinho? Agora, só para termos certeza de que você 
realmente entendeu o tema de estudo deste Capítulo, vamos 
resumir tudo o que vimos. Você deve ter aprendido que a 
Informática nasceu da ideia de auxiliar o homem nos trabalhos 
rotineiros e repetitivos, geralmente, ligados à área de Cálculo 
e Gerenciamento. Desse modo, conhecer a história dos 
computadores é importante, pois é por meio do estudo do 
passado que podemos compreender e valorizar o presente. 
A história dos computadores está relacionada ao ábaco e aos 
Ossos de Napier, além dos métodos de auxílio mecânico para 
os cálculos. A primeira geração dos computadores se deu no 
período de 1946 a 1954; a segunda geração no período de 
1952 a 1964; a terceira geração no período de 1964 a 1977; a 
quarta geração de 1977 a 1991; e a quinta geração foi iniciada 
no ano de 1991. Além disso, importante conhecer a evolução 
dos recursos computacionais, nos quais estão relacionados 
a unidade de armazenamento de dados e a unidade de 
velocidade de processamento. 
Lógica de Programação 
18
Linguagens de Programação
OBJETIVO:
Ao término deste Capítulo você será capaz de entender o 
funcionamento e os vários paradigmas das linguagens de 
programação. Isso será fundamental para o exercício de 
sua profissão. E então? Motivado para desenvolver esta 
competência? Então vamos lá. Avante!.
Conceitos Fundamentais
É importante entender que o computador é dividido em duas partes 
bem distintas: o hardware e o software. O hardware é tudo o que é físico no 
computador, como teclado, monitor, mouse etc. Já o software diz respeito 
a tudo que não se pode “tocar”, como programas (aplicativos) e dados. É 
com foco no software que iremos discorrer sobre os temas ao longo desta 
aula, para que você possa entender exatamente o que são e para que 
servem programas, dados e linguagens de programação (SOUSA, 2014).
Você sabe o que é um programa? Não estamos nos referindo ao 
seu programa de final de semana – esse você certamente conhece bem. 
Estamos nos referindo aos programas de computadores, que realizam 
todas as tarefas que estamos acostumados a ver, como processar dados, 
imprimir informações, fazer a leitura de uma imagem por meio de um 
scanner etc. Enfim, toda e qualquer operação que solicitamos que sejam 
executadas, até aquelas que são feitas por iniciativa própria do computador. 
Mas, espera aí! Quem está por traz de tudo o que o computador faz? 
Somos nós? Ou há mais alguém? A resposta para essa pergunta é dúbia: 
somos nós, sim, mas por meio dos programas que escrevemos para eles, 
que são como cartas escritas para orientá-los a executar procedimentos 
(comandos ou instruções) (MORAIS; AZEVEDO, 2017a).
Lógica de Programação 
19
Figura 4 – Um programa de computador realiza as tarefas como processar dados e imprimir 
informações
Fonte: Freepik
Programas são conjuntos de instruções, ordenadas logicamente, 
com vistas à realização de um ou mais procedimentos, que podem ser 
executados por meio de um comando ou de outro programa. Podemos 
ampliar ainda mais esse conceito, pensando em termos do software 
como um todo. Você sabe qual a é diferença entre programa e software? 
Podemos entender um programa como um software, mas nem todo 
software é um programa. Software é tudo aquilo que não se toca em um 
sistema computacional, logo, os dados e as informações também devem 
ser considerados como software, pois nelas também não podemos tocar. 
Agora, podemos não só ampliar o conceito de software, como lançar mais 
algumas definições, como as de dados que são conjuntos de fragmentos 
de informações que, processados por um programa, transformam-se 
em informações. Informações que são conjuntos de dados capazes de 
mudar o estado de conhecimento de alguém sobre algo, podendo ser 
exteriorizada em várias mídias distintas, como relatórios de papel, textos 
exibidos em monitores de vídeo, gráficos, sons, objetos em 3D etc. Já as 
instruções são comandos escritos em um programa, executados apenas 
quando esse programa é submetido a um comando ou outro programa. 
Em relação ao conceito de software, também é importante conhecer a 
definições de comandos.
Lógica de Programação 
20
DEFINIÇÃO:
Comandos são palavras imperativas (verbos) que ordenam 
um processamento específico por parte do computador, 
como um procedimento ou a execução de um programa. 
Os comandos, assim como as instruções de um programa, são 
escritos de acordo com uma sintaxe (regra gramatical) que deve ser 
compreendida pelo sistema operacional, pelo compilador ou pelo 
interpretador de programas. Cabe aos sistemas operacionais compreender 
a sintaxe dos comandos. Por exemplo, o Windows reconhece o comando 
“DIR”, que ordena a exibição do conteúdo de uma pasta em um disco 
rígido, ou em outro dispositivo de memória auxiliar qualquer. A Figura 
5 mostra claramente como um comando é digitado, submetido ao 
computador e, como consequência, as informações são devolvidas após 
o processamento dos dados.
Figura 5 – Prompt de comando do Windows executando o comando “DIR”
Fonte: Elaborado pelo autor (2021).
Lógica de Programação 
21
Para testar o comando “DIR” do sistema operacional Windows, 
clique na ferramenta de pesquisa da barra de tarefas e digite “PROMPT”. 
Isso fará aparecer a opção “Prompt de comando” no menu, basta clicar 
em cima dela. Dizemos, então, que o comando “DIR” é escrito em uma 
linguagem que o Windows entende, mas, e quanto ao programa que 
é executado pelo comando “DIR”? Ele existe. Afinal, não é tão simples 
assim ler todas as informações de uma pasta em um disco e exibi-la 
na tela do computador com todos aqueles detalhes e formatos. Para 
isso, uma sequência de outros comandos é executada internamente, e 
a essa sequência damos o nome de “programa”. Então, assim como o 
comando “DIR”, todos os outros comandos são, na realidade, programas 
que executam uma série de procedimentos conforme as instruções neles 
previamente programadas. Para tanto, essas instruções também têm que 
obedecer uma sintaxe. Pronto! Chegamos à definição de “linguagem de 
programação”.
DEFINIÇÃO:
Linguagem de programação é um conjunto de regras 
sintáticas cuja finalidade é orientar a escrita das instruções 
de um programa..
Com isso, queremos dizer que, assim como a língua portuguesa 
tem uma gramática e um dicionário, toda e qualquer linguagem de 
programação também deve ter esses dois atributos. O primeiro é a 
gramática, que trata-se do conjunto de regras de sintaxe que determinam 
como as instruções devem ser empregadas em um programa. E dicionário 
é o conjunto de palavras que definem as instruções aceitas pela linguagem 
de programação.
Lógica de Programação 
22
Classificação das Linguagens de 
Programação
Existem muitas linguagens de programação no mercado de 
informática. Se formos considerar aquelas que não mais existem, podemos 
afirmar que a quantidade de linguagens de programação se aproxima do 
número de idiomas oficiais do planeta. Diante de tantas linguagens, vamos 
classificá-las em três grupos, sendo o primeiro possuidor de apenas uma 
única linguagem, como mostra o diagrama a seguir (MORAIS; AZEVEDO, 
2017b).
Figura 6 – Classificação das linguagens de programação
Fonte: Morais e Azevedo (2017b).Sobre a linguagem de máquina, é a linguagem realmente entendida 
pelo computador. Ela é composta por comandos binários (0 e 1), o que 
as torna, praticamente, inacessíveis aos programadores convencionais. 
Cada família de processador estabelece uma linguagem de máquina 
própria, composta, basicamente, por endereços de memória e comandos 
de movimentação de bytes entre esses endereços. Já as linguagens de 
baixo nível, para ter acesso à linguagem de máquina, deve-se utilizar uma 
linguagem de programação inteligível ao ser humano. Existe, como já 
Lógica de Programação 
23
dissemos, uma enormidade delas, um exemplo relacionada à linguagem 
de máquina é o Assembly (ou linguagem montadora). Essa linguagem, 
apesar de ser inteligível ao homem, é de alta complexidade e de difícil 
compreensão. Dizemos, então, que o Assembly é uma linguagem de 
baixo nível (ASCENCIO; CAMPUS, 2012).
IMPORTANTE:
Alguns autores defendem a existência de dois grupos 
de linguagem de programação: os de baixo nível e os de 
alto nível, considerando que a linguagem de máquina é 
uma linguagem de baixo nível. Outros autores isolam a 
linguagem de máquina dessa classificação, diferenciando-a 
das demais, assim, para efeito desta obra, poderemos nos 
referir, eventualmente, às linguagens de máquina como 
sendo de baixo nível.
Antes de prosseguirmos, precisamos entender que o computador 
só entende uma única linguagem: a de máquina, todas as outras precisarão 
ser convertidas para ela. A esse processo de conversão damos o nome 
de “compilação”. Para isso, um programa, para ser executado por um 
computador, precisará ser compilado por outro, intitulado “compilador” 
(MORAIS; AZEVEDO, 2017a).
DEFINIÇÃO:
Compilador é um programa, escrito em linguagem de 
máquina, capaz de traduzir outro programa, escrito em 
uma linguagem de baixo ou alto nível, para a linguagem de 
máquina, gerando o que chamamos de “programa-objeto” 
ou “programa-executável”.
Já com as linguagens de alto nível, com a popularidade dos 
computadores, foi criado um problema: alta demanda por software e, 
consequentemente, por programadores. Aparentemente, isso não é um 
problema, e sim uma oportunidade, uma tendência, um novo mercado, 
o que faz sentido até certo ponto. O problema era encontrar mão de 
Lógica de Programação 
24
obra qualificada para criar códigos que as máquinas pudessem executar; 
à época, só havia linguagens de baixo nível no mercado. Devido à 
necessidade de facilitar a maneira como os humanos poderiam escrever 
comandos para as máquinas, surgiram as linguagens de alto nível. Estas 
têm a característica de serem mais amigáveis para o entendimento 
humano. Podemos citar como exemplos de linguagem de programação 
de alto nível: ASP, ActionScript, C++, C#, Pascal, Object Pascal, Euphoria, 
Java, JavaScript, Lua, MATLAB, PHP, Python, Ruby, Basic, Visual Basic, 
entre muitas outras. O processo de compilação de um programa escrito 
em linguagem de alto nível se dá, normalmente, por meio de duas etapas. 
Conforme ilustrado na Figura 7, percebemos que os programas de alto 
nível são compilados, primeiramente, para uma linguagem de baixo nível, 
para somente então serem convertidos para a linguagem de máquina 
(MORAIS; AZEVEDO, 2017a).
Figura 7 – O processo de compilação de um programa escrito em linguagem de alto nível
Fonte: Morais e Azevedo (2017b).
Programa-fonte é o programa escrito em linguagem de baixo ou alto 
nível, que é submetido ao processo de compilação. Já programa-objeto 
é o programa resultante do processo de compilação do programa-fonte, 
sendo gerado na linguagem de máquina pelo compilador. O processo 
de compilação, em alguns casos, torna-se moroso, comprometendo a 
produtividade da equipe de desenvolvimento de software das empresas. 
Por isso, com o advento das linguagens de alto nível, criou-se o conceito 
de interpretação de programas como alternativa à compilação. 
Lógica de Programação 
25
SAIBA MAIS:
Para se aprofundar mais no assunto, recomendamos o 
acesso ao vídeo a seguir. Para acessar, clique aqui.
Em termos práticos, a interpretação dispensa a geração de 
programas-objeto, ou seja, os interpretadores leem os programas-fontes 
e interagem diretamente com o computador, instrução a instrução. 
O interpretador é o programa que permite a execução direta de um 
programa-fonte, sem a necessidade de criação de um programa-objeto. 
Em uma linguagem de programação interpretada, o processo ocorre 
como se a compilação se desse instantaneamente a cada instrução 
executada, em tempo real.
RESUMINDO:
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo deste 
Capítulo, vamos resumir tudo o que vimos. Você deve ter 
aprendido que programas são escritos em linguagens 
de programação, que reúnem conjuntos de instruções 
ordenadas logicamente com vistas à realização de um 
ou mais procedimentos. Esses programas são acionados 
por meio de comandos, e têm por objetivo ler dados 
e submetê-los a um processamento, de modo a obter 
uma informação relevante ou uma ação automatizada. 
As linguagens de programação podem ser de máquina 
(aquela que dialoga diretamente com os componentes de 
hardware em sistema binário), de baixo nível (aquelas que 
são lidas por compiladores para a geração de programas 
em linguagem de máquina) ou de alto nível (as que têm 
uma sintaxe mais amigável, mas que necessitam de 
interpretadores ou compiladores capazes de gerar um 
programa em linguagem de baixo nível, para somente 
depois ser traduzido para a linguagem de máquina).
Lógica de Programação 
https://www.youtube.com/watch?v=Yqq7IsxDGZc
26
Infraestrutura dos Sistemas 
Computacionais
OBJETIVO:
Ao término deste Capítulo você será capaz de compreender 
a infraestrutura dos sistemas computacionais, discernindo 
sobre hardware e software. Isso será fundamental para 
o exercício de sua profissão. E então? Motivado para 
desenvolver esta competência? Então vamos lá. Avante!.
Unidade Central de Processamento (CPU)
Uma das principais características dos computadores é a 
capacidade de processar dados e informações de maneira rápida e 
precisa, o principal componente responsável por essa característica é 
a CPU. Esta é o componente vital dos sistemas computacionais, sendo 
responsável pela realização das operações de processamento, tais como 
adição, subtração, multiplicação, divisão, entre outras. 
Figura 8 – A unidade central de processamento é o componente vital dos sistemas 
computacionais
Fonte: Freepik
Lógica de Programação 
27
Basicamente, a função da CPU é buscar as instruções na memória 
do computador, interpretar essas instruções que estão explicitadas na 
memória, buscar dados, executar operações com esses dados e guardá-
los de volta na memória. O processador é divido em três partes principais: 
 • Unidade de controle (UC).
 • Unidade lógica e aritmética (ULA).
 • Banco de registradores.
Sobre a UC, esta tem como função buscar e decodificar as instruções 
a serem executadas. Além disso, decide como e quando as outras unidades 
serão ativadas. As instruções a serem executadas podem direcionar 
dados para a ULA ou diretamente para o banco de registradores. Digamos 
que a UC é sistema nervoso central do computador, fazendo um paralelo 
com a mente humana. A ULA, como o próprio nome já permite perceber, 
é a unidade cuja principal responsabilidade é executar as operações 
lógicas e aritméticas exigidas pelas tarefas emanadas dos programas em 
execução. Os dados numéricos a serem processados são enviados pela 
UC e a ela são devolvidos para armazenamento ou outra destinação. Já 
o banco de registradores tem o papel de servir como um assistente de 
acesso rápido. Em resumo, esse componente representa uma memória 
temporária para armazenagem de tudo o que está sendo processado 
pela ULA e/ou direcionado pela UC. Nele, são guardadas as instruções 
em execução, dados numéricos utilizadosem cálculos e outros dados 
que precisem ser temporariamente armazenados para dar celeridade ao 
processamento. Não devemos confundir banco de registradores com a 
memória RAM do computador. Veremos, mais adiante, que a memória 
RAM armazena dados por mais tempo que o banco de registradores 
(MORAIS; AZEVEDO, 2017c).
SAIBA MAIS:
Veja o vídeo a seguir para conhecer mais sobre os 
processadores. Para acessar, clique aqui. 
Lógica de Programação 
https://www.youtube.com/watch?v=DFMCcuhWiXM
28
Sobre a memória do computador, esta pode ser definida como 
um componente que tem a capacidade de armazenar dados. Estes são 
armazenados em pequenas células, onde todos os programas e dados 
em execução ficam guardados por muito ou pouco tempo, dependendo 
do tipo de memória. A memória do computador pode ser dividida, 
inicialmente, em dois tipos (MORAIS; AZEVEDO, 2017c):
1. Memória principal – onde ficam armazenados apenas os dados e 
programas em uso no momento.
2. Memória auxiliar – onde são guardadas as informações em caráter 
definitivo, só sendo apagadas por meio de comandos intencionais 
por parte do usuário.
A memória principal pode ser dividida em três tipos: RAM, ROM e 
flash, a Random Access Memory (RAM) – memória de acesso direto ou 
memória viva) é a memória principal do sistema, ou seja, um espaço para 
armazenar os dados, de maneira temporária, durante a execução de um 
programa. Na verdade, ao contrário do armazenamento de dados em 
uma memória de massa como o disco rígido, a memória RAM é volátil, 
isto é, ela permite armazenar dados somente enquanto estiver sendo 
alimentada eletronicamente. Assim, cada vez que o computador for 
desligado, todos os dados presentes na memória RAM serão apagados 
definitivamente (MORAIS; AZEVEDO, 2017c). 
Figura 9 – A RAM é a memória principal do sistema
Fonte: Freepik
Lógica de Programação 
29
A Read Only Memory (ROM) – memória somente para leitura, 
ou memória morta) é um tipo de memória que permite conservar as 
informações contidas no dispositivo mesmo quando ele estiver desligado. 
A base desse tipo de memória só pode ser acessada em leitura, contudo, 
é possível salvar informações em certos tipos de memórias ROM, como 
veremos a seguir. A memória flash é um misto entre as memórias de tipo 
RAM e ROM. Esse tipo de memória é não volátil, assim como as memórias 
mortas, ou seja, foram projetadas apenas para serem lidas. Por outro lado, 
as memórias flash podem ser regravadas pelo fabricante, pois os chips 
que as compõem são similares aos que compõem as memórias RAM 
(MORAIS; AZEVEDO, 2017c).
IMPORTANTE:
A memória principal do computador se refere a uma 
coleção de registradores enumerados sequencialmente, 
em que cada uma tem um tamanho, chamado de “tamanho 
da palavra”. Cada registrador tem uma localização fixa na 
memória, chamada de “localização de memória”. Ao número 
único que identifica cada palavra na memória, damos o 
nome de “endereço”. Para quem trabalha com linguagens 
de baixo nível, como Assembly, esse conhecimento é 
fundamental, no entanto, para linguagens de alto nível, 
esse conhecimento pode ser abstraído.
Em relação aos barramentos, estes têm a responsabilidade de 
interligar os componentes internos de um computador, de modo que a 
comunicação entre eles seja rápida e eficiente. A Figura 10 mostra como 
os barramentos conseguem interligar os componentes funcionais básicos 
de um computador. 
Lógica de Programação 
30
Figura 10 – Função dos barramentos que têm a responsabilidade de interligar os 
componentes internos de um computador
UCP MEMÓRIA PRINCIPAL
Controladores
E/S
Barramentos
Fonte: Morais e Azevedo (2017c).
Na Figura 10, é possível observar que os controladores (da UC) 
gerenciam os fluxos de dados entre a CPU (processador), a memória 
principal e os dispositivos de entrada e saída (E/S). Estes serão alvo de 
estudo na sequência.
Dispositivos de Entrada e Saída 
Chamamos de “periféricos” todos os equipamentos (ou dispositivos) 
conectáveis ao computador. Esses equipamentos permitem a troca de 
dados e informações entre o usuário e o computador. Cada periférico tem 
sua função específica e serve para enviar e/ou receber dados ou tarefas 
do computador. Da diversidade de dispositivos existentes, podemos 
mencionar os periféricos mais comuns: 
 • Monitor de vídeo.
 • Teclado. 
 • Mouse. 
 • Impressora. 
Lógica de Programação 
31
 • Unidades de armazenamento externas (discos rígidos, cartões de 
memória, pen drives etc.).
 • Caixas acústicas e fones de ouvido. 
 • Microfones.
 • Câmeras (webcam).
 • Óculos 3D e de 360 graus para realidade virtual/aumentada.
 • Unidade leitoras e gravadoras de CD ROM e DVD ROM. 
Os periféricos podem, ainda, ser classificados como dispositivos de: 
1. Entrada (E). 
2. Saída (S).
3. Entrada/Saída (E/S).
Os periféricos de entrada são os dispositivos exclusivos para 
a entrada de dados no computador. Por meio deles, o usuário envia 
dados à CPU para serem processados. Alguns desses dispositivos são 
essenciais ao sistema, pois sem eles seria impossível interagir com o 
sistema computacional. Podemos destacar o teclado e o mouse (MORAIS; 
AZEVEDO, 2017c).
Figura 11 – Os periféricos de entrada são os dispositivos exclusivos para a entrada de dados 
no computador, sendo o teclado e o mouse exemplos
Fonte: Freepik
Lógica de Programação 
32
Os periféricos de saída são os dispositivos exclusivos para a saída de 
informações vindas da CPU. Por meio desses dispositivos o usuário recebe 
o resultado do processamento do computador. Temos como exemplos 
dessa categoria de dispositivos: monitores de vídeo, impressoras, plotters, 
caixas acústicas, fones de ouvido, entre outros (MORAIS; AZEVEDO, 2017c).
Figura 12 – Os periféricos de saída são os dispositivos exclusivos para a saída de 
informações originadas da CPU
Fonte: Freepik
Os periféricos de entrada e saída são dispositivos que tanto 
transmitem dados quanto os recebem. Esses dispositivos são responsáveis 
pela comunicação máquina a máquina ou pelo armazenamento 
persistente de dados. Temos como exemplos típicos desses dispositivos: 
interfaces de rede, gravadores de CD e DVD, pen drives, cartões de 
memória, monitores sensíveis ao toque (touch screen), entre outros.
Lógica de Programação 
33
Infraestrutura de Software
Para fazer um computador funcionar, não basta o hardware. De 
nada adiantaria toda a arquitetura que acabamos de estudar se não fosse 
um conjunto de programas que é executado a cada vez que ligamos o 
computador. Estamos falando do software básico que todo computador 
necessita para manter-se ativo e operante. Esse tipo de software define o 
padrão de comportamento do computador, de modo a torná-lo utilizável. 
São exemplos de software básico (TAVARES, 2006): 
 • BIOS – trata-se de um acrônimo para Basic Input/Output System 
ou sistema básico de entrada e saída. Esse software já vem 
instalado de fábrica na memória ROM do computador, tendo por 
finalidade inicializar algumas tarefas consideradas vitais em um 
computador. 
 • Sistema operacional: após a execução do BIOS, é esse software 
que assume total controle sobre o computador, interpretando 
os comandos e as ações realizadas pelo usuário. Os sistemas 
operacionais mais comuns no mercado mundial são o Windows 
(da Microsoft), o MacOS (da Apple) e o Linux (sistema operacional 
gratuito e de código-fonte aberto, não pertencendo a nenhuma 
empresa especificamente).
 • Os sistemas operacionais já perpassaram os velhos PCs e 
notebooks, e já estão invadindo os smartphones. Para esses 
dispositivos móveis, outros sistemas operacionais entram em 
cena, como o Android (do Google) e o iOS (da Apple). O Windows 
Mobile (da Microsoft) foi descontinuado em 2017, e representava 
a terceira força nesse cada vez mais disputado mercado mundial. 
Outras versões denominadas como Windows Phone surgiram, 
a versão chamada de Windows 11 permite, por meio de umaparceria entre Microsoft, Amazon e Intel, executar os aplicativos 
do Android. Dessa maneira, é importante estar sempre atualizando 
as versões para smartphone.
Sobre software utilitário, estes servem de complementação para 
os softwares básicos, ou seja, são programas que têm funcionalidades 
Lógica de Programação 
34
mais voltadas para o sistema operacional. Como exemplos desse tipo de 
software podemos citar as ferramentas para organizar os discos, verificador 
de disponibilidade de memória, corretor de falhas de processamento, 
entre muitos outros. Boa parte dos programas utilitários são fornecidos 
pelo próprio fabricante do sistema operacional, incluídos no pacote 
vendido ou previamente instalado de fábrica. No entanto, existem 
outros softwares utilitários que podem ser adquiridos e/ou instalados 
de forma separada, como antivírus, firewalls (proteção contra hackers), 
compactadores de arquivos (como WinZip, WinRAR etc.), programas para 
conexão com redes, entre outros (TAVARES, 2006).
Os softwares aplicativos são programas voltados para a solução de 
problemas dos usuários, podendo ser divididos em duas categorias: uso 
geral e uso específico. Os de uso geral são aqueles programas que todos 
podem usar, independentemente de suas áreas de atuação ou interesse. 
Esses softwares se prestam para as mais variadas aplicações, como: editores 
de texto, geradores de gráficos, planilhas eletrônicas, gerenciadores de 
bancos de dados, linguagens de programação etc. Já os de uso específico 
são destinados, exclusivamente, a um único tipo de aplicação, como folha 
de pagamento, crediário, imposto de renda, cadastro, contas a pagar e 
receber, contabilidade etc. (MORAIS; AZEVEDO, 2017c).
RESUMINDO:
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo deste 
Capítulo, vamos resumir tudo o que vimos. Você deve ter 
aprendido que conhecer o que se passa por traz da tela do 
computador é algo muito importante para todo e qualquer 
profissional da área de Tecnologia da Informação. Além de 
componentes eletrônicos, programas e dados, existe toda 
uma organização dentro de um sistema computacional. 
Saber discernir sobre cada um de seus elementos, 
entendendo sua funcionalidade, é um pré-requisito básico 
para quem quer se tornar um programador ou fazer parte 
de um suporte técnico no mercado de Informática. 
Lógica de Programação 
35
Introdução à Lógica de Programação 
Algorítmica
OBJETIVO:
Ao término deste Capítulo você será capaz de definir e 
entender o conceito e as funcionalidades da lógica de 
programação e algoritmos computacionais. Isso será 
fundamental para o exercício de sua profissão. E então? 
Motivado para desenvolver esta competência? Então 
vamos lá. Avante!.
O que é Lógica?
Damos início a este tópico debatendo um pouco sobre nosso 
cotidiano, isso mesmo, falaremos sobre as atividades que desempenhamos 
no dia a dia, como tomar café, ir à escola ou até mesmo ao trabalho. Toda 
ação que executamos, nos remete a um objetivo final, por exemplo, 
quando estamos com fome, sempre vamos atrás de saná-la, por meio 
da alimentação. Dessa forma, toda tomada de decisão em um algoritmo 
computacional deve ser baseada na lógica de atingir algum objetivo. O 
termo “lógica” está associado à análise que estuda as proposições e seus 
membros componentes. Já Forbellone (2005) diz que:
a lógica pode estar relacionada com a correção do 
pensamento, pois uma de suas preocupações é 
determinar quais operações são válidas e quais não são, 
fazendo análises das formas e leis do pensamento. Ainda 
sob a ótica do autor, ela nos ensina a usar corretamente as 
leis do pensamento, ou seja, ensina a colocar ordem no 
pensamento. (FORBELLONE, 2005, p. 1)
A lógica está interligada à solução de algum problema que traz 
características que não estão relacionadas à determinada situação. 
Por exemplo, se precisamos realizar cálculos matemáticos, e nossa 
calculadora não está realizando as quatro operações matemáticas de 
forma correta, então, temos um problema a ser resolvido. E é por meio da 
lógica matemática que conseguimos visualizar essa situação problemática 
Lógica de Programação 
36
e trazer uma ou mais possíveis soluções. A lógica computacional traz um 
conceito de solução de problemas, podendo, muitas vezes, ser aplicada a 
diversas situações do nosso cotidiano. Outro exemplo: quando inserimos 
um endereço em um GPS e ele nos retorna diversas possíveis rotas, 
aplicamos certa lógica para escolher a rota mais adequada para nós, seja 
pela quilometragem ou pelo tipo de estrada.
Figura 13 – Quando indicamos um endereço em um GPS e nos retorna diversas possíveis 
rotas são aplicadas certas lógicas para a escolha da mais adequada
Fonte: Freepik
A lógica não deve estar ligada apenas aos conceitos que norteiam 
a matemática. Para utilizá-la em benefício da solução dos problemas 
computacionais, precisamos aplicá-la aos recursos disponíveis nos 
sistemas computacionais. Por exemplo, a lógica necessária para trocar o 
pneu de um carro articula recursos como macaco, parafusos, pneu, roda 
etc. Já na programação do computador para ler um arquivo de dados e 
imprimir um relatório, envolvemos outros recursos, como memória, disco, 
dados, impressora e papel. Contudo, tanto em um caso quanto em outro, 
a forma de raciocinar é a mesma: juntar comandos e manipular recursos 
para atingir um objetivo específico ao final do processamento. Uma 
definição bastante completa sobre lógica de programação foi lançada por 
Forbellone (2005), que a conceitua como:
o uso correto das leis do pensamento da ordem da 
razão e de processos de raciocínio e simbolização 
formais na programação de computadores, objetivando 
a racionalidade e o desenvolvimento de técnicas que 
Lógica de Programação 
37
cooperem para a produção de soluções logicamente 
válidas e coerentes, que resolvam com qualidade os 
problemas que se deseja programar. (FORBELLONE, 2005, 
p. 14)
A lógica de programação computacional é aplicada, por exemplo, 
na seleção e determinação das instruções que devem ser executadas 
para que o problema seja solucionado. Por meio de sua aplicação, 
podemos ter resultados lógicos que irão satisfazer nossas condições, ou 
seja, nenhuma instrução é inserida sem uma funcionalidade.
DEFINIÇÃO:
A lógica de programação, portanto, pode ser definida como 
a técnica necessária para nortear o desenvolvimento de um 
software, que deve seguir certas regras para atingir o seu 
objetivo.
Algoritmos Computacionais
Podemos fazer uso de variados modos para representar a solução 
de um problema, computacional ou não. Ao definir um conjunto de regras 
sintáticas para expressar raciocínios e operações necessárias à solução 
de uma classe de problemas, tem-se um algoritmo. Se tais problemas 
forem de cunho computacional, tem-se um algoritmo computacional.
DEFINIÇÃO:
Algoritmo computacional é uma visão esquemática sobre 
a solução de uma classe de problemas computacionais, 
podendo ser representado gráfica ou textualmente, por meio 
de um pseudocódigo escrito em uma pseudolinguagem.
Para entendermos melhor o conceito de algoritmo computacional, 
vamos imaginar a representação gráfica do seguinte problema: decidir 
qual o maior entre dois números lidos pelo computador. Um problema 
Lógica de Programação 
38
simples deve apresentar uma solução igualmente simples, portanto, 
podemos representar essa solução algorítmica de duas maneiras: 
graficamente ou textualmente, como apresentado na Figura 14 (MORAIS; 
AZEVEDO, 2017d).
Figura 14 – Representação algorítmica graficamente por meio de fluxograma
Fonte: Morais e Azevedo (2017d).
Observe que a solução algorítmica adotada na Figura 14 está sendo 
representada graficamente por uma simbologia denominada “fluxograma”. 
Nessa solução, foram adotados comandos visuais, compreensíveis 
facilmente por qualquer um, de formabastante intuitiva. Contudo, para 
isso, foi necessário estabelecer um dicionário de comandos, que, nesse 
caso, contemplou conforme representado na Figura 15.
Lógica de Programação 
39
Figura 15 – Destaque para os comandos visuais do fluxograma, por meio do 
estabelecimento de um dicionário de comandos
Marca o início ou o término de um algoritmo.
Lê ou exibe um dado/informação.
Executa um procedimento.
Desvia o fluxo de procedimentos conforme a condição 
descrita.
Desvia o fluxo de procedimentos para outro algoritmo.
Fonte: Morais e Azevedo (2017d).
Outro modo de representar uma solução algorítmica é por meio 
de textos, ou pseudocódigos. Do grego, “pseudo” significa falso, o que 
faz do pseudocódigo um código escrito em uma linguagem que, na 
prática, não existe. Em outras palavras, evidencia uma forma genérica de 
escrever um algoritmo, utilizando uma linguagem simples, compreensível 
por qualquer pessoa, sem que esta conheça a sintaxe de linguagem de 
programação. Transcrevendo o algoritmo esquematizado no fluxograma 
anterior, poderíamos escrever o seguinte pseudocódigo:
Figura 16 – Pseudocódigo
Fonte: Elaborada pelo autor (2021).
Lógica de Programação 
40
Perceba que ambas as representações algorítmicas conseguem 
solucionar o mesmo problema, com exatamente o mesmo ordenamento 
lógico. O que as diferencia é a semântica da linguagem. Enquanto na primeira 
solução foi adotada uma linguagem visual (fluxograma ou diagrama de 
blocos), na segunda foi utilizada uma linguagem natural, a própria língua 
portuguesa. Assim como toda atividade que desempenhamos no nosso 
dia a dia, algoritmizar uma solução computacional exige escolhas sábias. 
Ascencio e Campus (2012) destacam os seguintes passos: 
1. Ler atentamente o enunciado, destacando os pontos mais 
importantes.
2. Definir os dados de entrada, ou seja, quais dados serão fornecidos.
3. Determinar o processamento, ou seja, quais cálculos serão 
efetuados e quais são as restrições para esses cálculos. O 
processamento é responsável pela transformação dos dados de 
entrada em informações de saída.
4. Estabelecer as informações de saída, ou seja, quais informações 
serão geradas depois do processamento.
5. Construir o algoritmo utilizando um dos tipos descritos 
anteriormente.
6. Testar o algoritmo realizando simulações.
Podemos ter diversos algoritmos desenvolvidos de maneiras 
diferentes, ou seja, com etapas distintas, mas que solucionam o mesmo 
problema. Cada pessoa tem seu modo de pensar, dessa forma, não é 
obrigatório que todos tenhamos a mesma ideia, ou até mesmo executemos 
ações da mesma maneira.
Lógica de Programação 
41
Figura 17 – Podem existir vários algoritmos desenvolvidos de com etapas diferentes, mas 
que resolvem o mesmo problema
Fonte: Freepik
Conforme Manzano e Oliveira (2016), a norma ISO 5807-1985 
para a definição e elaboração de diagramas de fluxos para a área de 
Desenvolvimento e Projeto de Software é a consolidação de duas normas 
anteriores: ISO 10282 e ISO 26363. 
SAIBA MAIS:
Para se aprofundar nos temas desta Unidade, 
recomendamos o acesso à seguinte fonte de consulta. Para 
acessar, clique aqui. 
Segundo a informação da própria ISO 5807-1985, a definição e a 
elaboração de diagramas para a representação gráfica da linha de raciocino 
lógico a ser adotada não deve restringir o uso de aplicações ou soluções 
particulares. Uma vez que pode ocorrer a existência de vários tipos de 
soluções para os vários problemas de processamento de informação 
(MANZANO; OLIVEIRA, 2016). De maneira geral, existe uma enormidade 
de linguagens de programação, desde as mais simples e intuitivas (de alto 
nível), até as mais complexas e trabalhosas (de baixo nível). É importante 
salientar que algoritmos são muito necessários para servir de elemento 
cognitivo, ou seja, ajudar às pessoas no aprendizado da programação, 
tornando mais fácil o entendimento da lógica de programação.
Lógica de Programação 
https://www.youtube.com/watch?v=8mei6uVttho
42
RESUMINDO:
E então? Gostou do que lhe mostramos? Aprendeu mesmo 
tudinho? Agora, só para termos certeza de que você 
realmente entendeu o tema de estudo deste Capítulo, 
vamos resumir tudo o que vimos. Você deve ter aprendido 
que independentemente de que linguagem seja adotada, 
para solucionar problemas computacionais é requerido 
do programador uma habilidade específica: a lógica de 
programação algorítmica. Não se trata de habilidade com 
matemática ou algo do gênero. Estamos falando de uma 
capacidade peculiar a todos os que conseguem visualizar 
soluções racionais para problemas do dia a dia. O raciocínio 
lógico, que é a base dessa habilidade, já é matéria cobrada 
em quase todos os editais de concursos públicos, já sendo 
ensinado em várias escolas de ensino fundamental e médio. 
Quem desenvolve essa competência é capaz de aprender 
rapidamente qualquer linguagem de programação, pois 
a diferença de uma linguagem para a outra está apenas 
na semântica e no dicionário de comandos. Programar 
computadores para os profissionais da área deve ser uma 
tarefa tão natural quanto escrever um pequeno manual 
sobre como trocar o pneu de um carro.
Lógica de Programação 
43
REFERÊNCIAS
ASCENCIO, A. F.; CAMPUS, E. A. Fundamentos da programação de 
computadores. 3. ed. São Paulo: Prentice Hall, 2012.
BROOKSHEAR, G. J. Ciência da computação: uma visão abrangente. 
11. ed. Porto Alegre: Bookman, 2013.
FARIAS, G.; MEDEIROS, E. S. Introdução à computação. Paraíba: 
Universidade Aberta do Brasil, 2013. 
FORBELLONE, A. L. Lógica de programação: a construção de 
algoritmos e estrutura de dados. São Paulo: Pearson, 2005.
MANZANO, J. A.; OLIVEIRA, J. F. Algoritmos: lógica para 
desenvolvimento de programação de computadores. 28. ed. São Paulo: 
Érica, 2016.
MÁQUINA diferencial e analítica (1791-1871): história dos 
computadores: pré-história. [S. l.: s. n.], 2018. 1 vídeo (6 min). Publicado 
pelo canal Marks Tuto. Disponível em: https://www.youtube.com/
watch?v=s8IKAJxl75U&ab_channel=MarksTuto. Acesso em: 7 fev. 2022.
MORAES, P. S. Curso básico de lógica de programação. São Paulo: 
Unicamp, 2000. 
MORAIS, I.S.; AZEVEDO M. Lógica de programação: linguagens de 
programação. Recife: Unissau, 2017a.
MORAIS, I.S.; AZEVEDO M. Lógica de programação: história dos 
computadores. Recife: Unissau, 2017b.
MORAIS, I.S.; AZEVEDO M. Lógica de programação: infraestrutura 
dos sistemas computacionais. Recife: Unissau, 2017c.
MORAIS, I.S.; AZEVEDO M. Lógica de programação: introdução à 
lógica de programação algorítmica. Recife: Unissau, 2017d.
SOUSA, B. J.; DIAS JÚNIOR, J. J.; FORMIGA, A. A. Introdução à 
programação. João Pessoa: UFPB, 2014. 
TAVARES, A. L. et al. Engenharia de software: uma visão geral. 
Palhoça: Unisul, 2006.
Lógica de Programação

Continue navegando