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

Universidade Federal de Uberlndia

Faculdade de Computao
PET Cincia da Computao
A Linguagem de Programao do VisuAlg
A Tela Principal do VisuAlg
A tela do VisuAlg compese da barra de tare!as" do editor de te#tos $%ue toma toda a sua
metade superior&" do %uadro de vari'veis $no lado es%uerdo da metade in!erior&" do simulador de
sa(da $no correspondente lado direito& e da barra de status) *uando o programa + carregado" ,'
apresenta no editor um -es%ueleto- de pseudoc.digo" com a inteno de poupar trabal/o ao usu'rio
e de mostrar o !ormato b'sico %ue deve ser seguido) E#plicaremos a seguir cada componente da
inter!ace do VisuAlg)
A Barra de Tarefas
Cont+m os comandos mais utili0ados no VisuAlg $estes comandos tamb+m podem ser
acessados pelo menu ou por atal/os no teclado&)
1
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
Abrir (Ctrl-A): Abre um ar%uivo anteriormente gravado" substituindo o te#to presente no editor) 1e
este tiver sido modi!icado" o VisuAlg pedir' sua con!irmao para salv'lo antes %ue se,a
sobreposto)
o!o (Ctrl-): Cria um novo -es%ueleto- de pseudoc.digo" substituindo o te#to presente no editor)
1e este tiver sido modi!icado" o VisuAlg pedir' sua con!irmao para salv'lo antes %ue se,a
sobreposto)
"al!ar (Ctrl-"): 2rava imediatamente o te#to presente no editor) 3a primeira ve0 %ue um novo te#to
+ gravado" o VisuAlg pede seu nome e locali0ao)
#mprimir: 4mprime imediatamente na impressora padro o te#to presente no editor) Para con!igurar a
impresso" use o comando 4mprimir do menu Ar%uivo $acess(vel tamb+m pelo atal/o Ctrl-P&)
Cortar (Ctrl-$): Apaga te#to selecionado" arma0enandoo em uma 'rea de trans!erncia)
Copiar (Ctrl-C): Copia o te#to selecionado para a 'rea de trans!erncia)
Colar (Ctrl-V): Copia te#to da 'rea de trans!erncia para o local em %ue est' o cursor)
%ra!ar bloco de te&to: Permite a gravao em ar%uivo de um te#to selecionado no editor) A
e#tenso sugerida para o nome do ar%uivo + .inc)
#nserir bloco de te&to: Permite a insero do conte5do de um ar%uivo) A e#tenso sugerida para o
nome do ar%uivo + .inc)
'esfa(er (Ctrl-)): 6es!a0 5ltimo comando e!etuado)
*efa(er ("+ift-Ctrl-)): 7e!a0 5ltimo comando des!eito)
Locali(ar (Ctrl-L): 8ocali0a no te#to presente no editor determinada palavra especi!icada)
"ubstituir (Ctrl-,): 8ocali0a no te#to presente no editor determinada palavra especi!icada"
substituindoa por outra)
Corrigir #ndentao (Ctrl-%)9 Corrige automaticamente a indentao $ou tabulao& do
pseudoc.digo" tabulando cada comando interno com espaos : es%uerda)
umerar lin+as: Ativa ou desativa a e#ibio dos n5meros das lin/as na 'rea : es%uerda do editor)
A lin/a e a coluna do editor em %ue o cursor est' em um determinado momento tamb+m so
mostradas na barra de status $parte in!erior da tela&) Por motivos t+cnicos" esta opo +
automaticamente desativada durante a e#ecuo do pseudoc.digo" mas volta a ser ativada logo em
seguida)
-ostrar !ari.!eis modificadas9 Ativa ou desativa a e#ibio da vari'vel %ue est' sendo modi!icada)
Como o n5mero de vari'veis pode ser grande" muitas podem estar !ora da ,anela de visuali0ao;
%uando esta caracter(stica est' ativada" o VisuAlg rola a grade de e#ibio de modo %ue cada
vari'vel !i%ue vis(vel no momento em est' sendo modi!icada) Este recurso + especialmente 5til
%uando se e#ecuta um pseudoc.digo passo a passo) Por %uestes de desempen/o" a con!igurao
padro desta caracter(stica + desativada, %uando o pseudoc.digo est' sendo e#ecutado
automaticamente) 3o entanto" basta clicar este boto para e#ecut'lo automaticamente com a
e#ibio ativada) 3o !inal da e#ecuo" a con!igurao volta a ser desativada)
*estaurar tela inicial: 7etorna a diviso da tela ao !ormato inicial" caso voc ten/a mudado o
taman/o da 'rea do editor de te#to" %uadro de vari'veis ou simulador de sa(da)
2
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
/&ecutar (01): 4nicia $ou continua& a e#ecuo autom'tica do pseudoc.digo)
/&ecutar com timer ("+ift-01):9 4nsere um atraso $%ue pode ser especi!icado no intervalo ao lado&
antes da e#ecuo de cada lin/a) Tamb+m reala em !undo a0ul o comando %ue est' sendo
e#ecutado" da mesma !orma %ue na e#ecuo passo a passo)
#nter!alo do timer: Atraso em cada lin/a" para %uando se dese,a e#ecutar o pseudoc.digo com
timer)
Passo (02): 4nicia $ou continua& a e#ecuo lin/a por lin/a do pseudoc.digo" dando ao usu'rio a
oportunidade de acompan/ar o !lu#o de e#ecuo" os valores das vari'veis e a pil/a de ativao dos
subprogramas)
Parar (Ctrl-03): Termina imediatamente a e#ecuo do pseudoc.digo) Evidentemente" este boto
!ica desabilitado %uando o pseudoc.digo no est' sendo e#ecutado)
Liga4desliga breakpoint (05): 4nsere<remove um ponto de parada na lin/a em %ue este,a o cursor)
Estes pontos de parada so 5teis para a depurao e acompan/amento da e#ecuo dos
pseudoc.digos" pois permitem a veri!icao dos valores das vari'veis e da pil/a de ativao de
subprogramas)
'esmarcar todos os breakpoints (Ctrl-05): 6esativa todos os breakpoints %ue este,am ativados
na%uele momento)
/&ecutar em modo '6": Com esta opo ativada" tanto a entrada como a sa(dapadro passa a
ser uma ,anela %ue imita o 6=1" simulando a e#ecuo de um programa neste ambiente)
%erar !alores aleat7rios: Ativa a gerao de valores aleat.rios %ue substituem a digitao de
dados) A !ai#a padro de valores gerados + de > a ?>> inclusive" mas pode ser modi!icada $basta
alterar intervalo ao lado&) Para a gerao de dados do tipo caractere" no /' uma !ai#a pr+
estabelecida9 os dados gerados sero sempre strings de @ letras mai5sculas)
#nter!alo dos !alores aleat7rios: Fai#a de valores %ue sero gerados automaticamente" %uando
esta opo estiver ativada)
Perfil (08): Ap.s a e#ecuo de um pseudoc.digo" e#ibe o n5mero de ve0es %ue cada umas das
suas lin/as !oi e#ecutada) A 5til para a an'lise de e!icincia $por e#emplo" nos m+todos de
ordenao&)
-ostrar pil+a de ati!ao (Ctrl-09): E#ibe a pil/a de subprogramas ativados num dado momento)
Conv+m utili0ar este comando em con,unto com breakpoints ou com a e#ecuo passo a passo)
A:uda (0;): Possibilita acesso :s p'ginas de a,uda e :s in!ormaes sobre o VisuAlg)
<uadro de Vari.!eis
A !ormado por uma grade na %ual so mostrados o escopo de cada vari'vel $se !or do
programa principal" ser' global; se !or local" ser' apresentado o nome do subprograma onde !oi
declarada&" seus nomes $tamb+m com os (ndices" nos casos em %ue se,am vetores&" seu tipo $-4-
para inteiro" -7- para real" -C- para caractere e -8- para l.gico& e o seu valor corrente) A verso atual
do VisuAlg permite a visuali0ao de at+ @>> vari'veis $contando individualmente cada elemento dos
vetores&)
A Barra de Status
1ituada na parte in!erior da tela" esta barra cont+m dois pain+is9 o primeiro mostra a lin/a e a
coluna onde o cursor est'" e o segundo mostra a palavra Modificado no caso em %ue o
pseudoc.digo ten/a sido alterado desde %ue !oi carregado ou salvo pela 5ltima ve0) 3esta barra" /'
ainda um terceiro painel dispon(vel" %ue ainda no tem um uso espec(!ico na atual verso)
#ntroduo
A linguagem %ue o VisuAlg interpreta + bem simples9 + uma verso portuguesa dos
3
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
pseudoc.digos largamente utili0ados nos livros de introduo : programao" con/ecida como
-Portugol-) B' ainda alguns comandos novos" com o intuito de criar !acilidades espec(!icas para o
ensino de t+cnicas de elaborao de algoritmos)
A linguagem do VisuAlg permite apenas um comando por lin+a9 desse modo" no /'
necessidade de tokens separadores de estruturas" como o ponto e v(rgula em Pascal) Tamb+m no
e#iste o conceito de blocos de comandos $%ue correspondem ao begin e end do Pascal e ao C e D do
C&" nem comandos de desvio incondicional como o goto)
#mportante9 para !acilitar a digitao e evitar con!uses" todas as palavrasc/ave do VisuAlg !oram
implementadas sem acentos" cedil/a" etc) Portanto" o tipo de dados l.gico + de!inido como logico" o
comando se))ento))seno + de!inido como se))entao))senao" e assim por diante) = VisuAlg tamb+m
no distingue mai5sculas e min5sculas no recon/ecimento de palavrasc/ave e nomes de vari'veis)
0ormato B.sico do Pseudoc7digo e #ncluso de Coment.rios
= !ormato b'sico do nosso pseudoc.digo + o seguinte9
algoritmo "semnome"
// Funo :
// Autor :
// Data :
// Seo de Declaraes
inicio
// Seo de Comandos
fimalgoritmo
A primeira lin/a + composta pela palavrac/ave algoritmo seguida do seu nome delimitado por
aspas duplas) Este nome ser' usado como t(tulo nas ,anelas de leitura de dados) A seo %ue se
segue + a de declarao de vari'veis" %ue termina com a lin/a %ue cont+m a palavrac/ave inicio)
6este ponto em diante est' a seo de comandos" %ue continua at+ a lin/a em %ue se encontre a
palavrac/ave fimalgoritmo) Esta 5ltima lin/a marca o !inal do pseudoc.digo9 todo te#to e#istente
a partir dela + ignorado pelo interpretador)
= VisuAlg permite a incluso de coment'rios9 %ual%uer te#to precedido de -<<- + ignorado" at+
se atingir o !inal da sua lin/a) Por este motivo" os coment'rios no se estendem por mais de uma
lin/a9 %uando se dese,a escrever coment'rios mais longos" %ue ocupem v'rias lin/as" cada uma
delas dever' comear por -<<-)
Tipos de 'ados
= VisuAlg prev %uatro tipos de dados9 inteiro" real" cadeia de caracteres e l7gico $ou
booleano&) As palavrasc/ave %ue os de!inem so as seguintes $observe %ue elas no tem
acentuao&9
inteiro9 de!ine vari'veis num+ricas do tipo inteiro" ou se,a" sem casas decimais)
real: de!ine vari'veis num+ricas do tipo real" ou se,a" com casas decimais)
caractere: de!ine vari'veis do tipo string" ou se,a" cadeia de caracteres)
logico: de!ine vari'veis do tipo booleano" ou se,a" com valor VE76A6E47= ou FA81=)
4
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
omes de Vari.!eis e sua 'eclarao
=s nomes das vari'veis devem comear por uma letra e depois conter letras" n5meros ou
underline" at+ um limite de E> caracteres) 3o pode /aver duas vari'veis com o mesmo nome)
A seo de declarao de vari'veis comea com a palavrac/ave var" e continua com as
seguintes sinta#es9
<lista-de-variveis : <ti!o-de-dado
3a <lista-de-variveis" os nomes das vari'veis esto separados por v(rgulas)
E#emplos9
var a: inteiro
"alor#$ "alor%: real
nome&do&aluno: caractere
sinali'ador: logico
3ote %ue no /' a necessidade de ponto e v(rgula ap.s cada declarao9 basta pular lin/a) =
n5mero total de vari'veis suportado pelo VisuAlg + @>> $cada elemento de um vetor + contado
individualmente&)
Constantes e Comando de Atribuio
= VisuAlg tem trs tipos de constantes9
Numricos: so valores num+ricos escritos na !orma usual das linguagens de programao)
Podem ser inteiros ou reais) 3este 5ltimo caso" o separador de decimais + o ponto e no a
v(rgula" independente da con!igurao regional do computador onde o VisuAlg est' sendo
e#ecutado) = VisuAlg tamb+m no suporta separadores de mil/ares)
Caracteres9 %ual%uer cadeia de caracteres delimitada por aspas duplas $-&)
Lgicos9 admite os valores VE76A6E47= ou FA81=)
A atribuio de valores a vari'veis + !eita com o operador =-) 6o seu lado es%uerdo !ica a
vari'vel : %ual est' sendo atribu(do o valor" e : sua direita podese colocar %ual%uer e#presso
$constantes" vari'veis" e#presses num+ricas&" desde %ue seu resultado ten/a tipo igual ao da
vari'vel)
Alguns e#emplos de atribuies" usando as vari'veis declaradas acima9
a <- (
"alor# <- #)*
"alor% <- "alor# + a
nome&do&aluno <- ",os- da Silva"
sinali'ador <- FA.S/
6peradores Aritm>ticos
+$-
=peradores un'rios" isto +" so aplicados a um 5nico operando) 1o os operadores aritm+ticos de maior
precedncia) E#emplos9 -($ +0) En%uanto o operador un'rio - inverte o sinal do seu operando" o operador +
no altera o valor em nada o seu valor)
5
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
1
=perador de diviso inteira) Por e#emplo" * 1 % 2 %) Tem a mesma precedncia do operador de diviso
tradicional)
+$-$3$
/
=peradores aritm+ticos tradicionais de adio" subtrao" multiplicao e diviso) Por conveno" 3 e / tm
precedncia sobre + e -) Para modi!icar a ordem de avaliao das operaes" + necess'rio usar parnteses
como em %ual%uer e#presso aritm+tica)
4/D ou
5
=perador de m.dulo $isto +" resto da diviso inteira&) Por e#emplo" 6 4/D ( 2 %) Tem a mesma precedncia
do operador de diviso tradicional)
7
=perador de potenciao) Por e#emplo" * 7 % 2 %*) Tem a maior precedncia entre os operadores
aritm+ticos bin'rios $a%ueles %ue tm dois operandos&)
6peradores de Caracteres
+
=perador de concatenao de strings $isto +" cadeias de caracteres&" %uando usado com dois valores
$vari'veis ou constantes& do tipo -caractere-) Por e#emplo9 "8io " + " de ,aneiro" 2 "8io de
,aneiro")
6peradores *elacionais
2$ <$
$ <2$
2$ <
7espectivamente9 igual" menor %ue" maior %ue" menor ou igual a" maior ou igual a" di!erente de) 1o utili0ados
em e#presses l.gicas para se testar a relao entre dois valores do mesmo tipo) E#emplos9 ( 2 ( $ E + igual
a EF& resulta em "98DAD9:8/ ; "A" ";" $-A- est' depois de -G- na ordem al!ab+ticaF& resulta em FA.S/)
#mportante: 3o VisuAlg" as comparaes entre strings no diferenciam as letras mai5sculas das
min5sculas) Assim" "A;C" + igual a "a<c") Valores l.gicos obedecem : seguinte ordem9 FA.S/ <
"98DAD9:8/)
6peradores L7gicos
nao
=perador un'rio de negao) nao "98DAD9:8/ 2 FA.S/" e nao FA.S/ 2 "98DAD9:8/) Tem a maior
precedncia entre os operadores l.gicos)
ou
=perador %ue resulta "98DAD9:8/ %uando um dos seus operandos l.gicos !or verdadeiro)
e
=perador %ue resulta "98DAD9:8/ somente se seus dois operandos l.gicos !orem verdadeiros)
0ou
=perador %ue resulta "98DAD9:8/ se seus dois operandos l.gicos !orem di!erentes" e FA.S/ se !orem iguais)
Comandos de "a?da de 'ados
escreva =<lista-de-expresses>>
Escreve no dispositivo de sa(da padro $isto +" na 'rea : direita da metade in!erior da tela do
VisuAlg& o conte5do de cada uma das e#presses %ue compem <lista-de-expresses>) As
e#presses dentro desta lista devem estar separadas por v(rgulas; depois de serem avaliadas" seus
resultados so impressos na ordem indicada) A e%uivalente ao comando printf do C
A poss(vel especi!icar o n5mero de espaos no %ual se dese,a escrever um determinado
valor) Por e#emplo" o comando escreva=0:*> escreve o valor da vari'vel 0 em @ espaos"
alin/andoo : direita) Para vari'veis reais" podese tamb+m especi!icar o n5mero de casas
!racion'rias %ue sero e#ibidas) Por e#emplo" considerando ? como uma vari'vel real" o comando
escreva=?:@:%>escreve seu valor em H espaos colocando I casas decimais)
6
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
escreval =<lista-de-expresses>>)
4dem ao anterior" com a 5nica di!erena %ue pula uma lin/a em seguida)
E#emplos9
algoritmo "e0em!lo"
var 0: real
?: inteiro
a: caractere
l: logico
inicio
0 <- %)*
? <- @
a <- "teste"
l <- "98DAD9:8/
escreval ="0"$ 0:A:#$ ?+(:A> // 9screve: 0 %)* B
escreval =a$ "oC"> // 9screve: testeoC =e de!ois !ula
linDa>
escreval =a$ " oC"> // 9screve: teste oC =e de!ois !ula
linDa>
escreval =a + " oC"> // 9screve: teste oC =e de!ois !ula
linDa>
escreva =l> // 9screve: "98DAD9:8/
fimalgoritmo
3ote %ue o VisuAlg separa e#presses do tipo num+rico e l.gico com um espao : es%uerda"
mas no as e#presses do tipo caractere" para %ue assim possa /aver a concatenao) *uando se
dese,a separar e#presses do tipo caractere" + necess'rio acrescentar espaos nos locais
ade%uados)
Comando de /ntrada de 'ados
leia =<lista-de-variveis>>
7ecebe valores digitados pelos usu'rio" atribuindoos :s vari'veis cu,os nomes esto em
<lista-de-variveis> $+ respeitada a ordem especi!icada nesta lista&) A an'logo ao comando
scanf do C)
Ve,a no e#emplo abai#o o resultado9
algoritmo "e0em!lo #"
var 0: inteiroE
inicio
leia =0>
escreva =0>
fimalgoritmo
= comando de leitura acima ir' e#ibir uma
,anela como a %ue se v ao lado" com a
mensagem padro9
"9ntre com o valor de <nome-de-
varivel>"
7
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
1e voc clicar em Cancelar ou teclar !sc durante a leitura de dados" o programa ser'
imediatamente interrompido)
Comando de 'es!io Condicional
se <expresso-lgica> entao
<seqncia-de-comandos>
fimse
Ao encontrar este comando" o VisuAlg analisa a <expresso-lgica>) 1e o seu resultado
!or "98DAD9:8/" todos os comandos da <seqncia-de-comandos> $entre esta lin/a e a lin/a
com fimse& so e#ecutados) 1e o resultado !or FA.S/" estes comandos so despre0ados e a
e#ecuo do algoritmo continua a partir da primeira lin/a depois do fimse)
se <expresso-lgica> entao
<seqncia-de-comandos-1>
senao
<seqncia-de-comandos-2>
fimse
3esta outra !orma do comando" se o resultado da avaliao de <expresso-lgica> !or
"98DAD9:8/" todos os comandos da <seqncia-de-comandos-1> $entre esta lin/a e a lin/a
com senao& so e#ecutados" e a e#ecuo continua depois a partir da primeira lin/a depois do
fimse) 1e o resultado !or FA.S/" estes comandos so despre0ados e o algoritmo continua a ser
e#ecutado a partir da primeira lin/a depois do senao" e#ecutando todos os comandos da
<seqncia-de-comandos-2> $at+ a lin/a com fimse&)
Estes comandos e%uivalem ao if...else do C) 3ote %ue no /' necessidade de delimitadores
de bloco $como begin e end&" pois as se%Jncias de comandos ,' esto delimitadas pelas palavras
c/ave senao e fimse) = VisuAlg permite o anin/amento desses comandos de desvio condicional)
Comando de "eleo -@ltipla
= VisuAlg implementa $com certas variaes& o comando s"itc#$case do C) A sinta#e + a
seguinte9
escolDa <expresso-de-seleo>
caso <exp11>, <exp12>, !!!, <exp1n>
<seqncia-de-comandos-1>
caso <exp21>, <exp22>, !!!, <exp2n>
<seqncia-de-comandos-2>
)))
outrocaso
<seqncia-de-comandos-extra>
fimescolDa
Ve,a o e#emplo a seguir" %ue ilustra bem o %ue !a0 este comando9
algoritmo "Fimes"
var time: caractere
inicio
escreva ="9ntre com o nome de um time de fute<ol: ">
8
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
leia =time>
escolDa time
caso "Flamengo"$ "Fluminense"$ ""asco"$ ";otafogo"
escreval ="G um time carioca)">
caso "So Haulo"$ "Halmeiras"$ "Santos"$ "CorintDians"
escreval ="G um time !aulista)">
outrocaso
escreval ="G de outro 9stado)">
fimescolDa
fimalgoritmo
Comandos de *epetio
= VisuAlg implementa as trs estruturas de repetio usuais nas linguagens de programao9
o lao contado !ara)))ate)))faca $similar ao for do C&" e os laos condicionados
enIuanto)))faca $similar ao "#ile& e re!ita)))ate $similar ao do$"#ile&) A sinta#e destes
comandos + e#plicada a seguir)
Para AAA faa
Esta estrutura repete uma se%Jncia de comandos um determinado n5mero de ve0es)
!ara <varivel> de <valor-inicial> ate <valor-limite> J!asso
<incremento>K faca
<seqncia-de-comandos>
fim!ara
<varivel
A a vari'vel contadora %ue controla o n5mero de repeties do lao) 3a verso atual" deve
ser necessariamente uma vari'vel do tipo inteiro" como todas as e#presses deste
comando)
<valor-inicial>
A uma e#presso %ue especi!ica o valor de iniciali0ao da vari'vel contadora antes da
primeira repetio do lao)
<valor-limite >
A uma e#presso %ue especi!ica o valor m'#imo %ue a vari'vel contadora pode alcanar)
<incremento >
A opcional) *uando presente" precedida pela palavra !asso" + uma e#presso %ue
especi!ica o incremento %ue ser' acrescentado : vari'vel contadora em cada repetio do
lao) *uando esta opo no + utili0ada" o valor padro de %incremento> + ?) Vale a
pena ter em conta %ue tamb+m + poss(vel especi!icar valores negativos para
<incremento>) Por outro lado" se a avaliao da e#presso <incremento resultar em
valor nulo" a e#ecuo do algoritmo ser' interrompida" com a impresso de uma mensagem
de erro)
fim!ara
4ndica o !im da se%Jncia de comandos a serem repetidos) Cada ve0 %ue o programa c/ega
neste ponto" + acrescentado : vari'vel contadora o valor de <incremento " e comparado
a <valor-limite >) 1e !or menor ou igual $ou maior ou igual" %uando <incremento >
!or negativo&" a se%Jncia de comandos ser' e#ecutada mais uma ve0; caso contr'rio" a
e#ecuo prosseguir' a partir do primeiro comando %ue este,a ap.s o fim!ara)
<valor-inicial >, <valor-limite > e <incremento > so avaliados uma @nica !e(
antes da e#ecuo da primeira repetio" e no se alteram durante a e&ecuo do lao" mesmo
%ue vari'veis eventualmente presentes nessas e#presses ten/am seus valores alterados)
3o e#emplo a seguir" os n5meros de ? a ?> so e#ibidos em ordem crescente)
9
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
algoritmo "LMmeros de # a #N"
var O: inteiro
inicio
!ara O de # ate #N faca
escreva =O:(>
fim!ara
fimalgoritmo
#mportante: 1e" logo no in(cio da primeira repetio" <valor-inicial > !or maior %ue
<valor-limite > $ou menor" %uando <incremento> !or negativo&" o lao no ser' e#ecutado
nen/uma ve0) = e#emplo a seguir no imprime nada)
algoritmo "Lumeros de #N a # =no funciona>"
var O: inteiro
inicio
!ara O de #N ate # faca
escreva =O:(>
fim!ara
fimalgoritmo
Este outro e#empo" no entanto" !uncionar' por causa do passo -;9
algoritmo "Lumeros de #N a # =este funciona>"
var O: inteiro
inicio
!ara O de #N ate # !asso -# faca
escreva =O:(>
fim!ara
fimalgoritmo
/nBuanto AAA faa
Esta estrutura repete uma se%Jncia de comandos en%uanto uma determinada condio
$especi!icada atrav+s de uma e#presso l.gica& !or satis!eita)
enIuanto <expresso-lgica> faca
<seqncia-de-comandos>
fimenIuanto
<expresso-lgica>
Esta e#presso %ue + avaliada antes de cada repetio do lao) *uando seu
resultado !or VE76A6E47=" <seqncia-de-comandos> + e#ecutada)
fimenIuanto
4ndica o !im da <seqncia-de-comandos> %ue ser' repetida) Cada ve0 %ue a
e#ecuo atinge este ponto" voltase ao in(cio do lao para %ue <expresso-
lgica> se,a avaliada novamente) 1e o resultado desta avaliao !or
VE76A6E47=" a <seqncia-de-comandos> ser' e#ecutada mais uma ve0; caso
contr'rio" a e#ecuo prosseguir' a partir do primeiro comando ap.s fimenIuanto)
= mesmo e#emplo anterior pode ser resolvido com esta estrutura de repetio9
algoritmo "LMmeros de # a #N =com enIuanto)))faca>"
var O: inteiro
inicio
10
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
O <- #
enIuanto O <2 #N faca
escreva =O:(>
O <- O + #
fimenIuanto
fimalgoritmo
#mportante: Como o lao enIuanto)))faca testa sua condio de parada antes de
e#ecutar sua se%Jncia de comandos" esta se%Jncia poder' ser e#ecutada (ero ou mais !e(es)
*epita AAA at>
Esta estrutura repete uma se%Jncia de comandos at+ %ue uma determinada condio
$especi!icada atrav+s de uma e#presso l.gica& se,a satis!eita)
re!ita
<seqncia-de-comandos>
ate <expresso-lgica>
re!ita
4ndica o in(cio do lao)
ate <expresso-lgica
4ndica o !im da <seqncia-de-comandos> a serem repetidos) Cada ve0 %ue o
programa c/ega neste ponto" <expresso-lgica> + avaliada9 se seu resultado !or
FA81=" os comandos presentes entre esta lin/a e a lin/a re!ita so e#ecutados; caso
contr'rio" a e#ecuo prosseguir' a partir do primeiro comando ap.s esta lin/a)
Considerando ainda o mesmo e#emplo9
algoritmo "LMmeros de # a #N =com re!ita>"
var O: inteiro
inicio
O <- #
re!ita
escreva =O:(>
O <- O + #
ate O #N
fimalgoritmo
#mportante: Como o lao re!ita)))ate testa sua condio de parada depois de e#ecutar
sua se%Jncia de comandos" esta se%Jncia poder' ser e#ecutada uma ou mais !e(es)
11
Universidade Federal de Uberlndia
Faculdade de Computao
PET Cincia da Computao
/$/*CCC#6" P*6P6"T6"
>? Crie um programa %ue dados E n5meros" calcule a media aritm+tica deles)
>I Crie um programa %ue dados os dois catetos de um tringulo" calcule o valor de sua /ipotenusa)
>E Crie um programa %ue dados I n5meros" imprima o maior entre eles)
>K Crie um programa %ue dado a nota de um aluno $entre > e ?>& imprima -Aprovado- para nota
LMH ou -7eprovado- para nota menor %ue H)
>@ Crie um programa %ue conten/a um menu" leia dois n5meros inteiros $a e b& e calcule9
aNb" se o usu'rio escol/er a opo ?;
ab" se o usu'rio escol/er a opo I)
>H Crie um programa %ue dado um numero 3" imprima na tela a se%Jncia de > ate 3)
>O Crie um programa %ue calcula o !atorial do numero %ue o usu'rio inserir)
*eferDncias9
/ttp9<<PPP)apoioin!ormatica)in!)br<visualg<
12

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