Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL 
SENAC - RIO GRANDE DO SUL 
LÓGICA DE PROGRAMAÇÃO 
 
Porto Alegre, 2003. 
LÓGICA DE PROGRAMAÇÃO 
1ª Edição 
Elaboração e Edição 
SENAC - Rio Grande do Sul 
Documento produzido para uso interno do 
SENAC - Rio Grande do Sul 
SENAC.RS - Departamento Regional no Rio Grande do Sul 
Lógica de Programação 
1ª edição 
Porto Alegre: SENAC-RS, 2003. 
68 pp. 
 
LÓGICA DE PROGRAMAÇÃO 3 
CONTEÚDO PROGRAMÁTICO 
Esta apost i la foi desenvolvida pelo SENAC/RS, para apoio ao aluno durante 
o desenvolvimento do curso de Lógica de Programação. 
Este material é composto de bases teóricas que abrangem o conteúdo 
programático do curso e exercícios para sua f ixação. 
Além do conteúdo programático, abaixo descri to, este material poderá conter 
tópicos adicionais que se destinam a complementar o aprendizado do aluno. 
O conteúdo programático deste curso foi projetado para uma carga horária 
de 60 horas, com o propósito de, ao f inal do curso, tornar o aluno apto ao uso do 
software e de suas ferramentas para a real ização dos seus trabalhos. 
O conteúdo abrange os seguintes i tens: 
Diferenças entre os Ambientes 
Operacionais: Texto e Gráfico 
Noções de Programação Orientada ao 
Objeto e ao Evento 
Conceito de Programação Estruturada 
e Modular 
Definir o Conceito ERES 
Algori tmos: Definição e ut i l ização 
Tipos de Algoritmos 
Formas de Representação 
Algori tmos Naturais e Estruturados 
Elementos usados na construção de 
Algori tmos 
Constantes e Variáveis 
Expressões 
Operandos e Operadores 
Tabela Verdade 
Comando de Atribuição 
Inicio de Estruturas 
Conceituação 
Estrutura Seqüencial 
Estrutura de Seleção Simples 
Estrutura de Seleção Composta 
Estrutura de Seleção Múlt ipla 
Estruturas de Repetição 
Contador Fixo e Flag 
Como usar o ILA e o Editor Q (Qedit) 
 
 
LÓGICA DE PROGRAMAÇÃO 4 
SUMÁRIO 
Conteúdo programát ico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 
Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 
Concei tos In iciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 
Sof tware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 
Lóg ica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 
Lógica de programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
Diferença Entre Sistemas Operacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 
Programação Orientada ao Objeto (POO) e programação Orientada ao Evento (POE). . . . . . . . 10 
Paradigma da Programação Or ientada a Eventos/Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 
O que é um Evento? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 
Como são Desencadeados os Eventos? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 
Quem Gerenc ia os Eventos? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 
O que é uma Classe de Objeto? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 
O que é um Obje to? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 
Como ut i l izar ob je tos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 
Programação estruturada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 
Algor i tmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
O que é um Algor i tmo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
Formas de Representação de um Algor i tmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
Vantagens e Desvantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 
A lgor i tmos natura is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 
Algor i tmo Natura l Comparado com Algor i tmo Est ruturado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 
Elementos Usados nos Algor i tmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 
Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 
Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 
Expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 
Operandos e Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 
Operandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 
Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 
Estruturas de Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 
Est ru tura Seqüenc ia l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 
Estru tura de Se leção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 
Estru tura de Seleção S imples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 
Estru tura de Seleção Composta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 
Estru tura de Seleção Múl t ip la . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 
 
LÓGICA DE PROGRAMAÇÃO 5 
Est ru tura de Repet ição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 
Est ru tura Faca Enquanto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 
Estru tura para prox imo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 
Exemplo de repet ição por contador f ixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 
Exemplo de repet ição por f lag de resposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 
Exemplo de repet ição por f lag predeterminado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 
Procedimentos e Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 
Modular ização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 
Módulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 
Di ferença ent re Procedimento e Função . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 
Procedimentos com Parâmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 
Passagem de parâmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 
Exemplos de Procedimento e Função . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 
Recurs iv idade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 
Vetores e Matr izes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 
O que são Vetores e Mat r izes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 
Algori tmos para Manipular Vetores e Matr izes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 
Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 
Apêndice 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 
Exemplo de Algor i tmo para Ordenar um Vetor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 
Apêndice 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 
Comandos do Interpretador da L inguagem dos Algor i tmos ( i la ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 
Exercícios de Raciocínio Lógico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 
Exercíc ios com Algor í tmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 
 
 
LÓGICA DE PROGRAMAÇÃO 6 
CONCEITOS INICIAIS 
Desde os primórdios, o homem vem tentando resolver seus problemas com 
maior rapidez e o menor esforço possíveis, procurando automatizar as tarefas 
rotineiras. Isso possibi l i tou o aparecimento de instrumentos como a roda, roldana, 
alavanca, carro e até o computador. 
No entanto as tarefas que devem ser real izadas pelo computador, de forma 
automática, têm de ser anteriormente pensadas e colocadas em uma seqüência 
de ações para, posteriormente, serem inseridas na máquina. A essa seqüência de 
ações denomina-se Programa e à fase de formular soluções que gerem 
programas denomina-se Lógica de Programação . 
Programar é basicamente Construir Algoritmos . 
A meta principal de qualquer programador é resolver problemas por meio de 
soluções lógicas para obter resultados eficientes (corretos) e eficazes (com 
qual idade). Porém, se as soluções não forem bem planejadas (passo a passo), 
com certeza essa meta não será at ingida. 
Antes de iniciar o estudo de Lógica de Programação , conheça alguns 
conceitos básicos: 
SOFTWARE 
Software é o conjunto dos programas quecomandam o funcionamento do 
Hardware . Programas são fei tos a part i r de algori tmos (objeto de estudo deste 
curso), seqüências de instruções/comandos para se at ingir um objetivo. 
Depois de pronto, o algoritmo é convert ido para uma l inguagem de 
programação . O produto dessa conversão é um programa . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 7 
LÓGICA 
As pessoas uti l izam a lógica no cotidiano sem perceber; chegam mesmo a 
citá-la, sem entender direi to o seu signif icado. 
Segundo o dicionário Aurél io , a lógica é a “coerência de raciocínio, de 
idéias”, ou ainda a “seqüência coerente, regular e necessária de acontecimentos, 
de coisas”. 
Você pode perceber isso, nos exemplos a seguir: 
O número 3 é menor que o número 5. 
O número 7 é maior que o número 5. 
Logo, o número 3 é menor que os números 5 e 7. 
Quando chove, não é preciso regar as plantas do jardim. 
Hoje choveu. 
Logo, hoje não é preciso regar as plantas do jardim. 
O Brasi l f ica na América do Sul. 
A América do sul f ica no continente americano. 
Logo, os brasi leiros são americanos. 
Às vezes o raciocínio funciona desordenadamente. Quantas vezes você já 
ouviu as frases: “E se acontecer aqui lo?”, ou “É, mas eu não t inha pensado 
nisso!” 
Neste exemplo, estão descri tas ações de quem vai a um banco; entretanto, 
veja se seria possível ret i rar o dinheiro obedecendo à seqüência descri ta. 
1 Sair do banco. 
2 Aguardar a vez de ser atendido. 
3 Entrar na f i la do caixa. 
4 Digi tar a senha. 
5 Entrar no banco 
6 Informar o valor a ser ret irado. 
7 Procurar a f i la do caixa. 
8 Pegar o comprovante de saque, o cartão eletrônico e o dinheiro. 
9 Entregar o cartão eletrônico ao funcionário que atende no caixa. 
10 Conferir o valor em dinheiro. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 8 
Você conseguir ia ret i rar o dinheiro? Com certeza não, pois, embora as ações 
estejam corretas, a seqüência está errada. A primeira ação é sair do banco . 
Como se pode reti rar dinheiro de um banco estando fora dele? Agora observe as 
mesmas ações na seqüência correta. 
1 Entrar no banco. 
2 Procurar a f i la do caixa. 
3 Entrar na f i la do caixa. 
4 Aguardar a vez de ser atendido. 
5 Entregar o cartão eletrônico ao funcionário que atende no caixa. 
6 Informar o valor a ser ret irado. 
7 Digi tar a senha. 
8 Pegar o comprovante de saque, o cartão eletrônico e o dinheiro. 
9 Conferir o valor em dinheiro. 
10 Sair do banco 
Uti l iza-se a lógica para ordenar e corrigir pensamentos ou ações voltados 
para a solução de problemas. 
LÓGICA DE PROGRAMAÇÃO 
Falar em Lógica de Programação s ignif ica apenas contextual izar a lógica 
na programação de computadores, buscando a melhor seqüência de ações para 
solucionar determinado problema. 
Na programação de computadores, o nome dessa seqüência de ações é 
Algoritmo , que é, de maneira bem simples, a seqüência de passos ou ações para 
at ingir um objet ivo. 
Já ação é um fato que, a part i r de um estado inicial , após um período de 
tempo f inito, produz um estado f inal previsível e def inido. Por exemplo, abrir uma 
porta é uma ação. 
 
 
No exemplo acima você pode observar que, ao objeto (porta), no estado 
inicial (porta fechada), é apl icada a ação (abrir) por um tempo determinado 
(segundos), levando ao estado f inal (porta aberta), previsível e def inido (pois é 
esperado que, quando se abre algo, principalmente qualquer porta, no f inal, ela 
esteja aberta). 
OBJETIVO 
O objetivo deste curso é proporcionar a apropriação de conhecimentos 
capazes de reconhecer, ut i l izar e saber a f inal idade e o funcionamento das 
técnicas, ferramentas e elementos uti l izados na construção de algori tmos para 
que possamos ordenar, desenvolver e aprimorar o raciocínio lógico apl icado na 
solução de problemas do cotidiano. 
 
LÓGICA DE PROGRAMAÇÃO 9 
DIFERENÇA ENTRE SISTEMAS OPERACIONAIS 
O Sistema Operacional no ambiente Texto, o DOS, entre outros, tem como 
lógica a tr i logia C.O.D. - Comando, Origem e Destino. 
Exemplo: 
O Sistema Operacional no ambiente Gráf ico, o Windows, entre outros, tem 
como lógica a tr i logia O.E.A. - Objeto, Evento e Ação. 
É necessário exist ir um Objeto (ex. Um botão), um Evento (ex. Um cl ique 
neste botão), para executar uma Ação (ex. Abrir outra Janela). 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 10 
PROGRAMAÇÃO ORIENTADA AO OBJETO (POO) E 
PROGRAMAÇÃO ORIENTADA AO EVENTO (POE). 
PARADIGMA DA PROGRAMAÇÃO ORIENTADA A EVENTOS/OBJETOS 
Neste paradigma, o controle de f luxo de dados é cr iado a part i r da 
elaboração da Interface, onde o sistema operacional envia mensagens ao 
apl icativo informando quando algum Evento ocorre e sobre qual Objeto . A part ir 
desta mensagem é veri f icada a existência de Código para tratar o Evento ; se 
houver, este é executado. 
Assim, a ordem através da qual o seu Código de programa é executado 
depende de quais Eventos ocorram. 
Por essa razão, costuma-se dizer que quem controla a execução do sistema 
é o Usuário , pois, invariavelmente, o evento será disparado por ele. 
A Programação Orientada ao Objeto (POO) contém a Programação Orientada 
ao evento (POE), porém a POE não existe sem a POO. Podemos ter um objeto e 
não ter nenhum evento associado a ele, porém não podemos ter um evento sem 
exist ir um objeto. 
O QUE É UM EVENTO? 
Um evento é um acontecimento, algo que acontece ou se faz acontecer 
sobre um Objeto da apl icação. Um acontecimento que o objeto pode reconhecer. 
COMO SÃO DESENCADEADOS OS EVENTOS? 
Através de ações de Usuários interagindo com o programa, por um outro 
programa requisi tando uma troca de dados, ou pelo próprio Windows. 
Mexer e cl icar botões do mouse, pressionar teclas no teclado, são ações que 
desencadeiam eventos. Exemplos de eventos: Cl ick, MouseMove, Keypress. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 11 
QUEM GERENCIA OS EVENTOS? 
Os eventos são gerenciados pelo próprio programa ou pelo sistema 
(ambiente) operacional gráfico. 
Exemplo de fluxograma: 
 
O QUE É UMA CLASSE DE OBJETO? 
Uma Classe Objeto é um modelo de como o objeto será ao ser cr iado, ou 
seja, de onde este é derivado. A classe é composta por Código e Dados 
formando uma unidade. 
Exemplos de classes: 
 
O QUE É UM OBJETO? 
Um Objeto é uma instância de uma classe. Quem uti l iza um objeto não 
precisa saber como este foi construído, mas, como interagir com ele; nem como o 
objeto executa um cálculo, mas como chamar a função que o executa e definir 
valores aos seus parâmetros. 
Desta forma um objeto da classe CommandButton (Command1) só exist i rá 
quando desenharmos este em um formulário, neste instante cr ia-se uma instânciadesta classe, o objeto Command1. 
 
LÓGICA DE PROGRAMAÇÃO 12 
COMO UTILIZAR OBJETOS 
Os objetos são ut i l izados através da manipulação de suas Propriedades, 
Métodos e Eventos , def inidos assim: 
 
Desta forma, para alterarmos a cor de fundo de um formulário, devemos 
alterar o valor da propriedade BackColor, com o valor correspondente à cor 
desejada. Ex: Red 
Se quisermos exibir (ação) um formulário ( janela), temos que ut i l izar o 
Método Show . Ex: Form1.Show 
Por f im, se quisermos emit ir um Beep toda vez que o usuário movimenta o 
mouse sobre o formulário, devemos escrever um código para o Evento do Objeto 
que reconhece este movimento, neste caso o evento MouseMove . 
Vantagens na uti l ização de objetos 
A primeira vantagem é a redução no número de l inhas de código. Imagine 
você ter que criar uma janela que permita a conf iguração de Impressora, em vez 
de cr iá- la e escrever centenas de l inhas de código, você pode uti l izar o objeto 
CommonDialogControl fornecido pela l inguagem. 
Outra vantagem é a possibi l idade da ut i l ização de objetos desenvolvidos 
por terceiros , ou objetos criados por você mesmo , em qualquer apl icação. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 13 
PROGRAMAÇÃO ESTRUTURADA 
Na programação estruturada a arquitetura e do t ipo Top to Down. Isto é, de 
cima para baixo. Efetua a execução do Código do início até o f im. 
Na programação modular o programa é fei to por módulos (rot inas), sendo 
que o conjunto desses formam o programa num todo. 
Este t ipo de programação é que vai formar o Código a ser escri to para cada 
Evento veri f icado. 
Os conhecimentos de Programação Estruturada e Modular, que será o objeto 
deste curso servem para elaborarmos os algori tmos e escrevermos os códigos 
nos procedimentos e funções a serem implementados, e executados quando for 
disparado um evento na Programação Orientada ao Objeto/Evento. 
ETAPAS PARA A SOLUÇÃO DE PROBLEMAS. 
1 Planejamento Geral (O Que deve ser fei to). 
2 Planejamento Detalhado (Como deve ser fei to?) 
3 Revisão (Teste de mesa). Veri f icar se Como decidimos fazer, tem 
como resultado o Que deve ser fei to. 
4 Codif icação. 
5 Compilação ou Interpretação. 
6 Teste do Programa. 
7 Documentação. 
Ao elaborar um programa, devemos em primeiro lugar deixar bem claro, o 
Que precisa ser fei to e, logo após, definirmos as maneiras possíveis de se chegar 
ao resultado desejado (Como?). 
Não existe uma única solução para um problema, dentre as soluções 
encontradas devemos escolher a que mais sat isfaça ao conceito E. R. E. S . , ou 
seja: 
E – Eficácia, o programa deve fazer o que deve ser fei to. Não confundir 
com ef iciência que signif ica fazer bem fei to. Um programa pode ser 
bem fei to, mas não oferecer a solução para o problema proposto. 
R – Rapidez, dentre as várias soluções encontradas para o mesmo 
problema, devemos escolher a que seja mais rápida em termos de 
execução. 
E – Economia. Também devemos escolher a solução mais econômica 
em termos de ut i l ização de memória principal e memória de 
armazenamento. 
S – Segurança. O programa deve prever e tratar possíveis erros do 
usuário. Exemplo: se pedirmos para digi tar o Sexo (M/F), o 
programa não deve deixar que o usuário digi te qualquer outra letra 
que não sejam o M ou o F . 
Para elaborar a solução de um problema usamos os Algoritmos . 
 
LÓGICA DE PROGRAMAÇÃO 14 
ALGORITMOS 
O QUE É UM ALGORITMO? 
Um Algoritmo é uma seqüência f inita de instruções bem claras, bem 
definidas e bem detalhadas que, quando colocadas em uma ordem lógica , nos 
levam a solução de um problema. 
Os Algoritmos independem da l inguagem de programação a ser ut i l izada. O 
objetivo da construção de Algoritmos é que eles possam ser adaptados a 
qualquer l inguagem de programação. 
Não existe apenas um Algoritmo para a solução de um problema. 
Um Algoritmo pode ser numérico ou não. 
Um Algoritmo pode ter tantas entradas e saídas de dados, quantas forem 
necessárias, pode até não ter entradas, mas obrigatoriamente deverá ter pelo 
menos uma saída de dados que é o resultado do processamento. 
FORMAS DE REPRESENTAÇÃO DE UM ALGORITMO 
Temos 3 (três) formas de representar um algori tmo: 
• PSEUDOCÓDIGO (OU PORTUGUÊS ESTRUTURADO, OU PORTUGOL). 
• FLUXOGRAMA 
• DIAGRAMA DE CHAPIN 
PSEUDOCÓDIGO : As estruturas lógicas são escri tas numa l inguagem próxima 
ao português, na seqüência em que são executadas. 
FLUXOGRAMA: Nesta forma de representação as estruturas lógicas são 
expressas através de f iguras geométricas, interl igadas por setas que indicam o 
caminho a ser seguido. 
 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 15 
DIAGRAMA DE CHAPIN : As estruturas lógicas são representadas por f iguras 
retangulares, colocadas uma após a outra, de cima para baixo. 
 
VANTAGENSE DESVANTAGENS 
PSEUDOCÓDIGO: 
• Fácil de compreender. 
• Fáci l de ler e converter para programação. 
• Melhor para representar programas maiores. 
• É estruturado. 
FLUXOGRAMA: 
• Fácil de compreender. 
• Bom para construir e visual izar pequenos programas. 
• Difíci l de desenhar quando o programa f ica muito grande. 
• Não é estruturado. 
DIAGRAMA DE CHAPIN: 
• Fáci l de compreender, ler e converter para a programação. 
• É estruturado. 
• Bom para visual izar pequenos programas. 
• Difíci l de desenhar quando o programa f ica muito grande. 
Observação: Neste curso usaremos algoritmos com a forma de representação Pseudocódigo. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 16 
ALGORITMOS NATURAIS 
Algori tmos naturais são usados para l inguagens mais ant igas que não são 
estruturadas e nem modulares, como Fortran, Basic, Cobol (antes de ter o 
comando Perform), etc.. . 
Esse t ipo de algori tmo uti l iza comandos de retorno ou avanço (instrução GO 
TO) , do f luxo para determinada l inha do algori tmo. 
Com o surgimento das l inguagens de programação estruturadas e modulares 
esse t ipo de algori tmo se tornou obsoleto. 
As l inguagens estruturadas não possuem mais os comandos de retorno ou 
avanço (instrução GO TO) , para uma determinada l inha do algori tmo, a própria 
estrutura é que define o retorno ou avanço do f luxo. 
EXEMPLO DE ALGOR ITMO NATURAL 
Algori tmo para ret irar a devolução do Imposto de Renda. 
INICIO 
Passo 1 – Sair de casa. 
Passo 2 – Ir até o banco. 
Passo 3 – dir igir-se ao balcão. 
Passo 4 – Já chegou a devolução do Imposto de Renda? 
Passo 5 – Sim: vá para o passo 12. 
Passo 6 – Não: Voltar para casa. 
Passo 8 – Esperar um dia. 
Passo 9 – É sábado, domingo ou feriado? 
Passo 10 – Sim: vá para o passo 8. 
Passo 11 – Não: vá para o passo 1. 
Passo 12 – Retirar o dinheiro. 
Passo 13 – Voltar para casa. 
FIM 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 17 
ALGORITMO NATURAL COMPARADO COM ALGORITMO ESTRUTURADO 
Desafio : ler dez valores numéricos, mostrar os valores l idos e no f inal mostrar a 
soma dos números digi tados. 
ALGOR ITMO NATURAL ALGOR ITMO ESTRUTURADO 
INICIO VARIAVEIS 
 Passo 1 – Ler N NUMERICO N, S, C 
 Passo 2 – Escrever N INICIO 
 Passo 3 – S = S + N FACA ENQUANTO C<10 
 Passo 4 – C = C + 1 LER N 
 Passo 5 – C < 10? ESCREVER N 
 Passo 6 – Sim: vá para o passo 1 S = S + N 
 Passo 7 – Não: vá para o passo 8 C = C + 1 
 Passo 8 – Escrever “Soma =“,S FIM_ENQUANTO 
FIM ESCREVER “Soma =“,S 
 FIM 
Na construção de algori tmos, ut i l izamos diversos elementos. Entre eles 
podemos ci tar valores informados ao programa (pelo teclado ou l idos de um 
disco), comandos para armazenar valores, expressões, estruturas, e etc. 
Veremos a seguir quais são esses elementos, quando usar, para que usar e 
como eles funcionam dentro de um algori tmo. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 18 
ELEMENTOS USADOS NOS ALGORITMOS 
1 CONSTANTES: 
1.1 Numérico; 
1.2 Data; 
1.3 Lógica; 
1.4 Caracter (texto, literal, string) 
2 VARIÁVEIS: 
2.1 Numérico; 
2.2 Data; 
2.3 Lógica; 
2.4 Caracter (texto, literal, string) 
3 EXPRESSÕES: 
3.1 Operandos; 
3.2 Operadores; 
4 COMANDO DE ATRIBUIÇÃO: 
5 ESTRUTURAS: 
5.1 Seqüencial; 
5.2 Seleção; 
5.2.1 Simples; 
5.2.2 Composta; 
5.2.3 Múltipla; 
5.3 Repetição; 
5.3.1 Contador fixo; 
5.3.2 Flag; 
5.3.2.1 De resposta; 
5.3.2.2 Predeterminado; 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 19 
CONSTANTES 
CONSTANTES: são valores ut i l izados no processamento, mas que não 
sofrerão alterações durante o mesmo. Exemplos: nomes, datas de nascimento, 
números de funcionários, nomes de cidades, etc. 
As constantes podem ser dos seguintes tipos: 
NUMÉRICO: Quando começam por um número, um sinal ou um parêntese, 
todos os demais caracteres são apenas números, com apenas uma exceção, que 
é o separador decimal (dependendo da l inguagem, pode ser o ponto ou a vírgula). 
Exemplos: 123, 34,75, (567), -512, etc. 
DATA: Quando t iver um formato conhecido de data. Os mais comuns são: 
dd/mm/aa, dd/mmm/aa, dd/mm/aaaa, dd/mmm/aaaa, dd/mm, dd/mmm, mm/aa, 
mmm/aa, mm/aaaa, mmm/aaaa. 
LÓGICA: (Booleanas). São os valores que correspondem às quatro letras ou 
palavras lógicas correspondentes: T (True), F (False), Y (Yes), N (No). 
CARACTER: (Texto, Li teral ou String). São reconhecidas pela exclusão, ou 
seja, tudo que não for reconhecido como numérico, data ou lógico, é do t ipo 
caracter. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 20 
VARIÁVEIS 
VARIÁVEIS: Não são valores. Variáveis são endereços de memória (Ram) que 
armazenam temporariamente valores. Esses endereços recebem um rótulo, que é 
o nome da variável, e um conteúdo. Cada vez que mencionamos o nome da 
variável, é manipulado o seu conteúdo. 
Observação: Podemos imaginar uma variável como sendo uma gaveta em um 
armário (endereço de memória Ram), onde guardamos alguma 
coisa (conteúdo), prego, por exemplo. Para ident i f icar esta gaveta 
colocamos uma etiqueta (rótulo), com o nome de prego (nome da 
variável). Quando queremos pregos temos que abrir a gaveta que 
tem o rótulo prego e pegar o seu conteúdo. 
Os nomes das variáveis devem sempre começar por uma letra, não devem 
ter espaços em branco e nem caracteres especiais, no máximo o símbolo 
sublinhado. Exemplos: Nome_cl i , Num_func, Datanasc, etc. 
As variáveis são declaradas no início do algori tmo. Dependendo do valor a 
ser armazenado, as variáveis poderão ser dos t ipos: Numérico , Data , Lógico ou 
Caracter ( texto, l i teral ou str ing). 
Os valores armazenados nas variáveis permanecem até que: 
• O computador seja desligado (normal ou por falta de energia), visto que são armazenados 
na memória Ram; 
• Por término do programa ou rot ina onde foram criadas; 
• Seja atribuído um novo valor para a mesma variável. 
Observação: Só podemos armazenar um valor de cada vez em uma variável. Ao 
atr ibuirmos um novo valor que deve ser do mesmo t ipo, o valor 
anterior será sumariamente el iminado. 
Exemplo : Se escrevermos A=5 , o valor cinco será o conteúdo da variável A . 
Se mais adiante escrevermos A=20 , o valor vinte passa a ser o novo conteúdo da 
variável A , e o valor anterior, cinco, será el iminado. 
Escopo: (abrangência), as variáveis, dependendo da l inguagem, podem ser 
Públicas (Public) ou Globais (Global) e Privadas (Private) ou Locais (Locals). 
Observação: As variáveis Públicas ou Globais são vistas por todos os 
módulos do programa, e as Locais ou Privadas somente nas 
rotinas onde são criadas. 
 
LÓGICA DE PROGRAMAÇÃO 21 
EXPRESSÕES 
Expressão: é qualquer instrução de manipulação de dados. 
As expressões podem ser: 
ARITMÉTICAS: Nesse t ipo de expressão só podemos ut i l izar operadores, 
constantes e variáveis do t ipo numérico, e o resultado será sempre um valor 
numérico. Exemplo 3+2, A*B. 
RELACIONAIS: Nesse t ipo de expressão real izamos uma comparação entre 
dois ou mais operandos do mesmo t ipo, ut i l izando operadores relacionais e o 
resultado será sempre um valor lógico (verdadeiro ou falso). Exemplo: 10>5, A<B. 
LÓGICAS: É a união de duas ou mais expressões relacionais ut i l izando 
operadores lógicos, e o resultado também será sempre um valor lógico 
(verdadeiro ou falso). Exemplo: A>B E 10>5, Cidade = “Canoas” OU Cidade = 
“Porto Alegre”. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 22 
OPERANDOS E OPERADORES 
OPERANDOS 
São os elementos que serão manipulados. 
Como operandos podemos utilizar: 
CONSTANTES: Exemplo: 15+25, 345/5, 12,35*20; 
VARIÁVEIS: Exemplo: A-B, X/Y, HT*SH; 
FUNÇÕES DA LINGUAGEM: Exemplo: PI()*Cos(x)+Raiz(256,2) 
Observações: Linguagens apl icat ivas mais específ icas como as Plani lhas 
Eletrônicas e os Gerenciadores de Bancos de Dados podem 
ut i l izar como operandos as referências a células (Exemplo: 
A3*B5) ou os campos do Banco de dados (Exemplo: 
Horas_Trab*Sal_Hora). 
OPERADORES 
São símbolos ou palavras que indicam o t ipo de manipulação e também 
determinam de que t ipo é a expressão. 
Os operadores se dividem em três grupos: 
ARITMÉTICOS: 
• Adição: + 
• Subtração: - 
• Multipl icação: * 
• Divisão: / 
• Exponenciação: ^ 
Observação: Os operadores ari tméticos mantêm a mesma prioridade 
matemática, ou seja: em primeiro lugar são executadas as raízes 
e exponenciações, logo a seguir, as mult ipl icações e divisões, e, 
por úl t imo, as somas e subtrações. Em caso de empate de 
prioridades, o cálculo é efetuado sempre da esquerda para a 
direi ta. Para alterar a prior idade dos operadores, usamos 
parênteses. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 23 
RELACIONAIS 
• Igualdade: = 
• Maior do que: > 
• Menor do que: < 
• Maior ou igual a: >= 
• Menor ou igual a: <= 
• Diferente: <> 
Observações: Entre os operadores relacionais não existem prioridades, sempre são 
executados da esquerda para a direita, à medida que forem aparecendo. 
LÓGICOS (Booleanos) 
• NAO 
• E 
• OU 
Observação: Nos operadores lógicos o E tem prioridade sobre o OU . 
Os operadores lógicos igualmente chamados de Booleanos ut i l izam a álgebra 
de Boole, ou álgebra Booleana, também denominada Tabela Verdade. 
O operador NAO é um inversor de resultados, isto é, se o resultado da 
expressão for verdadeiro transforma em falso e vice-versa. 
Exemplo: 50>30, resultado verdadeiro. NAO (50>30), resultado falso. 
Usando o operador E , o resultado f inal só será verdadeiro se o resultado de 
todas as condições forem verdadeiras, qualquer outra hipótese, o resultado será 
falso. 
Usando o operador OU , o resultado f inal só será falso se o resultado de 
todas as condições forem falsas; qualquer outra hipótese, o resultado será 
verdadeiro. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 24 
Veja o exemplo da tabela verdade abaixo: 
 
Comando de atr ibuição 
O comando de atr ibuição serve para colocar um valor (conteúdo) dentro de 
uma variável. 
O comando de atr ibuição, dependendo da l inguagem, pode ser: 
= ← := Exemplo: A = 15 ou A ←15 ou A := 15 
Em qualquer dos casos estamos colocando o valor 15 como conteúdo da 
variável A . 
Neste curso uti l izaremos como comando de atr ibuição o sinal de = . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 25 
ESTRUTURAS DE CONTROLE 
As estruturas de controle servem para direcionar o f luxo do processamento. 
As estruturas de controle podem ser: 
ESTRUTURA SEQÜENCIAL 
A estrutura seqüencial , como diz o próprio nome, é uma seqüência de 
instruções que se sucedem uma após a outra sem desvios ou interrupções. Este 
t ipo de estrutura não possui palavras chaves, é composta somente por l inhas de 
comandos sucessivas e está sempre l imitada pelo início e f im do algori tmo ou 
pelo inicio e f im de uma outra estrutura. 
Exemplo: Ler o nome e duas notas de um aluno, calcular a média e mostrar 
o nome do aluno, as duas notas e a média calculada. 
VARIAVEIS 
NUMERICO N1, N2, M 
CARACTER NOME 
INICIO 
N1 = 0 
N2 = 0 
M = 0 
LER NOME 
LER N1 
LER N2 
M = (N1+N2)/2 
ESCREVER NOME, N1, N2,M 
FIM 
ESTRUTURA DE SELEÇÃO 
Devemos ut i l izar uma estrutura de seleção. Sempre que para executar 
alguma ação dependa do resultado de uma condição, isto é, no que temos que 
fazer existe uma condicionante. 
Observação: Conforme o que devemos fazer, de acordo com o resultado da 
condição, a estrutura de seleção pode ser de três t ipos di ferentes: 
Seleção Simples, Seleção Composta ou Seleção Múlt ipla. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 26 
ESTRUTURA DE SELEÇÃO SIMPLES 
Na estrutura de Seleção Simples , somente teremos uma ação se o resultado 
da condição for Verdadeiro , caso o resultado seja falso não há ação a ser 
executada. 
As palavras chaves de uma estrutura de Seleção Simples são: 
 
Exemplo: Ler o nome e duas notas de um aluno, calcular a média e mostrar 
o nome do aluno, as duas notas, a média calculada e as palavras Aluno 
Reprovado, caso a média seja menor do que sete. 
VARIAVEIS 
NUMERICO N1, N2, M 
CARACTER NOME 
INICIO 
N1 = 0 
N2 = 0 
M = 0 
LER NOME 
LER N1 
LER N2 
M = (N1+N2)/2 
ESCREVER NOME, N1, N2, M 
SE M < 7 ENTAO 
ESCREVER “ALUNO REPROVADO” 
FIM_SE 
FIM 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 27 
ESTRUTURA DE SELEÇÃO COMPOSTA 
Na estrutura de Seleção Composta , será executado um comando ou um 
grupo de comandos, caso o resultado da condição seja Verdadeiro e outro 
comando ou outro grupo de comandos diferentes, se o resultado da condição for 
Falso . 
As palavras-chave de uma estrutura de Seleção Composta são: 
 
Observação: Se o resultado da condição for Verdadeiro será executado tudo 
que estiver entre as palavras ENTAO e SENAO , sendo ignorado o 
que tudo que est iver após a palavra SENAO , porem se o resultado 
da condição for Falso , será desprezado tudo que estiver entre as 
palavras ENTAO e SENAO , sendo executado apenas o que estiver 
entre as palavras SENAO e FIM_SE . 
 Exemplo: Ler o nome e duas notas de um aluno, calcular a média e mostrar 
o nome do aluno, as duas notas, a média calculada e as palavras Aluno 
Reprovado, caso a média seja menor do que sete e Aluno Aprovado em caso 
contrário. 
VARIAVEIS 
NUMERICO N1, N2, M 
CARACTER NOME 
INICIO 
N1 = 0 
N2 = 0 
M = 0 
LER NOME 
LER N1 
LER N2 
M = (N1+N2)/2 
ESCREVER NOME, N1, N2,M 
SE M < 7 ENTAO 
ESCREVER “ALUNO REPROVADO” 
SENAO 
ESCREVER “ALUNO APROVADO” 
FIM_SE 
FIM 
 
LÓGICA DE PROGRAMAÇÃO 28 
ESTRUTURA DE SELEÇÃO MÚLTIPLA 
A Estrutura de Seleção Múltipla é ut i l izada quando devemos fazer vários 
testes em uma mesma variável ou testar o valor de uma variável dependendo do 
teste do valor de outra variável. 
Observação: A estrutura de Seleção Múltipla pode ser construída com 
Estruturas de Seleção Composta encadeadas (aninhadas), ou 
pela estrutura Faca Caso . 
Ut i l izando Estruturas de Seleção Composta encadeada, para fazer a 
Seleção Múltipla podemos fazer o encadeamento das seguintes formas: 
Encadeamento, somente se o resultado da primeira condição for verdadeiro. 
 
Encadeamento somente se o resultado da primeira condição for falso. 
 
 
LÓGICA DE PROGRAMAÇÃO 29 
Um encadeamento se o resultado da pr imeira condição seja verdadeiro, e 
outro encadeamento, caso o resultado da primeira condição seja falso. 
 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 30 
SELEÇÃO MÚLT IPLA COM ESTRUTURA DE FACA CASO: 
As palavras-chave da estrutura Faca Caso são: 
 
Observação: Para a solução do próximo exemplo, usaremos uma solução com 
estrutura de Seleção Composta encadeada e outra solução 
ut i l izando a estrutura Faca Caso . 
Exemplo: Ler o estado civi l de uma pessoa como valor numérico, sendo que 
1 corresponde a Solteiro, 2 a Casado e 3 para Outros. Testar estes valores 
levando-se em conta que o usuário pode digitar errado e escrever o estado civi l 
em caracteres. 
SOLUÇÃO UT IL I ZANDO ESTRUTURA DE SELEÇÃO COMPOSTA ENCADEADA: 
VARIAVEIS 
NUMERICO EC 
INICIO 
EC = 0 
ESCREVER “Digite o estado civil (1 – solteiro, 2 – casado, 3 – outros)” 
LER EC 
SE EC = 1 ENTAO 
ESCREVER “Solteiro” 
SENAO 
SE EC = 2 ENTAO 
ESCREVER “Casado” 
SENAO 
SE EC = 3 ENTAO 
ESCREVER “Outros” 
SENAO 
ESCREVER “Valor inválido” 
FIM_SE 
FIM_SE 
FIM_SE 
 
LÓGICA DE PROGRAMAÇÃO 31 
SOLUÇÃO UT IL I ZANDO ESTRUTURA DE FACA CASO: 
VARIAVEIS 
NUMERICO EC 
INICIO 
EC = 0 
ESCREVER “Digite o estado civil (1 – solteiro, 2 – casado, 3 – outros)” 
LER EC 
FACA CASO 
CASO EC = 1: 
ESCREVER “Solteiro” 
CASO EC = 2: 
ESCREVER “Casado” 
CASO EC = 3: 
ESCREVER “Outros” 
OUTRO_CASO: 
ESCREVER “Valor inválido” 
FIM_CASO 
ESTRUTURA DE REPETIÇÃO 
Uma Estrutura de Repetição deve ser usada sempre que uma rot ina tenha 
que ser executada mais do que uma vez durante o mesmo processamento. 
As repetições podem ser fei tas por Contador Fixo , ou seja, a rot ina vai ser 
repetida sempre um número f ixo de vezes. Por Flag de Resposta , onde a cada 
volta do laço perguntamos ao usuário se ele quer cont inuar ou não, se a resposta 
for sim à rotina, segue repetindo; e se for não, a rot ina termina. Ainda podemos 
fazer a repetição por Flag Predeterminado , isto é, determinamos que quando o 
usuário pressionar um determinado conjunto de teclas ou um determinado valor 
para conteúdo de uma variável, a rot ina termina. 
Para construir a estruturade repetição, podemos uti l izar dois t ipos de 
estruturas: a estrutura FACA ENQUANTO ou a estrutura PARA PROXIMO , sendo 
que a estrutura FACA ENQUANTO serve tanto para repetições por Contador Fixo 
como para, repetições por Flag . A estrutura de PARA PROXIMO só serve para 
repetições por Contador Fixo . 
ESTRUTURA FACA ENQUANTO 
As palavras-chave da estrutura FACA ENQUANTO são: 
 
 
LÓGICA DE PROGRAMAÇÃO 32 
Nesse t ipo de construção a rot ina só entra na estrutura caso a condição seja 
verdadeira, senão a estrutura é ignorada. Entrando na estrutura, o programa 
executa tudo que estiver contido entre as palavras Faca Enquanto e 
Fim_Enquanto . Quando é encontrada a palavra Fim_Enquanto , a rot ina retorna 
ao início da estrutura e testa novamente a condição, enquanto a condição for 
verdadeira cont inua repetindo. 
 
Para que possamos entender melhor o funcionamento desta estrutura, vamos 
observar os exemplos a seguir: 
 
 
 
 
A seguir outro t ipo de construção para repetições com a estrutura PARA 
PROXIMO . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 33 
ESTRUTURA PARA PROXIMO 
As palavras chave da estrutura PARA PROXIMO são: 
 
Neste t ipo de construção a rotina sempre entra na estrutura a pr imeira vez, 
visto que no inicio da estrutura temos uma atr ibuição: VAR = VI (valor inicial) , 
repete tudo que estiver dentro da estrutura até encontrar a palavra PROXIMO . 
Quando encontra a palavra PROXIMO , pega o valor do passo, soma na variável 
de controle e faz um teste com o valor f inal (VF) , enquanto o valor da variável de 
controle não for maior do que o valor f inal (VF), continua repetindo. 
Observação: O PASSO é opcional, quando não colocado assume por padrão o valor 1 (um). 
Este t ipo de Estrutura é mais ut i l izado para trabalhar com Vetores e 
Matrizes , como veremos na últ ima parte da aposti la. 
Vamos observar o exemplo a seguir para melhor entender o funcionamento 
da estrutura PARA PROXIMO . 
 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 34 
EXEMPLO DE REPETIÇÃO POR CONTADOR FIXO 
Desafio: Ler o nome do aluno e duas notas para uma turma de 15 alunos, 
calcular a média e mostrar o nome as duas notas e a média de cada aluno. 
SOLUÇÃO UT IL I ZANDO A ESTRUTURA FACA ENQUANTO 
VARIAVEIS 
NUMERICO N1, N2, M, C 
CARACTER NOME 
INICIO 
N1 = 0 
N2 = 0 
M = 0 
C = 0 
ESCREVER “DIGITE O NOME, N1, N2” 
FACA ENQUANTO C < 15 
LER NOME 
LER N1 
LER N2 
M = (N1+N2)/2 
ESCREVER NOME, N1, N2, M. 
C = C + 1 
FIM_ENQUANTO 
FIM 
SOLUÇÃO UT I L I ZANDO A ESTRUTURA PARA PROX IMO 
VARIAVEIS 
NUMERICO N1, N2, M, C 
CARACTER NOME 
INICIO 
N1 = 0 
N2 = 0 
M = 0 
C = 0 
ESCREVER “DIGITE O NOME, N1, N2” 
PARA C = 1 ATE 15 
LER NOME 
LER N1 
LER N2 
M = (N1+N2)/2 
ESCREVER NOME, N1, N2,M 
PROXIMO 
FIM 
 
LÓGICA DE PROGRAMAÇÃO 35 
EXEMPLO DE REPETIÇÃO POR FLAG DE RESPOSTA 
Desafio: Ler o nome e duas notas para os diversos alunos, calcular a média 
e mostrar o nome, as duas notas e a média de cada aluno. Após processar cada 
aluno, perguntar ao usuário se deseja continuar. Enquanto o usuário responder 
sim (S) , o programa continua; se a resposta for não (N), o programa termina. 
Observação: Para repetições usando como controle o Flag, só poderemos utilizar a estrutura 
FACA ENQUANTO. 
Solução: 
VARIAVEIS 
NUMERICO N1, N2, M 
CARACTER NOME, CF 
INICIO 
N1 = 0 
N2 = 0 
M = 0 
CF = “S” 
ESCREVER “DIGITE O NOME, N1, N2” 
FACA ENQUANTO CF = “S” 
LER NOME 
LER N1 
LER N2 
M = (N1+N2)/2 
ESCREVER NOME, N1, N2,M 
ESCREVER “DESEJA CONTINUAR (S/N)?” 
LER CF 
FIM_ENQUANTO 
FIM 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 36 
EXEMPLO DE REPETIÇÃO POR FLAG PREDETERMINADO 
Problema: Ler o nome e duas notas para uma turma de alunos, calcular a 
média e mostrar o nome, as duas notas e a média de cada aluno. O programa irá 
terminar quando o usuário digi tar a palavra “FIM” , como conteúdo da variável 
Nome, em vez de um nome vál ido. 
Observação: Predeterminamos que quando o usuário digi tar a palavra FIM no 
lugar do nome de um aluno, o programa irá terminar. 
Solução: 
VARIAVEIS 
NUMERICO N1, N2, M 
CARACTER NOME 
INICIO 
N1 = 0 
N2 = 0 
M = 0 
ESCREVER “DIGITE O NOME (FIM PARA SAIR), N1, N2” 
NOME = “ “ 
FACA ENQUANTO NOME <> “FIM” 
LER NOME 
SE NOME <> “FIM” 
LER N1 
LER N2 
M = (N1+N2)/2 
ESCREVER NOME, N1, N2,M 
FIM_SE 
FIM_ENQUANTO 
FIM 
Até aqui anal isamos quais são as palavras-chave e como se representam os 
algori tmos em Pseudocódigo. Veremos a seguir como fazer a representação das 
estruturas de controle através de Fluxograma e Diagrama de Chapin .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 37 
ESTRUTURA SEQÜENC IAL 
 
 
 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 38 
ESTRUTURA DE SELEÇÃO S IMPLES 
 
 
 
 
 
LÓGICA DE PROGRAMAÇÃO 39 
ESTRUTURA DE SELEÇÃO COMPOSTA 
 
 
 
 
LÓGICA DE PROGRAMAÇÃO 40 
ESTRUTURA DE SELEÇÃO MÚLT IPLA 
 
 
 
LÓGICA DE PROGRAMAÇÃO 41 
ESTRUTURA DE REPET IÇÃO 
 
 
 
 
LÓGICA DE PROGRAMAÇÃO 42 
PROCEDIMENTOS E FUNÇÕES 
No f inal dos anos 60, várias empresas se depararam com o aumento 
crescente dos custos para a elaboração de programas de computador. Isso gerou 
a chamada Crise do Software . Essa crise foi também decorrente do 
descompasso entre a tecnologia de desenvolvimento dos Softwares. Sem 
metodologias avançadas para a elaboração de programas, a probabi l idade de 
aparecimentos de bugs ( falhas, erros) nos Softwares era quase inevitável. Isso 
tornava a manutenção dos sistemas de informações cada vez mais onerosa. 
Para tentar resolver esses problemas, uma série de estudos foi iniciada e 
surgiram vários t ipos de programação. Um deles, o mais ut i l izado, é a 
Programação Estruturada. A característ ica dessa programação é a uti l ização de 
técnicas que decompõem a solução de um problema em “blocos” que interagem 
com um bloco principal. Isso é possível por meio da técnica de refinamentos 
sucessivos e da modularização dos algori tmos. A Programação Estruturada tem 
como objet ivo desenvolver Programas/Algori tmos confiáveis, legíveis, de fáci l 
entendimento, f lexíveis e de fáci l manutenção; para isso, ela ut i l iza as técnicas a 
seguir. 
1) Desenvolvimento de algori tmos por etapas/refinamentos sucessivos. 
2) Número l imitado de estruturas de controle de f luxo. 
3) Mudanças de etapas/refinamentos de al ta complexidade ou tamanho em 
módulos. 
MODULARIZAÇÃO 
Técnica para desenvolver algori tmos, por meio de ref inamentos sucessivos, 
em que podem ser ut i l izados módulos. 
MÓDULO 
Conjunto de comandos que const i tui uma parte de um algori tmo principal e 
que tem uma tarefa bem definida e é independente em relação ao resto do 
Algori tmo. Fazendo uma analogia, imagine o coração como um módulo do corpo 
humano. Esse módulo desempenha um conjunto de operações específ icas, tem 
uma tarefa bem definida e é independente em relação à boa parte dos outros 
órgãos (tanto assim, que pode ser transplantado para outro corpo). 
Veja a seguir as característ icas da técnica da modularização. 
1) A independência do módulo permite uma manutenção mais simples e evita 
efei tos colaterais em outros pontos do algori tmo. 
2) A elaboração do módulo pode ser fei ta independentemente e em época 
diferente do restante do algori tmo. 
3) Testes correções dos módulos podem ser fei tas separadamente. 
4) Um módulo pode ser ut i l izado em outros algori tmos que requerem o mesmo 
processamento por ele executado. 
 
LÓGICA DE PROGRAMAÇÃO 43 
PROCED IMENTO E FUNÇÃO 
Para inserir módulos em um algori tmo existem os comandos Procedimento e 
Função . As ações de procedimento e função estão hierarquicamente 
subordinadas a um algori tmo principal, geralmente, chamado de Módulo 
Principal . Dentro de um procedimento ou uma função, pode haver o chamamento 
de outros procedimentos ou funções. Veja o diagrama a seguir. 
 
Cada procedimento ou função pode ut i l izar os objetos (constantes e 
varáveis) do módulo principal, definir os seus próprios, ou ainda uti l izar os dois 
t ipos. Veja o quadro abaixo. 
 
Pelo exemplo acima, tanto as Funções 1 e 2 como o Procedimento 4 podem 
uti l izar a variável X , porque ela é uma variável global e está no módulo principal. 
Porém, a variável Z não pode ser ut i l izada no algori tmo principal, nem na função 
1 e nem no Procedimento 4, por ser uma variável local da Função 2. 
 
LÓGICA DE PROGRAMAÇÃO 44 
VAR IÁVEL GLOBAL 
Variável que pode ser ut i l izada no módulo em que foi declarada ou em um 
módulo interno ao módulo do algori tmo no qual foi declarada. 
VAR IÁVEL LOCAL 
Variável que só pode ser ut i l izada no módulo do algori tmo no qual foi 
declarada e que não possui qualquer signif icado fora desse módulo. 
Observação: Todo módulo (Procedimento ou Função) é criado por meio de declarações e 
executado por meio de um comando de chamada. 
DIFERENÇA ENTRE PROCEDIMENTO E FUNÇÃO 
A diferença entre Procedimento e Função é que o Procedimento executa uma 
tarefa e não retorna valores para o módulo que o chamou, já a Função também 
executa uma tarefa, mas obrigatoriamente deverá retornar um resultado para o 
módulo que a chamou. A chamada de um procedimento é fei ta como uma l inha de 
comando normal, repassando ou não parâmetros (argumentos); já a chamada de 
uma função sempre deve ser por atr ibuição a uma variável ou por um teste 
condicional, também repassando ou não parâmetros (argumentos). 
PROCEDIMENTOS COM PARÂMETROS 
Parâmetros (argumentos) 
Na técnica de modularização podem ser ut i l izados pontos de comunicação 
entre os módulos. Esses pontos, chamados Parâmetros , c lassif icam-se em 
formais e reais. 
PARÂMETROS FORMA IS 
São os parâmetros declarados com o módulo (Procedimento ou Função). São 
os que recebem os valores enviados pelo módulo que chamou o Procedimento ou 
a Função. 
PARÂMETROS REA IS 
São os parâmetros que substi tuem os parâmetros formais, no procedimento 
ou função. São os que enviam valores do módulo principal para o módulo 
(procedimento ou função) que foi chamado. 
PASSAGEM DE PARÂMETROS 
PASSAGEM DE PARÂMETROS POR VALOR 
Quando passamos parâmetros por valor, na verdade estamos enviando uma 
cópia do valor original da variável. Portanto, se no Procedimento ou Função este 
valor for al terado, não modificará o conteúdo da variável cujo valor foi repassado. 
 
LÓGICA DE PROGRAMAÇÃO 45 
PASSAGEM DE PARÂMETROS POR REFERÊNC IA 
Quando repassamos parâmetros por referência, na real idade estamos 
enviando não uma cópia do valor, mas, sim, o endereço de memória onde está 
armazenado o valor. Logo, qualquer alteração deste valor no Procedimento ou 
Função impl ica al terar o conteúdo da variável que repassou o parâmetro. 
Observação: Existe diferença no padrão (Default) de repasse de parâmetros entre as 
linguagens. 
Exemplo : No Visual Basic o Padrão (Default) de repasse é por referência, 
já no Delphi o padrão (Default) é por valor. 
EXEMPLOS DE S INTAXE 
No Visual Basic: 
Na declaração do t ipo: Procedimento (x) , o repasse de x é por referência 
(Padrão). Se quisermos repassar o parâmetro por valor, a declaração tem que 
ser: 
Procedimento (By val x). 
No Delphi 
Na declaração do t ipo: Procedimento (x) , o repasse de x é por valor 
(Padrão). Se quisermos repassar o parâmetro por referência, a declaração tem 
que ser: 
Procedimento (Var x). 
Observação: Em algumas linguagens é possível elaborar um arquivo contendo diversos 
Procedimentos e Funções e compilar este arquivo como uma DLL, ficando, 
portanto todos os procedimentos e funções contidos nele disponíveis para todos 
os programas do sistema. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 46 
EXEMPLOS DE PROCEDIMENTO E FUNÇÃO 
PROCED IMENTO 
Ler o estado civi l de uma pessoa como valor numérico, sendo 1 para 
solteiro, 2 para casado e 3 para outros. Escrever o estado civi l em caracteres. 
Módulo Principal Procedimento Traduz(e) 
VARIAVEIS INICIO 
 Numerico ec, e SE e = 1 entao 
INICIO Escrever “Solteiro” 
 Ec = 0 SENAO 
 Ler ec SE e = 2 entao 
 Traduz (ec) Escrever “casado” 
FIM SENÃO 
 SE e = 3 entao 
 Escrever “outros” 
 SENAO 
 Escrever “Inválido” 
 FIM_SE 
 FIM_SE 
 FIM_SE 
 FIM 
FUNÇÃO 
Ler a base e altura de um tr iângulo, calcular a área. Escrever a base, a 
al tura e a área calculada. 
Módulo Principal Funcao Calc_Área(b, h) 
VARIAVEIS INICIO 
 Numerico base, altura, área,a a = b * h 
 Inicio retornar a 
 Base = 0 FIM 
 Altura = 0 
 Area = 0 
 Ler Base 
 Ler Altura 
 Area = Calc_Área (Base, Altura) 
 Escrever Área 
FIM 
 
LÓGICA DE PROGRAMAÇÃO 47 
RECURSIVIDADE 
Os Procedimentos e as Funções, na maioria das l inguagens, possuem a 
propriedade da recursividade, isto é, a capacidade de chamar ela mesma. 
Podemos ut i l izar a recursividade para simular uma estrutura de repetição. 
EXEMPLO DE RECURS IV IDADE 
VARIAVEIS 
 Numerico Num, N 
INICIO 
 Num= 0 
 Mostra(Num) 
FIM 
PROCED IMENTO MOSTRA(N) 
INICIO 
 N = N + 2 
 Escrever N 
 SE N < 10 entao 
 Mostra(N) 
 FIM_SE 
FIM 
RESULTADO 
Temos como resultado desse processamento, os seguintes valores: 
2 – 4 – 6 – 8 – 10. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 48 
VETORES E MATRIZES 
O QUE SÃO VETORES E MATRIZES 
Vetores e Matr izes, que nas l inguagens de programação são chamados de 
Array , são variáveis indexadas, isto e, em uma mesma variável podemos 
armazenar diversos valores, e esses valores são ident i f icados pelo nome da 
variável e por um número ou mais números, dependendo de quantas dimensões 
tem a matr iz. Esse número ou esses números são os índices da matriz, pois 
indicam a posição do valor (elemento) dentro da Matr iz ou do Vetor. 
Vamos fazer uma analogia para entendermos melhor esse conceito. Como 
vimos anteriormente, uma variável normal é um endereço de memória onde 
podemos guardar um valor de cada vez. Como se fosse uma gaveta onde 
podemos guardar apenas um objeto; se quisermos colocar outro objeto, temos 
que reti rar o anterior. Agora vamos supor que nessa gaveta f izemos cinco 
divisões, então podemos guardar cinco objetos na mesma gaveta, isso é o que 
podemos comparar como sendo um Vetor . 
A Matriz pode-se comparar como sendo um armário com, por exemplo, três 
gavetas. Neste caso eu posso guardar três objetos, um em cada gaveta, porém, 
se em cada gaveta são fei tas três divisões, podemos nesse armário guardar não 
apenas três objetos, mas, sim, nove objetos. 
EXEMPLO DE VETOR 
Matriz numérico V[5] 
 
Para referenciar o valor 18 , temos que indicar V[3] , isto é, o valor 18 é o 
terceiro elemento do Vetor V, ou que o valor 18 encontra-se na terceira posição 
do vetor. 
EXEMPLO DE MATR IZ 
Matriz numérico M[3,3] 
 
Para referenciar o valor 76 , temos que indicar M[2,3] , isto é, o elemento da 
matr iz que armazena o valor 76 está na l inha 2, coluna 3 . 
A indicação do índice ou índices é fei ta sempre entre colchetes “[ ]” , ou em 
algumas outras l inguagens ente parênteses “( )”. 
Como o Vetor é uma matriz que possui dimensão única, temos apenas um 
índice, que indica a posição que o elemento ocupa dentro do Vetor. Por exemplo: 
V[3]. O número 3 entre os colchetes indica da Posição do Elemento ( local onde 
o valor está armazenado). 
 
LÓGICA DE PROGRAMAÇÃO 49 
Como a Matriz tem mais de uma dimensão, tem uma quantidade de índices 
igual à quantidade de suas dimensões. No exemplo anterior, a matriz tem duas 
dimensões, tendo, portanto, dois índices: o pr imeiro, indicando a l inha , e o 
segundo, indicando a coluna em que se encontra armazenadoo valor. 
Exemplo: M[2,3] , o número 2 indica a l inha , e o numero 3 indica a coluna, 
Posição do Elemento ( local do valor armazenado). 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 50 
ALGORITMOS PARA MANIPULAR VETORES E MATRIZES 
Para construir algori tmos que manipulam Vetores e Matr izes, ut i l izamos a 
estrutura Para - Proximo, que é a mais adequada para esse t ipo de construção. 
Algumas l inguagens admitem o comando de lei tura direta para armazenar um 
valor em um elemento do Vetor ou da Matr iz; outras só aceitam o armazenamento 
por atr ibuição. Para ser genérico nos exemplos, usaremos a atr ibuição que todas 
as l inguagens suportam. 
Exemplo de Vetor : Algori tmo para ler e escrever um Vetor de nome V com 
cinco posições (elementos). 
VARIAVEIS 
 NUMERICO AUX, I 
 MATRIZ NUMERICO V[5] 
INICIO 
 AUX = 0 
 PARA I = 1 ATE 5 
 LER AUX 
 V[I] = AUX 
 ESCREVER V[I] 
 PROXIMO 
FIM 
Exemplo de Matriz : Algori tmo para ler e escrever uma Matriz de nome M 
com nove posições (elementos), com três l inhas e três colunas. 
VARIAVEIS 
 NUMERICO AUX, L, C 
 MATRIZ NUMERICO M[3,3] 
INÍCIO 
 AUX = 0 
 PARA L = 1 ATE 3 
 PARA C = 1 ATE 3 
 LER AUX 
 M[L,C] = AUX 
 ESCREVER M[L,C] 
 PROXIMO 
 PROXIMO 
FIM 
Podemos dentro da estrutura Para – Proximo , trabalhando com Vetores e 
Matrizes , fazer os mesmos t ipos de processamentos que fazemos dentro da 
estrutura Faca – Enquanto , com a vantagem de que os valores permanecem 
armazenados na Memória, até que o processamento termine. 
 
LÓGICA DE PROGRAMAÇÃO 51 
CONSIDERAÇÕES FINAIS 
Acreditamos que ao terminar esse curso e após ter real izado os exercícios 
constantes nesta aposti la, o aluno, com certeza, deve ter apropriado os 
conhecimentos necessários sobre raciocínio lógico, estruturas e construção de 
algori tmos, para dar prosseguimento à sua aprendizagem de uma l inguagem de 
programação, seja ela Visual Basic, Delphi, Java, etc., e apl icar os 
conhecimentos adquir idos nesse curso para elaborar seus programas de maneira 
correta e ef ic iente. 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 52 
APÊNDICE 1 
EXEMPLO DE ALGORITMO PARA ORDENAR UM VETOR 
Desafio : Classif icar em ordem crescente um vetor A com dez elementos (dez 
posições) 
VARIAVEIS 
 NUMERICO N, I, J, AUX 
 MATRIZ NUMERICO A [10] 
INICIO 
 N = 0 
 AUX = O 
 PARA I = 1 ATE 10 
 LER N 
 A [ I ] = N (Bloco para carregar e imprimir o vetor) 
 ESCREVER A [I] 
 PROXIMO 
 PARA I = 1 ATE 9 
 PARA J = I+1 ATE 10 
 SE A [I ] > A [J] ENTAO 
 AUX = A [I ] 
 A [ I ] = A [J] (Bloco para ordenar o vetor) 
 A [J] = AUX 
 FIM_SE 
 PROXIMO 
 PROXIMO 
 PARA I = 1 ATE 10 
 ESCREVER A [I ] (Bloco para imprimir o vetor ordenado) 
 PROXIMO 
FIM 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
LÓGICA DE PROGRAMAÇÃO 53 
APÊNDICE 2 
COMANDOS DO INTERPRETADOR DA LINGUAGEM DOS ALGORITMOS (ILA) 
Os comandos do ILA ( Interpretador da Linguagem dos Algori tmos) são, em 
geral, os mesmos ut i l izados nas estruturas dos algori tmos representados em 
Pseudo-Código (Português Estruturado). 
• INICIO 
• FIM 
• LER 
• ESCREVER 
• SE 
• SENAO 
• FIM_SE 
• FACA ENQUANTO 
• FIM_ENQUANTO 
• PARA – PRÓXIMO, Etc.. . 
Abaixo temos uma l ista de Comandos e Funções do ILA que podemos (ou 
devemos) usar nos algori tmos para faci l i tar o desempenho dos algori tmos e 
também obter uma melhor visual ização dos resultados. 
• ALEATÓRIO() – Função. 
Resulta em um valor aleatório sempre maior que zero e menor do que 1. 
Maior número a ser gerado 0,999999, menor número 0,000001. 
• COMPRIMENTO(<var>,<texto>) – Função. 
Somente para dados do t ipo caracter ( texto). O resultado é um valor 
numérico que indica a quantidade de caracteres que compõem texto ou o 
conteúdo da variável. Exemplo: x = “casa” – COMPRIMENTO(X) = 4 
• COR(<frente>,<fundo>) – Comando 
Muda o atr ibuto de cor no vídeo, os argumentos (parâmetros) podem ser em 
texto ou código numérico. Ver tabela de cores no Help do ILA. Exemplo: 
COR(“verde”,”Amarelo”) é igual a COR(2,15), a fonte f ica em verde sobre o fundo 
amarelo. Para ter efei to, este comando deve ser usado antes de um comando 
escrever, l impar ou janela. 
• ESPERAR(<tempo>) – Comando 
Suspende a execução do algori tmo por um intervalo de tempo, dependendo 
da velocidade do processador. Exemplo: ESPERAR(200). 
• IMPRESSORA() – Função. 
Para ter efei to a função deve ser usada antes do comando escrever. Desvia 
as informações enviadas pelo comando escrever para a impressora. Para retornar 
a escrever no vídeo devemos usar a função Vídeo(). 
 
LÓGICA DE PROGRAMAÇÃO 54 
• INTEIRO(<n>,<var>) – Função. 
Extrai de um número ou uma variável qualquer, somente a parte inteira. 
Exemplos: Inteiro(14,235) = 14. N = 234,57 – Inteiro(N) = 234. 
• JANELA(<linha>,<coluna>,<linha1>,<coluna1>) – Comando. 
Desenha uma moldura na tela. A primeira coordenada l inha, coluna, refere-
se ao canto superior da janela, e a segunda coordenada l inha1, coluna1, 
determina o canto inferior direi to da janela. Exemplo: Janela(2,3,20,78), desenha, 
na tela, uma moldura começando na l inha 2, coluna 3 e terminando na l inha 20, 
coluna 78. 
• LIMPAR(<LINHA>,<COLUNA>,<LINHA1>,<COLUNA1>) – COMANDO . 
Semelhante aocomando janela, l impa uma área da tela desde o canto 
superior esquerdo, l inha, coluna, até o canto inferior direi to, l inha1, coluna1. 
Caso forem omit idos os parâmetros (argumentos), será assumido 1,1,24,80, isto 
é, l impa a tela inteira. Exemplos: Limpar(2,30,2,70), l impa somente a l inha 2 
desde a coluna 30 até a coluna 70. Limpar, l impa a tela inteira. 
• PI – CONSTANTE. 
Constante numérica cujo resultado é o valor de Pi = 3,14159265359 
• POSICIONAR(<linha>,<coluna>) – Comando. 
Posiciona o cursor na tela, conforme indicado por l inha e coluna. Este 
comando deve ser usado sempre antes dos comandos Ler e Escrever. Exemplo: 
POSICIONAR(12,15). Posiciona o cursor na l inha 12, na coluna 15. 
• RAIZ(<num>,<índice>) – Função. 
Calcula a raiz indicada pelo índice, de um número qualquer. O parâmetro 
<num>, indica o número do qual se quer a raiz, e o parâmetro <índice>, indica o 
t ipo de raiz desejado. Exemplos: Raiz(256,2), calcula a raiz quadrada de 256 = 
16. RAIZ(8,3), calcula a raiz cúbica de 8 = 2. 
• RESTO(<valor1>,<valor2>) – Função. 
O resultado dessa função é o valor do resto da divisão inteira do valor1 pelo 
valor2. Exemplos: Resto(24/12) = 0. Resto(25,12) = 1. 
• RETORNAR – Comando. 
Retorna um valor (resultado), de uma função definida pelo usuário, para o 
módulo que chamou a função. 
• VALOR(<var>,<texto>) – Função. 
Transforma um texto ou o conteúdo de uma variável caracter em um valor 
numérico, desde que o conteúdo desse texto ou dessa variável seja apenas 
caracteres numéricos. Exemplo: VALOR(“12”) = 12. X = “23” – VALOR(X) = 23. 
• VIDEO() – Função. 
A saída padrão (Default) do comando Escrever é para o vídeo. Porém, se 
desviamos essa saída para a impressora usando a função Impressora(), devemos 
após a impressão retornar à saída para o vídeo. Para isso usamos Video(). 
 
LÓGICA DE PROGRAMAÇÃO 55 
EXERCÍCIOS DE RACIOCÍNIO LÓGICO 
1) Utilizar cálculos aritméticos com oito números oito, (88888888), usando apenas os oito 
números oito e todos eles de forma a obter como resultado o valor 1000 (mil). 
2) Uti l izar cálculos ari tméticos com quatro números quatro, (4444) , usando 
apenas os quatro números quatro e sempre todos eles de forma a obter os 10 
(dez) dígi tos do sistema decimal. Ex: 44-44 = 0, 44/44 = 1, . . . 
3) 64, 8, 49, 7, 36. ? . 
4) 2, 5, 7, ? , ? , ? , ? , 20, 22, 25. 
5) 82, 97, 114, 133, ? . 
6) 4, 6, 10, 18, 34, ? . 
7) 2,9,100,.. . 
8) 2, 10, 12, 16, 17, 18, 19, ? . 
9) 
10) Um t i jolo pesa 1Kg mais meio t i jolo. Qual o peso de 3 t i jolos? 
11) Temos dois baldes, um com capacidade para 3 l i tros e outro com a capacidade 
de 5 l i t ros. Usando somente estes dois baldes medir no balde de 5 l i tros 
exatamente 4 l i t ros. 
12) Sobre uma mesa há quatro pacotes de presentes exatamente iguais. O 
conteúdo deles, porém, é di ferente, não sendo igual o peso de cada um deles. 
Sabemos que o peso total dos 4 pacotes é 8,800 Kg; o quarto pacote pesa 
menos 800 gramas que o segundo. O terceiro pesa mais 400 gramas que o 
pr imeiro, e o segundo pacote pesa mais 100 gramas do que a média do peso 
deles. Qual o peso de cada pacote? 
13) Em uma obra temos um grupo de oi to t i jolos. Sete destes t i jolos têm o mesmo 
peso e um é mais pesado. Usando uma balança de dois pratos e pesando 
apenas duas vezes, determinar qual o t i jolo é mais pesado. 
14) Na cozinha tem um cesta contendo ovos. Uma pessoa veio t i rar ovos desta 
cesta cinco vezes. Cada vez que ela vinha t i rar ovos, t i rava sempre a metade 
dos ovos que t inha na cesta mais meio ovo. Quando ela ret irou ovos na quinta 
vez a cesta f icou vazia. Quantos ovos t inham na cesta antes de ela começar a 
ret irar ovos? 
15) Um operário recebe R$ 50,00 por dia de trabalho para terminar uma obra em 
10 dias e paga uma multa de R$ 20,00 por dia que atrasar a obra. No f inal da 
obra recebeu R$ 380,00. Em quantos dias terminou a obra? 
 
LÓGICA DE PROGRAMAÇÃO 56 
16) Dada a seguinte divisão: 
 
Qual o valor de P,Q,R,S,T . 
17) Numa rua tem três casas, temos que l igar Água, Luz e Telefone nas três casas 
individualmente. Como fazer não cruzando l inhas. Veja abaixo: 
 
18) Dentro de uma peça fechada com uma porta bem vedada, tem uma lâmpada 
incandescente. Na parte de traz da peça, por fora, tem um interruptor de 
energia com chave tr ipla. Descobrir qual a chave que l iga a lâmpada, podendo 
abrir a porta para olhar apenas uma vez. 
19) Chegaram ao banco cinco sacos contendo moedas. Quatro sacos têm moedas 
verdadeiras e apenas um saco contém moedas falsas. O peso de cada moeda 
verdadeira é de 10gr, e cada moeda falsa pesa 1gr. Fazendo apenas uma 
pesagem, determinar com certeza qual o saco que está com moedas falsas. 
20) Dois árabes se encontram em um oásis, cada um acompanhado de seus 
camelos. Vamos ident i f icar um deles como X e o outro como Y . Se o Y der um 
camelo para X , eles f icam com quantidades iguais, porém se for X a dar um 
camelo para Y , Y f ica com o dobro da quantidade de camelos que f ica X . 
Quantos camelos tem cada árabe? 
21) Encontramos duas portas, a porta A e a porta B , sendo uma do inferno, e a 
outra, do céu, não sabemos qual a porta certa. Em frente a estas portas estão 
dois guardas que se revezam caminhando de um lado para outro. Um destes 
guardas só fala a verdade, nunca diz mentiras. O outro, ao contrário, só diz 
mentiras, nunca fala a verdade. Também não sabemos qual fala a verdade e 
qual mente. Só podemos fazer uma pergunta para apenas um dos guardas, e 
com uma resposta única deste guarda, entramos na porta certa que é a do 
céu. Como formular a pergunta? 
 
LÓGICA DE PROGRAMAÇÃO 57 
22) O quadrado mágico. A soma em qualquer direção é sempre um valor 
constante. Qual a lógica de preenchimento? 
 
23) Uma empresa possui cem (100) funcionários. Foi sol ici tado pelo gerente da 
mesma um relatório informando quantos funcionários tomavam café, quantos 
tomavam chá, quantos tomavam ambos e quantas pessoas não tomavam nada. 
Feito o relatório, apresentava o seguinte: Café – 78 , Chá – 71 , Café e Chá – 
48 e Nada – zero . O chefe olhou relatór io e notou que t inha um erro. Qual o 
erro que existe? 
24) Qual o estranho? 
(AOGIBA – BIAXACA – CELANAMI – RENOUCA – JANARAL) 
25) Como chegar aos seguintes resultados? 
 
26) Uma bactéria dobra seu número a cada minuto. Num determinado recipiente 
ela leva 29 minutos para ocupar até a metade. Quanto tempo levará para 
encher o recipiente? 
27) Ao medir uma vara veri f icou-se que ela tem 10 metros mais a terça parte do 
seu comprimento. Qual o tamanho da vara? 
28) No fundo de um poço com 20 metros de profundidade tem um caracol. Durante 
o dia o caracol sobe 2 metros na parede do poço e durante a noite cai 
escorregando 1 metro. Em quantos dias o caracol sai do poço? 
29) 
30) De uma peça de tecido com 100 metros de comprimento, uma costureira corta 
5 metros por dia. Quanto tempo levará para cortar a peça toda? 
31) Temos três baldes, um com capacidade para 3 l i t ros, outro com capacidade 
para 5 l i t ros e o terceiro com a capacidade de 10 l i t ros. Devemos misturar no 
balde de 5 l i t ros, 4 l i t ros de água e 1 l i t ro de querosene. Como fazer ut i l izando 
apenas os baldes acima? 
 
LÓGICA DE PROGRAMAÇÃO 58 
 
32) Num balcão estão enfi leirados seis copos numa seqüência de 3 cheios e 3 
vazios. Mover apenas um copo e deixar a seqüência al ternada com um cheio e 
um vazio. 
33) Dispor ari tmeticamente nove números sete (777777777) de forma que o 
resultado seja igual a 790. 
34) 123² – 122² = ? 538² – 537² = ? 
35) Dois pais e dois f i lhos foram a uma confei taria e compraram três doces 
diferentes. Cada um deles comeu um doce inteiro. Como isto foi possível? 
36) Foi deitaràs 08:00. Acertou o despertador para as 09:00 do dia seguinte. 
Quanto tempo dormiu? 
37) Escrever os números de um até nove, menos o oi to (12345679). Escolher o 
que menos gosta. Mult ipl icar os números 12345679 pelo número escolhido 
mult ipl icado por nove e observe o resultado. Exemplo: escolhendo o número 5, 
mult ipl icar (12345679)*45 = ? 
38) Precisamos cozinhar um ovo em dois minutos. Só dispomos de duas 
ampulhetas, uma com tempo de 3 minutos e outra com tempo de 5 minutos. 
Como medir o tempo corretamente? 
39) Um relógio está parado. Outro atrasa uma hora por dia. Qual mostra mais 
freqüente a hora certa? 
40) Sabe-se que 5 melancias valem 21 cajus, que 7 cajus valem 15 laranjas, que 
18 laranjas valem 6 mangas e que 10 mangas custam R$ 10,00. Calcular o 
preço de uma melancia. 
41) Observe as f iguras abaixo e descubra qual delas completa a ul t ima seqüência, 
substi tuindo o X . 
 
 
LÓGICA DE PROGRAMAÇÃO 59 
42) Tendo por base as equações solucionadas, determine o valor de X na últ ima 
equação. 
 
 
 
 
 
 
 
 
 
 
43. Quantos tr iângulos você consegue ver em cada uma das f iguras abaixo? 
 
44. As equações abaixo, formadas por barras, não estão corretas, como 
transformá-las verdadeiras, movendo apenas uma barra em cada equação? 
 
45. Anal isando as equações abaixo formadas por f iguras, como podemos 
determinar o valor de X . 
 
 ÷ 4 =3 + =20 
 * =32 
÷ + =X 
 
LÓGICA DE PROGRAMAÇÃO 60 
46. Nos valores contidos nas f iguras abaixo, qual o valor de X? 
 
47. Na f igura abaixo temos 7 quadrados. Mover apenas 3 pal i tos e deixar apenas 
5 quadrados iguais. 
 
 
 
48. Na f igura abaixo tem 17 pal i tos formando uma f igura com 6 quadrados. 
Retirar 5 pal i tos e deixar a f igura com apenas 3 quadrados. 
 
 
 
49. A f igura a seguir é composta de cinco quadrados formados por 16 pal i tos. 
Deslocar apenas dois pal i tos e deixar somente quatro quadrados. 
 
 
 
 
50. A f igura abaixo tem cinco quadrados, deslocar apenas quatro pal i tos 
deixando apenas três quadrados. 
 
 
 
 
 
 
LÓGICA DE PROGRAMAÇÃO 61 
51. Com vinte e quatro pal i tos formamos a f igura abaixo que possui nove 
quadrados. Retirar seis pal i tos e deixar a f igura com três quadrados. 
 
 
 
 
 
 
52. Com doze pal i tos formamos a f igura abaixo que tem quatro quadrados. 
Retirar apenas dois pal i tos, deixando a f igura com apenas dois quadrados. 
 
 
 
53. Na f igura abaixo temos um tr iângulo equi látero formado por nove pal i tos. 
Mover cinco pal i tos e formar cinco tr iângulos também equi láteros. 
 
 
 
 
 
 
 
LÓGICA DE PROGRAMAÇÃO 62 
EXERCÍCIOS COM ALGORÍTMOS 
1) Escreva o pseudocódigo em português estruturado que leia três valores em variáveis 
distintas e armazene a soma em uma outra variável e escreva o valor obtido. 
2) Ler três valores em variáveis diferentes armazene, a soma das duas primeiras em uma nova 
variável e o produto das duas últimas em uma outra variável e mostre o produto das duas 
novas variáveis em uma terceira variável. 
3) Escreva o pseudocódigo em português estruturado e que leia três valores em diferentes 
variáveis e escreva o maior valor digitado. 
4) Escreva o pseudocódigo em português estruturado que leia dez valores fornecidos pelo 
usuário e escreva os valores e seus dobros. 
5) Gerar números de zero a 200 variando de 5 em 5. Mostrar estes números digitados e, no 
final, a soma deles e quantos números foram gerados. 
6) Fazer uma tabela de conversão de polegadas para centímetros. Esta tabela deverá começar 
em uma polegada e terminar em 10 polegadas variando de 0.5 em 0.5 de polegada. Mostrar 
a tabela 
7) Ler 10 valores dois a dois, compará-los entre si. Mostrar cada par de números, e ao lado 
deles a mensagem, segundo cada caso. Se forem iguais, se o maior é o primeiro ou se o 
maior é o segundo. 
8) Escreva o pseudocódigo em português estruturado que mostre somente os números pares 
de 0 até 100. Se este número for maior que 20, escreva também o seu quadrado. 
9) Escreva o pseudocódigo em português estruturado que, para 20 números fornecidos pelo 
usuário, escreva a quantidade de positivos e de negativos. 
10) Escreva o pseudocódigo em português estruturado que mostre a tabuada de zero até 10 
para um número fornecido pelo usuário. 
11) Ler oito valores positivos. Testar cada valor, se for maior do que 100, extrair a raiz 
quadrada, caso contrário, elevar ao quadrado. Mostrar os números lidos e ao lado a raiz ou 
o quadrado. No final informar quantos números pares foram digitados. 
12) Uma empresa possui 15 funcionários. Ler para cada funcionário o seu nome, as horas 
trabalhadas e seu salário hora. Calcular o salário bruto. Mostrar o nome de cada funcionário, 
as horas trabalhadas, o salário hora e o salário bruto. No final mostrar o total de salários 
brutos. 
13) Ler 20 valores dois a dois. Testar estes valores. Se o segundo for maior que o primeiro, 
calcular a soma deles. Se o primeiro for maior que o segundo, calcular a diferença, e, se 
forem iguais, multiplicá-los. 
14) Fazer um algoritmo que calcule as raízes da equação do segundo grau usando a fórmula de 
Báscara. Testar o discriminante, caso seja negativo, informar que é impossível no campo 
dos números reais; caso contrário, calcular e mostrar as raízes. 
15) Ler o nome, o sexo e a idade de 100 pessoas. Mostrar quantas pessoas são do sexo 
masculino e quantas são do sexo feminino, quantas são menores de 18 anos e quantas são 
maiores ou iguais a 18. 
 
LÓGICA DE PROGRAMAÇÃO 63 
16) Ler oito valores diferentes de zero, imprimir os valores lidos e no final mostrar quantos 
números são negativos. 
17) Ler uma série de dez números, mostrar os números lidos e, no final, a soma deles e quais 
foram o maior e o menor número digitado. 
18) Ler o nome e número de filhos de 30 pessoas, imprimindo: 
a. Quantas pessoas têm de 1 a 3 filhos. 
b. Quantas pessoas têm de 4 a 7 filhos. 
c. Quantas pessoas têm 8 filhos ou mais. 
d. Quantas pessoas não têm filho. 
19) Ler nome, idade e sexo de 40 pessoas e após imprimir: 
a. Número de pessoas do sexo masculino. 
b. Número de pessoas do sexo feminino. 
c. Número de pessoas com idade até 30 anos. 
d. Número de pessoas com idade igual ou superior a 60 anos. 
20) O proprietário de um cinema desejou saber certo dia qual seria a sessão mais lucrativa para 
ele. Assim sendo, para cada um dos 100 espectadores deste dia registrou nome e sessão 
(tarde ou noite). Fazer um algoritmo para ler estes dados e após informar ao proprietário 
qual foi a sessão que teve mais espectadores ou se foram iguais. 
21) Numa pesquisa populacional, entre outros dados, registrou-se para cada um dos 160000 
recenseados o nome, sexo, idade e grau de escolaridade (0=analfabeto, 1=primário, 
2=secundário, 3=superior, 4=pós-graduação). Como resultado da pesquisa deseja-se obter 
um relatório contendo as seguintes informações: 
a. Número de analfabetos. 
b. Número de pessoas com instrução primária. 
c. Número de pessoas com mais de 50 anos e instrução secundária. 
d. Número de pessoas com formação superior 
e. Número de homens pós-graduados. 
f. Número de mulheres pós-graduadas 
22) Ler as notas e os nomes de uma turma de 30 alunos, mostrar os nomes e as notas de cada 
aluno e a mensagem de aprovado, se a nota for maior ou igual a 7 e reprovado, se menor 
que 7. No final imprimir a nota mais alta, a nota mais baixa, a média aritmética da turma, 
quantos alunos foram aprovados e quantos foram reprovados. 
23) Ler 10 valores maiores que zero. Mostrar os valores e informar se são ímpares ou não. No 
final mostrar a soma deles, a média aritmética, a soma dos pares, a soma dos ímpares, o 
maior e o menorvalor. 
 
LÓGICA DE PROGRAMAÇÃO 64 
24) Ler o nome e o salário bruto de 15 funcionários de uma empresa. Calcular o INSS e o IRRF 
conforme tabelas abaixo. Calcular o valor do Vale Transporte = 6% sobre o salário bruto. 
Calcular o salário líquido. Mostrar os nomes dos funcionários, o salário bruto, o valor do 
INSS, valor do IRRF, valor do Vale Transporte e o salário líquido. 
 
Observação: O valor do Vale Transporte não pode ul trapassar R$ 95,00 
No final mostrar: 
- A soma dos salários l íquidos; 
- A média dos salários brutos; 
- O maior salár io; 
- O menor salár io; 
25) Fazer um algoritmo que solicite dois valores quaisquer e apresente um menu com as 
opções de soma, subtração, multiplicação e divisão, Conforme a opção escolhida apresentar 
os números digitados e o resultado. Perguntar se quer mais cálculos; caso positivo reiniciar, 
se não, encerrar o programa informando quantos cálculos foram efetuados. 
26) Uma empresa resolveu conceder um aumento aos seus funcionários conforme tabela 
abaixo: 
Salários até R$ 200,00 20% 
Salários de R$ 200,01 até R$ 500,00 15% 
Salários acima de R$ 500,00 10% 
a. Ler para cada funcionário o nome e o salár io antigo. Calcular o novo 
salário. Mostrar o nome, o salário anterior e o novo salár io. Final izar 
o programa quando for digi tada a palavra “FIM” em lugar do nome. 
Informar no f inal o seguinte: 
b. Quantos funcionários têm a empresa; 
c. O total dos salários antigos; 
d. O total dos salários novos; 
e. O maior salár io novo; 
f . O menor salár io novo. 
27) Escrever um algori tmo que lê a quantidade de cobaias uti l izadas em cada 
uma das experiências e um código 1 ou 2. O código 1 representa coelhos e o 
2 representa ratos. Quer-se saber o total de cobaias ut i l izadas, o total de 
ratos, o total de coelhos, a percentagem de coelhos e a percentagem de 
ratos. Escrever esses valores. Usar como Flag 999, na quantidade de 
cobaias. 
 
LÓGICA DE PROGRAMAÇÃO 65 
28) Em um certo estabelecimento selecionaram 20 pessoas com diferentes 
idades e para cada uma delas foram registrados, nome, idade e mês de 
nascimento. Após o registro de dados, desejou-se saber: 
a. Idade da pessoa mais jovem; 
b. Nome e idade da pessoa mais idosa; 
c. Número de pessoas nascidas no mês de setembro e no mês de 
outubro. 
29) Um fabricante de televisores deseja inteirar-se do movimento de sua 
produção durante um determinado período, para cada um dos televisores 
fabricados, registraram-se os seguintes dados: modelo (1, 2 ou 3), t ipo preto 
e branco (PB) ou color ido (C), preço de custo e preço de venda. 
a. Elaborar um algori tmo para ler e imprimir estes dados, além do lucro 
obtido na venda de cada televisor. 
b. Usar como f lag 9 no modelo. 
c. Ao f inal do algori tmo deverá ser impresso um segundo relatório 
contendo as seguintes informações: 
i . Número de televisores vendidos do modelo 1; 
i i . Número de televisores vendidos do modelo 2; 
i i i . Número de televisores vendidos do modelo 3; 
iv. Número de televisores preto e branco vendidos; 
v. Número de televisores color idos vendidos; 
vi . Lucro total obtido pela fábrica; 
vi i . Maior preço de custo; 
vi i i . Maior preço de venda. 
30) Uma empresa deseja real izar um levantamento no cadastro de seus 
funcionários. Para isso, deverá ser l ido para cada funcionário: nome, idade, 
salário e ano de admissão; 
a. Ao f inal deverá ser impresso um relatório em que constarão os 
seguintes dados: 
i . Nome do funcionário mais idoso; 
i i . Nome do funcionário mais antigo na empresa; 
i i i . Maior salár io na empresa. 
iv. Usar como f lag ZZZ no nome. 
 
LÓGICA DE PROGRAMAÇÃO 66 
31) A empresa X requisi tou uma pesquisa em seu cadastro de pessoal com 
objetivo de inteirar-se de alguns dados. Para cada um dos seus funcionários 
consta no cadastro nome, sexo, tempo de serviço e salár io. O algori tmo 
deverá ler estes dados e após imprimir na tela, um relatór io contendo as 
seguintes informações: 
a. Nome, sexo, tempo de serviço salário e mensagem "FUNCIONÁRIO 
APOSENTADO", para os empregados que possuírem mais de 35 anos 
de serviço; · 
b. Nome, sexo, tempo de serviço e salár io dos funcionários que 
possuírem tempo de serviço inferior a 3 anos. 
c. Nome, sexo, tempo de serviço e salár io dos funcionários que 
possuírem tempo de serviço superior a 3 anos e salários inferiores a 
R$ 500,00 
d. Usar como f lag FIM no campo nome. 
32) Uma empresa fez uma pesquisa para saber a aceitação de um produto 
lançado no mercado, para isso devemos ler o sexo e a resposta de cada 
pessoa pesquisada. 
a. Usar com f lag a letra X no campo sexo. 
b. No f inal informar: 
i . Quantas pessoas responderam SIM. 
i i . Quantas pessoas responderam NÃO. 
i i i . Quantas pessoas do sexo feminino disseram SIM. 
iv. Quantas pessoas do sexo mascul ino disseram NÂO. 
v. Quantas foram as pessoas pesquisadas. 
33) Ler o nome, as horas trabalhadas e o salário hora de cada funcionário de 
uma empresa. O programa terminará quando forem digitadas três letras X no 
lugar do nome (XXX). Calcular o salár io bruto. Fazer uma função para 
calcular o INSS, outra para calcular o IRRF, conforme tabelas abaixo e outra 
para calcular o vale transporte, que é de 6% sobre o salário Bruto. 
 
Observação: O valor do Vale Transporte não pode ul trapassar 110,00 reais. 
 
LÓGICA DE PROGRAMAÇÃO 67 
a. Calcular o Salário Líquido. 
b. Escrever o nome, Salár io Bruto, INSS. IRRF, VT e SL para cada 
funcionário. 
34) Elaborar um algori tmo para ler números posit ivos. O programa terminará 
quando o usuário digi tar o zero. Escrever os números l idos. Fazer uma 
função para informar se o número digi tado é primo ou não. 
a. No f inal informar: 
i . A soma total dos números. 
i i . A soma dos números primos. 
i i i . O maior número. 
iv. O menor número. 
35) Ler um número de um a sete, correspondendo ao dia da semana, fazer um 
procedimento para escrever o dia da semana em caracteres. 
36) Ler como valor numérico o dia, mês e ano em varáveis dist intas, repassar 
estes parâmetros para uma função que vai testar se esta data está digi tada 
corretamente. 
37) Ler um valor de um até 10. Consist i r a entrada. Fazer uma função para 
calcular o fator ial do número digi tado. 
38) Escrever um algori tmo que lê um vetor V[16] e o escreve. Conte, a seguir, 
quantos valores de V são negativos, quantos são pares, quantos são impares 
e escreva esta informação. 
39) Escreva um algori tmo que lê um vetor A [20] e escreve todos os valores 
maiores que 10 deste vetor e suas posições. 
40) Escrever um algoritmo que lê um vetor X[15] e o escreve. Substi tua, a 
seguir, todos os valores zeros de X pelo valor do dobro de sua posição e 
escrever o novo vetor. 
41) Escrever um algori tmo que lê um vetor C[20] e o escreve. Encontre, a seguir, 
o maior elemento de C e o escreva. 
42) Escrever um algoritmo que lê um vetor V[18] e o escreve. Encontre, a 
seguir, o menor elemento e a sua posição no vetor V e escreva: "O MENOR 
ELEMENTO DE V É =“, M, “E A SUA POSIÇÃO É =“, P. 
43) Escreva o pseudocódigo em português estruturado que leia um vetor V de 10 
posições e, após, veri f ica se um número N, fornecido pelo usuário, existe no 
vetor. Se exist ir , indicar a posição, se não, escrever a mensagem "O número 
fornecido não existe no vetor!". 
44) Escreva o pseudocódigo em português estruturado que leia um vetor A, de 5 
posições, um vetor B de 5 posições e coloque a soma dos elementos no 
vetor C, também de 5 posições. 
 
LÓGICA DE PROGRAMAÇÃO 68 
45) Ler um vetor K de cinco posições. Escrever o vetor. Mostrar a soma do 
primeiro elemento com o úl t imo e a mult ipl icação do segundo pelo quarto e a 
di ferença entrea mult ipl icação e a soma. 
46) Escreva o pseudocódigo em português estruturado que leia um vetor V de 20 
posições e classif ique-o em ordem crescente. Escreva o vetor ordenado. 
47) Ler 50 valores de 1 até 10, contar e mostrar quantas vezes foi digi tado cada 
valor. 
48) Escreva o pseudocódigo em português estruturado que leia um vetor L de 15 
posições e classif ique-o em ordem decrescente. Escreva o vetor ordenado. 
49) Preencher um vetor de 15 posições com valores aleatórios de 1 até 100. 
Escrever o vetor. Pesquisar os valores do vetor. Se forem menores que 50 
substi tuir pelo seu tr iplo, caso contrário substi tuir pelo seu dobro. Escrever o 
vetor modif icado. 
50) Escreva um algori tmo que lê uma matriz M[5,5] e calcula as somas: 
a. Da l inha 4 de M; 
b. Da coluna 2 de M; 
c. De todos os elementos da matr iz. 
51) Escrever um algori tmo que lê duas matrizes N1[4,6] E N2[4,6] e cria uma 
matr iz M1 que seja a soma de N1 com N2. Escrever as matr izes l idas e 
calculadas. 
52) Escrever um algori tmo que lê uma matriz M[6,6] e calcula as somas das 
l inhas e das colunas. Escrever a matriz l ida e as somas calculadas 
53) Escrever um algori tmo que lê uma matriz M[5,5] e calcula as somas: 
a. Da l inha 3 de M; 
b. Da coluna 5 de M; 
c. Da diagonal da matriz. 
d. Da diagonal inversa da matr iz. 
54) Preencher uma matr iz M de quinze l inhas por quinze colunas M[15,15], com 
números aleatórios de 1(um) até 1000(mil). Sol ic i tar que o usuário digi te um 
valor também de 1(um) até 1000(mil) . Consist i r esta entrada. Pesquisar se o 
número digi tado foi gerado na matr iz. Caso tenha sido encontrado informar 
ao usuário em qual posição se encontra e se não for encontrado enviar uma 
mensagem informando que não foi gerado. 
55) Ler valores para uma matriz de cinco l inhas por cinco colunas, preencher e 
escrever a matr iz l inha por l inha. Transpor a matr iz, isto é, passar o valor 
das l inhas para as colunas e escrever novamente a matriz.

Mais conteúdos dessa disciplina