Buscar

Apostila_Algoritmo_e_Logica_Programacao

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 135 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 135 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 135 páginas

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
ALGORITMO E LÓGICA 
DE PROGRAMAÇÃO
2
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
A Faculdade Multivix está presente de norte a sul 
do Estado do Espírito Santo, com unidades em 
Cachoeiro de Itapemirim, Cariacica, Castelo, Nova 
Venécia, São Mateus, Serra, Vila Velha e Vitória. 
Desde 1999 atua no mercado capixaba, des-
tacando-se pela oferta de cursos de gradua-
ção, técnico, pós-graduação e extensão, com 
qualidade nas quatro áreas do conhecimen-
to: Agrárias, Exatas, Humanas e Saúde, sem-
pre primando pela qualidade de seu ensino 
e pela formação de profissionais com cons-
ciência cidadã para o mercado de trabalho.
Atualmente, a Multivix está entre o seleto 
grupo de Instituições de Ensino Superior que 
possuem conceito de excelência junto ao 
Ministério da Educação (MEC). Das 2109 institui-
ções avaliadas no Brasil, apenas 15% conquistaram 
notas 4 e 5, que são consideradas conceitos 
de excelência em ensino.
Estes resultados acadêmicos colocam 
todas as unidades da Multivix entre as 
melhores do Estado do Espírito Santo e 
entre as 50 melhores do país.
 
miSSão
Formar profissionais com consciência cida-
dã para o mercado de trabalho, com ele-
vado padrão de qualidade, sempre mantendo a 
credibilidade, segurança e modernidade, visando 
à satisfação dos clientes e colaboradores.
 
ViSão
Ser uma Instituição de Ensino Superior reconheci-
da nacionalmente como referência em qualidade 
educacional.
GRUPO
MULTIVIX
3
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
BiBliotecA mUltiViX (dados de publicação na fonte)
As imagens e ilustrações utilizadas nesta apostila foram obtidas no site: http://br.freepik.com
Pinto, Bruno Perche.
 Algoritimo e lógica da programação / Bruno Perche Pinto, Juliane Escola (revisora). – Serra : Multivix, 2017.
editoriAl
FAcUldAde cAPiXABA dA SerrA • mUltiViX
Catalogação: Biblioteca Central Anisio Teixeira – Multivix Serra
2017 • Proibida a reprodução total ou parcial. Os infratores serão processados na forma da lei.
Diretor Executivo 
Tadeu Antônio de Oliveira Penina
Diretora Acadêmica
Eliene Maria Gava Ferrão Penina
Diretor Administrativo Financeiro
Fernando Bom Costalonga
Diretor Geral
Helber Barcellos da Costa
Diretor da Educação a Distância
Pedro Cunha
Coordenadora Acadêmica da EaD
Carina Sabadim Veloso
Conselho Editorial 
Eliene Maria Gava Ferrão Penina (presidente 
do Conselho Editorial)
Kessya Penitente Fabiano Costalonga
Carina Sabadim Veloso
Patrícia de Oliveira Penina
Roberta Caldas Simões
Revisão de Língua Portuguesa
Leandro Siqueira Lima 
Revisão Técnica
Alexandra Oliveira
Alessandro Ventorin
Graziela Vieira Carneiro
Design Editorial e Controle de Produção de Conteúdo
Carina Sabadim Veloso
Maico Pagani Roncatto
Ednilson José Roncatto
Aline Ximenes Fragoso
Genivaldo Félix Soares
Multivix Educação a Distância
Gestão Acadêmica - Coord. Didático Pedagógico
Gestão Acadêmica - Coord. Didático Semipresencial
Gestão de Materiais Pedagógicos e Metodologia
Direção EaD
Coordenação Acadêmica EaD
4
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Aluno (a) Multivix,
Estamos muito felizes por você agora fazer parte 
do maior grupo educacional de Ensino Superior do 
Espírito Santo e principalmente por ter escolhido a 
Multivix para fazer parte da sua trajetória profissional.
A Faculdade Multivix possui unidades em Cachoei-
ro de Itapemirim, Cariacica, Castelo, Nova Venécia, 
São Mateus, Serra, Vila Velha e Vitória. Desde 1999, 
no mercado capixaba, destaca-se pela oferta de 
cursos de graduação, pós-graduação e extensão 
de qualidade nas quatro áreas do conhecimento: 
Agrárias, Exatas, Humanas e Saúde, tanto na mo-
dalidade presencial quanto a distância.
Além da qualidade de ensino já comprova-
da pelo MEC, que coloca todas as unidades do 
Grupo Multivix como parte do seleto grupo das 
Instituições de Ensino Superior de excelência no 
Brasil, contando com sete unidades do Grupo en-
tre as 100 melhores do País, a Multivix preocupa-
-se bastante com o contexto da realidade local e 
com o desenvolvimento do país. E para isso, pro-
cura fazer a sua parte, investindo em projetos so-
ciais, ambientais e na promoção de oportunida-
des para os que sonham em fazer uma faculdade 
de qualidade mas que precisam superar alguns 
obstáculos. 
Buscamos a cada dia cumprir nossa missão que é: 
“Formar profissionais com consciência cidadã para o 
mercado de trabalho, com elevado padrão de quali-
dade, sempre mantendo a credibilidade, segurança 
e modernidade, visando à satisfação dos clientes e 
colaboradores.”
Entendemos que a educação de qualidade sempre 
foi a melhor resposta para um país crescer. Para a 
Multivix, educar é mais que ensinar. É transformar o 
mundo à sua volta.
Seja bem-vindo!
APRESENTAÇÃO 
DA DIREÇÃO 
EXECUTIVA
Prof. Tadeu Antônio de Oliveira Penina 
diretor executivo do grupo multivix
5
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
SUmÁrio
2UNIDADE
1UNIDADE 1 NoçÕeS de lógicA de ProgrAmAção. 13
1.1 APRESENTAÇÃO DA UNIDADE 13
1.2 CONCEITOS BÁSICOS 13
1.3 ALGORITMO 14
1.3.1 MÉTODO PARA A CONSTRUÇÃO DE ALGORITMOS 17
1.3.2 REGRAS BÁSICAS PARA A CONSTRUÇÃO DE ALGORITMOS 18
1.3.3 CARACTERÍSTICA DE UM ALGORITMO 18
1.3.4 REPRESENTAÇÕES DE UM ALGORITMO 19
1.3.5 EXEMPLOS DE ALGORITMOS 23
2 coNceitoS FUNdAmeNtAiS PArA coNStrUção 
de AlgoritmoS eStrUtUrAdoS 26
2.1 APRESENTAÇÃO DA UNIDADE 26
2.2 ALGORITMO COM ESTRUTURA SEQUENCIAL 26
2.3 ALGORITMO COM ESTRUTURA CONDICIONAL 28
2.3.1 ESTRUTURA DE CONDIÇÃO SIMPLES: SE - ENTÃO (IF - THEN) 28
2.3.2 ESTRUTURA DE CONDIÇÃO COMPOSTA: 
SE - ENTÃO - SENÃO (IF - THEN - ELSE) 29
2.3.3 ESTRUTURA DE CONDIÇÃO CASO SEJA 31
2.4 ALGORITMO COM ESTRUTURA DE REPETIÇÃO 32
2.4.1 ENQUANTO-FAÇA 33
2.4.2 FAÇA-ENQUANTO 33
2.4.3 FAÇA-PARA 34
3 iteNS FUNdAmeNtAiS. 36
3.1 APRESENTAÇÃO DA UNIDADE 36
3.2 CONSTANTES 36
3.2.1 CONSTANTE NUMÉRICA 36
3.2.2 CONSTANTE LÓGICA 38
3.2.3 CONSTANTE LITERAL 38
3.3 VARIÁVEIS 39
3.3.1 FORMAÇÃO DE IDENTIFICADORES 40
3.3.2 DECLARAÇÃO DE VARIÁVEIS 41
3.4 COMENTÁRIOS 43
3UNIDADE
6
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
4UNIDADE
5UNIDADE
3.5 EXPRESSÕES ARITMÉTICAS 44
3.6 EXPRESSÕES LÓGICAS 45
3.6.1 OPERADORES LÓGICOS 46
3.6.2 PRIORIDADE 47
3.7 COMANDOS DE ATRIBUIÇÃO 47
3.8 COMANDOS DE ENTRADA E SAÍDA 48
3.8.1 ENTRADA DE DADOS 49
3.8.2 SAÍDA DE DADOS 50
4 coNStrUção de AlgoritmoS Por reFiNAmeNtoS SUceSSiVoS. 52
4.1 APRESENTAÇÃO DA UNIDADE 52
4.2 SUB-ROTINAS 52
4.3 ESCOPO DE VARIÁVEIS 57
4.4 PROCEDIMENTOS 58
4.5 FUNÇÕES 60
4.6 PARÂMETROS FORMAIS 62
4.6.1 PASSAGEM DE PARÂMETROS POR VALOR 63
4.6.2 PASSAGEM DE PARÂMETROS POR REFERÊNCIA 64
4.7 FUNÇÕES RECURSIVAS 65
5 coNStrUção de AlgoritmoS BÁSicoS: ordeNAção iNterNA. 68
5.1 APRESENTAÇÃO DA UNIDADE 68
5.2 ORDENAÇÃO 68
5.2.1 MEMÓRIA 69
5.2.2 ORDENAÇÃO INTERNA 71
6 coNStrUção de AlgoritmoS BÁSicoS: iNtercAlAção, 
mANiPUlAção de cArActereS e ArrAYS 89
6.1 APRESENTAÇÃO DA UNIDADE 89
6.2 INTERCALAÇÃO BALANCEADA DE VÁRIOS CAMINHOS 89
6.3 MANIPULAÇÃO DE CARACTERES 91
6.3.1 LENDO E IMPRIMINDO STRINGS 93
6.3.2 MANIPULANDO STRINGS 96
6.4 ARRAYS 98
6.4.1 DEFINIÇÃO DE ARRANJOS 99
6.4.2 DECLARAÇÃO DE VETORES 99
6.4.3 ACESSANDO OS ELEMENTOS DE UM VETOR 100
6.5 MATRIZES 103
6UNIDADE
7
FACULDADECAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
7 ArQUiVoS SeQUeNciAiS e diretoS 107
7.1 APRESENTAÇÃO DA UNIDADE 107
7.2 ARQUIVOS 107
7.3 ORGANIZAÇÃO DE ARQUIVOS 109
7.4 DECLARAÇÃO 109
7.5 ABERTURA DE ARQUIVO 110
7.6 FECHAMENTO DE ARQUIVO 111
7.7 COPIANDO UM REGISTRO 111
7.8 GUARDANDO UM REGISTRO 112
7.9 ELIMINANDO UM REGISTRO 113
7.10 ORGANIZAÇÃO SEQUENCIAL 113
7.11 ORGANIZAÇÃO DIRETA 117
8 dePUrAção e teSteS de AlgoritmoS. 122
8.1 APRESENTAÇÃO DA UNIDADE 122
8.2 TESTES 122
8.3 ESTRATÉGIA DE TESTES 124
8.3.1 TESTE DE UNIDADE 125
8.3.2 TESTE DE INTEGRAÇÃO 126
8.3.3 TESTE DE SISTEMA 127
8.3.4 TESTE DE VALIDAÇÃO 128
8.4 DEPURAÇÃO 130
8.4.1 ERRO DE SINTAXE 130
8.4.2 ERRO DE SEMÂNTICA 131
8.4.3 ERRO EM TEMPO DE EXECUÇÃO 132
reFerÊNciAS 133
7UNIDADE
8UNIDADE
8
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
icoNogrAFiA
ATENÇÃO 
PARA SABER
SAIBA MAIS
ONDE PESQUISAR
DICAS
LEITURA COMPLEMENTAR
GLOSSÁRIO
ATIVIDADES DE
APRENDIZAGEM
CURIOSIDADES
QUESTÕES
ÁUDIOSMÍDIAS
INTEGRADAS
ANOTAÇÕES
EXEMPLOS
CITAÇÕES
DOWNLOADS
9
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
OBJETIVO 
Ao final desta 
unidade, 
esperamos 
que possa:
> Compreender os 
conceitos básicos 
da Administração 
de Pessoal.
> Familiarizar-se com 
o tema e promover 
melhor absorção do 
conteúdo.
UNIDADE 1
10
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
APRESENTAÇÃO
Olá, acadêmico (a).
Bem-vindo (a) à disciplina de Algoritmo e Lógica de Programação, na qual estudare-
mos, para aprofundar seus conhecimentos sobre os principais conceitos da progra-
mação como variáveis, operadores lógicos e aritméticos, estruturas de laço e estru-
turas de decisão, algoritmos de ordenação e intercalação e terá a oportunidade de 
aplicar esses conceitos na prática, criando alguns algoritmos.
Para que seu estudo se torne proveitoso e prazeroso, esta disciplina foi organizada 
em 8 unidades, com temas e subtemas que, por sua vez, são subdivididos em seções 
(tópicos), atendendo aos objetivos do processo de ensino-aprendizagem.
De forma geral na disciplina de Algoritmo e Lógica de Programação, será seu primei-
ro passo no aprendizado da programação de computadores. Pois é nela que você 
aprenderá os fundamentos básicos que servirão de alicerce para todas as demais dis-
ciplinas da área de programação. Descreveremos as noções lógicas de programação. 
Detalharemos os conceitos fundamentais para a construção de algoritmos estrutura-
dos. Abordaremos a construção de algoritmos por refinamentos sucessivos. Veremos 
os algoritmos mais utilizados para ordenação e intercalação. Ao longo da disciplina 
Algoritmo e Lógica de Programação promoveremos uma discussão partindo a con-
textualização sobre depuração e teste de algoritmos, destacando sua aplicabilidade 
para assim realizar um bom curso.
Esperamos que, até o final da disciplina, você possa:
• ampliar o conhecimento sobre os princípios da programação;
• identificar os aspectos sobre refinamentos sucessivos;
• compreender sobre a sub-programação e sua importância;
• conhecer os diferentes algoritmos de ordenação;
• entender o funcionamento de testes e depuração de algoritmos.
Para tanto, fique atento (a) à leitura e acompanhamento das novas tecnologias que 
vem surgindo.
11
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Antes de iniciar a leitura, gostaria que você parasse um instante para refletir sobre o 
desenvolvimento de programas de computadores, parece ser complexo, não é? Não 
se preocupe, até o final da disciplina, você terá respostas e, também, outras pergun-
tas formuladas.
Enfim, esperamos promover reflexões acerca do assunto e desejamos sucesso e bons 
estudos!
12
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
OBJETIVO 
Ao final desta 
unidade, 
esperamos 
que possa:
> Compreender os 
conceitos da lógica 
de programação e de 
algoritmos;
> Por meio de 
exemplos de 
algoritmos aplicados 
no nosso dia-a-dia 
você desenvolverá 
sua lógica de 
programação;
> Entender as formas 
mais comuns para 
apresentações de 
algoritmos;
UNIDADE 1
13
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
1 NOÇÕES DE LÓGICA DE 
PROGRAMAÇÃO.
1.1 APRESENTAÇÃO DA UNIDADE
Nesta unidade iremos conhecer o conceito de lógica de programação, essa será sua 
primeira etapa no aprendizado da programação de computadores. Sendo assim, ela 
é a base para o curso, pois é nela que você aprenderá os princípios básicos que lhe 
darão suporte para todas as demais disciplinas desta área. 
1.2 CONCEITOS BÁSICOS
Nesta disciplina, iniciaremos nossos estudos sobre Lógica de Programação. Mas, afi-
nal, qual o significado da palavra “Lógica”? 
Segundo Farrer (1999), a lógica pode ser vista como a arte de pensar corretamente. 
A lógica visa a colocar ordem no pensamento. 
Aplicamos a lógica no dia-a-dia muitas vezes até mesmo sem percebermos. Por 
exemplo:
a) Sei que água do mar está gelada
Estou querendo entrar no mar
Posso concluir então que para entrar no mar terei que suportar a água gelada. 
b) Quero ganhar na Mega Sena
Tenho que fazer a aposta
Posso concluir então que para ganhar na Mega Sena, tenho que realizar a aposta.
14
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
As 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 ele-
mentar a executar.
Agora que entendemos o conceito de lógica e instruções, podemos definir que a lógi-
ca de programação é a técnica de encadear pensamentos para atingir determinado 
objetivo. 
1.3 ALGORITMO
O principal objetivo do estudo da lógica de programação é a construção de algorit-
mos que serão transformados em programas de computadores, afinal, o que é um 
algoritmo? 
Podemos pensar no algoritmo como uma receita de um bolo, uma sequência de ins-
truções que com uma meta específica. Estas etapas devem ser claras e precisas, não 
podem ser redundantes nem subjetivas na sua definição.
Segundo Forbellone (2005), o algoritmo trata-se de uma sequência de passos que de-
vem ser seguidos para atingir um determinado objetivo. O algoritmo não é a solução 
do problema e sim o caminho para a solução do mesmo. O conceito de algoritmo 
não se aplica apenas na área da computação, ele define os passos necessários para 
realizar uma tarefa ou solucionar um problema, independente da área de atuação.
Analisando as definições anteriores, podemos observar que executamos no dia-a-dia 
vários algoritmos como a leitura de um manual de aparelho eletrônico, uma receita 
de bolo de laranja, veja um exemplo de algoritmo na sequência.
Problema: Sacar um dinheiro no caixa rápido.
Sequência de Passos para Solução:
Passo 1 – Ir até o banco 24 horas;
Passo 2 – Colocar o cartão;
Passo 3 – Digitar a senha;
15
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Passo 4 – Escolher a opção de saque;
Passo 5 – Solicitar a quantia desejada;
Passo 6 – Se o saldo for maior que a quantia desejada, sacar; caso contrário,mostrar 
mensagem de impossibilidade do saque;
Passo 7 – Finalizar ação
Passo 8 – Retirar o cartão 
Passo 9 – Sair do banco 24 horas;
Esta solução é apenas uma das muitas soluções possíveis para o problema apresenta-
do. Assim, ao criarmos um algoritmo, indicamos uma dentre várias possíveis sequên-
cias de passos para solucionar o problema.
Por exemplo, o problema acima poderia ser resolvido mesmo se alterássemos a se-
quência de passos para:
Passo 1 – Ir até o banco 24 horas;
Passo 2 – Verificar se não tem nenhum estranho lhe observando;
Passo 3 – Pegar a carteira;
Passo 4 – Escolher o cartão a ser utilizado;
Passo 5 – Colocar o cartão;
Passo 6 – Digitar a senha;
Passo 7 – Verificar o saldo;
Passo 8 – Escolher a opção de saque;
Passo 9 – Solicitar a quantia desejada;
16
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Passo 10 – Se o saldo for maior que a quantia desejada, sacar; caso contrário, mostrar 
mensagem de impossibilidade do saque;
Passo 11 – Finalizar ação
Passo 12 – Retirar o cartão 
Passo 13 – Sair do banco 24 horas;
Agora considere o seguinte problema. Suponha que você dispõe de duas vasilhas de 
nove e quatro litros respectivamente. Como elas não possuem marcação, não é possí-
vel ter medidas intermediárias sobre o volume ocupado. O problema consiste, então, 
em elaborar uma sequência de passos, por meio da utilização das vasilhas de nove e 
quatro litros, a fim de encher uma terceira vasilha com seis litros de água. A figura 1 
abaixo, ilustra dois possíveis passos de um algoritmo para resolver o problema.
Figura 1. Ilustra dois passos possíveis envolvendo as operações de encher e esvaziar as vasilhas. Em (a) apenas a primeira vasilha está 
cheia. Já em (b) os nove litros da primeira vasilha são colocados nas outras duas.
17
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Uma solução para o problema pode ser alcançada a partir do seguinte algoritmo:
Algoritmo PArA eNcHer VASilHAS
1. Encha a vasilha de nove litros.
2. Usando a vasilha de nove litros, encha a de quatro.
3. Coloque a quantidade que sobrou (cinco litros) na terceira vasilha (v3 = 5).
4. Esvazie a vasilha de quatro litros.
5. Encha novamente a vasilha de nove litros.
6. Usando a vasilha de nove litros, encha a de quatro.
7. Esvazie a de quatro litros.
8. Usando a sobra da de nove litros (cinco litros), encha novamente a de quatro litros.
9. Coloque a sobra da de nove litros (agora um litro) na terceira vasilha (v3=5+1= 6).
1.3.1 MÉTODO PARA A CONSTRUÇÃO DE ALGORITMOS
Para a construção de qualquer tipo de algoritmo precisamos descrever a sequência 
de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas:
• compreender o problema ser resolvido:
- Por exemplo, o nosso problema pode ser a multiplicação de dois números 
inteiros;
• identificarmos e definirmos os dados de entrada:
- Para multiplicação de dois números é necessário um primeiro número inteiro 1 
(num1) e outro número inteiro 2 (num2);
18
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
• descrever detalhadamente cada passo para processar ou transformar os da-
dos de entrada para chegar ao objetivo do problema;
- Depois da identificação dos dados de entrada, agora é definir como será o pro-
cessamento da multiplicação de num1 com num2;
• identificarmos e definirmos os dados de saída (objetivo do problema):
- Após o processamento, teremos que ter o resultado de saída que é a multipli-
cação de num1 com num2;
• construirmos o algoritmo que representa a descrição dos passos;
- Transcrição do algoritmo para representar a solução do problema;
• testarmos o algoritmo para possíveis correções que possam vir a ser necessá-
rias na lógica proposta;
- Finalmente, depois do algoritmo pronto, realizamos testes para ver se a lógica 
atingiu o objetivo.
1.3.2 REGRAS BÁSICAS PARA A CONSTRUÇÃO DE 
ALGORITMOS
• Usar somente um verbo na frase;
• Imaginar que você está desenvolvendo um algoritmo para pessoas que não 
trabalham com informática;
• Usar frases curtas e simples;
• Ser objetivo;
1.3.3 CARACTERÍSTICA DE UM ALGORITMO
Todo algoritmo, seja ele computacional ou não, recebe uma entrada, processa-a e 
gera uma saída segundo seu conjunto de passos. Todos eles possuem as seguintes 
características:
19
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
1. Entrada: zero ou mais valores de entrada, estas são insumos ou quantidades 
que são processadas pelos algoritmos durante a execução de seus passos; 
2. Saída: pelo menos um valor é produzido, elas representam o resultado do traba-
lhado realizado pelos algoritmos;
3. Clareza ou Definição: cada passo, instrução ou etapa de um algoritmo deve ser 
claro e não ambíguo; 
4. Efetividade: cada passo, instrução ou etapa de um algoritmo deve ser executá-
vel de maneira exata e em um tempo finito;
5. Finitude: o algoritmo deve ter um conjunto finito de passos. 
No caso do algoritmo para fazer o sanduíche, a entrada corresponde ao hambúrguer, 
pão, faca, maionese, alface e o tomate. O processamento ocorre com a execução de 
seus passos, gerando como saída o hambúrguer pronto. Os algoritmos computacio-
nais, especificamente, possuem as seguintes características: 
1.3.4 REPRESENTAÇÕES DE UM ALGORITMO
Os três tipos mais utilizados para representar algoritmos são: descrição narrativa, flu-
xograma e pseudocódigo ou portugol, que descrevemos a seguir.
1.3.4.1 DESCRIÇÃO NARRATIVA
Consiste em analisar o enunciado do problema e escrever utilizando uma linguagem 
natural (português, inglês, francês, espanhol, etc.). Sua principal desvantagem se en-
contra no fato da linguagem natural estar bem distante da linguagem utilizada pelos 
computadores. Logo, a tradução de uma para a outra se torna uma atividade bastan-
te dispendiosa. Além disso, abre espaço para várias interpretações. Muitas vezes uma 
palavra pode ter vários significados, dependendo do contexto no qual são utilizadas. 
Em contrapartida, é bem mais fácil elaborar um algoritmo por meio de uma lingua-
gem com a qual já temos uma certa familiaridade, do que através de linguagens que 
não são utilizadas com frequência no dia a dia. Não é necessário aprender nenhum 
20
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
conceito novo, pois uma língua natural, neste ponto, já é bem conhecida. Os exem-
plos de algoritmos mostrados anteriormente refletem esta forma de representação.
1.3.4.2 1.4.4.2 FLUXOGRAMA
Os Fluxogramas ou Diagramas de Fluxo, são uma representação gráfica que utilizam 
formas geométricas padronizadas ligadas por setas de fluxo, para indicar as diversas 
ações (instruções) e decisões que devem ser seguidas para resolver o problema em 
questão.
O fluxograma consiste em analisar o problema e escrever, utilizando símbolos gráficos 
predefinidos (TABELA 1) os passos a serem seguidos para a resolução do problema. 
Tabela 1- Símbolos utilizados em um fluxograma.
No exemplo da Figura 2, a primeira ação é executada (‘abrir forno’) e então a segunda 
expressão é avaliada (‘fogo aceso?’) como verdadeira ou falsa; caso seja verdadeira, o 
algoritmo prossegue para a ação à esquerda (‘botar lenha’); caso seja falsa, o algorit-
mo executa a ação à direita (‘acender fogo’). Em seguida, para qualquer um dos casos, 
a próxima ação a ser executada é (‘assar pão’).
21
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Figura 2. Algoritmo representado em forma de um fluxograma.
A vantagem de se fazer uso dos fluxogramas está na facilidade de compreendê-los. 
Descrições de algoritmos mediante formas gráficas são mais facilmente compreen-
didas do que descrições que envolvem apenas textos. Além do mais, os fluxogramas 
possuem um padrão mundial no que se refere à sua simbologia, tornando sua utili-
zação independente das peculiaridades das linguagens naturais.
A desvantagem é que se faz necessário conhecer a simbologia do fluxograma bem 
como é mais trabalhoso fazer um desenho do que escrever um texto. A problemática 
é ainda maior quando é necessário fazer alguma alteração ou correção no desenho. 
Além dessas desvantagens, há uma limitação no seu poder de expressão, se compa-
rado com a descrição narrativa.
22
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
1.3.4.3 PSEUDOCÓDIGO OU PORTUGOL
O pseudocódigo é uma maneira intermediária entre a linguagem natural e uma lin-
guagem de programação de representar um algoritmo. Consiste em analisar o enun-
ciado do problema e escrever, por meio de regras definidas, os passos a serem segui-
dos para a resolução do problema. Ela utiliza um conjunto restrito de palavras-chave, 
em geral na língua nativa do programador, que tem equivalentes nas linguagens de 
programação.
A sintaxe do pseudocódigo não precisa ser seguida tão rigorosamente quanto a sin-
taxe de uma linguagem de programação, já que o algoritmo não será executado 
como um programa.
Esta é a linguagem mais utilizada por ser mais formal do que a descrição narrativa 
e mais fácil de manter do que um fluxograma. Além disso, essa linguagem é menos 
rígida do que uma linguagem de programação, dando assim liberdade ao progra-
mador para “rascunhar” seus futuros programas sem ficar engessado na rigidez da 
linguagem de programação escolhida por ele. Geralmente, essa forma de represen-
tação de algoritmos é uma versão reduzida de linguagens de alto nível como C e 
Pascal. A Figura 3 apresenta um exemplo de algoritmo na forma de representação 
de pseudocódigo.
.
Figura 3. Exemplo de Português Estruturado
A grande vantagem em se utilizar pseudocódigo está na facilidade da transcrição 
do algoritmo para qualquer outra linguagem de programação é quase instantânea. 
Assim como os fluxogramas, a desvantagem fica por conta da limitação do seu poder 
de expressão, devido às regras impostas para a elaboração das instruções.
23
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
1.3.5 EXEMPLOS DE ALGORITMOS
Com base nos três tipos de algoritmos citados anteriormente, os exemplos a seguir mos-
tram os algoritmos para retornar o resultado da multiplicação de dois números inteiros.
Algoritmo em descrição narrativa:
• Passo 1 - Receber os dois números inteiros que serão multiplicados;
• Passo 2 - Multiplicar os dois números;
• Passo 3 - Mostrar o resultado da multiplicação;
Veja abaixo na Figura 4, o algoritmo em fluxograma:
Figura 4. Algoritmo em fluxograma
Algoritmo em pseudocódigo:
ALGORITMO
DECLARE N1, N2, M NUMÉRICO
ESCREVA “Digite dois números inteiros. ”
LEIA N1, N2
M ← N1 * N2
ESCREVA “Multiplicação = “, M
FIM ALGORITMO.
24
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Para aprofundar seus conhecimentos, recomendo a leitura do capítulo 1 do livro Tre-
inamento em Lógica de Programação, de Sandra Rita Pinto ou o capítulo 3 do livro 
Técnicas de Programação - Uma Abordagem Moderna, do autor Mario Leite.
25
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
OBJETIVO 
Ao final desta 
unidade, 
esperamos 
que possa:
> Compreender 
a diferenciação 
existente entre 
as estruturas de 
controle do fluxo de 
execução;
> Estrutura sequencial; 
> Estrutura de seleção;
> Estrutura de 
repetição;
> Saber quando aplicar 
uma determinada 
estrutura de controle;
UNIDADE 2
26
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
2 CONCEITOS 
FUNDAMENTAIS 
PARA CONSTRUÇÃO 
DE ALGORITMOS 
ESTRUTURADOS
2.1 APRESENTAÇÃO DA UNIDADE
Na unidade anterior aprendemos que os algoritmos são etapas a serem seguidas 
para solucionar um problema. Vimos também que existem várias formas de repre-
sentação dos algoritmos. As etapas dos algoritmos são executadas na sequência em 
que eles aparecem, porém, em várias situações é necessário alterar o fluxo de execu-
ção destas etapas. Pode existir a necessidade da execução de uma etapa somente 
se uma determinada condição for verdadeira, ou talvez, pode ser necessário repetir 
um conjunto de passos várias vezes até que uma condição seja aceita. Neste capítulo 
vamos aprender sobre algumas estruturas de controles existentes de algoritmos.
2.2 ALGORITMO COM ESTRUTURA SEQUENCIAL
Os algoritmos dos exemplos que vimos até agora apresentam uma sequência de 
passos que devem ser seguidos para atingir um objetivo final. Observe que, para o 
atingimento do objetivo, todos os passos dos algoritmos devem ser executados sem 
nenhuma alteração no seu fluxo, a não ser, claro, que exista alguma instrução explíci-
ta para a mudança do fluxo.
Trata-se de um conjunto de comandos que são executados numa sequência linear, 
de cima para baixo, na mesma ordem que aparecem. A Figura 5 ilustra o modelo 
básico para a escrita de algoritmos que será utilizado para escrever algoritmos. Como 
boas práticas acadêmicas, todo algoritmo deverá ter a identificação do bloco, colo-
cando o início e o fim do trecho e dentro deles iniciamos com a declaração das variá-
veis e depois colocamos o corpo do algoritmo.
27
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Figura 5. Modelo básico de algoritmo.
A Figura 6 evidencia o algoritmo que recebe 4 notas de um aluno e calcula a média 
aritmética e depois imprime a nota do mesmo. 
Figura 6. Algoritmo de média aritmética
28
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
2.3 ALGORITMO COM ESTRUTURA CONDICIONAL
Também conhecido como algoritmo com estrutura de seleção ou de decisão. A exe-
cução de alguns passos neste tipo de algoritmo pode depender de decisões a serem 
tomadas. Dessa forma, algum fato indicará se um ou mais passos do algoritmo serão 
executados ou não.
Por exemplo, considere que precisamos escrever um algoritmo que calcule um au-
mento salarial de 10% para todos os funcionários que ganham até R$ 2.500,00 reais. 
Para esse problema sabemos que precisamos avaliar o salário de cada funcionário. 
Neste caso, para um intervalo de valores de até R$ 2.500,00 o algoritmo executa um 
conjunto de ações e para outro intervalo executa um outro conjunto de ações. Para 
este tipo de situação, em que um determinado valor é avaliado para executar alguma 
determinada ação, utilizamos as estruturas de condição.
Podemos ter três tipos de estrutura de condição: condição simples, condição com-
posta e condição múltipla. Vamos ver adiante estes três tipos.
2.3.1 ESTRUTURA DE CONDIÇÃO SIMPLES: SE - ENTÃO 
(IF - THEN)
A estrutura de condição mais simples é a se-então, utilizada da seguinte forma:
se <expressão-lógica> então:
<bloco de comandos>
fim-se
Uma expressão (<expressão-lógica>) deve ter como resultado apenas dois valores pos-
síveis: verdadeiro ou falso. A instrução (<blocode comandos>) só será executada se a 
condição tiver o valor verdadeiro. Caso seja falso, a execução do programa ignora o 
bloco de comando e continua na linha seguinte à estrutura de condição.
Imagine um algoritmo que determine se o aluno estará aprovado se sua média for 
maior ou igual a 5.0 pontos, veja no exemplo de algoritmo como ficaria.
29
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Se MÉDIA > 5.0 Então
Aluno Aprovado
A Figura 7, ilustra o diagrama do mesmo algoritmo que verifica se a média da nota 
do aluno é maior que 5.0:
Figura 7. Diagrama do fluxo da média
Figura 8. Algoritmo da média da nota.
2.3.2 ESTRUTURA DE CONDIÇÃO COMPOSTA: 
SE - ENTÃO - SENÃO (IF - THEN - ELSE)
A estrutura de condição se-então oferece a possibilidade de executarmos uma de-
terminada ação ou comando se o resultado da expressão lógica for verdadeiro e de 
executarmos uma ação diferente se o resultado da expressão lógica for falso. Para 
essas situações é utilizado o comando senão, como mostrado abaixo.
se <expressão-lógica> então:
<bloco de comandos verdade>
30
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
senão:
<bloco de comandos falsidade>
fim-se
A estrutura de decisão “SE/ENTÃO/SENÃO”, funciona exatamente como a estrutu-
ra “SE”, com apenas uma diferença, em “SE” somente podemos executar comandos 
caso a condição seja verdadeira, diferente de “SE/SENÃO” pois sempre um comando 
será executado independente da condição, ou seja, caso a condição seja “verdadeira” 
o comando da condição será executado, chamado bloco-verdade, caso contrário o 
comando da condição “falsa” será executado, chamado bloco-falso. Se a estrutura de 
condição não possui uma cláusula “SENÃO”, então no caso da expressão lógica ser 
falsa, a execução do algoritmo continua na linha subsequente ao bloco “SE/ENTÃO”.
Na Figura 9 podemos ver um exemplo de algoritmo que calcula o aumento salarial 
de 2% quando o funcionário receber mais que R$ 2.500,00 reais. Quando essa condi-
ção não é atendida, o funcionário deverá receber 10% de aumento.
Figura 9. Algoritmo que calcula o aumento salarial.
Se MÉDIA >= 5.0 Então
Aluno Aprovado
Senão
Aluno Reprovado
31
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
No exemplo acima está sendo executada uma condição que, se for verdadeira, exe-
cuta o comando “APROVADO”, caso contrário executa o segundo comando “REPRO-
VADO”. Podemos também dentro de uma mesma condição testar outras condições. 
Como no exemplo abaixo, na figura 10.
Figura 10. Diagrama com condições composta
2.3.3 ESTRUTURA DE CONDIÇÃO CASO SEJA
Uma outra forma de trabalhar com comandos condicionados a um determinado 
valor é a estrutura caso seja. Nessa estrutura o valor de uma determinada variável é 
testado e caso esse valor coincida com determinado valor pré-estabelecido um de-
terminado comando é executado. A vantagem de se utilizar este comando é a legi-
bilidade do código quando conhecemos os possíveis valores para uma determinada 
variável. A estrutura de condição caso é utilizada da forma mostrada a seguir:
caso variável seja:
<bloco de comandos>
fim-se
32
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Este tipo de estrutura condicional tem a mesma função do se-então, com a diferença 
que a estrutura de condição caso oferece a opção chamada padrão. O bloco de co-
mandos dentro da opção padrão será executado caso nenhuma dos casos informados 
sejam atendidos. A sua utilização é demonstrada na Figura 11, onde o algoritmo rece-
be o número inteiro correspondente ao dia da semana e mostre por extenso este dia. 
Figura 11. Exemplo de algoritmo com estrutura de condição caso seja
2.4 ALGORITMO COM ESTRUTURA DE REPETIÇÃO
Utilizamos os comandos de repetição também conhecido como estruturas de intera-
ções ou estrutura de laços, quando desejamos repetir um conjunto de instruções ou 
comandos até que determinado objetivo seja atingido. Todas as estruturas de repe-
tição têm em comum o fato de haver uma condição de controle, expressa através de 
uma expressão lógica, que é testada em cada ciclo para determinar o momento em 
que a repetição deva ser interrompida ou não.
33
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
As estruturas de repetição são basicamente três: enquanto-faça (while), faça-enquan-
to (do-while) e para-faça (for). A diferença básica entre as estruturas de repetição é 
que enquanto-faça primeiro testa a condição para depois realizar o bloco de coman-
do, ao contrário de faça-enquanto que primeiro executa o bloco para depois realizar 
o teste. Já na estrutura para-faça é necessário um controle para determinar quando 
o laço deverá ser finalizado.
2.4.1 ENQUANTO-FAÇA
Neste caso, o bloco de operações será executado enquanto a expressão lógica (x) 
for verdadeira, ou seja, antes de realizar a estrutura de repetição, uma condição x é 
avaliada e caso o resultado da mesma for verdadeiro, os comandos que estão dentro 
da estrutura serão executados. O teste da condição será sempre realizado antes de 
qualquer operação e caso o resultado do teste de condição seja falso, o algoritmo sai 
da estrutura de repetição e segue para a próxima linha.
A estrutura enquanto-faça é usada principalmente quando não se sabe com antecedên-
cia a quantidade de repetições que precisam ser realizadas. Por exemplo, suponha um 
problema onde necessitamos fazer a leitura dos nomes dos funcionários de uma em-
presa. Esse processo deverá ser executado várias vezes até que a palavra “fim” seja digita-
da. Desta maneira não é possível saber quando o usuário digitará “fim” e não é possível 
definir quantas vezes o algoritmo deverá repetir essa ação. Na figura 12 a seguir é apre-
sentado o formato básico da estrutura de repetição enquanto-faça de um algoritmo.
 
Figura 12. Algoritmo de estrutura de repetição enquanto faça
2.4.2 FAÇA-ENQUANTO
Muito conhecido também como repita-até, assim como o enquanto-faça, o coman-
do faça-enquanto também é uma estrutura de repetição. Assim como o enquanto-
-faça, o comando faça-enquanto também é uma estrutura de repetição. A principal 
diferença entre eles é que, no caso do faça-enquanto, o bloco de instruções dentro do 
laço é executado pelo menos uma vez, mesmo que a condição seja falsa. Isso acon-
tece porque o teste da condição é realizado apenas ao final da estrutura, ou seja, as 
instruções já foram executadas. Seu formato é mostrado na Figura 13.
34
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Figura 13. Algoritmo de estrutura faça enquanto
Figura 14. Algoritmo de estrutura repita até
2.4.3 FAÇA-PARA
Esta estrutura também serve para criar um laço de repetição e geralmente é utilizado 
quando conhecemos a quantidade de vezes que queremos que as instruções sejam 
repetidas. Esta estrutura contém um controle para determinar quando o laço será 
finalizado. A estrutura é mostrada na Figura 14 e para ser utilizada precisa das infor-
mações básicas: valores de início, fim e incremento.
Figura 15. Algoritmo de estrutura faça para
Em variável de início, geralmente um contador, recebe um valor inicial. Essa variável 
será incrementada ou decrementada de acordo com a expressão definida em in-
cremento. O laço ficará executando as instruções (<bloco de comandos>) até que a 
condição definida em fim seja falsa.
Para aprofundar seus conhecimentos,recomendo a leitura do capítulo 4 do livro Tre-
inamento em Linguagem C – Curso Completo – Módulo 1 de Victorine Mizrahi e do 
capítulo 3 (da página 61 à 74) do livro C Completo e Total do autor Herbert Schildt.
35
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
OBJETIVO 
Ao final desta 
unidade, 
esperamos 
que possa:
> Compreender os 
conceitos de tipos 
primitivos
> Entender Variáveis
> Entender como 
funciona as 
expressões 
aritméticas, lógicas e 
relacionais
> Expressões 
Comandos de 
entrada e saída
> Identificação dos 
blocos
UNIDADE 3
36
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
3 ITENS FUNDAMENTAIS.
3.1 APRESENTAÇÃO DA UNIDADE
Apresentar os tipos básicos de dados a serem adotados. Definir constantes, variáveis 
e comentários explicando a sua utilização. Explicar as expressões aritméticas e lógi-
cas. Conceituar o processo de atribuição. Apresentar a importância e a aplicação dos 
comandos de entrada e saída. Conceituar blocos lógicos.
3.2 CONSTANTES
Um dado é constante quando não sofre nenhuma variação no decorrer do tempo, 
ou seja, seu valor é constante desde o início até o fim da execução do algoritmo. 
Podemos associá-lo a uma posição de memória (endereço) que tem um conteúdo 
fixo. Uma constante pode ser um número (real ou inteiro), um valor lógico ou uma se-
quência de caracteres quaisquer com algum significado para o problema em estudo. 
As constantes podem ser classificadas em: numéricas, lógicas ou literais.
3.2.1 CONSTANTE NUMÉRICA
Uma constante numérica é formada por uma sequência de dígitos que:
a. pode estar ou não precedida de um sinal positivo (+) ou negativo (-);
Exemplo:
25; +3421; -315
b. pode estar ou não seguida de um ponto decimal (.) e outra sequência de dígitos;
Exemplo:
3.14; +3421; -0.53
37
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
c. pode terminar ou não pela letra E seguida de outra sequência de dígitos. Entre 
a letra E e esta outra sequência de dígitos pode existir ou não sinal positivo (+) 
ou negativo (-).
Exemplo:
7.8 E; -315.21E-3; 21E+3
1. Observe que:
2. não pode haver espaço em branco entre os caracteres usados para representar 
uma constante numérica;
3. a separação entre a parte inteira e a parte decimal de um número é feita com o 
ponto decimal (.) e não com a vírgula;
4. se existir ponto decimal numa constante numérica, pelo menos um dígito deve 
preceder o ponto decimal e pelo menos outro dígito deve sucedê-lo, sendo in-
válido escrever constantes como no exemplo a seguir:
Exemplo:
6.; .13; 5.E-10
5. os dígitos que seguem a letra E indicam a potência de 10 que deve multiplicar 
o número que a precede.
Exemplo:
-315.21E-3 significa -315,2110= -0,31521
Os dados numéricos podem ser de dois tipos: inteiras ou reais.
Constantes inteiras são os números positivos ou negativos e que não possuem par-
te decimal compreendidos num intervalo. Esse tipo de dado, quando armazenado 
na memória do computador, ocupa 2 bytes, por isso temos 28 x 28 = 2 * 16 = 65 536 
possibilidades de representação dos números inteiros. O intervalo de valores inteiros 
possíveis é de -32768 até + 32767.
Constantes reais podem ser positivos ou negativos e possuem parte decimal. Esse 
tipo de dados, quando armazenado na memória do computador, ocupa 4 bytes, por 
isso temos, 28 x 28 x 28 x 28 = 232 possibilidades de representação dos números reais. A 
faixa de valores reais possíveis é muito maior de 6 a 11 dígitos significativos com sinal.
38
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Nos números reais a parte decimal é separada da parte inteira por um .(ponto) e não 
por uma , (vírgula).
Exemplos:
3; -521; 0; 30000 - constantes inteiras
3.146; -8.21; 6E24; 0.0 - constantes reais.
3.2.2 CONSTANTE LÓGICA 
As duas constantes lógicas são representadas pelas palavras true (verdadeiro) e false 
(falso) e são denominadas constantes booleanas. Esse tipo de dado, quando armaze-
nado na memória do computador, ocupa 1 byte, pois possui apenas duas possibili-
dades de representação.
3.2.3 CONSTANTE LITERAL
São dados formados por uma cadeia de caracteres ou por apenas um único carac-
tere. Esses caracteres podem ser os números, os caracteres especiais (&, #, @, ?, +), as 
letras maiúsculas e as letras minúsculas. Esses tipos de dado, ocupa um byte para 
cada caractere quando armazenado na memória do computador.
As constantes literais predefinidas na linguagem PASCAL são formadas por uma se-
quência de caracteres aceitos pela implementação da linguagem, incluindo as 26 
letras latinas
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z,
os dígitos 
0 1 2 3 4 5 6 7 8 9,
o espaço em branco e outros caracteres disponíveis no computador.
Num programa em PASCAL, as constantes literais são representadas pelos caracteres 
correspondentes colocados entre apóstrofos simples (‘).
39
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Exemplo:
‘José da Silva’, ‘X1Y2W3, ‘Mensagem’, ‘*A!B?-’, ‘12345’, ’23/09/55’
A representação de um apóstrofo se faz com dois apóstrofos entre apóstrofos, portan-
to, com quatro apóstrofos (‘’’’).
3.3 VARIÁVEIS 
Uma variável é um identificador que, como sugere o nome, tem a possibilidade de 
alterar o conteúdo da variável durante a execução de um algoritmo ou programa. 
Podemos associar uma variável a uma posição da memória (endereço) e poderemos 
armazenar (guardar) neste endereço qualquer valor do conjunto de valores de um 
tipo básico associado a ela. 
Segundo Farrer (1999), a memória é utilizada para armazenar tanto as instruções dos 
programas quando os dados utilizados pelos mesmos. Qualquer programa, para ser 
executado, tem de estar na memória. 
Uma variável pode assumir vários valores diferentes ao longo da execução do progra-
ma, mas, em um determinado momento, possui apenas um valor. 
Ao escrevermos os algoritmos, necessitamos armazenar dados referentes ao proble-
ma, como o resultado de uma operação, um número ou até mesmo um nome. Para 
armazenar esses dados, precisamos reservar uma área da memória do computador 
para esta utilização. A forma de solicitar ao computador a reserva dessa memória é 
chamada de declaração de variáveis. Veja a sintaxe da declaração:
var nome_da_variavel: tipo_da_variavel 
onde:
var: Indica o início do bloco de declaração de variáveis de um algoritmo. Indepen-
dente da quantidade de variáveis a serem declaradas, a palavra var é escrita apenas 
uma vez. 
40
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
nome_da_variavel: Para que o computador reserve o espaço de memória, temos 
que informar como será referenciado essa área de memória, ou seja, qual nome será 
dado a esse espaço de memória. As regras para nomear às variáveis serão abordadas 
ainda nesta unidade. 
tipo_da_variavel: É necessário informar o tipo de dados que será armazenado na 
variável para que o computador saiba o tamanho do espaço de memória necessário 
a ser reservado. Apresentado na sequência. 
As variáveis e outras entidades são representadas por identificadores.
3.3.1 FORMAÇÃO DE IDENTIFICADORES
Suponhamos que, estamos desenvolvendo um algoritmo que calcule o aumento do 
dissídio dos colaboradores da empresa, precisamos de variáveis para armazenar o va-
lor do salário e para os resultados dos cálculos. Assim, o nome dado à variável deve ser 
intuitivo evidenciandoo objetivo da mesma, as seguintes regras de formação tam-
bém devem ser seguidas:
1. Um identificador deve começar com um caractere alfabético;
2. Podem ser seguidos por mais caracteres alfabéticos ou numéricos;
3. Não é permitido o uso de espaço em branco ou de qualquer outro caractere, 
que não seja letra, dígito ou underline na formação de um identificador;
4. Utilize nomes sugestivos.
A linguagem PASCAL considera as letras maiúsculas de um identificador como equi-
valente às minúsculas correspondentes. 
Exemplo:
a) Identificador permitidos:
A X5
Nota A32B 
Matrícula F1G3H5
Nota final LucroTotal
41
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
b) Identificadores não permitidos
5B X-Y 
E(13) Nota[1]
A:B B*D
Km/H Terca-feira
Alguns identificadores possuem seu sentido prefixado na linguagem e não podem 
ser utilizadas como variáveis comuns, são as denominadas palavras reservadas ou 
palavras-chaves. As mais comuns são:
and end nil set
array file not then
begin for of to 
case function or type
const goTo packed until
div if procedure var
do in program while 
downTo label record with
else mod repeat
3.3.2 DECLARAÇÃO DE VARIÁVEIS
No ambiente computacional, os dados das variáveis são armazenados em memória. 
Podemos imaginar essa memória como sendo um armário repleto de gavetas, no 
qual as gavetas seriam os locais físicos responsáveis por armazenar objetos; os objetos 
(que podem ser substituídos) seriam os dados e as gavetas, as variáveis.
42
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Vimos que a forma de identificar e diferenciar as variáveis (gavetas) na memória (ar-
mário) se faz por meio de identificadores (etiquetas). Cada variável (gaveta), pode 
guardar apenas um dado (objeto) de cada vez, sendo sempre do mesmo tipo primi-
tivo (material).
Portanto, quando declaramos uma variável, devemos ter em mente quais valores se-
rão armazenados naquele espaço de memória. Uma variável pode ser de um dos 
seguintes tipos:
• Tipo inteiro: Qualquer número inteiro, negativo, nulo ou positivo. Por exemplo, 
se precisarmos de uma variável para armazenar a idade dos funcionários, o 
tipo ideal para essa variável seria inteiro.
• Tipo real: Qualquer número real, ou seja, valores com ponto decimal. Esse seria 
o tipo ideal para armazenar o salário dos funcionários.
• Tipo caractere: Variável do tipo literal caractere para armazenar um único ca-
ractere, que pode ser uma letra ou um símbolo. Por exemplo, para identificar 
o sexo do funcionário.
• Tipo cadeia: Variável do tipo literal cadeia para armazenar uma sequencia de 
caracteres, ou seja, uma palavra. Por exemplo, para armazenar o nome do fun-
cionário.
• Tipo Lógico: Variável para armazenar valores lógicos. Será sempre verdadeiro 
ou falso. 
Sua sintaxe é:
var
nome_variavel1, nome_variavel2 : tipo_variavel1e2
nome_variavel2 : tipo_variavel3
43
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
3.4 COMENTÁRIOS
À medida que um programa cresce, ele vai ficando cada vez mais difícil de ser lido 
e consequentemente de ser entendido. Para tornar o algoritmo legível e claro, deve-
mos colocar textos que expliquem o raciocínio adotado durante seu desenvolvimen-
to para que outras pessoas, ou o próprio desenvolvedor, ao ler o programa mais tarde, 
não tenhamos dificuldades em entender sua lógica. Esses textos são chamados de 
comentários. 
O comentário é um texto ou simplesmente uma frase, que aparece sempre delimi-
tado por chaves, podendo ser colocado em qualquer ponto do algoritmo onde se 
façam necessários. 
No exemplo a seguir é mostrado um conjunto de declarações onde foram introduzi-
dos comentários como o intuito de explicar o significado de cada uma das variáveis.
var mat, {número de matrícula do aluno}
 nota {total de pontos obtidos no semestre letivo}
 cod: {código do curso}
 integer;
var nome, {nome completo do aluno}
 end, {endereço do aluno}
 c: {conceito final}
 string;
Na linguagem de programação C, há dois tipos de comentários: os comentários de 
linha e os comentários de bloco. Os comentários de linha são identificados pelo uso 
de duas barras seguidas (//). Assim, quando usamos // em uma linha, tudo o que esti-
ver nessa linha depois do // são considerados comentários.
44
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Os comentários de bloco são iniciados por /* e finalizados por */. Tudo o que estiver 
entre esses dois símbolos são considerados comentários. Os comentários de bloco 
podem ocupar várias linhas.
Figura 16. Exemplo de algoritmo com comentários
A Figura 15 mostra a execução do programa acima. Note que o comentário só apare-
ce no código fonte, não influenciando na execução do programa.
3.5 EXPRESSÕES ARITMÉTICAS
As expressões aritméticas são escritas linearmente, usando-se a notação matemática, 
com as seguintes restrições:
• O sinal de multiplicação é indicado com asterisco (*) e nunca deve ser suben-
tendido;
• A divisão é indicada com a barra (/);
• Não existe sinal para a potenciação e radiciação, devendo-se indicá-las com 
combinações de produtos ou funções predefinidas;
• A prioridade entre as operações:
1ª -> * / div mod
2ª -> + - 
45
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
• Div e mod são operadores que só podem ser aplicados com operandos intei-
ros dando, respectivamente, o quociente inteiro (obtido por divisão e trunca-
mento, sem arredondamento) e o resto inteiro da divisão entre operandos.
11 div 4 dá resultado 2
11 mod 4 da resultado 3 
• Uma expressão que só tenha operandos inteiros e operadores *, mod, div, + e – 
terá com resultado um valor inteiro. Se, pelo menos, um dos operandos for real 
(o outro podendo ser inteiro) e se os operadores forem *, /, + ou -, o resultado 
da expressão será real.
• O operador / sempre conduz a um resultado do tipo real, mesmo que os dois 
operandos sejam inteiros.
Os parênteses servem para indicar uma sequência de cálculo da expressão aritmética 
diferente da que seria indicada exclusivamente com o uso das prioridades preesta-
belecidas. 
3.6 EXPRESSÕES LÓGICAS
São expressões formadas a partir do uso de variáveis e constantes, operadores relacio-
nais e operadores lógicos. As expressões lógicas são avaliadas e retornam sempre um 
valor lógico: verdadeiro ou falso.
Os operadores são comuns para construirmos equações. Adotaremos por convenção 
para esses operadores os seguintes símbolos apresentados na tabela 2.
tabela 2 – operadores e funções
46
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
O resultado obtido de uma relação é sempre um valor lógico. Por exemplo,analisan-
do a relação numérica A + B = C, o resultado será verdade ou falsidade à medida que 
o valor da expressão aritmética A + B seja igual ou diferente do conteúdo da variável 
C, respectivamente. 
Eis algumas relações:
A <> B 
Nome == “Bruno”
X = 1
Com as declarações:
var x, y, z: integer;
Nome, Cor: string;
Têm-se as seguintes relações, a partir dos valores atribuídos às variáveis:
VARIÁVEIS RELAÇÕES
x y z Cor Nome X * X + Y > Z Cor = 'Azul' Nome <> 'Jose'
1 2 5 'azul' 'Paulo' false true true
4 3 1 'verde' 'Jose' true false false
1 1 2 'branco' 'Pedro' false false true
1 2 1 'azul' 'Jose' true true false
3.6.1 OPERADORES LÓGICOS
A álgebra das preposições define três conectivos usados na formação de novas pre-
posições a partir de outras já conhecidas. Esses conectivos são os operadores nas 
expressões lógicas:
and para a conjunção
or para a disjunção
not para a negação
47
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Sejam as variáveis lógicas P, Q, R, S contendo, respectivamente, os valores true, false, 
false, true.
O valor lógico das conjunções:
a. P and S -> true
b. P or R -> true
c. Q and S -> false
d. Q or R -> false
3.6.2 PRIORIDADE
Como foi mostrado anteriormente, pode-se ter mais de um operado lógico na mes-
ma expressão, além dos operadores de relação e dos operadores aritméticos. Em 
PASCAL, a prioridade das operações está dada na tabela 3.
Tabela 3 – Prioridade das operações aritméticas
PRIORIDADE OPERADORES
1ª not
2ª *, /, div, mod, and
3ª +, - , or
4ª =, <>, <, <=, >=, >, in
3.7 COMANDOS DE ATRIBUIÇÃO
Um comando de atribuição permite-nos fornecer um valor a uma variável (guardar 
um valor na memória), em que o tipo de 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.
O comando de atribuição possui a seguinte sintaxe:
identificador <- expressão
48
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Onde:
 identificador: é o nome da variável à qual será atribuído o valor da expressão;
 <- : é denominado operador de atribuição;
 expressão: é uma expressão dos tipos já estudados.
No exemplo a seguir:
 lógico: A, B
 inteiro: X;
A <- B;
X <- 4 + 6 div 2;
B <- 5 = 3;
X <- 2;
Nos comandos em que o valor a ser atribuído à variável é representado por uma ex-
pressão aritmética ou lógica, estas devem ser resolvidas em primeiro lugar, para que 
depois o resultado possa ser armazenado na variável. 
Notemos também que uma variável pode ser utilizada diversas vezes. Ao atribuirmos 
um segundo valor, o primeiro valor armazenado será descartado, sendo substituído 
pelo segundo.
3.8 COMANDOS DE ENTRADA E SAÍDA
Um programa de computador se torna praticamente inútil se não apresentar algum 
tipo de interação com o usuário. Os algoritmos precisam de interações de dados pro-
venientes do meio externo para efetuarem operações e cálculos que são necessários 
para alcançar o resultado desejado. Com essa finalidade, utilizamos os comandos de 
entrada e saída. 
49
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
3.8.1 ENTRADA DE DADOS
Para que o algoritmo possa receber os dados de que necessita, adotaremos o coman-
do entrada de dados denominado leia, em PASCAL read e readln, cuja finalidade é 
atribuir o dado a ser referenciado à variável identificada.
No PASCAL, a diferença entre read e readln é que neste último, após a leitura dos va-
lores correspondentes à lista-de-identificadores, provoca uma mudança de linha na 
unidade de entrada utilizada.
Se for feita a declaração:
var num: integer;
 nota: real;
e se forem fornecidas, na unidade de entrada, diversos valores como:
01 60.05 02 88.6
03 84.04 04 54.00
cada linha dispondo de quatro valores, então quatro execuções repetidas do coman-
do readln (num, nota);
atribuirão à variável num, sucessivamente, os valores: 
01 03 
e a variável nota, respectivamente, os valores:
60.05 84.04
Em cada linha, os valores, além do segundo, serão ignorados.
Por outro lado, em quatro execuções repetidas do comando ao serem read(num, 
nota) fornecidas as mesmas linhas, serão atribuídos à variável num, sucessivamente, 
os valores:
01 02 03 04
50
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
e a variável nota, os respectivos valores:
60.05 88.6 84.04 54.00
3.8.2 SAÍDA DE DADOS
Para que o algoritmo possa mostrar os dados que calculou, como resposta ao proble-
ma que resolveu, adotaremos um comando de saída de dados denominado escreva, 
cuja finalidade será apresentar o valor da variável identificada. No PACAL, os coman-
dos de saída possuem a forma write e writeln a diferença básica entre os comandos 
é que no writeln após a leitura dos valores correspondentes à lista-de-identificadores, 
provoca uma mudança de linha na unidade de saída utilizada.
Exemplos:
read(X); readLn (nome, n, y) write(k, soma)
Para aprofundar seus conhecimentos, recomendo a leitura do capítulo 4 (da página 
33 à 44) do livro Treinamento em Lógica de Programação, de Sandra Rita Pinto ou o 
capítulo 2 (da página 34 à 44) do livro Técnicas de Programação - Uma Abordagem 
Moderna, do autor Mario Leite.
51
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
OBJETIVO 
Ao final desta 
unidade, 
esperamos 
que possa:
> Identificar o problema e 
pensar na solução bem 
geral ou abstrata;
> Refinar até obter um 
nível apropriado de 
detalhamento, ou 
seja, a cada passo de 
refinamento a solução se 
torna menos abstrata;
> Construção de sub-
rotinas ou sub-algoritmos;
> Identificação dos 
contextos das sub-rotinas;
> Criação de subprogramas
UNIDADE 4
52
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
4 CONSTRUÇÃO DE 
ALGORITMOS POR 
REFINAMENTOS 
SUCESSIVOS.
4.1 APRESENTAÇÃO DA UNIDADE
Nesta unidade vamos conhecer as técnicas de refinamento sucessivos. Vamos abor-
dar os conceitos de sub-rotinas e sua aplicabilidade reduzindo a complexidade do al-
goritmo. Vamos aprender também o significado de escopo e a utilização de variáveis 
bem como a comparação dos diferentes contextos de sub-rotinas e suas aplicações.
4.2 SUB-ROTINAS
A divisão de um problema em fragmentos menores é um fator determinante para a 
redução da complexidade. Um dos grandes pontos positivos quanto a esta decom-
posição, está na possibilidade de concentrar as atenções em um conjunto pequeno 
de cada vez, possibilitando assim uma melhor compreensão do todo.
Nos algoritmos, uma sub-rotina é um conjunto de algoritmo completo de instru-
ções, com uma função bem definida no contexto do algoritmo. O algoritmo principal, 
quando necessário, realiza o desvio na execução indicando que aquele conjunto de 
instruções devem ser executadas. Após a execução desta sub-rotina, o fluxo dos co-
mandos é retomado para o fluxo principal.
Em geral, não existem regras específicas para a criação das sub-rotinas, porém, al-
guns critérios devem ser analisados: 
• Divisão do problema de acordo com as principais partes;
• Garantir que existem coerências nas divisões realizadas;
53
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
• Se mesmo após a divisão, o trecho ainda continuarcomplexo, divide-o 
novamente;
• Analisar a divisão final para garantir a legibilidade e a coerência.
A técnica de refinamentos sucessivos também conhecido como Top-Down (de cima 
para baixo), onde parte dos conceitos macros, ou seja, mais abstratos, até atingir o 
nível de detalhamento ideal para o entendimento do problema.
Em geral, as sub-rotinas possuem os seguintes propósitos:
• organizar conjuntos de instruções que se repetem em várias partes do algo-
ritmo, possibilitando a escrita da solução uma única vez e indicar os pontos 
diferentes em que ela deva ser aplicada;
• separar as instruções de forma a obter uma melhor organização do algoritmo, 
possibilitando maior clareza e entendimento do algoritmo;
• testes e correções das sub-rotinas podem ser feitos em separado;
• separar as instruções que realizam tarefa simples ou complexa, de forma que 
uma solução feita para um problema possa ser reaproveitado em outro, mini-
mizando esforços;
• uma sub-rotina independente pode ser utilizada em outros algoritmos que 
requeiram o mesmo processamento por ele executado.
Uma sub-rotina não pode ser executado diretamente como um programa. Ele pre-
cisa ser “invocado” ou “chamado” de algum ponto do código do programa como um 
todo do qual faz parte. Se durante a execução do fluxo de instruções atingir um pon-
to de invocação, ou seja, quando em um determinado ponto do algoritmo contém 
o mesmo identificador utilizado na definição da sub-rotina, o fluxo de controle da 
execução passa para a sub-rotina, e, ao ser concluída a execução deste subprograma, 
o fluxo de controle é retomado imediatamente após o ponto de invocação do algo-
ritmo de origem.
Uma sub-rotina pode eventualmente invocar outras sub-rotina e assim sucessiva-
mente. Muitas linguagens de programação permitem também que um sub-rotina 
invoque a si próprio. Nestes casos dizemos que ocorreu uma chamada recursiva. 
Este assunto ainda será explanado nesta unidade.
54
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Como pode ser observado no fluxo de execução do algoritmo na Figura 16, assim 
que for encontrado um identificador contendo o mesmo nome da sub-rotina, neste 
exemplo, Primeiro e Segundo, o fluxo é direcionado para as respectivas sub-rotinas e 
no final de cada trecho, retorna-se para o algoritmo principal.
Figura 17. Figura 16. Fluxo de execução do algoritmo
No exemplo seguinte observe as etapas do algoritmo para calcular o salário líquido 
de um empregado (FIG. 17).
Figura 18. Etapas de algoritmo
O comando “determine o salário” pode ser refinado como a seguir (FIG. 18):
Figura 19. Refinamento das etapas de algoritmo
55
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Observe que no refinamento realizado acima, não foi detalhado como seria a lógica 
dos cálculos de vantagens e das deduções. Estas ações serão definidas adiante em 
sub-rotinas específicas, conforme a Figura 19. 
Figura 20. Refinamento mais aprofundado das etapas de algoritmo
As sub-rotinas seriam (FIG. 20 e 21):
Figura 21. Sub-rotina para cálculos das vantagens
Figura 22. Sub-rotina para cálculo das deduções
A versão final do refinamento sucessivo do algoritmo ficaria da seguinte forma (FIG. 
22, 23 e 24):
Figura 23. Algoritmo refinado.
56
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Figura 24. Algoritmo refinado do cálculo das vantagens.
Figura 25. Algoritmo refinado do cálculo das deduções.
Já no exemplo a seguir, o objetivo é receber o salário de um funcionário e conceder 
um aumento salário de acordo com o % informado. Para solução deste problema, 
uma sub-rotina foi utilizada (FIG. 25)
Figura 26. Algoritmo para cálculo salarial.
O programa principal é executado linearmente até a linha 4. Nesse ponto é chama-
do a sub-rotina cálculo, o programa principal fica aguardando o retorno da sub-roti-
na. As instruções a serem executadas neste momento é direcionada para a linha 9. 
O controle retorna sua execução novamente ao programa principal apenas quando 
a linha 13 é executada.
57
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
4.3 ESCOPO DE VARIÁVEIS
Quando trabalhamos com várias sub-rotinas, nos deparamos com questões relativas 
à visibilidade das variáveis em diferentes partes do programa. Ou seja, se uma variável 
é visível ou acessível em certas partes de um programa. 
Todas as variáveis declaradas no início do algoritmo os tornam visíveis e utilizáveis em 
qualquer sub-rotina integrante. Essas variáveis são denominadas globais.
Em algumas situações, as variáveis são utilizadas apenas em uma sub-rotina especí-
fica. Neste caso, não justifica uma definição global, pois a mesma deverá ser visível e 
utilizada apenas dentro daquele limite de instruções lógicas. Nesta situação, a variá-
vel é declarada internamente na sub-rotina, denominada, variável local.
Para entendermos como funciona a visibilidade das variáveis, precisamos falar sobre 
o escopo. O escopo ou abrangência de uma variável é a parte do programa na qual 
ela é visível e pode ser acessada. A visibilidade refere-se a hierarquia, ou seja, uma va-
riável é global quando e visível e acessada por todas as sub-rotinas inferiores, e local, 
quando é visível apenas em seu contexto e não nas sub-rotinas superiores. 
Observe na Figura 26 as variáveis K e J definidos no início do algoritmo são visíveis, a 
princípio, a todo e qualquer módulo, ou seja, são globais a todos. A variável M é local 
ao módulo 3 e visível a apenas estes, assim como a variável Y é local do módulo 2. 
Figura 27. Escopo de variáveis.
58
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Em outra situação temos a variável X, que é local ao módulo 1, sendo visível também 
no módulo 2, podendo ser definida relativamente como global ao módulo 2.
Em uma situação bastante particular, na qual ocorre um conflito de declaração da 
variável K (início do algoritmo e interior do módulo 1), assumiremos que sempre que 
a variável a ser utilizada no interior do módulo será a que foi definida neste, ignoran-
do a existência de outra variável de mesmo nome no âmbito global. Temos, então, 
que os módulos 1 e 2 não enxergam a mesma variável global K vista pelo módulo 3, 
e sim a variável K definida localmente a 1 e globalmente a 2. 
4.4 PROCEDIMENTOS
No processo de escrita de algoritmo frequentemente escrevemos instruções que 
pode se repetir várias vezes ao longo da lógica. Por exemplo, se quisermos calcular a 
média salarial do Centro de Tecnologia da empresa composta por dois analistas de 
sistemas da equipe, temos que somar o salário do analista 1 com o salário do analista 
2 e dividir por 2. Se tivermos que calcular a média salarial de outra equipe da empre-
sa, temos que repetir esse mesmo cálculo: somar os salários e dividir pela quantidade 
de analistas. Inicialmente, a forma mais simples de resolver esse problema é replican-
do esse algoritmo para cada equipe. 
Imagine se essa empresa possuir mais de 30 setores e decida realizar esse cálculo? 
A repetição de trechos de código em um programa é considerada uma péssima prá-
tica. Imagine que após a replicação deste mesmo trecho de código para os 30 se-
tores, é identificado um erro no cálculo. A resposta para a eliminar a repetição de 
código chama-se: procedimentos e funções.
É muito comum o isolamento dos códigos em procedimentos ou funções de acordo 
com as instruções que se repetem em vários trechos do código. Quando precisarmosexecutar estas instruções repetidas vezes, basta invocar o nome do bloco de código que 
as contém. A esse bloco de código é que chamamos de procedimentos ou funções.
Depois de decompor um problema complexo em subproblemas, podemos criar um 
procedimento para cada um destes problemas menores. Para delimitar um procedi-
mento, utilizaremos os delimitadores procedimento e fim_procedimento. A forma 
genérica do procedimento é apresentada abaixo (FIG.27).
59
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Figura 28. Algoritmo contendo a declaração do procedimento.
O identificador é o nome dado ao procedimento, este deverá ser único e não confli-
tante com as demais declarações (como variáveis e tipos). A lista de parâmetros, que 
pode ser nula ou até mesmo vazia, lista os parâmetros formais do procedimento (de-
talhados nas próximas seções). As declarações de variáveis internas correspondem a 
quaisquer declarações, seja de tipos, variáveis, sub-rotinas e etc. 
A sequência de ações corresponde às instruções que devem ser executadas para 
completar o propósito do procedimento. Estes comandos manipulam os parâmetros 
e as declarações internas para obter-se o resultado desejado. As variáveis, os tipos e 
as constantes declaradas dentro de um procedimento só são acessíveis dentro dos 
comandos do procedimento. São chamadas variáveis locais.
Dentro do procedimento podem ser utilizadas tanto variáveis locais quanto variáveis 
globais. Todas as variáveis locais aos procedimentos são alocadas somente quando 
o procedimento entra em execução, mas são liberadas quando o procedimento ter-
mina, perdendo assim, seus conteúdos. Caso seja necessário o aproveitamento dos 
dados manipulados, o procedimento deverá utilizar as variáveis globais (FIG.28)
Figura 29. Algoritmo utilizando chamada de procedimentos.
60
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
4.5 FUNÇÕES
Outro tipo de sub-rotina são as funções. Uma função possui o mesmo objetivo de 
um procedimento, ou seja, desviar a execução do algoritmo principal para realizar 
uma tarefa específica, com uma única diferença, uma function sempre retorna um 
valor. 
Diferente dos procedimentos, uma função não deverá simplesmente ser chamada, 
mas deverá ser atribuída à alguma variável. Uma função deve ter um nome e um tipo, 
e sua sintaxe é mostrada abaixo (FIG. 29)
Figura 30. Algoritmo de declaração de função.
O nome da função é quem deve assumir o valor da função, como se fosse uma variá-
vel. O tipo corresponde ao tipo do valor que será retornado. NOME é o próprio nome 
dado à função. Já a lista-de-parâmetros-formais, corresponde à lista dos objetos que 
serão substituídos por outros objetos, fornecidos quando da chamada da função. 
Assim como nos procedimentos, uma função deve ser definida dentro do espaço 
de declaração de variáveis do programa. Para que a função possa retornar um valor, 
este deverá ser explicitamente atribuído ao nome da função, dentro da rotina da fun-
ção. 
A diferença entre procedimentos e funções é unicamente no retorno do bloco de 
código: funções retornam valores após a execução da sua lista de instruções, procedi-
mentos não. Os algoritmos a seguir resolvem o mesmo problema, com uma simples 
diferença, no algoritmo da Figura 30 é utilizado procedimento, enquanto que na Fi-
gura 31 é utilizado função. O resultado dos algoritmos neste caso, é o mesmo.
61
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
Figura 31. Algoritmo com procedimento somar.
Figura 32. Algoritmo com função somar.
62
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Para facilitar o entendimento, vamos ver o exemplo a seguir na Figura 32.
Figura 33. Algoritmo para calcular a média utilizando função.
Agora criamos uma função que calcula a média das notas com base nos parâmetros 
recebidos, e devolve o valor da média ao invés de fazer a impressão. A função deve 
ser definida usando o tipo de retorno que ela irá fornecer (no caso do exemplo, valor 
de tipo real) além dos parâmetros que são opcionais. Dentro do bloco da função, 
devemos usar uma instrução que indique o valor que será retornado (nas linguagens 
geralmente a palavra é return para retornar um valor). Em pseudocódigo, a represen-
tação usada é de que o nome da função recebe o valor, isso quer dizer que quando 
chamarmos essa função podemos atribuí-la a uma variável de tipo real, pois ela irá 
conter um valor de resposta.
4.6 PARÂMETROS FORMAIS
Os parâmetros possuem a capacidade de permitir uma solução genérica para o có-
digo da sub-rotina e, no momento da chamada, é indicado o (s) argumento (s) sobre 
o qual as ações serão realizadas. Estes argumentos podem ser tantos constantes ou 
63
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017
Algoritmo e lógicA de ProgrAmAção
SUMÁRIO
variáveis que serão correspondidos na sub-rotina na mesma ordem em que estão 
definidos no algoritmo chamador, ou seja, o primeiro argumento corresponde ao pri-
meiro parâmetro, o segundo argumento ao segundo parâmetro e assim por diante.
Como exemplo do uso de parâmetros em um procedimento, observe a Figura 33, 
que realiza a troca do valor inteiro de duas variáveis.
Figura 34. Algoritmo para troca de valores em duas variáveis.
Ao invocar a sub-rotina Troca, supondo valores 15 e 7 para os respectivos parâmetros 
A e B. Após executar todas as instruções, A valerá 7 e B valerá 15, realizando assim a 
troca de valores.
Uma sub-rotina comunica-se com o algoritmo chamador de duas maneiras: através 
de passagem e retorno de valores ou modificando os valores que são globais à fun-
ção. Estes dois comportamentos distintos para os parâmetros refere-se a passagem 
por valor ou passagem por referência. 
4.6.1 PASSAGEM DE PARÂMETROS POR VALOR
Na passagem de parâmetros por valor não existe ligação entre o parâmetro e a variá-
vel usada na chamada. Esta variável poderá ser utilizada e alterada dentro da função 
sem afetar a variável da qual ela foi gerada, pois esta possui sua própria área de me-
mória para armazenamento. 
Ao finalizar a função chamada, todas as variáveis criadas para os parâmetros locais 
deixam de existir. A passagem de parâmetro por valor é simples e geralmente é a 
melhor que se encaixa nos casos. Mas em algumas situações pode ser desejável ter 
uma forma de modificar variáveis externas à uma determinada sub-rotina e, para isso, 
usa-se a passagem de parâmetros por referência. 
64
Algoritmo e lógicA de ProgrAmAção
FACULDADE CAPIXABA DA SERRA/EAD
Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017SUMÁRIO
Como exemplo do uso da passagem de parâmetro por valor, observe o comporta-
mento do procedimento na Figura 34.
Figura 35. Algoritmo exemplificando a passagem de parâmetro por valor.
O resultado impresso será: “O valor da variável A é”: 3. Observe que na passagem de 
parâmetro por valor, o valor da variável é copiado para o procedimento, garantindo 
assim que o seu valor original não sofra modificações caso seja alterado dentro do 
procedimento. 
4.6.2 PASSAGEM DE PARÂMETROS POR REFERÊNCIA
Passagem de parâmetros por referência indica que, na sub-rotina, o parâmetro formal 
é uma referência à variável utilizada no momento da chamada. O termo referência 
quer dizer que o endereço de memória do parâmetro e da variável é o mesmo. A con-
sequência disso é que qualquer modificação realizada no parâmetro formal é refletida 
também, na variável externa. A principal utilização de

Outros materiais