Buscar

Apostila - Lógica de Programação - SENAI

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

Curso Técnico em Informática
Lógica de Programação
Robson Braga de Andrade
Presidente da Confederação Nacional da Indústria
Rafael Lucchesi
Diretor do Departamento Nacional do SENAI
Regina Maria de Fátima Torres
Diretora de Operações do Departamento Nacional do SENAI
Alcantaro Corrêa
Presidente da Federação da Indústria do Estado de Santa Catarina
Sérgio Roberto Arruda
Diretor Regional do SENAI/SC
Antônio José Carradore
Diretor de Educação e Tecnologia do SENAI/SC
Marco Antônio Dociatti
Diretor de Desenvolvimento Organizacional do SENAI/SC
Confederação Nacional da Indústria
Serviço Nacional de Aprendizagem Industrial
Curso Técnico em Informática
Lógica de Programação
Helenilson Ricardo Kitzberger
Florianópolis/SC
2011
É proibida a reprodução total ou parcial deste material por qualquer meio ou sistema sem o prévio consentimento 
do editor. 
Autor
Helenilson Ricardo Kitzberger
Fotografias
Banco de Imagens SENAI/SC
http://www.sxc.hu/
http://office.microsoft.com/en-us/ images/
http://www.morguefile.com/
http://www.bancodemidia.cni.org.br/
Ficha catalográfica elaborada por Luciana Effting CRB14/937 - Biblioteca do SENAI/SC Florianópolis 
 
 
K62l 
Kitzberger, Helenilson Ricardo 
Lógica de programação / Helenilson Ricardo Kitzberger. – Florianópolis : 
SENAI/SC, 2011. 
67 p. : il. color ; 28 cm. 
 
Inclui bibliografias. 
 
1. Programação (Computadores). 2. Programação lógica. 3. Algoritmos. 4. 
Estruturas de dados (Computação). I. SENAI. Departamento Regional de 
Santa Catarina. II. Título. 
 
CDU 004.43 
 
SENAI/SC — Serviço Nacional de Aprendizagem Industrial
Rodovia Admar Gonzaga, 2.765 – Itacorubi – Florianópolis/SC
CEP: 88034-001
Fone: (48) 0800 48 12 12
www.sc.senai.br 
Prefácio
Você faz parte da maior instituição de educação profissional do estado. 
Uma rede de Educação e Tecnologia, formada por 35 unidades conecta-
das e estrategicamente instaladas em todas as regiões de Santa Catarina.
No SENAI, o conhecimento a mais é realidade. A proximidade com as 
necessidades da indústria, a infraestrutura de primeira linha e as aulas 
teóricas, e realmente práticas, são a essência de um modelo de Educação 
por Competências que possibilita ao aluno adquirir conhecimentos, de-
senvolver habilidade e garantir seu espaço no mercado de trabalho. 
Com acesso livre a uma eficiente estrutura laboratorial, com o que existe 
de mais moderno no mundo da tecnologia, você está construindo o seu 
futuro profissional em uma instituição que, desde 1954, se preocupa em 
oferecer um modelo de educação atual e de qualidade. 
Estruturado com o objetivo de atualizar constantemente os métodos de 
ensino-aprendizagem da instituição, o Programa Educação em Movi-
mento promove a discussão, a revisão e o aprimoramento dos processos 
de educação do SENAI. Buscando manter o alinhamento com as neces-
sidades do mercado, ampliar as possibilidades do processo educacional, 
oferecer recursos didáticos de excelência e consolidar o modelo de Edu-
cação por Competências, em todos os seus cursos.
É nesse contexto que este livro foi produzido e chega às suas mãos. 
Todos os materiais didáticos do SENAI Santa Catarina são produções 
colaborativas dos professores mais qualificados e experientes, e contam 
com ambiente virtual, mini-aulas e apresentações, muitas com anima-
ções, tornando a aula mais interativa e atraente. 
Mais de 1,6 milhões de alunos já escolheram o SENAI. Você faz parte 
deste universo. Seja bem-vindo e aproveite por completo a Indústria 
do Conhecimento.
Sumário
Conteúdo Formativo 9
 
Apresentação 11
 
12 Unidade de estudo 1
Introdução à Lógica 
de Programação
Seção 1 - Conceitos 
Seção 2 - Formas de repre-
sentação
Seção 3 - Teste de mesa
Seção 4 - Ambiente
20 Unidade de estudo 2
Algoritmos
Seção 1 - Tipos de dados
Seção 2 - Constantes e 
variáveis 
Seção 3 - Expressões
Seção 4 - Funções
Seção 5 - Atribuição
Seção 6 - Comandos de 
entrada e saída
13
14
 
16
16
28 Unidade de estudo 3
Estruturas de 
Seleção 
Seção 1 - Introdução
Seção 2 - Comando Se
Seção 3 - Ninhos de coman-
do Se
Seção 4 - Comando Escolha
34 Unidade de estudo 4
Estruturas de 
Repetição
Seção 1 - Introdução 
Seção 2 - Comando Enquan-
to
Seção 3 - Comando Repita
Seção 4 - Comando Para
40 Unidade de estudo 5
Estruturas 
Homogêneas
Seção 1 - Introdução
Seção 2 - Vetores 
Seção 3 - Matrizes
29
29
31
 
32
35
36
 
37
38
48 Unidade de estudo 6
Estruturas 
Heterogêneas
Seção 1 - Introdução
Seção 2 - Registros
54 Unidade de estudo 1
Funções
Seção 1 - Introdução 
Seção 2 - Utilização de sub-
programas 
Seção 3 - Argumentos e 
parâmetros 
Seção 4 - Funções 
Seção 5 - Procedimentos
Seção 6 - Âmbito de variá-
veis
Seção 7 - Argumentos de 
subprogramas 
Seção 8 - Erros mais comuns
Finalizando 62
Referências 64
49
49
21
23
 
23
25
26
27
41
42
45
55
55
 
56
 
57
58
58
 
59
 
61
8 CURSOS TÉCNICOS SENAI
Conteúdo Formativo
9LÓGICA DE PROGRAMAÇÃO
Carga horária da dedicação
Carga horária: 120 horas
Competências
Desenvolver algoritmos e programas utilizando técnicas, lógica e linguagens de 
programação para soluções computacionais.
Conhecimentos 
 ▪ Estruturas de controle e repetição.
 ▪ Estruturas de dados heterogêneas (registros).
 ▪ Estruturas de dados homogêneas (vetores, matrizes).
 ▪ Ferramentas de auxílio à aprendizagem/interpretador de portugol.
 ▪ Fluxogramas.
 ▪ Funções, procedimentos, métodos.
 ▪ Matrizes.
 ▪ Metodologias de testes (teste de mesa).
 ▪ Programação estruturada.
 ▪ Pseudocódigo.
 ▪ Tipos de dados.
 ▪ Variáveis e constantes.
 ▪ Vetores.
 ▪ Operadores aritméticos, relacionais e lógicos, expressões lógicas e aritméticas.
Habilidades
 ▪ Aplicar a lógica de programação.
 ▪ Aplicar linguagens para construção de algoritmos.
 ▪ Estruturar soluções lógicas.
 ▪ Elaborar documentação do algoritmo.
 ▪ Executar testes manuais e automatizados.
 ▪ Aplicar abstração.
10 CURSOS TÉCNICOS SENAI
Atitudes
 ▪ Organização e zelo na utilização de equipamentos.
 ▪ Foco no conteúdo trabalhado.
 ▪ Acesso a sítios relacionados ao tema trabalhado.
 ▪ Organização e limpeza dos ambientes coletivos.
 ▪ Dedicação e empenho nas atividades curriculares e extracurriculares.
 ▪ Capacidade de abstração.
 ▪ Trabalho em equipe.
 ▪ Apresentação de novas soluções para situações-problema.
 ▪ Cumprimento de prazos.
 ▪ Análise crítica de suas produções.
Apresentação
LÓGICA DE PROGRAMAÇÃO
Seja bem-vindo à unidade curricular de Lógica de Programação!
O objetivo principal é demonstrar técnicas para a resolução de proble-
mas e, consequentemente, automatização de tarefas. Você sabia que o 
aprendizado da lógica é essencial para a formação de um bom progra-
mador? É verdade. E os conhecimentos sobre lógica servirão de base 
para o aprendizado de todas as linguagens de programação, estruturadas 
ou não. De um modo geral, esses conhecimentos serão de suma im-
portância, pois ajudarão no cotidiano para o desenvolvimento de um 
raciocínio rápido.
Nesta unidade curricular você estudará os conceitos básicos de lógica de 
programação, as formas de representação e, principalmente, os algorit-
mos, que auxiliam na estruturação de uma sequência lógica para resolu-
ção de problemas e automatização de tarefas. Você irá aprender de que 
forma utilizamos os algoritmos para a tomada de decisões, repetições e 
manipulação de informações.
Esperamos que, por meio desse conteúdo, você conheça em detalhes o 
que é e como aplicar a lógica de programação em sua vida profissional. 
Bons estudos!
Helenilson Ricardo 
Kitzberger
Helenilson Ricardo Kitzberger 
é graduado em Sistemas de In-
formação pelo Centro Universi-
tário de Jaraguá do Sul. Atual-
mente trabalha como analista 
de sistemas e também é pro-
prietário de uma empresa de 
desenvolvimento de software 
para gestão empresarial. Atua 
também como pesquisador e 
professor no SENAI de Jaraguá 
do Sul, onde ministra aulas no 
curso Técnico em Informática.11
Unidade de 
estudo 1
Seções de estudo 
Seção 1 – Conceitos
Seção 2 – Formas de representação
Seção 3 – Teste de mesa
Seção 4 – Ambiente
13LÓGICA DE PROGRAMAÇÃO
Introdução à Lógica de 
Programação
Seção 1
Conceitos
Você já ouviu falar em lógi-
ca de programação, sequência 
lógica, instruções, algoritmos 
e programas? Esses são alguns 
dos conceitos elementares de 
lógica que você verá a seguir. 
Em relação aos algoritmos, você 
verá que, relacionados à lógica, 
eles resultam em programação. 
Vamos iniciar? Aperte os cintos e 
embarque no mundo da lógica de 
programação! 
Lógica de programação
Para Forbellone e Eberspächer 
(2005, p. 12), a lógica pode ser 
relacionada com a “correção do 
pensamento”. Correção de pensa-
mento? Isso mesmo! 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.
A lógica de programação é neces-
sária para pessoas que desejam 
trabalhar com o desenvolvimen-
to de sistemas e programas. Ela 
permite definir a sequência lógica 
para o desenvolvimento.
Lógica de programação é a técni-
ca de encadear pensamentos para 
atingir determinado objetivo.
E sequência lógica, você sabe o 
que é? Então acompanhe!
Sequência lógica
Os pensamentos que você estu-
dou na lógica de programação 
podem ser descritos como uma 
sequência de instruções, que de-
vem ser seguidas para cumprir 
uma determinada tarefa.
Sequência lógica são passos 
executados até atingir um objetivo 
ou solução de um problema.
Instruções
Na linguagem comum, en-
tende-se por instruções um 
conjunto de regras ou normas 
definidas para a realização ou 
emprego de algo.
Em informática, porém, instrução 
é a informação que indica a um 
computador uma ação elementar 
a executar. Convém ressaltar que 
uma ordem isolada não permite 
realizar o processo completo. Para 
isso, é necessário um conjunto de 
instruções colocadas em ordem 
sequencial lógica.
Por exemplo, para fazer uma 
omelete de batatas, é preciso co-
locar em prática uma série de 
instruções: descascar as batatas, 
bater os ovos, fritar as batatas etc.
É evidente que essas instruções 
precisam ser executadas em uma 
ordem adequada – não se pode 
descascar as batatas depois de 
fritá-las.
Dessa maneira, uma instrução to-
mada de forma isolada não tem 
muito sentido. Para se obter o 
resultado, é preciso colocar em 
prática o conjunto de todas as ins-
truções, na ordem correta.
Instruções são um conjunto 
de regras ou normas definidas 
para a realização ou emprego 
de algo. Em informática, é o 
que indica a um computador 
uma ação elementar a execu-
tar.
A lógica de programação sig-
nifica o uso correto das leis do 
pensamento e de processos 
de raciocínio e simbolização 
formais na programação de 
computadores, objetivando 
a racionalidade e o desenvol-
vimento de técnicas que coo-
perem para a produção de so-
luções logicamente válidas e 
coerentes, que resolvam com 
qualidade os problemas que 
se deseja programar.
14 CURSOS TÉCNICOS SENAI
Algoritmos
Um algoritmo é formalmente uma 
sequência finita de passos que le-
vam à execução de uma tarefa. 
É possível pensar em algoritmo 
como uma receita, uma sequên-
cia de instruções que dão cabo de 
uma meta específica. Essas tarefas 
não podem ser redundantes nem 
subjetivas na sua definição. Elas 
devem ser claras e precisas.
Como exemplos de algoritmos 
existem os algoritmos das ope-
rações básicas (adição, multipli-
cação, divisão e subtração) de 
números reais decimais. Outros 
exemplos seriam os manuais de 
aparelhos eletrônicos, que expli-
cam passo a passo como utilizá-
-los.
Até mesmo as coisas mais simples 
podem ser descritas por sequên-
cias lógicas. Vamos a um exem-
plo: como chupar bala. Observe!
 ▪ Pegar a bala.
 ▪ Retirar o papel.
 ▪ Chupar a bala.
 ▪ Jogar o papel no lixo.
Algoritmo é a descrição de um con-
junto de ações que, obedecidas, 
atingem o objetivo esperado.
Segundo Lopes e Garcia (2002), 
algoritmo não é a solução de um 
problema, pois, se assim fosse, 
cada problema teria um único al-
goritmo. Algoritmo é um conjun-
to de passos que levam à solução 
de um determinado problema e, 
em geral, são muitos os caminhos 
que levam à solução. 
Programas
Os programas de computadores 
nada mais são do que algorit-
mos escritos em uma linguagem 
de computador (Pascal, C, Co-
bol, Fortran, Visual Basic, entre 
outras) e que são interpretados 
e executados por uma máquina; 
no caso, um computador. Com 
essa interpretação rigorosa, um 
programa é, por natureza, muito 
específico e rígido em relação aos 
algoritmos da vida real.
Com esses conceitos, certamente 
agora você estará pronto para se-
guir para a próxima seção. Vamos 
lá!
Seção 2
Formas de 
representação 
As formas mais comuns de repre-
sentação de algoritmos são as se-
guintes. Acompanhe!
 ▪ Descrição narrativa: os algo-
ritmos são expressos diretamente 
em linguagem natural. 
 ▪ Fluxograma convencional: é 
uma representação gráfica que 
emprega formas geométricas 
padronizadas para indicar as 
diversas ações e decisões que de-
vem ser executadas para resolver 
o problema. 
 ▪ Pseudolinguagem: emprega 
uma linguagem intermediária 
entre a linguagem natural e uma 
linguagem de programação para 
descrever os algoritmos. 
Mas veja bem! Não existe con-
senso entre os especialistas sobre 
qual seria a melhor maneira de 
representar um algoritmo. Atu-
almente, a maneira mais comum 
de representar algoritmos é por 
meio de uma pseudolinguagem 
ou pseudocódigo. Essa forma de 
representação tem a vantagem de 
fazer com que o algoritmo seja es-
crito de uma maneira próxima de 
uma linguagem de programação 
de computadores. 
Descrição narrativa 
Como ilustração de algoritmo em 
linguagem natural, considera a se-
guinte receita. 
Providencie manteiga, ovos, 2 Kg 
de massa etc.
 ▪ Misture os ingredientes.
 ▪ Despeje a mistura na forma 
de bolo.
 ▪ Leve a forma ao forno.
 ▪ Espere 20 minutos.
 ▪ Retire a forma do forno.
 ▪ Deixe esfriar.
 ▪ Prove.
Essa forma de representação é 
bastante conhecida, por utilizar 
a linguagem natural, porém tem 
algumas desvantagens, como im-
precisão, pouca confiabilidade e 
principalmente ser extensa, pois 
escreve-se muito para dizer pouca 
coisa.
15LÓGICA DE PROGRAMAÇÃO
Fluxograma convencional
Essa representação de algoritmos emprega várias formas geométricas 
para descrever cada uma das possíveis ações durante a execução dos 
algoritmos. Existem algumas formas geométricas empregadas normal-
mente e que você poderá ver na figura seguinte. Cada uma das formas se 
aplica a uma determinada ação, como está indicado. Existem outras for-
mas que podem ser aplicadas, no entanto, essas formas serão suficientes 
para os exemplos que serão mostrados nesta unidade curricular.
Figura 1: Formas geométricas
Como primeiro exemplo de um algoritmo descrito por meio de fluxo-
gramas, considere o exemplo do algoritmo para decidir o que fazer em 
um dia de domingo. Veja a próxima figura! 
Figura 2: Fluxograma de um domingo
16 CURSOS TÉCNICOS SENAI
A representação gráfica por meio 
de fluxograma é uma das ferra-
mentas mais conhecidas na repre-
sentação de algoritmos, utiliza um 
padrão mundial e diz muito mais 
do que palavras. Porém, sua uti-
lização reflete em pouca atenção 
aos dados, não oferecendo recur-
sos para descrevê-los, e complica-
-se na medida em que o algoritmo 
cresce.
Você sabe o que é uma pseudolin-
guagem? Vamos descobrir juntos!
Pseudolinguagem
Esse modo de representar algo-
ritmos procura empregar uma 
linguagem que esteja o mais pró-
xima possível de uma linguagem 
de programação de computadores 
de alto nível, mas evitando defi-
nir regras de construção grama-
tical muito rígidas. A ideia é usar 
as vantagens do emprego da lin-
guagem natural, mas restringindo 
o escopo da linguagem. Normal-
mente, essas linguagens são ver-
sões ultrarreduzidas de linguagens 
de alto nível do tipo Pascal ou C. 
Ficou mais claro agora? Então 
veja a seguir um exemplo de pseu-
dolinguagem.
algoritmo“CALCULA_DOBRO”var
 varNum, varDobro : inteiro
inicio
 leia (varNum)
 varDobro ← 2 * varNum
 Escreva (varDobro)
fimalgoritmo
O uso da pseudolinguagem, ou 
linguagem algorítmica, tem inú-
meras vantagens, como utilização 
do português como base e a passa-
gem quase imediata do algoritmo 
para uma linguagem de progra-
mação qualquer. No entanto, não 
tem padrão definido, dificultando 
a leitura em alguns momentos.
Seção 3
Teste de mesa
Após desenvolver um algoritmo 
é preciso testá-lo. Esse teste é 
chamado de TESTE DE MESA, 
que significa seguir as instruções 
do algoritmo de maneira precisa 
para verificar se o procedimento 
utilizado está correto ou não. Mas 
como esse teste deve ser feito? 
Veja na tabela seguinte um exem-
plo de teste de mesa que valida o 
algoritmo CALCULA_DOBRO, 
apresentado na seção anterior.
Tabela 1: Teste de mesa
varNum varDobro
2 4
6 12
Nesse exemplo deve-se atribuir 
valores a “varNum”, executar o 
cálculo descrito no algoritmo e 
avaliar se “varDobro” vai resultar 
como na tabela anterior.
Seção 4
Ambiente
O computador
Os computadores podem ser usa-
dos de forma eficiente na solução 
de certos tipos de problemas. Os 
problemas que suportam trata-
mento por computador em geral 
envolvem grandes quantidades 
de dados ou são problemas de 
natureza complexa, exigindo a 
execução de um grande número 
de passos para alcançar a solução. 
Basicamente, são problemas na 
área de processamento de dados 
e na área científica. 
O computador é uma ferramenta 
que permite a realização do proces-
samento automático (ou eletrôni-
co) de dados. 
Mas o que é processamento de 
dados?
Define-se por processamento de 
dados qualquer atividade que, uti-
lizando informações (ou dados), 
efetua transformações para obter 
novas informações (ou dados) 
como resultado. 
17LÓGICA DE PROGRAMAÇÃO
Figura 3: Processamento de dados
Porém, a tarefa desempenhada pelos computadores é apenas parte do 
processo de solução de problemas. As etapas na solução de problemas 
são:
 ▪ entendimento do problema; 
 ▪ criação de uma sequência de operações (ou ações) que, quando exe-
cutadas, produzem a solução para o problema; 
 ▪ execução dessa sequência de operações;
 ▪ verificação da adequação da solução. 
As etapas de entendimento do problema, criação de sequência de ações 
e verificação da adequação da solução são tarefas desempenhadas por 
pessoas. Já a execução das operações pode ser desempenhada por com-
putadores.
Os computadores têm a capacidade de executar processos complicados 
e com grande quantidade de informações de forma rápida e confiável. 
Programação
Programação é a sequência de planejamento, projeto, escrita e testes de 
instruções desempenhados pelo computador. É uma arte e uma ciên-
cia. Arte porque existem muitas maneiras de se realizar o trabalho de 
programação. Existe espaço para uma considerável dose de criatividade. 
É também uma ciência, porque existem algumas regras que devem ser 
seguidas, porque é necessário o uso de lógica e porque existem alguns 
métodos rigorosos de programação que asseguram a eficiência, econo-
mia e a utilidade dos programas gerados.
Para tornar o trabalho de programação mais fácil, divida sistematica-
mente em partes menos complexas (essa técnica denomina-se “dividir 
para conquistar”).
E você sabe quando um programa é confiável?
Um programa é considerado confiável quando consegue fazer com que 
o computador cumpra com o objetivo proposto. Os programas constru-
ídos devem ser eficazes, realizando a tarefa definida de forma eficiente, 
utilizando os melhores meios para realizá-la.
O maior problema na construção de programas é a complexidade. Essa 
complexidade representa a quantidade de situações diferentes que um 
problema pode apresentar e que devem ser previstas na solução do mes-
mo. Portanto, ao se construir um programa, o objetivo principal é ven-
cer a complexidade do problema a ser solucionado. 
18 CURSOS TÉCNICOS SENAI
Mas o que fazer para trabalhar com essa complexidade? 
Você poderá dividir a programação em duas fases distintas. Acompanhe! 
Figura 4: Fases da programação
Para a fase da programação você terá as seguintes etapas:
 ▪ Modelização (ou resolução) do problema: determinação do modelo 
de solução para o problema proposto na forma de um algoritmo com-
putacional. Assim, a elaboração de um algoritmo é o primeiro passo 
para a preparação de um programa de computador. Esse algoritmo 
deve ser independente da linguagem de programação que será utilizada. 
 ▪ Implementação: é a transformação (ou codificação) do algoritmo 
em alguma linguagem de programação adequada ao modelo elaborado. 
Linguagem de programação? O que é isso? Veja a seguir!
Linguagens de programação
Linguagem é uma maneira de comunicação que segue uma forma e uma 
estrutura com significado interpretável. Portanto, linguagem de progra-
mação é um conjunto finito de palavras, comandos e instruções, escritos 
com o objetivo de orientar a realização de uma tarefa pelo computador.
Logicamente, a linguagem utilizada pelos indivíduos no cotidiano é dife-
rente da linguagem utilizada pela máquina. A máquina trabalha somente 
com códigos numéricos (linguagem de máquina), baseados nos números 
0 e 1 (sistema binário), que representam impulsos elétricos, ausente e 
presente.
Assim, qualquer linguagem de programação deve estar situada entre dois 
extremos: o da linguagem natural do homem (muito clara, porém lenta) 
e o da linguagem de máquina (muito rápida, porém complexa).
19LÓGICA DE PROGRAMAÇÃO
Esse é o conceito de nível de linguagem: alto nível para as mais pró-
ximas da linguagem humana; baixo nível para as mais semelhantes à 
linguagem de máquina.
Tradutores
Para que um computador possa “entender” um programa escrito em 
uma linguagem de alto nível, torna-se necessário um meio de tradução 
entre a linguagem utilizada no programa e a linguagem de máquina. Esse 
meio pode ser de dois tipos: compilador e interpretador. Saiba mais so-
bre cada um deles!
Compilador
Traduz o programa escrito em linguagem de alto nível (programa-fonte) 
para um programa equivalente escrito em linguagem de máquina (pro-
grama-objeto).
Interpretador
Traduz e envia para execução instrução por instrução e o programa per-
manece na forma de fonte.
Aqui você finaliza a primeira unidade do curso, onde conheceu concei-
tos de lógica de programação, sequência lógica, instruções, algoritmos 
e programas. Viu que os algoritmos podem ser representados por 
descrição narrativa, fluxograma convencional e pseudolinguagem, além 
do teste de mesa e do ambiente. Agora você está pronto para seguir para 
a próxima etapa: o estudo da seção seguinte, cujo tema será algoritmos. 
Então, reúna motivação e comprometimento e vá em busca de novos 
saberes!
Unidade de 
estudo 2
Seções de estudo 
Seção 1 – Tipos de dados
Seção 2 – Constantes e variáveis
Seção 3 – Expressões
Seção 4 – Funções
Seção 5 – Atribuição
Seção 6 – Comandos de entrada e saída
21LÓGICA DE PROGRAMAÇÃO
Algoritmos
Seção 1
Tipos de dados
Como você já estudou, um al-
goritmo é constituído de uma 
sequência de instruções a serem 
seguidas para a obtenção de solu-
ções a algum problema. Nessa so-
lução, são manipulados diversos 
dados. Esses dados podem ser os 
apresentados pelo problema – os 
dados intermediários – que são 
gerados durante a execução do 
algoritmo, ou os dados que repre-
sentam a solução do problema.
Com isso, pode-se concluir 
que os dados manipulados 
dentro de um algoritmo po-
dem ser classificados em 
vários tipos, com suas carac-
terísticas e operações. Cada 
linguagem de programação 
tem sua própria classificação.
Todo dado a ser tratado em um 
algoritmo deve pertencer a algum 
tipo, que irá determinar o domínio 
de seu conteúdo. Os tipos mais 
comuns de dados são conhecidos 
como tipos primitivos de dados. 
São eles: inteiro, real, caractere e 
lógico. Quer saber o que cada um 
deles representa? Vamos adiante!
Inteiro
Toda e qualquer informação numérica que pertença ao conjunto dos 
númerosinteiros (negativo, nulo ou positivo).
Exemplos: 39; 0; -56 entre outros.
Real
Toda e qualquer informação numérica que pertença ao conjunto dos 
números reais (negativo, nulo ou positivo, inteiro ou fracionário).
Exemplos: -4, 3; 0, 35; 1,23
Caractere
São caracterizadas como tipos caracteres as sequências contendo letras, 
números e símbolos especiais. Uma sequência de caracteres deve ser 
indicada entre aspas (“ ”). Esse tipo de dado é também conhecido como 
alfanumérico, string, literal ou texto.
Exemplos: “Rua Alfa, 52 Apto 1”; “Fone: 3276-9988”; “04387-456”; “ “; “7”.
Lógico
São caracterizados como tipos lógicos os dados com valores verdadeiros 
e falsos, sendo que podem representar apenas um desses dois valores. 
Ele é chamado por alguns de tipo booleano, devido à contribuição do 
filósofo e matemático inglês George Boole na área da lógica matemática. 
A tabela que você verá a seguir resume os tipos de dados mais comuns 
e sua definição nas linguagens utilizadas no decorrer do material. Veja!
Tabela 2: Tipos de dados
Tipo Exemplo VisuAlg Java
Inteiro 2 | 45 | 100 inteiro int
Real 2,456 | 101,19 real float
Caractere “A” | “4” | “Teste” caractere char / string
Lógico Verdadeiro | Falso logico true / false
22 CURSOS TÉCNICOS SENAI
Seção 2
Constantes e variáveis
Constantes
Constante é um determinado va-
lor fixo que não se modifica ao 
longo do tempo durante a execu-
ção de um programa. Conforme o 
seu tipo, a constante é classificada 
como sendo inteira, real, caractere 
e lógica.
Exemplo: constPI = 3.14
Variáveis
Variável é um objeto (uma posi-
ção frequentemente localizada na 
memória), capaz de armazenar 
um valor ou expressão. As vari-
áveis só “existem” em tempo de 
execução, sendo associadas a “no-
mes”, chamadas identificadores, 
durante a criação dos algoritmos.
Em relação à variável, estamos 
tratando de uma região de memó-
ria (do computador) previamente 
identificada, cuja finalidade é ar-
mazenar os dados ou informa-
ções de um programa por um de-
terminado espaço de tempo. Para 
que você entenda melhor, pense 
que a memória do computador 
se organiza tal qual um armário 
com várias divisões. Cada divisão 
é identificada por um endereço 
diferente em uma linguagem que 
o computador entende.
Assim, o computador armazena 
os dados nessas divisões, sendo 
que em cada divisão só é possível 
armazenar um dado e, toda vez 
que o computador armazenar um 
dado em uma dessas divisões, o 
dado que antes estava armazena-
do é eliminado. Mas lembre-se de 
que o conteúdo pode ser alterado, 
mas somente um dado pode ser 
armazenado por vez naquela di-
visão.
Uma variável é composta por dois 
elementos básicos:
 ▪ conteúdo: valor da variável e 
identificador;
 ▪ nome: dado à variável para 
possibilitar sua utilização e loca-
lização.
O conteúdo de uma variável pode 
ser de vários tipos: inteiro, real, 
caractere ou lógico, entre outros. 
Normalmente, quando se ensi-
na algoritmo, trabalha-se com os 
quatro tipos citados.
Uma vez definidos o nome e o 
tipo de uma variável, não será 
possível alterá-los no decorrer do 
algoritmo. Por outro lado, o con-
teúdo de uma variável é um ob-
jeto de constante modificação no 
decorrer do programa, de acordo 
com o fluxo de execução do mes-
mo.
Em algoritmos, as variáveis serão 
definidas no início, por meio de 
um comando definido conforme 
o exemplo seguinte.
algoritmo “CALCULA_DOBRO”
var
 varNum, varDobro : inteiro
inicio
fimalgoritmo
Existem duas variáveis declaradas. 
Uma é a “varNum” e a outra é a 
“varDobro”, ambas possuindo o 
mesmo tipo de dado, no caso in-
teiro.
Como pode ser visto, “varNum” 
e “varDobro” são os nomes das 
variáveis, e é por meio desses no-
mes que é possível alterar e resga-
tar o valor presente nela.
Quer saber o que são variáveis 
globais e variáveis locais? Então 
vá em frente para saber mais!
Variáveis globais
Uma variável global é uma variá-
vel acessível em todos os escopos 
de um algoritmo. O mecanismo 
de interação com variáveis globais 
é chamado ambiente global.
Mas fique atento! O uso de vari-
áveis globais é geralmente con-
siderado inadequado, pois seu 
conteúdo pode ser potencialmen-
te modificado de qualquer local 
e qualquer parte de um código 
pode depender dele.
Variáveis locais
Variáveis locais são aquelas decla-
radas no início de um subalgorit-
mo. São visíveis, ou seja, podem 
ser utilizadas somente pelo subal-
goritmo onde foram declaradas. 
Outros subalgoritmos ou mesmo 
o algoritmo principal não pode 
utilizá-la.
Variáveis locais somente per-
manecem válidas durante a 
execução da função ou pro-
cedimento e, em seguida, são 
reinicializadas em zero. 
Cada vez que a função é chamada, 
os valores gerados anteriormente 
não estão disponíveis.
E você sabe qual a diferença entre 
constantes e variáveis? Acompa-
nhe!
23LÓGICA DE PROGRAMAÇÃO
Constantes X variáveis
A diferença primordial entre esses 
dois conceitos é que constantes 
são valores inalterados e variável é 
uma entidade capaz de manifestar 
diferenças em valor. Diz-se que 
a variável possui qualquer valor 
dentro de um campo determi-
nado. Atua como uma “gaveta”, 
onde se pode guardar qualquer 
valor, desde que o tipo seja res-
peitado. 
Seção 3
Expressões
Para que você entenda melhor, é 
possível ligar o conceito de ex-
pressão ao conceito de expressão 
(ou fórmula) matemática, onde 
um conjunto de variáveis e cons-
tantes numéricas relaciona-se por 
meio de operadores, compondo 
uma fórmula que, uma vez ava-
liada, resulta em um valor. As ex-
pressões dividem-se em:
 ▪ aritméticas;
 ▪ relacionais;
 ▪ lógicas.
Saiba o que significa cada uma 
delas.
Aritméticas
Expressões aritméticas são aque-
las que apresentam como resulta-
do um valor numérico que pode 
ser um número inteiro ou real, de-
pendendo dos operandos e ope-
radores. Observe os operadores 
aritméticos na tabela seguinte. 
Tabela 3: Operadores aritméticos
Operadores Simbologia Prioridade
Soma + 3
Subtração - 3
Multiplicação * 2
Divisão / 2
Módulo % 2
Exponenciação ^ 1
Radiciação // 1
Mas o que representa a priorida-
de? A prioridade indica a ordem 
em que cada operação deverá ser 
executada. Quanto menor o nú-
mero, maior a prioridade da ope-
ração. Observe que o operador de 
multiplicação é o caractere asteris-
co, um símbolo que é empregado 
na maioria das linguagens para 
essa operação. 
Expressões aritméticas podem 
manipular operandos de dois ti-
pos: reais e inteiros. Se todos os 
operandos de uma expressão são 
do tipo inteiro, então a expres-
são fornece como resultado um 
número inteiro. Caso pelo me-
nos um dos operandos seja real, 
o resultado será real. Isso pode 
parecer estranho a princípio, mas 
esse procedimento reflete a for-
ma como as operações são exe-
cutadas pelos processadores. Por 
exemplo, o resultado da operação 
1/5 é 0, porque os dois operado-
res são inteiros. Caso a expressão 
tivesse sido escrita como 1.2/5, o 
resultado 0.24 seria o correto. A 
seguir temos exemplos de algu-
mas expressões aritméticas. Con-
fira!
 ▪ A + B - C 
 ▪ A / B 
 ▪ 3.14 * (A + B) 
Um ponto importante é a ordem 
de avaliação das expressões. As 
prioridades que você viu na ta-
bela anterior não são suficientes 
para resolver todas as situações. 
Para isso, você precisa conhecer 
algumas regras adicionais. Veja a 
seguir!
 ▪ Deve-se observar primeiro a 
prioridade dos operadores, con-
forme a tabela anterior. Ou seja, 
operadores com maior prioridade 
(números menores) são avaliados 
primeiramente. Caso haja empate 
na ordem de prioridade, deve-se 
resolver a expressão da esquerda 
para a direita. 
 ▪ Parênteses servem para mudar 
a ordem de prioridade de exe-
cução das operações. Quando 
houver parênteses dentro de 
parênteses, as expressões dentro 
dos mais internos são avaliadas 
primeiro. 
Ficou claro até aqui? Para enten-
der melhor, observe alguns exem-
plos que mostram como essas 
regras são aplicadas. Considere as 
seguintes variáveis: 
 ▪ A = 2
 ▪ B = 4 
 ▪ C = 1 
24 CURSOS TÉCNICOS SENAI
Vamos então analisarexpressões 
com essas variáveis e seus resul-
tados. 
 ▪ A * B - C 
 ▪ A * (B - C) 
 ▪ B + A / C + 5 
 ▪ (B + A) / (C + 5) 
A primeira expressão tem como 
resultado o valor 7, como era de 
se esperar. Na segunda expressão, 
a ordem de avaliação foi alterada 
pelos parênteses e primeiro é fei-
ta a subtração e o resultado passa 
a ser 6. A primeira operação na 
terceira expressão é a divisão que 
tem maior prioridade. Nesse caso, 
o resultado final é 11. Na última 
expressão as somas são realizadas 
primeiro e, por último, a divisão, 
ficando o resultado igual a 1.
Relacionais
As expressões relacionais são uti-
lizadas para comparar caracteres 
e números. Os valores a serem 
comparados podem ser literais ou 
variáveis. Esses operadores sem-
pre retornam valores lógicos (ver-
dadeiro ou falso).
Para estabelecer prioridades no 
que diz respeito a qual operação 
executar primeiro podem ser uti-
lizados os parênteses, conforme 
mostrado anteriormente.
Observe os operadores relacionais 
disponíveis na tabela seguinte.
Tabela 4: Operadores relacionais
Descrição Simbologia
Igual a =
Diferente de <>
Maior que >
Menor que <
Maior ou igual a >=
Menor ou igual a <=
 ▪ Não: uma expressão “não» 
inverte o valor da expressão ou 
condição; se verdadeira, inverte 
para falsa e vice-versa.
 ▪ Xou: Uma expressão “xou” 
tem resultado verdadeiro se seus 
dois operandos lógicos forem 
diferentes e falso, se forem iguais.
Os resultados das operações ló-
gicas são sempre valores lógicos 
(verdadeiro ou falso).
Para trabalharmos adequadamen-
te com operadores lógicos, temos 
que conhecer a tabela verdade 
para cada um dos operadores. Ta-
bela verdade? Isso mesmo! Uma 
tabela verdade é o conjunto de to-
das as possibilidades combinató-
rias entre os valores das variáveis 
lógicas, conforme você verá nas 
tabelas seguintes.
Tabela 7: Exemplo de tabela verdade
A B A e B
F F F
F V F
V F F
V V V
A B A ou B
F F F
F V V
V F V
V V V
A B A xou B
F F F
F V V
V F V
V V F
A nao A
F V
V F
Veja agora uma tabela com todos 
os valores possíveis criados pelos 
três operadores lógicos.
Para entender melhor, considere 
alguns exemplos que mostram 
como é possível utilizar os ope-
radores relacionais. Considere as 
seguintes variáveis: 
 ▪ A = 5
 ▪ B = 3 
Vamos então analisar as expres-
sões com essas variáveis e seus 
resultados.
Tabela 5: Expressões com variáveis e 
resultados
Expressão Resultado
A = B Falso
A <> B Verdadeiro
A > B Verdadeiro
A < B Falso
A >= B Verdadeiro
A <= B Falso
Lógicas
As expressões lógicas servem para 
combinar resultados de expres-
sões, retornando se o resultado 
final é verdadeiro ou falso. Veja 
quais são os operadores lógicos a 
seguir.
Tabela 6: Operadores lógicos
Descrição Simbologia
E e
Ou ou
Não nao
Xou xou
Puxa! Quantos dados, não é mes-
mo? Saiba o que cada um signi-
fica.
 ▪ E: uma expressão “e” é verda-
deira se todas as condições forem 
verdadeiras.
 ▪ Ou: uma expressão “ou” é 
verdadeira se pelo menos uma 
condição for verdadeira.
25LÓGICA DE PROGRAMAÇÃO
Tabela 8: Resultados das operações lógicas
Primeiro valor Operador Segundo valor Resultado
Verdadeiro e Verdadeiro Verdadeiro
Verdadeiro e Falso Falso
Falso e Verdadeiro Falso
Falso e Falso Falso
Verdadeiro ou Verdadeiro Verdadeiro
Verdadeiro ou Falso Verdadeiro
Falso ou Verdadeiro Verdadeiro
Falso ou Falso Falso
Verdadeiro nao Falso
Falso nao Verdadeiro
Seção 4
Funções
O conceito de função está intimamente ligado ao conceito de função 
(fórmula) matemática, onde um conjunto de variáveis e constantes nu-
méricas relaciona-se por meio de operadores, compondo uma fórmula 
que, uma vez avaliada, resulta em um valor.
Na verdade, as funções ajudam a reduzir a quantidade de expressões 
dentro de um algoritmo, já que em uma única linha é possível obter 
resultado de uma fórmula matemática que poderia resultar em muitas 
linhas.
E você sabia que existem vários tipos de funções? É verdade! Entre elas, 
podem ser destacadas as seguintes.
 ▪ Numéricas: são aquelas cujo resultado da avaliação é do tipo nu-
mérico, seja ele inteiro ou real. Somente podem ser efetuadas entre 
números propriamente apresentados ou variáveis numéricas.
 ▪ Caractere: são aquelas cujo resultado da avaliação é do tipo carac-
tere. Somente podem ser efetuadas entre caracteres propriamente 
apresentados ou variáveis literais do tipo caractere.
 ▪ Conversão de tipos: são aquelas que convertem valores numéricos 
de um determinado tipo para outro valor numérico de outro tipo.
Entre esses tipos é possível encontrar diversas funções matemáticas, 
descritas conforme a próxima tabela.
26 CURSOS TÉCNICOS SENAI
Tabela 9: Operadores matemáticos
Função Resultado
sen (x) Seno de x
cos (x) Cosseno de x
tg (x) Tangente de x
arcsen (x) Arco cujo seno é x
arccos (x) Arco cujo cosseno é x
arctg (x) Arco cuja tangente é x
abs (x) Valor absoluto (módulo) de x
int (x) A parte inteira de x
frac (x) A parte fracionária de x
ard (x) Arredondamento de x
rnd (x) Valor randômico de x
Um ponto importante é que as funções matemáticas variam conforme a 
linguagem de programação utilizada. 
DICA 
Portanto, uma dica é avaliar a equivalência dos comandos apresenta-
dos anteriormente com o da linguagem escolhida.
Seção 5
Atribuição
Como o próprio nome diz, um comando de atribuição permite fornecer 
um valor a uma variável (guardar um objeto em uma gaveta), em que o 
tipo do dado deve ser compatível com o tipo da variável. Isto é, somente 
podemos atribuir um valor lógico a uma variável capaz de comportá-lo, 
ou seja, uma variável declarada como sendo do tipo lógico.
Veja um exemplo de algoritmo utilizando o comando de atribuição (←).
algoritmo “CALCULA_DOBRO”
var
 varNum, varDobro : inteiro
inicio
 varNum ← 3 + 3
 varDobro ← 2 * varNum
fimalgoritmo
27LÓGICA DE PROGRAMAÇÃO
Nesse exemplo, o resultado final (valor) da variável “varDobro” será 12.
No computador, no momento em que temos uma atribuição, o espaço 
em memória que já estava alocado para as variáveis “varNum” e “var-
Dobro”, porém vazio, receberá o valor das expressões.
Nos comandos em que o valor a ser atribuído à variável é representa-
do por uma expressão aritmética ou lógica, esta deve ser resolvida em 
primeiro lugar, para que depois o resultado possa ser armazenado na 
variável.
Seção 6
Comandos de entrada e saída
Um comando de entrada (leitura) tem por função transferir dados do 
meio externo para a memória de trabalho do computador. Os dados do 
meio externo, na maioria das vezes, entram em nosso computador por 
meio do teclado.
Vamos a mais um exemplo? Veja um algoritmo exemplificando o co-
mando de entrada de dados.
algoritmo “CALCULA_DOBRO”
var
 varNum, varDobro : inteiro
inicio
 leia (varNum)
fimalgoritmo
Como você pode ver nesse exemplo, é possível fazer com que o compu-
tador fique aguardando que um valor seja digitado. O valor digitado será 
armazenado na variável “varNum”.
Ao contrário de um comando de entrada, um comando de saída é utili-
zado quando necessitamos apresentar valores ao meio externo. Os valo-
res são comumente apresentados na tela do computador.
A seguir, você verá um algoritmo exemplificando o comando de saída 
de dados “escreva”:
algoritmo “CALCULA_DOBRO”
var
 varNum, varDobro : inteiro
inicio
 leia (varNum)
 varDobro ← 2 * varNum
 escreva (varDobro)
fimalgoritmo
Nesse exemplo fazemos com que 
o computador aguarde que um 
valor seja digitado. Após, ele efe-
tua um cálculo e, por fim, exibe o 
resultado desse cálculo armazena-
do na variável “varDobro” na tela 
do computador.
Mais uma etapa cumprida e 
quanto conhecimento novo, não 
é mesmo? Nesta unidade você 
aprendeu sobre os algoritmos, os 
tipos de dados, constantes e vari-
áveis, viu o que são as expressões, 
as funções, a atribuição e os co-
mandos de entrada e saída. Foi 
um estudo muito interessante, 
não é mesmo? E não para por aí. 
Na próxima unidade você estu-
dará sobre estruturas de seleção. 
Lembre-se de buscar novasinfor-
mações sobre os temas estudados 
e praticar. Em frente! 
Unidade de 
estudo 3
Seções de estudo 
Seção 1 – Introdução
Seção 2 – Comando Se
Seção 3 – Ninhos de comando Se
Seção 4 – Comando Escolha
29LÓGICA DE PROGRAMAÇÃO
estruturas de Seleção 
Seção 1
Introdução
Para iniciar o estudo, é importante 
ressaltar que existem problemas 
que podem ter mais de um ca-
minho para serem resolvidos em 
uma seleção correta. Muitas vezes 
também podem existir restrições 
nas soluções. Portanto, para exe-
cutar o algoritmo, em dado mo-
mento é preciso tomar a decisão 
do caminho que deverá ser segui-
do para chegar à solução correta 
para o problema.
A decisão do caminho a ser se-
guido precisa estar fundamenta-
da em alguma lógica. E é função 
de quem escreve o algoritmo dar 
condições para o sujeito que o 
executa fazer a escolha correta do 
caminho para se chegar à solução 
do problema.
Um exemplo simples de proble-
ma que pode ter metodologias 
diferentes em sua solução são os 
cálculos das raízes de equações 
polinomiais de 2° grau (ax2 + bx 
+ c = 0). Se o termo b2 – 4ac for 
maior ou igual a zero, as raízes 
serão reais. Caso contrário, serão 
complexas.
Não seria correto escrever um al-
goritmo que resolvesse somente 
a parte de raízes reais ou a parte 
complexa, pois a metodologia que 
vai ser usada somente será conhe-
cida na execução do algoritmo. 
Logo, é preciso descrever a solu-
ção por ambas as metodologias, 
mas deixando claro para quem irá 
executá-la que será preciso fazer 
uma escolha entre os caminhos 
possíveis.
Mas se deixássemos a critério de 
quem executa o algoritmo, será 
que ele sempre escolheria o ca-
minho correto? Não se pode ar-
riscar. Por isso, além de saber que 
existe mais de um caminho para 
a solução do problema, é preciso 
prover subsídios para que o mes-
mo faça a escolha do caminho 
correto.
Assim, o simples fato de informar 
que a solução do problema tem 
duas ou mais metodologias dife-
rentes em sua solução não funcio-
naria. É preciso dizer em quais si-
tuações ele utilizará a metodologia 
A e quando utilizará a B.
No caso das raízes de polinômio 
de 2° grau, é possível utilizar a se-
guinte descrição narrativa:
 ▪ se o resultado de b2 – 4ac for 
maior ou igual a zero:
 ▪ então utilize a metodo-
logia de cálculo de raízes 
reais;
 ▪ caso contrário, utilize a 
metodologia de cálculo de 
raízes complexas.
Até agora, os algoritmos seguiram 
um mesmo padrão: entrava-se 
com dados, que eram processados 
e alguma informação era mostra-
da na tela.
Dessa forma, o computador mais 
parecia uma máquina de calcular. 
O aprendizado de novos concei-
tos, como a estrutura de seleção, 
dará uma visão maior da comple-
xidade de tarefas que ele poderá 
executar.
E que tal agora refletir sobre a 
importância dessa estrutura? Para 
isso, leia com atenção as afirmati-
vas seguintes:
 ▪ Distribuição gratuita de cestas 
básicas.
 ▪ Distribuição gratuita de cestas 
básicas para as famílias com qua-
tro ou mais componentes.
 ▪ Distribuição gratuita de in-
gressos para o teatro, sendo dois 
para pessoas do sexo feminino e 
um para pessoas do sexo mascu-
lino.
O que você pôde concluir com es-
sas afirmações? 
 ▪ Na primeira, todas as pes-
soas recebem a cesta básica, o 
que equivaleria a um comando 
sequencial.
 ▪ Na segunda, só recebem as 
cestas básicas as famílias com 
pelo menos quatro integrantes.
 ▪ Na terceira, dependendo 
do sexo, recebe-se um ou dois 
ingressos.
30 CURSOS TÉCNICOS SENAI
Assim, é possível avaliar a importância do teste nas duas últimas afirma-
tivas, pois ações diferentes são executadas de acordo com o resultado.
Seção 2
Comando Se
É muito comum ver situações em programação, assim como na prática, 
em que se decide por um ou por outro procedimento, de acordo com 
certas condições. Por exemplo, ao dizer “SE estiver chovendo ENTÃO leve 
um guarda-chuva”.
Certamente você já passou por alguma situação como essa, certo? Ob-
serve um exemplo de seleção simples.
Figura 5: Exemplo de seleção simples
A figura anterior significa que certa ação (levar o guarda-chuva) deverá 
ser tomada se a condição (estar chovendo) for verdadeira. Caso contrá-
rio, a ação não será realizada.
Em alguns casos, especifica-se também o que deverá ser feito caso a 
condição não se cumpra, onde: “SE a piscina estiver livre ENTÃO faça 
natação, CASO CONTRÁRIO faça uma caminhada”.
31LÓGICA DE PROGRAMAÇÃO
Figura 6: Exemplo de seleção composta
Essas situações são muito comuns em programação, razão pela qual será 
preciso recorrer aos comandos de seleção (ou de decisão). 
A condição Se-Então (-Senão) é uma estrutura de seleção comum em di-
versas linguagens de programação. Sua estrutura básica é a seguinte.
algoritmo “SE”
var
 varNum : inteiro
inicio
 se varNum < 10 entao
 escreva (“Número menor que 10”)
 senão
 escreva (“Número maior ou igual a 10”)
 fimse
fimalgoritmo
Quando o interpretador encontra o identificador Se, ele espera em se-
guida uma condição booleana sob forma de expressão relacional (como 
por exemplo, “varNum < 10”), que pode ser verdadeira ou falsa. Se a 
condição é verdadeira, o bloco de código seguido de Então é executado. 
Caso a condição seja falsa, o bloco de código seguido de Senão é execu-
tado. Em ambos os casos, após a execução do bloco de código, o fluxo 
do programa é retornado para o ponto indicado por Fim Se. Note que 
a parte do Senão é opcional e pode ser omitida. Caso seja omitida, a es-
trutura é chamada de seleção simples; caso contrário, é chamada seleção 
composta.
Seção 3
Ninhos de comando Se
Dentro de um comando de sele-
ção (comando Se) é possível co-
locar qualquer tipo de comando. 
Assim, dentro de um comando Se, 
pode-se ter outros comandos de 
seleção. Veja a seguir.
algoritmo “MAXIMO”
var
 varNum1, varNum2 : in-
teiro
inicio
 leia (varNum1)
 leia (varNum2)
 se varNum1 > varNum2 
entao
 escreva (“Maior valor é 
o primeiro”)
 senão
 escreva (“Maior valor é 
o segundo”)
 fimse
fimalgoritmo
Como você pode perceber, nesse 
algoritmo é determinado o maior 
valor entre dois valores. Se os dois 
números forem iguais, o algorit-
mo informará que o “varNum2” 
é o maior valor, o que obviamente 
não é verdade. Assim, esse algo-
ritmo não está correto. Note que 
nesse problema há três situações 
possíveis: “varNum1” maior que 
“varNum2”, “varNum1” menor 
que “varNum2” e os dois com va-
lores iguais. Utilizando um único 
comando Se, conseguimos ava-
liar apenas duas situações. Para 
levar em conta as três situações, 
outro comando de seleção faz-se 
necessário. Quer saber a seleção 
para esse problema? Então veja o 
exemplo seguinte. 
32 CURSOS TÉCNICOS SENAI
algoritmo “MAXIMO”
var
 varNum1, varNum2 : inteiro
inicio
 leia (varNum1)
 leia (varNum2)
 se varNum1 > varNum2 entao
 escreva (“Maior valor é o primeiro”)
 senão
 se varNum1 < varNum2
 escreva (“Maior valor é o segundo”)
 senão
 escreva (“Os dois valores são iguais”)
 fimse
 fimse
fimalgoritmo
Note que, nessa nova versão, caso o valor da expressão “varNum1 > 
varNum2” seja falso, o fluxo de execução irá executar o que estiver den-
tro do Senão do primeiro Se. Dentro do Senão do primeiro Se, um outro 
Se é executado, sendo então verificado se o conteúdo de “varNum1” é 
menor que conteúdo de “varNum2”. Veja que o comando de seleção 
que está colocado dentro do Senão do primeiro Se, só será executado se 
ao executar o primeiro Se, a expressão for falsa. Em seguida, é feita a 
verificação se o conteúdo de “varNum1” é menor que o conteúdo de 
“varNum2”. Caso positivo, será definido que o conteúdo de “varNum2” 
é maior, senão definirá que ambos são iguais.
E você já ouviu falar no Comando Escolha? Mesmo que não saiba o que 
é fique tranquilo, pois esse será o tema da seção seguinte. Até lá!
Seção 4
Comando Escolha
Quando um conjunto de valores discretos precisa ser testado e açõesdiferentes são associadas a esses valores, estamos diante de uma seleção 
com ninhos de comando Se. Como essa situação é bastante frequente 
na construção de algoritmos que dependem de alternativas, utilizaremos 
uma estrutura específica para esses casos: a seleção de múltipla escolha.
O comando Escolha é uma alternativa para os comandos Se aninhados, dei-
xando o algoritmo com uma estrutura melhor.
Suponha que o conceito de um 
aluno seja determinado em fun-
ção de sua nota. Suponha também 
que essa nota seja um valor inteiro 
na faixa de 1 a 4. O problema está 
na seguinte situação: dada a nota, 
determine o respectivo conceito. 
Considere ainda os conceitos que 
você verá na tabela seguinte.
Tabela 10: Notas e conceitos
Nota Conceito
1 Insuficiente
2 Regular
3 Bom
4 Ótimo
Para resolver o problema, veja a 
seguir o algoritmo por meio da 
utilização de Se´s aninhados.
33LÓGICA DE PROGRAMAÇÃO
algoritmo “CONCEITO”
var
 varNota : inteiro
 varConceito : caractere
inicio
 leia (varNota)
 se varNota = 1 entao
 varConceito ← “Insuficiente”
 senão
 se varNota = 2
 varConceito ← “Regular”
 senão
 se varNota = 3
 varConceito ← “Bom”
 senão
 varConceito ← “Ótimo”
 fimse
 fimse
 fimse
 escreva (varConceito)
fimalgoritmo
Perceba que, no algoritmo anterior, vários testes são feitos sobre o con-
teúdo da variável “varNota”. Em vez de escrevermos os vários testes 
utilizando Se´s aninhados e considerando que todos os testes são realiza-
dos sobre uma mesma expressão, é possível utilizar um comando alter-
nativo, que tem essa função. Trata-se do comando Escolha, cuja função é 
tornar possível a escolha de uma alternativa, entre as várias disponíveis. 
Usando o comando Escolha, o problema de determinação do conceito de 
um aluno pode ser resolvido conforme apresentado no próximo algorit-
mo. Acompanhe com atenção!
algoritmo “CONCEITO”
var
 varNota : inteiro
 varConceito : caractere
inicio
 leia (varNota)
 escolha varNota
 caso 1
 varConceito ← “Insuficiente”
 caso 2
 varConceito ← “Regular”
 caso 3
 varConceito ← “Bom”
 outrocaso
 varConceito ← “Ótimo”
 fimescolha
 escreva (varConceito)
fimalgoritmo
Com isso, ao executar o comando 
Escolha no algoritmo anterior, será 
avaliada cada uma das opções de 
valores de “varNota”. Portanto, 
veja que a opção 1, por exemplo, 
significa valor igual a 1. Assim, se 
o valor de “varNota” for igual ao 
da comparação, essa opção será 
satisfeita. As opções serão sempre 
avaliadas na ordem em que apa-
recem e será executada a instru-
ção relativa à primeira opção que 
satisfazer o valor de “varNota”. 
Caso nenhuma das opções satis-
faça o valor da expressão do co-
mando Escolha, serão executadas 
as instruções colocadas no Outro-
caso.
Quantos comandos importantes 
você aprendeu nesta unidade de 
estudo, não é mesmo? O coman-
do Se, os ninhos de comando Se e 
o comando Escolha certamente se-
rão muito úteis para seus cálculos! 
Existem muitos outros comandos 
que você aprenderá no decorrer 
desta unidade curricular. Então 
não perca tempo. Aplique seus 
conhecimentos praticando e siga 
com dedicação e disciplina!
Unidade de 
estudo 4
Seções de estudo 
Seção 1 – Introdução
Seção 2 – Comando Enquanto
Seção 3 – Comando Repita
Seção 4 – Comando Para
35LÓGICA DE PROGRAMAÇÃO
estruturas de Repetição 
Seção 1
Introdução 
Existem situações em que, para 
obter-se a solução do problema, é 
necessário fazer com que um con-
junto de instruções seja executado 
várias vezes. Esta unidade de es-
tudo tem por objetivo apresentar 
e discutir estruturas que possibi-
litem a execução de um conjunto 
de instruções por várias vezes, 
com o programador escrevendo 
este conjunto apenas uma vez.
Em detalhes, uma estrutura de re-
petição é uma estrutura de desvio 
do fluxo de controle que realiza 
e repete diferentes ações depen-
dendo se uma condição é verda-
deira ou falsa, em que a expressão 
é processada e transformada em 
um valor booleano. Estão associa-
das a uma estrutura de repetição 
uma condição (também chamada 
“expressão de controle” ou “con-
dição de parada”) e um bloco de 
código: verifica-se a condição e, 
caso seja verdadeira, o bloco é 
executado. Após o final da execu-
ção do bloco, a condição é verifi-
cada novamente e, caso ela ainda 
seja verdadeira, o código é execu-
tado novamente.
Mas atenção! Caso o bloco de có-
digo nunca modifique o estado da 
condição, observe que a estrutu-
ra será executada para sempre. E 
essa será uma situação chamada 
laço infinito. Da mesma forma, é 
possível especificar uma estrutura 
em que o bloco de código modifi-
ca o estado da condição, mas esta 
é sempre verdadeira.
Algumas linguagens de programa-
ção especificam ainda uma palavra 
reservada para sair da estrutura de 
repetição de dentro do bloco de 
código, “quebrando” a estrutura. 
Também é oferecida por algumas 
linguagens uma palavra reservada 
para terminar uma iteração espe-
cífica do bloco de código, forçan-
do uma nova verificação da con-
dição.
Ficou claro até aqui? Esta unida-
de de estudo é uma das mais im-
portantes para o seu estudo! Você 
notará que a partir desse ponto 
começará a ter mais dificuldade 
na resolução dos algoritmos em 
função da dificuldade de entender 
onde as estruturas de repetição 
deverão ser colocadas para aten-
der às exigências dos enunciados. 
Portanto, continue atento!
Vamos a um exemplo. Suponha 
que um determinado clube social 
tenha registrado a quantidade de 
latas de cerveja vendidas no últi-
mo carnaval. Considerando que 
cada lata foi vendida a R$ 1,40, 
deseja-se saber o total arrecadado 
no último carnaval, com a venda 
das latas de cerveja. Obviamente 
que para esse problema tem-se 
como entrada a quantidade de 
latas vendidas e deseja-se saber, 
como solução do problema, qual 
o total arrecadado. Veja a seguir o 
respectivo algoritmo.
algoritmo “QUANTIDADE_
ARRECADADA”
var
 varQuantidadeVendida : in-
teiro
 varValorArrecadado : real
inicio 
 leia (varQuantidadeVendi-
da)
 varValorArrecadado ← var-
QuantidadeVendida * 1,40
 escreva (varValorArrecada-
do)
fimalgoritmo
36 CURSOS TÉCNICOS SENAI
Como você pôde perceber, o problema apresentado consiste em de-
terminar o total arrecadado com a venda de latas de cerveja no último 
carnaval. Se desejarmos determinar o total arrecadado em cada um dos 
último três carnavais, o algoritmo poderia ser escrito da forma seguinte:
algoritmo “QUANTIDADE_ARRECADADA”
var
 varQuantidadeVendida : inteiro
 varValorArrecadado : real
inicio 
 // Total arrecadado no último ano
 leia (varQuantidadeVendida)
 varValorArrecadado ← varQuantidadeVendida * 1,40
 escreva (varValorArrecadado)
 // Total arrecadado no penúltimo ano
 leia (varQuantidadeVendida)
 varValorArrecadado ← varQuantidadeVendida * 1,40
 escreva (varValorArrecadado)
 // Total arrecadado no antepenúltimo ano
 leia (varQuantidadeVendida)
 varValorArrecadado ← varQuantidadeVendida * 1,40
 escreva (varValorArrecadado)
fimalgoritmo
Observe no algoritmo anterior que a solução do problema é a mesma 
para cada ano. Assim, as instruções para cada um dos anos podem ser 
as mesmas. Veja também que, se você quisesse determinar o total arre-
cadado em cada um dos últimos 30 anos, usando a mesma metodologia, 
teríamos que escrever 30 vezes o mesmo conjunto de instruções, o que 
obviamente se tornaria impraticável.
Considerando que para cada um dos casos as instruções a serem execu-
tadas são as mesmas, é muito mais adequado que se escreva um conjunto 
de instruções apenas uma vez, e que instrua o computador para que 
repita a execução das instruções por um determinado número de vezes.
Os laços de repetição também são conhecidos por sua tradução em inglês: 
loops ou looping. Ganham esse nome por lembrarem uma execução finita 
em círculos, quedepois segue seu curso normal.
Nesta unidade, você estudará três tipos de estrutura de repetição: com 
teste no início (comando Enquanto), com teste no final (comando Repita) 
e automática (comando Para). Ficou curioso para saber o que cada um 
dos comandos representa? Vamos iniciar com o comando Enquanto. Em 
frente!
Seção 2
Comando Enquanto
O comando Enquanto é uma estrutura recomendada quando o número 
de repetições for desconhecido, sendo necessária uma chave (um teste) 
para interromper a repetição.
Consiste em uma estrutura de 
controle do fluxo de execução 
que permite repetir diversas 
vezes um mesmo trecho do 
algoritmo, porém, sempre ve-
rificando antes de cada exe-
cução se é permitido executar 
o mesmo trecho.
Para realizar a repetição com tes-
te no início, utilizamos a estrutu-
ra Enquanto, que permite que um 
bloco ou uma ação primitiva seja 
repetido enquanto uma determi-
nada Condição for verdadeira. O 
modelo genérico desse tipo de re-
petição é o que você verá a seguir.
algoritmo “ENQUANTO”
inicio 
 enquanto <condição> faca
 // Trecho a ser repetido
 fimenquanto
fimalgoritmo
Preste atenção! Quando o resulta-
do de Condição for falso, o coman-
do de repetição é abandonado. Se 
já da primeira vez o resultado é 
falso, os comandos não são exe-
cutados nenhuma vez, o que re-
presenta a característica principal 
desse modelo de repetição.
Com isso, é possível concluir que 
em algum momento do processo 
de repetição das instruções inter-
nas ao comando Enquanto será 
necessário que a expressão lógi-
ca assuma o valor falso, pois, do 
contrário, o fluxo jamais sairá de 
dentro do Enquanto e o conjunto 
de instruções será repetido infini-
tas vezes.
Para que você entenda melhor, 
veja a seguir um exemplo de análi-
se de saldo bancário. Se você qui-
ser um algoritmo que faça a análi-
se para dez contas, pode escrever 
a solução conforme o exemplo.
37LÓGICA DE PROGRAMAÇÃO
algoritmo “ANALISE_BANCARIA”
var
 varSaldo : real
 varConta, varContador : inteiro
inicio
 varContador ← 0 
 enquanto varContador < 10 faca
 varContador ← varContador + 1
 leia (varConta)
 leia (varSaldo)
 se varSaldo < 0 entao
 escreva (varConta, “ está estourada”)
 senao
 escreva (varConta, “ está normal”)
 fimse
 fimenquanto
fimalgoritmo
Observe que no algoritmo anterior utilizamos uma variável “varConta-
dor”, que inicialmente assume o valor zero. Na primeira vez que o fluxo 
de execução chega ao Enquanto, a expressão lógica “varContador < 10” 
tem o valor verdadeiro. Assim, são executados todos os comandos in-
ternos do Enquanto. Observe também que no interior do comando En-
quanto colocamos o comando “varContador ß varContador + 1”, o qual 
fará com que o conteúdo da variável “varContador” seja incrementado 
de uma unidade toda vez que o mesmo for executado.
Mas o que é incrementar nesse tipo de cálculo?
Incrementar é o mesmo que somar um valor constantemente. O pon-
teiro dos segundos de um relógio é um legítimo contador de segun-
dos, que sempre vai incrementando 1 a cada instante de tempo, equi-
valente a 1 segundo. Quando atinge 60 segundos, é a vez do ponteiro 
dos minutos ser incrementado e assim por diante.
E o comando Repita, você sabe qual sua função? Esse será o assunto da 
próxima seção!
Seção 3
Comando Repita
O comando Repita é uma estrutu-
ra recomendada quando o núme-
ro de repetições for desconheci-
do, sendo necessária uma chave 
(um teste) para interromper a re-
petição.
Sua diferença em relação ao En-
quanto é que ele testa ao final, exe-
cutando o trecho pelo menos uma 
vez.
Essa estrutura também precisa de 
uma condição para interromper a 
repetição. Veja um modelo gené-
rico:
algoritmo “REPITA”
inicio 
 repita
 // Trecho a ser repetido
 ate <condição>
fimalgoritmo
Quando o fluxo de execução che-
gar ao Repita, automaticamente 
serão executados os comandos 
internos ao Repita. Chegando no 
ate, será avaliada a condição. Se a 
condição for falsa, então o fluxo de 
execução retornará ao Repita, e os 
comandos internos serão nova-
mente executados. Quando o flu-
xo de execução chegar no ate e a 
condição for verdadeira, a execução 
sairá do Repita.
O algoritmo seguinte utiliza o Re-
pita para determinar o melhor alu-
no de uma turma. Observe com 
atenção!
38 CURSOS TÉCNICOS SENAI
algoritmo “MELHOR_ALUNO”
var
 varNota, varMaximo, varQuantidade, varContador : inteiro
 varNome, varMelhor : caractere
inicio
 escreval (‘Entre com a quantidade de alunos’)
 leia (varQuantidade)
 varMaximo ← -1
 varContador ← 0
 repita
 escreval (“Entre com o nome do aluno”)
 leia (varNome)
 repita
 escreval (“Digite um valor de 0 a 10”)
 leia (varNota)
 ate (varNota >=0) e (varNota <= 10)
 se varNota > varMaximo entao
 varMaximo ← varNota
 varMelhor ← varNome
 fimse
 varContador ← varContador + 1
 ate varContador = varQuantidade
fimalgoritmo
Ficou mais fácil com o exemplo, não é mesmo? Como você pôde ver, 
a cada vez que for executado o conjunto de instruções internas ao pri-
meiro comando Repita, um aluno é processado. Ou seja, é solicitado o 
nome e a nota de cada aluno. Cada nota de um aluno é comparada com 
o conteúdo da variável “varMaximo” e, se o conteúdo de “varNota” 
for maior que “varMaximo”, então é possível concluir que essa nota 
é a maior entre as que já foram processadas. Portanto, o conteúdo de 
“varMaximo” deve ser alterado para o valor de “varNota”. Como o al-
goritmo se propõe a determinar também qual o nome do melhor aluno, 
então toda vez que for encontrada uma nota maior que o conteúdo de 
“varMaximo”, o nome do aluno é salvo na variável “varMelhor”. Note 
que, a cada aluno processado, o conteúdo da variável “varContador” 
é incrementado em uma unidade, resultando em algum momento do 
processo de repetição, que a expressão “varContador = varQuantidade” 
assumirá o valor verdadeiro, fazendo com que a repetição seja encerrada.
Ainda no algoritmo, o segundo comando Repita faz com que o valor lido 
para nota do aluno esteja no intervalo de 0 a 10. Veja que este Repita só 
é encerrado se a expressão “(varNota >= 0) e (varNota <= 10)” tiver 
o valor verdadeiro. Sempre que a expressão for avaliada e apresentar o 
valor falso, o fluxo retornará ao respectivo Repita e será solicitado que o 
usuário digite novamente a nota.
O último comando dessa unidade é o Para. Está pronto para saber mais 
sobre ele? Adiante!
Seção 4
Comando Para
O comando Para é usado quando 
o número de repetições for co-
nhecido durante a elaboração do 
algoritmo ou quando puder ser 
fornecido durante a execução.
Nas estruturas de repetição vis-
tas até agora, ocorrem casos em 
que se torna difícil determinar o 
número de vezes em que o blo-
co será executado. Sabemos que 
ele será executado enquanto uma 
condição for satisfeita (Enquanto), 
ou até que uma condição seja sa-
tisfeita (Repita). A estrutura Para 
é diferente, já que sempre repete 
a execução do bloco durante um 
número predeterminado de vezes, 
pois ela não prevê uma condição 
e possui limites fixos.
Quer saber qual o modelo gené-
rico para a estrutura de repetição 
Para? Então veja a seguir. 
algoritmo “PARA”
inicio 
 para <variável> de <valor 
inicial> ate <valor limite> faca
 // Trecho a ser repetido
 fimpara
fimalgoritmo
Onde:
 ▪ <variável >: é a variável conta-
dora que controla o número de 
repetições;
 ▪ <valor inicial>: é uma expres-
são que especifica o valor de ini-
cialização da variável contadora 
antes da primeira repetição;
 ▪ <valor limite >: é uma ex-
pressão que especifica o valor 
máximo que a variável contadora 
pode alcançar.
39LÓGICA DE PROGRAMAÇÃO
<valor inicial > e <valor limite > são 
avaliados uma única vez antes da 
execução da primeira repetição e 
não se alteram durante a execução 
da repetição,mesmo que variáveis 
eventualmente presentes nessas 
expressões tenham seus valores 
alterados.
No exemplo a seguir, os números 
de 1 a 10 são exibidos em ordem 
crescente. Observe!
Veja que no algoritmo anterior a 
variável de controle do Para é a 
“varMes”. A variável “varMes”, 
conforme especifica o comando, 
assume os valores inteiros que 
vão de 1 até 12. Para cada valor de 
“varMes”, as instruções internas 
ao Para são executadas. O valor 
do incremento, quando não espe-
cificado, o que é possível incluin-
do “passo <valor do incremento>”, 
no comando Para antes do faca, 
sempre é 1.
Vamos assumir que ao chegar no 
Para pela primeira vez será calcu-
lado o número de vezes que as 
instruções internas ao Para se-
rão executadas. A determinação 
do número de repetições é feita 
usando-se os valores inicial e li-
mite, combinados com o valor 
do incremento para a variável de 
controle. Assim, estamos assu-
mindo também que não será pos-
sível abandonar a repetição das 
instruções antes que o número de 
repetições seja alcançado.
Veja então, que o comando Para 
só pode ser utilizado quando você 
souber o número de vezes que se 
quer repetir.
Confira a seguir um exemplo do 
comando Para, utilizando um in-
cremento diferente do padrão.
algoritmo “NUMEROS”
var
 varJ : inteiro
inicio 
 para varJ de 1 ate 10 passo 
2 faca
 escreval (varJ)
 fimpara
fimalgoritmo
No exemplo anterior, serão escri-
tos somente os valore 1, 3, 5, 7 e 
9. Para o valor do passo também 
é possível definir um valor negati-
vo, que fará a repetição subtrair o 
valor definido até chegar a 0. Nes-
se caso, o valor inicial deverá ser 
maior que o valor final.
Mais uma unidade chega ao final 
e agora você já tem muitos conhe-
cimentos novos. Aqui você apren-
deu sobre as estrutura de repeti-
ção, com os comandos Enquanto, 
Repita e Para. Siga em frente, pois 
tem muita coisa interessante 
aguardando por você! Faça do seu 
estudo um momento significativo 
e prazeroso! 
algoritmo “NUMEROS”
var
 varJ : inteiro
inicio 
 para varJ de 1 ate 10 faca
 escreval (varJ)
 fimpara
fimalgoritmo
Para entender melhor, veja mais 
um exemplo da utilização da es-
trutura Para. O mesmo determina 
o total arrecadado para um clube 
no final do ano.
algoritmo “BALANCO”
var
 varMes : inteiro
 varSoma, varReceita, varDespesa : real
inicio
 varSoma ← 0
 
 para varMes de 1 ate 12 faca
 escreval (“Digite a receita e a despesa do mês de “, varMes)
 leia (varReceita)
 leia (varDespesa)
 
 varSoma ← varSoma + (varReceita - varDespesa)
 fimpara
 escreva(“Total arrecadado durante o ano “, varSoma)
fimalgoritmo
Unidade de 
estudo 5
Seções de estudo 
Seção 1 – Introdução
Seção 2 – Vetores
Seção 3 – Matrizes
41LÓGICA DE PROGRAMAÇÃO
estruturas Homogêneas
Seção 1
Introdução 
Para iniciar o estudo, é importante destacar que as estruturas de dados 
homogêneos possibilitam o armazenamento de grupos de valores em 
uma única variável que será armazenada na memória do computador. 
Mas por que essas estruturas são chamadas de homogêneas? Porque os 
valores que serão armazenados são de um mesmo tipo de dado.
As estruturas homogêneas são divididas em unidimensionais e multidi-
mensionais. Normalmente, as estruturas unidimensionais são chamadas 
de vetores e as multidimensionais são chamadas de matrizes. De fato, um 
vetor também é uma matriz, porém varia em somente uma dimensão.
No intuito de compreender as facilidades do processamento de valores 
usando adequadamente uma estrutura de dados, observe o algoritmo 
a seguir, supondo a necessidade de armazenamento da altura de cinco 
atletas.
algoritmo “ATLETA”
var
 varAltura1, varAltura2, varAltura3, varAltura4, varAltura5 : real
inicio
 escreval (“Informe a altura do primeiro atleta: “)
 leia (varAltura1)
 escreval (“Informe a altura do segundo atleta: “)
 leia (varAltura2)
 escreval (“Informe a altura do terceira atleta: “)
 leia (varAltura3)
 escreval (“Informe a altura do quarto atleta: “)
 leia (varAltura4)
 escreval (“Informe a altura do quinto atleta: “)
 leia (varAltura5)
fimalgoritmo
Esse algoritmo possibilitaria a 
leitura de cinco alturas de cinco 
atletas diferentes e as armazena-
ria em cinco variáveis distintas 
(varAltura1, varAltura2, varAltu-
ra3, varAltura4, varAltura5). Uma 
instrução de repetição não me-
lhoraria muito essa lógica, pois os 
cinco valores precisarão estar dis-
poníveis independente dos outros 
valores informados. Mas imagine 
se a leitura das alturas tivesse que 
ser realizada para um time de fu-
tebol, ou para uma equipe de fute-
bol americana, por seu algoritmo, 
o que seria feito, então? E se em 
um próximo campeonato seu al-
goritmo fosse usado para registrar 
todos os participantes de todas as 
equipes que participam da com-
petição?
Em situações como essa é que as 
estruturas de dados fazem a dife-
rença, sendo essenciais ao proces-
samento dos dados eficiente por 
um computador. 
42 CURSOS TÉCNICOS SENAI
Seção 2
Vetores
Uma estrutura de dados compos-
ta de forma homogênea e unidi-
mensional, ou vetor, é um arranjo 
de elementos (dados) armazena-
dos na memória do computador, 
sendo que esses dados são organi-
zados de forma eficiente um após 
o outro, sob um mesmo identifi-
cador, cujas regras são as mesmas 
para criar um identificador de 
uma variável simples, que possui 
capacidade de guardar somente 
um valor. 
Um vetor é uma estrutura de 
dados homogênea que pode 
ser acessado de forma aleató-
ria (qualquer posição que seja 
necessária). 
Suas principais características são:
 ▪ contém vários valores (núme-
ro definido); 
 ▪ todos os valores são do mes-
mo tipo de dado (homogênea); 
 ▪ possui um único nome (identi-
ficador da variável); 
 ▪ cada valor do conjunto é 
acessível independentemente, 
de acordo com o seu índice (ou 
posição na estrutura de dados); 
 ▪ todos os seus elementos, ou 
dados armazenados, são igual-
mente acessíveis a qualquer mo-
mento do processamento (acesso 
aleatório). 
Modificando a forma de solução 
do algoritmo anterior, que pos-
suía cinco variáveis para guardar 
cinco alturas de atletas, é possível 
empregar um vetor para armaze-
nar essas cinco alturas.
 ▪ Único identificador dessa estrutura de dados = alturas
Mas o que representam os Valores e os Índices? Os Valores correspon-
dem aos conteúdos lidos pelo usuário, ou seja, são as alturas dos atletas.
Os Índices são as posições que garantem independência a cada um desses 
valores armazenados na estrutura de dados homogênea. Por meio desses 
índices, também chamados de posições do vetor, seus valores (conteú-
dos) podem ser manipulados de forma independente.
Imagine a necessidade de mostrar a altura do maior atleta cadastrado 
nesse vetor. Entre essas cinco alturas, a maior é a quarta no vetor. Como 
o índice de uma estrutura de dados inicia sempre a partir de zero, a quar-
ta altura está armazenada na terceira posição da estrutura, sendo o con-
teúdo dessa posição (3) igual a 2.20 (altura do quarto atleta cadastrado).
Os vetores são chamados de estruturas compostas unidimensionais. E 
você sabe por quê? São compostas pois podem armazenar vários valo-
res. E unidimensionais, pois só possuem variação em uma dimensão. 
Declaração de vetor
A sintaxe correta para declaração de uma estrutura de dados composta 
homogênea unidimensional (vetor), na representação de português es-
truturado, deve respeitar a seguinte forma geral:
algoritmo “VETOR”
var
 <identificador> : vetor [<valor inicial>..<valor final>] de <tipo de 
dado>
inicio 
fimalgoritmo
Onde:
 ▪ <tipo de dado> – tipo de dado que será armazenado no vetor;
 ▪ <identificador> – nome definido ao vetor, respeitando as regras de 
identificação;
 ▪ <valor inicial> e <valor final> – são os valores inteiros que definem 
início e fim dos índices do vetor, sendo o seu intervalo a quantidade 
exata de elementos do vetor, ou seja, seutamanho.
43LÓGICA DE PROGRAMAÇÃO
Veja mais um exemplo.
algoritmo “ALTURAS”
var
 vetAlturas : vetor [0..4] de 
real
inicio 
fimalgoritmo
Nesse exemplo será criado um 
vetor chamado alturas, que pode-
rá armazenar até cinco números 
reais diferentes. E veja bem! Uma 
atenção especial deve ser dedicada 
na compreensão de que esse tipo 
de estrutura de dados tem seu pri-
meiro elemento armazenado na 
posição zero e não na um. 
Poucas linguagens de programa-
ção não seguem esse padrão. Ele é 
comumente adotado pela maioria 
das linguagens de desenvolvimen-
to de programas. 
O gráfico a seguir representa a or-
ganização de um vetor com tama-
nho três. Confira!
algoritmo “VETOR”
var
 vetValores : vetor [0..2] de 
inteiro
inicio 
fimalgoritmo
Figura 7: Organização de um vetor com 
tamanho três
Normalmente é utilizada uma instrução de repetição para guardar e 
acessar os dados que são armazenados em um vetor (seu conteúdo).
Suponha que exista a necessidade de leitura e armazenamento das cinco 
alturas de atletas em um vetor que tenha capacidade de realizar esse ar-
mazenamento. Saiba mais com um exemplo.
algoritmo “ALTURAS”
var
 varAuxiliar : inteiro
 vetAlturas : vetor [0..4] de real
inicio
 para varAuxiliar de 0 ate 4 faca
 escreval (“Informe a altura do “, varAuxiliar + 1 , “º atleta”)
 leia (vetAlturas[varAuxiliar])
 fimpara 
fimalgoritmo
Nesse exemplo, são criados somente duas variáveis, sendo uma deno-
minada auxiliar e a outra alturas, que consiste em um vetor de cinco 
posições (índice de zero até quatro). Esse vetor possui um único iden-
tificador, mas tem a capacidade de armazenar até cinco valores reais 
como seu conteúdo, similar à criação das cinco variáveis alturas (altura1, 
altura2, altura3, altura4, altura5) da proposta de solução do algoritmo 
anterior.
Suponha que o usuário desse algoritmo digite os seguintes valores: 1.80, 
2.03, 1.75, 2.20, 2.12. Uma representação gráfica desse vetor seria:
Figura 8: Representação gráfica do vetor
Isso indica que a posição 3 do vetor possui como conteúdo o valor de 
2.20, informado pelo usuário no momento de execução do algoritmo 
anterior. A terceira altura informada é 1.75 e está armazenada no índice 
2, que corresponde ao terceiro conteúdo guardado nesse vetor.
Vetor do tipo de dado caractere
Para armazenar o nome de uma pessoa, por exemplo, deve-se criar uma 
estrutura de dados composta homogênea do tipo de dado caractere. 
Todo nome consiste em um conjunto de caracteres (letras, caracteres es-
peciais e até dígitos numéricos, se assim os pais dessa pessoa desejarem).
44 CURSOS TÉCNICOS SENAI
Especificamente para esse tipo de vetor, que envolve um conjunto de 
caracteres, é estabelecida uma expressão que a caracteriza facilmente, 
sendo importante na área de informática: string ou simplesmente cadeia 
de caracteres.
A sintaxe que você verá a seguir declara um vetor de caracteres com a 
capacidade de armazenar até dez conjuntos de caracteres, sendo essa 
declaração representada graficamente após a instrução de criação desse 
vetor chamado “vetNomes”.
algoritmo “VETOR”
var
 vetNomes : vetor [0..9] de caractere
inicio 
fimalgoritmo
A representação anterior mostra um vetor de dez elementos. Isto é, tem 
a capacidade de dez variáveis do tipo caractere agrupadas em um iden-
tificador, “vetNomes” , independentes por sua posição dentro do vetor, 
indicadas por seu índice que varia de zero até 9 (nove).
Você percebeu que existe um espaço entre a palavra Ricardo e Henri-
que (no índice 5)? Esse espaço consiste em um único caractere especial 
(espaço em branco), ocupando sua respectiva posição no vetor “vetNo-
mes”. Para acessar cada uma de suas posições, será usado o identificador 
do vetor, seguido do valor de seu índice entre colchetes.
Vamos a mais um exemplo.Veja a seguir o algoritmo que lê os dez no-
mes.
algoritmo “NOME DA PESSOA”
var
 varAuxiliar : inteiro
 vetNomes : vetor [0..9] de caractere
inicio 
 para varAuxiliar de 0 ate 9 faca
 escreval (“Digite o nome: “)
 leia(vetNomes[varAuxiliar])
 fimpara
fimalgoritmo
45LÓGICA DE PROGRAMAÇÃO
Nesse exemplo, o usuário digitará 
um nome de cada vez, pressio-
nando a tecla ENTER após cada 
nome digitado, sendo que todos 
eles são armazenados no vetor 
“vetNomes”.
Seção 3
Matrizes
Um vetor não deixa de ser uma 
matriz, porém essa matriz possui 
sua representação no algoritmo 
com mais de um índice, variando 
a partir do valor inteiro zero em 
todas as suas possíveis dimensões. 
Convencionalmente, na área de 
programação, a variação de seu 
primeiro índice, ou primeira di-
mensão da matriz, é representa-
da como dimensão de linhas nas 
quais serão armazenados os res-
pectivos conteúdos da matriz, en-
quanto que a segunda dimensão, 
ou segundo índice, corresponde-
ria às colunas em que serão arma-
zenados seus conteúdos. 
Já uma terceira dimensão, tam-
bém chamada de matriz tridimen-
sional, seria representada como 
páginas de um livro, enquanto ou-
tras dimensões teriam maiores di-
ficuldades de uma representação 
didática adequada que facilitaria 
sua compreensão. Apesar dessa 
dificuldade de representação, uma 
matriz possui o limite das dimen-
sões coerentes com a quantidade 
de memória disponível no com-
putador que a estará manipulan-
do.
Similar aos vetores, as matrizes 
possuem o primeiro elemento de 
cada linha, ou coluna, ou ainda 
qualquer outra dimensão iniciada 
com índice 0 (zero). Por exemplo, 
o elemento na primeira linha da 
primeira coluna de uma matriz de 
alturas terá índice [0,0], enquanto 
o elemento na segunda linha da 
primeira coluna terá o índice [1,0].
Repare que as posições do exem-
plo anterior ([0,0] ou [1,0]) estão 
indicando dois valores inteiros 
que correspondem à exata posi-
ção em cada uma das dimensões 
dessa matriz bidimensional (varia 
em duas dimensões – linha e co-
luna).
Declarando uma ma-
triz
Você sabia que a declaração de 
uma matriz é bem parecida com 
a declaração de um vetor? É ver-
dade! Afinal, o vetor não deixa de 
ser uma matriz, mas poderá ser 
bidimensional, tridimensional, 
entre outras possíveis variações 
de dimensões (multidimensional), 
possuindo uma definição inteira 
para cada uma dessas dimensões 
que terão seu tamanho máximo 
definido no momento da declara-
ção no algoritmo.
algoritmo “MATRIZ”
var
 <identificador> : ve-
tor [<valor inicial>..<valor 
final>,<valor inicial>..<valor 
final>] de <tipo de dado>
inicio 
fimalgoritmo
Onde:
 ▪ <tipo de dado> – tipo de dado 
que será armazenado na matriz;
 ▪ <identificador> – nome defi-
nido para matriz, respeitando as 
regras de definição de identifica-
dores;
 ▪ <valor inicial>.<valor final> e 
<valor inicial>.<valor final> – são 
os valores inteiros de início e fim 
de cada dimensão definida na 
matriz, tendo essa sintaxe geral 
somente duas dimensões, que são 
separadas por vírgula (,).
 
Veja a seguir a representação grá-
fica para uma matriz que tenha ca-
pacidade de armazenar as alturas 
dos cinco atletas titulares de uma 
equipe de basquete e ainda as cin-
co alturas de seus reservas.
Figura 9: Representação gráfica para 
matriz
A representação que você acabou 
de ver pode ser definida em lin-
guagem algorítmica, no bloco de 
declarações do algoritmo, respei-
tando a forma genérica apresenta-
da anteriormente para declaração 
de uma matriz. Observe que essa 
matriz tem capacidade de armaze-
namento de dez alturas indepen-
dentes, ao invés de somente cinco, 
como foi abordado no primeiro 
exemplo no estudo de vetores. 
Caso tenha dúvidas, retorne ao 
conteúdo sobre vetores para re-
lembrar. Veja mais uma situação!
46 CURSOS TÉCNICOS SENAI
algoritmo “ALTURAS”
var
 vetAlturas : vetor [0..1,0..4] de real
inicio 
fimalgoritmo
Assim, a manipulação e armazenamento das alturas na memória estão 
mais bem organizados, propiciando maior eficiência do computador no 
acesso aos seus endereços de memória que guardam essas dez alturas 
(todos estes valores estão guardados de maneira consecutiva na memó-

Outros materiais