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

Aprendendo a interpretar exerccios de algoritmos

abril 2, 2010lucianopascal Deixe um comentrio Go to comments


Ol pessoal,
Venho falar neste Post sobre um problema em que muitos alunos iniciantes em programao
enfrentam urante o apreni!ao sobre algoritmos, que " o e #$%&'P'&%(' exercic)os e algoritmos*
&xistem n+meros fatores que contribuem para tal ificulae*
,om, o ob-eti.o esse Post " ensinar a #$%&'P'&%(' exerc)cios e algoritmos atra."s e icas que
.ou mostrar aqui para frente*
/e lembrarmos a efinio o significao a pala.ra (0G1'#%21, consiste em um con-uto e passos
finitios cu-o ob-eti.o " solucionar um eterminao problema* &sse P'1,0&2( " ientificao atra."s o
enunciao o exerc)cio que n3s " fornecio para esen.ol.ermos o algoritmo* Vamos .er um exemplo
aqui4
15 6a!er um programa em 7a.a para LER um n+mero e no final, MOSTRAR esse n+mero na tela*8
9ma as coisas que precisamos analisar no enunciao so os V&',1/* 1bser.e que eu estaquei os
.erbos o exerc)cio EM NEGRITO, para facilitar a explicao*
:uano queremos fa!er um programa para LER um n+mero, significa que esse n+mero ser obtio
por meio a leitura e aos V#( %&;0(D1, logo , precisamos fa!er uso e um comano que obt"m os
aos .ia teclao* $o algoritmo, o comano e leitura e aos .ia teclao " conhecio como 0&#(*
Outro detale! 1bser.e que foi peio para se ler um n+mero, mas no foi especificao qual tipo o
n+mero a ler lio, se " n+mero inteiro ou fracionrio, logo, qualquer tipo e n+mero lio " .alio para
este exerc)cio*
/e lermos o exerc)cio acima , obser.e que ap3s a leitura o n+mero que pee para MOSTRARo
n+mero lio na tela* :uano usamos o .erbo 21/%'(', significa que e.emos exibir esse n+mero
lio na tela, por meio a instruo &/;'&V(*
/e fi!ermos o programa, ele ficaria assim4
programa <numero8
"ar
num4inteiro
inicio
escre.a=<Digite um n+mero85
leia=num5
escre.a=<1 numero igitao foi48, num5
#im
1bser.e que eu preferi utili!ar o tipo #$%&#'1 para a minha .ari.el <num8 mas, se quisesse, poeria
utili!ar o tipo '&(0, para tipos fracionrios, que o programa %(2,&2 estaria correto*
&sse exerc)cio poeria estar escrito e .rias formas iferentes, conforme " mostrao abaixo4
> Desen.ol.er um programa para O$TER %O TE&LA%O um n+mero e no final, IM'RIMIResse
n+mero na tela*8
> ;riar uma aplicao para LER %O TE&LA%O um n+mero e epois A'RESENTAR esse n+mero na
tela*8
1bser.em que foram ois enunciaos escritos iferentes, por"m, com a mesma finaliae*
(gora, obser.e esse enunciao4
15 6a!er um programa para LER um n+mero #$%&#'1 e no final, MOSTRAR esse n+mero na tela*8
&sse programa ser o mesmo que o anterior mas, qual " o etalhe ? 1bser.e eu o n+mero a ler lio
o teclao e.er ser um n+mero #$%&#'1, conforme foi explicao acima* &nto, s3 poemos nesse
trabalhar nesse programa com tipos inteiros*
,om, .amos analisar o pr3ximo enunciao4
25 6a!er um programa para LER ois n+mero 6'(;#1$@'#1/ e no final, MOSTRAR a soma os
ois n+meros*8
(t" aqui nenhum mist"rio* 1s .erbos o enunciao acima - foram explicaos e .ocA com certe!a -
consegue interpretar o exerc)cio acima* Vamos l, o programa acima pee a leitura e ois n+meros
fracionrios, e no final, e.e ser exibia na tela a soma os ois n+meros* $esse programa ha.er a
existAncia e trAs .ari.eis o tipo '&(0 =para n+meros fracionrios54 uas .ari.eis para arma!enar
os ois n+meros lios pelo teclao e uma .ari.el para arma!enar a soma os ois n+meros* 1
programa ento ficar assim4
programa <soma numeros8
"ar
num1,num2,soma4real
inicio
escre.a=<Digite ois numeros85
leia=num15
leia=num25
soma B> num1 C num2
escre.a=<( soma os ois numeros " 48, soma5
#im
(gora .amos a um exerc)cio mais interessante4
D5 6a!er um programa que LEIA os n+meros inteiros e epois MOSTRAR ao usurio quatro
opEes e operaEes aritm"ticas 4 aio, subtrao, multiplicao e i.iso* /e o usurio escolheu
aio, mostrar a soma os ois n+meros F se escolheu subtrao, mostrar a subtrao os ois
n+meros e assim sucessi.amente*
Vamos l, nesse programa est seno peio que se-am lios ois n+meros o teclao, poe ser
tanto n+meros inteiros quanto fracionrios, pois no enunciao, no foi especificao qual tipo e
n+mero a ser lio* (t" ai tuo bem* Depois, o programa precisa mostrar na tela quatro opEes e
operaEes aritm"ticas 4 aio, subtrao, multiplicao e i.iso* De acoro com a opo
selecionaa, efetuar a operao aritm"tica sobre os ois n+meros lios*
/e o programa mostra 1PGH&/ $( %&0( para que o usurio possa seleciona uma opo, " preciso
criar uma %&';&#'( V('#@V&0, que ira arma!enar a opo selecionaa* %amb"m , ser preciso criar
mais uma .ari.el que ir arma!enar o resultao a operao sobre os ois n+meros lios sobre o
teclao*
;omo ficaria esse programa4
programa <calculaora8
"ar
num1,num2,res4inteiro
opcao4 inteiro
inicio
escre.a=<Digite ois numeros85
leia=num15
leia=num25
escre.a=I&scolha sua opo85
escre.a=<1 J (io85
escre.a=<2> /ubtracao85
escre.a=<D >2ultiplicacao85
escre.a=<K >Di.isao85
escre.a=</ua opcao485
leia=opcao5
escola opcao
caso 1 4 res B> num1 C num2
caso 2 4 res B> num1 > num2
caso D 4 res B> num1 L num2
caso K 4 res B> num1 M num2
#im escola
escre.a=8 resultao " <,res5
#im
(gora .amos .er um +ltimo exerc)cio e algoritmo, esse " bem interessante e gostaria que, para
quem tem ificulae, siga o passo a passo que " explicao abaixo4
Algoritmo

1 J 1bter o .alor para a .ari.el N% =Noras trabalhaas no mAs5
2 J 1bter o .alor para a .ari.el VN =Valor a hora trabalhaa5
D J 1bter o .alor para a .ari.el PD =Percentual e esconto5
K J ;alcular o salrio bruto =/,54 /, O N% L VNF
P J ;alcular o total e esconto =%D54 %D O =PD M 1005 L /,F
Q J ;alcular o salrio l)quio =/054 /0 O /, J %DF
R J (presentar o .alor o salrio l)quio4/0*
Vamos interpretar o enunciao acima* 1bser.e que caa passo e.e ser seguio &2 1'D&2* (
primeira que e.emos fa!er " 4
1 J 1bter o .alor para a .ari.el N% =Noras trabalhaas no mAs5
,om, <1bter .alor para a .ari.el N%8, significa ler o teclao um .alor para a .ari.el N%, que
representa as horas trabalhaas no mAs* :ual o tipo essa .ari.el ? ,om, essa .ari.el ir
arma!enar as horas trabalhaas* &sse tipo e .alor no poe ser 6'(;#1$@'#1, logo, o tipo essa
.ari.el " #$%&#'1*
2 J 1bter o .alor para a .ari.el VN =Valor a hora trabalhaa5
;omo - foi explicao <1bter .alor para a .ari.el V%8, significa ler o teclao um .alor para a
.ari.el VN, que representa o .alor a hora trabalhaa* :ual o tipo essa .ari.el ? ,om, essa
.ari.el ir arma!enar um .alor monetrio, logo, esse tipo e .alor " 6'(;#1$@'#1*
D J 1bter o .alor para a .ari.el PD =Percentual e esconto5
:ual o tipo essa .ari.el ? ,om, essa .ari.el ir arma!enar um .alor percentual,que "
normalmente um .alor 6'(;#1$@'#1*
K J ;alcular o salrio bruto =/,54 /, O N% L VNF
1bser.e que o passo acima pee que se-a efetuao o calculo o salrio bruto =representao pela
.ari.el /,5, informano tamb"m como " feito seu calculo*
P J ;alcular o total e esconto =%D54 %D O =PD M 1005 L /,F
(cima pee>se que se-a efetuao o calculo o total e esconto =representao pela .ari.el %D5,
informano tamb"m como " feito seu calculo*
Q J ;alcular o salrio l)quio =/054 /0 O /, J %DF
(cima pee>se que se-a efetuao o calculo o salrio l)quio =representao pela .ari.el /05,
informano tamb"m como " feito seu calculo*
R J (presentar o .alor o salrio l)quio4/0*
(cho que o passo acima - explica tuo*
;omo ficaria o nosso programa ?
programa <salario8
"ar
ht,.h,p,sb,sl,t 4 real
inicio
escre.a=<Digite as horas trabalhaas85
leia=ht5
escre.a=<igite o .alor a hora85
leia=.h5
escre.a=<Digite o precentual e esconto85
leia=p5
sb B> ht L .h
t B> ==sb M 1005 L p5
sl B> sb J t
escre.a=</alario l)quio8, sl5
#im
&nto pessoal, a ica para reali!ar os exerc)cios propostos e algoritmos, quaisquer que se-am, e
seguir essas icas que lhe mostrei que, com certe!a, .ocAs no .o se perer no caminho*
Introduo programao/Algoritmos
< Introduo programao
Introduo programao
Aprendizagem
Estruturas de manipulao de dados
Um algoritmo um esquema de resoluo de um problema. Pode ser implementado com qualquer
sequncia de alores ou ob!etos que ten"am uma l#gica in$inita %por e&emplo' a l(ngua portuguesa'
a linguagem Pascal' a linguagem )' uma sequncia numrica' um con!unto de ob!etos tais como
l*pis e borrac"a+' ou se!a' qualquer coisa que possa $ornecer uma sequncia l#gica. Em bai&o
podemos er um algoritmo implementado num $lu&ograma' sobre o estado de uma l,mpada-
.igura / 0 Algoritmo num $lu&ograma
1eguindo o racioc(nio em cima' ento um programa de computador !* por si um algoritmo2 1im'
erdade. Embora ten"amos que usar um algoritmo prio' na nossa l(ngua %como apresentado na
imagem acima+ para escreer um programa com l#gica' o pr#prio programa que prom desse
algoritmo !* um algoritmo. At um esquema mental um algoritmo.
Ok' !* percebi o que um algoritmo. 3as porque que isso interessa ao estudo da programao2
A erdade que' antes de escreermos um programa em qualquer outra linguagem necess*rio
escreer um esquema em papel para eitar erros' por e&emplo' na nossa l(ngua' segundo o
programa que queremos $azer. )om isto no esquecemos a l#gica que queremos dar ao programa
e ser* menos comum o aparecimento de erros. Por e&emplo-
Linguagem humana:
"Se for verdade isso, acontece isto, seno acontece aquilo"
Linguagem de mquina:
IF isso; THEN isto; ELSE aquilo;
4 conte5do escrito em cima est* $ormalizado numa linguagem de algoritmos
c"amada Portuol pela maior parte dos programadores e pro$essores que
trabal"am em institui6es de ensinamento das linguagens de programao.
)omo pode isualizar' um algoritmo pode ser escrito de *rias maneiras' de cima
para bai&o' da esquerda para a direita' na diagonal' em *rabe' em russo... 7
preciso que o escrea8
ndice
9esconder:
; .undamentos
< =#gica de Programao
/ Algoritmo
> ?esumo
@ E&erc(cios
A Bibliogra$ia
Fundamentos[editar | editar cdigo-fonte]
Uma m*quina computacional qualquer m*quina %geralmente de origem eletro0
eletrCnica+ com capacidade de receber dados' e&ecutar opera6es sobre estes
dados e retornar os dados trans$ormados por estas opera6es.
Entrada de
Dados
Processamen
to
Sada de
Dados
As m*quinas computacionais eletro0eletrCnicas possuem geralmente dois
componentes b*sicos- so$tDare e "ardDare. )"amamos de Hardare sua parte
$(sica' e!oftare os programas que tratam os dados imputados.
Euando inserimos algum dado em um computador' os dados inseridos so
trans$ormados em sinais eltricos %c"amados de bits+. 4 bit %do ingls !inar" diit+
representa os dois estados %ligado ou desligado+ que o sinal eltrico pode assumir.
Para trabal"ar com estes dados' podemos associar estes estados de ligado e
desligado a F e ;. Euando utilizamos um computador' "* um $lu&o de sinais
eltricos' que representam os dados inseridos' processados e retornados. Um
con!unto de oito bits $ormam um !"te' que uma unidade completa de in$ormao.
Gentro do bHte' o estado de cada um dos oito bits' assim como sua posio relatia
um ao outro' $az com que o bHte assuma um alor espec($ico %no necessariamente
numrico+' que sere para estrutur*0lo em relao a outros bHtes e criar um sistema
de dados que sira ao usu*rio e&terno.
Para organizar as possibilidades de aria6es destes bits dentro de um bHte'
podemos isualizar uma tabela A1)II.
Lgica de Programao[editar | editar cdigo-fonte]
=ogicamente torna0se trabal"oso trabal"ar com dados de computador bit0a0bit.
)omo $orma de manipular este $lu&o de estados eltricos e estrutur*0lo de $orma a
permitir opera6es mais simpli$icadas e otimizadas sobre os bHtes' surgiu o
conceito de programao. As linguagens de programao so geralmente em dois
n(eis-
Linguagen! de "ai#o $%&e': so linguagens de programao que tratam a
in$ormao na linguagem de m*quina.
Linguagen! de ('to $%&e': so linguagens de programao modeladas quase
como a linguagem comum "umana' que quando compiladas so conertidas
para linguagem de m*quina. )ada linguagem deste tipo possui uma sinta&e
pr#pria' que dee ser respeitada e aprendida para que possa ser corretamente
processada por seu compilador. )ompilador um programa que permite que
determinada programao em uma linguagem espec($ica se!a adaptada para
linguagem de m*quina.
Io entanto' no necess*rio que o programador aprenda todas as diersas
linguagens dispon(eis no mercado. )ada linguagem recomendada para
determinadas aplica6es' assim como possuem suas sinta&es pr#prias' mas todas
so estruturadas logicamente. )om aprendizado da =#gica de Programao o
aluno entender* os conceitos b*sicos da programao poder* com menor ou maior
di$iculdade' dependendo da linguagem escol"ida' aprender a linguagem que quiser.
Algoritmo[editar | editar cdigo-fonte]
As linguagens de programao tratam os dados de um computador atras do uso
de algoritmos. Um algoritmo uma estruturao passo0a0passo de como um
determinado problema dee ser resolido de $orma no0ambigua %ou como muitos
comparam Juma receita de boloJ+ . Gesta $orma' para realizar esta estruturao
necess*rio o uso de $erramentas e opera6es oriundas da =#gica' e principalmente
da =#gica 3atem*tica.
Antes de estruturar0se de $orma l#gica para programao' deemos saber qual o
tipo de problema proposto' as in$orma6es que sero imputadas e os passos a
serem e$etuados para atingir0se um $im espec($ico. Por e&emplo' amos er um
JalgoritmoJ sobre Jtomar ban"oJ-
;.Kirar a roupa.
<.Abrir o registro.
/.Ensaboar0se.
>.En&aguar o corpo.
@.Passar s"ampoo nos cabelos.
A.En&aguar o cabelo.
L..ec"ar o registro.
Mimos ento um problema proposto %tomar ban"o+ e
os passos para solucionar o problema. =ogicamente'
que "* outras $ormas de estruturarmos este algoritmo
de $orma a adapt*0lo a atingir o mesmo $im. Io
entanto' o importante estrutur*0lo de $orma coerente'
e$icaz e simples' ou como muitos dizem de J$orma
eleganteJ. Meremos na pr#&ima lio que podemos
desen"ar este algoritmo e aplicar conectios l#gicos
que permitam manipular as in$orma6es necess*rias.
4 e&emplo abai&o' usar o orel"o' apresenta
condi6es para tomar deciso.
;. ?etirar o $one do ganc"oN
<. )olocar o carto tele$CnicoN
/. Esperar o ru(do de discarN
>. )om ru(do de discar' disque o n5mero
dese!adoN
@. 1e sinal de ocupado' $aa-
;. )olocar $one no ganc"o e oltar ao
passo ;N
A. 1e sinal de c"amada' $aa-
;. Esperar atender ao tele$oneN
<. )onersarN
/. )olocar $one no ganc"oN
>. ?etirar o cartoN
Algoritmos tambm podem ter condi6es para
repetio.
Aprenda a programar O; P
=inguagens de Programao
- Bruno Barbosa
Posted !" Bruno Barbosa on a!r #$, %&#& in Algoritmos, Desenvolvimento ' 145 comments
alto nvel aprenda a programar baixo nvel Desenvolvimento linguagem de programao
Io sou matem*tico' muito menos especialista em estat(stica' mas acredito que L em cada ;F pessoas apai&onadas
por tecnologia' !* tieram ontade de desenoler seu pr#prio so$tDare' ou mel"orar um outro c#digo em
um so$tDare lire.
7 pensando nisso que o Algoritmizando estria "o!e uma noa seo8
Koda tera0$eira' iremos postar uma matria ensinando esse $ant*stico mundo de programao. comeando a partir
de algoritmos' e dependendo da participao do pessoal' nos coment*rios' d5idas' etc' poderemos ir bem mais
longe' e quem sabe' realmente $ormar alguns bons programadoresQ
)omo "o!e apenas uma introduo do que "* por im' estarei dando um bree conceito sobre o que uma
linguagem de programao.
4 que uma linguagem de programao2
Uma linguagem de programao um mtodo padronizado para e&pressar instru6es para um computador.
Porque programar2
Moc pode programar para alcanar in5meros ob!etios' como por e&emplo' desenoler um so$tDare' para
automatizar tare$as' quem sabe ende0lo e $icar rico8 ou mel"or ainda' !* pensou em criar um !ogo de computador2
$icar $amoso eQ. rico8
Moc tambm pode programar para Deb' desenoler aplicatios eQ se $izer sucesso' "mmQ pode $icarrico8 rsrs
1im' a *rea de tecnologia um mercado em constante crescimento e com sal*rios iniciais relatiamente altos. 1e
oc tem uma pai&o em especial por computadores' por que no entender sua linguagem e se comunicar mel"or
com eles RR
Ento' qual a linguagem que o computador entende2
Ia erdade' os computadores no so inteligentes' como todos pensam. Inteligente o programador8
4 computador entende apenas a linguagem bin*rio' ou se!a' ; e F' ligado ou desligado' tenso alta ou tenso
bai&aQ Io tem meio termoQ
)uer di*er que tenho que aprender a programar em + e ,-
Iegatio. So!e em dia' temos o que c"amamos de compiladores e interpretadores. 1o eles que $azem essa
traduo de nossa linguagem para linguagem de m*quina.
Eual a di$erena da linguagem compilada para
interpretada2
Ia linguagem interpretada' o c#digo $onte traduzido para linguagem de m*quina no momento da interpretao
%e&ecuo+' e o c#digo $ica is(el' enquanto na compilada' este $eito anteriormente' no sendo poss(el isualizar
o c#digo $onte.
4ui dizer' que e&istem linguagens de bai&o e alto n(el'
qual a di$erena2
?esumidamente' as linguagens de bai&o n(el' so aquelas que possuem contato direto com o "ardDare do
computador' geralmente linguagens compiladas' como por e&emplo )' )TT' AssemblHQ
Enquanto as linguagens de alto n(el o contato com o so$tDare' e&emplos so linguagens interpretadas como
PHt"on' PSP' Uaa1cript' PascalQ
E isso galeraQ
"o!e $oi s# uma Vpal"in"aW do que est* por ir' tera0$eira que em' iniciaremos o conte5do de algoritmos' e no
decorrer da semana' sempre not(cias' dicas' tutoriais e muito mais sobre tecnologia.
Io perca nen"um post da seo e receba todos os posts do algoritmizando por email.
.e ti&erem a'guma !uge!to/ d0&ida! ou cr%tica!/ no dei#em de comentar1
(2rao!3
Aprenda a programar O< X Algoritmos P
4 que um algoritmo
- Bruno Barbosa
Posted !" Bruno Barbosa on a!r %&, %&#& in Algoritmos, Desenvolvimento ' 54 comments
aprenda a programar Desenvolvimento o que um algoritmo portugol pseudo-linguagem
Bem indos ao segundo post da srie- Aprenda a Programar
Io primeiro post da srie' abordamos alguns conceitos sobre linguagem de programao. A partir de "o!e' iremos
aprender uma pseudo0linguagem' para $acilitar o entendimento $uturo e adiquirir certa l#gica de programao.
3as por onde comear2
Para maioria dos seres mortais' a base de tudo' est* nos AlgoritmosQ
4 que um algoritmo2
1egundo a YiZipdiaQ
() alorit)o * u)a sequ+ncia finita de instru,-es !e) definidas e no a)!.uas, cada u)a das quais /ode ser
e0ecutada )ecanica)ente nu) /er.odo de te)/o finito e co) u)a quantidade de esfor,o finita1
4Z BrunoQ Agora traduz888
4 algoritmo' uma instruo' ou uma ordem que oc dar* ao computador' para que ele realize determinada tare$a.
Ao contr*rio do que a maioria das pessoas pensam' o computador no inteligente' quem inteligente' o
programador8
1impli$icandoQ
Para que o computador entenda algo' necess*rio que oc o VensineW passo0a0passo' como dee proceder. )omo
em uma receita de bolo.
Um e&emplo-
Em nossa linguagem' se eu $osse criar um algoritmo e&plicando o que acontece quando acordo at o momento que
entro no c"ueiro' seria mais ou menos o seguinte-
Inicio
2runo 2ar!osa des/erta
a!re os ol3os
senta na ca)a
coloca o /ri)eiro /* no c3o
/-e o seundo
fica de /*
anda at* a sala de estar
c3uta co) o )indin3o do /* a /onta do sof4
di5 alu)as /alavras de !ai0o calo devido ter )ac3ucado )uito
continua ca)in3ando
entra no !an3eiro
fica nu 6ui7
entra e) !ai0o do c3uveiro
lia o c3uveiro
to)a !an3o
FI8
Pode0se perceber ento' que tudo um algoritmo.
4 sistema de buscas do [oogle' tem um algoritmo por tr*s dele' o msn que ocs tanto gostam' tambm tem um
algoritmo' e assim sucessiamente.
Para aprendermos mel"or sobre isto' antes de passar para qualquer tipo de linguagem de programao
propriamente dita' iremos aprender a programar em uma pseudo0linguagem' con"ecida como Portugol ou Portugus
Estruturado.
Portugol
4 portugol' uma pseudo0linguagem criada para $acilitar o aprendizado de algoritmos e l#gica de programao' ela
possui suas particularidades como qualquer outra linguagem' e a partir do pr#&imo post' iremos passar a
VprogramarW nesta linguagem' utilizando a a!uda do so$tDare Misual[. Ento no percam e nos acompan"em' que
toda tera' um post noo para oc aprender a programar8
E galera' amos comentar' postem suas d5idas' opni6es e digam o que esto ac"ando da seoQ
abraos
Aprenda a programar O/ X Algoritmos P
Mari*eis
-Bruno Barbosa
Posted !" Bruno Barbosa on a!r %&, %&#& in Algoritmos, Desenvolvimento ' 216 comments
aprenda a programar Desenvolvimento portugol tipos de variaveis variaveis
)ombo8
Isso mesmo' deido ao sucesso do aprenda a programar O; e mais alguns outros $atores no to importantes' nesta
tera0$eira' um presente do algoritmizando para ocs8
Gois posts da srie Aprenda a programar em um 5nico dia8
Para quem perdeu os outros posts anteriores' est* aqui uma lista do que !* $oi passado-
Aprenda a programar O; P Introduo a linguagem de programao e e&plicao de alguns conceitos importantes.
Aprenda a programar O< P Introduo a algoritmos' portugol e conceitos.
Ento amos ao que interessaQ
Mari*eisQ
1im' ari*eis.
E para quem ainda no sabe' em programao' o uso da matem*tica relatiamente alto e importante tambm'
que oc possua um bom racioc(nio l#gico. 1abe aquela matria de l#gica matem*tica' que oc aprendeu no
ensino mdio' $undamental' ou qualquer que se!aQ pois' ela bastante 5til aqui8
3as o que so ari*eis em programao2
Gesen"o de como seria uma ari*el
Mamos entender ari*el' como uma cai&a' na qual oc pode dar o nome que l"e ac"ar coneniente' e guardar o
conte5do que dese!ar.
4u se!a' toda ari*el tem um nome/ &a'or e tipo3
3as oc no $alou de tipo' o que isso2
As ari*eis' podem sem classi$icadas em-
numrica %numeros reais ou inteiros+N
caracteres %sequncias de te&to+N
booleanas %erdadeiro ou $also+N
Em portugol' temos os tipos- rea'/ inteiro/ caractere e 'ogico
Ento eu posso colocar qualquer nome em min"a ari*el2
1im e Io8
4omo a!!im-
)ertas palaras' so reseradas para o uso da linguagem' ou se!a' essas palaras no podem !er uti'i*ada! como
um nome para sua ari*el' pois "aeria um con$lito na "ora de interpretar o c#digo.
Abai&o' uma tabela sobre as palaras reseradas do portugol-
Palaras reseradas do Portugol
Io se preocupe em decorar essa tabela' no necess*rio8 A medida em que oc $or aprendendo a programar em
portugol' oc saber* e&atamente qual palara ' e qual no reserada pela linguagem.
4utras restri6es para o nome de sua ari*el -
4 primeiro caractere de sua ari*el' dee ser necessariamente 'etra ou under'ine \]^. Io pode comear
em n5meros
Iomes de ari*eis no podem ter espaos em branco. Iada de 4oca 4o'a por e&emplo3 Uma ari*el
correta seria (rgoHo!t' tudo !unto e sem espaos.
Essa aqui c"ega a ser di$(cilQ Io permitido ari*eis com mais de ;<L caracteres %pasmem8 quem
criaria uma ari*el desse taman"o2+
E por $im' em Portugol' di$erente de outras linguagens de programao' as ari*eis no so case
sensivit", ou se!a' elas no di$erenciam mai5sculas de min5sculas. =ogo' BrUn4 _ bruno.
Um pouco mais sobre os tipos de ari*eisQ
A tabela abai&o' e&empli$ica que tipo de conte5do ai em cada ari*el.
Kipos de ari*eis do portugol
[alera' isso a(' qualquer d5ida' sugest6es' dei&eem coment*rioos888
1omente aqui no algoritmizando' oc tem um curso completo para aprender a programar para no dizer de graa'
com o custo de apenas 56 4768$9:;I7.
Ento' amos participar8 Euanto mais participao' mais posts para ocs888
Um $orte abraoQ e at a pr#&ima tera0$eira.
3as enquanto no c"ega' acessem diariamente o algoritmizando' pois sempre tem um post noo para oc8
At mais.
Aprenda a programar O> X Algoritmos P
Estrutura do Portugol
- Bruno Barbosa
Posted !" Bruno Barbosa on a!r %9, %&#& in Algoritmos, Desenvolvimento ' 285 comments
aprenda a programar Desenvolvimento portugol variaveis
Bem indos algoritmizeiros %acabei de inentar essa e&presso _&+ a mais um post da srie Aprenda a Programar.
So!e' iremos nos apro$undar um pouco mais na pseudo0linguagem portugol' e a partir de agora ser* necess*rio para
um mel"or acompan"amento' que todos !* ten"am o Misual[ instalado na m*quina.
1e oc marin"eiro de primeira iagem' de uma ol"ada nos outros posts da srie-
Aprenda a programar O; ` Aprenda a programar O< ` Aprenda a programar O/
Ento amos ao que interessa8
Estrutura do portugolQ
Kodo e qualquer algoritmo' ter* sempre um $ome/ <ec'arao de &ari&ei!/ In%cio e =im3 Ia estrutura abai&o-
:lorit)o ;no)e<do<seu<alorit)o=
>:?
no)e<da<var@ ti/o
no)e<da<var%@ ti/o
INIAIO
'
'
'
'
FI8:LBO?IT8O
4Z' entendi o VIomeW VIn(cioW e V.imW masQ
4 que declarao de ari*eis2
A declarao de ari*eis' uma parte obrigat#ria no portugol' assim como em outras linguagens de programao
como ) por e&emplo.
Ela necess*ria para que o interpretador entenda que aquela palara uma ari*el' alm de ser 5til em muitos
casos' para que no d um erro em seu programa $uturamente deido a um erro de digitao' acusando de imediato
onde est* o erro.
Ia estrutura do Portugol' dentro da seo MA?' declaramos a ari*el da seguinte maneira-
Nome-da-var: tipo
e0@
)euno)e@ caractere
Ainda sobre a questo de ari*eis' no ou entrar em muitos detal"es' pois as mesmas $oram e&plicadas no post
anterior.
Mamos ento criar nosso primeiro programaQ8
Ia tela Inicial do Misual[' !* temos a estrutura de nosso portugol pronta' como e&pliquei no in(cio do post.
algoritmo Vol* mundoW
ar
inicio
escrea%V4l* 3undo8W+
$imalgoritmo
Io entendi nada8 o que esse VescreaV2
4 e!cre&a uma palara reserada do portugol' como e&pliquei no Aprenda a programar O/.
1ua $uno escreer na tela o te&to entre W W %aspas+
1e oc est* utilizando o isualg' ao digitar este c#digo e apertar =>' o c#digo ser* e&ecutado' e oc er* que
estar* escrito na tela apenas a $rase- 7' 6undo1
E porqu no "* nada no campo das ari*eis2
Porque ainda no utilizamos nen"uma.
Io c#digo acima' como ocs podem er' $oi utilizado apenas um min5sculo pedao do que podemos $azer em
portugol.
Io algoritmo a seguir' amos $azer o uso da $uno 'eia?@ e de ari*eis.
algoritmo VleianumeroW
ar
num- inteiro
inicio
escrea%VGigite um n5mero- V+
leia%num+
escrea%V4 n5mero digitado - V' num+
$imalgoritmo
Entendendo o algoritmoQ
.oi declarado a ari*el num' como inteiro. 4u se!a' poder* receber qualquer n5mero no0$racion*rio %0<' 0/' 0<F' F'
;' <' >F' ;aQ+
Em seguida' o algoritmo ir* solicitar ao usu*rio que digite um n5mero' escreendo na tela a seguinte $rase- <igite
um n0mero:
1e ocs notarem' "* um espao ap#s os - e antes da V' isso necess*rio para que o cursor d o espao dese!ado.
)omo $alei em um post anterior da srie' o computador no inteligente' ou se!a' oc tem que e&plicar tudo a ele'
passo a passo.
o 'eia?num@ ir* aguardar com o cursor na tela at que o usu*rio digite um n5mero inteiro e tecle enter.
4 num a ari*el que declaramos no in(cio do algoritmo' lembram2
E $inalmente' o resultado.
e!cre&a?A7 n0mero digitado B: A/ num@
7 importante notar' que no e!cre&a' tudo o que estier entre aspas' ai ser tratado como um te&to qualquer' ento
para retornarmos o conte5do de uma ari*el' $ec"amos primeiro as aspas' colocamos uma (rgula e digitamos o
nome da ari*el' para s# ento $ec"ar o parenteses.
Kestem o algoritmo acima no Misual[' e e!am o resultado.
Kreinem mais um poucoQ
[alera' que tal treinar mais um poucoQ
;. )rie um algoritmo que leia < n5meros e mostrem o resultado.
<. )rie um algoritmo que leia o nome e a idade de algum' e mostre na tela o que $oi digitado.
Dica: no e0erc.cio %, ter4 que ser declarado duas vari4veis, u)a do ti/o inteiro e outra do ti/o caractere1 Se 3ouver
dCvidas, de u)a ol3ada no /ost anterior1
Gepois de criar o algoritmo' entrem na $iloso$ia do 1o$tDare =ire' compartil"e seu c#digo conosco8
Porque no postar seu c#digo nos coment*rios para a!udar quem tem d5idas2 E&istem diersas maneiras de
c"egar a uma soluo a partir de um algoritmo8
Aprenda a programar O@ X Algoritmos P
Atribuio e 4peradores Aritmticos
- Bruno Barbosa
Posted !" Bruno Barbosa on )ai D, %&#& in Algoritmos, Desenvolvimento ' 111 comments
aprenda a programar aritmeticos operadores
4l* algoritmizeirosQ
Bem indo ao quinto post da srie Aprenda a programarQ
So!e' passaremos a ocs como atribuir alor a uma ari*el' sem utilizar a interao com o leitor' ou se!a' sem a
utilizao do comando 'eia?&aria&e'@' e tambm aprenderemos sobre os operadores matem*ticos' para que em
bree' possamos comear a $azer algoritmos de erdade8
4 resultado dos desa$ios que passei no post anterior' estaro nos coment*rios do mesmo. Ento amos comearQ.
3as antesQ
?etrospectia do 5ltimo epis#dio postQ
.oi isto no post`tutorial anterior' declarao de ari*eis' como escreer uma mensagem ao usu*rio' e insero de
dados a partir de interao com o leitor' como no e&emplo abai&o-
alorit)o ;e0e)/lo=
var
e)/resa@ caractere
inicio
escreva6;Eue e)/resa oferece 3os/edae) de sites /elo )el3or custoF!enef.cioG ;7
leia6e)/resa7
escreva6;>oc+ diitou@ ;,e)/resa7
fi)alorit)o
e se por acaso' eu precisar atribuir um alor * uma ari*el
sem a interao do leitor Bruno2
Meremos agora' logo abai&oQ
AtribuioQ
Utilizaremos este s(mbolo`sinal`setin"aQ' para atribuir um alor a uma ari*el- <0
E&emplo-
numero <0 ;F
id <0 ;a
Q
e tambm' podemos atribuir a uma ari*el' o alor de outra ari*el.
Io entendi nadaQ
Por e&emplo' eu ten"o a ari*el #' que possui o alor C+' e tambm a ari*el id' que pode conter' ou no algum
alor.
A questo que eu quero atribuir a ari*el id/ o alor da ari*el #Q
como !eria-
simplesQ
id D- #
?esumindoQ
Para atribuir um alor qualquer a uma ari*el' basta digitar o nome da ari*el' seguida de uma seta para
esquerda' seguido do alor que oc quer que ela ten"aQ
Bruno' entendi essa parte' mas quero $azer mais do que
escreer e ler dados em meu algoritmoQ
4Z' ocs quem mandam8
Iem tudo na ida' sequencial' ou se!a' poss(el resoler apenas de uma maneira. As ezes' preciso "aer
condi6es para e&ecutar determinada tare$a' assim como e$etuar opera6es matem*ticas' e outrosQ
Iesse caso' utilizaremos opera6es matem*ticas' condicionais' laos de repeti6es' etc.
Io se assustem' eremos cada um passo0a0passo' no di$(cil8
A princ(pio' neste post' $icaremos apenas nos operadores aritmticos' e ermos o restante a partir da pr#&ima tera0
$eiraQ.
4peradores aritmticosQ
Para se realizar c*lculos com ari*eis' ou n5meros de$inidos pelo programador' utilizaremos alguns sinais !*
bastante con"ecidos por todos ocs-
Para entender os operadores aritmticos' importante ressaltar' antes de mais nada' que como estamos
VensinandoW algo para o computador' no podemos e no temos como passar para ele do !eito que escreemosQ
Por e&emplo' em uma $#rmula matem*tica' ter(amos que passar tudo para uma lin"a apenas. 7 o que c"amamos de
linearizao.
Mocs iro entender mel"or ao isualizar a imagem abai&o-
E de onde saiu todos esses parnteses e Vs(mbolosW2
)alma galera' de uma ol"ada na tabela abai&o' dos operadores aritmticos' e $icar* mais $*cil o entendimentoQ
)ada um desses' sero e&plicados mais detal"adamente a medida em que iremos utilizando0osQ
Kira0d5idasQ
[alera' estamos c"egando em um ponto' em que no pode mais "aer d5idas sobre o que $oi dito at aquiQ
1e algum tier alguma d5ida' no "esitem em $azer sua pergunta nos coment*riosQ
E gostaria tambm de um $eed bacZ' sobre o que esto ac"ando da srie Aprenda a Programar' para que possa
estar aper$eioando e atingindo um p5blico maiorQ
Um $orte abrao' e at o pr#&imo post8
Aprenda a programar OA X Algoritmos P
4peradores l#gicos e relacionais
- Bruno Barbosa
Posted !" Bruno Barbosa on )ai #%, %&#& in Algoritmos, Desenvolvimento ' 10 comments
aprenda a programar operadores operadores logicos operadores relacionais tabela verdade
4l* queridos algoritmizeiros' como de costume' toda semana tem posts para ocs da srie- Aprenda a Programar.
Io quinto post' concluimos $alando dos operadores aritmticosQ e creio eu que no dee "aer nen"uma d5ida' !*
que no i mani$esta6es nos coment*riosQ
Ento "o!e iremos abordar mais alguns tipos de operadoresQ
Ento. est* esperando o que para comear a aprender2 RR
4peradores relacionaisQ
4s operadores relacionais' serem para realizar a comparao entre duas e&press6es' e resultam apenas um
alorQ Eerdadeiro ou =a'!o3
4bserem a tabela abai&o-
4Z Bruno' tem algum e&emplo2
Kem sim8
as compara6es' no so nen"uma noidade do que aprendemos na escolaQ
por e&emplo-
< T < < @ __b Eerdadeiro
;a <b ;a __b =a'!o
1imples no2
4s operadores l#gicosQ
Kemos ainda mais / operadores' o 8' 75 e o $(7' esses so c"amados de operadore! 'gico!' e tambm iro
resultar apenas um alor' podendo ser Eerdadeiro ou =a'!o.
Mamos er a aplicao desses operadores em uma tabela erdade.
Entenderam como eles $uncionam2 Bem simples no2
Ento amos complicar mais um poucoQ
Io desenolimento de um programa' nem tudo so $lores' ou se!a' amos colocar nossa cabea para pensarQ
As ezes necess*rio !untar' dois ou mais operadores di$erentes para conseguir um resultadoQ
Por e&emplo-
%< T < < @+ e %;a <b ;a+ resulta =(L.7' pois como podemos obserar na tabela erdade
acima'Eerdadeiro e =a'!o resulta =a'!o3
A"Q ento eu ten"o que decorar essa tabela erdade2
Io8
Um macete para ocsQ
Io operador 8- 1er* &erdadeiro quando as duas e&press6es $orem &erdadeira!.
Io operador 7u: 1er* &erdadeiro quando qualquer uma das e&press6es $orem &erdadeira!3
=ogo'
1e "ouer 56( e&presso $alsa no operador 8' o resultado sempre ser* =(L.73
Io operador 75' ser* =(L.7 apenas quando as duas e&press6es $orem =(L.(.3
Gi$(cil2 Io' basta um pouco de treinoQ
Eue tal responder * alguns desa$ios2 retornando o resultado da e&presso' sendo ele' Eerdadeiro ou=a'!o3
;. %%/ T @+ ` <+ b F+ -
<. %/ c / b ;F+ ou %< T < < ;F+ -
/. %;F <b @+ ou %; T ; _ F+ -
>. %< T / b_ @+ e %;a ` / < L+ -
@. %; T ; _ F+ e %F P ; b F+ -
7 re!u'tado do! de!afio! !air aqui me!mo ne!!e po!t/ na !eo de comentrio! na data de 'anamento do
pr#imo po!t da !Brie3
?espondam galera' no ten"am medo de errar8
At mais.
Aprenda a programar OL X Algoritmos P
)ondicionais
- Bruno Barbosa
Posted !" Bruno Barbosa on )ai #H, %&#& in Algoritmos, Desenvolvimento ' 21! comments
aprenda a programar Desenvolvimento estrutura condicional if-then-else portugol
Estrutura condicionalQ
Me!amosQ
"e ;o Fla)eno vencer= entao
#$ %ele ser4 ca)/eo da li!ertadores=
&imse
_G
1im' na ida' as ezes nos deparamos em situa6es na qual precisamos escol"er algo !omente !eoutra coisa
acontecerQ
)"amamos isso de condio.
Ios algoritmos' tambm utilizaremos isto' como ocs notaram no comeo do post' o que utilizei ali' $oi uma
estrutura condicional. 4bserem bem' o que est* em negrito' as palaras !e/ entao/ fim!e. Elas sero
important(ssimas em nosso algoritmoQ
ento' poderia basicamente dizer que em um algoritmo a sinta&e seria a seguinte-
se 'condi,oI entao
#$ 'a,-es a sere) reali5adas se a condi,o for verdadeiraI FF/ode ser u)a ou )ais
&imse
Eu sei que o computador no entenderia se eu colocasse
simplesmente Vele ser* campeo da libertadoresW' ento
como $icaria isso em um algoritmo2
Esse $oi um e&emplo bem did*tico' mas em portugol' seria mais ou menos o seguinte-
!e %encedor _ V.lamengoW+ entao
F3 escrea%V.lamengo ser* o campeo da =ibertadores888W+
fim!e
Esses VQ.W antes da ao' necess*rio2
Io' esses quatro pontos' um arti$(cio que estou usando aqui no blog para indicar que ali' e&iste um espao ou
uma tabulao' !* que se eu simplesmente der o espao aqui no blog' ele no ir* interpretar e $icar* como se no
"ouesse nadaQ
Ento para que esse espao2
Esse espao' o que c"amamos de identao' que alm de ser uma questo de tica entre os programadores' ele
ai serir para que seu c#digo ten"a uma mel"or aparncia' e $ique mais $*cil para entend0lo e dar manuteno.
Entendi essa parteQ mas e se a condio $or $alsa2
V1e oc no mandar o computador $azer nada' ele nada $ar*8W %bH eu+
Iesse caso' podemos $azer nosso algoritmo de duas maneiras-
; P utilizar dois condicionais .8.
Um e&emplo bem did*tico e de $*cil entendimento-
1. !e din"eiro b_ /F entao
<. Q. ir]ao]cinema <0 erdadeiro
/. Q. assistir]t <0 $also
4. fim!e
5. !e din"eiro < /F entao
6. F3 ir]ao]cinema <0 $also
L. Q. assistir]t <0 erdadeiro
8. fim!e
e a segunda opo' que bem mel"or e de mais agrad*el leituraQ
1. !e din"eiro b_ /F entao
<. Q. ir]ao]cinema <0 erdadeiro
/. Q. assistir]t <0 $also
4. !enao
5. F3 ir]ao]cinema <0 $also
A. Q. assistir]t <0 erdadeiro
7. fim!e
4bserem que agora na lin"a quatro' apareceu uma palarin"a noa para n#sQ 4 !enaoQ
Para que sere o senao2
4 senao' ser* e&ecutado sempre que o resultado do VseW $or $also.
Io e&emplo acima' o interpretador $ez uma pergunta' Vo din"eiro maior ou igual a /F2W
)aso $osse' a ariael Vir]ao]cinemaW receberia o alor erdadeiro' e a ari*el Vassistir]tW receberia o alor $also.
1e o din"eiro no $osse maior que /F' ou se!a' caso ele $osse menor' o alor recebido das ari*eis Vir]ao]cinemaW
e Vassistir]tW seriam outros.
.*cil no2
Agora' um algoritmo facin facin' para que ocs entendam por ez' como $unciona a estrutura condicional!e3
)omo desa$io de "o!eQ
Kentem entender o algoritmo acima sem copia0lo no Misual[. E caso no ten"am conseguido entender' pode postar
nos coment*rios que e&plicarei lin"a por lin"a
E mais dois desa$ios e&trasQ _+
;. .aa um algoritmo que receba um n5mero e mostre uma mensagem caso este n5mero se!a maior que ;F.
<. .aa um algoritmo que receba um n5mero' e in$orme se este n5mero est* no interalo de ;FF a <FF.
Abraos galera' e at o pr#&imo post8
Aprenda a programar Oa X Algoritmos P
Escol"a .. )aso
- Bruno Barbosa
Posted !" Bruno Barbosa on )ai %J, %&#& in Algoritmos, Desenvolvimento ' 5( comments
aprenda a programar comentarios Desenvolvimento escolha portugol
Escol"aQ casoQ
4l* algoritmizeiros' c"egamos "o!e ao oitao post de nosso curso`srie`aula %como queiram c"amar _+ sobre
algoritmos.
Para quem no con"ece ainda' o \Aprenda a Programar\' uma srie de posts lanados toda semana' geralmente
na tera ou quarta0$eira' ensinando uma linguagem de cun"o did*tico para que se possa iniciar no $ant*stico mundo
da programao. Essa linguagem c"ama0se Portugol.
Moc pode er todos os posts !* lanados clicando aqui' ou no menu lateral do site.
Ento amos ao que interessa888
Io 5ltimo post' aprendemos sobre estrutura condicional' quando e como utilizar o operador .8-8$9(7-.8$(7'
porm' dependendo da ocasio' quando se "* muitas escol"as di$erentes' nosso c#digo pode $icar grande' e de
di$(cil leituraQ
Iesse caso' entra mais uma $uno em nosso querido algoritmo' o 8.47LH(F 4(.7F 4(.7F
759;74(.7F _+
Ele to simples quanto o .8' e acredito que no dee "aer tantas d5idas.
Abai&o tem um algoritmo' sobre a classi$icao de atletas pela sua $ai&a et*ria' este e&emplo' poderia ter sido $eito
utilizando a estrutura condicional se P ento' mas aqui utilizarei o escol"a P caso' para que ocs entendam como
$unciona o mesmo.
3as antes do algoritmoQ
)oment*riosQ
)oment*rios de que Bruno2
.utebol' religio' $o$ocaQ
Io' no nada disso8
os coment*rios que direi agora' so trec"os no c#digo em que podemos escreer algo sem que o interpretador ac"e
que isso uma lin"a de c#digo.
Em portugol' nossos coment*rios so tudo aquilo precedido por `` %duas barras+
Para que sere os coment*rios2
4s coment*rios em um c#digo' sere para $acilitar o entendimento por outros programadores. Io podemos ser
ego(stas em pensar que apenas oc que o escreeu dee entende0lo' outras pessoas mais cedo ou mais tarde'
precisaro ter acesso ao c#digo para dar manuteno ao mesmo' se!a eleso$tDare lire ou no.
E $inalmenteQ o Algoritmo
algoritmo V)lassi$icao de AtletasW
ar
nome' categoria- caractere
idade- inteiro
inicio
escrea%VGigite o nome do atleta- V+
leia%nome+
escrea%VIn$orme a idade do atleta- V+
leia%idade+
FF :t* aqui tudo !e), ele /ede o no)e e idade, l+ os valores e Koa nas res/ectivas vari4veis
escol"a idade
FF : fun,o escol)a ir4 inter/retar os casos a!ai0o e) ci)a da vari4vel idade
caso @'A'L'a'd';F
FF Aaso a vari4vel idade rece!a os valores de D a #&, ir4 atri!uir na vari4vel categoria o valor@ in&antil
Q. categoria <0 Vin$antilW
caso ;;';<';/';>';@
FF Aaso a vari4vel idade rece!a os valores de ## a #D, ir4 atri!uir na vari4vel categoria o valor@ *uvenil
Q. categoria <0 V!uenilW
caso ;A';L';a';d'<F
FF Aaso a vari4vel idade rece!a os valores de #J a %&, ir4 atri!uir na vari4vel categoria o valor@ *unior
Q. categoria <0 V!uniorW
caso <;'<<'</'<>'<@
FF Aaso a vari4vel idade rece!a os valores de %# a %D, ir4 atri!uir na vari4vel categoria o valor@pro&issional
Q. categoria <0 Vpro$issionalW
outrocaso
FF E se a vari4vel idade no rece!er nen3u) dos valores aci)a )encionados, va)os atri!uir a vari4velcategoria o
valor@ inv4lido
Q. categoria <0 VIIMA=IG4W
$imescol"a
FF O &imescol)a finali5a a fun,o que a!ri)os anterior)ente
escrea%V)ategoria- V'categoria+
FF E este Clti)o escreva, serve /ara que /ossa)os )ostrar o resultado ao usu4rio
$imalgoritmo
)aso ocs pre$iram' disponibilizei o arquio .alg para ser aberto no Misual[ do algoritmo acima' o linZ para
doDnload est* logo abai&o-
)lassi$icao de Atletas %;</a+
Por enquanto s#Q se tierem d5idas' cr(ticas' sugest6es'
reclama6es' elogios' saudades' ou o que $or' s# postar
nos coment*rios galeraQ
Abraos e at o pr#&imo post da srie _+
Aprenda a programar Od X Algoritmos P
Estruturas de repetio ;
- Bruno Barbosa
Posted !" Bruno Barbosa on Kun #, %&#& in Algoritmos, Desenvolvimento ' 6! comments
aprenda a programar Desenvolvimento estruturas de repetio portugol repita ate
Estruturas de repetioQ
Bem indo algoritmizeirosQ
Parece que $oi ontem que comeamos nossa srie de posts sobre algoritmos' na tentatia de $azer esse mundo
mel"or com mais programadores _G
Agora' no nono post da srie' amos aprender sobre estruturas de repetio.
3as o que isso2
Bom' at o momento' sempre $izemos algoritmos lineares' ou se!a' ele possui um comeo' meio e $im' e segue essa
ordemQ
As estruturas de repetio' iro repetir determinados comandos' at que uma comparao l#gica se torne erdadeira
ou $alsa.
Mou e&plicar com e&emplos' assim o entendimento se tornar* mais $*cil.
7 ('goritmo a2ai#o/ 'G o nome e a nota de trG! pro&a! de trG! a'uno! diferente!F
1
2
3
4
5
Algoritmo "MediaHarmonica"

var
a, b, c, MH: real
nome: caractere
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

inicio

escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das trs provas")
escreva ("Digite a primeira nota: ")
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- !("!a # "!b #"!c)
escreval ("A m$dia %arm&nica do aluno: ", '(ME, " $ ", MH)
escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das trs provas")
escreva ("Digite a primeira nota: ")
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- !("!a # "!b #"!c)
escreval ("A m$dia %arm&nica do aluno: ", '(ME, " $ ", MH)
escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das trs provas")
32
33
34
35
36
37
38
39
40
41
42
43
escreva ("Digite a primeira nota: ")
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- !("!a # "!b #"!c)
escreval ("A m$dia %arm&nica do aluno: ", '(ME, " $ ", MH)

)imalgoritmo
[rande no2
Ainda bem que s# t(n"amos trs alunosQ
E se $osse uma turma de >F alunos2
Para isso amos utilizar estruturas de repetio _+
?epita Q at
Ia estrutura repita H ate' todos os comandos sero e&ecutados e' ao $inal' "aer* uma e&presso l#gica' para que
aalie a repetio' esta que somente ir* cessar quando essa e&presso $or erdadeira.
1
2
3
4
!! sinta*e da estrutura de repeti+,o
repita
<comandos-
ate <e*press,o l.gica!relacional-
Agora um e&emplo did*ticoQ
1
2
3
4
5
algoritmo "Demonstra/epeticao"

var
i: inteiro

6
7
8
9
10
11
12
13
14
inicio

i <- "
repita
escreva(i)
i <- i # "
ate i - "0

)imalgoritmo
Este algoritmo ir* retornar na tela do usu*rio os n5meros- ; < / > @ A L a d ;F
3ais porqu2
Primeiramente $oi declarado a ari*el i como inteiro' logo em seguida utilizamos uma estrutura de repetio'
o repita-ate' pedimos para escreer o alor de i e acrescentamos ao seu alor mais uma unidade' ou se!a' i I ,.
e at quando isso ser* repetido2
At que o alor de i se!a maior que ;FQ
Ento quando o alor de i c"egou a ,,' ele perguntou se i era maior que ,+' como a resposta $oi erdadeira' ele
encerrou a repetio e $oi para o pr#&imo comandoQ
)omo no temos mais nada' encerramos nosso algoritmo.
Agora' o algoritmo da mdia dos alunosQ
1# que dessa ez' n#s teremos >F alunos em nossa classe8
Mamos digitar um por um2
Io8 Agora que !* sabemos utilizar uma estrutura de repetio' amos poupar trabal"o e resumir nosso algoritmo8
1
2
3
4
5
6
7
8
9
Algoritmo "MediaHarmonica"

var
a, b, c, MH, i: real
'(ME: caractere

inicio

i <- "
/epita
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
escreva("Entre com o nome do aluno: ")
leia(nome)
escreval ("Entre com as notas das trs provas")
escreva("Digite a primeira nota: ")
leia(a)
escreva("Digite a segunda nota: ")
leia(b)
escreva("Digite a terceira nota: ")
leia(c)
MH <- !("!a # "!b #"!c)
escreval("A m$dia %arm&nica do aluno: ", '(ME, " $ ", MH)
i <- i # "
ate i - 10

2imAlgoritmo
Por enquanto isso galeraQ 1emana que em' aprenderemos
mais sobre estruturas de repetio' no percamQ
Enquanto isso' treinem mais um pouco sobre a estrutura de repetio repita-ate' isso ser* importante em toda a
ida de programador de ocsQ
Aproeitem tambm' e a!!ine no!!o feed para no perder
nen"uma aula de algoritmos' e nos siga no 9itter8
Abraos.
Aprenda a Programar O;F X Algoritmos
P Estruturas de repetio <
- Bruno Barbosa
Posted !" Bruno Barbosa on Kun #&, %&#& in Algoritmos, Desenvolvimento ' 4! comments
aprenda a programar Desenvolvimento enquanto estruturas de repetio faa
EnquantoQ .aaQ
4l* algoritmizeiros8
Primeiramente queria pedir desculpas pelo atraso no post dessa semana' mas a correria trabal"o0trabal"o0
$aculdade0casa grande' e as ezes o tempo poucoQ
Gando prosseguimento ao post anterior' sobre estruturas de repetio' "o!e amos aprender sobre o
comando enquanto H faca.
Gi$erentemente do repita-ate/ onde todos os comandos so interpretados' para s# ento "aer uma e&presso
l#gica eri$icando se dee ou no continuar a repetio' o enquanto-faca ir* aaliar uma e&presso l#gica e'
enquanto esta $or erdadeira' ir* e&ecutar os comandosQ
1inta&e do Enquanto .. $aca
1
2
3
en3uanto <e*press,o l.gica ou relacional- )aca
<comandos-
)imen3uanto
3el"or e&plicado com e&emplos _+
E&emplo ;
Ieste e&emplo' ou criar um algoritmo utilizando o repita0ate e depois o mesmo algoritmo' s# que dessa ez
utilizando a estrutura enquanto P $aca' e&plicando passo0a0passo a ocs' para que possam entender a di$erena
entre ambos.
- =aa um a'goritmo que !o'icite que o u!urio digite um n0mero/ e informe !e e!te n0mero B maior que ,+3
7 programa ! pode parar de !o'icitar o n0mero quando e!te for igua' a + ?*ero@
Utilizando a estrutura de repetio repita .. ate
1
2
3
4
5
6
7
8
algoritmo "e*emplo ""
!! 'os siga no 45itter6 7Algoritmi8ando

var
numero: inteiro

inicio

repita
9
10
11
12
13
14
15
16
17
18
19
20
escreva("Digite um n9mero: ")
leia(numero)
limpatela !! :impa a tela ;<
se (numero - "0) entao
escreval("( n9mero $ maior 3ue "0")
senao
escreval("( n9mero $ menor 3ue "0")
)imse
ate (numero ; 0)

)imalgoritmo
E agora o mesmo algoritmo' porm utilizando a estrutura de repetio enquanto .. $aca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
algoritmo "e*emplo ="
!! 'os siga no 45itter6 7Algoritmi8ando

var
numero: inteiro

inicio

numero <- "
en3uanto numero <- 0 )aca
escreva("Digite um n9mero: ")
leia(numero)
limpatela
se (numero - "0) entao
15
16
17
18
19
20
21
escreval("( n9mero ",numero," $ maior 3ue "0")
senao
escreval("( n9mero ",numero," $ menor 3ue "0")
)imse
)imen3uanto

)imalgoritmo
Iesse e&emplo' comeamos nosso algoritmo atribuindo o alor ; a ari*el n5mero' para que possamos comear a
utilizar nossa estrutura de repetio' con$orme podem er na lin"a dN
E na lin"a ;F' nossa condio para que o lao continue sendo e&ecutado' ou se!a' enquanto a ari*elnumero $or
di$erente de F %zero+' continuaremos e&ecutando o programa' e o usu*rio digitando n5meros para descobrir se
maior ou menor que zeroQ %como se $osse necess*rio um programa para isso rsrsrs+
claro' claro' apenas um e&emplo did*ticoQ
3as que tal er se realmente aprendeu2
Gei&o aqui ento um desa$io a ocsQ
1. )rie dois algoritmos' um utilizando a estrutura de repetio repita 33 ate e outro utilizando o enquanto 33
faca.
<. Uma lo!a est* endendo trs modelos de carro' o algoritmo dee ler o nome e o alor %?e+ dos seguinte
autom#eis- [4=' PA=I4' )4?1A
/. Ao $inal' in$ormar quantos carros de cada modelo $oram endidos e o alor total arrecadado em reais.
>. 4 programa s# pode encerrar quando o alor do e(culo $or igual a zero.
Jood LucK
Aprenda a Programar O;; X Algoritmos
P Estruturas de repetio /
- Bruno Barbosa
Posted !" Bruno Barbosa on Kun %#, %&#& in Algoritmos, Desenvolvimento ' 4( comments
aprenda a programar Desenvolvimento enquanto .. faca estrutura de repetio for
4l* algoritmizeiros de planto' nada mel"or do que comear a semana com post noo sobre algoritmos.
Io comeo desse ms' comeamos a $alar sobre estruturas de repetio' as estruturas repita .. ate eenquanto ..
$aca.
So!e para $inalizar essa parte' iremos abordar a estrutura L(;( 33 =(4(3
Para .. .aa
A sinta&e geral da estrutura de repetio para .. $aca a seguinte-
1
2
3
para > de ' ate M ?passo @A )aca
<comandos-
)impara
E&plicandoQ
4 M a ari*el que dee ser preiamente declarada' o $ o n5mero que comear* a contagem' 6 at onde ai
essa contagem' e o pa!!o N s# ser* necess*rio se oc no quiser que se!a de ; em ;Q
1ei que no entenderam nada' ento ou mostrar um e&emplo de uma estrutura de repetio utilizandoenquanto ..
$aca e ap#s' um utilizando o para 33 faca' oc er* que ir* $icar bem mais simples8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
algoritmo "repeti+,o ""

var
num: inteiro

inicio

num <- "
en3uanto num <; "0 )aca
escreva(num)
num <- num # "
)imen3uanto

)imalgoritmo
Iesse algoritmo' $oi utilizado a estrutura de repetio enquanto .. $aca' como ocs podem notar' $oi declarado a
ari*el num para serir como condio para e&ecuo do lao' e ao mesmo tempo' imprimimos o alor da mesma
na tela atras do comando escrea.
Essa estrutura ai imprimir o seguinte resultado na tela do usu*rio- ; < / > @ A L a d ;F
Agora' a mesma estrutura' agora utilizando o para 33 faca.
1
algoritmo "repeti+,o ="
2
3
4
5
6
7
8
9
10
11
12

var
num: inteiro

inicio

para num de " ate "0 )aca
escreva(num)
)impara

)imalgoritmo
Esse algoritmo' tem a mesma $uno do algoritmo acima' porm dessa ez utilizando a estrutura para 33 faca.
Mamos entender o algoritmoQ
Geclarao de ari*eis' n#s !* aprendemos no quarto post da srie' ento amos direto ao lao de repetio-
para num de , ate ,+ faca
Ieste comando' estamos dizendo ao interpretador Misual[ que a ari*el num receber* o alor , e a cada iterao'
ou se!a' toda ez que os comandos dentro do para 33 faca $orem e&ecutados' a ari*elnum receber* T; em seu
alor por padro' e assim sucessiamente' at que o alor de num se!a ,+.
e!cre&a%num+ `` !* abordado anteriormente.
e o fimpara' que sere para indicar o $im do lao.
4 )omando PA114 I-
; P Imprimir na tela todos os n5meros pares de < at <FF
1
2
3
4
5
6
7
8
algoritmo "numeros pares"

var
num: inteiro

inicio

para num de = ate =00 passo = )aca
9
10
11
12
escreva(num)
)impara

)imalgoritmo
Passo <Q
Mocs deem estar se perguntando de onde surgiu esse pa!!o C agoraQ
=embram que na sinta&e do para 33 faca e&pliquei que ele no obrigat#rio' mas poderia surgir2
ento8 por padro no portugol' ele sempre acrescentar* T; a ari*el que agente est* utilizando no lao' mas nesse
e&emplo' eu preciso pegar apenas os n5meros pares' ou se!a' de < em <.
Bingo8
Est* e&plicado ento' o porqu do pa!!o C' assim em cada iterao' ele acrescentar* T< na ari*elnum' esta que
sempre ser* um alor par' que o que queremos nesse e&emplo.
Ios e&emplos at agora' oc escreeu do ; at um n5mero
maior' como o ;FF por e&emploQ Keria como $azer o
inerso2 do ;FF at o ;2
1im8
Para isso' mais uma ez utilizaremos o pa!!o $.
1
2
3
para num de "00 ate " passo -" )aca
escreva(num)
)impara
1im' tambm podemos utilizar pa!!o -$' ou se!a' um passo negatio.
Lorque-
Porque se o padro do para 33 faca acrescentar mais ; na ari*el' o ob!etio do pa!!o $ !ustamente te dar o
poder de escol"er qual o alor que oc quer acrescentar ou reduzir no lao.
E agente $ica por aquiQ A partir do pr#&imo post' iniciaremos nossos estudos
em etores e matrizes' ento necess*rio que oc !* este!a bastante
$amiliarizado com tudo o que !* $oi dito at aqui.
para & de ; ate < $aca
Q.se & _ ; entao
QQ..Ios siga no 9itter8
Q.senao
QQ.. Assine nosso =eed8
Q.$imse
$impara
Abraos.
Aprenda a Programar O;< X Algoritmos
P Metores
-Bruno Barbosa
Posted !" Bruno Barbosa on Kul D, %&#& in Algoritmos, Desenvolvimento ' 64 comments
aprenda a programar array Desenvolvimento portugol variaveis
4l* Algoritmizeiros' estamos c"egando nos 5ltimos posts da srie' Aprenda a Programar' e "o!e' iremos $alar de
etores.
At ento' aprendemos o que uma ari*el e como declarar ari*eis em portugol' e $izemos isso in5meras ezes
em nossos algoritmos.
4 nosso problema comea' quando temos que declarar in5meras ari*eis para atender a um $im.
Imagine que oc tem que receber o nome e a nota de @F alunos de uma escola' e depois listar o nome de cada um
e a mdia $inal de cada aluno e a mdia da turma.
Agora imagine oc na declarao de ari*eis' declarando uma a uma' as @F ari*eis para o nome' depois as @F
ari*eis para as notasQ
1
2
3
var
aluno", aluno=, aluno, BBBBBBBBB, alunoC0: caractere
nota", nota=, nota, BBBBBBBBBBBB, notaC0: real
)ansatio no2 Ac"o que se $osse realmente assim' no "aeria tantos programadores quanto "* "o!e em diaQ
7 em casos como esse que entra o assunto desse post. Eetore!.
Mamos imaginar um etor como sendo uma Vcai&aW com *rios lugares separados para guardar seus documentos'
ou se!a' uma ari*el onde se pode armazenar mais de um dado.
Metor de a posi6es
Io e&emplo abai&o' temos um etor com dados armazenados nas @ primeiras posi6es.
Para poder acessar o conte5do desse etor' amos utilizar a sinta&e- nome+posi,-o..
8#- meuetor9<:
0 4 retorno ser* a letra B.
Interessante' mas como eu posso usar etores nos
algoritmos2
Para usar os etores' primeiro temos que declar*0lo na seo de ari*eis. 1im' etor tambm uma ari*el8
A sinta&e para declarao do etor a seguinte-
1
2
var
nome-do-vetor: vetor?<posi+Des-A de <tipo-
E&emplo-
1
2
var
MeuEetor: vetor?"BBCA de caractere
Primeiro em o nome do etor' ento onde antes coloc*amos apenas o tipo' que era caractere' real' inteiro' etc.'
agora amos especi$icar que um etor' colocar quantas posi6es ele ter*' e $inalmente o tipo.
E no se con$undam' no campo das posi6es' so apena! C ?doi!@ ponto! mesmo. 1e colocar mais que isso seu
etor no ir* $uncionar. E as lendas urbanas dizem que se seu etor estier errado seu isualg traa. Io $iz todos
os testes para con$irmar isso.
Agora' um e&emplo simples para $acilitar a ida de ocs-
1
2
3
4
5
6
7
8
9
10
11
algoritmo "vetores bF algoritmi8ando"

var
*: vetor?"BB=A de inteiro

inicio

escreval("Digite um n9mero: ")
leia(*?"A)
escreval("Digite mais um n9mero ;D ")
leia(*?=A)
12
13
14
escreval("Geus n9meros digitados )oram: ",*?"A," e ",*?=A)

)imalgoritmo
E que tal' utilizar etores !unto com tudo o que aprendemos at aqui2
Atendendo ao pedido da leitora .ernanda no 5ltimo post' dei in(cio a um algoritmo que recebe ;F n5meros' indica
quais so os n5meros (mpares maiores que ; e menor que L<A' qual a maior di$erena entre dois n5meros
consecutios in$ormados pelo usu*rio e quais so m5ltiplos de /.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
algoritmo "Aprenda a <rogramar "="

var

numeros, impar, multiplo: vetor?0BB"0A de inteiro
maiordi): vetor?"BBA de inteiro
*, F: inteiro

inicio

escreval(";;;;;;;;;;;; A</E'DA A </(H/AMA/ I"= J@ A:H(/K4MKLA'D( ;;;;;;;;;;;;")

!! EariMvel para calcular maior di)eren+a entre dois n9meros consecutivosB Ger,o usados
mais tarde
maiordi)?A <- 0

para * de " ate "0 )aca

!! Knstru+,o para digitar o numero e guardM-lo numa variMvel

escreval("Digite o ",*,"N n9mero: ")
leia(numeros?*A)
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

!! Eeri)ica+,o se o n9mero $ Ompar maior 3ue = e menor 3ue P=Q

se ((numeros?*A mod =) <- 0) entao
se numeros?*A - " entao
se numeros?*A < P=Q entao
impar?*A <- numeros?*A
)imse
)imse
)imse

!! Eeri)ica+,o se o n9mero $ m9ltiplo de

se ((numeros?*A mod ) ; 0) entao
multiplo?*A <- numeros?*A
)imse

!! Maior di)eren+a entre dois n9meros consecutivosB

F <- * - "
se ((numeros?*A - numeros?FA) - maiordi)?A) entao
maiordi)?A <- numeros?*A - numeros?FA
maiordi)?"A <- numeros?*A
maiordi)?=A <- numeros?FA
)imse

limpatela
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
escreval(";;;;;;;;;;;; A</E'DA A </(H/AMA/ I"= J@ A:H(/K4MKLA'D( ;;;;;;;;;;;;")
)impara

limpatela
escreval(";;;;;;;;;;;; A</E'DA A </(H/AMA/ I"= J@ A:H(/K4MKLA'D( ;;;;;;;;;;;;")
escreval("")
escreval(";;;; 'RME/(G SM<A/EG MAK(/ TUE = E ME'(/ TUE P=Q ;;;;")
para * de " ate "0 )aca
escreval(*,"N '9mero Ompar: ",impar?*A)
)impara
escreval("")
escreval(";;;; 'RME/(G MR:4K<:(G DE ;;;;")
para * de " ate "0 )aca
escreval(*,"N '9mero m9ltiplo de : ",multiplo?*A)
)impara
escreval("")
escreval(";;;; MAK(/ DK2E/E'VA E'4/E 'RME/(G W('GEWU4KE(G ;;;;")
escreval("A maior di)eren+a estM entre os n9meros: ",maiordi)?=A," e",maiordi)?"A)
escreval("Di)eren+a de: ",maiordi)?A)

)imalgoritmo
Agora com ocsQ aproeitem o e&emplo acima e $aam seus testes' crie noas $un6es e nos diga sobre suas
e&perincias com etores nos coment*rios.
Aprenda a Programar O;/ P 3atriz
- Bruno Barbosa
Posted !" Bruno Barbosa on out D, %&#& in Algoritmos, Desenvolvimento ' 2 comments
aprenda a programar matri variaveis
4l* algoritmizeirosQ
Gepois de algum tempo sem post da srie Aprenda a Programar P Algoritmos' oltamos "o!e com o dcimo terceiro
artigo e 5ltimo da srie.
.inalizando nosso estudo de algoritmos' iremos aprender "o!e sobre ari*eis compostas "omogenias' ou
se!aQ 6atri*3
Antes de dar continuidade na leitura' recomendo que !* este!am $amiliarizados com o assunto do post
anterior' Metores.
A$inal' o que uma matriz2
Uma matriz' nada mais' do que Metores bi0dimensionais. 4nde podemos acessar os dados ali contidos atras de
dois alores. As Vlin"asW e as VcolunasW. Mocs entendero logo8
1inta&eQ
1
nome: vetor?<lin%as-,<colunas-A de <tipo-
E&emplo-
1
min%avar: vetor?"BB,"BBA de caractere
4nde o primeiro alor re$ere0se as lin"as e o segundo as colunas. 4 e&emplo acima' re$ere0se a criao de uma
matriz com / lin"as e / colunas' con$orme imagem abai&o-
)omo eu posso atribuir ou isualizar dados de min"a
matriz2
Para atribuir dados a uma determinada posio em uma 3atriz' manteremos o mesmo padro paraari*eis
comuns ou etores.
O Lara atri2uir um determinado &a'or:
1
mel%orblog?",=A <- "Algoritmi8ando"
Atribui a palara ('goritmi*ando na posio %;'<+ da matriz me'hor2'og.
O Lara 'er determinado &a'or:
1
2
3
BBB
escreva("( mel%or blog $: ",mel%orblog?",=A)
BBB
= o alor que se encontra na posio %;'<+ da matriz me'hor2'og.
E agora' um VpequenoW algoritmo' utilizando praticamente tudo o que imos durante todos esses posts de algoritmos'
inclusie o assunto desse post de "o!e' 3atriz-
.i!tema de cada!tro de a'uno!:
.azer um programa de cadastro de alunosN
4 programa deer* receber o nome' blog $aorito e email de cada um dos alunosN
Ap#s o cadastro' $ornecer as seguintes op6es-
;. )onsultar alunos cadastrados
<. )onsultar blogs $aoritos por aluno
/. =ista de emails cadastrados
>. =ista completa' com todos os dados dos alunos cadastrados
@. .inalizar o programa
72!er&ao: 4 Programa s# poder* ser $inalizado quando escol"ida a opo nf @
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
algoritmo "Aprenda a <rogramar I" - Matri8"
!! Autor : Algoritmi8ando
!! Ge+,o de Declara+Des
var
alunos: vetor?"BB=,"BBA de caractere
*, opcao, programa: inteiro

inicio
!! Ge+,o de Womandos
para * de " ate = )aca
escreval(";;;;;;;;;;;;;;;;;;;;;;;;;;;;")
escreval(";;;; WADAG4/( DE A:U'(G ;;;;")
escreval(";;;;;;;;;;;;;;;;;;;;;;;;;;;;")
escreval("")
escreva("Digite um 'ome: ")
leia(alunos?*,"A)
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
escreva("")
escreva("Digite o blog )avorito: ")
leia(alunos?*,=A) !! %ttp:!!algoritmi8andoBcom
escreva("Kn)orme o email: ")
leia(alunos?*,A)
limpatela
)impara
limpatela

!! Geta a variMvel XprogramaX ; " para manter o mesmo em e*ecu+,o
!! 'osso programa s. irM terminar 3uando esta variMvel )or igual a 8ero

programa <- "

en3uanto programa ; " )aca
escreval("")
escreval(";;;;;;;;;;;;;;;;;;;;;;;;;;;;")
escreval(";;;; WADAG4/( DE A:U'(G ;;;;")
escreval(";;;;;;;;;;;;;;;;;;;;;;;;;;;;")
escreval("")
escreval("Digite a op+,o deseYada: ")
escreval("" - Wonsulta Alunos Wadastrados")
escreval("= - Wonsulta Jlogs 2avoritos por aluno")
escreval(" - :ista de emails cadastrados")
escreval("1 - :ista completa de alunos cadastrados")
escreval("C - Gair do <rograma")
escreval("")
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
!! Escol%endo a op+,o deseYadaBBB
leia(opcao)
limpatela
escol%a(opcao)
caso "
escreval("---- Alunos Wadastrados: ")
para * de " ate = )aca
escreval("---- ",alunos?*,"A)
)impara
caso =
escreval("---- Jlogs )avoritos por aluno: ")
para * de " ate = )aca
escreval("---- ",alunos?*,"A," ",alunos?*,=A)
)impara
caso
escreval("---- :ista de emails cadastrados: ")
para * de " ate = )aca
escreval("---- ",alunos?*,A)
)impara
caso 1
escreval("---- :ista completa de alunos cadastrados: ")
para * de " ate = )aca
escreval("---- ",alunos?*,"A," ", alunos?*,=A," ",
alunos?*,A)
)impara
caso C
escreval(";;;; (J/KHAD( <(/ AWEGGA/ ( J:(H6 ;;;;")
programa <- 0
68
69
70
71
72
73
74
75
76
outrocaso
escreval("(p+,o KnvMlidaBBB")
)imescol%a
)imen3uanto

)imalgoritmo
Io entendeu2 e!a abai&o onde $oi e&plicado cada trec"o de
nosso programaQ
Ias lin"as > a A' temos nossa declarao de ari*eis' e&plicada no Aprenda a Programar / P
Mari*eis e Aprenda a Programar > P Estrutura do PortugolN
Ias lin"as ;F a </ temos a estrutura de repetio para .. $aa e a utilizao em massa dos
comandos- e!cre&a e 'eia N
Ia lin"a /; demos in(cio ao uso da estrutura de repetio enquanto .. $aaN
Ias lin"as >L a L/ $oi utilizada a $uno e!co'ha 33 ca!o' e&plicada no Aprenda a Programar a.
E por $im' nossa matriz a'uno!' assunto desse post e do anterior sobre etores. Esta que $oi a base de todo
o nosso programa.
)aso pre$ira' oc pode $azer o doDnload de nosso algoritmo e testar no Misual[-
>F E&erc(cios de Algoritmos resolidos
para estudo
- Bruno Barbosa
Posted !" Bruno Barbosa on Kan %H, %&## in Algoritmos, Desenvolvimento ' 0( comments
algoritmos estrutura condicional estruturas de repetio estudo exercicios
4l* pessoal'
4 Aprenda a Programar $oi um sucesso8 Entretanto acredito que talez ten"a $icado deendo mais alguns e&emplos
e e&erc(cios' pois $requentemente recebo em meu e0mail' pedidos de a!uda de alguns usu*rios em Algoritmos.
Euando se trata de uma d5ida em um c#digo !* e&istente' $eito pela pr#pria pessoa' a!udo com grande prazer
assim que posso. Entretanto' muitas ezes as mesmas pedem que eu resola e&erc(cios que' $oram passados para
a mesma $azer' com o argumento de que gostaria que eu resolesse para que esta aprenda e possa $azer o
restante.
Acontece que geralmente no apenas uma questo que me pedem' mas cinco ou mais e&erc(cios.
Pensando nisso' resoli disponibilizar ocs uma lista de >F e&erc(cios de Algoritmos elaborados por.laiano 4.
1ila' e as respostas dos e&erc(cios $eitas por mim' no $ormato .alg que podem ser abertos no Misual[' para que
sira como $onte de estudos e re$erncia para que ocs possam resoler outros e&erc(cios do tipo.
E para oc que acompan"ou toda srie Aprenda a Programar' est* lanado o desa$io8 Moc consegue resoler as
>F quest6es sem dar nen"uma Vespiadin"aW nas respostas2
4s e&erc(cios $oram elaborados para a .aculdade .AUE1U' entretanto entrei em contato com o autor do
mesmo' Pro$. .laiano e este autorizou a publicao da lista na Internet.
A seguir' uma /revieL de algumas quest6es da lista-
%D1 Fa,a u) alorit)o que leia dois nC)eros e identifique se so iuais ou diferentes1 Aaso eles seKa) iuais
i)/ri)a u)a )ensae) di5endo que eles so iuais1 Aaso seKa) diferentes, infor)e qual nC)ero * o )aior, e
u)a )ensae) que so diferentes1
$#1 Escrever u) alorit)o que leia tr+s valores inteiros distintos e os escreva e) orde) crescente
$$1 Escrever u) alorit)o que leia tr+s valores inteiros e verifique se eles /ode) ser os lados de u) triMnulo1
Se fore), infor)ar qual o ti/o de triMnulo que eles for)a)@ equil4tero, isNscele ou escaleno1 Pro/riedade@ o
co)/ri)ento de cada lado de u) triMnulo * )enor do que a so)a dos co)/ri)entos dos outros dois lados1

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