Вы находитесь на странице: 1из 38

UNIVERSIDADE SALGADO DE OLIVEIRA UNIVERSO PR-REITORIA ACADMICA

ANLISE DE SISTEMAS SISTEMAS DE INFORMAO

ALGORITMOS

Prof. Celso Cardoso Neto Disciplina: ALGORITMOS celsocn@oi.com. r

!"#$

DISCIPLINA:ALGORITMOS

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

27

DISCIPLINA:ALGORITMOS

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 desen ol ida para este fim, O !O"#$%A&O'. (m ci)ncia da computao * um processo de desen ol imento simult+neo e interati o 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/eti o 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 61er e 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 primiti as, interconectadas de idamente, sobre um con/unto de ob/etos. Os ob/etos manipulados por essas receitas so as ari eis.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/eti o de ser ir 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 rele antes do fen=meno que esta sendo modelado. $sando o modelo abstrato, podemos nos centrar unicamente nas propriedades rele antes para ns, dependendo da finalidade da abstrao, e ignorar as irrele antes. ; a forma pela qual descre emos solues de problemas do nosso m/ndo, afim de, serem implementadas utilizando os recursos do m/ndo comp/tacional. !omo este possu> se eras 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 ser irem para representar a soluo de qualquer problema, no caso do #rocessamento de &ados, eles de em 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 descre e a soluo de um problemaD. Ao pensarmos na soluo de um problema, encontramos aes imperati as 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.

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

&2&MPLO # : *a3a /m al.oritmo para 4Ir de casa para o tra al5o de 6ni /s7
Sol/38o # Al.oritmo Tra9eto:Casa in>cio G. H. ?. I. J. K. L. N. O. fim Andar at o ponto de =nibus Aguardar o =nibus Ao a istar o =nibus correto, fazer sinal (ntrar no =nibus pela porta traseira #agar passagem (scol*er um assento e sentar Muando c*egar prximo do local a saltar, dar o sinal para descida :o ponto, descer do =nibus, pela porta dianteira Andar at o trabal*o

Obser a<se que esse algoritmo foi resol ido em O passos. :o entanto, fato que se n pessoas buscarem solues para o mesmo problema, pro a elmente, 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, de emos percebe<se que o algoritmo descrito re ela uma situao perfeita, sem condicionais, sem excees. Assim como na nossa rotina, impro el termos situaes perfeitas, essas excees tambm ocorrem nos programas de computador. 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 a istar 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 esti er 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

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

se *ou er troco ento Aguardar troco fim<se fim<se se *ou er 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 de e ter le ado oc)s a pensarem em inRmeras no as condies, como por exemplo2 qual seria a sua reao, se num dia de c*u a, 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. &e emos lembrar que detal*es so essenciais na confeco de um algoritmo, toda ia, eles de em estar de acordo com o conte;to. Alm disso, importante que en*amos a relatar apenas os detal*es rele antes. #or exemplo, a soluo H est apropriada para ensinarmos uma pessoa que no est acostumada a andar de =nibus. %oda ia, este algoritmo causaria problemas se esti ssemos programando um rob=. !onsiderando esta situao, de er>amos ser mais precisos no passo CMuando c*egar prximo do local a saltar, dar o sinal de descidaD. :esse caso, de er>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

#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 de ol er algumas sa>das.

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

*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 di ersas execues poss> eis de um algoritmo. 1e testarmos todas essas possibilidades, e obti ermos resultados corretos, podemos ter certeza de estar entregando um produto final confi el. 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 de e 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 de ero 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 ?. (scol*a nomes de ari eis significati os, toda ia e ite nomes muito longos. (x2 #refira 1alUruto ou 1alarioUruto ao in s de 1U ou AA'G #refira %otAlunosApro &ireta ao in s de %otalAlunosApro acao&ireta I. &estaque as pala ras<c*a e 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 pre enir<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

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

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 dR idas. '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. 'e e/a o algoritmo, c*ecando as boas normas de criao.

Conselho: S tente conseguir o timo, depois de realizar o bom!

27

DISCIPLINA:ALGORITMOS

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 resol er 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 le am 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 no as 0#s2 conceitos c*a es 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 \a a ] \a a1cript

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

+.TRAD'()O D& PROGRAMA()O


programa

'MA

LING'AG&M
programa.exe

D&

TRADUTOR 1

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 ser em para a realizao de uma prototipagem rpida. E COMPILA()O $m !ompilador traduz o programa fonte inteiro, produzindo um outro programa equi alente, em linguagem execut el. 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 definiti o ,eficiente. de um programa.
"nput

programafonte

COMPI LADOR

programao !eto

MQUI NA

output

O processo de compilao < Xases #rincipais da !ompilao2

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

programa-fonte # $%a&e"a$&e$%ara%tere'$( ANLI )*$L+,I CA %a&e"a$&e$to-en' ANLI )*$)I NTTI CA r/ore$&e$Par'"ng ANLI )*$)*M.NTI CA r/ore$&e$Par'"ng 0*RA12O$D*$C3DI 0O programa-o !eto TA4*LA$D* )5 M4OLO)

27

DISCIPLINA:ALGORITMOS

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.
,.# @ O 9eti=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 li ros mais utilizadosE com ela, os princ>pios bsicos da programao estruturada podem ser ensinados sem que a cur a de aprendizagem fosse >ngreme. Alm disso, esta ferramenta de e tambm ser capaz de simular o que acontece na tela do computador com o uso dos famosos comandos 6leia6 e 6escre a6, bem como possibilitar a erificao dos alores das ari eis, 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 razo eis ,tais como abrir e sal ar arqui os. e que dispe de todos os principais recursos de um ambiente grfico.

,.! G Instala38o e ReH/erimentos de 0ardIare

O um programa simples, que no depende de&00s, O!]s ou outros componentes. 1ua instalao no copia arqui os 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.

-is/AlG

,.$ 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 ari eis ,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 de e ser seguido. (xplicaremos a seguir cada componente da interface do

-is/AlG.

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

A Jarra de Tarefas
!ontm os comandos mais utilizados no pelo menu ou por atal*os no teclado..

-is/AlG ,estes comandos tambm podem ser acessados

Abrir (Ctrl-A): Abre um arqui o anteriormente gra ado, substituindo o texto presente no editor.
1e este ti er sido odificado, o pedir sua confirmao para sal <lo antes que se/a sobreposto. o!o (Ctrl- ): !ria um no o 6esqueleto6 de pseudocdigo, substituindo o texto presente no editor. 1e este ti er sido modificado, o pedir sua confirmao para sal <lo antes que se/a sobreposto. Sal!ar (Ctrl-S): 4ra a imediatamente o texto presente no editor. :a primeira ez que um no o texto gra ado, o

-is/AlG

-is/AlG

-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 Arqui o ,acess> el tambm pelo atal*o !trl<#.. Cortar (Ctrl-#): Apaga texto selecionado, armazenando<o em uma reade transfer)ncia.

27

DISCIPLINA:ALGORITMOS

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 gra ao em arqui o de um texto selecionado no editor. A
extenso sugerida para o nome do arqui o .inc. "nserir bloco de te&to: #ermite a insero do conteRdo de um arqui o. A extenso sugerida para o nome do arqui o .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 pala ra especificada. Substituir (Ctrl-,): 0ocaliza no texto presente no editor determinada pala ra 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: Ati a ou desati a 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 moti os tcnicos, esta opo automaticamente desati ada durante a execuo do pseudocdigo, mas olta a ser ati ada logo em seguida. -ostrar !ari.!eis modi(icadas: Ati a ou desati a a exibio da ari el que estsendo modificada. !omo o nRmero de ari eis pode ser grande, muitas podem estar fora da /anela de isualizaoE quando esta caracter>stica est ati ada, o rola a grade de exibio de modoque cada ari el 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 desati ada,quando o pseudocdigo est sendo executado automaticamente. :o entanto, basta clicar este boto para execut<lo automaticamente com a exibio ati ada. :o final da execuo, a configurao olta a ser desati ada.

-is/AlG

/&ecutar (01): 5nicia ,ou continua. a execuo automtica do pseudocdigo. /&ecutar com timer(Shi(t-01): 5nsere um atraso ,que pode ser especificado no inter alo 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 ari eis e a pil*a de ati ao 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): 5nsereZremo e 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 ari eis e da pil*a de ati ao de subprogramas. 'esmarcar todos os brea6points(Ctrl-07): &esati a todos os brea^points que este/am ati ados naquele momento.

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

/&ecutar em modo '8S: !om esta opo ati ada, 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.

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

%erar !alores aleatrios: Ati a a gerao de alores aleatrios que substituem a digitao de
dados. A faixa padro de alores gerados de Y a GYY inclusi e, mas pode ser modificada ,basta alterar inter alo 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 esti er ati ada. 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 ati ados num dado momento. !on m 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 ari el ,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 cada elemento dos etores..

-is/AlG permite a

isualizao de at JYY ari eis ,contando indi idualmente

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 pala ra "odificado no caso em que o pseudocdigo ten*a sido alterado desde que foi carregado ou sal o 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, sal ar e imprimir algoritmos2


o!o: !ria um no o 6esqueleto6 de pseudocdigo, substituindo o texto existente no
editor. 1e este texto anterior ti er sido modificado, o pedir sua confirmao para sal <lo antes que se/a sobreposto. Abrir: Abre o texto de um pseudocdigo anteriormente gra ado, substituindo o texto existente no editor. 1e este ti er sido modificado, o pedir sua confirmao para sal <lo antes que se/a sobreposto. Sal!ar: 1al a imediatamente o texto presente no editor. !aso se/a a primeira ez que um no o texto gra ado, o

-is/AlG

-is/AlG

-is/AlG pedir o nome do arqui

o e sua localizao.

Sal!ar como: #ermite sal ar o texto presente no editor exibindo antes uma /anela na
qual se pode escol*er o nome do arqui o e sua localizao. /n!iar por email: #ermite o en io 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.

27

DISCIPLINA:ALGORITMOS

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 no o, 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 gra ao em arqui o de um texto selecionado no editor. A extenso sugerida para o .inc. "nserir bloco de te&to: #ermite a insero do conteRdo de um arqui o. A extenso sugerida para o nome do arqui o .inc.

/&ibir: #ossui os comandos para ati arZdesati ar as seguintes caracter>sticas2 >mero de linhas: Ati aZdesati a 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 moti os tcnicas, a numerao desati ada durante a execuo do pseudocdigo, oltando 3 situao anterior logo em seguida. $ari.!eis modi(icadas: Ati aZdesati a a exibio da ari el que est sendo modificada. !omo o nRmero de ari eis pode ser grande, muitas podem estar fora da /anela de isualizaoE quando esta caracter>stica est ati ada, o rola a grade de exibio de modo que cada ari el 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 desati ada, quando o pseudocdigo est sendo executado automaticamente. :o entanto, basta clicar este boto para execut<lo automaticamente com a exibio ati ada. :o final da execuo, a configurao olta a ser desati ada.

-is/AlG

2seudocdigo: !ontm os comandos relati os 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 ari eis e a pil*a de ati ao 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: 5nsereZremo e 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 ari eis e da pil*a de ati ao de subprogramas. 'esmarcar todos os brea6points: &esati a todos os brea^pointsque este/am ati ados naquele momento. /&ecutar em modo '8S: !om esta opo ati ada, 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: Ati a a gerao de alores aleatrios que substituem a digitao de dados. A faixa padro de alores gerados de Y a GYY inclusi e, 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..

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

2ilha de ati!ao: (xibe a pil*a de subprogramas ati ados num dado momento.
!on m 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

2 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

-is/AlG.

,., GA Lin./a.em de Pro.rama38o do -is/Al. Introd/38o


A linguagem que o interpreta bem simples2 uma erso portuguesa dos pseudocdigos largamente utilizados nos li ros de introduo 3 programao, con*ecida como 6#ortugol6. Xoram acrescentados alguns comandos no os, com o intuito de criar facilidades espec>ficas para o ensino de tcnicas de elaborao de algoritmos. 5nicialmente, pensa a<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 pala ras<c*a e, 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 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 des io incondicional como o go to. :a erso atual do , 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 e itar confuses,

-is/AlG

-is/AlG

-is/AlG

todas as pala ras<c*a e do , 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 tambm no distingue maiRsculas e minRsculas no recon*ecimento de pala ras< c*a e e nomes de ari eis.

-is/AlG

-is/AlG

*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

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

A primeira lin*a composta pela pala ra<c*a e 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,

tal ez se/a utilizado este dado de outras formas.. A seo que se segue a de declarao de ari eis, que termina com a lin*a que contm a pala ra<c*a e inicio. &este ponto em diante est a seo de comandos, que continua at a lin*a em que se encontre a pala ra<c*a e 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 moti o, os comentrios no se estendem por mais de uma lin*a2 quando se dese/a escre er comentrios mais longos, que ocupem rias lin*as, cada uma delas de er comear por 6ZZ6.

Tipos de Dados

O -is/AlG pre

) quatro tipos de dados2

inteiro, real, cadeia de caracteres e lgico,ou booleano..

As pala ras<c*a e que os definem so as seguintes ,obser e que elas no t)m acentuao.2 inteiro2 define ari eis numricas do tipo inteiro, ou se/a, sem casas decimais. real2 define ari eis numricas do tipo real, ou se/a,com casas decimais. caractere2 define ari eis do tipo string, ou se/a, cadeia de caracteres. logico2 define ari eis do tipo booleano, ou se/a, com alor A('&A&(5'O ou XA01O. permite tambm a declarao de ari eis estruturadas atra s da pala ra<c*a e !etor, como ser explicado a seguir.

O -is/AlG

Nomes de -ariL=eis e s/a declara38o


Os nomes das ari eis de em comear por uma letra e depois conter letras, nRmeros ou underline, at um limite de ?Y caracteres. As ari eis podem ser simples ou estruturadas ,na erso atual, os etores podem ser de uma ou duas dimenses.. :o pode *a er duas ari eis com o mesmo nome, com a natural exceo dos elementos de um mesmo =etor. A seo de declarao de ari eis comea com a pala ra<c*a e =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< ari eisP, os nomes das ari eis esto separados por >rgulas. :a alista<de<inter alosP, os ainter aloPso separados por >rgulas, e t)m a seguinte sintaxe2 <intervalo>: <valor-inicial>.. <valor-final> :a erso atual do , tanto a alor<inicialPcomo a alor<finalPde em ser inteiros. Alm disso, exige<se e identemente que a alor<finalPse/a maior do que a alor<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 ari el et acima tem GY elementos, com os >ndices de bGc a bGYc, enquanto matriz corresponde a GJ elementos com >ndices bY,Nc,

-is/AlG

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

bY,Oc, bY,GYc, bG,Nc, bG,Oc, bG,GYc, ... at bI,GYc. O nRmero total de ari eis suportado pelo AisuAlg JYY ,cada elemento de um etor contado indi idualmente..

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 ari eis feita com o operador O@. &o seu lado esquerdo fica a ari el 3 qual est sendo atribu>do o alor, e 3 sua direita pode<se colocar qualquer expresso ,constantes, ari eis, expresses numricas., desde que seu resultado ten*a tipo igual ao da ari el. Alguns exemplos de atribuies, usando as ari eis 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
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. Operador de di=is8o inteira. Por e;emploQ , T ! U !. Tem a mesma precedSncia do operador de di=is8o tradicional. Operadores aritm<ticos tradicionais de adi38oQ s/ tra38oQ m/ltiplica38o e di=is8o. Por con=en38oQ Ve W tSm precedSncia so re Pe @. Para modificar a ordem de a=alia38o das opera3XesQ < necessLrio /sar parSnteses como em H/alH/er e;press8o aritm<tica. 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. 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.

PQ@

PQ@QVQW MOD o/ Y Z

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

27

DISCIPLINA:ALGORITMOS

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

o/
Ta ela@-erdade:
Q onde O representa *ALSO e #

-&RDAD&IRO. Operador H/e res/lta -&RDAD&IRO somente se se/s dois operandos lN.icos forem =erdadeiros. &H/i=ale ao AND do Pascal.

e
Ta ela@-erdade: Q onde O representa *ALSO e # -&RDAD&IRO. 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.

;o/
Ta ela@-erdade:
-&RDAD&IRO. Q onde O representa *ALSO e #

Comandos de saada de dados


escre!a (@lista-de-e&pressAesB)

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

(scre e no dispositi o 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 de em estar separadas por >rgulasE depois de serem a aliadas, seus resultados so impressos na ordem indicada. ; equi alente ao comando Irite do #ascal. &e modo semel*ante a #ascal, poss> el especificar o nRmero de espaos no qual se dese/a escre er um determinado alor. #or exemplo, o comando escre a,x2J.escre e o alor da ari el x em J espaos, alin*ado<o 3 direita. #ara ari eis reais, pode<se tambm especificar o nRmero de casas fracionrias que sero exibidas. #or exemplo, considerando Tcomo uma ari el real, o comando escre a,T2K2H.escre e 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. ; equi alente 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 separa expresses do tipo numrico e lgico com um espao 3 esquerda, mas no as expresses do tipo caractere, para que assim possa *a er a concatenao. Muando se dese/a separar expresses do tipo caractere, necessrio acrescentar espaos nos locais adequados.

-is/AlG

Comandos de entrada de dados


leia (@lista-de-e&pressAesB) 'ecebe alores digitados pelos usurio, atribuindo<os 3s ari eis cu/os nomes esto em alista<de< ari eisP , 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< ari elP6

27

DISCIPLINA:ALGORITMOS

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 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 a aliao 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 equi alem ao if...t5en e if...t5en...else do #ascal. Obs2 :ote que no * necessidade de delimitadores de bloco ,como sequ)ncias de comandos / esto delimitadas pelas pala ras<c*a e seno e fimse. O AisuAlg permite o anin*amento desses comandos de des io condicional. e.in e end., pois as

-is/AlG

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)

27

DISCIPLINA:ALGORITMOS

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. H. ?. o lao contado paraCCCateCCC(aca ,similar ao for...to...do do #ascal., e 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] O=alor@inicial] O=alor@limite]

Oincremento]

fimpara

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. b /ma e;press8o H/e especifica o =alor de iniciali^a38o da =ariL=el contadora antes da primeira repeti38o do la3o. b /ma e;press8o H/e especifica o =alor mL;imo H/e a=ariL=el contadora pode alcan3ar. 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. 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.

a alor<inicial P, a alor<limite P e aincremento Pso a aliados uma Rnica ez antes da execuo da primeira repetio, e no se alteram durante a execuo do lao, mesmo que ari eis e entualmente presentes nessas expresses ten*am seus alores alterados.

27

DISCIPLINA:ALGORITMOS

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, a alor<inicial P for maior que a alor<limite P ,ou menor, quando aincrementoPfor negati o., o lao no ser executado nen*uma ez. O exemplo a seguir no imprime nada. algoritmo E umeros 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 E umeros 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 atra s de uma expresso lgica. for satisfeita. en=uanto @e&presso-lgicaB(aca @se=uDncia-de-comandosB (imen=uanto

Oe;press8o@ lN.ica]

fimenH/anto

&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. 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 resol ido com esta estrutura de repetio2 algoritmo E >meros de < a <L (com en=uantoCCC(aca)E !ar ;: inteiro inicio

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

; @- < en=uanto ; @M <L (aca escre!a (;::) ; @- ; N < (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 atra s de uma expresso lgica. se/a satisfeita. repita @se=uDncia-de-comandosB ate @e&presso-lgicaB

Repita ate Oe;press8o@ lN.ica]

Indica o inacio do la3o. 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 ; @- < repita escre!a (;::) ; @- ; N < ate ; B <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 por ser encontrado na literatura de introduo 3 programao e mesmo em linguagens como o Ob/ect #ascal ,&elp*iZ[Tlix., !lipper, AU, etc.

-is/AlG

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

1eu uso exemplificado a seguir2 algoritmo E >meros de < a <L (com interrompa)E !ar &: inteiro inicio & @- L repita & @- & N < escre!a (&::) se & M <L entao interrompa (imse ate (also (imalgoritmo 3 sinta4e:

AisuAl4

permite ainda #ma forma alternativa do comando repita...ate, com a se$#inte

algoritmo E >meros de < a <L (com interrompa) ""E !ar &: inteiro inicio & @- L repita & @- & N < escre!a (&::) se & M <L entao interrompa (imse (imrepita (imalgoritmo !om esta sintaxe alternati a, 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 d d d d ; um programa que auxilia o programa principal atra s da realizao de uma determinada subtarefa. %ambm costuma receber os nomes de sub<rotina, procedimento, mtodo ou mdulo. Os subprogramas so c*amados dentro do corpo do programa principal como se fossem comandos. Aps seu trmino, a execuo continua a partir do ponto onde foi c*amado. ; importante compreender que a c*amada de um subprograma simplesmente gera um des io pro isrio no fluxo de execuo. 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 moti o, a c*amada de uma funo aparece no corpo do programa principal como uma expresso, e no como um comando. !ada subprograma, alm de ter acesso 3s ari eis do programa que o c*amou ,so as ari eis globais., pode ter suas prprias ari eis ,so as ari eis locais., que existem apenas durante sua c*amada. 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.. A quantidade dos par+metros, sua sequ)ncia e respecti os tipos no podem mudar2 de em estar de acordo com o que foi especificado na sua correspondente declarao. #ara se criar subprogramas, preciso descre )<los aps a declarao das ari eis e antes do corpo do programa principal. O 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.

d d d d

-is/AlG

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

d Procedimentos
(m , procedimento um subprograma que no retorna nen*um alor ,corresponde ao proced/re do #ascal.. 1ua declarao, que de e estar entre o final da declarao de ari eis e a lin*a inicio do programa principal, segue a sintaxe abaixo2 procedimento @nome-de-procedimentoBJ(@se=ODncia-de-declaraAes-deparPmetrosB)K 55 Seo de 'eclaraAes "nternas inicio 55 Seo de Comandos (improcedimento O <nome-de-procedimento> obedece as mesmas regras de nomenclatura das ari eis. #or outro lado, a <se>#?ncia-de-declara@Aes-de-parBmetros> uma sequ)ncia de d!arK @se=uDncia-deparPmetrosB:@tipo-de-dadoB separadas por ponto e >rgula. A presena ,opcional. da pala ra<c*a e 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 ari eis. separados por >rgulas. &e modo anlogo ao programa principal, a seo de declarao internas comea com a pala ra< c*a e =ar, e continua com a seguinte sintaxe2 @lista-de-!ari.!eisB: @tipo-de-dadoB :os prximos exemplos, atra s 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 ari el local aux para armazenar pro isoriamente o resultado deste clculo ,e identemente, esta ari el desnecessria, mas est a> apenas para ilustrar o exemplo., antes de atribu><lo 3 ari el global res2 procedimento soma !ar au&: inteiro inicio 55 n, m e res so !ari.!eis globais au& @- n N m res @- au& (improcedimento :o programa principal de e *a er os seguintes comandos2 n @- Q m @- -1 soma escre!a(res) A mesma tarefa poderia ser executada atra s de um procedimento com par+metros, como descrito abaixo2 procedimento soma (&,R: inteiro) inicio 55 res ? !ari.!el global res @- & N R (improcedimento :o programa principal de e *a er 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 ari eis locais, mas com uma Rnica diferena2 receberam um alor inicial no momento em que o subprograma foi c*amado.

-is/AlG

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

d */n3Xes
(m , f/n38o um subprograma que retorna um alor ,corresponde ao f/nction do #ascal.. &e modo anlogo aos procedimentos, sua declarao de e estar entre o final da declarao de ari eis 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-dedadoB 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 ari eis. #or outro lado, a <se>#?ncia-de-declara@Aes-de-parBmetros> uma sequ)ncia de b arc <se>#?ncia-de-parBmetros>:<tipo-de-dado> separadas por ponto e >rgula. A presena ,opcional. da pala ra<c*a e 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 ari eis. 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 de e ser retornado atra s do comando retorne. &e modo anlogo ao programa principal, a seo de declarao internas comea com a pala ra< c*a e 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 atra s de uma funo sem par+metros. (la tambm utiliza uma ari el local aux para armazenar pro isoriamente o resultado deste clculo, antes de atribu><lo 3 ari el global res2 (uncao soma: inteiro !ar au&: inteiro inicio 55 n, m e res so !ari.!eis globais au& @- n N m retorne au& (im(uncao :o programa principal de e *a er 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 & N R (im(uncao o programa principal de!e ha!er os seguintes comandos: n @- Q m @- -1 res @- soma(n,m) escre!a(res)

-is/AlG

d Passa.em de Paremetros por referSncia


27

DISCIPLINA:ALGORITMOS

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 ari el global. #ortanto, qualquer modificao que for realizada no conteRdo deste par+metro afetar tambm a ari el global que est associada a ele. &urante a execuo do subprograma, os par+metros passados por refer)ncia so anlogos 3s ari eis globais. :o de forma anloga a #ascal, essa passagem feita atra s da pala ra 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 @- & N R (improcedimento o programa principal de!e ha!er os seguintes comandos: n @- Q m @- -1 soma(n,m,res) escre!a(res)

-is/AlGQ

d Rec/rsi=idade e Anin5amento
A atual erso do permite recurso ou recursi idade, isto , a possibilidade de que um subprograma possa c*amar a si mesmo. A funo do exemplo abaixo calcula recursi amente o fatorial do nRmero inteiro que recebe como par+metro2 (uncao (atorial (!: inteiro): inteiro inicio se ! @M 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 moti o, ela no permitida na maioria das linguagens de programao ,como !, por exemplo., e o

-is/AlG

-is/AlG no a implementa.

O 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.

-is/AlG

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 , 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 ari eis lgicas2 com certeza, uma coisa pouco usual em programao...

-is/AlG

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

(ste comando tem as seguintes sintaxes2

aleatorio donf

aleatorio O=alor# ]dQ O=alor!]f

aleatorio off ArH/i=os

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<@esta elecida: os dados .erados ser8o sempre strin.sd e , letras maiRsc/las. Ati=a a .era38o de dados n/m<ricos aleatNrios esta elecendo /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... Desati=a a .era38o de =alores aleatNrios. A pala=ra@c5a=e off < o ri.atNria

"uitas ezes necessrio repetir os testes de um programa com uma srie igual de dados. #ara casos como este, o permite o armazenamento de dados em um arqui o<texto, obtendo deles os dados ao executar os comandos leia. (sta caracter>stica funciona da seguinte maneira2

-is/AlG

G. 1e no existir o arqui o com nome especificado, o H. 1e o arqui o existir, o

-is/AlG far uma leitura de dados

atra s da digitao, armazenando os dados lidos neste arqui o, na ordem em que forem fornecidos. obter os dados deste arqui o at c*egar ao seu fim. &a> em diante, far as leituras de dados atra s da digitao. ?. 1omente um comando arqui o pode ser empregado em cada pseudocdigo, e ele de er estar na seo de declaraes ,dependendo do 6sucesso6 desta caracter>stica, em futuras erses ela poder ser mel*orada.....

-is/AlG

I. !aso no se/a fornecido um camin*o, o

ir procurar este arqui o 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 arqui o de e ser completa, inclusi e com sua extenso ,por exemplo, .txt, .dat, etc...

-is/AlG

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

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

Comando Timer
(mbora o 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 moti os educacionais, pode ser con eniente exibir o fluxo de execuo do pseudocdigo comando por comando, em 6c+mera lenta6. O comando timer ser e 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

-is/AlG

timer on timer Otempo@de@ atraso] timer off

Ati=a o timer Ati=a o timer esta elecendo 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 #"""". Desati=a o timer.

Ao longo do pseudocdigo, pode *a er rios comandos timer. %odos eles de em estar na seo de comandos. $ma ez ati ado, 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 desen ol imento est completo seno *ou er 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 d o comando pausa e o comando debugC

Comando Pa/sa
1ua sintaxe simplesmente2 pausa (ste comando insere uma interrupo incondicional no pseudocdigo. Muando ele encontrado, o pra a execuo do pseudocdigo e espera alguma ao do programador. :este momento, poss> el2 d analisar os alores das ari eis 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.

-is/AlG

Comando De /.
1ua sintaxe 2 debug @e&presso-lgicaB

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

1e a a aliao 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 ati a ,eco on. ou desati a ,eco off. a impresso dos dados de entrada na sa>da< padro do ou se/a, na rea 3 direita da parte inferior da tela. (sta caracter>stica pode ser Rtil quando *ou er uma grande quantidade de dados de entrada, e se dese/a apenas analisar a sa>da produzida. !on m utiliz<la tambm quando os dados de entrada pro )m de um arqui o / con*ecido.

-is/AlGQ

Comando Cron6metro
1ua sintaxe 2 cronometro on U o(( (ste comando ati a ,cronometro on. ou desati a ,cronometro off. o cron=metro interno do

-is/AlG.
Muando o comando cronometro on encontrado, o 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 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...

-is/AlG

-is/AlG

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 escre er 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 atra s de um f.. (is a lista de abre iaturas com os respecti os comandos2 V < ,#onto de exclamao. !ria um modelo de pseudocdigo. algoritmo EsemnomeE T inicio (imalgoritmo

27

DISCIPLINA:ALGORITMOS

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, respecti amente. H. alg - 5nsere a lin*a algoritmo e pede a digitao do seu nome. algoritmo ETE ?. ar= - 5nsere o comando arqui o e pede a digitao do seu nome C ar=ui!o ETE I. co(, con - 5nserem os comandos cronometro o(( o/ cronometro on, respecti!amenteC J. dcc - 5nsere uma declarao de ari eis caracteres. !ar T : caractere K. dcl - 5nsere uma declarao de ari eis lgicas. !ar T : logico L. dcr - 5nsere uma declarao de ari eis reais. !ar T : real N. deb - 5nsere o comando debugC O. eo(, eon - 5nserem os comandos eco o(( ou eco on, respecti amente. 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

27

DISCIPLINA:ALGORITMOS

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 alternati a 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((, respecti amente.

1$4(1%8O &( &545%A78O


A sugesto de digitao disponibilizada atra s das teclas !trl<\. Uasta comear a digitao de uma pala ra e teclar !trl<\ para que o mostre uma lista com sugestes de pala ras<c*a e 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 escre endo depois que o apresentou a lista de sugestes, o programa continuar procurando pala ras que ainda complementem o que foi digitado. Ao se teclar (sc ou clicar 6fora da lista6, ela desaparece.

-is/AlG

-is/AlG

27

DISCIPLINA:ALGORITMOS

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 escre al,6:umeros de G a GY < para6. para : a< G ate GY faca escre a,:. fimpara fimalgoritmo

27

DISCIPLINA:ALGORITMOS

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 escre al,6:umeros de G a GY < repita6. : a< Y repita : a< :hG escre a,:. ate : Q GY fimalgoritmo

27

DISCIPLINA:ALGORITMOS

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 escre al,6:umeros de G a GY < enquanto6. : a< Y enquanto : a GY faca

27

DISCIPLINA:ALGORITMOS

Apostila de Algoritmos

: a< :hG escre a,:. fimenquanto fimalgoritmo

27

Вам также может понравиться