Você está na página 1de 80

2

a
edio
Lgica de Programao
1

Lgica de Programao
Copyright 2014 Editora etb Ltda.
2 edio
Todos os direitos reservados.
Diretora Editorial: Simone Savarego
Coordenadora editorial: Rosiane Aparecida Marinho Botelho
Produo editorial: etb - Editora Tcnica do Brasil
Projeto grco: Alexandre Ponzetto
As informaes e as imagens so de responsabilidade dos autores.
Proibida a reproduo, mesmo parcial, por qualquer processo, sem a autorizao escrita da Editora.
A Editora no se responsabiliza por eventuais danos causados pelo mau uso das informaes contidas neste livro.
Impresso no Brasil
Printed in Brazil
Esse livro est catalogado na CIP.
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Palavra a Abril Educao
Desenvolver uma gerao de prossionais capazes de estar frente de um mercado de trabalho
desaador, que exige cada vez mais ecincia e competncias comprovadas, uma das preocupaes
mais evidentes dos Governos Federal, Estaduais e Municipais, dos gestores de polticas pblicas e dos
desenvolvedores de programas implementados.
Com o objetivo de conquistar esse desao e contribuir para a formao de prossionais
competentes e ecazes, o Sistema etb de ensino tcnico apresenta uma proposta de apoio ao
processo de ensino-aprendizagem, a partir de um material didtico desenvolvido especicamente
para programas de formao prossional Cursos Prossionalizantes de Nvel Mdio na modalidade
Subsequente e Concomitante.
Abrangendo mais de 12 eixos de conhecimento e com mais de 50 colees de cadernos de
contedo, o Sistema etb cobre mais de 90% das demandas de formao prossional por todo o
Brasil, contando com o endosso da Abril Educao, cuja trajetria bem-sucedida j atravessa cinco
dcadas.
O Sistema etb tem ao seu dispor a experincia e a abrangncia de um dos maiores expoentes no
setor educacional, com destaque para metodologias diferenciadas e recursos educacionais exclusivos
para a educao prossional.
A oferta de programas de formao prossional, baseada em um material didtico de qualidade
e focado no desenvolvimento de habilidades e competncias, associada sequncia de polticas
pblicas que estimulam o investimento no setor da educao prossional compem uma proposta
aos cidados para que consigam entrar no mercado de trabalho pela porta da frente, como convidados
a exercer suas atividades de maneira segura e eciente em empresas que clamam por prossionais
diferenciados.
Este livro mais um convite na direo da real compreenso da expresso SER PROFISSIONAL.
O objetivo deste curso a formao de prossionais que no s tenham conhecimento profundo e
capacidade de resolver problemas, mas tambm sejam criativos, ticos e preocupados com aes e
processos sustentveis.
A reunio de autores renomados na rea do ensino fortalece o carter criterioso e responsvel dos
captulos componentes desta obra, para que, com eles, o aluno esteja provido do material necessrio
para iniciar sua carreira prossional, a qual ser repleta de conquistas e outras lies.
Ivan Sartori
Diretor de Novos Negcios da Abril Educao Mantenedora do etb Editora Tcnica do Brasil
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Autor(es)
Lucy Mari Tabuti
Mestre em cincia da computao pela IME-USP. Especialista em educao matemtica pela Faculdade
So Luis. Graduada em matemtica pela USP. Tcnica em administrao de empresas pela Fundao
Bradesco. Atuou como analista na rea tcnica, chefe de servio na rea administrativa e de recursos
humanos. Atualmente professora e orientadora no colgio Rainha da Paz.
Rodrigo Assirati Dias
Mestre em cincia da computao pelo Instituto de Matemtica e Estatstica (USP). Licenciado em
computao pelo Centro Universitrio Claretiano. Bacharel em cincia da computao pelo Centro
Universitrio SENAC. Tcnico em processamento de dados pelo Colgio Oswaldo Cruz. Atuou como
programador Jr. na Cia Melhoramentos de So Paulo, programador Jr. na Pro Connection Provedor de
Internet, consultor pleno na TCS Brasil. Atualmente coordenador de TI da Associao de Educao
e Cultura, professor das disciplinas de programao orientada a objetos, tcnicas de programao,
bioinformtica, inteligncia articial, sistemas de informao gerenciais e ferramentas de TI na Faculdade
de Engenharia, Faculdade de Computao e Informtica e Faculdade de Administrao da FAAP,
professor das disciplinas de linguagens de programao, computao paralela e distribuda, programao
orientada a objetos e inteligencia articial nos cursos de tecnologia em anlise e desenvolvimento de
sistemas, tecnologia em desenvolvimento web, bacharelado em cincia da computao e em engenharia
da computao do IBTA.
Antonio lvaro de Assis Moura
Possui graduao em Direito pela Faculdade de Direito de So Bernardo do Campo (1989), graduao
em Engenharia Eltrica pela Escola de Engenharia Mau (1991), mestrado (2003) e doutorado (2012) em
Engenharia de Produo pela Universidade Metodista de Piracicaba. Atualmente professor adjunto da
Universidade Federal de Uberlndia Campus Pontal, no curso de Engenharia de Produo. Foi professor
nas seguintes IES: Unaerp (Guaruj- SP); IBTA (Campinas-SP); Unimep (Santa Brbara dOeste-SP) e Unisal
(Americana-SP) . Tem experincia na rea de Desenvolvimento do Produto, atuando principalmente nos
seguintes temas: integrao CAD/CAM/CAx, Desenvolvimento do Produto e Gesto da Produo. Possui
experincia prossional de 10 anos na Cia. de Saneamento Bsico do Estado de So Paulo - SABESP,
onde atuou desde engenheiro de manuteno at Gerente de Setor Tcnico (Guaruj). Tambm tem
experincia prossional na Administrao de Ensino Superior, pois foi coordenador geral da Faculdade
IBTA (hoje Veris Educacional S.A.) em Campinas.
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Sumrio
Lgica de Programao
Lucy Mari Tabuti / Rodrigo Assirati Dias /Antonio lvaro de Assis Moura (Revisor Tcnico)
Conceitos Bsicos ..............................................................................................................................................7
Utilizando o VisualG ..........................................................................................................................................9
Como Construir um Algoritmo ...................................................................................................................11
Constantes, Variveis e Tipos de Dados nos Algoritmos ................................................................. 13
Expresses Aritmticas e Lgicas nos Algoritmos .............................................................................. 17
Estrutura Sequencial nos Algoritmos ...................................................................................................... 21
Estrutura de Deciso nos Algoritmos ...................................................................................................... 24
Estrutura de Mltipla Escolha nos Algoritmos .................................................................................... 27
Estruturas de Repetio do Enquanto nos Algoritmos .................................................................... 32
Estruturas de Repetio do faa/enquanto .......................................................................................... 34
Exerccios 1......................................................................................................................................................... 36
Estrutura de Repetio do para ................................................................................................................. 37
Estrutura de Repetio do enquanto, faa/enquanto e para ........................................................ 39
Estrutura de Vetores ....................................................................................................................................... 40
Estrutura de Vetores ....................................................................................................................................... 42
Conceitos de Modularizao ...................................................................................................................... 43
Procedimentos e Funes ............................................................................................................................ 44
Procedimentos e Funes Parametrizados ............................................................................................ 45
Exemplos de Modularizao em Algoritmos ........................................................................................ 47
Exerccios 2 ....................................................................................................................................................... 51
Atividade Complementar 1 ......................................................................................................................... 52
Atividade Complementar 2 ......................................................................................................................... 53
Atividade Complementar 3 ......................................................................................................................... 54
Atividade Complementar 4 ......................................................................................................................... 54
Referncias bibliogrcas ............................................................................................................................ 55
Gabarito - Exerccios 1 .................................................................................................................................. 55
Gabarito - Exerccios 2 .................................................................................................................................. 63
Gabarito - Atividade complementar 1 ....................................................................................................71
Gabarito - Atividade complementar 2 ....................................................................................................71
Gabarito - Atividade complementar 3 ................................................................................................... 73
Gabarito - Atividade complementar 4 .................................................................................................. 75
7
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Lgica de Programao
Lucy Mari Tabuti / Rodrigo Assirati Dias /
Antonio lvaro de Assis Moura (Revisor Tcnico)
Conceitos Bsicos
Conceitos bsicos de Lgica, Processamento de Dados, Algoritmo, Programa e Linguagem de
Programao.
Lgica
Denio de lgica
Segundo o dicionrio Aurlio
1
, Lgica :
Inform. Forma pela qual as assertivas, pressupostos e instrues so organizadas
em um algoritmo para implementao de um programa de computador.
Lgica de programao
A lgica de programao nada mais do que a lgica usada na programao de computadores,
que segue as leis do pensamento e os processos do raciocnio, cujo objetivo desenvolver tcnicas que
ajudem as pessoas a realizar uma tarefa com o mnimo de esforo.
Processamento de Dados
Na informtica, o processamento de dados refere-se entrada de dados, processamento desses dados
de entrada e a sada dos resultados deste processamento, numa sequncia como mostra a Figura 1.
Entrada Processamento Sada
Figura 1 - Processamento de dados. Fonte: Autor.
A entrada de dados, que pode ser uma coleta de dados, uma depurao de dados ou um armazenamento
de dados, recebe a informao necessria que ser tratada no processamento de dados. Essa entrada
pode ser feita atravs de dispositivos de entrada, por exemplo, teclado, mouse, etc.
O processamento de dados, que pode ser aritmtico ou lgico, trata a informao recebida na entrada
de dados, gerando resultados. Esse processamento efetuado dentro do computador, na unidade lgica
1 Ferreira, Aurlio Buarque de Holanda. Novo Aurlio sculo XXI: O Dicionrio da Lngua Portuguesa. 3a edio.
Nova Fronteira. Rio de Janeiro. 1999.
8
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
e aritmtica conhecida como ULA Unidade Lgica e Aritmtica que ca dentro da CPU Unidade
Central de Processamento, o crebro do computador.
A sada de dados, que pode ser uma coleta de resultados ou uma distribuio de resultados, a
entrega dos dados processados para o usurio. Essa sada pode ser feita atravs de dispositivos de sada,
por exemplo, monitor, impressora, etc.
Algoritmo
Denio
Pode-se denir algoritmo como um processo que rene um conjunto de aes que so necessrias
para tratar os dados de entrada e transform-los em resultados para um determinado objetivo.
Neste sentido, pode-se considerar que uma receita de bolo um algoritmo, pois a partir dos
ingredientes (dados de entrada), realizam-se vrias aes como bater os ingredientes numa batedeira,
colocar numa assadeira e depois assar por determinado tempo (processamento) para, no nal, ter um
bolo bem feito (resultado de sada).
Mtodo para o desenvolvimento de um algoritmo
Para a construo de um bom algoritmo, devem-se seguir os seguintes passos:
ler e compreender o problema para o qual ser construdo um algoritmo;
determinar qual ser a entrada de dados do seu algoritmo;
determinar quais as aes, lgicas e/ou aritmticas, que devero ser realizadas no seu algoritmo,
bem como, as restries, se houver, para cada uma dessas aes;
determinar qual ser a sada de resultados do seu algoritmo;
construir o algoritmo em um dos tipos de algoritmo descritos na prxima seo;
testar o algoritmo usando o teste de mesa descrito no nal deste captulo.
Tipos de algoritmo
As formas mais importantes para a construo de algoritmos so: a descrio narrativa, o uxograma
e o pseudocdigo (ou portugus estruturado ou portugol).
9
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Descrio narrativa. A descrio narrativa nada mais do que descrever, utilizando uma
linguagem natural (no nosso caso, a lngua portuguesa), as aes a serem realizadas no tratamento
dos dados de entrada para os resultados de sada na resoluo do problema proposto.
Fluxograma. O uxograma a forma de descrever as aes a serem realizadas no tratamento dos
dados de entrada para os resultados de sada usando uma representao simblica preestabelecida,
por exemplo, como os smbolos na Figura 2.
Smbolo utilizado para determinar o incio e o trmino do
algoritmo
Smbolo utilizado para determinar o sentido do uxo de dados do
algoritmo. Utilizado para conectar os smbolos existentes
Smbolo utilizado para determinar uma ao que pode ser um
clculo ou uma atribuio de valores
Smbolo utilizado para determinar a entrada de dados do
algoritmo. Esta entrada de dados pode ser via dispositivos de
entrada
Smbolo utilizado para determinar a sada de dados do algoritmo.
Esta sada de dados pode ser via monitor
Smbolo utilizado para determinar uma deciso que indicar qual
caminho ser seguido no algoritmo
Smbolo utilizado para determinar uma conexo entre partes de
um mesmo algoritmo
Figura 2 - Fluxograma.
Fonte: Autor
Pseudocdigo. O pseudocdigo a forma de descrever as aes para a resoluo de um problema
proposto por meio de regras preestabelecidas.
Programa
Um programa de computador a codicao de um algoritmo numa linguagem de programao
especca, por exemplo, o C e o Java.
Sempre que se codica um algoritmo numa linguagem de programao, este programa precisa ser
traduzido para a linguagem entendida pela mquina. A este processo chama-se interpretao ou compilao.
Utilizando o VisualG
O VisualG um compilador gratuito, para uso em Portugol, ou portugus estruturado. Siga as
instrues para elaborar o seu primeiro programa.
10
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Ao abrir o programa ir ser aberta uma tela como abaixo.
O programa mais simples e inicial aquele que d um al para o mundo.
Na tela do VisualG complete o cdigo como abaixo:
algoritmo primeiro programa
// Funo : Dar um al ao mundo
// Autor : seu nome
// Data : hoje
// Seo de Declaraes
var
inicio
escreva (Al mundo!)
// Seo de Comandos
malgoritmo
Salve o seu programa adequadamente.
Clique em Algoritmo e Executar.
O resultado deve ser a tela abaixo:
11
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Como Construir um Algoritmo
Descrio narrativa de como construir algoritmos.
Exemplo de como fazer um caf
Nesta seo, sero apresentados vrios algoritmos de como fazer um caf utilizando o algoritmo de
descrio narrativa. Observe como ca um algoritmo sequencial para nosso exemplo:
Descrio Narrativa Sequencial
Pegar bule.
Colocar coador de plstico sobre o bule.
Colocar coador de papel sobre o coador de plstico.
Colocar caf tostado e modo sobre o coador de papel.
Colocar gua sobre o caf.
Descrio Narrativa de Seleo
Pegar bule.
Colocar coador de plstico sobre o bule.
Colocar coador de papel sobre o coador de plstico.
Colocar caf tostado e modo sobre o coador de papel.
12
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
se a gua estiver fervente, ento:
Colocar gua sobre o caf.
Descrio Narrativa de Repetio sem a estrutura de repetio
Pegar bule.
Colocar coador de plstico sobre o bule.
Colocar coador de papel sobre o coador de plstico.
Colocar caf tostado e modo sobre o coador de papel.
se a gua no estiver fervente, ento
Aquecer a gua.
se a gua no estiver fervente, ento
Continuar aquecendo a gua.
se a gua no estiver fervente, ento
Continuar aquecendo a gua
...
continua at quando?
colocar gua
Descrio Narrativa de Repetio usando a estrutura de repetio
Pegar bule.
Colocar coador de plstico sobre o bule.
Colocar coador de papel sobre o coador de plstico.
Colocar caf tostado e modo sobre o coador de papel.
enquanto a gua no estiver fervente, faa
13
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Aquecer a gua.
Colocar gua sobre o caf.
Outro exemplo de construo de algoritmo envolvendo lgica
Problema:
Considere a Torre de Hani com trs hastes e trs discos. Uma das hastes serve de suporte para
trs discos de tamanhos diferentes de forma que os menores esto sobre os maiores. Desenvolva um
algoritmo que mova todos os discos da haste onde se encontram para uma das outras duas hastes da
Torre de Hani, seguindo as seguintes regras: pode-se mover um disco de cada vez para qualquer haste,
contanto que um disco maior nunca seja colocado sobre um disco menor.
Resoluo:
Considerando discos 1, 2, 3 e hastes A, B, C, tem-se o resultado descrito.
Mover o disco 1 da haste A para a haste B.
Mover o disco 2 da haste A para a haste C.
Mover o disco 1 da haste B para a haste C.
Mover o disco 3 da haste A para a haste B.
Mover o disco 1 da haste C para a haste A.
Mover o disco 2 da haste C para a haste B.
Mover o disco 1 da haste A para a haste B.
Constantes, Variveis e Tipos de Dados nos Algoritmos
Estudo das constantes, variveis e tipos de dados nos algoritmos.
Tipos de dados
Os tipos de dados so as caractersticas comuns dos dados a serem manipulados. Podem-se considerar
cinco classicaes para os tipos de dados: inteiro, real, caracter, alfanumrico e lgico.
O tipo inteiro caracteriza qualquer dado numrico que pertena ao conjunto dos nmeros inteiros.
Por exemplo: -5, 0, 32.
14
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
O tipo real caracteriza qualquer dado numrico que pertena ao conjunto dos nmeros reais. Por
exemplo: -9.0, 0, 29.45.
O tipo caracter caracteriza um nico qualquer dado que pertena a um
conjunto de caracteres alfanumricos e so simbolizados por entre aspas simples
( ). Por exemplo: 1, E, %.
O tipo alfanumrico caracteriza qualquer conjunto de dados que pertenam a um conjunto de
caracteres alfanumricos e so simbolizados por entre aspas duplas ( ). Por exemplo: 15, Eu, Pare!,
?%@.
O tipo lgico caracteriza qualquer dado que possa assumir somente duas situaes: verdadeiro ou
falso. Por exemplo: feminino ou masculino, loja aberta ou fechada, brasileiro ou estrangeiro.
Pseudocdigo
Para o tipo inteiro usa-se inteiro.
Para o tipo real usa-se real.
Para o tipo caracter usa-se caracter.
Para o tipo alfanumrico usa-se alfanumrico.
Para o tipo lgico usa-se lgico.
Constantes
Denio
Diz-se que determinada informao uma constante quando esta no sofre nenhuma alterao,
ou seja, ela xa. Por exemplo, pode-se denir uma constante 3.14 dentro do algoritmo e neste
algoritmo este valor nunca se alterar.
Pseudocdigo
A declarao de um dado constante em pseudocdigo ter a seguinte regra sinttica:
declarar
constante <nome da constante> <valor da constante> <tipo de dado da constante> ;
Por exemplo:
15
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
declarar
constante pi 3,14 real;
Pode-se tambm declarar vrios dados constantes em pseudocdigo numa mesma linha se eles
forem todos do mesmo tipo, seguindo a seguinte regra sinttica, para NC nome da constante e VC
valor da constante.
declarar
constante <NC> <VC> , <NC> <VC.> , ... , <NC> <VC> <tipo de dado da
constante> ;
Por exemplo:
declarar
constante pi 3,14, x 9,3, telefone -7,23 real;
Variveis
Denio
Diz-se que determinada informao uma varivel quando esta no pode sofrer alguma alterao,
ou seja, ela varivel. Por exemplo, pode-se denir uma varivel x dentro do algoritmo e neste algoritmo
este valor poder se alterar.
Pseudocdigo
A declarao de uma informao varivel em pseudocdigo ter a seguinte regra sinttica:
declarar
<nome da varivel> <tipo de dado da varivel> ;
Por exemplo:
declarar
x inteiro;
Pode-se tambm declarar vrias informaes variveis em pseudocdigo numa mesma linha se eles
forem todos do mesmo tipo, seguindo a seguinte regra sinttica, para NC nome da constante:
declarar
<NV> , <NV> , ... , <NV> <tipo de dado da varivel> ;
16
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Por exemplo:
declarar
telefone, idade, valor, cor alfanumrico;
No momento da declarao de um dado varivel em pseudocdigo, pode-se tambm inicializar a
varivel, assim a declarao com a inicializao ter a seguinte regra sinttica:
declarar
<nome da varivel> <valor de inicializao da varivel> <tipo de dado da varivel> ;
Por exemplo:
declarar
y 5 real;
Identicadores
Denio
Os identicadores so os nomes dados s informaes de um algoritmo ou programa, por exemplo,
nome da varivel, nome da constante, nome do programa, etc.
Por exemplo: pi, x, num_1, valor5, etc.
Os identificadores so nicos para uma determinada informao, por exemplo, um mesmo
identificador no pode ser usado para o nome de uma varivel e de uma constante, ou para o
nome de duas variveis de mesmo tipo ou de tipos diferentes. Uma vez que um identificador foi
usado para uma determinada informao, ele no pode ser usado novamente para identificar outra
informao.
Por exemplo:
declarar
x numrico_inteiro;
x numrico_real;
Este exemplo mostra o que no pode acontecer, ou seja, o identicador x declarado como um tipo
inteiro e depois como um tipo real. Um identicador pode possuir somente um tipo de informao.
Formato
Esses identicadores devem seguir as seguintes regras para serem vlidos:
17
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
todos os caracteres devem ser letras, nmeros ou o sublinhado (o nico caracter especial
permitido);
o primeiro caracter deve ser uma letra;
os demais caracteres podem ser letras, nmeros ou sublinhado;
no so permitidos caracteres especiais (com exceo do sublinhado) e o espao em branco;
palavras reservadas (de uma linguagem de programao ou do pseudocdigo) no devem ser
usados como identicadores.
Exemplos com constantes, variveis e identicadores em pseudocdigo
1. So identicadores vlidos:
num1, item5C, tipo_a2, A123, idade, telefone
2. So identicadores no vlidos:
1num, 5Citem, _tipoa2, _2valor, 123A, R$, nota/2, 5*, x&y
3. Declarao de constantes:
declarar
constante num1 9 numrico_inteiro;
constante x_2 -3.28, cor 7.4 numrico_real;
4. Declarao de variveis
declarar
um 5, dois numrico_inteiro;
maria, vlr9 numrico_real;
valor_4A alfabeto alfanumrico;
sexo, X987 lgico;
Expresses Aritmticas e Lgicas nos Algoritmos
Estudo dos operadores aritmticos e lgicos, bem como, das expresses aritmticas e lgicas nos
algoritmos.
Uma expresso aritmtica o conjunto de operadores e operandos dispostos numa determinada
ordem. Neste caso, os operadores podem ser aritmticos e os operandos podem ser constantes ou
variveis inteiras ou reais. O resultado de uma expresso aritmtica sempre ser numrico.
18
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Uma expresso lgica tambm um conjunto de operadores e operandos dispostos numa determinada
ordem. Neste caso, os operadores podem ser relacionais ou lgicos e os operandos podem ser relaes,
constantes ou variveis inteiras, reais, alfanumricas ou lgicas. O resultado de uma expresso lgica
sempre ser lgico, ou seja, verdadeiro ou falso.
Operadores aritmticos
Os operadores aritmticos pertencem a um conjunto de smbolos que representam as operaes
matemticas bsicas, que so:
Tabela 1 - Operadores aritmticos bsicos
Operador Funo Exemplo
+ adio 5 + 3
subtrao 2 a
* multiplicao b * c
/ diviso d / 10
Alm dos operadores aritmticos bsicos, consideram-se, para pseudocdigo, operadores aritmticos
auxiliares para outros clculos, que so:
Tabela 2 - Operadores aritmticos auxiliares
Operador Funo Exemplo Resultado
pot potenciao pot(2,3) 2
3
= 8
rad radiciao rad(9) 9= 3
mod resto da diviso 7 mod 3 resto = 1
div quociente da diviso 7 div 3 quociente = 2
Prioridades
Para resolver expresses aritmticas em pseudocdigo, deve-se obedecer a uma hierarquia de
prioridades entre operadores aritmticos que a seguinte:
parnteses mais internos
pot rad
* / div mod
+
Figura 3 - Prioridades entre operadores aritmticos.
19
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Operadores relacionais
Os operadores relacionais pertencem a um conjunto de smbolos que representam as comparaes
possveis entre dois valores de mesmo tipo de dados. Esses valores podem ser constantes, variveis ou
expresses aritmticas. Os operadores relacionais podem ser:
Tabela 3 - Operadores relacionais
Operador Funo Exemplo Resultado
> maior que 3 > 2 Verdadeiro
< menor que 3 < 2 Falso
>= maior ou igual a 5 2 >= 1 + 2 Verdadeiro
<= menor ou igual a 5 2 <= 1 + 2 Verdadeiro
= igual a 10 = 10 Verdadeiro
< > diferente de 10 < > 10 Falso
Prioridades
Para resolver expresses lgicas em pseudocdigo, no h uma hierarquia de prioridades entre
operadores relacionais que deve-se obedecer.
Operadores lgicos
Os operadores lgicos pertencem a um conjunto de smbolos que representam os conectivos bsicos.
Esses conectivos formam novas proposies compostas a partir de outras proposies simples. Os
operadores lgicos podem ser:
Tabela 4 - Operadores lgicos
Operador Funo
no negao
e conjuno
ou disjuno
Tabela Verdade
A Tabela Verdade determina todos os resultados possveis de uma combinao entre valores de
variveis lgicas. Esses resultados possuem somente dois valores: verdadeiro ou falso. Para exemplicar
o uso dos operadores lgicos, constri-se uma tabela verdade, que se segue:
20
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Tabela 5 - Tabela Verdade
A B no A A e B A ou B
V V F V V
V F F F V
F V V F V
F F V F F
Prioridades
Para resolver expresses lgicas em pseudocdigo, deve-se obedecer a uma hierarquia de prioridades
entre operadores lgicos que a seguinte:
no
e ou
Figura 4 - Prioridades entre operadores lgicos.
Prioridades entre Operadores
Para resolver expresses que contenham expresses lgicas e aritmticas, com operandos, operadores
aritmticos, lgicas e relacionais existe uma prioridade entre os operadores que a seguinte:
parnteses mais internos
operadores aritmticos
operadores relacionais
operadores lgicos
Figura 5 - Prioridades entre operadores lgicos.
Exemplo com operadores
1. Expresses aritmticas
a) 5 * 2 3 + 14 / 2 + 9
10 3 + 7 + 9
9
b) 5 pot(2,3) + 4 2 * rad(4)
5 8 + 4 2 * 2
5 8 + 4 4
3
21
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
2. Expresses lgicas com operadores relacionais e aritmticos
a) 5 * 2 = 4 + 10 / 2
10 = 4 + 5
10 = 9
F
b) 5 mod 2 + 3 < pot(3,2) * 10
1 + 3 < 9 * 10
4 < 90
V
3. Expresses lgicas com operadores lgicos, relacionais e aritmticos
a) 3 < 7 e 5 * 2 = 2 + 1
3 < 7 e 10 = 3
F e F
F
b) pot(2,3) <= rad(9) ou 2 * 3 6 / 3 = 4
8 <= 3 ou 6 2 = 4
F ou 4 = 4
F ou V
V
Estrutura Sequencial nos Algoritmos
Estudo da estrutura sequencial nos algoritmos.
Uma estrutura sequencial aquela em que as aes de um algoritmo so executadas numa ordem
sequencial, ou seja, de cima para baixo e da esquerda para a direita. Para o pseudocdigo adotado neste
livro, convenciona-se que o uso do ponto e vrgula (;) determina o nal de uma ao.
Operador de atribuio () e comandos de atribuio
O comando de atribuio, que no pseudocdigo representado pelo operador de atribuio ,
serve para atribuir um determinado valor para uma varivel, tendo o cuidado de vericar se o valor que
est sendo atribudo varivel tem o tipo de dado compatvel, ou seja, se uma varivel x foi declarada
como inteiro, s permitido atribuir valores inteiros varivel x.
Por exemplo, considere que as variveis x, y e z foram declaradas como do tipo inteiro:
x 25;
y x + 15 3;
z y x + rad(x) pot(y,2);
22
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Comandos de entrada e sada
Os comandos de entrada e sada so utilizados para que haja uma interao entre o algoritmo e o
usurio do algoritmo. Neste caso, com o comando de entrada, possvel que o usurio fornea dados
para serem processados pelo algoritmo e, com o comando de sada, possvel que o usurio veja o
resultado do processamento dos dados.
Pseudocdigo comandos de entrada
Para que o usurio possa entrar com dados num algoritmo, utiliza-se o comando de entrada. Por
exemplo, considere que uma varivel num foi declarada como do tipo real:
ler (num);
Pode-se tambm receber valores para vrias variveis com um mesmo comando de entrada. Por
exemplo, considere que as variveis num1, num2 e num3 foram declaradas como do tipo real:
ler (num1, num2, num3);
Pseudocdigo comandos de sada
Para que o usurio possa ver o resultado do processamento dos dados ou alguma mensagem
enviada pelo algoritmo, utiliza-se o comando de sada. Por exemplo, considere que uma varivel num
foi declarada como do tipo inteiro e o valor 5 lhe foi atribudo:
num 5;
escrever (num);
Ao invs de mostrar para o usurio o contedo de uma varivel, pode-se mostrar um dado
alfanumrico. Por exemplo:
escrever (Disciplina de Lgica de Programao);
Com o mesmo comando de sada, pode-se enviar uma mensagem cujo contedo seja a concatenao
de vrios dados alfanumricos, sejam eles do tipo alfanumricos ou da converso de outros tipos
de dados para o tipo alfanumrico. Por exemplo, considere que as variveis num1 e num2 foram
declaradas como do tipo inteiro e os valores 10 e 5 lhes foram, respectivamente, atribudos:
num1 10;
num2 5;
escrever (Maria tem , num1 , anos e Joo tem , num2 , anos);
23
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Blocos
Em pseudocdigo, um bloco tem seu incio com a palavra incio e seu trmino com a palavra m;.
Um algoritmo pode ser considerado um bloco, no entanto, seu trmino determinado com a palavra
m_algoritmo.
Por exemplo:
Algoritmo Exemplo
incio_algoritmo // incio do bloco ou algoritmo
Declarar
// declarao das variveis e/ou constantes
// sequncia dos comandos
m_algoritmo. // m do bloco ou algoritmo
Note que um algoritmo deve estar bem identado, isto , deve estar numa formao que facilite o
seu entendimento.
Estrutura sequencial
Uma estrutura sequencial aquela em que as aes de um algoritmo so executadas numa ordem
sequencial, ou seja, de cima para baixo e da esquerda para a direita. Para o pseudocdigo adotado neste
livro, convenciona-se que o uso do ponto e vrgula (;) determina o nal de uma ao.
Em pseudocdigo, a estrutura sequencial representa um conjunto de aes ou comandos que so
executados num determinado uxo.
Por exemplo:
Algoritmo Exemplo_Sequencial
incio_algoritmo
Declarar
x, y alfanumrico;
ler(x, y);
escrever(Voc digitou primeiro o , x);
escrever(Voc digitou logo em seguida o , y);
m_algoritmo.
Exemplos de estrutura sequencial em pseudocdigo
1. Desenvolva um algoritmo que receba, do usurio, dois nmeros reais e exiba a soma destes dois
nmeros.
24
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Algoritmo Soma
incio_algoritmo
Declarar
// declarao de variveis
n1, n2, soma real;
// mensagem ao usurio
escrever (Digite dois nmeros reais);
// entrada de dados
ler (n1 , n2);
// processamento de dados
soma n1 + n2;
// sada de resultados
escrever (A soma dos dois nmeros reais digitados : , soma);
m_algoritmo.
2. Desenvolva um algoritmo que receba, do usurio, dois nmeros inteiros, calcule e exiba a mdia
aritmtica destes dois nmeros.
Dica: a mdia aritmtica a
soma dos dois nmeros dividido por
dois, por isso, o resultado deve ser um
nmero real.
Algoritmo Media
incio_algoritmo
Declarar
// declarao de variveis
num1, num2 inteiro;
media real;
// mensagem ao usurio
escrever (Digite dois nmeros inteiros);
// entrada de dados
ler (num1 , num2);
// processamento de dados
media (num1 + num2) / 2;
// sada de resultados
escrever (A mdia dos dois nmeros digitados : , media);
m_algoritmo.
Estrutura de Deciso nos Algoritmos
Estudo das estruturas de deciso simples, composta e encadeada nos algoritmos.
25
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Quando se desenvolve um algoritmo ou programa estruturado, muitas vezes, precisa-se interferir no
uxo natural ou sequencial que o algoritmo deve seguir. No entanto, precisa-se saber controlar qual o uxo
que o algoritmo percorre do incio at o m de sua execuo. Para isso, utiliza-se os uxos de controle.
Uma estrutura de deciso um uxo de controle utilizado para decidir qual o uxo que o algoritmo
seguir. Esta condio representada por expresses lgicas e relacionais que podem ou no serem
satisfeitas, isto , podem retornar o valor verdadeiro ou falso.
Estrutura de Deciso Simples (se/ento)
Uma estrutura de deciso simples pode ser utilizada quando o algoritmo precisa testar determinada
condio antes de executar um conjunto de comandos. Neste caso, uma condio avaliada e se seu
resultado for verdadeiro, o conjunto de comandos dentro da estrutura se/ento executado. Por outro
lado, se o resultado da avaliao for falso, este conjunto de comandos no far parte do uxo de
execuo do algoritmo.
Na estrutura de deciso simples, utiliza-se as palavras se e ento que representam as palavras
principais desta estrutura e a palavra mse; para determinar o m do bloco de execuo desta estrutura.
Por exemplo:
se (var < 0)
ento
escreva(O nmero , var , negativo);
mse;
O resultado da execuo deste exemplo :
// se o valor de var for -5
O nmero 5 negativo
Estrutura de Deciso Composta (se/ento/seno)
Uma estrutura de deciso composta parecida com a estrutura de deciso simples. A diferena entre
as duas estruturas que a primeira pode ser utilizada quando o algoritmo precisa testar determinada
condio, cujos resultados podem ser verdadeiro ou falso, antes de executar um conjunto de comandos.
Neste caso, uma condio avaliada e se seu resultado for verdadeiro, o conjunto de comandos dentro
da estrutura se/ento executado. Por outro lado, se o resultado da avaliao for falso, o conjunto de
comandos dentro da estrutura seno executado.
Na estrutura de deciso composta, utiliza-se as palavras se, ento e seno que representam as
palavras principais desta estrutura e a palavra mse; para determinar o m do bloco de execuo desta
estrutura. Por exemplo:
26
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
se (var < 0)
ento
escreva(O nmero , var , negativo);
seno
escreva(O nmero , var , no negativo);
mse;
O resultado da execuo deste exemplo :
// se o valor de var for 5
O nmero 5 no negativo
// se o valor de var for -5
O nmero 5 negativo
Estrutura de Deciso Encadeada (se/ ento ... / seno ...)
Diz-se que uma estrutura de deciso encadeada se h estruturas de decises dentro de outras
estruturas de decises. No existe limite para a estrutura de deciso encadeada, pode-se ter quantas
estruturas de deciso encadeadas forem necessrias. Por exemplo:
se (var < 0)
ento
escreva(O nmero , var , negativo);
seno
se (var = 0)
ento
escreva(O nmero , var , nulo); seno
escreva(O nmero , var , positivo);
mse; // do var = 0
mse; // do var < 0
O resultado da execuo deste exemplo :
// se o valor de var for 5
O nmero 5 positivo
// se o valor de var for -5
O nmero 5 negativo
// se o valor de var for 0
O nmero 0 nulo
27
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Exemplos de estrutura de deciso simples, composta e encadeada em pseudocdigo
1. Desenvolva um algoritmo que receba, do usurio, um valor alfanumrico, verica e exiba a
informao se este caracter uma vogal.
Algoritmo Vogal
incio_algoritmo
Declarar
// declarao de variveis e/ou constantes
vog alfanumrico;
escrever (Digite um valor alfanumrico);
ler (vog);
se (vog = a ou vog = e ou vog = i ou vog = o ou vog =u)
ento
escrever (O caracter , vog , uma vogal.);
seno
escrever (O caracter , vog , no uma vogal.);
mse;
m_algoritmo.
2. Desenvolva um algoritmo que receba, do usurio, dois valores reais, exiba a soma destes dois
nmeros, verique e exiba a informao se a soma positiva ou no positiva.
Algoritmo Soma
incio_algoritmo
Declarar
// declarao de variveis e/ou constantes
num1, num2, soma real;
escrever (Digite dois nmeros reais);
ler (num1, num2);
soma num1 + num2;
se (soma > 0)
ento
escrever (A soma de , num1 , com , num2 , igual a , soma , que positiva);
seno
escrever (A soma de , num1 , com , num2 , igual a , soma , que no positiva);
mse;
m_algoritmo.
Estrutura de Mltipla Escolha nos Algoritmos
Estudo da estrutura de mltipla escolha simples e encadeada nos algoritmos.
28
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Uma estrutura de mltipla escolha tambm uma estrutura de deciso em que um uxo de controle
utilizado para decidir qual o uxo que o algoritmo seguir. Uma estrutura de mltipla escolha determina
qual conjunto de comandos ou bloco ser executado aps uma opo ser avaliada e um caso para essa
opo for detectada. Esta opo representada por valores de quaisquer tipos de dados conhecidos.
Note que somente um caso executado, dentre todos os casos da estrutura de mltipla escolha.
Estrutura de Mltipla Escolha Simples
Uma estrutura de deciso de mltipla escolha pode ser utilizada quando o algoritmo precisa testar
um conjunto de valores diferentes antes de executar um conjunto de comandos associado a esses
valores. Neste caso, uma opo avaliada, seu resultado vericado dentro de um conjunto de casos
e o conjunto de comandos dentro do caso relacionado opo avaliada executada como parte do
uxo de execuo do algoritmo. Numa estrutura de mltipla escolha, o tipo de dado da opo precisa,
necessariamente, ser do mesmo tipo dos casos relacionados.
Na estrutura de mltipla escolha simples, utiliza-se as palavras escolha, caso e caso contrrio que
representam as palavras principais desta estrutura e a palavra mescolha; para determinar o m do
bloco de execuo desta estrutura. Por exemplo:
escolha (var)
caso 1 : escrever (O valor da varivel var 1);
caso 2 : escrever (O valor da varivel var 2);
caso 3 : escrever (O valor da varivel var 3);
caso contrrio : escrever (O valor da varivel var no nem 1, nem 2, nem 3);
mescolha;
Note que o uso do comando caso contrrio serve para os valores no previstos que a varivel var
possa assumir.
O resultado da execuo deste exemplo :
// se o valor de var for 1
O valor da varivel var 1
// se o valor de var for 2
O valor da varivel var 2
// se o valor de var for 3
O valor da varivel var 3
// se o valor de var for 4
O valor da varivel var no nem 1, nem 2, nem 3
29
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Numa estrutura de mltipla escolha, os valores escolhidos para cada caso no precisam ser nicos,
isto , cada caso da estrutura pode ser representado por um conjunto de valores especcos. Por exemplo,
um caso pode ter o valor 1, outro caso, os valores 2, 3 e 4, outro caso, os valores 7, 15 e 25 e outro caso
com os valores 8, 11, 12, 13 e 14:
escolha (var)
caso 1 : escrever (O valor da varivel var 1);
caso 2 .. 4 : escrever (O valor da varivel var pode ser 2, 3 ou 4);
caso 7, 15, 25 : escrever (O valor da varivel var pode ser 7, 15 ou 25);
caso 8, 11 .. 14 : escrever (O valor da varivel var pode ser 8 , 11, 12, 13 ou 14);
caso contrrio : escrever (opo invlida.);
mescolha;
O resultado da execuo deste exemplo :
// se o valor de var for 1
O valor da varivel var 1
// se o valor de var for 2
O valor da varivel var pode ser 2, 3 ou 4
// se o valor de var for 7
O valor da varivel var pode ser 7, 15 ou 25
// se o valor de var for 8
O valor da varivel var pode ser 8 , 11, 12, 13 ou 14
// se o valor de var for 100
Opo Invlida
Estrutura de Mltipla Escolha Encadeada
Uma estrutura de mltipla escolha encadeada pode ser utilizada quando o algoritmo precisa testar
um conjunto de valores diferentes antes de executar um conjunto de comandos associados a esses
valores. Por exemplo:
escolha (var)
caso 1 .. 3 : escolha (var)
caso 1 , 2 : escolha (var)
caso 1 : escrever (o valor da varivel var 1);
caso 2 : escrever (o valor da varivel var 2);
caso contrrio : escrever (opo invlida);
mescolha;
30
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
caso 3 : escrever (o valor da varivel var 3);
caso contrrio : escrever (opo invlida);
mescolha;
caso 4 , 5 : escolha (var)
caso 4 : escrever (o valor da varivel var 4);
caso 5 : escrever (o valor da varivel var 5);
caso contrrio : escrever(opo invlida);
mescolha;
caso 6 : escrever (o valor da varivel var 6);
caso contrrio : escrever (opo invlida);
mescolha;
O resultado da execuo deste exemplo :
// se o valor de var for 1
O valor da varivel var 1
// se o valor de var for 2
O valor da varivel var 2
// se o valor de var for 3
O valor da varivel var 3
// se o valor de var for 4
O valor da varivel var 4
// se o valor de var for 5
O valor da varivel var 5
// se o valor de var for 6
O valor da varivel var 6
// se o valor de var for 7
Opo Invlida
Exemplos de Estrutura de Mltipla Escolha em pseudocdigo
1. Desenvolva um algoritmo que recebe quatro notas bimestrais, calcula e mostra a mdia aritmtica
destas quatro notas, bem como, se o aluno foi aprovado (mdia >= 7), reprovado (mdia < 3), em
exame (mdia >= 3 ou mdia <7) ou aprovado com louvor (mdia = 10)
Algoritmo MediaAritmetica
incio_algoritmo
Declarar // declarao de variveis e/ou constantes
31
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
n1, n2, n3, n4, media real;
escrever (Digite as quatro notas bimestrais); // mensagem ao usurio
ler (n1 , n2 , n3 , n4); // entrada de dados
media ! (n1 + n2 + n3 + n4) / 4; // processamento de dados
escrever (A mdia : , media); // sada de resultados
// processamento de dados
escolha (media)
caso 7 .. 10 : se (media = 10)
ento
escrever(Aluno aprovado com louvor); // sada de resultados
seno
escrever (Aluno aprovado); // sada de resultados
mse;
caso 0 .. 2.9 : escrever (Aluno reprovado); // sada de resultados
caso 3 .. 6.9 : escrever (Aluno em exame); // sada de resultados
caso contrrio : escrever (mdia invlida);; // sada de resultados
mescolha;
m_algoritmo.
2. Desenvolva um algoritmo que recebe o preo de um produto e seu cdigo de origem e mostre o
preo do produto junto de sua procedncia, conforme tabela abaixo:
cdigo de origem regio de procedncia
1 Norte
2, 5, 9 Sul
3 , 10 at 15 Leste
7 ou 20 Oeste
qualquer outro Importado
Algoritmo Produto
incio_algoritmo
Declarar // declarao de variveis e/ou constantes
preco real;
codigo inteiro;
escrever (Digite o preo e o cdigo de origem do produto); // mensagem ao usurio
ler (preco, codigo); // entrada de dados
// processamento de dados
escolha (codigo)
caso 1 : escrever (preco , - Norte); // sada de resultados
caso 2, 5, 9 : escrever (preco , - Sul); // sada de resultados
caso 3, 10 .. 15 : escrever (preco , - Leste); // sada de resultados
caso 7 , 20 : escrever (preco , - Oeste); // sada de resultados
caso contrrio : escrever (preco , - Importado); // sada de resultados
32
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
mescolha;
m_algoritmo.
Estruturas de Repetio do Enquanto nos Algoritmos
Estudo das estruturas de repetio do enquanto simples e encadeada nos algoritmos.
Uma estrutura de repetio um uxo de controle utilizado para decidir quantas vezes determinado
conjunto de comandos se repetir dentro do algoritmo.
Tem-se trs tipos de estrutura de repetio: enquanto, faa/enquanto e para. Cada uma dessas
estruturas de repetio pode ser simples ou encadeada.
Uma estrutura de repetio enquanto pode ser utilizada quando o algoritmo precisa testar
determinada condio antes de executar um conjunto de comandos repetidas vezes. Neste caso, uma
condio avaliada e se seu resultado for verdadeiro, o conjunto de comandos dentro da estrutura de
repetio enquanto executado e aps esta execuo, a condio novamente avaliada. Por outro
lado, se o resultado da avaliao for falso, este conjunto de comandos no ser executado e o uxo do
algoritmo segue normalmente.
Na estrutura de repetio enquanto, utiliza-se as palavras enquanto e faa que representam
as palavras principais desta estrutura e a palavra menquanto; para determinar o m do bloco de
execuo desta estrutura. Por exemplo:
x 0;
enquanto (x<3) faa
escreva (O valor de x : , x);
x x + 1;
menquanto;
O resultado da execuo deste exemplo :
O valor de x 0
O valor de x 1
O valor de x 2
Encadeamento
Na estrutura de repetio enquanto, utiliza-se as palavras enquanto e faa que representam
as palavras principais desta estrutura e a palavra menquanto; para determinar o m do bloco de
execuo desta estrutura. Por exemplo:
33
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Desenvolva um algoritmo que calcula o fatorial dos nmeros inteiros de 5 at 15.
Algoritmo ExemploEnquanto
incio_algoritmo
Declarar
i, num, fat inteiro;

num 5; // entrada de dados
// processamento de dados
enquanto (num <= 15) faa
fat num;
i num 1;
enquanto (i > 1) faa
fat fat * i;
i i 1;
menquanto;
escreva (O valor do fatorial de , num , , fat); // sada de dados
num num + 1;
menquanto;
m_algoritmo.
Exemplo de Estrutura de Repetio Enquanto em pseudocdigo
1. Desenvolva um algoritmo que calcula a soma de todos os nmeros compreendidos entre 1 e 100.
// na estrutura de repetio enquanto
Algoritmo Soma
Declarar
i, s 0 inteiro;
i 1;
enquanto (i <= 100) faa
s s + i;
i i + 1;
menquanto;
escreva (A somatria de 1 at 100 , s);
m_algoritmo.
2. Desenvolva um algoritmo que calcula a soma de todos os nmeros pares compreendidos entre 1
e 100.
// na estrutura de repetio enquanto
34
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Algoritmo Soma
Declarar
i, s 0 inteiro;
i 1;
enquanto (i <= 100) faa
se ((i mod 2) = 0)
ento
s s + i;
mse;
i i + 1;
menquanto;
escreva (A somatria dos nmeros pares de 1 at 100 , s);
m_algoritmo.
Estruturas de Repetio do faa/enquanto
Estudo das estruturas de repetio do faa/enquanto simples e encadeada nos algoritmos.
Faa/Enquanto
Uma estrutura de repetio faa/enquanto pode ser utilizada quando o algoritmo precisa testar
determinada condio depois de executar um conjunto de comandos, passando por esses passos
repetidas vezes.
Na estrutura de repetio faa/enquanto, utiliza-se as palavras faa e enquanto que representam
as palavras principais desta estrutura e a prpria palavra enquanto determinar o m do bloco de
execuo desta estrutura. Por exemplo:
x 0;
faa
escreva (O valor de x : , x);
x x + 1;
enquanto (x<3);
Resultado da execuo deste exemplo:
O valor de x 0
O valor de x 1
O valor de x 2
Para um melhor entendimento do encadeamento nas estruturas de repetio faa/enquanto,
observe o seguinte exemplo:
35
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Desenvolva um algoritmo que calcula o fatorial dos nmeros inteiros de 5 at 15.
Algoritmo ExemploFacaEnquanto
incio_algoritmo
Declarar
i, num, fat inteiro;

num 5; // entrada de dados
// processamento de dados
faa
fat num;
i num 1;
faa
fat fat * i;
i i 1;
enquanto (i > 1);
escreva (O valor do fatorial de , num , , fat); // sada de dados
num num + 1;
enquanto (num <= 15);
m_algoritmo.
Exemplo de Estrutura de Repetio Faa/Enquanto em pseudocdigo
1. Desenvolva um algoritmo que calcula a soma de todos os nmeros compreendidos entre 1 e 100.
// na estrutura de repetio faa/enquanto
Algoritmo Soma
Declarar
i, s 0 inteiro;
i 1;
faa
s s + i;
i i + 1;
enquanto (i <= 100);
escreva (A somatria de 1 at 100 , s);
m_algoritmo.
2. Desenvolva um algoritmo que calcula a soma de todos os nmeros pares compreendidos entre 1
e 100.
// na estrutura de repetio faa/enquanto
36
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Algoritmo Soma
Declarar
i, s 0 inteiro;
i 1;
faa
se ((i mod 2) = 0)
ento
s s + i;
mse;
i i + 1;
enquanto (i <= 100);
escreva (A somatria dos nmeros pares de 1 at 100 , s);
m_algoritmo.
Exerccios 1
1. Desenvolva um algoritmo que receba dois nmeros inteiros e mostre a soma desses nmeros.
2. Desenvolva um algoritmo que receba dois nmeros inteiros e mostre o quociente e o resta da
diviso do primeiro nmero pelo segundo.
3. Desenvolva um algoritmo que receba seu nome e sobrenome e mostre essas informaes
concatenadas.
4. Desenvolva um algoritmo que receba um nmero e verique se ele par ou mpar.
5. Desenvolva um algoritmo que receba uma nota e verique se com essa nota o aluno foi aprovado
(nota >= 5), reprovado (nota < 3) ou em recuperao (nota < 5 e nota >= 3).
6. Desenvolva um algoritmo que receba um ms e verique se ele corresponde ao primeiro semestre
ou ao segundo semestre.
7. Desenvolva um algoritmo que recebe um ms e verique se ele corresponde ao primeiro, segundo,
terceiro ou quarto trimestre.
8. Desenvolva um algoritmo que receba um dia da semana e mostre suas tarefas nesses dias.
9. Desenvolva um algoritmo que recebe dez nmero e mostre a soma desses nmeros.
10. Desenvolva um algoritmo que receba quinze nmeros e mostre a soma dos nmeros pares.
11. Desenvolva um algoritmo que receba um nmero e calcule o fatorial desse nmero.
12. Desenvolva um algoritmo que receba um nmero e mostre o resultado da tabuada desse nmero.
37
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
13. Desenvolva um algoritmo que recebe vinte nmeros e mostre o maior desses nmeros.
14. Desenvolva um algoritmo que receba dois nmeros e calcule a soma do quadrado desses
nmeros.
15. Desenvolva um algoritmo que receba dois nmeros e calcule a soma do cubo desses nmeros.
16. Desenvolva um algoritmo que receba um nmero e mostre a raiz quadrada desse nmero.
17. Desenvolva um algoritmo que receba duas notas e mostre a mdia aritmtica dessas notas.
18. Desenvolva um algoritmo que um nmero inteiro e verique se esse nmero divisvel por 3.
19. Desenvolva um algoritmo que receba a medida do lado de um quadrado e mostre sua rea.
20. Desenvolva um algoritmo que receba o raio de uma circunferncia e calcule a medida do seu
comprimento.
21. Desenvolva um algoritmo que receba o raio de um crculo e mostre sua rea.
22. Desenvolva um algoritmo que receba trinta nmero e mostre a soma desses nmeros.
23. Desenvolva um algoritmo que calcula o quadrado do nmeros de 10 a 20.
24. Desenvolva um algoritmo que receba a idade de vinte pessoas e mostre a idade da pessoa mais
nova.
25. Desenvolva um algoritmo que receba dez nmeros e calcule a mdia desses dez nmeros.
Estrutura de Repetio do para
Estudo das estruturas de repetio do para simples nos algoritmos.
Estrutura de repetio do Para no pseudocdigo
Uma estrutura de repetio para pode ser utilizada quando o algoritmo precisa ter denido a
quantidade de vezes que um conjunto de comandos deve ser executado.
Na estrutura de repetio para, utiliza-se as palavras para, de, at, passo, faa que representam
as palavras principais desta estrutura e a palavra mpara; para determinar o m do bloco de execuo
desta estrutura. Por exemplo:
38
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
para x de 0 at 2 passo +1 faa
escreva (O valor de x : , x);
mpara;
O resultado da execuo deste exemplo :
O valor de x 0
O valor de x 1
O valor de x 2
Encadeamento
Na estrutura de repetio para, utiliza-se as palavras para, de, at, passo, faa que representam
as palavras principais desta estrutura e a palavra mpara; para determinar o m do bloco de execuo
desta estrutura.
Para um melhor entendimento do encadeamento nas estruturas de repetio para, observe o
seguinte exemplo:
Desenvolva um algoritmo que calcula o fatorial dos nmeros inteiros de 5 at 15.
Algoritmo ExemploPara
incio_algoritmo
Declarar
i, num, fat inteiro;

// processamento de dados
para num de 5 at 15 passo +1 faa
fat num;
para i de (num 1) at 2 passo 1 faa
fat fat * i;
mpara;
escreva (O valor do fatorial de , num , , fat); // sada de dados
mpara;
m_algoritmo.
Exemplo de Estrutura do Para em pseudocdigo
1. Desenvolva um algoritmo que calcula a soma de todos os nmeros compreendidos entre 1 e 100.
// na estrutura de repetio para
Algoritmo Soma
Declarar
39
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
i, s 0 inteiro;
para i de 1 at 100 passo +1 faa
s s + i;
mpara;
escreva (A somatria de 1 at 100 , s);
m_algoritmo.
2. Desenvolva um algoritmo que calcula a soma de todos os nmeros pares compreendidos entre 1
e 100.
// na estrutura de repetio para
Algoritmo Soma
Declarar
i, s 0 inteiro;
para i de 1 at 100 passo +1 faa
se ((i mod 2) = 0)
ento
s s + i;
mse;
mpara;
escreva (A somatria dos nmeros pares de 1 at 100 , s);
m_algoritmo.
Estrutura de Repetio do enquanto, faa/enquanto e para
Desenvolva um algoritmo que mostra um menu de opes para: calcular a soma de todos os nmeros
compreendidos entre 1 e 100; calcular a soma de todos os nmeros pares compreendidos entre 1 e 100;
e calcular a soma de todos os nmeros divisveis por 3.
Algoritmo Soma
Declarar
op, i, s 0 inteiro;
faa
escreva (Digite 1 para soma de todos os nmeros entre 1 e 100\n);
escreva (Digite 2 para soma de todos os nmeros pares entre 1 e 100\n);
escreva (Digite 3 para soma de todos os nmeros divisveis por 3 entre 1 e 100\n);
escreva (Digite 0 para sair do programa\n);
leia (op);
escolha (op)
caso 1 : incio
i 1;
enquanto (i <= 100) faa
40
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
s s + i;
i i + 1;
menquanto;
escreva (A somatria de 1 at 100 , s);
m;
caso 2 : incio
i 1;
faa
se ((i mod 2) = 0)
ento
s s + i;
mse;
i i + 1;
enquanto (i <= 100);
escreva (A somatria dos nmeros pares de 1 at 100 , s);
m;
caso 3 : incio
para i de 1 at 100 passo +1 faa
se ((i mod 3) = 0)
ento
s ! s + i;
mse;
mpara;
escreva (A somatria dos nmeros divisveis por 3 de 1 at 100 , s);
m;
caso 0 : incio
escreva (Saindo do programa!);
m;
caso contrrio : escreva (opo invlida, tente novamente);
mescolha;
enquanto (op <> 0);
m_algoritmo.
Estrutura de Vetores
Estudo das estruturas de vetores nos algoritmos.
Uma estrutura de dados homognea uma estrutura capaz de armazenar vrias informaes de um
mesmo tipo de dado. Assim, com um nico nome declarado para esta estrutura, podem-se manipular
vrias informaes.
Existem dois tipos de estrutura de dados homognea: vetores e matrizes.
41
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Denio de vetor
Um vetor um conjunto de informaes de um mesmo tipo de dado. Note que vetor um nome
particular dado matriz unidimensional. Por exemplo, considere uma leira de 5 carteiras de uma sala
de aula representando uma estrutura de dados e cada uma das carteiras representando parties dessa
estrutura. Em outras palavras, a leira de carteiras um vetor e cada carteira um elemento deste vetor.
Pode-se representar, gracamente, este vetor da seguinte forma:
Vet
0 1 2 3 4
carteira1 carteira2 carteira3 carteira4 carteira5
Declarao de vetor
Os tipos de dados que sero armazenados e o nmero de elementos que o comporo so as primeiras
informaes que devem ser conhecidas, quando da declarao de um vetor.
Por exemplo,
Declarar
Vet_exemplo [100] inteiro;
Exemplo de vetor
Para exemplicar, gracamente, pense num vetor chamado notas, de 10 posies, contendo notas
nais de 10 alunos. Como est se considerando notas, ento determina-se que essas informaes so
do tipo real.
notas
0 1 2 3 4 5 6 7 8 9
9.5 10.0 8.5 5 8 7.5 6 9 8.5 7
Atribuindo valores ao vetor
Quando se atribui valores ao vetor, precisa-se saber qual o tipo de dados das informaes que sero
armazenadas no vetor e o nmero de elementos desse vetor. Por exemplo:
notas [0] 9.5;
Pode-se tambm atribuir valores no momento da declarao do vetor, por exemplo:
Declarar
notas [3] { 9.5 , 10.0 , 8.5} real;
42
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Mostrando os elementos de um vetor
Num vetor, os valores so mostrados para cada posio do vetor e a forma de mostrar os elementos
na tela a mesma de qualquer varivel ou constante. Por exemplo:
escrever (notas [0]);
Estrutura de Vetores
Estudo das estruturas de vetores nos algoritmos.
1. Desenvolva um algoritmo que recebe 25 valores numricos inteiros e mostra esses nmeros.
Algoritmo Mostrar
incio_algoritmo
Declarar // declarao de variveis e/ou constantes
Vet [25] , i inteiro;
// processamento de dados
para i de 0 at 24 passo + 1 faa
escrever (Digite um valor inteiro); // mensagem ao usurio
ler (Vet[i]); // entrada de dados
escrever (Vet[i]);// sada de resultados
mpara;
m_algoritmo.
2. Desenvolva um algoritmo que recebe 100 valores numricos inteiros e mostre a soma destes 100
nmeros.
Algoritmo Somar
incio_algoritmo
Declarar // declarao de variveis e/ou constantes
VetSoma [100] , i , soma ! 0 inteiro;
// processamento de dados
para i de 0 at 99 passo + 1 faa
escrever (Digite um valor inteiro); // mensagem ao usurio
ler (VetSoma[i]); // entrada de dados
soma ! soma + VetSoma[i];
mpara;
escrever (A soma dos 100 valores digitados : , soma); // sada de resultados
m_algoritmo.
43
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
3. Desenvolva um algoritmo que recebe 50 notas bimestrais, calcule e mostre a mdia aritmtica
destas 50 notas.
Algoritmo MediaAritmetica
incio_algoritmo
Declarar // declarao de variveis e/ou constantes
i inteiro;
Notas [50] , media, soma 0 real;
// processamento de dados
para i de 0 at 49 passo + 1 faa
escrever (Digite uma nota); // mensagem ao usurio
ler (Notas[i]); // entrada de dados
soma soma + Notas[i];
mpara;
media soma/50; // processamento de dados
escrever (A mdia das 50 notas digitadas : , media); // sada de resultados
m_algoritmo.
Conceitos de Modularizao
Estudo dos conceitos introdutrios de modularizao nos algoritmos.
Necessidade da modularizao em programas
Um dos pontos principais para o uso da modularizao a diviso do algoritmo em mdulos para
que ele seja melhor interpretado e desenvolvido. A diviso em mdulos facilita o entendimento parcial
do problema e entendendo todos os problemas parciais, no nal, tem-se entendido o problema maior.
Nesse contexto da modularizao, outro ponto essencial a possibilidade de se reutilizar cdigos, o
que se d por meio da chamada de cdigo, uma cpia do algoritmo que se deseja repetir, quando se
desenvolve determinado mdulo.
Construo de mdulos
Para construir os mdulos, primeiro precisa-se analisar o problema e dividi-lo em partes principais,
que so os mdulos. Por m, precisa-se analisar todos os mdulos e o problema geral para garantir que
o algoritmo mais os mdulos resolvem o problema de forma simples.
Por exemplo, suponha que se quer desenvolver um algoritmo que recebe dois valores numricos
e uma opo do usurio que decide qual entre as quatro operaes bsicas da matemtica (soma,
subtrao, diviso e multiplicao) ele quer resolver.
Analisando este problema, pode-se dividi-lo em subproblemas, por exemplo, um menu de opes
para que o usurio possa escolher uma operao matemtica, o clculo da soma, o clculo da subtrao,
44
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
o clculo da diviso e o clculo da multiplicao. Tem-se assim cinco mdulos para resolver o nosso
problema.
Escopo de variveis
O escopo de uma varivel constitui, na essncia, o reconhecimento dessa varivel dentro de um
algoritmo, a qual se divide em dois tipos: varivel global e varivel local.
Uma varivel global aquela declarada no incio do algoritmo e pode ser utilizada por qualquer parte
deste algoritmo, seja nos comandos do prprio algoritmo bem como dentro de qualquer mdulo que
pertena ao algoritmo. Neste caso, sua declarao feita apenas uma nica vez, no sendo permitido
que o mesmo nome de varivel seja declarado dentro de qualquer outra parte do algoritmo, por exemplo,
dentro de qualquer outro mdulo.
Uma varivel local aquela declarada dentro de algum bloco, por exemplo, dentro de um mdulo. Neste
caso, esta varivel vlida e reconhecida somente dentro do bloco em que foi declarada. Assim, o mesmo nome
de varivel pode ser declarado dentro de diferentes blocos, pois sero reconhecidas como uma nova varivel.
Procedimentos e Funes
Estudo dos procedimentos e funes nos algoritmos.
Mdulos Procedimento
Os mdulos procedimento so os mdulos que no retornam valor para o mdulo ou algoritmo
que os tenham chamado. Neste sentido, esse tipo de mdulo utilizado quando o algoritmo principal
ou mdulo que chama o mdulo procedimento no necessita de retorno de qualquer dado do mdulo.
Nos mdulos procedimento, utiliza-se as palavras incio_algoritmo e mmdulo que representam
as palavras principais deste mdulo, ou seja, o incio e o m do mdulo, respectivamente.
Por exemplo, suponha que se quer desenvolver um mdulo que imprime o nome da disciplina e o
nome da instituio de ensino:
Dados ()
incio
Declarar
disc, fac alfanumrico;

disc Lgica de Programao;
fac IBTA;
escreva (nome da disciplina => , disc);
escreva (nome da instituio de ensino => , fac);
mmdulo;
45
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Mdulos Funo
Os mdulos funo so os mdulos que retornam algum valor para o mdulo ou algoritmo que
os tenham chamado. Neste sentido, esse tipo de mdulo utilizado quando o algoritmo principal ou
mdulo que chama o mdulo funo necessita de retorno de qualquer dado do mdulo.
Nos mdulos funo, utilizam-se as palavras incio e mmdulo que representam as palavras
principais deste mdulo, que representam o incio e o m do mdulo, respectivamente. Alm dessas
palavras, utiliza-se a palavra retornar que a principal palavra do mdulo funo, pois a partir deste
comando que um valor retornado para o algoritmo ou mdulo que o chamou.
Note que os comandos dentro do mdulo so comuns queles de qualquer algoritmo, ou seja, com
entrada de dados, processamento desses dados e sada de resultados. Note ainda que o valor de retorno
enviado pelo comando retornar precisa ser do mesmo tipo de dado declarado para o mdulo funo.
Por exemplo, suponha que se quer desenvolver um mdulo que imprime o nome da disciplina e o
nome da instituio de ensino:
alfanumrico Dados ( )
incio
Declarar
disc, fac, mens alfanumrico;

disc Lgica de Programao;
fac IBTA;
mens nome da disciplina => + disc + \nnome da instituio de ensino => + fac;
retornar mens;
mmdulo;
Procedimentos e Funes Parametrizados
Estudo dos procedimentos e funes parametrizados nos algoritmos.
Parametrizao de mdulos
Cada mdulo interage com o mdulo principal ou mesmo com outros mdulos e, muitas vezes,
quando os mdulos so chamados h a necessidade de enviar dados para que esses mdulos possam
resolver o seu subproblema. Esses dados que so enviados para os mdulos so chamados de argumentos
que so passados como parmetros aos mdulos.
dentro dos parnteses que os argumentos so passados como parmetros aos mdulos.
46
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Quando se passa argumentos como parmetros, precisa-se identicar qual o tipo de dado ser
passado como parmetro. Neste caso, cada argumento dever ser declarado no momento que o mdulo
for desenvolvido.
Nos mdulos procedimento, utilizarem-se as palavras incio e mmdulo que representam as
palavras principais deste mdulo, ou seja, o incio e o m do mdulo, respectivamente.
Por exemplo, suponha que se quer desenvolver um mdulo que imprime o nome da disciplina e o
nome da instituio de ensino:
Dados (alfanumrico disc , alfanumrico fac)
incio
escreva (nome da disciplina => , disc);
escreva (nome da instituio de ensino => , fac);
mmdulo;
Chamada dos mdulos
Para o mdulo procedimento, basta fazer a chamada deste mdulo pelo nome do mdulo, passando
os respectivos dados como argumento se for necessrio.
Para o mdulo funo, a chamada deste mdulo precisa estar vinculada a uma varivel, ou seja, o
retorno de dado da chamada do mdulo funo deve ser atribudo a uma varivel cujo tipo de dado
deve ser o mesmo que o dado que est sendo retornado. Neste caso, a passagem de dados como
argumentos, se for necessrio, no se difere do mdulo procedimento.
Mdulo procedimento sem parametrizao
A chamada dos mdulos procedimento sem parametrizao em pseudocdigo segue a seguinte
regra sinttica:
<nome do mdulo> ();
Por exemplo, a chamada do mdulo que imprime o nome da disciplina e o nome da instituio de
ensino desenvolvido anteriormente:
Dados ( );
Mdulo funo sem parametrizao
A chamada dos mdulos procedimento sem parametrizao em pseudocdigo segue o seguinte
exemplo:
47
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
A chamada do mdulo que imprime o nome da disciplina e o nome da instituio de ensino
desenvolvido anteriormente:
alfanumrico m;
m Dados ( );
Mdulo procedimento com parametrizao
A chamada dos mdulos procedimentos com parametrizao em pseudocdigo segue o exemplo:
A chamada do mdulo que imprime o nome da disciplina e o nome da instituio de ensino
desenvolvido anteriormente:
Dados (Lgica de Programao , Tcnico);
Mdulo funo com parametrizao
A chamada dos mdulos funo com parametrizao em pseudocdigo segue o seguinte exemplo:
A chamada do mdulo que imprime o nome da disciplina e o nome da instituio de ensino
desenvolvido anteriormente:
alfanumrico m;
m Dados (Lgica de Programao , Tcnico);
Exemplos de Modularizao em Algoritmos
Exemplos de funes e procedimentos em pseudocdigo.
1. Desenvolva um algoritmo que recebe dois valores inteiro e o smbolo da operao conforme
tabela abaixo, calcula e mostra a operao efetuada:
Smbolo da operao Nome da operao
+ adio
- subtrao
* multiplicao
/ diviso
// mdulo funo Mais que recebe dois valores inteiros e retorna um valor inteiro
inteiro Mais (n1 inteiro , n2 inteiro)
incio
Declarar // declarao de variveis que s podem ser usados dentro deste mdulo
res inteiro;
48
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
res ! n1 + n2; // processamento de dados
retornar res; // retorno do mdulo
mmdulo; // Mais
// mdulo procedimento Menos que recebe dois valores inteiros
Menos (n1 inteiro, n2 inteiro)
incio
Declarar // declarao de variveis que s podem ser usados dentro deste mdulo
res inteiro;
res ! n1 - n2; // processamento de dados
escrever (A diferena de , n1 , com , n2 , , res); // sada de resultados
mmdulo; // Menos
// mdulo procedimento Vezes que recebe dois valores inteiros
Vezes (n1 inteiro, n2 inteiro)
incio
Declarar // declarao de variveis que s podem ser usados dentro deste mdulo
res inteiro;
res ! n1 * n2; // processamento de dados
escrever (O produto de , n1 , com , n2 , , res); // sada de resultados
mmdulo; // Vezes
// mdulo funo Dividido que recebe dois valores inteiros e retorna um valor real
real Dividido (n1 inteiro, n2 inteiro)
incio
Declarar // declarao de variveis que s podem ser usados dentro deste mdulo
res real;
res ! n1 / n2; // processamento de dados
retornar res; // retorno do mdulo
mmdulo; // Dividido
// mdulo principal
Algoritmo Calculo
incio_algoritmo
Declarar // declarao de variveis e/ou constantes que podem ser usados no algoritmo Calculo
div real;
soma, num1, num2 inteiro;
oper alfanumrico;
escrever (Digite dois inteiros e a operao); // mensagem ao usurio
ler (num1, num2, oper); // entrada de dados
// processamento de dados
escolha (oper)
caso + : /* chamada do mdulo funo Mais, passando num1 e num2 como parmetro
e atribuindo o retorno do mdulo na varivel soma */
49
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
soma Mais(num1 , num2);
escrever (A soma de , num1 , com , num2 , , soma); // sada de resultados
caso - : /* chamada domdulo procedimento Menos, passando num1 e num2 como
parmetro*/
Menos (num1 , num2);
caso * : /* chamada do mdulo procedimento vezes, passando num1 e num2 como
parmetro */
Vezes (num1 , num2);
caso / : /* chamada do mdulo funo Dividido, passando num1 e num2 como
parmetro e atribuindo o retorno do mdulo na varivel div */
div ! Dividido (num1 , num2);
escrever (A diviso de , num1 , com , num2 , , div); // sada de resultados
caso contrrio : escrever (operao invlida); // sada de resultados
mescolha;
m_algoritmo.
2. Desenvolva um algoritmo que mostre um menu de opes para: calcular a soma de todos os
nmeros compreendidos entre 1 e 100; calcular a soma de todos os nmeros pares compreendidos
entre 1 e 100; e calcular a soma de todos os nmeros divisveis por 3.
// mdulo procedimento Menu
Menu()
incio
escreva (Digite 1 para soma de todos os nmeros entre 1 e 100\n);
escreva (Digite 2 para soma de todos os nmeros pares entre 1 e 100\n);
escreva (Digite 3 para soma de todos os nmeros divisveis por 3 entre 1 e 100\n);
escreva (Digite 0 para sair do programa\n);
mmdulo; // Menu
// mdulo funo SomaTudo que retorna um valor inteiro
inteiro SomaTudo ()
incio
Declarar // declarao de variveis que s podem ser usados dentro deste mdulo
s!0, i inteiro;
i ! 1;
// processamento de dados
enquanto (i <= 100) faa
s ! s + i;
i ! i + 1;
menquanto;
retornar s; // retorno do mdulo
mmdulo; // Soma Tudo
// mdulo procedimento SomaPares que recebe um valor inteiro
SomaPares (par inteiro)
50
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
incio
Declarar // declarao de variveis que s podem ser usados dentro deste mdulo
s!0, i inteiro;
i ! 1;
// processamento de dados
faa
se ((i mod par) = 0)
ento
s ! s + i;
mse;
i ! i + 1;
enquanto (i <= 100);
escreva (A somatria dos nmeros pares de 1 at 100 , s); // sada de resultados
mmdulo; // SomaPares
// mdulo funo SomaDivisivel3 que recebe um valor inteiro e retorna um valor inteiro
inteiro SomaDivisivel3 (d inteiro)
incio
Declarar // declarao de variveis que s podem ser usados dentro deste mdulo
i, s ! 0 inteiro;
// processamento de dados
para i de 1 at 100 passo +1 faa
se ((i mod d) = 0)
ento
s ! s + i;
mse;
mpara;
retornar s; // retorno da funo
mmdulo; // SomaDivisivel3
// mdulo principal
Algoritmo Somador
Declarar // declarao de variveis que s podem ser usados dentro do algoritmo Somador
op, soma, div inteiro;
// processamento de dados
faa
/* chamada do mdulo procedimento Menu, sem parametrizao */
Menu();
leia (op); // entrada de dados
escolha (op)
caso 1 : /* chamada do mdulo funo SomaTudo, sem parmetrizao e atribuindo o retorno
do mdulo na varivel soma */
soma ! SomaTudo();
escreva (A somatria de 1 at 100 , soma); // sada de resultados
caso 2 : /* chamada do mdulo procedimento SomaPares, passando o nmero 2 como
parmetro*/
51
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
SomaPares(2);
caso 3 : /* chamada do mdulo funo SomaDivisivel3, passando o nmero 3 como parmetro
e atribuindo o retorno do mdulo na varivel div */
div ! SomaDivisivel3(3);
// sada de resultados
escreva (A somatria dos nmeros divisveis por 3 de 1 at 100 , div);
caso 0 : escreva (Saindo do programa!);
caso contrrio : escreva (opo invlida, tente novamente);
mescolha;
enquanto (op <> 0);
m_algoritmo.
Exerccios 2
Estrutura de repetio do para, vetores, matrizes, procedimentos e funes em algoritmos, Linguagem
C e Linguagem Java.
1. Escreva uma funo que receba dois nmeros inteiros e retorna a soma desses dois nmeros.
2. Escreva uma funo que receba trs nmeros reais e retorna o produto desses nmeros.
3. Escreva uma funo que receba um nmero e retorna verdadeiro se ele for positivo e falso caso
contrrio.
4. Escreva um procedimento que receba dois nmeros inteiros e mostre a soma desses dois nmeros.
5. Escreva um procedimento que receba trs nmeros reais e mostre o produto desses nmeros.
6. Escreva um que receba um nmero e mostre a informao se esse nmero par ou no.
7. Desenvolva um algoritmo que recebe dez nmeros num vetor e mostre esses nmeros.
8. Escreva uma funo que recebe um vetor e retorna o maior nmero desse vetor.
9. Escreva um procedimento que recebe um vetor e mostre a soma dos nmeros desse vetor.
10. Escreva um procedimento que recebe um vetor e mostre os nmeros pares desse vetor.
11. Escreva uma funo que recebe um vetor e retornar a soma dos nmeros positivos desse vetor.
12. Escreva uma funo que recebe uma matriz e retorna o maior nmero dessa matriz.
13. Desenvolva um algoritmo que receba 50 nmeros e calcule a soma desses nmeros.
52
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
14. Desenvolva um algoritmo que mostra o produto dos vinte nmeros de 1 a 20.
15. Desenvolva um algoritmo que recebe uma opo inteira e sai da repetio somente quando o
usurio digitar 0.
16. Desenvolva um algoritmo que mostra o resultado da srie 1 + 1/2 + 1/3 + ... + 1/N.
17. Desenvolva um algoritmo que recebe dois nmeros a e b e mostre o resultado de a elevado a b
sem utilizado o operador da potncia.
18. Escreva uma funo que receba um vetor de nmeros e calcule e retorna a mdia desses nmeros.
19. Escreva um procedimento que receba um vetor de nmeros e calcule e retorna a mdia desses
nmeros.
20. Escreva uma funo que receba um vetor e retorna o maior valor desse vetor.
21. Escreva um procedimento que receba um vetor e escreva o menor valor desse vetor.
22. Desenvolva uma funo que recebe um vetor de dez nmeros e inverta os valores desse vetor
em outro vetor.
23. Escreva uma funo que receba dois nmeros e retorna a potncia desses dois nmeros.
24. Escreva um procedimento que receba dois nmeros e mostre a potncia desses dois nmeros.
25. Escreva um procedimento que recebe uma matriz e mostre a mdia dos nmeros dessa matriz.
Atividade Complementar 1
Desenvolva um programa em C e um programa em Java para a seguinte situao-problema.
Alguns motoristas registram os quilmetros dirigidos e os litros consumidos a cada abastecimento
de seus carros. Sua funo escrever um programa que ajude esses motoristas a obter o consumo
(em quilmetros por litro) de seus carros. Ao ser executado, seu programa solicitar que o usurio
informe o nmero de quilmetros dirigidos e a quantidade de litros de combustvel colocada naquele
abastecimento. Aps receber esta entrada, seu programa dever calcular e mostrar a quantidade de
quilmetros por litro obtida neste abastecimento e em seguida a quantidade mdia dos abastecimentos
digitados at ento e em seguida solicitar os dados do prximo abastecimento. Caso o usurio digite 0
no nmero de quilmetros e 0 na quantidade de litros de combustvel consumidos, o programa dever
ser encerrado.
Um exemplo de funcionamento do programa poderia ser:
53
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Digite a quantidade de quilmetros percorridos (ou 0 para sair): 320
Digite a quantidade de litros abastecidos percorridos (ou 0 para sair): 39
Seu consumo neste abastecimento : 8.20 km/l
Sua mdia de consumo : 8.20 km/l
Digite a quantidade de quilmetros percorridos (ou 0 para sair): 360
Digite a quantidade de litros abastecidos percorridos (ou 0 para sair): 37
Seu consumo neste abastecimento : 9.73 km/l
Sua mdia de consumo : 8.97 km/l
Digite a quantidade de quilmetros percorridos (ou 0 para sair): 0
Digite a quantidade de litros abastecidos percorridos (ou 0 para sair): 0
Saindo...
Atividade Complementar 2
Desenvolva um programa em C e um programa em Java para a seguinte situao-problema.
Voc foi encarregado de desenvolver um programa para uma empresa logstica responsvel por
entregar encomendas entre cidades do Brasil. Seu programa dever armazenar as distancias entre as
5 cidades mais atendidas pela transportadora. Voc dever utilizar os cdigos das cidades (1, 2, 3, 4 ou
5) e as distncias devero ser armazenadas em uma tabela de distncias, conforme o exemplo abaixo:
1 2 3 4 5
1 0 39,5 73,2 58 62
2 39,5 0 36 25,4 86,8
3 73,2 36 0 55,1 85,7
4 58 25,4 55,1 0 23
5 62 86,8 85,7 23 0
O programa desenvolvido por voc dever inicialmente apresentar um menu com trs opes: 1)
Cadastramento de distncias, 2) Consulta de distncias e 3) Sair do programa. No cadastramento de
distncias, seu programa dever pedir para o usurio informar a distncia entre a primeira e a segunda
cidade e armazen-la na tabela, em seguida fazer o mesmo entre a primeira e a terceira, e assim por diante
at todas as distncias estarem cadastradas. Aps isso seu programa deve retornar ao menu inicial; Na
54
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
consulta de distncias, seu programa dever pedir para o usurio informar a cidade de origem e em seguida
a cidade de destino. Caso os cdigos das cidades sejam vlidos, seu programa dever retornar a distncia
entre as duas cidades armazenadas na tabela e em seguida retornar ao menu inicial. Caso o usurio digite
um cdigo incorreto, o sistema deve informar e pedir para que o usurio insira novamente um cdigo de
cidade; Caso o usurio escolha a terceira opo, o programa dever ser encerrado.
Seu programa deve ser modularizado, utilizando um mdulo para apresentar o menu (mdulo
procedimento sem parmetros), um mdulo para o cadastramento de distncias(mdulo funo
que devolve a tabela de distncias) e outro mdulo para a consulta de distncias (mdulo funo
parametrizado, que recebe como parmetro a tabela de distncia e devolve a distncia encontrada).
OBS: Diferente do Java, o mdulo de cadastramento
de usurios em C dever ser um mdulo procedimento que
recebe a tabela de distncias. Para que a tabela informada
seja modicada para acrescentar as distncias, ao utilizarmos
o mdulo deveremos informar a tabela precedida do operador
&. Ex:
oat distancias[5][5];
Cadastro(&distancias);
Atividade Complementar 3
Crie um programa que simule um sistema de autenticao. O programa dever apresentar um menu
com trs opes. Na primeira opo, o programa dever cadastrar os nomes e as senhas de 5 pessoas
e retornar ao menu principal. Na segunda opo, o programa dever perguntar o nome e a senha da
pessoa que deseja acesso. Caso o nome entrado seja um dos cinco nomes cadastrados, o sistema dever
mostrar a mensagem Acesso liberado, e, caso contrrio, Acesso negado e voltar ao menu principal.
Caso o usurio escolha a terceira opo, o sistema dever ser encerrado.
Atividade Complementar 4
O valor de pode ser calculado usando a seguinte srie:
= 4 -
4
3
+
4
5
-
4
7
+
4
9
-
4
11
+ ...
A preciso da aproximao do valor de depende da quantidade de termos da srie que utilizamos
para fazer esse clculo. Crie um programa que calcule a aproximao do valor de utilizando n termos
da srie acima. O programa dever pedir um nmero n ao usurio, e dever imprimir o valor aproximado
de usando n termos (conte o primeiro 4 como um termo). Caso o usurio digite um nmero menor do
que 1, o programa dever solicitar ao usurio que entre outro nmero, repetindo isso at que o usurio
digite um nmero inteiro maior ou igual a 1.
55
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Referncias bibliogrcas
Tabuti, L. M. Lgica de Programao. Faculdade IBTA, 3a Edio. 2a Impresso. 2005.
Tabuti, L. M. Estruturas de Dados. Faculdade IBTA, 2a Edio. 1a Impresso. 2005.
Gabarito - Exerccios 1
1.
Algoritmo Soma
inicio
var
n1, n2, s inteiro;
ler (n1, n2);
s <- n1 + n2;
escrever (s);
m.
2.
Algoritmo Divisao
inicio
var
n1, n2, q, r inteiro;
ler (n1, n2);
q <- n1 div n2;
r <- n1 mod n2;
escrever (q, r);
m.
3.
Algoritmo NomeSobrenome
inicio
var
n, s alfanumrico;
ler(n, s);
escrever (n , , s);
m.
56
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
4.
Algoritmo ParImpar
inicio
var
n inteiro;
ler (n);
se (n mod 2 = 0)
ento
escrever ( par);
seno
escrever ( mpar);
mse;
m.
5.
Algoritmo Nota
inicio
var
n real;
ler (n);
se (n >= 5)
ento
escrever (aprovado);
seno
se (nota >= 3)
ento
escrever (em recuperao);
seno
escrever (reprovado);
mse;
mse;
m.
6.
Algoritmo Semestre
inicio
var
m inteiro;
ler (m);
se (m >= 1 e m <= 6)
57
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
ento
escrever (primeiro semestre);
seno
escrever (segundo semestre);
mse;
m.
7.
Algoritmo trimestre
inicio
var
m inteiro;
ler (m);
escolha (m)
caso 1, 2, 3 : escrever (primeiro trimestre);
caso 4, 5, 6 : escrever (segundo trimestre);
caso 7, 8, 9 : escrever (terceiro trimestre);
caso 10, 11, 12 : escrever (quarto trimestre);
caso contrrio: escrever (invlido);
mescolha;
m.
8.
Algoritmo tarefas
inicio
var
dia alfanumrico;

ler (dia);
escolha (dia)
caso segunda-feira, sexta-feira : escrever (estudar algoritmos);
caso tera-feira : escrever (estudar matemtica);
caso quarta-feira : escrever (estudar ingls);
caso quinta-feira : escrever (estudar portugus);
caso sbado : escrever (passear);
caso domingo : escrever (descansar);
caso contrrio : escrever (invlido);
m.
58
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
9.
Algoritmo soma
var
i, n, s <- 0 inteiro;

para i de 1 at 10 passo +1 faa
ler (n);
s <- s + n;
mpara;
escrever (s);
m.
10.
Algoritmo SomaPares
var
i, n, s <- 0 inteiro;
para i de 1 at 15 passo +1 faa
ler (n);
se (n mod 2 = 0)
ento
s <- s + n;
mse;
mpara;
escrever (s);
m.
11.
Algoritmo Fatorial
var
i, n, fat <- 1 inteiro;
ler (n);
para i de 1 at n passo + 1 faa
fat <- fat * i;
mpara;
escrever (fat);
m.
59
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
12.
Algoritmo Tabuada
inicio
var
t, i inteiro;
ler (t);
para i de 1 at 10 passo + 1 faa
escrever (i , x , t , = , (t*i));
mpara;
m.
13.
Algoritmo MaiorNumero
inicio
var
n, maior, i inteiro;
ler (n);
maior <- n;
para i de 1 at 19 passo +1 faa
ler (n);
se (n > maior)
ento
maior <- n);
mse;
mpara;
escrever(maior);
m.
14.
Algoritmo SomaQuadrado
inicio
var
s, n1, n2 real;
ler (n1, n2);
s <- n1*n1 + n2*n2;
escrever (s);
m.
60
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
15.
Algoritmo SomaQuadrado
inicio
var
s, n1, n2 real;
ler (n1, n2);
s <- pot(n1,3) + pot(n2,3);
escrever (s);
m.
16.
Algoritmo Raiz
inicio
var
n, r inteiro;

ler (n);
r <- rad(n);
escrever (r);
m.
17.
Algoritmo Media
inico
var
n1, n2, m real;
ler (n1, n2);
m <- (n1 + n2) / 2;
escrever (m);
m.
18.
Algoritmo Divisivel3
inicio
var
n inteiro;
ler(n);
se (n mod 3 = 0)
ento
escrever ( divisvel por trs);
61
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
seno
escrever (no divisvel por trs);
mse;
m.
19.
Algoritmo Area
inicio
var
l, a real;
ler (l);
se (l > 0)
ento
a <- l * l;
escrever (a);
seno
escrever (valor invlido);
mse;
m.
20.
Algoritmo Comrprimento
inicio
var
r, c real;
ler (r);
se (r > 0)
ento
c <- 2 * 3.14 * r;
escrever (c);
seno
escrever (valor invlido);
mse;
m.
21.
Algoritmo AreaCrculo
inicio
var
r, a real;
ler (r);
62
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
se (r > 0)
ento
a <- 3.14 * r * r
escrever (a);
seno
escrever (valor invlido);
mse;
m.
22.
Algoritmo Soma
inicio
var
i, s <- 0, n inteiro;
para i de 1 at 30 passo +1 faa
ler (n);
s <- s + n;
mpara;
escrever (n);
m.
23.
Algoritmo Quadrado
inicio
var
n, i inteiro;
para i de 10 at 20 passo +1 faa
n <- i * i;
escrever (n);
mpara;
m.
24.
Algoritmo Idade
inicio
var
id, i, menor inteiro;
ler (id);
menor <- id;
para i de 2 at 20 passo +1 faa
ler (id);
63
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
se (menor > id)
ento
menor <- id;
mse;
mpara;
escrever (menor);
m.
25.
Algoritmo Media
inicio
var
n, i, m <- 0, i inteiro;
para i de 1 at 10 passo +1 faa
ler (n);
m <- m + n;
mpara;
m <- m / 10;
escrever (m);
m.
Gabarito - Exerccios 2
1.
inteiro Soma (n1 inteiro, n2 inteiro)
inicio
var
s inteiro;
s <- n1 + n2;
retornar s;
m.
2.
real Produto (n1 real, n2 real, n3 real)
inicio
var
p real;
p <- n1 * n2 * n3;
retornar p;
m.
64
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
3.
lgico Verica (n inteiro)
inicio
se (n > 0)
ento
retornar verdadeiro;
seno
retornar falso;
mse;
m.
4.
Soma (n1 inteiro, n2 inteiro)
inicio
var
s inteiro;
s <- n1 + n2;
escrever (s);
m.
5.
Produto (n1 real, n2 real, n3 real)
inicio
var
p real;
p <- n1 * n2 * n3;
escrever (p);
m.
6.
Verica (n inteiro)
inicio
se (n > 0)
ento
escrever ( par);
seno
escrever ( mpar);
mse;
m.
65
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
7.
Algoritmo VetorNumeros
inicio
var
Vet[10], n, i inteiro;
para i de 0 at 9 passo +1 faa
ler (n);
Vet[i] <- n;
escrever (Vet[i]);
mpara;
m.
8.
inteiro MaiorNumero (Vet[] inteiro)
inicio
var
maior <- Vet[0], i inteiro;
para i de 1 at (Vet.tamanho-1) passo +1 faa
se (Vet[i] > maior)
ento
maior <- Vet[i];
mse;
mpara;
retornar maior;
m.
9.
SomaVetor (Vet[] real)
var
i, s <- 0 inteiro;
para i de 0 at (Vet.tamanho-1) passo +1 faa
s <- s + Vet[i];
mpara;
escrever s;
m.
66
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
10.
ParesVetor (Vet[] inteiro)
inicio
var
i inteiro;
para i de 0 at (Vet.tamanho-1) passo +1 faa
se (Vet[i] mod 2 == 0)
ento
escrever (Vet[i]);
mse;
mpara;
11.
real PositivoVetor(Vet[] real)
inicio
var
i, s <- 0 inteiro;
para i de 0 ate (Vet.tamanho-1) passo +1 faa
se (Vet[i] > 0)
ento
s <- s + Vet[i];
mse;
mpara;
retornar s;
m.
12.
inteiro MaiorNumero (Mat[][] inteiro)
inicio
var
maior <- Mat[0][0], i, j inteiro;
para i de 0 at (Mat.tamanho-1) passo +1 faa
para j de 0 at (Mat[0].tamanho-1) passo +1 faa
se (Mat[i][j] > maior)
ento
maior <- Mat[i][j];
mse;
mpara;
mpara;
retornar maior;
m.
67
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
13.
Algoritmo Soma
inicio
var
s <- 0, i <- 1, n inteiro;
enquanto (i <=50) faa
ler (n);
s <- s + n;
i <- i + 1;
menquanto;
escrever (s);
m
14.
Algoritmo Produto
inicio
var
p <- 1, i <- 1, n inteiro;
enquanto (i <=20) faa
p <- p * i;
i <- i + 1;
menquanto;
escrever (p);
m.
15.
Algoritmo Opcao
inicio
var
op inteiro;
faa
ler(op);
enquanto (op <> 0);
m.
16.
Algoritmo Serie
inicio
var
n, i <- 1, s <- 0 inteiro;
68
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
ler (n);
enquanto (i <= n) faa
s <- s + 1/i;
menquanto;
escrever (s);
m.
17.
Algoritmo Potencia
inicio
var
a, b, pot <- 1 inteiro;
ler (a, b);
enquanto (b >= 1) faa
pot <- pot * a;
b <- b 1;
menquanto;
escrever (pot);
m.
18.
real Media (Vet[] inteiro)
inicio
var m <- 0, i inteiro;
para i de 0 at (Vet.tamanho -1) passo +1 faa
m <- m + Vet[i];
mpara;
m <- m / Vet.tamanho;
retornar (m);
m.
19.
Media (Vet[] inteiro)
inicio
var m <- 0, i inteiro;
para i de 0 at (Vet.tamanho -1) passo +1 faa
m <- m + Vet[i];
mpara;
m <- m / Vet.tamanho;
escrever (m);
m.
69
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
20.
real Maior (Vet[] real)
inicio
i, maior real;
maior <- Vet[0];
para i de 1 at (Vet.tamanho 1) passo +1 faa
se (Vet[i] > maior)
ento
maior <- Vet[i];
mse;
mpara;
retornar maior;
m.
21.
Menor (Vet[] real)
inicio
i, menor real;
menor <- Vet[0];
para i de 1 at (Vet.tamanho 1) passo +1 faa
se (Vet[i] < menor)
ento
menor <- Vet[i];
mse;
mpara;
retornar menor;
m.
22.
Algoritmo Inverte
inicio
var
i, Vet[10], Inv[10] inteiro;
para i de 0 at 9 passo +1 faa
ler (Vet[i]);
mpara;
para i de 0 at 9 passo +1 faa
Inv[i] <- Vet[9-i];
mpara;
para i de 0 at 9 passo +1 faa
escrever (Vet[i], Inv[i]);
70
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
mpara;
m.
23.
inteiro Potencia(a inteiro, b inteiro)
inicio
var
i, pot <- 1 inteiro;
enquanto (b >= 1) faa
pot <- pot * a;
b <- b 1;
menquanto;
retornar pot;
m.
24.
Potencia(a inteiro, b inteiro)
inicio
var
i, pot <- 1 inteiro;
enquanto (b >= 1) faa
pot <- pot * a;
b <- b 1;
menquanto;
escrever (pot);
m.
25.
Media (Mat[] inteiro)
inicio
var
m <- 0, i, j inteiro;
para i de 0 at (Mat.tamanho-1) passo +1 faa
para j de 0 at (Mat[0].tamanho-1) passo +1 faa
media <- media + Mat[i][j];
mpara;
mpara;
media <- media / (Mat.tamanho * Mat[0].tamanho);
escrever (media);
m.
71
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
Gabarito - Atividade complementar 1
algoritmo Pratica 1
// Funo : Prtica de Programao
// Autor : ETB Editora
// Data : 08/05/2014
// Seo de Declaraes
var
contador: inteiro
quilometros, litros: real
consumoAtual: real
consumoAcumulado: real
inicio
consumoAtual <- 0
consumoAcumulado <- 0
repita
escreva (Digite a quantidade de quilometros percorridos (ou 0 para sair):)
leia (quilometros)
escreva (Digite a quantidade de litros abastecidos (ou 0 para sair):)
leia (litros)
se (litros<>0) e (quilometros<>0) entao
contador <- contador +1
consumoAtual <- quilometros/litros
consumoAcumulado <- consumoAcumulado + consumoAtual
escreval (Seu consumo neste abastecimento eh:,consumoAtual)
escreval (Sua media de consumuo : , consumoAcumulado/contador)
senao
escreva (Saindo...)
interrompa
mse
ate (litros=0) ou (quilometros=0)

// Seo de Comandos
Fimalgoritmo
Gabarito - Atividade complementar 2
algoritmo Atividade Complementar 2
// Funo : Atividade 2
// Autor : Editora ETB
// Data : 10/05/2014
// Seo de Declaraes
var
op: inteiro
72
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
resultado: real
distancias: vetor [0..4,0..4] de real
funcao Consulta: real
var
origem : inteiro
destino: inteiro
inicio
repita
escreva (Digite o numero da cidade de origem: )
leia (origem)
se (origem<0) ou (origem>4) entao
escreval (Numero invalido!)
mse
ate (origem>=0) e (origem<5)
repita
escreva (Digite o numero da cidade de destino: )
leia (destino)
se (destino<0) ou (destino>4) entao
escreval (Numero invalido!)
mse
ate (destino>=0) e (destino<5)
retorne (distancias[origem, destino])
mfuncao
funcao Menu: inteiro
var
op: inteiro
inicio
escreval(Digite 1 para cadastramento de distancia)
escreval(Digite 2 para consulta de distancias)
escreval(Digite 3 para sair do programa)
leia(op)
retorne op
mfuncao
procedimento cadastro ()
var
i, j: inteiro
teste: real
inicio
para i de 0 ate 4 faca
para j de 0 ate 4 faca
se i=j entao
distancias[i,j]<-0
senao
escreva(Digite a distancia de ,i)
73
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
escreva( ate ,j)
escreva(: )
leia(distancias[i,j])
// distancias[i,j]<-2
mse
mpara
mpara
mprocedimento
inicio
repita
op <- Menu
escolha (op)
caso 1
cadastro
caso 2
resultado <-Consulta()
escreval(A distancia eh: ,resultado)
caso 3
escreval(Saindo do programa...)
outrocaso
escreval(opcao invalida)
mescolha
ate (op=3)

// Seo de Comandos
malgoritmo
Gabarito - Atividade complementar 3
algoritmo Atividade Complementar 3
// Funo : Atividade 3
// Autor : Editora ETB
// Data : 10/05/2014
// Seo de Declaraes
var
op: inteiro
resultado: real
usuarios: vetor [0..4,0..1] de caractere
procedimento testarAcesso
var
loginTeste : caractere
senhaTeste : caractere
i: inteiro
libera: logico
74
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
inicio
libera <- falso
escreva (Digite o nome do usuario: )
leia (loginTeste)
escreva (Digite a senha de acesso: )
leia (senhaTeste)
para i de 0 ate 4 faca
se (loginTeste=usuarios[i,0]) e (senhaTeste = usuarios[i,1]) entao
libera <- verdadeiro
mse
mpara
se libera entao
escreval (Acesso liberado)
senao
escreval(Acesso Negado)
mse
mprocedimento
funcao Menu: inteiro
var
op: inteiro
inicio
escreval(Digite 1 para cadastramento de usuarios)
escreval(Digite 2 para teste de acesso)
escreval(Digite 3 para sair do programa)
leia(op)
retorne op
mfuncao
procedimento cadastro ()
var
i: inteiro
login : caractere
senha: caractere
inicio
para i de 0 ate 4 faca
escreva(Digite o nome do usuario: )
leia(login)
escreva(Digite a senha do usuario: )
leia(senha)
usuarios[i,0]<-login
usuarios[i,1]<-senha
mpara
mprocedimento
inicio
repita
75
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Lgica de Programao
op <- Menu
escolha (op)
caso 1
cadastro
caso 2
testarAcesso
caso 3
escreval(Saindo do programa...)
outrocaso
escreval(opcao invalida)
mescolha
ate (op=3)

// Seo de Comandos
Fimalgoritmo
Gabarito - Atividade complementar 4
algoritmo Pratica 4
// Funo : Calculo de PI
// Autor : Editora ETB
// Data : 11/05/2014
// Seo de Declaraes
var
n: inteiro
i: inteiro
numeroPI: real
inicio
numeroPI<-0.0
escreva (Digite o numero de termos: )
leia(n)
para i de 0 ate n faca
se (i%2)=0 entao
numeroPI <-numeroPI+4/(2*i+1)
senao
numeroPI <-numeroPI-4/(2*i+1)
mse
mpara
escreva(O valor de pi eh: ,numeroPI)
// Seo de Comandos
malgoritmo
76
R
e
v
i
s

o
:

N
o
m
e

d
o

r
e
v
i
s
o
r

-

D
i
a
g
r
a
m
a

o
:

N
o
m
e

d
o

d
i
a
g
r
a
m
a
d
o
r

-

d
a
t
a
Suas anotaes

Você também pode gostar