You are on page 1of 38

ALGORITMOS

ALGORITMOS
Prof. Celso Cardoso Neto Prof. Celso Cardoso Neto
Disciplina: ALGORITMOS Disciplina: ALGORITMOS
celsocn@oi.com.r celsocn@oi.com.r
!"#$ !"#$
UNIVERSIDADE SALGADO DE OLIVEIRA
UNIVERSO
PR-REITORIA ACADMICA
ENGENHARIA CIVIL
2
DISCIPLINA:ICC II Apostila de Algoritmos
%NDIC&
#. INTROD'()O
!. D&*INI()O D& ALGORITMOS
+. LING'AG&M D& PROGRAMA()O
$. TRAD'()O D& 'MA LING'AG&M D& PROGRAMA()O
,. -IS'ALG
2
DISCIPLINA:ICC II Apostila de Algoritmos
#.INTROD'()O
A automatizao de tarefas um aspecto marcante da sociedade moderna. O aperfeioamento
tecnolgico alcanado, com respeito a isto, tem como elementos fundamentais a anlise e a obteno de
descries da execuo de tarefas em termos de aes simples o suficiente, tal que pudessem ser
automatizadas por uma mquina especialmente desenolida para este fim, O !O"#$%A&O'.
(m ci)ncia da computao * um processo de desenolimento simult+neo e interatio de
mquinas ,*ard-are. e dos elementos que gerenciam a execuo automtica ,soft-are. de uma dada
tarefa. ( essa descrio da execuo de uma tarefa, como considerada acima, c*amada al.oritmo.
O ob/etio desse curso a 0gica de #rogramao dando uma base terica e prtica,
suficientemente boa, para que, o aluno domine os algoritmos e este/a *abilitado a aprender uma linguagem
de programao. 1er mostrado tambm um grupo de algoritmos clssicos para tarefas cotidianas, tais
como 2 ordenao e pesquisa.
!.D&*INI()O D& ALGORITMO
1e buscarmos na literatura, eremos que iremos encontrar um grande quantidade de conceitos
relacionados 3 definio de A04O'5%"O. A seguir so listadas rias dessas definies.
6O conceito central da #'O4'A"A78O e da !59:!5A &A !O"#$%A78O o conceito de
algoritmos, isto , programar basicamente construir algoritmos.6
; a descrio, de forma lgica, dos passos a serem executados no cumprimento de determinada
tarefa.
6O algoritmo pode ser usado como uma ferramenta genrica para representar a soluo de tarefas
independente do dese/o de automatiz<las, mas em geral est associado ao processamento
eletr=nico de dados, onde representa o rascun*o para programas ,1oft-are..6
61ere como modelo para programas, pois sua linguagem intermediria 3 linguagem *umana e 3s
linguagens de programao, sendo ento, uma boa ferramenta na alidao da lgica de tarefas a
serem automatizadas.6
6$m algoritmo uma receita para um processo computacional e consiste de uma srie de
operaes primitias, interconectadas deidamente, sobre um con/unto de ob/etos. Os ob/etos
manipulados por essas receitas so as arieis.6
O algoritmo pode ter rios n>eis de abstraes de acordo com a necessidade de representar ou
encapsular detal*es inerentes 3s linguagens de programao. (x2 !ertamente um algoritmo feito
com o ob/etio de serir como modelo para uma linguagem de ?
@
gerao diferente daquele para
uma linguagem de 5A gerao. "as isso no impede que a ferramenta em si possa ser usada em
ambos o caso.
!omo qualquer modelo, um algoritmo uma abstrao da realidade. A abstrao o processo de
identificar as propriedades releantes do fen=meno que esta sendo modelado. $sando o modelo
abstrato, podemos nos centrar unicamente nas propriedades releantes para ns, dependendo da
finalidade da abstrao, e ignorar as irreleantes.
; a forma pela qual descreemos solues de problemas do nosso m/ndo, afim de, serem
implementadas utilizando os recursos do m/ndo comp/tacional. !omo este possu> seeras
limitaes em relao ao nosso mundo, exige que, se/am impostas algumas regras bsicas na
forma de solucionar os problemas, para que, possamos utilizar os recursos de 0ARD1AR& e
SO*T1AR& dispon>eis. #ois, os algoritmos, apesar de serirem para representar a soluo de
qualquer problema, no caso do #rocessamento de &ados, eles deem seguir as regras bsicas de
programao para que se/am compat>eis com as LING'AG&NS D& PROGRAMA()O.
1egundo Birt*, Cprogramas so formulaes concretas de algoritmos abstratos, baseados em
representaes e estruturas espec>ficas de dadosD
&e forma bem simples, um algoritmo pode ser definido como Cum con/unto de passos lgicos, bem
definidos, que descree a soluo de um problemaD.
Ao pensarmos na soluo de um problema, encontramos aes imperatias que
so expressas por comandos. Os algoritmos no so aplicados apenas ao mundo da
5nformticaE pelo contrrio, usamos F at sem perceber F algoritmos em todos os momentos
de nossa ida. $ma receita de cozin*a claramente um algoritmo.
2
DISCIPLINA:ICC II Apostila de Algoritmos
&2&MPLO # : *a3a /m al.oritmo para 4Ir de casa para o traal5o de
6ni/s7
Sol/38o #
Al.oritmo Tra9eto:Casa
in>cio
G. Andar at o ponto de =nibus
H. Aguardar o =nibus
?. Ao aistar o =nibus correto, fazer sinal
I. (ntrar no =nibus pela porta traseira
J. #agar passagem
K. (scol*er um assento e sentar
L. Muando c*egar prximo do local a saltar, dar o sinal para descida
N. :o ponto, descer do =nibus, pela porta dianteira
O. Andar at o trabal*o
fim
Obsera<se que esse algoritmo foi resolido em O passos. :o entanto, fato que se n pessoas
buscarem solues para o mesmo problema, proaelmente, teremos n respostas diferentes. 5sto decorre
normalmente, da abstrao do problema, da iso do problema sob +ngulos diferentes, com maior ou menor
riqueza de detal*es.
#or outro lado, deemos percebe<se que o algoritmo descrito reela uma situao perfeita, sem
condicionais, sem excees. Assim como na nossa rotina, improel termos situaes perfeitas, essas
excees tambm ocorrem nos programas de computador.
2
DISCIPLINA:ICC II Apostila de Algoritmos
Aamos refazer este algoritmo de forma a introduzir algumas condies.
Sol/38o !
Al.oritmo Tra9eto:Casa
in>cio
G. Andar at o ponto de =nibus
H. Aguardar o =nibus
?. Muando aistar o =nibus correto, fazer sinal
se o =nibus no parar, ento
(m pensamento, xingar o motorista
'eclamar para si que ai c*egar atrasado
se estier muito atrasado ento
#egar uma Aan
1enao
Aoltar para o #asso H
fimse
senao
se #essoa PQ KJ anos ento
(ntrar pela porta dianteira
senao
(ntrar pela porta traseira
#agar passagem
se *ouer troco ento
Aguardar troco
fim<se
fim<se
se *ouer lugar dispon>el ento
1entar
seno
(scol*er o mel*or lugar em p e ali permanecer
fim<se
fim<se
I. Muando c*egar prximo do local a saltar, dar o sinal para descida
J. :o ponto, descer do =nibus, pela porta dianteira
K. Andar at o trabal*o
fim
!om certeza, a brincadeira que fiz da condio C1e o =nibus no pararD dee ter leado oc)s
a pensarem em inRmeras noas condies, como por exemplo2 qual seria a sua reao, se num dia de
c*ua, o =nibus passasse por sobre uma poa e l*e su/asse toda a roupa S
Ae/a quo complexo pode se tornar um CsimplesD algoritmo. &eemos lembrar que detal*es
so essenciais na confeco de um algoritmo, todaia, eles deem estar de acordo com o conte;to. Alm
disso, importante que en*amos a relatar apenas os detal*es releantes.
#or exemplo, a soluo H est apropriada para ensinarmos uma pessoa que no est
acostumada a andar de =nibus. %odaia, este algoritmo causaria problemas se estissemos programando
um rob=. !onsiderando esta situao, deer>amos ser mais precisos no passo CMuando c*egar prximo do
local a saltar, dar o sinal de descidaD. :esse caso, deer>amos dizer CA x metros do local a saltar, dar o
sinal de descidaD ou C:a altura x da 'ua T ...D.
Assim, lembrem<se de usar o UO" 1(:1OV
2
DISCIPLINA:ICC II Apostila de Algoritmos
#odemos pensar tambm num algoritmo como um CmecanismoD de transformao de
entradas em sa>das. Assim, um algoritmo ao ser CexecutadoD, receber algumas entradas, que
sero processadas e nos deoler algumas sa>das.
*L'2O D& CONTROL& &M ALGORITMOS
$m algoritmo um texto esttico, onde temos rios passos que so lidos e interpretados de
cima para baixo. #ara que en*amos a obter o,s. resultado,s. deste algoritmo, necessitamos Cexecut<loD,
o que resulta em um processo din+mico.
:o fluxo de controle identificamos em cada passo da execuo qual o prximo comando a
ser executado.
A compreenso da lgica de programao de um algoritmo est
diretamente ligada a compreenso de seu fluxo de controle. A partir de uma
compreenso correta, podemos traar as diersas execues poss>eis de um
algoritmo. 1e testarmos todas essas possibilidades, e obtiermos resultados
corretos, podemos ter certeza de estar entregando um produto final confiel.
Os iniciantes no mundo da programao encontram alguma
dificuldade em diminuir a dist+ncia conceitual que separa a representao esttica
de um algoritmo do,s. processo,s. din+mico,s. de sua execuo.
; importante frisar que quando nos propomos a
entender um algoritmo, lidamos fisicamente com um texto, mas
mentalmente temos processos.
CRIANDO ALGORITMOS
%oda linguagem composta de sintaxe e sem+ntica, onde a sintaxe corresponde 3 forma e a
sem+ntica corresponde ao conteRdo.
; importante que se aprenda a sintaxe dos comandos, mas a principal preocupao dee ser
de Ccomo usar esses comandosD.
Re.ras para cria38o de ons al.oritmos
G. $se comentrios com freqW)ncia. 5sto torna o algoritmo mais leg>el e facilita o
entendimento da lgica empregada. 1eus algoritmos deero ser lidos e entendidos por
outras pessoas ,e por oc) mesmo. de tal forma que possam ser corrigidos e receber
manuteno.
Obs2 :o se esquea de atualizar os comentrios, em caso de manuteno. #ior do que
um programa sem comentrios, um programa com comentrios errados.
H. $se comentrios, tambm, no cabeal*o do algoritmo, incluindo, principalmente2
- descrio do que faz o algoritmo
- autor
- data de criao

2
DISCIPLINA:ICC II Apostila de Algoritmos
?. (scol*a nomes de arieis significatios, todaia eite nomes muito longos.
(x2 #refira 1alUruto ou 1alarioUruto ao ins de 1U ou AA'G
#refira %otAlunosApro&ireta ao ins de
%otalAlunosAproacao&ireta
I. &estaque as palaras<c*ae das estruturas de controle e comandos com sublin*ado.
(x2 se media PQ L ento
...
senao
...
fim<se
J. $tilize espaos e lin*as em branco para mel*orar a legibilidade.
K. !oloque apenas um comando por lin*a. Arios comandos em uma lin*a causam
ilegibilidade e dificulta a depurao.
L. $tilize par)nteses para aumentar a legibilidade e preenir<se de erros.
N. $se identao nos comandos de acordo com o n>el que este/am, ou se/a, alin*e
comandos de mesmo n>el e desloque comandos de n>el inferior.
(x.2
in>cio
comando GE
se condicaoG ento
comandoHE
comando?E
senao
comandoIE
comandoJE
fimse
comandoKE
fim
M<todo para desen=ol=imento de al.oritmos
G. Xaa uma leitura de todo o problema at o final, a fim de formar a primeira impresso. A
seguir, releia o problema e faa anotaes sobre os pontos principais.
H. Aerifique se o problema foi bem entendido. Muestione, se preciso, ao autor da
especificao sobre suas dRidas. 'eleia o problema quantas ezes for preciso para tentar
entend)<lo.
?. (xtraia do problema todas as suas sa>das.
I. (xtraia do problema todas as suas entradas.
J. 5dentifique qual o processamento principal.
K. Aerifique se ser necessrio algum alor intermedirio que auxilie a transformao das
entradas em sa>das. (sta etapa pode parecer obscura no in>cio, mas com certeza no
desenrolar do algoritmo, estes alores aparecero naturalmente.
L. %este cada passo do algoritmo, com todos os seus camin*os para erificar se o
processamento est gerando os resultados esperados.
!rie alores de teste para submeter ao algoritmo.
N. 'ee/a o algoritmo, c*ecando as boas normas de criao.
Conselho: S tente conseguir o timo, depois de realizar
o bom!
2
DISCIPLINA:ICC II Apostila de Algoritmos
+.LING'AG&M D& PROGRAMA()O
O estudo das tcnicas para construo de algoritmos est diretamente relacionado ao estudo das
linguagens de programao.
O estudo das linguagens de programao isam2
"aior *abilidade em resoler problemas2 uma maior compreenso de uma 0# pode aumentar
nossa *abilidade em pensar em como equacionar os problemas.
%anto mel*or se dominarmos os rios modelos de 0#.
"el*or uso de uma 0#2 compreenso das funes e implementao das estruturas de uma 0#
nos leam a usar a 0# de modo a extrair o mximo de sua funcionalidade e efici)ncia.
"el*or escol*a de uma 0#2 adequao ao problema.
"aior facilidade em aprender noas 0#s2 conceitos c*aes comuns 3s 0#s.
"el*or designer de 0#s2 linguagens de interfaces de sistemas, extenso de 0# ia operadores e
tipos de dados.
0IST>RICO
Ae/amos um pouco da *istria de algumas linguagens de programao que introduziram conceitos
importantes para as futuras 0#s e que ainda esto em uso. (ssas linguagens esto classificadas em tr)s
per>odos, de acordo com a poca em que surgiram.
#?,, @ #?A,
XO'%'A: ,XO'mula %'A:slation.
!OUO0 ,!Ommon Uusiness Oriented 0anguage.
A04O0 KY ,A04orit*mic Oriented 0anguage.
051# ,051t #rocessing.
A#0 ,A #rogramming 0anguage.
UA15! ,Ueginners All<purpose 1Tmbolic 5nstruction !ode.
#?A, @ #?B# CLPDs aseadas em ALGOLE
#0Z5 ,#rogramming 0anguage 5.
15"$0A KL
A04O0 KN
#A1!A0
Lin./a.ens dos anos F" Ccriadas na d<cada de B"E
#'O0O4 ,#'Ogramming in 0O4ic.
1"A00 %A0[
!
"O&$0A H
A&A
O/tras
Aisual Uasic
&elp*i
\aa ] \aa1cript
2
DISCIPLINA:ICC II Apostila de Algoritmos
$.TRAD'()O D& 'MA LING'AG&M D&
PROGRAMA()O
TRADUTOR
1
programa
programa.exe
ou
programa
TRADUTOR
2
programa.exe
(xistem dois mtodos para se traduzir um programa escrito em uma determinada linguagem de
programao para a linguagem de mquina2 Interpreta38o e Compila38o.
aE INT&RPR&TA()O
$m interpretador traduz o programa fonte um comando por ez e c*ama uma rotina para executar
esse comando. A antagem que o interpretador no traduz comandos que podem no ser executados e
pode relatar erros na linguagem original em cada ponto de execuo. :a prtica as linguagens interpretadas
serem para a realizao de uma prototipagem rpida.
E COMPILA()O
$m !ompilador traduz o programa fonte inteiro, produzindo um outro programa equialente, em
linguagem executel. A antagem que o compilador precisa traduzir um comando apenas uma Rnica ez,
no importando quantas ezes ele ser executado. :a prtica o compilador usado para gerar o cdigo
definitio ,eficiente. de um programa.
programa-
fonte
COMPI LADOR MQUI NA
programa-
o!eto
"nput
output
O processo de compilao < Xases #rincipais da !ompilao2
2
DISCIPLINA:ICC II Apostila de Algoritmos
programa- fonte
# %a&e"a &e %ara%tere' (
ANLI )* L+,I CA
ANLI )* )I NTTI CA
%a&e"a &e to-en'
ANLI )* )*M.NTI CA
r/ore &e Par'"ng
0*RA12O D* C3DI 0O
r/ore &e Par'"ng
programa-o! eto
TA4*LA D*
)5 M4OLO)
2
DISCIPLINA:ICC II Apostila de Algoritmos
J. -IS'ALG @ (ditor e 5nterpretador de #seudocdigos
O Aisualg H.Y um programa que interpreta e executa algoritmos
como um 6programa6 normal de computador, baseado em uma
linguagem parecida com o 6#ortugol6.
,.# @ O9eti=os
(sta ferramenta permite aos alunos iniciantes em programao o exerc>cio dos seus
con*ecimentos num ambiente prximo da realidade.
#ara quem est iniciando nota<se que a abstrao de 6rodar o c*in)s6, ou se/a, de executar um
programa apenas no papel, um grande obstculo ,quase intranspon>el para alguns. no
aprendizado das tcnicas de elaborao de algoritmos.
#or outro lado, submeter um iniciante aos rigores de uma linguagem de programao como
#ascal ou ao CesoterismoD do ! tambm exagerado.
O ideal seria uma linguagem mais simples, parecida com o 6#ortugol6, de grande popularidade
nos meios acad)micos e presente nos liros mais utilizadosE com ela, os princ>pios bsicos da
programao estruturada podem ser ensinados sem que a cura de aprendizagem fosse
>ngreme. Alm disso, esta ferramenta dee tambm ser capaz de simular o que acontece na
tela do computador com o uso dos famosos comandos 6leia6 e 6escrea6, bem como possibilitar
a erificao dos alores das arieis, o acompan*amento passo a passo da execuo de um
algoritmo ,pelo seu grande alor didtico., e at mesmo suportar um modo simples de
depurao.
Aliado a tudo isto, existe um editor de texto com recursos razoeis ,tais como abrir e salar
arquios. e que dispe de todos os principais recursos de um ambiente grfico.
,.! G Instala38o e ReH/erimentos de 0ardIare
O -is/AlG um programa simples, que no depende de&00s, O!]s ou outros
componentes.
1ua instalao no copia arquios para nen*uma outra pasta a no ser aquela em que for
instalado, e exige cerca de G "U de espao em disco. #ode ser executado sob Bindo-s OJ ou
posterior, e tem mel*or apar)ncia com resoluo de >deo de NYYxKYY ou maior.
,.+ GA Tela Principal do -is/AlG
A tela do -is/AlG compe<se da barra de tarefas, doeditor de textos ,que toma toda a sua
metade superior., do quadro de arieis ,no lado esquerdo da metade inferior.,do simulador de
sa>da ,no correspondente lado direito. e da barra de status. Muando o programa carregado, /
apresenta no editor um 6esqueleto6 de pseudocdigo, com a inteno de poupar trabal*o ao
usurio e de mostrar o formato bsico que dee ser seguido. (xplicaremos a seguir cada
componente da interface do -is/AlG.
2
DISCIPLINA:ICC II Apostila de Algoritmos
A Jarra de Tarefas
!ontm os comandos mais utilizados no -is/AlG ,estes comandos tambm podem ser acessados
pelo menu ou por atal*os no teclado..
Abrir (Ctrl-A): Abre um arquio anteriormente graado, substituindo o texto presente no editor.
1e este tier sido odificado, o -is/AlG pedir sua confirmao para sal<lo antes que se/a
sobreposto.
o!o (Ctrl-): !ria um noo 6esqueleto6 de pseudocdigo, substituindo o texto presente no
editor. 1e este tier sido modificado, o -is/AlG pedir sua confirmao para sal<lo antes
que se/a sobreposto.
Sal!ar (Ctrl-S): 4raa imediatamente o texto presente no editor. :a primeira ez que um noo
texto graado, o -is/AlG pede seu nome e localizao.
"mprimir: 5mprime imediatamente na impressora padro o textopresente no editor. #ara
configurar a impresso, use o comando 5mprimir do menu Arquio ,acess>el tambm pelo atal*o
!trl<#..
Cortar (Ctrl-#): Apaga texto selecionado, armazenando<o em uma reade transfer)ncia.
2
DISCIPLINA:ICC II Apostila de Algoritmos
Copiar (Ctrl-C): !opia o texto selecionado para a rea de transfer)ncia.
Colar (Ctrl-$): !opia texto da rea de transfer)ncia para o local em que est o cursor.
%ra!ar bloco de te&to: #ermite a graao em arquio de um texto selecionado no editor. A
extenso sugerida para o nome do arquio .inc.
"nserir bloco de te&to: #ermite a insero do conteRdo de um arquio. A extenso sugerida
para o nome do arquio .inc.
'es(azer (Ctrl-)): &esfaz Rltimo comando efetuado.
*e(azer (Shi(t-Ctrl-)): 'efaz Rltimo comando desfeito.
+ocalizar (Ctrl-+): 0ocaliza no texto presente no editor determinada palara especificada.
Substituir (Ctrl-,): 0ocaliza no texto presente no editor determinada palara especificada,
substituindo<a por outra.
Corrigir "ndentao (Ctrl-%): !orrige automaticamente a indentao,ou tabulao. do
pseudocdigo, tabulando cada comando interno com espaos 3 esquerda.
umerar linhas: Atia ou desatia a exibio dos nRmeros das lin*as na rea 3 esquerda do
editor. A lin*a e a coluna do editor em que o cursor est em um determinado momento tambm so
mostradas na barra de status,parte inferior da tela.. #or motios tcnicos, esta opo
automaticamente desatiada durante a execuo do pseudocdigo, mas olta a ser atiada logo em
seguida.
-ostrar !ari.!eis modi(icadas: Atia ou desatia a exibio da ariel que estsendo
modificada. !omo o nRmero de arieis pode ser grande, muitas podem estar fora da /anela de
isualizaoE quando esta caracter>stica est atiada, o -is/AlG rola a grade de exibio de
modoque cada ariel fique is>el no momento em estsendo modificada. (ste recurso
especialmente Rtil quando se executa um pseudocdigo passo a passo. #or questes de
desempen*o, a configurao padro desta caracter>stica desatiada,quando o pseudocdigo est
sendo executado automaticamente. :o entanto, basta clicar este boto para execut<lo
automaticamente com a exibio atiada. :o final da execuo, a configurao olta a ser
desatiada.
/&ecutar (01): 5nicia ,ou continua. a execuo automtica do pseudocdigo.
/&ecutar com timer(Shi(t-01): 5nsere um atraso ,que pode ser especificado no interalo ao
lado. antes da execuo de cada lin*a. %ambm reala em fundo azul o comando que est sendo
executado, da mesma forma que na execuo passo a passo.
"nter!alo do timer: Atraso em cada lin*a, para quando se dese/a executar o pseudocdigo com
timer.
2asso (03): 5nicia ,ou continua. a execuo lin*a por lin*a do pseudocdigo, dando ao usurio a
oportunidade de acompan*ar o fluxo de execuo, os alores das arieis e a pil*a de atiao
dos subprogramas.
2arar (Ctrl-04): %ermina imediatamente a execuo do pseudocdigo. (identemente, este
boto fica desabilitado quando o pseudocdigo no est sendo executado.
+iga5desliga brea6point(07): 5nsereZremoe um ponto de parada na lin*a em que este/a o
cursor. (stes pontos de parada so Rteis para a depurao e acompan*amento da execuo dos
pseudocdigos, pois permitem a erificao dos alores das arieis e da pil*a de atiao de
subprogramas.
'esmarcar todos os brea6points(Ctrl-07): &esatia todos os brea^points que este/am
atiados naquele momento.
2
DISCIPLINA:ICC II Apostila de Algoritmos
/&ecutar em modo '8S: !om esta opo atiada, tanto a entrada como a sa>da<padro
passa a ser uma /anela que imita o &O1, simulando a execuo de um programa neste ambiente.
2
DISCIPLINA:ICC II Apostila de Algoritmos
%erar !alores aleatrios: Atia a gerao de alores aleatrios que substituem a digitao de
dados. A faixa padro de alores gerados de Y a GYY inclusie, mas pode ser modificada ,basta
alterar interalo ao lado.. #ara a gerao de dados do tipo caractere, no * uma faixa pr<
estabelecida2 os dados gerados sero sempre strings de J letras maiRsculas.
"nter!alo dos !alores aleatrios: Xaixa de alores que sero gerados automaticamente,
quando esta opo estier atiada.
2er(il (09): Aps a execuo de um pseudocdigo, exibe o nRmero de ezes que cada umas das
suas lin*as foi executada. ; Rtil para a anlise de efici)ncia ,por exemplo, nos mtodos de
ordenao..
-ostrar pilha de ati!ao (Ctrl-0:): (xibe a pil*a de subprogramas atiados num dado
momento. !onm utilizar este comando em con/unto com brea^points ou com a execuo passo a
passo.
A;uda (0<): #ossibilita acesso 3s pginas de a/uda e 3s informaes sobre o -is/AlG.
K/adro de -ariL=eis
; formado por uma grade na qual so mostrados o escopo de cada ariel ,se for do programa
principal, ser globalE se for local, ser apresentado o nome do subprograma onde foi declarada., seus
nomes ,tambm com os >ndices, nos casos em que se/am etores., seu tipo ,656 para inteiro, 6'6 para
real, 6!6 para caractere e 606 para lgico. e o seu alor corrente.
A erso atual do -is/AlG permite a isualizao de at JYY arieis ,contando indiidualmente
cada elemento dos etores..
A Jarra de Stat/s
1ituada na parte inferior da tela, esta barra contm dois painis2 o primeiro mostra a lin*a e a coluna
onde o cursor est, e o segundo mostra a palara "odificado no caso em que o pseudocdigo ten*a
sido alterado desde que foi carregado ou salo pela Rltima ez. :esta barra, * ainda um terceiro painel
dispon>el, que ainda no tem um uso espec>fico na atual erso.
,.$ G Men/ do -is/AlG
(ste menu compe<se de L partes2
Ar=ui!o: #ossui os comandos para se abrir, salar e imprimir algoritmos2
o!o: !ria um noo 6esqueleto6 de pseudocdigo, substituindo o texto existente no
editor. 1e este texto anterior tier sido modificado, o -is/AlG pedir sua
confirmao para sal<lo antes que se/a sobreposto.
Abrir: Abre o texto de um pseudocdigo anteriormente graado, substituindo o texto
existente no editor. 1e este tier sido modificado, o -is/AlG pedir sua
confirmao para sal<lo antes que se/a sobreposto.
Sal!ar: 1ala imediatamente o texto presente no editor. !aso se/a a primeira ez que
um noo texto graado, o -is/AlG pedir o nome do arquio e sua localizao.
Sal!ar como: #ermite salar o texto presente no editor exibindo antes uma /anela na
qual se pode escol*er o nome do arquio e sua localizao.
/n!iar por email: #ermite o enio por email do texto presente no editor.
"mprimir: #ermite a impresso do algoritmo corrente, mostrando antes a /anela de
configurao de impresso ,o correspondente boto da barra de tarefas imprime
imediatamente o texto do pseudocdigo na impressora padro..
Sair: Abandona o -is/AlG.
2
DISCIPLINA:ICC II Apostila de Algoritmos
Alm destes comandos, * ainda a lista dos J Rltimos algoritmos utilizados, que podem ser
abertos diretamente ao se escol*er o seu nome.
/ditar: Alm dos con*ecidos comandos de um editor de texto ,copiar, cortar, colar,
desfazer, refazer, selecionar tudo, localizar, localizar de noo, substituir., * tambm as
seguintes opes2
Corrigir indentao: !orrige automaticamente a endentao do pseudocdigo,
tabulando cada comando interno com espaos 3 esquerda.
%ra!ar bloco de te&to: #ermite a graao em arquio de um texto selecionado no
editor. A extenso sugerida para o .inc.
"nserir bloco de te&to: #ermite a insero do conteRdo de um arquio. A extenso
sugerida para o nome do arquio .inc.
/&ibir: #ossui os comandos para atiarZdesatiar as seguintes caracter>sticas2
>mero de linhas: AtiaZdesatia a exibio da numerao das lin*as na rea 3
esquerda do editor. A numerao corrente da posio do cursor tambm mostrada na
primeira parte da barra de status, situada na parte inferior da tela. #or motios tcnicas,
a numerao desatiada durante a execuo do pseudocdigo, oltando 3 situao
anterior logo em seguida.
$ari.!eis modi(icadas: AtiaZdesatia a exibio da ariel que est sendo
modificada. !omo o nRmero de arieis pode ser grande, muitas podem estar fora da
/anela de isualizaoE quando esta caracter>stica est atiada, o -is/AlG rola a
grade de exibio de modo que cada ariel fique is>el no momento em est sendo
modificada. (ste recurso especialmente Rtil quando se executa um pseudocdigo
passo a passo. #or questes de desempen*o, a configurao padro desta
caracter>stica desatiada, quando o pseudocdigo est sendo executado
automaticamente. :o entanto, basta clicar este boto para execut<lo automaticamente
com a exibio atiada. :o final da execuo, a configurao olta a ser desatiada.
2seudocdigo: !ontm os comandos relatios 3 execuo do algoritmo2
/&ecutar: 5nicia ,ou continua. a execuo automtica do pseudocdigo.
2asso a passo: 5nicia ,ou continua. a execuo lin*a por lin*a do pseudocdigo,
dando ao usurio a oportunidade de acompan*ar o fluxo de execuo, os alores das
arieis e a pil*a de atiao dos subprogramas.
/&ecutar com timer: 5nsere um atraso ,que pode ser especificado. antes da
execuo de cada lin*a. %ambm reala em fundo azul o comando que est sendo
executado, da mesma forma que na execuo passo a passo.
2arar: %ermina imediatamente a execuo do pseudocdigo. (identemente, este
item fica desabilitado quando o pseudocdigo no est sendo executado.
+iga5desliga brea6point: 5nsereZremoe um ponto de parada na lin*a em que
este/a o cursor. (stes pontos de parada so Rteis para a depurao e acompan*amento
da execuo dos pseudocdigos, pois permitem a erificao dos alores das arieis
e da pil*a de atiao de subprogramas.
'esmarcar todos os brea6points: &esatia todos os brea^pointsque este/am
atiados naquele momento.
/&ecutar em modo '8S: !om esta opo atiada, tanto a entrada como a sa>da<
padro passa a ser uma /anela que imita o &O1, simulando a execuo de um
programa neste ambiente.
%erar !alores aleatrios: Atia a gerao de alores aleatrios que substituem a
digitao de dados. A faixa padro de alores gerados de Y a GYY inclusie, mas
podeser modificada. #ara a gerao de dados do tipo caractere, no * uma faixa pr<
estabelecida2 os dados gerados sero sempre strings de J letras maiRsculas.
2er(il: Aps a execuo de um pseudocdigo, exibe o nRmero de ezes que cada
umas das suas lin*as foi executada. ; Rtil para a anlise de efici)ncia ,por exemplo, nos
mtodos de ordenao..
2
DISCIPLINA:ICC II Apostila de Algoritmos
2ilha de ati!ao: (xibe a pil*a de subprogramas atiados num dado momento.
!onm utilizar este comando em con/unto com brea^pointsou com a execuo passo a
passo.
+inguagens: #ermite a traduo automtico do pseudocdigo presente no editor para
outras linguagens de programao. Atualmente, apenas a traduo para #ascal est
implementada, mas ainda em fase de testes.
0erramentas: :este menu, poss>el configurar algumas opes do -is/AlG2
cores e tipos de letras na exibio do pseudocdigo, nRmero de espaos para indentao
automtica, etc.
A;uda: (ntre outras coisas, possibilita acesso 3s pginas de a/uda e 3s informaes sobre
o -is/AlG.
,., GA Lin./a.em de Pro.rama38o do -is/Al.
Introd/38o
A linguagem que o -is/AlG interpreta bem simples2
uma erso portuguesa dos pseudocdigos largamente utilizados nos liros de introduo 3
programao, con*ecida como 6#ortugol6.
Xoram acrescentados alguns comandos noos, com o intuito de criar facilidades espec>ficas para o
ensino de tcnicas de elaborao de algoritmos.
5nicialmente, pensaa<se em criar uma sintaxe muito simples e 6liberal6, para que o usurio se
preocupasse apenas com a lgica da resoluo dos problemas e no com as palaras<c*ae,
pontos e >rgulas, etc.
:o entanto, c*eguei depois 3 concluso de que alguma formalidade seria no s necessria como
Rtil, para criar um sentido de disciplina na elaborao do 6cdigo<fonte6.
A linguagem do -is/AlG permite apenas um comando por lin*a2 desse modo, no * necessidade
de to^ens separadores de estruturas, como o ponto e >rgula em #ascal. %ambm no existe o conceito de
blocos de comandos ,que correspondem ao begin e end do #ascal e ao _ e ` do !, nem comandos de
desio incondicional como o go to.
:a erso atual do -is/AlG, com exceo das rotinas de entrada e sa>da, no * nen*um
subprograma embutido, tal como IncCE, SHrCE, OrdCE, C5rCE, PosCE, CopMCE ou outro.
5mportante2 para facilitar a digitao e eitar confuses,
todas as palaras<c*ae do -is/AlG, foram implementadas sem acentos, cedil*a, etc.
#ortanto, o tipo de dados lN.ico definido como logico, o comando se..ent8o..sen8o definido
como se..entao..senao, e assim por diante.
O -is/AlG tambm no distingue maiRsculas e minRsculas no recon*ecimento de palaras<
c*ae e nomes de arieis.
*ormato JLsico do Pse/docNdi.o e Incl/s8o de ComentLrios
O formato bsico do nosso pseudocdigo o seguinte2
algoritmo6semnome6
ZZ Xuno 2
ZZ Autor 2
ZZ &ata 2
ZZ 1eo de &eclaraes
inicio
ZZ 1eo de !omandos
Ximalgoritmo
2
DISCIPLINA:ICC II Apostila de Algoritmos
A primeira lin*a composta pela palara<c*ae algoritmo seguida do seu nome delimitado por aspas
duplas. (ste nome ser usado como t>tulo nas /anelas de leitura de dados ,nas futuras erses do
-is/AlG, talez se/a utilizado este dado de outras formas.. A seo que se segue a de declarao
de arieis, que termina com a lin*a que contm a palara<c*ae inicio. &este ponto em diante est a
seo de comandos, que continua at a lin*a em que se encontre a palara<c*ae fimalgoritmo. (sta Rltima
lin*a marca o final do pseudocdigo2 todo texto existente a partir dela ignorado pelo interpretador.
O -is/AlG permite a incluso de comentrios2
qualquer texto precedido de 6ZZ6 ignorado, at se atingir o final da sua lin*a. #or este motio,
os comentrios no se estendem por mais de uma lin*a2 quando se dese/a escreer
comentrios mais longos, que ocupem rias lin*as, cada uma delas deer comear por 6ZZ6.
Tipos de Dados
O -is/AlG pre) quatro tipos de dados2
inteiro,
real,
cadeia de caracteres e
lgico,ou booleano..
As palaras<c*ae que os definem so as seguintes ,obsere que elas no t)m acentuao.2
inteiro2 define arieis numricas do tipo inteiro, ou se/a, sem casas decimais.
real2 define arieis numricas do tipo real, ou se/a,com casas decimais.
caractere2 define arieis do tipo string, ou se/a, cadeia de caracteres.
logico2 define arieis do tipo booleano, ou se/a, com alor A('&A&(5'O ou XA01O.
O -is/AlG permite tambm a declarao de arieis estruturadas atras da palara<c*ae
!etor, como ser explicado a seguir.
Nomes de -ariL=eis e s/a declara38o
Os nomes das arieis deem comear por uma letra e depois conter letras, nRmeros ou
underline, at um limite de ?Y caracteres.
As arieis podem ser simples ou estruturadas ,na erso atual, os etores podem ser de uma
ou duas dimenses..
:o pode *aer duas arieis com o mesmo nome, com a natural exceo dos elementos de
um mesmo =etor.
A seo de declarao de arieis comea com a palara<c*ae =ar, e continua com as
seguintes sintaxes2
<lista-de-variveis>: <tipo-de-dado>
<lista-de-variveis>: vetor "["<lista-de-intervalos>"]" de <tipo-de-dado>
:a alista<de<arieisP, os nomes das arieis esto separados por >rgulas.
:a alista<de<interalosP, os ainteraloPso separados por >rgulas, e t)m a seguinte sintaxe2
<intervalo>: <valor-inicial>.. <valor-final>
:a erso atual do -is/AlG, tanto aalor<inicialPcomo aalor<finalPdeem ser inteiros.
Alm disso, exige<se eidentemente que aalor<finalPse/a maior do que aalor<inicialP.
(xemplos2
var a: inteiro
Valor1, Valor2: real
vet: vetor [1..10] de real
matriz: vetor [0..,!..10] de inteiro
nome"do"al#no: caractere
sinalizador: lo$ico
:ote que no * a necessidade de ponto e >rgula aps cada declarao2 basta pular lin*a.
A declarao de etores anloga 3 linguagem #ascal2 a ariel et acima tem GY elementos,
com os >ndices de bGc a bGYc, enquanto matriz corresponde a GJ elementos com >ndices bY,Nc,
2
DISCIPLINA:ICC II Apostila de Algoritmos
bY,Oc, bY,GYc, bG,Nc, bG,Oc, bG,GYc, ... at bI,GYc. O nRmero total de arieis suportado pelo AisuAlg
JYY ,cada elemento de um etor contado indiidualmente..
Constantes e Comando de Atri/i38o
O -is/AlG tem tr)s tipos de constantes2
d um?ricos: so alores numricos escritos na forma usual das linguagens de programao.
#odem ser inteiros ou reais. :este Rltimo caso, o separador de decimais o ponto e no a
>rgula, independente da configurao regional do computador onde o AisuAlg est sendo
executado. O -is/AlG tambm no suporta separadores de mil*ares.
d Caracteres: qualquer cadeia de caracteres delimitada por aspas duplas ,6..
d +gicos: admite os alores A('&A&(5'O ou XA01O.
A atribuio de alores a arieis feita com o operador O@. &o seu lado esquerdo fica a ariel 3 qual
est sendo atribu>do o alor, e 3 sua direita pode<se colocar qualquer expresso ,constantes, arieis,
expresses numricas., desde que seu resultado ten*a tipo igual ao da ariel.
Alguns exemplos de atribuies, usando as arieis declaradas acima2
a <- %
Valor1 <- 1.&
Valor2 <- Valor1 ' a
vet[1] <- vet[1] ' (a ) %*
matriz[%,+] <- a, - &
nome"do"al#no <- "-os. da /ilva"
sinalizador <- 012/3
Operadores Aritm<ticos
PQ@
Operadores /nLriosQ isto <Q s8o aplicados a /m Rnico operando. S8o os
operadores aritm<ticos de maior precedSncia.
&;emplos: @+Q P;.
&nH/anto o operador /nLrio @in=erte o sinal do se/ operandoQ o operador
P n8o altera o =alor em nada o se/ =alor.
T
Operador de di=is8o inteira.
Por e;emploQ , T ! U !.
Tem a mesma precedSncia do operador de di=is8o tradicional.
PQ@QVQW
Operadores aritm<ticos tradicionais de adi38oQ s/tra38oQ m/ltiplica38o
e di=is8o.
Por con=en38oQ Ve W tSm precedSncia sore Pe @.
Para modificar a ordem de a=alia38o das opera3XesQ < necessLrio /sar
parSnteses como em H/alH/er e;press8o aritm<tica.
MOD o/
Y
Operador de mNd/lo Cisto <Q resto da di=is8o inteiraE.
Por e;emploQ F MOD + U !.
Tem a mesma precedSncia do operador de di=is8o tradicional.
Z
Operador de potencia38o.
Por e;emploQ , Z ! U !,.
Tem a maior precedSncia entre os operadores aritm<ticos inLrios
CaH/eles H/e tSm dois operandosE.
Operadores de Caracteres
P
Operador de concatena38o de strin.sQ isto <Q cadeias de caracteresQ
H/ando /sado com dois =alores C=ariL=eis o/ constantesE do tipo
2
DISCIPLINA:ICC II Apostila de Algoritmos
[caractere[.
Por e;emplo: [Rio [ P [ de \aneiro[ U [Rio de \aneiro[.
Operadores Relacionais
UQ OQ
]Q OUQ
]UQ
O]
Respecti=amente: i./alQ menor H/eQ maior H/eQ menor o/ i./al aQ maior
o/ i./al aQ diferente de.
S8o /tili^ados em e;pressXes lN.icas para se testar a rela38o entre dois
=alores do mesmo tipo.
&;emplos: + U + C + < i./al a +_E res/lta em -&RDAD&IRO` [A[ ] [J[C[A[
estL depois de [J[ na ordem alfa<tica_E res/lta em *ALSO.
"mportante: o -is/AlG,
as comparaes entre strings no diferenciam as letras maiRsculas das minRsculas. Assim, 6AU!6
igual a 6abc6.
Aalores lgicos obedecem 3 seguinte ordem2 XA01O a A('&A&(5'O.
Operadores LN.icos
nao
Operador /nLrio de ne.a38o.
nao -&RDAD&IRO U *ALSOQ e nao *ALSO U -&RDAD&IRO.
Tem a maior precedSncia entre os operadores lN.icos.
&H/i=ale ao NOTdo Pascal.
o/
Operador H/e res/lta -&RDAD&IROQ H/ando /m dos se/s operandos
lN.icos for =erdadeiro.
&H/i=ale ao OR do Pascal.
Taela@-erdade: Q onde O representa *ALSO e #
-&RDAD&IRO.
e
Operador H/e res/lta -&RDAD&IRO somente se se/s dois operandos
lN.icos forem =erdadeiros.
&H/i=ale ao AND do Pascal.
Taela@-erdade: Q onde O representa *ALSO e #
-&RDAD&IRO.
;o/
Operador H/e res/lta -&RDAD&IRO se se/s dois operandos lN.icos
forem diferentesQ e *ALSOs e forem i./ais.
&H/i=ale ao 2OR do Pascal.
Taela@-erdade: Q onde O representa *ALSO e #
-&RDAD&IRO.
Comandos de saada de dados
escre!a (@lista-de-e&pressAesB)
2
DISCIPLINA:ICC II Apostila de Algoritmos
(scree no dispositio de sa>da padro ,isto , na rea 3 direita da metade inferior da tela do
-is/AlG. o conteRdo de cada uma das expresses que compem alista<de<expressesP. As
expresses dentro desta lista deem estar separadas por >rgulasE depois de serem aaliadas, seus
resultados so impressos na ordem indicada. ; equialente ao comando Irite do #ascal.
&e modo semel*ante a #ascal, poss>el especificar o nRmero de espaos no qual se dese/a
escreer um determinado alor.
#or exemplo, o comando escrea,x2J.escree o alor da ariel x em J espaos, alin*ado<o 3
direita. #ara arieis reais, pode<se tambm especificar o nRmero de casas fracionrias que sero
exibidas.
#or exemplo, considerando Tcomo uma ariel real, o comando escrea,T2K2H.escree seu alor
em K espaos colocando H casas decimais.
escre!al (@lista-de-e&pressAesB)C
5dem ao anterior, com a Rnica diferena que pula uma lin*a em seguida. ; equialente ao Iriteln
do #ascal.
(xemplos2
al$oritmo "e4emplo"
var 4: real
5: inteiro
a: caractere
2: lo$ico
inicio
4 <- 2.&
5 <- 6
a <- "teste"
2 <- V789197:83
escreval ("4", 4::1, 5'%:* ,, 7screve: 4 2.& +
escreval (a, "o;"* ,, 7screve: testeo; (e depois p#la lin<a*
escreval (a, " o;"* ,, 7screve: teste o; (e depois p#la lin<a*
escreval (a ' " o;"* ,, 7screve: teste o; (e depois p#la lin<a*
escreva (2* ,, 7screve: V789197:83
fimal$oritmo
:ote que o -is/AlG separa expresses do tipo numrico e lgico com um espao 3 esquerda,
mas no as expresses do tipo caractere, para que assim possa *aer a concatenao. Muando se dese/a
separar expresses do tipo caractere, necessrio acrescentar espaos nos locais adequados.
Comandos de entrada de dados
leia (@lista-de-e&pressAesB)
'ecebe alores digitados pelos usurio, atribuindo<os 3s arieis cu/os nomes esto em alista<de<
arieisP , respeitada a ordem especificada nesta lista.. ; anlogo ao comando read do #ascal. Ae/a no
exemplo abaixo o resultado2
al$oritmo "e4emplo 1"
var 4: inteiro=
inicio
leia (4*
escreva (4*
fimal$oritmo
O comando de leitura acima ir exibir uma /anela como a que se ) a seguir, com a mensagem padro2
6(ntre com o alor de anome<de<arielP6
2
DISCIPLINA:ICC II Apostila de Algoritmos
1e oc) clicar em Cancelar ou teclar &sc durante a leitura de dados, o programa ser
imediatamente interrompido.
Comandos de Des=io Condicional
se @e&presso-lgicaBentao
@se=uDncia-de-comandosB
(imse
Ao encontrar este comando, o -is/AlG analisa a aexpresso<lgicaP.
1e o seu resultado for A('&A&(5'O, todos os comandos da asequ)ncia<de<comandosP
,entre esta lin*a e a lin*a com fimse. so executados.
1e o resultado for XA01O, estes comandos so desprezados e a execuo do algoritmo
continua a partir da primeira lin*a depois do fimse.
se @e&presso-lgicaBentao
@se=uDncia-de-comandos-<B
senao
@se=uDncia-de-comandos-4B
(imse
:esta outra forma do comando,
se o resultado da aaliao de aexpresso<lgicaPfor A('&A&(5'O, todos os comandos
da asequ)ncia<de<comandos<GP,entre esta lin*a e a lin*a com senao. so executados, e a
execuo continua depois a partir da primeira lin*a depois do fimse.
1e o resultado for XA01O, estes comandos so desprezados e o algoritmo continua a ser
executado a partir da primeira lin*a depois do senao, executando todos os comandos da
asequ)ncia<de<comandos<HP,at a lin*a com fimse..
(stes comandos equialem ao if...t5en e if...t5en...else do #ascal.
Obs2 :ote que no * necessidade de delimitadores de bloco ,como e.in e end., pois as
sequ)ncias de comandos / esto delimitadas pelas palaras<c*ae seno e fimse.
O AisuAlg permite o anin*amento desses comandos de desio condicional.
Comandos de Sele38o MRltipla
O -is/AlG implementa ,com certas ariaes. o comando casedo #ascal. A sintaxe a seguinte2
escolha @e&presso-de-seleoB
caso @e&p<<B, @e&p<4B, CCC, @e&p<nB
@se=uDncia-de-comandos-<B
caso @e&p4<B, @e&p44B, CCC, @e&p4nB
@se=uDncia-de-comandos-4B
CCC
outrocaso
@se=uDncia-de-comandos-e&traB
(imescolha
Ae/a o exemplo a seguir, que ilustra bem o que faz este comando2
algoritmo EFimesE
!ar time: caractere
inicio
escre!a (E/ntre com o nome de um time de (utebol: E)
leia (time)
escolha time
caso E0lamengoE, E0luminenseE, E$ascoE, EGota(ogoE
escre!al (EH um time cariocaCE)
caso ESo 2auloE, E2almeirasE, ESantosE, ECorInthiansE
escre!al (EH um time paulistaCE)
2
DISCIPLINA:ICC II Apostila de Algoritmos
outrocaso
escre!al (EH de outro estadoCE)
(imescolha
(imalgoritmo
Comandos de Repeti38o
O -is/AlG implementa as tr)s estruturas de repetio usuais nas linguagens de programao2
G. o lao contado paraCCCateCCC(aca ,similar ao for...to...do do #ascal., e
H. os laos condicionados en=uantoCCC(aca ,similar ao I5ile...do. e
?. repitaCCCate ,similar ao repeat.../ntil..
A sintaxe destes comandos explicada a seguir.
Para ... fa3a
(sta estrutura repete uma sequ)ncia de comandos um determinado nRmero de ezes.
para @!ari.!elBde @!alor-inicialBate @!alor-limiteBJpasso @incrementoBK (aca
@se=uDncia-de-comandosB
0impara
O=ariL=el]
b a =ariL=el contadora H/e controla o nRmero de repeti3Xes do
la3o.
Na =ers8o at/alQ de=e ser necessariamente /ma =ariL=el do tipo
inteiroQ como todas as e;pressXes deste comando.
O=alor@inicial]
b /ma e;press8o H/e especifica o =alor de iniciali^a38o da
=ariL=el contadora antes da primeira repeti38o do la3o.
O=alor@limite]
b /ma e;press8o H/e especifica o =alor mL;imo H/e a=ariL=el
contadora pode alcan3ar.
Oincremento]
b opcional.
K/ando presenteQ precedida pela pala=ra passoQ < /ma
e;press8o H/e especifica o incremento H/e serL acrescentado c
=ariL=el contadora em cada repeti38o do la3o.
K/ando esta op38o n8o < /tili^adaQ o =alor padr8o de
Oincremento] < #.
-ale a pena ter em conta H/e tam<m < possa=el especificar
=alores ne.ati=os para Oincremento].
Por o/tro ladoQ se a a=alia38o da e;press8o Oincremento]
res/ltar em =alor n/loQ a e;ec/38o do al.oritmo serL
interrompidaQ com a impress8o de /ma mensa.em de erro.
fimpara
Indica o fim da seH/Sncia de comandos a serem repetidos.
Cada =e^ H/e o pro.rama c5e.a neste pontoQ < acrescentado c
=ariL=el contadora o =alor de Oincremento]Q e comparado a
O=alor@limite ].
Se for menor o/ i./al Co/ maior o/ i./alQ H/ando Oincremento]
for ne.ati=oEQ a seH/Sncia de comandos serL e;ec/tada mais
/ma =e^` caso contrLrioQ a e;ec/38o prosse./irL a partir do
primeiro comando H/e este9a apNs o fimpara.
aalor<inicial P, aalor<limite P e aincremento Pso aaliados uma Rnica ez antes da execuo da
primeira repetio, e no se alteram durante a execuo do lao, mesmo que arieis
eentualmente presentes nessas expresses ten*am seus alores alterados.
2
DISCIPLINA:ICC II Apostila de Algoritmos
:o exemplo a seguir, os nRmeros de G a GY so exibidos em ordem crescente.
algoritmo E>meros de < a <LE
!ar ;: inteiro
inicio
para ; de < ate <L (aca
escre!a (;::)
(impara
(imalgoritmo
5mportante2
1e, logo no in>cio da primeira repetio, aalor<inicial P for maior que aalor<limite P ,ou menor,
quando aincrementoPfor negatio., o lao no ser executado nen*uma ez.
O exemplo a seguir no imprime nada.
algoritmo Eumeros de <L a < (no (unciona)E
!ar ;: inteiro
inicio
para ; de <L ate < (aca
escre!a (;::)
(impara
(imalgoritmo
(ste outro exempo, no entanto, funcionar por causado passo <G2
algoritmo Eumeros de <L a < (este (unciona)E
!ar ;: inteiro
inicio
para ; de <L ate < passo -< (aca
escre!a (;::)
(impara
(imalgoritmo
&nH/anto ... fa3a
(sta estrutura repete uma sequ)ncia de comandos enquanto uma determinada condio
,especificada atras de uma expresso lgica. for satisfeita.
en=uanto @e&presso-lgicaB(aca
@se=uDncia-de-comandosB
(imen=uanto
Oe;press8o@
lN.ica]
&sta e;press8o < a=aliada antes de cada repeti38o do la3o.
K/ando se/ res/ltado for -&RDAD&IROQ OseH/Sncia@de@
comandos] < e;ec/tada.
fimenH/anto
Indica o fim da OseH/Sncia@de@comandos] H/e serL repetida.
Cada =e^ H/e a e;ec/38o atin.e este pontoQ =olta@se ao
inacio do la3o para H/e Oe;press8o@lN.ica] se9a a=aliada
no=amente.
Se o res/ltado desta a=alia38o for -&RDAD&IROQ a
OseH/Sncia@de@comandos]serL e;ec/tada mais /ma =e^`
caso contrLrioQ a e;ec/38o prosse./irL a partir do primeiro
comando apNs fimenH/anto.
O mesmo exemplo anterior pode ser resolido com esta estrutura de repetio2
algoritmo E>meros de < a <L (com en=uantoCCC(aca)E
!ar ;: inteiro
inicio
2
DISCIPLINA:ICC II Apostila de Algoritmos
; @- L
en=uanto ; @ <L (aca
; @- ; M <
escre!a (;::)
(imen=uanto
(imalgoritmo
5mportante2
o !omo o lao enquanto...faca testa sua condio de parada antes de executar sua
sequ)ncia de comandos, esta sequ)ncia poder ser executada zero ou mais ezes.
Repita ... at<
(sta estrutura repete uma sequ)ncia de comandos at que uma determinada condio
,especificada atras de uma expresso lgica. se/a satisfeita.
repita
@se=uDncia-de-comandosB
ate @e&presso-lgicaB
Repita
Indica o inacio do la3o.
ate Oe;press8o@
lN.ica]
Indica o fim da OseH/Sncia@de@comandos] a serem
repetidos.
Cada =e^ H/e o pro.rama c5e.a neste pontoQ Oe;press8o@
lN.ica] < a=aliada: se se/ res/ltado for *ALSOQ os
comandos presentes entre esta lin5a e a lin5a repita s8o
e;ec/tados` caso contrLrioQ a e;ec/38o prosse./irL a
partir do primeiro comando apNs esta lin5a.
!onsiderando ainda o mesmo exemplo2
algoritmo E>meros de < a <L (com repita)E
!ar ;: inteiro
inicio
; @- L
repita
; @- ; M <
escre!a (;::)
ate ; N <L
(imalgoritmo
5mportante2
o !omo o lao repita...ate testa sua condio de parada depois de executar sua sequ)ncia de
comandos, esta seqW)ncia poder ser executada uma ou mais ezes.
Comando Interrompa
As tr)s estruturas de repetio acima permitem o uso do comando interrompa, que causa uma
sa>da imediata do lao. (mbora esta tcnica este/a de certa forma em desacordo com os princ>pios da
programao estruturada, o comando interrompa foi inclu>do no -is/AlG por ser encontrado na
literatura de introduo 3 programao e mesmo em linguagens como o Ob/ect #ascal ,&elp*iZ[Tlix.,
!lipper, AU, etc.
2
DISCIPLINA:ICC II Apostila de Algoritmos
1eu uso exemplificado a seguir2
algoritmo E>meros de < a <L (com interrompa)E
!ar &: inteiro
inicio
& @- L
repita
& @- & M <
escre!a (&::)
se & N <L entao
interrompa
(imse
ate (also
(imalgoritmo
3 AisuAl4 permite ainda #ma forma alternativa do comando repita...ate, com a se$#inte
sinta4e:
algoritmo E>meros de < a <L (com interrompa) ""E
!ar &: inteiro
inicio
& @- L
repita
& @- & M <
escre!a (&::)
se & N <L entao
interrompa
(imse
(imrepita
(imalgoritmo
!om esta sintaxe alternatia, o uso do interrompa obrigatrio, pois a Rnica maneira de se sair do
lao repita...fimrepitaE caso contrrio, este lao seria executado indeterminadamente.
S/pro.rama
d ; um programa que auxilia o programa principal atras da realizao de uma determinada
subtarefa. %ambm costuma receber os nomes de sub<rotina, procedimento, mtodo ou mdulo.
d Os subprogramas so c*amados dentro do corpo do programa principal como se fossem
comandos.
d Aps seu trmino, a execuo continua a partir do ponto onde foi c*amado.
d ; importante compreender que a c*amada de um subprograma simplesmente gera um desio
proisrio no fluxo de execuo.
d e um caso particular de subprograma que recebe o nome de funo. $ma funo, alm de
executar uma determinada tarefa, retorna um alor para quem a c*amou, que o resultado da sua
execuo. #or este motio, a c*amada de uma funo aparece no corpo do programa principal
como uma expresso, e no como um comando.
d !ada subprograma, alm de ter acesso 3s arieis do programa que o c*amou ,so as arieis
globais., pode ter suas prprias arieis ,so as arieis locais., que existem apenas durante sua
c*amada.
d Ao se c*amar um subprograma, tambm poss>el passar<l*e determinadas informaes que
recebem o nome de par+metros ,so alores que, na lin*a de c*amada, ficam entre os par)nteses
e que esto separados por >rgulas..
d A quantidade dos par+metros, sua sequ)ncia e respectios tipos no podem mudar2 deem estar de
acordo com o que foi especificado na sua correspondente declarao.
d #ara se criar subprogramas, preciso descre)<los aps a declarao das arieis e antes do
corpo do programa principal.
d O -is/AlG possibilita declarao e c*amada de subprogramas nos moldes da linguagem
#ascal, ou se/a, procedimentos e funes com passagem de par+metros por alor ou refer)ncia.
5sso ser explicado a seguir.
2
DISCIPLINA:ICC II Apostila de Algoritmos
d Procedimentos
(m -is/AlG, procedimento um subprograma que no retorna nen*um alor
,corresponde ao proced/re do #ascal..
1ua declarao, que dee estar entre o final da declarao de arieis e a lin*a inicio do programa
principal, segue a sintaxe abaixo2
procedimento @nome-de-procedimentoBJ(@se=ODncia-de-declaraAes-de-
parPmetrosB)K
55 Seo de 'eclaraAes "nternas
inicio
55 Seo de Comandos
(improcedimento
O <nome-de-procedimento> obedece as mesmas regras de nomenclatura das arieis. #or outro
lado, a <se>#?ncia-de-declara@Aes-de-parBmetros> uma sequ)ncia de d!arK @se=uDncia-de-
parPmetrosB:@tipo-de-dadoB separadas por ponto e >rgula.
A presena ,opcional. da palara<c*ae ar indica passagem de par+metros por refer)nciaE caso
contrrio, a passagem ser por alor.
#or sua ez, <se>#?ncia-de-parBmetros> uma sequ)ncia de nomes de par+metros ,tambm
obedecem a mesma regra de nomenclatura de arieis. separados por >rgulas.
&e modo anlogo ao programa principal, a seo de declarao internas comea com a palara<
c*ae =ar, e continua com a seguinte sintaxe2
@lista-de-!ari.!eisB: @tipo-de-dadoB
:os prximos exemplos, atras de um subprograma soma, ser calculada a soma entre os alores
I e FO ,ou se/a, ser obtido o resultado G?. que o programa principal imprimir em seguida.
:o primeiro caso, um procedimento sem par+metros utiliza uma ariel local aux para armazenar
proisoriamente o resultado deste clculo ,eidentemente, esta ariel desnecessria, mas est a>
apenas para ilustrar o exemplo., antes de atribu><lo 3 ariel global res2
procedimento soma
!ar au&: inteiro
inicio
55 n, m e res so !ari.!eis globais
au& @- n M m
res @- au&
(improcedimento
:o programa principal dee *aer os seguintes comandos2
n @- Q
m @- -1
soma
escre!a(res)

A mesma tarefa poderia ser executada atras de um procedimento com par+metros, como descrito
abaixo2
procedimento soma (&,R: inteiro)
inicio
55 res ? !ari.!el global
res @- & M R
(improcedimento
:o programa principal dee *aer os seguintes comandos2
n @- Q
m @- -1
soma(n,m)
escre!a(res)
A passagem de par+metros do exemplo acima c*ama<se passagem por alor. :este caso, o
subprograma simplesmente recebe um alor que utiliza durante sua execuo. &urante essa execuo, os
par+metros passados por alor so anlogos 3s suas arieis locais, mas com uma Rnica diferena2
receberam um alor inicial no momento em que o subprograma foi c*amado.
2
DISCIPLINA:ICC II Apostila de Algoritmos
d */n3Xes
(m -is/AlG, f/n38o um subprograma que retorna um alor ,corresponde ao f/nction do
#ascal.. &e modo anlogo aos procedimentos, sua declarao dee estar entre o final da declarao de
arieis e a lin*a inicio do programa principal, e segue a sintaxe abaixo2
(uncao @nome-de-(unoBJ(@se=ODncia-de-declaraAes-de-parPmetrosB)K: @tipo-de-
dadoB
55 Seo de 'eclaraAes "nternas
inicio
55 Seo de Comandos
(im(uncao
O <nome-de-f#n@Co> obedece as mesmas regras de nomenclatura das arieis.
#or outro lado, a <se>#?ncia-de-declara@Aes-de-parBmetros> uma sequ)ncia de barc
<se>#?ncia-de-parBmetros>:<tipo-de-dado> separadas por ponto e >rgula. A presena ,opcional. da
palara<c*ae var indica passagem de par+metros por refer)nciaE caso contrrio, a passagem ser por
alor.
#or sua ez, <se>#?ncia-de-parBmetros> uma sequ)ncia de nomes de par+metros ,tambm
obedecem a mesma regra de nomenclatura de arieis. separados por >rgulas.
O alor retornado pela funo ser do tipo especificado na sua declarao ,logo aps os dois
pontos..
(m alguma parte da funo ,de modo geral, no seu final., este alor dee ser retornado atras do
comando retorne.
&e modo anlogo ao programa principal, a seo de declarao internas comea com a palara<
c*ae ar, e continua com a seguinte sintaxe2
@lista-de-!ari.!eisB: @tipo-de-dadoB
Aoltando ao exemplo anterior, no qual calculamos e imprimimos a soma entre os alores I e FO,
amos mostrar como isso poderia ser feito atras de uma funo sem par+metros. (la tambm utiliza uma
ariel local aux para armazenar proisoriamente o resultado deste clculo, antes de atribu><lo 3 ariel
global res2
(uncao soma: inteiro
!ar au&: inteiro
inicio
55 n, m e res so !ari.!eis globais
au& @- n M m
retorne au&
(im(uncao
:o programa principal dee *aer os seguintes comandos2
n @- Q
m @- -1
res @- soma
escre!a(res)
1e realizssemos essa mesma tarefa com uma funo com par+metros passados por alor, poderia
ser do seguinte modo2
(uncao soma (&,R: inteiro): inteiro
inicio
retorne & M R
(im(uncao
o programa principal de!e ha!er os seguintes comandos:
n @- Q
m @- -1
res @- soma(n,m)
escre!a(res)
d Passa.em de Paremetros por referSncia
2
DISCIPLINA:ICC II Apostila de Algoritmos
e ainda uma outra forma de passagem de par+metros para subprogramas2 a passagem por
refer)ncia.
:este caso, o subprograma no recebe apenas um alor, mas sim o endereo de uma ariel
global. #ortanto, qualquer modificao que for realizada no conteRdo deste par+metro afetar tambm a
ariel global que est associada a ele.
&urante a execuo do subprograma, os par+metros passados por refer)ncia so anlogos 3s
arieis globais.
:o -is/AlGQ de forma anloga a #ascal, essa passagem feita atras da palara ar na
declarao do par+metro. Aoltando ao exemplo da soma, o procedimento abaixo realiza a mesma tarefa
utilizando passagem de par+metros por refer)ncia2
procedimento soma (&,R: inteiroS !ar result: inteiro)
inicio
result @- & M R
(improcedimento
o programa principal de!e ha!er os seguintes comandos:
n @- Q
m @- -1
soma(n,m,res)
escre!a(res)
d Rec/rsi=idade e Anin5amento
A atual erso do -is/AlG permite recurso ou recursiidade, isto , a possibilidade de que um
subprograma possa c*amar a si mesmo. A funo do exemplo abaixo calcula recursiamente o fatorial do
nRmero inteiro que recebe como par+metro2
(uncao (atorial (!: inteiro): inteiro
inicio
se ! @N 4 entao
retorne !
senao
retorne ! T (atorial(!-<)
(imse
(im(uncao
(m #ascal, permitido o anin*amento de subprogramas, isto , cada subprograma tambm pode
ter seus prprios subprogramas. :o entanto, esta caracter>stica dificulta a elaborao dos compiladores e,
na prtica, no muito importante. #or este motio, ela no permitida na maioria das linguagens de
programao ,como !, por exemplo., e o -is/AlG no a implementa.
O -is/AlG implementa algumas extenses 3s linguagens 6tradicionais6 de programao, com
o intuito principal de a/udar o seu uso como ferramenta de ensino. (las so mostradas a seguir.
d Comando AleatNrio
"uitas ezes a digitao de dados para o teste de um programa torna<se uma tarefa entediante. !om o
uso do comando aleatrio do -is/AlG, sempre que um comando leia for encontrado, a digitao de
alores numricos eZou caracteres substitu>da por uma gerao aleatria. (ste comando no afeta a
leitura de arieis lgicas2 com certeza, uma coisa pouco usual em programao...
2
DISCIPLINA:ICC II Apostila de Algoritmos
(ste comando tem as seguintes sintaxes2
aleatorio donf
Ati=a a .era38o de =alores aleatNrios H/e
s/stit/em a di.ita38o de dados.
A pala=ra@c5a=e on < opcional.
A fai;a padr8o de =alores .erados < de " a #""Q
incl/si=e.
Para a .era38o de dados do tipo caractereQ n8o
5L /ma fai;a pr<@estaelecida: os dados
.erados ser8o sempre strin.sd e , letras
maiRsc/las.
aleatorio O=alor# ]dQ
O=alor!]f
Ati=a a .era38o de dados n/m<ricos aleatNrios
estaelecendo /ma fai;a de =alores manimos e
mL;imos.
Se apenas O =alor#] for fornecidoQ a fai;a serL
de " a O=alor#] incl/si=e` caso contrLrioQ a fai;a
serL de O=alor#] a O=alor!]Q incl/si=e.
Se O=alor!]for menor H/e O=alor#]Q o -is/alG os
trocarL para H/e a fai;a fiH/e correta.
Importante: O=alor#]e O=alor!]de=em ser
constantes n/m<ricasQ e n8o e;pressXes...
aleatorio off
Desati=a a .era38o de =alores aleatNrios.
A pala=ra@c5a=e off < ori.atNria
ArH/i=os
"uitas ezes necessrio repetir os testes de um programa com uma srie igual de dados. #ara casos
como este, o -is/AlG permite o armazenamento de dados em um arquio<texto, obtendo deles os
dados ao executar os comandos leia.
(sta caracter>stica funciona da seguinte maneira2
G. 1e no existir o arquio com nome especificado, o -is/AlG far uma leitura de dados
atras da digitao, armazenando os dados lidos neste arquio, na ordem em que forem
fornecidos.
H. 1e o arquio existir, o -is/AlG obter os dados deste arquio at c*egar ao seu fim. &a>
em diante, far as leituras de dados atras da digitao.
?. 1omente um comando arquio pode ser empregado em cada pseudocdigo, e ele deer estar
na seo de declaraes ,dependendo do 6sucesso6 desta caracter>stica, em futuras erses
ela poder ser mel*orada.....
I. !aso no se/a fornecido um camin*o, o -is/AlG ir procurar este arquio na pasta de
trabal*o corrente ,geralmente, a pasta onde o programa A51$A04.(]( est.. (ste comando
no pre) uma extenso padroE portanto, a especificao do nome do arquio dee ser
completa, inclusie com sua extenso ,por exemplo, .txt, .dat, etc...
A sintaxe do comando 2
ar=ui!o @nome-de-ar=ui!oB
@nome-de-ar=ui!oB? uma constante caractere (entre aspas duplas)C $e;a o e&emplo a
seguir:
algoritmo Elendo do ar=ui!oE
ar=ui!o EtesteCt&tE
!ar &,R: inteiro
inicio
para & de < ate 7 (aca
leia (R)
(impara
(imalgoritmo
2
DISCIPLINA:ICC II Apostila de Algoritmos
Comando Timer
(mbora o -is/AlG se/a um interpretador de pseudocdigo, seu desempen*o muito bom2 o
tempo gasto para interpretar cada lin*a digitada apenas uma frao de segundo.
(ntretanto, por motios educacionais, pode ser coneniente exibir o fluxo de execuo do pseudocdigo
comando por comando, em 6c+mera lenta6.
O comando timer sere para este propsito2 insere um atraso ,que pode ser especificado. antes da
execuo de cada lin*a. Alm disso, reala em fundo azul o comando que est sendo executado, da
mesma forma que na execuo passo a passo.
1ua sintaxe a seguinte2
timer on
Ati=a o timer
timer Otempo@de@
atraso]
Ati=a o timer estaelecendo se/ tempo de atraso em
milisse./ndos.
O =alor padr8o < ,""Q H/e eH/i=ale a meio se./ndo.
O ar./mento Otempo@de@atraso]de=e ser /ma
constante inteira com =alor entre " e #"""".
-alores menores H/e " s8o corri.idos para "Q e
maiores H/e #"""" para #"""".
timer off
Desati=a o timer.
Ao longo do pseudocdigo, pode *aer rios comandos timer. %odos eles deem estar na seo de
comandos. $ma ez atiado, o atraso na execuo dos comandos sermantido at se c*egar ao final do
pseudocdigo ou at ser encontrado um comando timer off.
Comando Dep/ra38o
:en*um ambiente de desenolimento est completo seno *ouer a possibilidade de se inserir pontos
de interrupo ,brea^points. no pseudocdigo para fins de depurao.
-is/AlG implementa dois comandos que auxiliam a depurao ou anlise de um pseudocdigo2
d o comando pausa e
d o comando debugC
Comando Pa/sa
1ua sintaxe simplesmente2
pausa
(ste comando insere uma interrupo incondicional no pseudocdigo.
Muando ele encontrado, o -is/AlG pra a execuo do pseudocdigo e espera alguma ao do
programador. :este momento, poss>el2
d analisar os alores das arieis ou das sa>das produzidas at o momentoE
d executar o pseudocdigo passo a passo ,com XN.E
d prosseguir sua execuo normalmente ,com XO.E
d ou simplesmente termin<lo ,com !trl<XH.. !om exceo da alterao do texto do
pseudocdigo, todas as funes do AisuAlg esto dispon>eis.
Comando De/.
1ua sintaxe 2
debug @e&presso-lgicaB
2
DISCIPLINA:ICC II Apostila de Algoritmos
1e a aaliao de @e&presso-lgicaB resultar em alor A('&A&(5'O, a execuo do pseudocdigo
ser interrompida como no comando pausa. &essa forma, poss>el a insero de um brea^point
condicional no pseudocdigo.
Comando &co
1ua sintaxe 2
eco on U o((
(ste comando atia ,eco on. ou desatia ,eco off. a impresso dos dados de entrada na sa>da<
padro do -is/AlGQ ou se/a, na rea 3 direita da parte inferior da tela.
(sta caracter>stica pode ser Rtil quando *ouer uma grande quantidade de dados de entrada, e se
dese/a apenas analisar a sa>da produzida.
!onm utiliz<la tambm quando os dados de entrada pro)m de um arquio / con*ecido.
Comando Cron6metro
1ua sintaxe 2
cronometro on U o((
(ste comando atia ,cronometro on. ou desatia ,cronometro off. o cron=metro interno do
-is/AlG.
Muando o comando cronometro on encontrado, o -is/AlG imprime na sa>da<padro a
informao 6!ron=metro iniciado.6, e comea a contar o tempo em milissegundos.
Muando o comando cronometro o(( encontrado, o -is/AlG imprime na sa>da<padro a
informao ECronVmetro terminadoC Fempo decorrido: && segundo(s) e && msEC
(ste comando Rtil na anlise de desempen*o de algoritmos ,ordenao, busca, etc...
Comando Limpatela
1ua sintaxe 2
limpatela
(ste comando simplesmente limpa a tela &O1 do -is/AlG ,a simulao da tela do
computador.. (le no afeta a 6tela6 que existe na parte inferior direita da /anela principal do -is/AlG.
A/to@di.ita38o e S/.est8o de Di.ita38o
A$%O<&545%A78O
O -is/AlG tem uma caracter>stica para a criao de pseudocdigos que pode aumentar a rapidez
da digitao e tambm diminuir a possibilidade de erros2 a A$%O<&545%A78O.
#ara utilizar esta caracter>stica, basta escreer uma abre!iatura da pala!ra-cha!e ou do comando a
ser digitado e teclar Ctrl-/spao. O AisuAlg completa ento o comando automaticamente, colocando o
cursor no ponto adequado para se continuar a digitao ,nos exemplos abaixo, este ponto indicado
atras de um f..
(is a lista de abreiaturas com os respectios comandos2
V < ,#onto de exclamao. !ria um modelo de pseudocdigo.
algoritmo EsemnomeE
T
inicio
(imalgoritmo
2
DISCIPLINA:ICC II Apostila de Algoritmos
W - Cria um cabealho de programaC
55 Algoritmo : T
55 0uno :
55 Autor :
55 'ata :
G. ale, ao(, aon - 5nserem os comandos aleatorioQ aleatorio off ou aleatorio on, respectiamente.
H. alg - 5nsere a lin*a algoritmo e pede a digitao do seu nome.
algoritmo ETE
?. ar= - 5nsere o comando arquio e pede a digitao do seu nomeC
ar=ui!o ETE
I. co(, con - 5nserem os comandos cronometro o(( o/ cronometro on, respecti!amenteC
J. dcc - 5nsere uma declarao de arieis caracteres.
!ar T : caractere
K. dcl - 5nsere uma declarao de arieis lgicas.
!ar T : logico
L. dcr - 5nsere uma declarao de arieis reais.
!ar T : real
N. deb - 5nsere o comando debugC
O. eo(, eon - 5nserem os comandos eco o(( ou eco on, respectiamente.
GY. esc - 5nsere o comando escre!aC
GG. escl - 5nsere o comando escolha ,sem a clusula outrocaso..
escolha T
caso
(imescolha
GH. esco - 5nsere o comando escolha ,com a clusula outrocaso..
escolha T
caso
outrocaso
(imescolha
G?. en= - 5nsere o comando en=uantoC
en=uanto T (aca
(imen=uanto
GI. (al - 5nsere a lin*a (imalgoritmoC
GJ. ini - 5nsere a lin*a inicioC
GK. int - 5nsere o comando interrompaC
GL. lep - 5nsere o comando leiaC
leia (T)
GN. par - 5nsere o comando paraC
para T de < ate (aca
(impara
GO. parp - 5nsere o comando para com passoC
2
DISCIPLINA:ICC II Apostila de Algoritmos
para T de ate passo (aca
(impara
HY. rep - 5nsere o comando repitaC
repita
T
Ate
HG. rep( - 5nsere o comando repita com (imrepitaC
repita
T
0imrepita
HH. see - 5nsere o comando se sem a alternatia senaoC
se T entao
(imse
H?. ses - 5nsere o comando secompletoC
se T entao
senao
(imse
HI. tim - 5nsere os comandos timer on e timer o((C
timer on
T
timer o((
HJ. to(, ton - 5nserem os comandos timer on ou timer o((, respectiamente.
1$4(1%8O &( &545%A78O
A sugesto de digitao disponibilizada atras das teclas !trl<\.
Uasta comear a digitao de uma palara e teclar !trl<\ para que o -is/AlG mostre uma lista
com sugestes de palaras<c*ae que completam o que foi digitado.
#ara escol*er, necessrio dar um duplo<clique sobre a opo dese/ada, ou ento selecion<la com
as setas e teclar (nter.
1e o usurio continua escreendo depois que o -is/AlG apresentou a lista de sugestes, o
programa continuar procurando palaras que ainda complementem o que foi digitado. Ao se teclar (sc
ou clicar 6fora da lista6, ela desaparece.
2
DISCIPLINA:ICC II Apostila de Algoritmos
A.&2&MPLOS
K.G < (labore um algoritmo referente a um programa que imprima os nRmeros de Y a GJ, utilizando a
estrutura de controle para ... faca ....
1oluo2
algoritmo 6AlgYYGg#A'A6
ZZ Xuno 2
ZZ Autor 2
ZZ &ata 2 YGZYNZHYG?
ZZ 1eo de &eclaraes
ar
: 2 inteiro
inicio
ZZ 1eo de !omandos
limpatela
escreal,6:umeros de G a GY < para6.
para : a< G ate GY faca
escrea,:.
fimpara
fimalgoritmo
2
DISCIPLINA:ICC II Apostila de Algoritmos
K.H < (labore um algoritmo referente a um programa que imprima os nRmeros de Y a GJ, utilizando a
estrutura de controle repita ... ate ....
1oluo2
algoritmo 6AlgYYGg'(#5%A6
ZZ Xuno 2
ZZ Autor 2
ZZ &ata 2 YGZYNZHYG?
ZZ 1eo de &eclaraes
ar
: 2 inteiro
inicio
ZZ 1eo de !omandos
limpatela
escreal,6:umeros de G a GY < repita6.
: a< Y
repita
: a< :hG
escrea,:.
ate : Q GY
fimalgoritmo
2
DISCIPLINA:ICC II Apostila de Algoritmos
K.? < (labore um algoritmo referente a um programa que imprima os nRmeros de Y a GJ, utilizando a
estrutura de controle enquanto ... faca ....
1oluo2
algoritmo 6AlgYYGg(:M$A:%O6
ZZ Xuno 2
ZZ Autor 2
ZZ &ata 2 YGZYNZHYG?
ZZ 1eo de &eclaraes
ar
: 2 inteiro
inicio
ZZ 1eo de !omandos
limpatela
escreal,6:umeros de G a GY < enquanto6.
: a< Y
enquanto : a GY faca
2
DISCIPLINA:ICC II Apostila de Algoritmos
: a< :hG
escrea,:.
fimenquanto
fimalgoritmo

You might also like