Beruflich Dokumente
Kultur Dokumente
ALGORITMOS
!"#$
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.
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
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.
27
DISCIPLINA:ALGORITMOS
Apostila de Algoritmos
in>cio comando GE se condicaoG ento comandoHE comando?E senao comandoIE comandoJE fimse comandoKE fim
27
DISCIPLINA:ALGORITMOS
Apostila de Algoritmos
27
DISCIPLINA:ALGORITMOS
Apostila de Algoritmos
'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
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.
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.
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
-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..
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
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.
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
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.
-is/AlG
-is/AlG
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.
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.
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.
-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
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.
Tipos de Dados
O -is/AlG pre
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
-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..
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
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
"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.
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 #
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
27
DISCIPLINA:ALGORITMOS
Apostila de Algoritmos
1e oc) clicar em Cancelar ou teclar &sc durante a leitura de dados, o programa ser imediatamente interrompido.
-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
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..
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
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.
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
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
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
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<@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
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
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
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.
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.
-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.
-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
27