Você está na página 1de 245

Lgica de Programao

Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Prefcio
Esta aposta tem por ob|etvo ensnar ao auno gca de
programao. Ea composta de vros exerccos resovdos e
comentados e apresenta de forma cara os passos necessros souo
dos probemas. Ea retrata a expernca do autor como nstrutor nos
cursos de gca e nguagens de programao. Todos os exerccos so
executves atravs do nterpretador de agortmos, Ha, desenvovdo
peo autor. As, este um ganho sgncatvo com reao ao ensno
tradcona, o qua usa apenas ps e pape na souo de agortmos. O
auno nserdo desde o nco no processo de desenvovmento de
programas, o qua reete de modo transparente a forma, prossona,
como atuamente so desenvovdos os sstemas de nformao. Ha, o
nterpretador, embora anda um software em desenvovmento, atende
aos requstos da programao estruturada e | cobre todos os tpcos
do curso bsco de gca de programao, a saber:
Tpos prmtvos de dados
Estruturas de controe
Instrues de sato
Vetores
Matrzes
Regstros
Con|untos
Tratamento de arquvos
Moduarzao de programas
Ha conta tambm com um rco con|unto de funes de bboteca
casscadas em:
Funes de nterface
Funes matemtcas
Funes para o tratamento de cadeas
Funes para o tratamento de arquvos
O mduo para o tratamento das estruturas de dados avanadas
est sendo desenvovdo e, em breve, o nterpretador atender ao curso
competo de gca de programao atendendo aos nves bsco e
avanado. As estruturas de dados avanadas abrangem os seguntes
tpcos:
Phas
Fas
Lstas
Arvores
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Grafos
Naturamente que, por tratar-se de um software em
desenvovmento, aguns bugs anda no foram competamente
corrgdos. Partcuarmente, em aguns casos especcos de agortmos,
aguns bugs com as nstrues de sato (nterrompa, contnue e retorne)
anda persstem.
O nterpretador deve ser utzado a nve educacona e o autor
espera que, a aposta |untamente com o nterpretador venha reamente
a contrbur para a sua formao educacona e prossona.
Bom proveto !
Feci quod potui, faciant meliora potentes
(Fz o que pude, faam mehor os que puderem)
Fernando Pam
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Erros
Esta aposta a condensao em um nco voume de exerccos que
foram resovdos peo autor, enquanto auno do curso de Tecnooga em
Processamento de Dados e tambm como nstrutor nos cursos de Lgca
de Programao. O texto e os agortmos aqu ustrados foram
transcrtos a partr de arquvos textos, sem formatao, que a forma
orgna do documento. Dessa forma, voc poder encontrar erros de
dgtao, que, no decorrer do tempo, em prxmas edes, sero
corrgdos. Dentro do texto que compe o corpo do agortmo,
precsamente nos comentros, as regras de acentuao, por exempo,
no foram apcadas, uma vez que, normamente no so utzadas na
escrta de programas. Os arquvos orgnas so dessa forma, pos, o
modo como devemos crar nossos programas para serem executados
peo nterpretador, sto , um agortmo um texto puro sem as
formataes que os processadores de textos nos permtem fazer.
Toda crtca e sugesto poder ser envada ao autor va e-ma em
"er!a!dopaim#e!etec$com$%r .
Nesta aposta, os exerccos foram consutados no vro texto adotado
na Unversdade, a saber:
Agortmos Estruturados
Harry Farrer, Chrstano Gonaves Becker, Eduardo Chaves Fara, Heton
Fbo de Matos, Marcos Augusto dos Santos, Mram Loureno Maa da
Edtora Guanabara, 2 edo.
A aposta anda no se encontra em sua forma na, devendo pos
receber mehoramentos, bem como, um acrscmo de exerccos. As,
essa exbdade, o que torna a aposta um bom vecuo de
comuncao. Toda a teora dos agortmos e formuao de concetos
poder ser encontrada no vro texto acma referencado, o que as
recomendo ao etor.
Ao na da aposta, encontra-se uma sta para refernca bbogrca.
Por(ue !u!ca temos tempo o %asta!te para "a)er as coisas certas da
primeira ve)* mas sempre temos tempo su"icie!te para corrig+las
depois$
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos
Um agortmo a descro de um con|unto de aes que vsam a um
ob|etvo dendo. As aes descrtas em um agortmo no so aes
aeatras, mas antes, so aes gcas, sto , eas devem ser segudas
numa ordem prescrta. Por outro ado, tambm, a descrio dessas
aes uma descro forma, uma vez que, se no o fosse, poder-se-a
gerar ambgdades devdo ao carter mprecso das construes
ngstcas da nguagem natura, e ento, correramos o rsco de no
atngrmos o ob|etvo dendo. Dessa forma, para descrevermos um
agortmo utzamos de um repertro bem dendo de paavras,
extradas da nguagem natura, e atrbumos determnada semntca s
mesmas. O tmo ponto a ser consderado na concetuao de
agortmo o fato de que o ob|etvo a que se prope atngr possa ser
acanado.
Assm, a descro do con|unto de aes de um agortmo tem um
carter mperatvo, peo qua a ocorrnca do nome de uma ao no
mesmo, tambm chamada de um comando ou uma nstruo. Um
agortmo , em outras paavras, uma norma executve para
estabeecer um certo efeto dese|ado, que na prtca ser geramente a
obteno de uma souo a um certo tpo de probema. Em nossa vda
cotdana encontramos constantemente agortmos:
Instrues para uso de determnado medcamento
Instrues de montagem
Recetas de coznha
Etc.
Ve|amos o exempo de uma receta de coznha.
BOLO DE LARANJA
Ingredentes:
5 ovos
2 xcaras de ch de acar
2 xcaras de ch de farnha de trgo
1 coher de sopa de fermento em p
1 xcara de ch de suco de aran|a
1 ata de ete condensado
1 vdro pequeno de ete de coco
1 pacote de 50 gr. De coco raado
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Modo de preparar:
Bata as caras em neve
Bata as gemas e o acar at formar um creme
|unte a farnha , o fermento, o suco e as caras anda quente
Cooque o ete condensado
Espahe o ete de coco
Cooque o coco raado
Tempo para assar 15 mnutos
Srva geado
Na descro acma observamos de forma cara a dvso do algoritmo
em duas partes dstntas, a saber:
Ingredentes
Modo de preparar
Os ngredentes representam os ob|etos que devero ser manpuados
peos processos descrtos na seo modo de preparar. Observamos
anda que, dentro do unverso das pessoas envovdas com a receta do
boo, expresses tas como: xcara de ch, coher de sopa, ata de ete,
vdro pequeno e pacote de 50 gr denem unidades de medida bem
conhecdas e dendas. Por outro ado, expresses do tpo: ovos, acar,
farnha de trgo, fermento em p, suco de aran|a, ete condensado,
ete de coco e coco raado denem o!etos ou entidades das quas se
dese|a quantdades daqueas undades de meddas. Notamos tambm
que, a especcao dos ngredentes segue um determnado padro, a
saber: reazada uma especcao da undade de medda seguda do
nome do ngredente requerdo, por exempo:
" col#er de sopa de fermento em p
undade de medda ob|eto componente
Nada mpede que fosse de outro modo, como por exempo, especcar
prmero os ob|etos componentes e em seguda as quantdades:
Ingredentes:
Ovos: 5
Acar: 2 xcaras de ch
Farnha de trgo: 2 xcaras de ch
Fermento em p: 1 coher de sopa
Suco de aran|a: 1 xcara de ch
Lete condensado: 1 ata
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Lete de cco: 1 vdro pequeno
Cco raado: 1 pacote de 50 gr.
O fato de especcarmos ou decararmos os ngredentes, na receta de
boo acma, de uma forma ou outra, no r aterar os ngredentes
necessros confecco do mesmo, conquanto que no ateremos os
prpros ngredentes.
A Segunda parte, o modo de preparar, trata excusvamente de como
proceder e o que fazer para se confecconar o boo. Ea tem uma
caracterstca que a dstngue dos ngredentes, trata-se de seu aspecto
dnmco. Os ngredentes esto por assm dzer, esttcos,
armazenados e dsponves, aguardando serem requstados e
manpuados peas aes descrtas no modo de preparar. Uma
caracterstca mportante no modo de preparar o fato de que, no h
como manpuar um ngredente que no este|a reaconado na sta de
ngredentes.
Podemos dzer que, nossa receta de boo de aran|a e, tavez de forma
genrca, as recetas em gera consstem de um con|unto de
ngredentes manpuados por um con|unto de processos. De forma
esquemtca podemos representar esse fato peo segunte dagrama
sucnto:
Undades de meddas
Con|unto de ngredentes
nomes de ob|etos
Receta
Aes sobre o con|unto de
Con|unto de processos
ngredentes
Para agum famarzado com o feto de boos, a descro acma
parece sucente para que se concretze o dese|ado, ou se|a, o boo de
aran|a mas, para agum que no se|a da rea, tavez fosse necessro
uma descro mas detahada.
Vamos observar um pouco mas de perto agumas caracterstcas que
esto descrtas no modo de preparar:
Bata as caras em neve
Bata as gemas e o acar at formar um creme
|unte a farnha , o fermento, o suco e as
Modo de Preparar caras anda quente
Cooque o ete condensado
Espahe o ete de coco
Cooque o coco raado
A prmera ao ou nstruo, descrta no modo de preparar Bata as
claras em neve$ Observamos que, a ao de bater as caras envove
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
um processo repetiti%o, sto , para quem conhece o
procedmento, para se obter as caras em neve deve-se car batendo-
as, de aguma forma, utzando as ferramentas prpras da coznha. Por
outro ado, a ao de bater as caras, sto , a repeto do processo
acma no & al'o a ser reali(ado inde)nidamente, h um ponto de
parada que, uma vez atngdo, deve-se nterromper a ao. Dto de
outra forma, o processo repettvo acma dever ser executado at& que
uma determnada condio se!a satisfeita. Deve-se bater as caras
at que eas se tornem neve. De forma esquemtca podemos
representar o procedmento acma do segunte modo:
Repita * ata as claras + at& que , elas este!am em ne%e -
Essa forma de representao passa a ser nteressante pos, entre as
c#a%es * + ns descrevemos as aes que devem ser executadas
repetdamente e entre os par.nteses , - ns estabeecemos a
condio de interrupo desse processo repettvo.
A segunda ao ou nstruo Bata as gemas e o acar at formar um
creme. Como vsto anterormente, trata-se tambm de um processo
repettvo que deve ser executado at que uma determnada condo
se|a satsfeta. A dferena desse processo com o anteror que, agora
temos dos ngredentes partcpando da ao, a saber, as gemas e o
acar e, no processo anteror tnhamos apenas as caras. Da mesma
forma, utzando a nossa representao esquemtca, temos:
Repita * ata as 'emas e o a/car + at& que , eles formem
um creme -
A terceira ao ou instruo & Junte a farinha , o fermento, o suco e
as claras ainda quente. Notamos aqu um outro tipo de
procedimento, onde apenas se !untam os ngredentes sem
nenhuma refernca a agum processo repettvo, peo menos a prmera
vsta. O que de novo acontece aqu que, para se proceder a mstura,
um dos ngredentes deve atender a uma dada condio, a saer,
!unte as claras ainda quente. E se as claras no mais esti%erem
quentes, o que de%e ser feito 0$ As aes descrtas no modo de
preparar no faam nada a respeto e nem nformam se esse ponto um
fator crtco mas, contnuemos... Utzando nossa representao temos:
1e , as claras esto quentes -
* Junte a farin#a , o fermento, o suco e as claras +
Observamos que, nossa forma de representao, sto , a utzao das
c#a%es *+ para descrevermos as aes que devem ser executadas e
os parnteses () para estabeecemos uma condio est consstente e
parece ser promssor, pos, est nos a|udando a abstrar eementos
comuns que ocorrem nos processos, a saber, con|untos de aes e
deno de condes .
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
As nstrues seguntes, a saber, coloque o leite condensado, espalhe o
leite de coco, e coloque o coco ralado, apenas descrevem aes que
devem ser segudas sequencialmente na ordem apresentada e sem
maores detahes. Uma vez que so aes sequenciais, podemos
represent23las uma aai4o da outra da segunte forma:
cooque o ete condensado;
espahe o ete de coco;
cooque o coco raado;
O ponto e %5r'ula acma, coocado ao na do frase que ndca a ao,
tem apenas o ob|etvo de delimitar o m da mesma e ao mesmo
tempo nformar que trata3se de uma ao smpes e dreta.
|untando as formas esquemtcas de representao que utzamos
acma temos:
Repita * ata as claras + at& que , elas este!am em ne%e -
Repita * ata as 'emas e o a/car + at& que , eles formem
um creme -
1e , as claras esto quentes -
* Junte a farin#a , o fermento, o suco e as claras +
coloque o leite condensado6
espal#e o leite de coco6
coloque o coco ralado6
A escoha de paavras para especcarmos os procedmentos acma
vre e agum podera ter escohdo, por exempo, no ugar da
expresso repita at& que a paavra enquanto, pos as duas
expresses envovem a da ou o sgncado de agum evento
transcorrendo no tempo. Dessa forma, as descres acma passaram a
ser:
Enquanto , as claras no esti%erem em ne%e -
* ata as claras +
Enquanto , as 'emas e o a/car no formarem um creme -
* ata as 'emas e o a/car +
Notamos que, o fato de usarmos a paavra repita at& que ou a paavra
enquanto, o efeto goba da execuo do procedmento no aterado,
a saber, obter as caras em neve. Notamos tambm que as aes
descrtas entre as chaves tambm no sofrem aterao no seu texto
mas, a especcao da condo entre os parnteses sofre aterao
em seu texto, embora a semntca contnue sendo a mesma. E assm
deve ser, se dese|armos obter o mesmo resutado. Abstrando das aes
entre as chaves e coocando as duas formas de expresso temos:
Repita at& que , as claras este!am em ne%e -
Enquanto , as claras no esti%erem em ne%e -
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Isto acontece porque, a expresso repita at& que est reaconada
com a da de uma situao que se dar2 no futuro, sto , as caras
atuamente no esto em neve e atngro esse estado no futuro.
Contraramente, a expresso enquanto, est reaconada com a
permannca de uma situao que e4iste no presente, sto , as
caras atuamente no esto em neve. Isto sgnca que, a expresso
enquanto estabeece que, a execuo do processo repettvo ser
mantda enquanto a stuao presente for vercada e, a expresso
repita at& que estabeece que, a execuo do processo repettvo ser
mantda at a stuao futura ser vercada. Dto de outra forma, as
condes que aparecem entre os parnteses das expresses repita
at& que e enquanto so compementares no sentdo de que, cada
uma deas referenca a parte que fo excuda pea outra. A e4presso
repita at& que diri'e o seu raciocinar com o que %ai acontecer
no futuro e a e4presso enquanto fa( %oc. raciocinar com o que
est2 acontecendo a'ora$
O fato de que, ncamente as caras no este|am em neve, na
verdade a condio necess2ria para que a ao * ata as claras +
se|a executada repetdamente, pos do contrro, se as caras |
estvessem em neve, esse procedmento no sera necessro, sto
sgnca que, h uma condo nca que deve ser vercada antes da
execuo do processo repettvo e que, essa condo nca a prpra
condo de nterrupo do processo repettvo. Essa condo nca a
ser vercada refere-se ao estado das caras, sto , observamos que,
tanto a expresso repita at& que como na expresso enquanto a
entdade em foco a mesma, a saber, o estado das caras. O que dfere
uma da outra que, assumndo que se|a verdade que, as caras
ncamente este|am em seu estado norma, quando utzamos a
expresso enquanto, queremos garantr a execuo do processo
repettvo enquanto essa verdade for vercada sto , enquanto as
caras mantverem seu estado norma. Por outro ado, quando utzamos
a expresso repita at& que, queremos garantr a execuo do processo
repettvo at esse fato no ser mas vercado, sto , dexar de ser
verdade. O processo se passa como se a expresso enquanto
perguntasse 7ainda & clara 08 e, a expresso repita at& que
perguntasse 7!2 %irou ne%e 08. Se a resposta pergunta "anda
cara ?" for sm, ento, com certeza, a resposta pergunta "| vrou
neve ?" ser no. Dto de outra forma, se for verdade que "anda
cara", ento ser faso que "| vrou neve". Por sso dzemos que as
expresses repita at& que e enquanto so compementares e cada
uma compreende a parte do unverso que fo excuda pea outra.
Na nstruo,
Se ( as caras esto quentes )
{ |unte a farnha , o fermento, o suco e as caras }
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
vemos que o con|unto de aes entre as chaves, compe-se de quatro
aes smpes e sequencas e que devem ser reazadas se a condo
entre os parnteses for verdadera, sto , trata-se de uma nstruo
condcona. Uma vez que, so aes sequencas e, por questo de
smpcdade, vamos represent-as uma aps a outra e uma em cada
nha. Por outro ado, como so aes smpes vamos naz-as com o
ponto e vrgua.
Observamos aqu um con|unto de aes que esto todas subordnadas a
uma mesma condo. Denomnamos esse con|unto de aes que
devem ser executadas sob uma mesma condo de loco$ Para
demtarmos de forma cara as aes que compe um boco coocamos
o fecha-chaves anhado com o abre-chaves correspondente. E, para
evdencarmos que trata-se de um con|unto de aes a ser executado
sob uma mesma condo fazemos um desocamento do texto
correspondente s aes com reao a condo. Desse modo,
podemos representar a nstruo acma do segunte modo:
Se ( as caras esto quentes )
{ |unte a farnha ;
|unte o fermento ;
|unte o suco ;
|unte as caras ;
}
Observamos que, o que fo anasado acma pode-se apcar a uma
grande varedade de stuaes e, no somente s recetas de boos.
Resumndo, nossa anse reveou agumas casses ou estruturas padro
que ocorrem com as aes descrtas em processos, so eas:
Repettva
Condcona
Sequenca
Observando o dsposto at aqu, coocando as condes entre
parnteses, as aes smpes nazadas com ponto e vrgua, os bocos
demtados por chaves, as aes descrtas nos bocos em dentao
(desocamento do texto) com a condo correspondente e utzando a
notao sugerda, nossa receta de boo de aran|a pode ser
representada atravs do segunte texto:
Boo de Laran|a
{
// ngredentes
Ovos: 5
Acar: 2 xcaras de ch
Farnha de trgo: 2 xcaras de ch
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Fermento em p: 1 coher de sopa
Suco de aran|a: 1 xcara de ch
Lete condensado: 1 ata
Lete de cco: 1 vdro pequeno
Cco raado: 1 pacote de 50 gr.
// modo de preparar
Enquanto ( as caras no estverem em neve )
{
bata as caras;
}
Enquanto ( as gemas e o acar no formarem um creme )
{
bata as gemas e o acar;
}
Se ( as caras esto quentes )
{
|unte a farnha;
|unte o fermento;
|unte o suco;
|unte as caras;
}
cooque o ete condensado;
espahe o ete de coco;
cooque o coco raado;
}
A receta est quase no ponto para ser submetda ao nterpretador Ha.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos e Computadores
No campo da cnca da computao, o conceto de agortmo
fundamenta, posto que, programar construr agortmos, sto ,
descrever um con|unto de aes que vsam a um ob|etvo dendo. Na
cnca da computao, o ob|eto em foco a nformao e, desse modo,
os agortmos devero manpuar nformaes. As nformaes so
armazenadas na memra do computador na forma de bts e bytes e,
esto aguardando serem manpuadas. Os ob|etos de que tratam as
nformaes so normamente nomes de pessoas, preos de produtos,
nmero de hos, tpo de sexo, etc. Estas nformaes so
representadas atravs de um con|unto de caracteres afabtcos,
numrcos e outros smboos. Essa varedade de nformao d orgem a
uma varedade correspondente de undades de medda que so
utzadas em programao. Assm para vaores numrcos denmos as
meddas inteiro e real, para nomes e correatos denmos a medda
cadeia e para um nco smboo denmos a medda caracter. Estas
meddas, dentro de nosso repertro dendo para a expresso dos
nossos agortmos so denomnadas tpos. Desse modo, podemos denr
um ob|eto, por exempo nome-de-pessoa e dzermos que do tpo
cadea, preco-do-produto do tpo rea, numero-de-hos do tpo ntero,
sexo do tpo caracter, etc. Esses ob|etos dendos com um determnado
tpo recebem o nome de varves. Assm, nome-de-pessoa, preco-do-
produto, numer-de-hos e sexo so varves. Ao con|unto de varves
utzadas para representar as nformaes em um agortmo d-se o
nome de estrutura de dados.
Dentro da cnca da computao, um agortmo a formuao de
estruturas de dados e de processos que manpuam essas estruturas
com o ob|etvo de souconar um determnado probema. Um agortmo
um texto que descreve passo a passo como um probema
souconve. Essa descro deve ser bem denda, sem ambgudades
e executves no computador.
Programar a arte ou tcnca de construr agortmos de forma
sstemtca. Programas so formuaes concretas de agortmos
abstratos, baseados em representaes e estruturas especcas de
dados.
Nkaus WIRTH
(crador da nguagem PASCAL)
Na resouo de um probema ns nos abstramos em estruturas de
dados e processos utzando do racocno gco agortmco. A
utzao de uma nguagem de programao para quem se nca nessa
arte uma condo mtante por dos motvos:
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Normamente uma nguagem de programao prossona utza o
ngs, o que, para quem no conhece, | motvo de dcudades e,
normamente se deve obedecer a um con|unto de regras rgdas de
sntaxe forando dessa forma o ncante a se preocupar com
aspectos pouco sgncatvos para o desenvovmento do racocno
gco agortmco, que deve estar ocupado com os fatores
reaconados ao probema a ser resovdo e no em como
mpement-o.
Uma souo ntermedra a utzao do PORTUGOL, um subcon|unto
da Lngua Portuguesa, mas com o nconvenente crtco de no permtr
a execuo dos agortmos, o que mpca em dmnuo consderve
do aprendzado, uma vez que, a resouo reazada apenas na foha
de pape, tendo pos os aunos de acredtarem que a souo se dar.
Acredtamos que o nterpretador Ha cumpre a tarefa de ncar o
estudante no estudo de gca de programao amenzando as
dcudades estruturas e nserndo o auno desde o nco no cco de
desenvovmento de programas, ta qua acontece na vda prtca. Essa
prxs tem-se mostrado fecunda, pos os aunos sentem-se motvados
quando podem observar seus agortmos funconando e por outro ado,
tambm, quando seus erros de racocno so evdencados peo
nterpretador. H anda um ganho extra, pos o nterpretador fo
desenvovdo tendo em vsta o paradgma das nguagens mas
poderosas e modernas, tas como a nguagem C++ e |ava.
O nterpretador Ha fo desenvovdo na nguagem C e est dsponve
para downoad em 4ttp566pessoais6e!etec$com$%r6paim.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Propsito
Hall um interpretador de algoritmos. Ele tem por objetivo tornar o
aprendizado de lgica de programao uma disciplina mais atraente. Hall possui
um conjunto de instrues pr programadas que permite aos seus usurios
executarem seus programas os quais !oram escritos em uma pseudo linguagem de
programao. "ara isso ele possui um conjunto de palavras e instrues similares
#s encontradas nas linguagens de programao tradicionais.
"articularmente sua sintaxe se assemel$a # sintaxe da linguagem % ou seja
o desenvolvimento dos algoritmos baseado na diviso do programa em mdulos
denominados !unes as quais so identi!icadas por par&nteses () colocados aps
o seu nome e suas instrues so agrupadas em blocos os quais so delimitados
por c$aves {} e cada comando do bloco !inalizado com um ponto e v'rgula ;.
(s linguagens mais modernas e poderosas tais como %)) *ava +elp$i
,isual -asic %)) -uilder etc utilizam essa sintaxe ou variantes dela.
-om Estudo .
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Denominao
A denomnao 9ALL uma homenagem ao computador da nave
Dscovery que cruza o espao para descobrr a orgem de um
nstrumento que seres superores, orundos de outro paneta, coocaram
na Terra para pocar os homens. O Dscovery, um prodgo da tcnca
super comandada por um computador, na verdade HAL (Heurstcay-
programmed ALgorthmc computer) obra prma da gerao de
computadores.
Disco%er: e 9AL na verdade, so personagens da Obra de Arthur
Cark, 2001/Odssa Espaca, onde o autor apresenta um quadro do
futuro da humandade, domnada peos nstrumentos da tcnca que ea
prpra crou mas, cu|o controe he escapa por entre os dedos, numa
angustante confuso entre readade e futuro, tempo e espao,
ntegnca e transcendnca.
Ha tambm uma homenagem a Herman Hoerth (1860-1929),
funconro do departamento de recenseamento dos EUA, crador do
carto perfurado e mas tarde, fundador da IBM. O censo amercano de
1880 demorou 7 anos para ser concudo e todo processamento fo
reazado manuamente.
Ha, do ngs, sgnca entrada, antesaa. A da bsca
preparar voc e dex-o a vontade naquo que precede a programao
prossona de computadores, coocando-o de frente aos vros
concetos que atuamente esto dsponves nas nguagens de
programao. Ha tambm sgnca edfco unverstro e assm
sendo, ee se apresenta como o prmero andar no edfco da
programao de computadores. 2001 o ano em que a nave Dscovery
parte para a sua |ornada.
Boa Vagem !
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Teoria
Pequena expanao sobre a arqutetura de Ha.
Um probema resovdo atravs de um agortmo, sto , o
espao do probema mapeado para o espao do agortmo fazendo-se
abstraes em estruturas de dados e processos que manpuam essas
estruturas de dados. As estruturas de dados so mapeadas em
%ari2%eis e os processos em funes.
Ha estruturado, ou se|a, ee permte a crao de rotinas
isoladas contendo %ari2%eis locais. Desse modo, os nossos
agortmos consstem em uma coeo de uma ou mas rotnas (funes)
com varves ocas. Uma funo composta de um nome, uma sta de
parmetros entre parnteses ,- e o boco de cdgo assocado. O boco
comea com um abre chaves * e, segudo de uma ou mas nstrues
nazadas com ponto e vrgua, e termna em um fecha chaves +. Uma
nstruo comea com uma paavra reservada, tas como: se, caso,
repita, enquanto, para ou ento uma expresso, tas como: 4 ;<
"=, ( ;< ( > ?, leia,@-, escre%a ,A-.
Todos os nossos programas comeam com uma chamada funo
prncpa denomnada al'oritmo,- e termnam com o tmo fecha
chaves + dessa funo. Ouasquer outras funes contdas no programa
precsam ser chamadas dreta ou ndretamente a partr da funo
prncpa. O fato de exstr uma funo prncpa para nformar ao
nterpretador 9all onde ee deve ncar a execuo do agortmo.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Chamada
H duas formas de se chamar o nterpretador Ha, as quas so
exbdas quando se dgta HALL na nha de comando do sstema
operacona. As duas formas so as seguntes:
1. Ha "arquvo.ha" e
2. Ha ?
A 1 forma Hall arquivo.hal utzada quando dese|amos que
o nterpretador execute agum programa e a 2forma, hall ?, apenas
exbr a tea de dretos autoras do nterpretador. Os programas fontes
devero possur a extenso hal, mas na chamada a execuo a
especcao da mesma opcona, sto , pode-se executar o
programa smpesmente chamando-se Ha "arquvo".
As chamadas podero ser reazadas com etras mascuas,
mnscuas ou anda combnao de mascuas e mnscuas
ndferentemente. A nca restro , a de que no deve-se utzar
acentos, cedha ou outros marcadores.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Palavras Reservadas
As paavras e smboos abaxo so reservados peo nterpretador
Ha e, portanto, no podem ser utzados para outro m dferente
daquee dendo pea nguagem.
tpo, caracter, cadea, ntero, rea, casses, bsco, vetor, matrz,
regstro, con|unto, arquvo, se, senao, seecao, caso, repta,
ateque, enquanto, para, ate, passo, retorne, nterrompa, contnue
+ - * / % := = <- == # >
>= < <= & | ! " ' . ( )
{ } | | , ;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Funes de !nterface
As funes de nterface so as nstrues que nos permtem
reazar um dogo entre nosso programa e o usuro. Os nomes das
funes de nterface so reservados peo nterpretador Ha, e, portanto,
no podem ser utzadas como dentcadores.
Escreva ( )
Lea ( )
Poscao ( )
Modura ( )
Pausa ( )
Teca ( )
Dretos ( )
CopyRght ( )
LmpaTea ( );
Imprma ( );
Lnha ( );
Couna ( );
CorDoTexto ( );
CorDoFundo ( );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Funes "atemticas
As funes matemtcas so as nstrues que nos permtem
utzar de recursos matemtcos freqentemente encontrados e
soctados na resouo de agum probema. Eas foram mpementadas
porque dessa forma tornam mas fc reazar os ccuos, o que de
outra forma devera ser desenvovdo peo usuro. Os nomes das
funes matemtcas so reservados peo nterpretador Ha, e,
portanto, no podem ser utzadas como dentcadores.
Sna ( )
VaorAbs ( )
ParteIntera ( )
ParteDecma ( )
Ouocente ( )
Resto ( )
Raz ( )
Potenca ( )
Seno ( )
Coseno ( )
Tangente ( )
ArcoSeno ( )
ArcoCoseno ( )
ArcoTangente ( )
Exponenca ( )
LogDec ( )
LogNeper ( )
Logartmo ( )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Funes de Cadeia
As funes de cadea so as nstrues que nos permtem tratar
seqnca de caracteres. As cadeas so recursos bastante utzados na
programao em gera. Os nomes das funes de cadea so reservados
peo nterpretador Ha, e, portanto, no podem ser utzadas como
dentcadores.
Comprmento ( )
Concatena ( )
SubCadea ( )
Prmeros ( )
Utmos ( )
Compara ( )
Mauscuas ( )
Mnuscuas ( )
Insere ( )
SobrePoe ( )
CadeaParaIntero ( )
CadeaParaRea ( )
InteroParaCadea ( )
ReaParaCadea ( )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Funes de Ar#uivo
As funes para o tratamento de arquvo so as nstrues que
nos permtem tratar nformaes que podero ser armazenadas
ndendamente no computador, sto , eas tratam da manpuao da
nformao que est armazenada no wnchester por exempo. Os nomes
das funes para o tratamento de arquvos so reservados peo
nterpretador Ha, e, portanto, no podem ser utzadas como
dentcadores.
Vncuar ( );
Assocar ( );
Crar ( );
Abrr ( );
Fechar ( );
Gravar ( );
Regravar ( );
Deetar ( );
Ler ( );
Posconar ( );
FDA ( );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
''
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$erc%cios
E$emplo &'(&
Fa)er um algoritmo #ue leia tr*s valores inteiros+ determine e imprima o
menor deles'
algoritmo( )
{
declare A,B,C,MENOR : inteiro;
leia ( "informe o 1 alor: ", A );
leia ( "informe o ! alor: ", B );
leia ( "informe o " alor: ", C );
#e ( A $ B ) % ( A $ C )
{
MENOR :& A;
'
#enao
{
#e ( B $ C )
{
MENOR :& B;
'
#enao
{
MENOR :& C;
'
'
e#crea ("O menor n(mero e: ", MENOR );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(&a
Fa)er um algoritmo #ue leia tr*s valores inteiros+ determine e imprima o
menor deles'
algoritmo( )
{
inteiro A,B,C,MENOR;
leia ( "informe o 1 alor: ", A );
leia ( "informe o ! alor: ", B );
leia ( "informe o " alor: ", C );
#e ( A $ B ) % ( A $ C )
{
MENOR :& A;
'
#enao
{
#e ( B $ C )
{
MENOR :& B;
'
#enao
{
MENOR :& C;
'
'
e#crea ("O menor n(mero e: ", MENOR );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(,
Dados tr*s valores -+.+/+ verificar se eles podem ser os comprimentos dos
lados de um tri0ngulo e+ se forem+ verificar se e um tri0ngulo e#uiltero+
isceles ou escaleno' 1e eles no formarem um tri0ngulo+ escrever uma
mensagem'
algoritmo( )
{
declare ),*,+ : inteiro;
leia ( "informe o 1 alor: ", ));
leia ( "informe o ! alor: ", *);
leia ( "informe o " alor: ", +);
#e ( ) $ * , + % * $ ) , + ) % ( + $ ) , * )
{
#e ( ) && * ) % ( ) && + )
{
e#crea ( "triang(lo e-(ilatero");
'
#enao
{
#e ( ) && * . ) && + ) . ( * && + )
{
e#crea ( "triang(lo i#ocele#" );
'
#enao
{
e#crea ( "triang(lo e#caleno" );
'
'
'
#enao
{
e#crea ( "nao e/i#te triang(lo" );
'
'
Comentrio
Neste exemplo necessrio recordar algumas propriedades dos tringulos: O
comprimento de cada lado de um tringulo menor do que a soma dos outros
dois lados. Chama-se tringulo equiltero ao tringulo que tem os
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
comprimentos dos trs lados iguais, tringulo isceles ao tringulo que tem os
comprimentos de dois lados iguais. !odo tringulo equiltero tam"m
isceles# e, $inalmente, tringulo escaleno ao tringulo que tem os
comprimentos dos trs lados di$erentes. O %nico detalhe de implementa&'o no
algoritmo que tem uma pequena restri&'o o $ato de que as condi&(es lgicas
com os operadores "ooleanos ), * e + # de,em ser agrupadas duas a duas,
como em:
se 2 - 3 . 4 / 5 . 3 - 4 / 6 5 2 / 3 - 4 . 6 e
se 2 - 77 . 8 - 77 / 6 8 2 . 77 / 6
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(,a
Dados tr*s valores -+.+/+ verificar se eles podem ser os comprimentos dos
lados de um tri0ngulo e+ se forem+ verificar se e um tri0ngulo e#uiltero+
isceles ou escaleno' 1e eles no formarem um tri0ngulo+ escrever uma
mensagem'
algoritmo()
{
inteiro ),*,+;
leia ("informe o 1 alor: ", ));
leia ("informe o ! alor: ", *);
leia ("informe o " alor: ", +);
#e ( ) $ * , + % * $ ) , + ) % ( + $ ) , * )
{
#e ( ) && * ) % ( ) && + )
{
e#crea ( "tri0ng(lo e-(il1tero");
'
#enao
{
#e ( ) && * . ) && + ) . ( * && + )
{
e#crea ( "tri0ng(lo i#2#cele#" );
'
#enao
{
e#crea ( "tri0ng(lo e#caleno" );
'
'
'
#enao
{
e#crea ( "n3o e/i#te tri0ng(lo" );
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'((
Dados tr*s valores distintos 9+"+:+ coloc;los em ordem crescente'
algoritmo( )
{
declare 4,M,N,A5) : inteiro;
leia ( "informe o 1 alor: ", 4 );
leia ( "informe o ! alor: ", M );
leia ( "informe o " alor: ", N );
#e ( 4 6 M . 4 6 N )
{
#e ( M $ N )
{
A5) :& 4;
4 :& M;
M :& A5);
'
#enao
{
A5) :& 4;
4 :& N;
N :& A5);
'
'
#e ( M 6 N )
{
A5) :& M;
M :& N;
N :& A5);
'
e#crea (4,M,N);
'
Comentrio
- troca de conte%do entre duas ,ari,eis e muito comum no desen,ol,imento
de algoritmos, portanto torna-se necessrio uma explica&'o da utili.a&'o de
uma ,ari,el auxiliar, que neste caso rece"eu o nome de -/0. 1e,
simplesmente $ossem $eitas as seguintes atri"ui&(es 2 :3 4, 4 :3 2 o que
ocorreria 5 - atri"ui&'o e uma opera&'o destruti,a, isto , o conte%do anterior
da memria e destru6do aps a opera&'o de atri"ui&'o permanecendo apenas
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
o no,o ,alor. 7nt'o na opera&'o acima 2 e 4 estariam arma.enando o mesmo
,alor e o ,alor de 2 seria perdido. 7nt'o, sal,ando o conte%do de 2 na ,ari,el
-/0, uma ,ari,el auxiliar qualquer de mesmo tipo que 2#, o ,alor pode ser
recuperado posteriormente. O caracter * pipe# e um operador "ooleano e
representa a opera&'o lgica O/ dis8un&'o#.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'((a
Dados tr*s valores distintos 9+"+:+ coloc;los em ordem crescente'
algoritmo()
{
inteiro 4,M,N,A5);
leia ( "informe o 1 alor: ", 4 );
leia ( "informe o ! alor: ", M );
leia ( "informe o " alor: ", N );
#e ( 4 6 M . 4 6 N )
{
#e ( M $ N )
{
A5) :& 4;
4 :& M;
M :& A5);
'
#enao
{
A5) :& 4;
4 :& N;
N :& A5);
'
'
#e ( M 6 N )
{
A5) :& M;
M :& N;
N :& A5);
'
e#crea (4,M,N);
'
Comentrio
- troca de conte%do entre duas ,ari,eis e muito comum no desen,ol,imento
de algoritmos, portanto torna-se necessrio uma explica&'o da utili.a&'o de
uma ,ari,el auxiliar, que neste caso rece"eu o nome de -/0. 1e,
simplesmente $ossem $eitas as seguintes atri"ui&(es 2 :3 4, 4 :3 2 o que
ocorreria 5 - atri"ui&'o e uma opera&'o destruti,a, isto , o conte%do anterior
da memria e destru6do aps a opera&'o de atri"ui&'o permanecendo apenas
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
o no,o ,alor. 7nt'o na opera&'o acima 2 e 4 estariam arma.enando o mesmo
,alor e o ,alor de 2 seria perdido. 7nt'o, sal,ando o conte%do de 2 na ,ari,el
-/0, uma ,ari,el auxiliar qualquer de mesmo tipo que 2#, o ,alor pode ser
recuperado posteriormente. O caracter * pipe# e um operador "ooleano e
representa a opera&'o lgica O/ dis8un&'o#.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(<
1oma dos pares de &== a ,==
algoritmo( )
{
declare 7AR,8OMA : inteiro;
8OMA :& 9;
7AR :& 199;
re:ita ate-(e ( 7AR 6 !99 )
{
8OMA :& 8OMA , 7AR;
7AR :& 7AR , !;
'
e#crea ( 8OMA );
'
Comentrio
Neste algoritmo, aps os tipos das ,ari,eis 9-: e 1O4- serem de$inidos, em
1O4- arma.enado o ,alor .ero e em 9-:, o ,alor ;<<. 7m seguida, o
con8unto de comandos que gera os n%meros pares e e$etua a soma deles e
repetido at que o ,alor arma.enado em 9-: se8a maior que =<<, quando
ent'o, a estrutura de repeti&'o interrompida e o comando, que ,em logo
aps o $echamento do corpo do la&o executado, ou se8a, o ,alor contido em
1O4- e escrito.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(<a
1oma dos pares de &== a ,==
algoritmo( )
{
inteiro 7AR,8OMA;
8OMA :& 9;
7AR :& 199;
re:ita ate-(e ( 7AR 6 !99 )
{
8OMA :& 8OMA , 7AR;
7AR :& 7AR , !;
'
e#crea ( 8OMA );
'
Comentrio
Neste algoritmo, aps os tipos das ,ari,eis 9-: e 1O4- serem de$inidos, em
1O4- arma.enado o ,alor .ero e em 9-:, o ,alor ;<<. 7m seguida, o
con8unto de comandos que gera os n%meros pares e e$etua a soma deles
repetido at que o ,alor arma.enado em 9-: se8a maior que =<<, quando
ent'o, a estrutura de repeti&'o interrompida e o comando, que ,em logo
aps o $echamento do corpo do la&o executado, ou se8a, o ,alor contido em
1O4- escrito.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(>
1oma dos pares de &== a ,==
Algoritmo ( )
{
declare 7AR,8OMA : inteiro;
8OMA :& 9;
7AR :& ;<;
re:ita ate-(e ( 7AR && !99 )
{
7AR :& 7AR , !;
8OMA :& 8OMA , 7AR;
'
e#crea ( 8OMA );
'
Comentrio
Neste algoritmo, aps os tipos das ,ari,eis 9-: e 1O4- serem de$inidos, em
1O4- arma.enado o ,alor .ero e em 9-:, o ,alor >?. 7m seguida, o
con8unto de comandos que gera os n%meros pares e e$etua a soma deles
repetido at que o ,alor arma.enado em 9-: se8a igual a =<<, quando ent'o,
a estrutura de repeti&'o interrompida e o comando, que ,em logo aps o
$echamento do corpo do la&o executado, ou se8a, o ,alor contido em 1O4- e
escrito.
Neste exemplo, a condi&'o de sa6da a igualdade uma ,e. que, o ,alor =<< 8
ter sido acumulado em 1O4- posto que, a acumula&'o em 1O4- reali.ada
antes do teste da condi&'o de sa6da do la&o. 1e a condi&'o de sa6da $osse
9-: @ =<< #, ent'o o ,alor =<= seria acumulado.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(>a
1oma dos pares de &== a ,==
algoritmo()
{
inteiro 7AR,8OMA;
8OMA :& 9;
7AR :& ;<;
re:ita ate-(e ( 7AR && !99 )
{
7AR :& 7AR , !;
8OMA :& 8OMA , 7AR;
'
e#crea ( 8OMA );
'
Comentrio
Neste algoritmo, aps os tipos das ,ari,eis 9-: e 1O4- serem de$inidos, em
1O4- arma.enado o ,alor .ero e em 9-:, o ,alor >?. 7m seguida, o
con8unto de comandos que gera os n%meros pares e e$etua a soma deles
repetido at que o ,alor arma.enado em 9-: se8a igual a =<<, quando ent'o,
a estrutura de repeti&'o interrompida e o comando, que ,em logo aps o
$echamento do corpo do la&o executado, ou se8a, o ,alor contido em 1O4-
escrito.
Neste exemplo, a condi&'o de sa6da a igualdade uma ,e. que, o ,alor =<< 8
ter sido acumulado em 1O4- posto que, a acumula&'o em 1O4- reali.ada
antes do teste da condi&'o de sa6da do la&o. 1e a condi&'o de sa6da $osse
9-: @ =<< #, ent'o o ,alor =<= seria acumulado.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(?
1oma dos pares de &== a ,==
algoritmo( )
{
declare 7AR,8OMA : inteiro;
8OMA :& 9;
7AR :& 199;
re:ita ate-(e ( 7AR 6 !99 )
{
8OMA :& 8OMA , 7AR;
7AR :& 7AR , !;
'
e#crea ( 8OMA );
'
Comentrio
Neste algoritmo, aps os tipos das ,ari,eis 9-: e 1O4- serem de$inidos, em
1O4- arma.enado o ,alor .ero e em 9-:, o ,alor >?. 7m seguida, o
con8unto de comandos que gera os n%meros pares e e$etua a soma deles
repetido at que o ,alor arma.enado em 9-: se8a maior que =<<, quando
ent'o, a estrutura de repeti&'o interrompida e o comando, que ,em logo
aps o $echamento do corpo do la&o executado, ou se8a, o ,alor contido em
1O4- e escrito.
Neste exemplo, a condi&'o de sa6da maior que uma ,e. que, o ,alor =<<
ainda n'o ter sido acumulado em 1O4- posto que, a acumula&'o em 1O4-
reali.ada aps o incremento da ,ari,el 9-: e aps o teste da condi&'o de
sa6da do la&o. 1e a condi&'o de sa6da $osse 9-: 33 =<< #, ent'o o ,alor =<<
n'o seria acumulado.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(?a
1oma dos pares de &== a ,==
algoritmo()
{
inteiro 7AR,8OMA;
8OMA :& 9;
7AR :& 199;
re:ita ate-(e ( 7AR 6 !99 )
{
8OMA :& 8OMA , 7AR;
7AR :& 7AR , !;
'
e#crea ( 8OMA );
'
Comentrio
Neste algoritmo, aps os tipos das ,ari,eis 9-: e 1O4- serem de$inidos, em
1O4- arma.enado o ,alor .ero e em 9-:, o ,alor >?. 7m seguida, o
con8unto de comandos que gera os n%meros pares e e$etua a soma deles
repetido at que o ,alor arma.enado em 9-: se8a maior que =<<, quando
ent'o, a estrutura de repeti&'o interrompida e o comando, que ,em logo
aps o $echamento do corpo do la&o executado, ou se8a, o ,alor contido em
1O4- e escrito. Neste exemplo, a condi&'o de sa6da maior que uma ,e.
que, o ,alor =<< ainda n'o ter sido acumulado em 1O4- posto que, a
acumula&'o em 1O4- reali.ada aps o incremento da ,ari,el 9-: e aps o
teste da condi&'o de sa6da do la&o. 1e a condi&'o de sa6da $osse 9-: 33
=<< #, ent'o o ,alor =<< n'o seria acumulado.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(@
Fa)er um algoritmo #ue calcule o valor de :A 2fatorial de :6+ sendo #ue o valor
de inteiro de : encontra;se dispon%vel em uma unidade de entrada e #ueB
: A 7 & $ , $ ( $ ''' $ 2:;&6 $ :
= A 7 &+ por definio
algoritmo()
{
declare =A>OR?A4,?,N : inteiro;
leia ( "informe o alor de N ", N );
=A>OR?A4 :& 1;
? :& !;
re:ita ate-(e ( ? 6 N )
{
=A>OR?A4 :& =A>OR?A4 @ ?;
? :& ? , 1;
'
e#crea ( =A>OR?A4 );
'
Comentrio
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(@a
Fa)er um algoritmo #ue calcule o valor de :A 2fatorial de :6+ sendo #ue o valor
de inteiro de : encontra;se dispon%vel em uma unidade de entrada e #ueB
: A 7 & $ , $ ( $ ''' $ 2:;&6 $ :
= A 7 &+ por definio
algoritmo()
{
inteiro =A>OR?A4,?,N;
leia ( "informe o alor de N ", N );
=A>OR?A4 :& 1;
? :& !;
re:ita ate-(e ( ? 6 N )
{
=A>OR?A4 :& =A>OR?A4 @ ?;
? :& ? , 1;
'
e#crea ( =A>OR?A4 );
'
Comentrio
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
,2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(C
Dma pessoa aplicou seu capital a Euros e deseEa saFer+ trimestralmente+ a posio de
seu investimento inicial C' Chamando de i a ta$a de Euros do trimestre+ escrever uma
taFela #ue de para cada trimestre o rendimento auferido e o saldo acumulado durante
um per%odo de - anos+ supondo;se #ue
nenhuma retirada tenha sido feita'
GFservaesB
Gs valores de C+ ! e - esto dispon%veis numa unidade de entrada
A frmula para capitali)ao composta e dada porB
onde+
"+ montante aps terem decorridos : trimestres
C+ capital inicial investido
!+ ta$a de Euros
:+ nHmero de per%odos decorridos 2trimestres6
algoritmo()
{
AA declaracao da# ariaei#
declare CA7?>A4, MON>AN>E, RENB?MEN>O, >A)A : real;
declare N, >R?ME8>RE, ) : inteiro;
leia ( "informe o ca:ital inicial ", CA7?>A4 );
leia ( "informe a ta/a de C(ro# ", >A)A );
leia ( "informe o :eriodo em ano# ", ) );
AA atriD(icao de alore# iniciai# nece##ario#
MON>AN>E :& CA7?>A4;
>R?ME8>RE :& 1;
N :& E @ );
re:ita ate-(e ( >R?ME8>RE 6 N )
{
RENB?MEN>O :& >A)A @ MON>AN>E;
MON>AN>E :& CA7?>A4 @ ( ( 1 , >A)A ) F >R?ME8>RE );
e#crea ( RENB?MEN>O, " ", MON>AN>E );
>R?ME8>RE :& >R?ME8>RE , 1;
'
'
ComentriosB
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-3
N
i C M 7 & 8 +
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(Ca
Dma pessoa aplicou seu capital a Euros e deseEa saFer+ trimestralmente+ a posio de
seu investimento inicial C' Chamando de i a ta$a de Euros do trimestre+ escrever uma
taFela #ue de para cada trimestre o rendimento auferido e o saldo acumulado durante
um per%odo de - anos+ supondo;se #ue
nenhuma retirada tenha sido feita'
GFservaesB
Gs valores de C+ ! e - esto dispon%veis numa unidade de entrada
A frmula para capitali)ao composta e dada porB
onde+
"+ montante aps terem decorridos : trimestres
C+ capital inicial investido
!+ ta$a de Euros
:+ nHmero de per%odos decorridos 2trimestres6
algoritmo()
{
AA declaracao da# ariaei#
real CA7?>A4, MON>AN>E, RENB?MEN>O, >A)A;
inteiro N, >R?ME8>RE, );
leia ( "informe o ca:ital inicial ", CA7?>A4 );
leia ( "informe a ta/a de C(ro# ", >A)A );
leia ( "informe o :eriodo em ano# ", ) );
AA atriD(icao de alore# iniciai# nece##ario#
MON>AN>E :& CA7?>A4;
>R?ME8>RE :& 1;
N :& E @ );
re:ita ate-(e ( >R?ME8>RE 6 N )
{
RENB?MEN>O :& >A)A @ MON>AN>E;
MON>AN>E :& CA7?>A4 @ ( ( 1 , >A)A ) F >R?ME8>RE );
e#crea ( RENB?MEN>O, " ", MON>AN>E );
>R?ME8>RE :& >R?ME8>RE , 1;
'
'
ComentrioB
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-'
N
i C M 7 & 8 +
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(I
:um frigor%fico e$istem I= Fois' Cada Foi tra) preso em seu pescoo um carto
contendo seu numero de identificao e seu peso' Fa)er um algoritmo #ue escreva o
nHmero e peso do Foi mais gordo e do Foi mais magro'
algoritmo()
{
AA declaracao da# ariaei#
declare BO?8 : inteiro; AA n(mero de Doi# e/aminado#
declare GORBO : inteiro; AA n(mero do Doi mai# gordo
declare MAGRO : inteiro; AA n(mero do Doi mai# magro
declare MA?OR7E8O : inteiro; AA :e#o do Doi mai# gordo
declare MENOR7E8O : real; AA :e#o do Doi mai# magro
declare N5MERO : inteiro; AA n(mero de identificacao do# Doi#
declare 7E8O : real AA :e#o do# Doi#
BO?8 :& 9;
MA?OR7E8O :& 9;
MENOR7E8O :& 199999;
re:ita ate-(e ( BO?8 && ;9 )
{
leia ( "informe o n(mero do Doi ", N5MERO );
leia ( "informe o :e#o do Doi ", 7E8O );
#e ( 7E8O 6 MA?OR7E8O )
{
MA?OR7E8O :& 7E8O;
GORBO :& N5MERO;
'
#e ( 7E8O $ MENOR7E8O )
{
MENOR7E8O :& 7E8O;
MAGRO :& N5MERO;
'
BO?8 :& BO?8 , 1;
'
e#crea ( "Mai# gordo : ", GORBO, ", ", MA?OR7E8O );
e#crea ( "Mai# magro : ", MAGRO, ", ", MENOR7E8O );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
--
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'(I
:um frigor%fico e$istem I= Fois' Cada Foi tra) preso em seu pescoo um carto
contendo seu numero de identificao e seu peso' Fa)er um algoritmo #ue escreva o
nHmero e peso do Foi mais gordo e do Foi mais magro'
algoritmo()
{
AA declaracao da# ariaei#
inteiro BO?8; AA n(mero de Doi# e/aminado#
inteiro GORBO; AA n(mero do Doi mai# gordo
inteiro MAGRO; AA n(mero do Doi mai# magro
inteiro MA?OR7E8O; AA :e#o do Doi mai# gordo
real MENOR7E8O; AA :e#o do Doi mai# magro
inteiro N5MERO; AA n(mero de identificacao do# Doi#
real 7E8O; AA :e#o do# Doi#
BO?8 :& 9;
MA?OR7E8O :& 9;
MENOR7E8O :& 199999;
re:ita ate-(e ( BO?8 && ;9 )
{
leia ( "informe o n(mero do Doi ", N5MERO );
leia ( "informe o :e#o do Doi ", 7E8O );
#e ( 7E8O 6 MA?OR7E8O )
{
MA?OR7E8O :& 7E8O;
GORBO :& N5MERO;
'
#e ( 7E8O $ MENOR7E8O )
{
MENOR7E8O :& 7E8O;
MAGRO :& N5MERO;
'
BO?8 :& BO?8 , 1;
'
e#crea ( "Mai# gordo : ", GORBO, ", ", MA?OR7E8O );
e#crea ( "Mai# magro : ", MAGRO, ", ", MENOR7E8O );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'<=
Dma pes#uisa soFre algumas caracter%sticas f%sicas da populao de uma determinada
regio coletou os seguintes dados+ referentes a cada haFitante+ para serem
analisadosB
se$o 2masculino+ feminino6
cor do olhos 2a)uis+ verdes+ castanhos6
cor dos caFelos 2louros+ castanhos+ pretos6
idade em anos'
Para cada haFitante+ foi digitada uma linha com esses dados e a Hltima linha+ #ue no
corresponde a ninguJm+ conter o valor de idade igual a ;&'
Fa)er um algoritmo #ue determine e escrevaB
a6 a maior idade dos haFitantes
F6 a porcentagem de indiv%duos do se$o feminino cuEa idade esta entre &C e (> anos
inclusive e #ue tenham olhos verdes e caFelos louros
algoritmo()
{
declare ?BABE : inteiro; AA idade do indiHd(o
declare ?NB?I?B5O8 : inteiro;
AA n(mero de indiid(o# com idade entre 1< e "J com olKo# erde# caDelo# lo(ro#
declare MA?OR?BABE : inteiro;
declare 7ORCEN>AGEM : real; AA :orcentagem de indiid(o# com idade entre
AA 1< e "J ano#, com olKo# erde# e caDelo#
AA lo(ro#
declare >O>A4?NB?I?B5O8 : inteiro; AA n(mero de indiid(o# :e#-(i#ado#
declare CABE4O8 : cadeia; AA cor do# caDelo#
declare O4LO8 : cadeia; AA cor do# olKo#
declare 8E)O : cadeia;
AA atriD(icao de alore# iniciai# nece##ario#
MA?OR?BABE :& 9;
>O>A4?NB?I?B5O8 :& 9;
?NB?I?B5O8 :& 9;
re:ita ate-(e ( ?BABE && M1 )
{
leia ( "informe o #e/o: ", 8E)O );
leia ( "informe a cor do# olKo#: ", O4LO8 );
leia ( "informe a cor do# caDelo#: ", CABE4O8 );
leia ( "informe a idade: ", ?BABE );
#e ( ?BABE $6 M1 )
{
AA calc(lo da maior idade
#e ( ?BABE 6 MA?OR?BABE )
{
MA?OR?BABE :& ?BABE;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
AA contagem do# indiid(o# :e#-(i#ado#
>O>A4?NB?I?B5O8 :& >O>A4?NB?I?B5O8 , 1;
AA contagem do# indiid(o# entre 1< e "J ano#, do #e/o feminino,
AA com olKo# erde# e caDelo# lo(ro#
#e ( ?BABE 6& 1< % ?BABE $& "J )
{
#e ( 8E)O && "=EM?N?NO" % O4LO8 && "IERBE8" )
{
#e ( CABE4O8 && "4O5RO8" )
{
?NB?I?B5O8 :& ?NB?I?B5O8 , 1;
'
'
'
'
'
7ORCEN>AGEM :& ?NB?I?B5O8 @ 199 A >O>A4?NB?I?B5O8;
e#crea ( "A maior idade e ", MA?OR?BABE );
e#crea ( "7orcentagem: ", 7ORCEN>AGEM );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'<=a
Dma pes#uisa soFre algumas caracter%sticas f%sicas da populao de uma determinada
regio coletou os seguintes dados+ referentes a cada haFitante+ para serem
analisadosB
se$o 2masculino+ feminino6
cor do olhos 2a)uis+ verdes+ castanhos6
cor dos caFelos 2louros+ castanhos+ pretos6
idade em anos'
Para cada haFitante+ foi digitada uma linha com esses dados e a Hltima linha+ #ue no
corresponde a ninguJm+ conter o valor de idade igual a ;&'
Fa)er um algoritmo #ue determine e escrevaB
a6 a maior idade dos haFitantes
F6 a porcentagem de indiv%duos do se$o feminino cuEa idade esta entre &C e (> anos
inclusive e #ue tenham olhos verdes e caFelos louros
algoritmo()
{
inteiro ?BABE; AA idade do indiHd(o
inteiro ?NB?I?B5O8; AA n(mero de indiid(o# com idade entre 1< e "J com
AA olKo# erde# caDelo# lo(ro#
inteiro MA?OR?BABE;
real 7ORCEN>AGEM; AA :orcentagem de indiid(o# com idade entre 1< e "J
AA ano#, com olKo# erde# e caDelo# lo(ro#
inteiro >O>A4?NB?I?B5O8; AA n(mero de indiid(o# :e#-(i#ado#
cadeia CABE4O8; AA cor do# caDelo#
cadeia O4LO8; AA cor do# olKo#
cadeia 8E)O;
AA atriD(icao de alore# iniciai# nece##ario#
MA?OR?BABE :& 9;
>O>A4?NB?I?B5O8 :& 9;
?NB?I?B5O8 :& 9;
re:ita ate-(e ( ?BABE && M1 )
{
leia ( "informe o #e/o: ", 8E)O );
leia ( "informe a cor do# olKo#: ", O4LO8 );
leia ( "informe a cor do# caDelo#: ", CABE4O8 );
leia ( "informe a idade: ", ?BABE );
#e ( ?BABE $6 M1 )
{
AA calc(lo da maior idade
#e ( ?BABE 6 MA?OR?BABE )
{
MA?OR?BABE :& ?BABE;
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA contagem do# indiid(o# :e#-(i#ado#
>O>A4?NB?I?B5O8 :& >O>A4?NB?I?B5O8 , 1;
AA contagem do# indiid(o# entre 1< e "J ano#, do #e/o feminino,
AA com olKo# erde# e caDelo# lo(ro#
#e ( ?BABE 6& 1< % ?BABE $& "J )
{
#e ( 8E)O && "=EM?N?NO" % O4LO8 && "IERBE8" )
{
#e ( CABE4O8 && "4O5RO8" )
{
?NB?I?B5O8 :& ?NB?I?B5O8 , 1;
'
'
'
'
'
7ORCEN>AGEM :& ?NB?I?B5O8 @ 199 A >O>A4?NB?I?B5O8;
e#crea ( "A maior idade e ", MA?OR?BABE );
e#crea ( "7orcentagem: ", 7ORCEN>AGEM );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
-2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'<&
Para se determinar o numero de l0mpadas necessrias para cada cKmodo de uma
resid*ncia+ e$istem normas #ue do o m%nimo de pot*ncia de iluminao e$igida por
metro #uadrado conforme a utili)ao deste cKmodo'
1eEa a seguinte taFela tomada como e$emploB
Dtili)ao Classe Pot*ncia L mM
Nuarto & &>
1ala de tv & &>
1alas , &C
Co)inha , &C
varandas , &C
escritrio ( ,=
Fanheiro ( ,=
1upondo #ue s sero usadas l0mpadas de ?= Oatts+ fa)er um algoritmo #ueB
a6 leia um nHmero indeterminado de linhas contendo cada umaB
cKmodo de uma resid*ncia
classe de iluminao
as duas dimenses do cKmodo
F6 Calcule e escreva
F'&6 para cada cKmodo
cKmodo
a rea do cKmodo
pot*ncia de iluminao
nHmero de l0mpadas necessrias
F',6 para toda a resid*ncia
total de l0mpadas
total de pot*ncia
GFservaesB
&6 1e o nHmero calculado de l0mpadas for fracionrio+ considerar o menor inteiro #ue
contenha esse nHmero'
,6 A Hltima linha+ #ue no entrar nos clculos+ conter no lugar do cKmodo a palavra
va)io'
algoritmo()
{
declare AREA:real; AA area do comodo
declare A5)?4?AR:real; AA ariael a(/iliar :ara calc(lo
declare C4A88E:inteiro; AA cla##e de il(minacao
declare COM7R:real; AA com:rimento do comodo, com:rimento e re#erada
declare 4AM7ABA8:inteiro; AA n(mero de lama:da# nece#aria# :or comodo
declare 4ARG5RA:real; AA larg(ra do comodo
declare 7O>EN:real; AA :otencia nece##aria :or comodo
declare >O>A4AM7ABA8:inteiro; AA n(mero de lam:ada# nece##aria :ara a
AA re#idencia
declare >O>A47O>ENC?A:real; AA :otencia nece##aria :ara a re#idencia
declare COMOBO:cadeia; AA denominacao do comodo
re:ita ate-(e ( 9 )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
.3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
{
leia ( "informe o comodo: ", COMOBO );
leia ( "informe a cla##e: ", C4A88E );
leia ( "informe o com:rimento: ", COM7R );
leia ( "informe a larg(ra: ", 4ARG5RA );
#e ( COMOBO && "IA+?O" )
{
interrom:a;
'
AA calc(lo da area
AREA :& COM7R @ 4ARG5RA;
AA calc(lo da :otencia de il(minacao do comodo
#e ( C4A88E && 1 )
{
7O>EN :& AREA @ 1J;
'
#enao
{
#e ( C4A88E && ! )
{
7O>EN :& AREA @ 1<;
'
#enao
{
7O>EN :& AREA @ !9;
'
'
AA calc(lo do n(mero de lam:ada# nece##aria# :or comodo
4AM7ABA8 :& -(ociente ( 7O>EN, N9 );
AA calc(lo do total de lam:ada# da re#idencia
>O>A4AM7ABA8 :& >O>A4AM7ABA8 , 4AM7ABA8;
AA calc(lo do total de :otencia da re#idencia
>O>A47O>ENC?A :& >O>A47O>ENC?A , 7O>EN;
AA e#crita do comodo, area do comodo, :otencia de il(minacao e n(mero de
AA lam:ada# nece##aria#
e#crea ( "comodo: ", COMOBO );
e#crea ( "area: ", AREA );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
.&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( ":otencia: ", 7O>EN );
e#crea ( "lam:ada#: ", 4AM7ABA8 );
'
AA e#crita do total de lam:ada# e total de :otencia da
AA re#idencia
e#crea ( "total de lam:ada#: ", >O>A4AM7ABA8 );
e#crea ( ":otencia: ", >O>A47O>ENC?A );
'
Comentrio
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
.'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'<,
Fa)er um algoritmo #ueB
a6 leia e escreva o nome e a altura das moas inscritas em um concurso de Fele)a'
Para cada moa+ e$iste uma linha contendo seu nome e sua altura' A Hltima linha #ue
no corresponde a nenhuma moa+ conter a palavra PA/!G no lugar do nome'
F6 calcule e escreva as duas maiores alturas e #uantas moas as possuem
algoritmo()
{
declare A4>5RA : real;
declare CON>1, CON>!, MA?OR1, MA?OR! : inteiro;
declare NOME : cadeia;
declare RE87 : caracter;
AA atriD(icao de alore# iniciai# nece##ario#
CON>1 :& 9;
CON>! :& 9;
MA?OR1 :& M1;
MA?OR! :& M1;
re:ita ate-(e ( 9 6 1 )
{
leia ( "informe o nome: ", NOME );
leia ( "informe a alt(ra: ", A4>5RA );
#e ( A4>5RA 6 MA?OR1 )
{
MA?OR! :& MA?OR1;
CON>! :& CON>1;
MA?OR1 :& A4>5RA;
CON>1 :& 1;
'
#enao
{
#e ( A4>5RA && MA?OR1 )
{
CON>1 :& CON>1 , 1;
'
#enao
{
#e ( A4>5RA 6 MA?OR! )
{
MA?OR! :& A4>5RA;
CON>! :& 1;
'
#enao
{
#e ( A4>5RA && MA?OR! )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
.,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
{
CON>! :& CON>! , 1;
'
'
'
'
leia ( "de#eCa contin(ar (#An) O ", RE87 );
#e ( RE87 && PNP . RE87 && PnP )
{
interrom:a;
'
'
e#crea ( "1Q maior idade: ", MA?OR1, " -(antidade ", CON>1 );
e#crea ( "!Q maior idade: ", MA?OR!, " -(antidade ", CON>! );
'
Comentrio
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
.-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'<,a
Fa)er um algoritmo #ueB
a6 leia e escreva o nome e a altura das moas inscritas em um concurso de Fele)a'
Para cada moa+ e$iste uma linha contendo seu nome e sua altura' A Hltima linha #ue
no corresponde a nenhuma moa+ conter a palavra PA/!G no lugar do nome'
F6 calcule e escreva as duas maiores alturas e #uantas moas as possuem
algoritmo()
{
real A4>5RA;
inteiro CON>1, CON>!, MA?OR1, MA?OR!;
cadeia NOME;
caracter RE87;
AA atriD(icao de alore# iniciai# nece##ario#
CON>1 :& 9;
CON>! :& 9;
MA?OR1 :& M1;
MA?OR! :& M1;
re:ita ate-(e ( 9 6 1 )
{
leia ( "informe o nome: ", NOME );
leia ( "informe a alt(ra: ", A4>5RA );
#e ( A4>5RA 6 MA?OR1 )
{
MA?OR! :& MA?OR1;
CON>! :& CON>1;
MA?OR1 :& A4>5RA;
CON>1 :& 1;
'
#enao
{
#e ( A4>5RA && MA?OR1 )
{
CON>1 :& CON>1 , 1;
'
#enao
{
#e ( A4>5RA 6 MA?OR! )
{
MA?OR! :& A4>5RA;
CON>! :& 1;
'
#enao
{
#e ( A4>5RA && MA?OR! )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
..
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
{
CON>! :& CON>! , 1;
'
'
'
'
leia ( "de#eCa contin(ar (#An) O ", RE87 );
#e ( RE87 && PNP . RE87 && PnP )
{
interrom:a;
'
'
e#crea ( "1Q maior idade: ", MA?OR1, " -(antidade ", CON>1 );
e#crea ( "!Q maior idade: ", MA?OR!, " -(antidade ", CON>! );
'
Comentrio
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
./
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'<(
Escrever um algoritmo para fa)er uma taFela de sen A+ com A variando de = a &+?
radianos de dJcimo em dJcimo de radiano+ usando a sJrie
com erro inferior a =+===&' !mprimir tamFJm o nHmero de termos usados' Em sJries
alternadas+ o valor aFsoluto do erro cometido com a interrupo da sJrie J inferior ao
valor aFsoluto do primeiro termo aFandonado'
algoritmo()
{
declare A, N, 8EN, >, ERRO : real;
A :& 9;
re:ita ate-(e ( A 6 1RN )
{
8EN :& 9;
> :& A;
N :& 9;
ERRO :& IalorAD#(>);
re:ita ate-(e ( ERRO $ 9R9991 )
{
8EN :& 8EN , >;
N :& N , 1;
> :& M1 @ > @ (AF!) A ( ! @ N @ ( ! @ N , 1 ) );
ERRO :& IalorAD#(>);
'
e#crea ( A, " ", 8EN, " ", N );
A :& A , 9R1;
'
'
Comentrio
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
.0
$$$
9 . 9 ,
7 se!8
. ,
+
A A
A A
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
.1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'<(a
Escrever um algoritmo para fa)er uma taFela de sen A+ com A variando de = a &+?
radianos de dJcimo em dJcimo de radiano+ usando a sJrie
com erro inferior a =+===&' !mprimir tamFJm o nHmero de termos usados' Em sJries
alternadas+ o valor aFsoluto do erro cometido com a interrupo da sJrie J inferior ao
valor aFsoluto do primeiro termo aFandonado'
algoritmo()
{
real A, N, 8EN, >, ERRO;
A :& 9;
re:ita ate-(e ( A 6 1RN )
{
8EN :& 9;
> :& A;
N :& 9;
ERRO :& IalorAD#(>);
re:ita ate-(e ( ERRO $ 9R9991 )
{
8EN :& 8EN , >;
N :& N , 1;
> :& M1 @ > @ (AF!) A ( ! @ N @ ( ! @ N , 1 ) );
ERRO :& IalorAD#(>);
'
e#crea ( A, " ", 8EN, " ", N );
A :& A , 9R1;
'
'
Comentrio
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
.2
$$$
9 . 9 ,
7 se!8
. ,
+
A A
A A
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'<<
Para cada aluno da disciplina programao de computadores deste semestre ser
digitada uma linha com a identificao da turma 2A+Q+C+'''+ nesta ordem6 nHmero de
matricula' Aps o Hltimo aluno de cada turma+ vir uma linha+ #ue no corresponde a
nenhum aluno+ contendo )ero no lugar do nHmero de matr%cula' DeseEa;se+ atravJs de
um computador+ ler estas linhas e imprimir+ para cada turma a sua identificao+ o
nHmero de alunos aprovados 2nota final R7 ?=6+ a mJdia das notas e a melhor nota'
Aps as turmas serem processadas+ deseEa;se imprimir tamFJm o total de alunos
aprovados+ a mJdia geral e a melhor nota na disciplina+ neste semestre'
algoritmo()
{
declare MEB?AB?8C : real; AA media da# nota# de todo# o# al(no# da di#ci:lina
declare 8OMAB?8C : real; AA #oma de toda# a# nota# da di#ci:lina
declare NB?8C : inteiro; AA n(mero de al(no# matric(lado# na di#ci:lina
declare A7ROIB?8C : inteiro; AA n(mero de al(no# a:roado# na di#ci:lina
declare ME4LORB?8C : real; AA melKor nota na di#ci:lina
declare MEB?A : real; AA media da# nota# de todo# o# al(no# de (ma t(rma
declare 8OMA : real; AA #oma de toda# a# nota# de (ma t(rma
declare N : inteiro; AA n(mero de al(no# de (ma t(rma
declare A7ROI : inteiro; AA n(mero de al(no# a:roado# em (ma t(rma
declare ME4LOR : real; AA melKor nota de (ma t(rma
declare A45NO : inteiro; AA n(mero de matric(la de (m al(no
declare NO>A : real; AA nota de (m al(no
declare >5RMA : a#cii; AA identificacao da t(rma
AA atriD(icao de alore# iniciai# a# ariaei# relatia# a di#ci:lina
8OMAB?8C :& 9;
NB?8C :& 9;
A7ROIB?8C :& 9;
ME4LORB?8C :& M1;
re:ita ate-(e ( >5RMA && PRP )
{
AA atriD(icao de alore# iniciai# a# ariaei# relatio# a (ma t(rma
8OMA :& 9;
N :& 9;
A7ROI :& 9;
ME4LOR :& M1;
AA e/ec(cao do# calc(lo# intermediario# relatio# a (ma t(rma
re:ita ate-(e ( A45NO && 9 )
{
leia ( "informe a t(rma: ", >5RMA );
leia ( "informe o n(mero de matric(la: ", A45NO );
leia ( "informe a nota: ", NO>A );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#e ( A45NO && 9 )
{
interrom:a;
'
AA e/ec(cao do# calc(lo# relatio# a (m al(no
N :& N , 1;
#e ( NO>A 6& N9 )
{
A7ROI :& A7ROI , 1;
'
#e ( NO>A 6 ME4LOR )
{
ME4LOR :& NO>A;
'
8OMA :& 8OMA , NO>A;
'
AA e/ec(cao do# calc(lo# finai# relatio# a (ma t(rma
MEB?A :& 8OMA A N;
e#crea ( ">(rma: ", >5RMA, "A:roado#: ", A7ROI, "media: ", MEB?A,
"melKor: ", ME4LOR );
8OMAB?8C :& 8OMAB?8C , 8OMA;
NB?8C :& NB?8C , N;
A7ROIB?8C :& A7ROIB?8C , A7ROI;
#e ( ME4LOR 6 ME4LORB?8C )
{
ME4LORB?8C :& ME4LOR;
'
'
AA e/ec(cao do# calc(lo# relatio# a di#ci:lina
MEB?AB?8C :& 8OMAB?8C A NB?8C;
e#crea ( "A:roado#: ", A7ROIB?8C, "Media geral: ", MEB?AB?8C, "MelKor al(no: ",
ME4LORB?8C );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E$emplo &'<<a
Para cada aluno da disciplina programao de computadores deste semestre ser
digitada uma linha com a identificao da turma 2A+Q+C+'''+ nesta ordem6 nHmero de
matricula' Aps o Hltimo aluno de cada turma+ vir uma linha+ #ue no corresponde a
nenhum aluno+ contendo )ero no lugar do nHmero de matr%cula' DeseEa;se+ atravJs de
um computador+ ler estas linhas e imprimir+ para cada turma a sua identificao+ o
nHmero de alunos aprovados 2nota final R7 ?=6+ a mJdia das notas e a melhor nota'
Aps as turmas serem processadas+ deseEa;se imprimir tamFJm o total de alunos
aprovados+ a mJdia geral e a melhor nota na disciplina+ neste semestre'
algoritmo()
{
real MEB?AB?8C; AA media da# nota# de todo# o# al(no# da di#ci:lina
real 8OMAB?8C; AA #oma de toda# a# nota# da di#ci:lina
inteiro NB?8C; AA n(mero de al(no# matric(lado# na di#ci:lina
inteiro A7ROIB?8C; AA n(mero de al(no# a:roado# na di#ci:lina
real ME4LORB?8C; AA melKor nota na di#ci:lina
real MEB?A; AA media da# nota# de todo# o# al(no# de (ma t(rma
real 8OMA; AA #oma de toda# a# nota# de (ma t(rma
inteiro N; AA n(mero de al(no# de (ma t(rma
inteiro A7ROI; AA n(mero de al(no# a:roado# em (ma t(rma
real ME4LOR; AA melKor nota de (ma t(rma
inteiro A45NO; AA n(mero de matric(la de (m al(no
real NO>A; AA nota de (m al(no
caracter >5RMA; AA identificacao da t(rma
AA atriD(icao de alore# iniciai# a# ariaei# relatia# a di#ci:lina
8OMAB?8C :& 9;
NB?8C :& 9;
A7ROIB?8C :& 9;
ME4LORB?8C :& M1;
re:ita ate-(e ( >5RMA && PRP )
{
AA atriD(icao de alore# iniciai# a# ariaei# relatio# a (ma t(rma
8OMA :& 9;
N :& 9;
A7ROI :& 9;
ME4LOR :& M1;
AA e/ec(cao do# calc(lo# intermediario# relatio# a (ma t(rma
re:ita ate-(e ( A45NO && 9 )
{
leia ( "informe a t(rma: ", >5RMA );
leia ( "informe o n(mero de matric(la: ", A45NO );
leia ( "informe a nota: ", NO>A );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#e ( A45NO && 9 )
{
interrom:a;
'
AA e/ec(cao do# calc(lo# relatio# a (m al(no
N :& N , 1;
#e ( NO>A 6& N9 )
{
A7ROI :& A7ROI , 1;
'
#e ( NO>A 6 ME4LOR )
{
ME4LOR :& NO>A;
'
8OMA :& 8OMA , NO>A;
'
AA e/ec(cao do# calc(lo# finai# relatio# a (ma t(rma
MEB?A :& 8OMA A N;
e#crea ( ">(rma: ", >5RMA, "A:roado#: ", A7ROI, "media: ", MEB?A,
"melKor: ", ME4LOR );
8OMAB?8C :& 8OMAB?8C , 8OMA;
NB?8C :& NB?8C , N;
A7ROIB?8C :& A7ROIB?8C , A7ROI;
#e ( ME4LOR 6 ME4LORB?8C )
{
ME4LORB?8C :& ME4LOR;
'
'
AA e/ec(cao do# calc(lo# relatio# a di#ci:lina
MEB?AB?8C :& 8OMAB?8C A NB?8C;
e#crea ( "A:roado#: ", A7ROIB?8C, "Media geral: ", MEB?AB?8C, "MelKor al(no: ",
ME4LORB?8C );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Problemas Propostos
ProFlema &'&,'&
Fa)er um algoritmo #ueB
9eia um nHmero indeterminado de linhas contendo cada uma a idade de um indiv%duo'
A Hltima linha+ #ue no entrar nos clculos+ contem o valor da idade igual a )ero'
Calcule e escreva a idade media deste grupo de indiv%duos
algoritmo( )
{
declare ?BABE : inteiro; AA a idade lida de cada indiid(o
declare N : inteiro; AA a -(antidade de indiid(o# lido#
declare MEB?A : real; AA a idade media calc(lada
declare 8OMA : real; AA a #oma da# idade# de cada indiid(o
AA atriD(icao de alore# iniciai# :ara o calc(lo da media
8OMA :& 9; AA ac(m(lador da #oma da# idade#
N :& 9; AA n(mero de indiid(o# lido#
=aca
{
leia ( "informe a idade: ", ?BABE );
8OMA :& 8OMA , ?BABE;
N :& N , 1;
' ate-(e ( ?BABE && 9 )
MEB?A :& 8OMA A N;
e#crea ( "A idade media e ", MEB?A );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',
Tem;se um conEunto de dados contendo a altura e o se$o 2masculino+ feminino6 de >=
pessoas' Fa)er um algoritmo #ue calcule e escrevaB
a maior e a menor altura do grupo
a media de altura das mulheres
numero de homens
algoritmo( )
{
declare MA?OR : real; AA a maior alt(ra do gr(:o de :e##oa#
declare MENOR : real; AA a menor alt(ra do gr(:o de :e##oa#
declare A4>5RA: real; AA a alt(ra lida de cada :e##oa
declare 8E)O : caracter; AA o #e/o (M o( =)
declare MEB?A : real; AA a media da# alt(ra# da# m(lKere#
declare LOMEN8 : inteiro; AA o n(mero de Komen#
declare 8OMA : real; AA a #oma da# alt(ra# da# m(lKere#
declare N : inteiro; AA contador :ara o n(mero de :e##oa#
declare M54LERE8:inteiro; AA n(mero de m(lKere#
AA atriD(icao de alore# iniciai# :ara o calc(lo da media
8OMA :& 9; AA ac(m(lador da #oma da# idade# da# m(lKere#
N :& 9; AA n(mero de :e##oa# lido#
LOMEN8 :& 9; AA n(mero de Komen#
M54LERE8 :& 9; AA n(mero de m(lKere#
MA?OR :& 9; AA
MENOR :& 19;
en-(anto ( N $& J9 )
{
leia ( "informe a alt(ra: ", A4>5RA );
leia ( "informe o #e/o: ", 8E)O );
#e ( A4>5RA 6 MA?OR )
{
MA?OR :& A4>5RA;
'
#e ( A4>5RA $ MENOR )
{
MENOR :& A4>5RA;
'
#e ( 8E)O && PMP . 8E)O && PmP )
{
LOMEN8 :& LOMEN8 , 1;
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
//
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#enao
{
M54LERE8 :& M54LERE8 , 1;
8OMA :& 8OMA , A4>5RA;
'
N :& N , 1;
'
MEB?A :& 8OMA A M54LERE8;
e#crea ( "A maior alt(ra e ", MA?OR );
e#crea ( "A menor alt(ra e ", MENOR );
e#crea ( "A alt(ra media da# m(lKere# e ", MEB?A );
e#crea ( "O n(mero de Komen# e ", LOMEN8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(
A converso de graus Farenheit para cent%grados J oFtida por
Fa)er um algoritmo #ue calcule e escreva uma taFela de cent%grados em funo de
graus farenheit+ #ue variam de >= a &>= de & em &'
algoritmo( )
{
declare C : real; AA gra(# Centigrado#
declare = : real; AA gra(# =arenKeit
AA atriD(icao de alore# iniciai#
= :& J9; AA alor inicial do interalo de#eCado
re:ita ate-(e ( = 6 1J9 )
{
C :& ( J A ; ) @ ( = M "! );
e#crea ( "=arenKeit: ", =, " Centigrado#: ", C );
= :& = , 1;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/1
2
7 ,' 8 .

F
C
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<
Dm comerciante deseEa fa)er o levantamento do lucro das mercadorias #ue ele
comerciali)a' Para isto+ mandou digitar numa linha para cada mercadoria com o nome+
preo de compra e preo de venda das mesmas'
Fa)er um algoritmo #ueB
determine e escreva #uantas mercadorias proporcionamB
a6 lucro menor #ue &=S
F6 lucro entre &=S e ,=S
c6 lucro maior #ue ,=S
determine e escreva o valor total de compra e de venda de todas as mercadorias+
assim como o lucro total'
GFsB o aluno deve adotar um flag'
algoritmo( )
{
declare NOME : cadeia; AA nome da mercadoria
declare 7RECOSCOM7RA : real; AA :reco de com:ra da mercadoria
declare 7RECOSIENBA : real; AA :reco de enda da mercadoria
declare 45CRO : real; AA l(cro calc(lado de cada mercadoria
declare T5AN>1 : inteiro; AA -td de mercadoria# com l(cro ate 19U
declare T5AN>! : inteiro; AA -td de mercadoria# com l(cro entre 19 e
!9U
declare T5AN>" : inteiro; AA -td de mercadoria# com l(cro 6 !9U
declare >O>A4SCOM7RA : real; AA alor total da com:ra
declare >O>A4SIENBA : real; AA alor total da enda
AA inicialiVacao do# ac(m(ladore#
>O>A4SCOM7RA :& 9;
>O>A4SIENBA :& 9;
T5AN>1 :& 9;
T5AN>! :& 9;
T5AN>" :& 9;
re:ita ate-(e ( NOME && "=?M" )
{
leia ( "informe o nome da mercadoria: ", NOME );
#e ( NOME $6 "=?M" )
{
leia ( "informe o :reco de com:ra: ", 7RECOSCOM7RA );
leia ( "informe o :reco de enda: ", 7RECOSIENBA );
45CRO :& 199 @ (7RECOSIENBA M 7RECOSCOM7RA) A
7RECOSCOM7RA;
#e ( 45CRO $ 19 )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
/2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
{
T5AN>1 :& T5AN>1 , 1;
'
#enao
{
#e ( 45CRO 6& 19 % 45CRO $& !9 )
{
T5AN>! :& T5AN>! , 1;
'
#enao
{
T5AN>" :& T5AN>" , 1;
'
'
>O>A4SCOM7RA :& >O>A4SCOM7RA , 7RECOSCOM7RA;
>O>A4SIENBA :& >O>A4SIENBA , 7RECOSIENBA;
'
45CRO :& 199 @ ( >O>A4SIENBA M >O>A4SCOM7RA ) A
>O>A4SCOM7RA;
'
e#crea ( "T(antidade de mercadoria# com l(cro $ 19U: ", T5AN>1 );
e#crea ( "T(antidade de mercadoria# com l(cro $ !9U: ", T5AN>! );
e#crea ( "T(antidade de mercadoria# com l(cro 6 !9U: ", T5AN>" );
e#crea ( "Ialor total da# com:ra#: ", >O>A4SCOM7RA );
e#crea ( "Ialor total da# enda#: ", >O>A4SIENBA );
e#crea ( "4(cro total (U): ", 45CRO );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
03
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'>
1upondo #ue a populao de um pais A seEa da ordem de I='==='=== de haFitantes
com uma ta$a anual de crescimento de (S e #ue a populao de um pais Q seEa+
apro$imadamente+ de ,=='==='=== de haFitantes com uma ta$a anual de crescimento
de &+>S+ fa)er um algoritmo #ue calcule e escreva o numero de anos necessrios para
#ue a populao do pais A ultrapasse ou iguale a populao do pais Q+ mantidas essas
ta$as de crescimento
algoritmo( )
{
AA declaracao da# ariaei#
declare :o:A : real; AA :o:(lacao do :ai# A
declare :o:B : real; AA :o:(lacao do :ai# B
declare ta/aA : real; AA ta/a de cre#cimento da :o:(lacao de A
declare ta/aB : real; AA ta/a de cre#cimento da :o:(lacao de B
declare ano# : inteiro; AA n(mero de ano# :ara -(e :o:A 6& :o:B
AA inicialiVacao do# ac(m(ladore# e con#tante#
:o:A :& ;9999;
:o:B :& !99999;
ta/aA :& 9R9";
ta/aB :& 9R91J;
ano# :& 9;
re:ita ate-(e ( :o:A 6& :o:B )
{
:o:A :& :o:A , ( :o:A @ ta/aA );
:o:B :& :o:B , ( :o:B @ ta/aB );
ano# :& ano# , 1;
'
e#crea ( ">em:o decorrido em ano#: ", ano# );
e#crea ( "7o:(lacao do :ai# A: ", :o:A );
e#crea ( "7o:(lacao do :ai# B: ", :o:B );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
0&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?
Dm determinado material radioativo perde metade se sua massa a cada >= segundos'
Dada a massa inicial+ em gramas+ fa)er um algoritmo #ue determine o tempo
necessrio para #ue essa massa se torne menor do #ue =+> grama' Escreva a massa
inicial+ a massa final e o tempo calculado em horas+ minutos e segundos'
algoritmo()
{
AA declaracao da# ariaei#
declare ma##a? : real; AA ma##a inicial do material radioatio
declare ma##a= : real; AA ma##a final do material radioatio
declare tem:o : real; AA tem:o em #eg(ndo#
declare Kora# : inteiro; AA a# Kora# de tem:o
declare min(to# : inteiro; AA o# min(to# de tem:o
declare #eg(ndo# : inteiro; AA o# #eg(ndo# de tem:o
AA inicialiVacao do# ac(m(ladore# e con#tante#
tem:o :& 9;
Kora# :& 9;
min(to# :& 9;
#eg(ndo# :& 9;
leia ( "informe a ma##a inicial (em grama#): ", ma##a? );
ma##a= :& ma##a?;
re:ita ate-(e ( ma##a= $ 9RJ )
{
ma##a= :& ma##a= A !;
tem:o :& tem:o , J9;
'
AA tran#formando o tem:o em Kora#, min(to# e #eg(ndo#
#eg(ndo# :& tem:o;
en-(anto ( #eg(ndo# 6& N9 )
{
min(to# :& min(to# , 1;
#e ( min(to# && N9 )
{
Kora# :& Kora# , 1;
min(to# :& 9;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
0'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
#eg(ndo# :& #eg(ndo# M N9;
'
AA e#creendo o# re#(ltado#
e#crea ( "Ma##a inicial (em grama#): ", ma##a? );
e#crea ( "Ma##a final (em grama#): ", ma##a= );
e#crea ( ">em:o decorrido em #eg(ndo#: ", tem:o );
e#crea ( Kora#, " Kora#, ", min(to#, "min(to# e ",#eg(ndo#, " #eg(ndo#" );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
0,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'@
DeseEa;se fa)er um levantamento a respeito da aus*ncia de alunos a primeira prova
de programao de computadores para cada uma das &< turmas e$istentes' Para cada
turma J fornecido um conEunto de valores+ sendo #ue os dois primeiros valores do
conEunto corresponde a identificao da turma 2A+ Q+ C '''6 e ao nHmero de alunos
matriculados+ e os demais valores deste conEunto contem o nHmero de matricula do
aluno e a letra A ou P para o caso de o aluno estar ausente ou presente+
respectivamente' Fa)er um algoritmo #ueB
a6 para cada turma+ calcule a porcentagem de aus*ncia e escreva a identificado da
turma e a porcentagem calculada'
F6 determine e escreva #uantas turmas tiveram porcentagem de aus*ncia superior a
>S'
algoritmo( )
{
AA declaracao da# ariaei#
declare >5RMA : caracter; AA identificacao da t(rma
declare A45NO8 : inteiro; AA n(mero de al(no# matric(lado# na t(rma
declare MA>R?C54A : cadeia; AA n(mero de matric(la do al(no
declare CLAMABA : caracter; AA A o( 7 (a(#ente o( :re#ente)
declare T5AN>SA : inteiro; AA -(antidade de al(no# a(#ente# :or t(rma
declare T5AN>S7 : inteiro; AA -tidade de al(no# :re#ente# :or t(rma
declare 7ORCEN> : real; AA :orcentagem de a(#encia :or t(rma
declare NS>5R: inteiro; AA contador :ara o n(mero de t(rma#
declare NSA45 : inteiro; AA cont :ara o n(mero de al(no# :or t(rma
declare > : inteiro; AA contador :ara t(rma# com a(#encia 6 JU
AA inicialiVacao do# ac(m(ladore# gerai#
NS>5R :& 9; AA contador ate 1E t(rma#
> :& 9; AA total de t(rma# com a(#encia maior -(e JU
re:ita ate-(e ( NS>5R && 1E )
{
AA inicialiVacao do# acm(ladore# :or t(rma#
T5AN>SA :& 9;
T5AN>S7 :& 9;
NSA45 :& 9; AA contador ate o n(mero de al(no# da t(rma
leia ( "informe a t(rma: ", >5RMA );
leia ( "informe o n(mero de al(no# matric(lado#: ", A45NO8 );
re:ita ate-(e ( NSA45 && A45NO8 )
{
leia ( "informe o n(mero de matric(la: ", MA>R?C54A );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
0-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
leia ( "CKamada (7AA): ", CLAMABA );
#e ( CLAMABA && P7P )
{
T5AN>S7 :& T5AN>S7 , 1;
'
#enao
{
#e ( CLAMABA && PAP )
{
T5AN>SA :& T5AN>SA , 1;
'
'
NSA45 :& NSA45 , 1;
'
7ORCEN> :& 199 @ ( T5AN>SA A NSA45 );
e#crea ( ">(rma: ", >5RMA, "U falta#: ", 7ORCEN> );
#e ( 7ORCEN> 6 J )
{
> & > , 1;
'
NS>5R :& NS>5R , 1; AA :ro/ima t(rma
'
e#crea ( "N(mero de t(rma# com a(#encia maior -(e JU: ", > );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
0.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'C
Dma certa firma fe) uma pes#uisa de mercado para saFer se as pessoas gostaram ou
no de um novo produto lanado no mercado' Para isso+ forneceu o se$o do
entrevistado e sua resposta 2sim ou no6' 1aFendo;se #ue foram entrevistados ,'===
pessoas+ fa)er um algoritmo #ue calcule e escrevaB
a6 o nHmero de pessoas #ue responderam sim
F6 o nHmero de pessoas #ue responderam no
c6 a porcentagem de pessoas do se$o feminino #ue responderam sim
d6 a porcentagem de pessoas do se$o masculino #ue responderam no
algoritmo( )
{
AA declaracao da# ariaei#
declare LOMEN8 : inteiro; AA n(mero de Komen# entrei#tado#
declare M54LERE8 : inteiro; AA n(mero de m(lKere# entrei#tada#
declare RS8?M : inteiro; AA n(mero de :e##oa# -(e re#:onderam #im
declare RSNAO : inteiro; AA n(mero de :e##oa# -(e re#:onderam n3o
declare RE87 : caracter; AA re#:o#ta #im o( nao (8 o( N, # o( n)
declare 8E)O : caracter; AA #e/o do entrei#tado (M o( =, m o( f)
declare RS8?MSM : inteiro; AA contador de re#:o#ta# #im de m(lKer
declare RSNAOSL : inteiro; AA contador de re#:o#ta# nao de Komem
declare N : inteiro; AA contador :ara o n(mero de :e##oa#
declare 7S8?MSM : real; AA :orcentagem de re#:o#ta# #im de m(lKer
declare 7SNAOSL : real; AA :orcentagem de re#:o#ta# nao de Komem
declare EN>REI?8>ABO8 : inteiro;
AA inicialiVacao do# ac(m(ladore# gerai#
N :& 9; A@ contador ate !999 :e##oa# @A
LOMEN8 :& 9;
M54LERE8 :& 9;
RS8?M :& 9;
RSNAO :& 9;
RS8?MSM :& 9;
RSNAOSL :& 9;
EN>REI?8>ABO8 :& E;
re:ita ate-(e ( N && EN>REI?8>ABO8 )
{
leia ( "informe o #e/o: ", 8E)O );
leia ( "go#to( do :rod(to (8AN): ", RE87 );
AA erifica #e a :e##oa e Komem o( m(lKer
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
0/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#e ( 8E)O && PMP . 8E)O && PmP )
{
LOMEN8 :& LOMEN8 , 1;
#e ( RE87 && PNP . RE87 && PnP )
{
RSNAOSL :& RSNAOSL , 1;
'
'
#enao
{
#e ( 8E)O && P=P . 8E)O && PfP )
{
M54LERE8 :& M54LERE8 , 1;
#e ( RE87 && P8P . RE87 && P#P )
{
RS8?MSM :& RS8?MSM , 1;
'
'
'
AA erifica #e a re#:o#ta da :e##oa e #im o( n3o
#e ( RE87 && P8P . RE87 && P#P )
{
RS8?M :& RS8?M , 1;
'
#enao
{
#e ( RE87 && PNP . RE87 && PnP )
{
RSNAO :& RSNAO , 1;
'
'
N :& N , 1;
'
AA calc(lo do# :orcent(ai#
7S8?MSM :& 199 @ ( RS8?MSM A EN>REI?8>ABO8 );
7SNAOSL :& 199 @ ( RSNAOSL A EN>REI?8>ABO8 );
AA re#(ltado#
e#crea ( "-(antidade de :e##oa# -(e re#:onderam #im: ", RS8?M );
e#crea ( "-(antidade de :e##oa# -(e re#:onderam nao: ", RSNAO );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
00
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( "U de m(lKere# -(e re#:onderam #im: ", 7S8?MSM );
e#crea ( "U de Komen# -(e re#:onderam nao: ", 7SNAOSL );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
01
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'I
Foi feita uma pes#uisa para determinar o %ndice de mortalidade infantil em certo
per%odo' Fa)er um algoritmo #ueB
leia inicialmente o nHmero de crianas nascidas no per%odo
leia+ em seguida+ um numero indeterminado de linhas+ contendo+ cada uma+ o
se$o de uma criana morta 2masculino+ feminino6 e o numero de meses de vida
da criana' A Hltima linha+ #ue no entrar nos clculos contem no lugar do se$o a
palavra Tva)ioT'
Determine e imprimaB
a6 a porcentagem de crianas mortas no per%odo
F6 a porcentagem de crianas do se$o masculino mortas no per%odo
c6 a porcentagem de crianas #ue viveram ,< meses ou menos no per%odo
algoritmo()
{
AA declaracao da# ariaei#
declare NA8C?BA8 : inteiro; AA n(mero de crianca# na#cida# no :eriodo
declare 8E)O : cadeia; AA #e/o da crianca
declare ?BABE : inteiro; AA n(mero de me#e# de ida da crianca
declare 7SMOR>O8 : real; AA U de crianca# morta# no :eriodo
declare 7SMOR>O8SM : real; AA U de crianca# morta# no :eriodo do #e/o
AA ma#c(lino
declare 7S!EME8E8 : real; AA U de crianca# -(e ieram !E me#e#
declare NSMOR>O8 : inteiro; AA n(mero de crianca# morta# no :eriodo
declare NSMOR>O8SM : inteiro;
AA n(mero de crianca# morta# no :eriodo do #e/o ma#c(lino
declare NS!EME8E8 : inteiro;
AA n(mero de crianca# -(e ieram !E me#e# o( meno#
AA inicialiVacao do# ac(m(ladore# e contadore#
NSMOR>O8 :& 9;
NSMOR>O8SM :& 9;
NS!EME8E8 :& 9;
leia ( "informe o n(mero de crianca# na#cida#: ", NA8C?BA8 );
re:ita ate-(e ( 8E)O && "aVio" )
{
leia ( "informe o #e/o da crianca: ", 8E)O );
#e ( 8E)O $6 "aVio" )
{
leia ( "informe o tem:o de ida (em me#e#): ", ?BABE );
NSMOR>O8 :& NSMOR>O8 , 1;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
02
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA crianca# do #e/o ma#c(lino
#e ( 8E)O && "ma#c(lino" )
{
NSMOR>O8SM :& NSMOR>O8SM , 1;
'
AA crianca# -(e ieram !E me#e# o( meno#
#e ( ?BABE $& !E )
{
NS!EME8E8 :& NS!EME8E8 , 1;
'
'
'
AA calc(lo da# :orcentagen#
7SMOR>O8 :& 199 @ ( NSMOR>O8 A NA8C?BA8 );
7SMOR>O8SM :& 199 @ ( NSMOR>O8SM A NA8C?BA8 );
7S!EME8E8 :& 199 @ ( NS!EME8E8 A NA8C?BA8 );
AA #aida do# re#(ltado#
e#crea ( "U de crianca# morta# no :eriodo: ", 7SMOR>O8 );
e#crea ( "U de crianca# morta# no :eriodo do #e/o ma#c(lino: ",
7SMOR>O8SM);
e#crea ( "U de crianca# -(e ieram ate !E me#e#: ", 7S!EME8E8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
13
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&=
Foi feita uma pes#uisa de audi*ncia de canal de TP em vrias casas de uma certa
cidade+ num determinado dia' Para cada casa visitada+ J fornecido o nHmero do canal
2<+>+@+&,6 e o numero de pessoas #ue o estavam assistindo na#uela casa' 1e a
televiso estivesse desligada+ nada era anotado+ ou seEa+ esta casa no entrava na
pes#uisa' Fa)er um algoritmo #ueB
leia um numero indeterminado de dados+ sendo #ue o flag corresponde ao nHmero
de canal igual a )ero'
calcule a porcentagem de audi*ncia para cada emissora
escreva o numero do canal e a sua respectiva porcentagem
algoritmo()
{
AA declaracao da# ariaei#
declare CANA4 : inteiro; AA n(mero do canal
declare E87EC>ABORE8 : inteiro;
AA n(mero de :e##oa# -(e e#taam a##i#tindo
declare 7SCANA4E : real; AA :orcentagem de a(diencia do canal E
declare 7SCANA4J : real; AA :orcentagem de a(diencia do canal J
declare 7SCANA4W : real; AA :orcentagem de a(diencia do canal W
declare 7SCANA41! : real; AA :orcentagem de a(diencia do canal 1!
declare NSCANA4E : inteiro; AA n(mero de :e##oa# endo o canal E
declare NSCANA4J : inteiro; AA n(mero de :e##oa# endo o canal J
declare NSCANA4W : inteiro; AA n(mero de :e##oa# endo o canal W
declare NSCANA41! : inteiro; AA n(mero de :e##oa# endo o canal 1!
declare 7E88OA8 : inteiro; AA total de :e##oa#
AA inicialiVacao do# ac(m(ladore# e contadore#
NSCANA4E :& 9;
NSCANA4J :& 9;
NSCANA4W :& 9;
NSCANA41! :& 9;
7E88OA8 :& 9;
CANA4 :& 1; AA a:ena# :ara forcar a entrada no laco :ela 1X eV
re:ita ate-(e ( CANA4 && 9 )
{
leia ( "informe o canal -(e e#taa #endo a##i#tido: ", CANA4 );
#e ( CANA4 $6 9 )
{
leia ( "-(anta# :e##oa# e#taam a##i#tindo: ", E87EC>ABORE8 );
7E88OA8 :& 7E88OA8 , E87EC>ABORE8;
#e ( CANA4 && E )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
1&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
{
NSCANA4E :& NSCANA4E , E87EC>ABORE8;
'
#enao #e ( CANA4 && J )
{
NSCANA4J :& NSCANA4J , E87EC>ABORE8;
'
#enao #e ( CANA4 && W )
{
NSCANA4W :& NSCANA4W , E87EC>ABORE8;
'
#enao #e ( CANA4 && 1! )
{
NSCANA41! :& NSCANA41! , E87EC>ABORE8;
'
'
'
AA calc(lo da# :orcentagen# da# emi##ora#
7SCANA4E :& 199 @ ( NSCANA4E A 7E88OA8 );
7SCANA4J :& 199 @ ( NSCANA4J A 7E88OA8 );
7SCANA4W :& 199 @ ( NSCANA4W A 7E88OA8 );
7SCANA41! :& 199 @ ( NSCANA41! A 7E88OA8 );
AA re#(ltado#
e#crea ( "U canal E: ", 7SCANA4E );
e#crea ( "U canal J: ", 7SCANA4J );
e#crea ( "U canal W: ", 7SCANA4W );
e#crea ( "U canal 1!: ", 7SCANA41! );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
1'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&&
Dma universidade deseEa fa)er um levantamento a respeito de seu concurso
vestiFular' Para cada curso J fornecido o seguinte conEunto de valores'
cdigo do curso
numero de vagas
numero de candidatos do se$o masculino
numero de candidatos do se$o feminino
G Hltimo conEunto+ para indicar fim de dados+ contem o cdigo do curso igual a )ero'
Fa)er um algoritmo #ueB
calcule e escreva+ para cada curso+ o nHmero de candidatos por vaga a
porcentagem de candidatos do se$o feminino 2escreva tamFJm o cdigo
correspondente do curso6
determine o maior numero de candidatos por vaga e escreva esse numero
Euntamente com o cdigo do curso correspondente 2supor #ue no haEa empate6
calcule e escreva o total de candidatos
algoritmo()
{
AA declaracao da# ariaei#
declare C5R8O: inteiro; AA codigo do c(r#o
declare IAGA8 : inteiro; AA n(mero de aga# :ara cada c(r#o
declare MA8C: inteiro; AA n(mero de candidato# do #e/o ma#c(lino
declare =EM?: inteiro; AA n(mero de candidato# do #e/o feminino
declare 7ORSIAGA: real; AA n(mero de candidato# :or aga :or c(r#o
declare 7ORSC5R8O: real; AA n(mero de candidato# :or c(r#o
declare 7CS=EM? : real; AA U de candidato# do #e/o feminino
declare MA?ORS7ORSIAGA : real;
AA maior n(mero de candidato# :or aga
declare C5R8OSMA?OR : inteiro; AA n(mero do c(r#o de MA?ORS7ORSIAGA
declare >O>A4SCANB : inteiro; AA n(mero total de candidato#
AA inicialiVacao do# ac(m(ladore#
>O>A4SCANB :& 9; AA ac(m(lador do total de candidato#
AA inicialiVacao da# condicoe# iniciai#
MA?ORS7ORSIAGA :& 9; AA alor inicial :ara 1X com:aracao
C5R8O :& 1; AA a:ena# :ara forcar a entrada no laco a 1X eV
re:ita ate-(e ( C5R8O && 9 )
{
leia ( "informe o codigo do c(r#o: ", C5R8O );
#e ( C5R8O $6 9 )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
1,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
{
leia ( "n(mero de aga#: ", IAGA8 );
leia ( "n(mero de candidato# do #e/o ma#c(lino: ", MA8C );
leia ( "n(mero de candidato# do #e/o feminino: ", =EM? );
7ORSC5R8O :& MA8C , =EM?;
7ORSIAGA :& 7ORSC5R8O A IAGA8;
7CS=EM? :& 199 @ ( =EM? A 7ORSC5R8O );
#e ( 7ORSIAGA 6 MA?ORS7ORSIAGA )
{
MA?ORS7ORSIAGA :& 7ORSIAGA;
C5R8OSMA?OR :& C5R8O;
'
>O>A4SCANB :& >O>A4SCANB , 7ORSC5R8O;
e#crea ( "c(r#o: ", C5R8O );
e#crea ( "candidato# A aga: ", 7ORSIAGA );
e#crea ( "U feminino: ", 7CS=EM? );
'
'
e#crea ( "total de candidato#: ", >O>A4SCANB );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
1-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&,
G sistema de avaliao de uma determinada disciplina oFedece aos seguintes critJriosB
durante o semestre so dadas tr*s notas
a nota final e oFtida pela media aritmJtica das notas dadas durante o curso
J considerado aprovado o aluno #ue oFtiver a nota final superior ou igual a ?= e
#ue tiver comparecido a um m%nimo de <= aulas'
Fa)er um algoritmo #ueB
a6 leia um conEunto de dados contendo o numero de matr%cula+ as tr*s notas e a
fre#u*ncia 2nHmero de aulas fre#uentadas6 de &== alunos'
F6 calcule
a nota final de cada aluno
a maior e a menor nota da turma
a nota media da turma
total de alunos reprovados
a porcentagem de alunos reprovados por fre#uencia
c6 escreva
para cada aluno+ o numero de matricula+ a fre#uencia+ a nota final e o cdigo
2aprovado ou reprovado6
todos os itens #ue foram calculados na letra F'
algoritmo()
{
AA declaracao da# ariaei#
declare MA>R?C54A: inteiro; AA o n(mero de matric(la do al(no
declare N1,N!,N",N=: real; AA cada (ma da# nota# do al(no
declare =RET5ENC?A: inteiro; AA fre-(encia do al(no em n(mero de a(la#
declare MA?OR: real; AA maior nota da t(rma
declare MENOR: real; AA menor nota da t(rma
declare MEB?A: real; AA nota media da t(rma
declare RE7ROIABO8: inteiro; AA total de al(no# re:roado#
declare RE7ROS=RE: inteiro; AA total de al(no# re:roado# :or
fre-(encia
declare A45NO8: inteiro; AA total de al(no#
declare 7CSRE7ROS=RE: real;
AA :orcentagem de re:roado# :or fre-(encia
declare RE854>ABO: cadeia; AA "a:roado" o( "re:roado"
AA inicialiVacao do# ac(m(ladore#
A45NO8 :& 9; AA ac(m(lador do total de al(no#
RE7ROS=RE :& 9; AA ac(m(lador de al(no# re:roado# :or fre-(encia
MEB?A :& 9;
RE7ROIABO8 :& 9;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
1.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA inicialiVacao da# condicoe# iniciai#
MA?OR :& M1; AA alor inicial :ara 1X com:aracao, toda# a# nota# #erao
AA maiore# -(e 9 (o alor inicial dee #er :elo meno# 1
AA aDai/o do limite inferior)
MENOR :& 119; AA alor inicial :ara 1X com:aracao, toda# a# nota# #er3o
AA menore# -(e 199 (o alor inicial dee :elo 1 acima do
AA limite #(:erior
re:ita ate-(e ( A45NO8 && 199 )
{
leia ( "informe o n(mero de matric(la: ", MA>R?C54A );
leia ( "informe a Nota 1: ", N1 );
leia ( "informe a Nota !: ", N! );
leia ( "informe a Nota ": ", N" );
leia ( "informe a =re-(encia: ", =RET5ENC?A );
N= :& (N1 , N! , N") A ";
#e ( N= 6 MA?OR )
{
MA?OR :& N=;
'
#e ( N= $ MENOR )
{
MENOR :& N=;
'
MEB?A :& MEB?A , N=;
AA erificacao da a:roacao o( re:roacao
#e ( N= 6& N9 % =RET5ENC?A 6& E9 )
{
RE854>ABO :& "A7ROIABO";
'
#enao
{
RE854>ABO :& "RE7ROIABO";
RE7ROIABO8 :& RE7ROIABO8 , 1;
#e ( =RET5ENC?A $ E9 )
{
RE7ROS=RE :& RE7ROS=RE , 1;
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
1/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
AA #aida do# dado# de cada al(no
e#crea ( "N(mero de matric(la: ", MA>R?C54A );
e#crea ( "=re-(encia: ", =RET5ENC?A );
e#crea ( "Nota final: ", N= );
e#crea ( "Re#(ltado: ", RE854>ABO );
A45NO8 :& A45NO8 , 1;
'
AA calc(lo da nota media da t(rma
MEB?A :& MEB?A A A45NO8;
AA calc(lo da :orcentagem de al(no# re:roado# :or fre-(encia
7CSRE7ROS=RE :& RE7ROS=RE A A45NO8;
A@ o( :& RE7ROS=RE A RE7ROIABO8 @A
AA #aida do# re#(ltado# finai#
e#crea ( "Maior nota: ", MA?OR );
e#crea ( "Menor nota: ", MENOR );
e#crea ( "Media da t(rma: ", MEB?A );
e#crea ( ">otal de al(no# re:roado#: ", RE7ROIABO8 );
e#crea ( "U de re:roado# :or fre-(encia: ", 7CSRE7ROS=RE );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
10
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&(
DeseEa;se fa)er uma pes#uisa a respeito do consumo mensal de energia elJtrica em
uma determinada cidade' Para isso+ so fornecidos os seguintes dadosB
preo do UOh consumido
numero do consumidor
#uantidade de UOh consumido durante o m*s
cdigo do tipo de consumidor 2residencial+ comercial+ industrial6'
numero do consumidor igual a )ero deve ser usado como flag'
Fa)er um algoritmo #ueB
leia os dados descritos acima e
calcule
a6 para cada consumidor o total a pagar
F6 o maior consumo verificado
c6 o menor consumo verificado
d6 o total do consumo para cada um dos tres tipos de consumidores
e6 a media geral de consumo
escreva
a6 para cada consumidor+ o total a pagar
F6 o #ue foi calculado nos itens acima
algoritmo()
{
AA declaracao da# ariaei#
declare CON85M?BOR: inteiro; AA n(mero de identificacao do con#(midor
declare 7RECO: real; AA :reco do YZK
declare CON85MO: real; AA con#(mo em YZK no m[#
declare >?7O: caracter; AA ti:o de con#(midor (c,r,i)
declare MA?OR: real; AA maior con#(mo erificado
declare MENOR: real; AA menor con#(mo erificado
declare MEB?A: real; AA media geral de con#(mo
declare >O>A4SR: real; AA total de con#(mo :ara ti:o re#idencial
declare >O>A4SC: real; AA total de con#(mo :ara ti:o comercial
declare >O>A4S?: real; AA total de con#(mo :ara ti:o ind(#trial
declare N: inteiro; AA n(mero de con#(midore#
declare AS7AGAR: real; AA total a :agar :elo con#(midor
AA inicialiVacao do# ac(m(ladore#
>O>A4SR :& 9; AA ac(m(lador do total :ara ti:o re#idencial
>O>A4SC :& 9; AA ac(m(lador do total :ara ti:o comercial
>O>A4S? :& 9; AA ac(m(lador do total :ara ti:o ind(#trial
N :& 9;
AA inicialiVacao da# condicoe# iniciai#
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
11
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
MA?OR :& M1; A@ o alor inicial dee #er aDai/o do limite inferior) @A
MENOR :& 1999; A@ o alor inicial dee #er acima do limite #(:erior) @A
AA incialiVacao da# condicoe# de contorno
CON85M?BOR :& 1; AA a:ena# :ara forcar a entrada inicial no laco
re:ita ate-(e ( CON85M?BOR && 9 )
{
leia ( "informe o n(mero do con#(midor: ", CON85M?BOR );
#e ( CON85M?BOR && 9 )
{
interrom:a;
'
leia ( "informe o :reco do YZK: ", 7RECO );
leia ( "informe o con#(mo men#al: ", CON85MO );
leia ( "informe o ti:o de con#(midor (r,c,i): ", >?7O );
AS7AGAR :& CON85MO @ 7RECO;
AA de#coDre alore# ma/imo# e minimo#
#e ( CON85MO 6 MA?OR )
{
MA?OR :& CON85MO;
'
#e ( CON85MO $ MENOR )
{
MENOR :& CON85MO;
'
AA erificacao do ti:o de con#(midor
#elecao
{
ca#o ( >?7O && PRP . >?7O && PrP )
{
>O>A4SR :& >O>A4SR , CON85MO;
'
ca#o ( >?7O && PCP . >?7O && PcP )
{
>O>A4SC :& >O>A4SC , CON85MO;
'
ca#o ( >?7O && P?P . >?7O && PiP )
{
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
12
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
>O>A4S? :& >O>A4S? , CON85MO;
'
'
AA #aida do# dado# de cada al(no
e#crea ( "N(mero do con#(midor: ", CON85M?BOR );
e#crea ( ">otal a :agar: ", AS7AGAR );
N :& N , 1;
'
AA calc(lo do con#(mo medio geral
MEB?A :& (>O>A4SR , >O>A4SC , >O>A4S?) A N;
AA #aida do# re#(ltado# finai#
e#crea ( "Maior con#(mo: ", MA?OR );
e#crea ( "Menor con#(mo: ", MENOR );
e#crea ( "Media de con#(mo: ", MEB?A );
e#crea ( ">otal re#idencial: ", >O>A4SR );
e#crea ( ">otal comercial: ", >O>A4SC );
e#crea ( ">otal ind(#trial: ", >O>A4S? );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
23
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&<
Tem;se uma estrada ligando vrias cidades' Cada cidade tem seu marco #uilomJtrico'
Fa)er um algoritmo #ueB
leia vrios pares de dados+ contendo cada par os valores dos marcos #uilomJtricos+
em ordem crescente+ de duas cidades' G Hltimo par contem estes dois valores
iguais
calcule os tempos decorridos para percorrer a distancia entre duas cidades com as
seguintes velocidadesB ,=+ (=+ <=+ >=+ ?=+ @= e C= UmLh+ saFendo;se #ue t 7 eLv+
onde t 7 tempo+ e 7 espao e v 7 velocidade
escreva os marcos #uilomJtricos+ a velocidade e o tempo decorrido entre as duas
velocidades+ apenas #uando este tempo for superior a , horas'
algoritmo( )
{
AA declaracao da# ariaei#
declare >: real; AA tem:o em Kora# entre d(a# cidade#
declare E: real; AA di#tancia em Ym entre d(a# cidade#
declare I: real; AA elocidade de :erc(r#o entre a# d(a# cidade#
declare \M1: real; AA marco -(ilometrico 1
declare \M!: real; AA marco -(ilometrico !
AA incialiVacao da# condicoe# de contorno
AA a:ena# :ara forcar a entrada inicial no laco
\M1 :& 9;
\M! :& 1;
re:ita ate-(e ( \M1 && \M! )
{
AA leit(ra do# marco# -(ilometrico#
leia ( "informe o marco -(ilometrico 1: ", \M1 );
leia ( "informe o marco -(ilometrico !: ", \M! );
#e ( \M1 && \M! )
{
interrom:a;
'
AA calc(lo da di#tancia entre a# d(a# cidade# (o( o# doi# marco#)
E :& \M! M \M1;
AA calc(lo do tem:o de :erc(r#o entre o# doi# marco#
AA com a# aria# elocidade#
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
2&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
I :& !9;
re:ita ate-(e ( I 6 <9 )
{
> :& E A I;
#e ( > 6 ! )
{
e#crea ( "Entre ", \M1, " e ", \M!,
" a ", I, " YmAK", " ga#to( ", >, " Kora#" );
'
I :& I , 19;
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
2'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&>
Gs Fancos atuali)am diariamente as contas de seus clientes' Essa atuali)ao envolve
a analise dos depsitos e retiradas de cada conta' :uma conta de Falano m%nimo+
uma ta$a de servio J dedu)ida se a conta cai aFai$o de uma certa #uantia
especificada' 1uponha #ue uma conta particular comece o dia com um Falano de RV
?=+==' G Falano m%nimo e$igido J RV (=+== e se o Falano de fim de dia dor menor
do #ue isso+ uma ta$a e redu)ida da conta' A fim de #ue essa atuali)ao fosse feita
utili)ando computador+ e fornecido o seguinte conEunto de dadosB
a primeira linha contem o valor do Falano m%nimo dirio+ #uantidade de
transaes e ta$a de servio
as linhas seguintes contem numero da conta+ valor da transao e o cdigo da
transao 2depsito ou retirada6
Escrever um algoritmo #ueB
calcule o Falano 2saldoLdJFito6 da conta do dia
escreva+ para cada conta+ o seu numero e o Falano calculado' 1e no houver
fundos+ imprima o numero da conta e a mensagem T:AG WA FD:DG1T'
algoritmo()
{
AA declaracao da# ariaei#
declare M?N?MO: real; AA Dalanco minimo diario
declare >RAN8: inteiro; AA -(antidade de tran#acoe# do dia
declare >A)A: real; AA alor da ta/a de #erico
declare CON>A: inteiro; AA n(mero da conta
declare IA4OR: real; AA alor da tran#acao
declare >?7O: caracter; AA ti:o tran#acao (dMde:o#ito, rMretirada)
declare 8A4BO: real; AA #aldo da conta
8A4BO :& 9;
AA leit(ra da# condicoe# do Danco
leia ( "informe o alor do Dalanco minimo diario: ", M?N?MO );
leia ( "informe a -(antidade de tran#acoe#: ", >RAN8 );
leia ( "informe o alor da ta/a de #erico U: ", >A)A );
re:ita ate-(e ( >RAN8 && 9 )
{
AA leit(ra do# alore# da# conta#
leia ( "informe o n(mero da conta: ", CON>A );
leia ( "informe o alor da tran#acao: ", IA4OR );
leia ( "informe o ti:o da tran#acao (dAr): ", >?7O );
AA erifica #e e (ma o:eracao de de:o#ito o( retirada
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
2,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#e ( >?7O && PdP . >?7O && PBP )
{
8A4BO :& 8A4BO , IA4OR;
'
#enao
{
#e ( >?7O && PrP . >?7O && PRP )
{
8A4BO :& 8A4BO M IA4OR;
'
'
AA erifica #it(acao do Dalanco minimo
#e ( 8A4BO $ M?N?MO )
{
8A4BO :& 8A4BO M 8A4BO @ >A)A A 199;
e#crea ( "Conta ", CON>A , " &6 NAO LA =5NBO8" );
'
#enao
{
e#crea ( "Conta ", CON>A, " &6 R] ", 8A4BO );
'
>RAN8 :& >RAN8 M 1;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
2-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&?
Dma empresa decidiu fa)er um levantamento em relao aos candidatos #ue se
apresentarem para preenchimento de vagas no seu #uadro de funcionrios+ utili)ando
processamento eletrKnico' 1upondo #ue voc* seEa o programador encarregado desse
levantamento+ fa)er um algoritmo #ueB
leia um conEunto de dados para cada candidato contendoB
a6 numero de inscrio do candidato
F6 idade
c6 se$o 2masculino+ feminino6
d6 e$peri*ncia no servio 2sim+ no6
G Hltimo conEunto contem o numero de inscrio do candidato igual a )ero'
calcule
a6o nHmero de candidatos do se$o feminino
F6o nHmero de candidatos do se$o masculino
c6idade mJdia dos homens #ue E tem e$peri*ncia no servio
d6porcentagem dos homens com mais de <> anos entre o total de homens
e6nHmero de mulheres #ue tem idade inferior a (> anos e com e$peri*ncia no
servio
f6a menor idade entre as mulheres #ue E tem e$peri*ncia no servio
escreva
a6 o nHmero de inscrio das mulheres pertencentes ao grupo descrito no item e6
F6 o #ue foi calculado em cada item acima especificado
algoritmo()
{
declare ?N8CR?CAO:inteiro; AA n(mero de in#cricao do candidato
declare ?BABE:inteiro; AA idade do candidato
declare 8E)O:caracter; AA #e/o do candidato (m,f,M,=)
declare E)7ER?ENC?A:caracter; AA Ca tem e/:eriencia (#,n,8,N)
declare T>BS=EM:inteiro; AA n(mero de candidato# do #e/o feminino
declare T>BSMA8:inteiro; AA n(mero de candidato# do #e/o ma#c(lino
declare ?BSMEB?A:inteiro;
AA idade media do# Komen# -(e Ca tem e/:eriencia
declare 8S?BABE:inteiro;
AA #oma da# idade# do# Komen# com e/:eriencia
declare LOMSE)7:inteiro; AA n(mero de Komen# com e/:eriencia
declare 7ORCEN>:real;
AA :orcentagem de Komen# com mai# de EJ ano#
declare LOMSEJ:inteiro; AA n(mero de Komen# com mai# de EJ ano#
declare ?BSMENOR:inteiro;
AA menor idade entre a# m(lKere# com e/:eriencia
declare M54SE)7:inteiro;
AA n(mero de m(lKere# menor de "J e com e/:
AA inicialiVacao do# ac(m(ladore#
T>BS=EM :& 9;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
2.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
T>BSMA8 :& 9;
8S?BABE :& 9;
LOMSE)7 :& 9;
LOMSEJ :& 9;
AA incialiVacao da# condicoe# limite#
?BSMENOR :& 199; AA a menor idade
AA incialiVacao da condicao de contorno
?N8CR?CAO :& 1;
en-(anto ( ?N8CR?CAO $6 9 )
{
AA receDe o n(mero de in#cricao
leia ( "informe o n(mero de in#cricao: ", ?N8CR?CAO );
#e ( ?N8CR?CAO $6 9 )
{
AA entrada da# informacoe# com:lementare#
leia ( "informe a idade: ", ?BABE );
leia ( "informe o #e/o: ", 8E)O );
leia ( "Ca tem e/:eriencia (#An): ", E)7ER?ENC?A );
AA calc(lo do n(mero de candidato# em f(ncao do #e/o
#e ( 8E)O && PMP . 8E)O && PmP )
{
T>BSMA8 :& T>BSMA8 , 1;
AA erifica #e Ca tem e/:eriencia
#e ( E)7ER?ENC?A && P8P . E)7ER?ENC?A && P#P )
{
LOMSE)7 :& LOMSE)7 , 1;
8S?BABE :& 8S?BABE , ?BABE;
'
AA erifica #e Ca tem mai# de EJ ano#
#e ( ?BABE 6 EJ )
{
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
2/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
LOMSEJ :& LOMSEJ , 1;
'
'
#enao
{
#e ( 8E)O && P=P . 8E)O && PfP )
{
T>BS=EM :& T>BS=EM , 1;
AA m(lKere# com e/:eriencia
#e ( E)7ER?ENC?A && P8P . E)7ER?ENC?A && P#P )
{
AA a menor idade
#e ( ?BSMENOR $ ?BABE )
{
?BSMENOR :& ?BABE;
'
AA m(lKere# com meno# de "J ano#
#e ( ?BABE $ "J )
{
M54SE)7 :& M54SE)7 , 1;
e#crea ( "m(lKer e/:eriente: ",
?N8CR?CAO );
'
'
'
'
'
'
AA calc(lo da idade media do# Komen#
#e ( LOMSE)7 $6 9 )
{
?BSMEB?A :& 8S?BABE A LOMSE)7;
'
#enao
{
?BSMEB?A :& 9;
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
20
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA calc(lo da :orcentagem do# Komen#
#e ( T>BSMA8 $6 9 )
{
7ORCEN> :& LOMSEJ A T>BSMA8;
'
#enao
{
7ORCEN> :& 9;
'
AA #aida do# re#(ltado#
e#crea ( "n(mero de candidato# do #e/o feminino: ", T>BS=EM );
e#crea ( "n(mero de candidato# do #e/o ma#c(lino: ", T>BSMA8 );
e#crea ( "idade media do# Komen# 6 EJ e com e/:eriencia: ", ?BSMEB?A );
e#crea ( "n(mero de m(lKere# com $ "J e com e/:eriencia: ", M54SE)7 );
e#crea ( "menor idade entre m(lKere# com e/:eriencia: ", ?BSMENOR );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
21
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&@
Dma companhia de teatro planeEa dar uma sJrie de espetculos' A direo calcula #ue
a V>+== o ingresso+ sero vendidos &,= ingressos+ e as despesas montaro em
V,==+==' A uma diminuio de V=+>= no preo dos ingressos espera;se #ue haEa um
aumento de ,? ingressos vendidos'
Fa)er um algoritmo #ue escreva uma taFela de valores do lucro esperado em funo
do preo do ingresso+ fa)endo;se variar este preo de V>+== a V&+== de V=+>= em
V=+>=' Escreva+ ainda+ o lucro m$imo esperado+ o preo e o nHmero de ingressos
correspondentes'
algoritmo()
{
declare 45CRO:real; AA l(cro e#:erado
declare 7RECO:real; AA :reco do ingre##oo
declare ?NGRE88O8SMA):real; AA l(cro ma/imo e#:erado
declare ?NGRE88O8:inteiro; AA n(mero de ingre##o# corre#:ondente#
declare BE87E8A:real; AA alor da# de#:e#a#
declare 7RECOSMA):real;
declare 45CROSMA):real;
AA inicialiVacao do# alore# iniciai#
7RECO :& JR9;
?NGRE88O8 :& 1!9;
BE87E8A :& !99;
AA inicialiVacao da# condicoe# limite#
45CROSMA) :& 9;
AA re#ol(cao #(:ondo -(e a# de#:e#a# :ermanecam con#tante#
re:ita ate-(e ( 7RECO $ 9RJ9 )
{
45CRO :& ( ?NGRE88O8 @ 7RECO ) M BE87E8A;
e#crea ( "7reco: ", 7RECO,
" ?ngre##o#: ", ?NGRE88O8, " 4(cro: ", 45CRO );
#e ( 45CRO 6 45CROSMA) )
{
?NGRE88O8SMA) :& ?NGRE88O8;
7RECOSMA) :& 7RECO;
45CROSMA) :& 45CRO;
'
7RECO :& 7RECO M 9RJ;
?NGRE88O8 :& ?NGRE88O8 , !N;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
22
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
e#crea ( "7reco: ", 7RECOSMA),
" ?ngre##o#: ", ?NGRE88O8SMA), " 4(cro: ", 45CROSMA) );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&33
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&C
A comisso organi)adora de um rallXe automoFil%stico decidiu apurar os resultados da
competio atravJs de um processamento eletrKnico' Dm dos algoritmos necessrios
para a classificao das e#uipes concorrentes e o #ue emite uma listagem geral do
desempenho das e#uipes+ atriFuindo pontos segundo determinadas normasB
G algoritmo deverB
a6 9er
a'&6 uma linha contendo os tempos padro 2em minutos decimais6 para as tr*s
fases de competio
a',6 um conEunto de linhas contendo cada uma o numero de inscrio da
e#uipe e os tempos 2em minutos decimais6 #ue as mesmas despenderam ao
cumprir as tr*s diferentes etapas' A ultima linha 2flag6+ #ue no entrar nos
clculos+ contem o nHmero IIII como nHmero de inscrio'
F6 CalcularB
F'&6 os pontos de cada e#uipe em cada uma das etapas+ seguindo o seguinte
critJrioB
1eEa d o valor aFsoluto da diferena entre o tempo padro 2lido na primeira
linha6 e o tempo despendido pela e#uipe numa etapaB
d 3 ( minutos 7R atriFuir &== pontos a etapa
( 37 d 37 > minutos 7R atriFuir C= pontos a etapa
d R > minutos 7R atriFuir C= ; 2d;>6L> pontos a etapa
F',6 o total de pontos de cada e#uipe nas tr*s etapas
F'(6 a e#uipe vencedora
c6 EscreverB
c'&6 para cada e#uipe+ o nHmero de inscrio+ os pontos oFtidos em cada etapa
e o total de pontos oFtidos'
algoritmo()
{
declare 7ABRAO1: real; AA tem:o :adrao da eta:a 1
declare 7ABRAO!: real; AA tem:o :adrao da eta:a !
declare 7ABRAO": real; AA tem:o :adrao da eta:a "
declare 7ABRAO: real; AA tem:o :adrao generico
declare ?N8CR?CAO: inteiro; AA n(mero de in#cricao da e-(i:e
declare >EM7O: real; AA tem:o da e-(i:e ao c(m:rir a eta:a 1
declare 7ON>O8: real; AA total de :onto# da e-(i:e na eta:a 1
declare >O>A4: real; AA total de :onto# de cada e-(i:e ao final
declare CAM7EAO: inteiro; AA n(mero de in#cricao da e-(i:e encedora
declare B: real; AA diferencao entre o tem:o ga#to e o :adrao
declare i: inteiro; AA a(/iliar
declare MA?OR: inteiro; AA maior #oma de :onto#
AA inicialiVacao da# condicoe# limite#
MA?OR :& 9;
AA leit(ra do# tem:o# :adrao
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&3&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
leia ( "informe o tem:o :adrao :ara a eta:a 1: ", 7ABRAO1 );
leia ( "informe o tem:o :adrao :ara a eta:a !: ", 7ABRAO! );
leia ( "informe o tem:o :adrao :ara a eta:a ": ", 7ABRAO" );
AA inicialiVacao da condicao de contorno
?N8CR?CAO :& 1;
re:ita ate-(e ( ?N8CR?CAO && ;;;; )
{
AA leit(ra do n(mero de in#cricao
leia ( "informe o n(mero de in#cricao: ", ?N8CR?CAO );
AA inicialiVa o total de :onto# de cada e-(i:e
7ON>O8 :& 9;
>O>A4 :& 9;
#e ( ?N8CR?CAO $6 ;;;; )
{
AA inicio de cada eta:a
i :& 1;
re:ita ate-(e ( i 6 " )
{
e#crea ( "Eta:a n(mero: ", i );
leia ( "informe o tem:o ga#to na eta:a: ", >EM7O );
AA calc(lo do# :onto# oDtido# :ela e-(i:e
#elecao
{
ca#o ( i && 1 )
{
7ABRAO :& 7ABRAO1;
'
ca#o ( i && ! )
{
7ABRAO :& 7ABRAO!;
'
ca#o ( i && " )
{
7ABRAO :& 7ABRAO";
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&3'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
'
B :& >EM7O M 7ABRAO;
B :& IalorAD#(B);
#e ( B $ " )
{
7ON>O8 :& 199;
'
#enao
{
#e ( B 6& " % B $& J )
{
7ON>O8 :& <9;
'
#enao
{
7ON>O8 :& <9 M ( ( B M J ) A J );
'
'
e#crea ( "A e-(i:e ", ?N8CR?CAO, " oDtee ", 7ON>O8,
" na eta:a ", i );
AA totaliVa o# :onto# da e-(i:e
>O>A4 :& >O>A4 , 7ON>O8;
i :& i , 1;
'
e#crea ( ">otal de :onto# da e-(i:e ", ?N8CR?CAO, " ig(al a ",
>O>A4 );
#e ( >O>A4 6 MA?OR )
{
CAM7EAO :& ?N8CR?CAO;
'
'
'
e#crea ( "A e-(i:e cam:ea foi a e-(i:e: ", CAM7EAO );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&3,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'&I
:uma certa loEa de eletrodomJsticos+ o comerciante encarregado da seo de
televisores receFe+ mensalmente+ um salrio fi$o mais comisso' Essa comisso J
calculada em relao ao tipo e ao nHmero de televisores vendidos por m*s+
oFedecendo ao seguinte critJrioB
Tipo :Hmero de televisores Comisso L
Televisor Pendidos Televisor
a cores maior ou igual a &= V&==+==
menor #ue &= V >=+==
preto e maior ou igual a ,= V <=+==
Franco menor #ue ,= V ,=+==
1aFe;se+ ainda+ #ue ele tem um desconto de CS soFre seu salrio fi$o para o !:P1'
1e o salrio total 2fi$o 4 comisses ; !:P16 for maior ou igual a V('===+== ele ainda
ter um desconto de >S+ soFre esse salrio total+ relativo ao imposto de renda retido
na fonte' 1aFendo;se #ue e$istem ,= empregados nesta seo+ leia o valor do salrio
fi$o e+ para cada comerciante+ o nHmero de sua inscrio+ o nHmero de televisores a
cores e o numero de televisores preto e Franco vendidos+ calcule e escreva o nHmero
de inscrio de cada empregado+ seu salrio Fruto e seu salrio l%#uido
algoritmo()
{
declare =?)O:real; AA fi/o receDido men#almente :elo endedor
declare COM?88AO:real; AA comi##ao receDida :elo endedor
declare CORE8:inteiro; AA telei#ore# a core# endido# A endedor
declare 7RE>O:inteiro; AA n(mero de telei#ore# :reto e Dranco endido#
declare >?7O:caracter; AA ti:o de telei#or (cMcore#,:M:reto e Dranco)
declare ?N78:real; AA de#conto de <U #oDre o #alario total
declare BR5>O:real; AA #alario total
declare RE>?BO:real; AA JU #oDre o >O>A4 de retencao da fonte
declare N:inteiro; AA n(mero de em:regado# na #ecao
declare ?N8CR?CAO:inteiro; AA n(mero de in#cricao
declare 4?T5?BO:real; AA #alario li-(ido
AA inicialiVacao do# ac(m(ladore#
N :& 9;
AA receDendo o #alario fi/o geral
leia ( "informe o alor do #alario fi/o: ", =?)O );
AA calc(lo do ?N78
?N78 :& =?)O @ < A 199;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&3-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA calc(lo# :ara cada (m do# !9 em:regado#
re:ita ate-(e ( N && J )
{
AA inicialiVacao do# alore# :ara cada f(ncionario
BR5>O :& 9;
4?T5?BO :& 9;
COM?88AO :& 9;
leia ( "informe o n(mero de in#cricao: ", ?N8CR?CAO );
leia ( "n(mero de telei#ore# a core# endido#: ", CORE8 );
leia ( "n(mero de telei#ore# :reto e Dranco endido#: ", 7RE>O );
AA calc(lo da comi##ao
#e ( CORE8 6& 19 )
{
COM?88AO :& 199 @ CORE8;
'
#enao
{
COM?88AO :& J9 @ CORE8;
'
#e ( 7RE>O 6& !9 )
{
COM?88AO :& COM?88AO , E9 @ 7RE>O;
'
#enao
{
COM?88AO :& COM?88AO , !9 @ 7RE>O;
'
AA calc(lo do #alario Dr(to
BR5>O :& =?)O , COM?88AO M ?N78;
AA erificacao da retencao na fonte
#e ( BR5>O 6 "999 )
{
4?T5?BO :& BR5>O M ( BR5>O @ J A 199 );
'
#enao
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&3.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
{
4?T5?BO :& BR5>O;
'
AA re#(ltado#
e#crea ( "?n#cricao: ", ?N8CR?CAO,
" Br(to: ", BR5>O, " 4i-(ido: ", 4?T5?BO );
AA conta o f(ncionario
N :& N , 1;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&3/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',=
G dia da semana para uma data #ual#uer pode ser calculado pela seguinte frmulaB
dia 7 Resto2 Nuociente2 2 ,'? Y " ; =', 6+& 6 4 D 4 A 4 Nuociente2 A+< 64
Nuociente2 1+< 6 Z , Y 1 6+@ 6
onde+
"+ representa o nHmero do m*s' 2Eaneiro e fevereiro so os meses && e &, do
ano precedente+ marco e o m*s & e de)emFro e o m*s &=
D+ representa o dia do m*s
A+ representa o nHmero formado pelos dois Hltimos algarismos do ano
1+ representa o nHmero formado pelos dois primeiros algarismos do ano
Gs dias da semana so numerados de = a ?+ domingo corresponde a =+ segunda a & e
assim por diante'
Fa)er um algoritmo #ueB
leia um conEunto de >= datas 2dia+ m*s e ano6
determine o dia da semana correspondente a data lida+ segundo o mJtodo
especificado
escreva+ para cada data lida+ o dia+ o m*s+ o ano e o dia da semana
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&30
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',&
:uma fFrica traFalham homens e mulheres divididos em tr*s classesB
A ; os #ue fa)em ate (= pecas por m*s
Q ; os #ue fa)em de (& a (> pecas por m*s
C ; os fa)em mais de (> pecas por m*s
A classe A receFe salrio m%nimo' A classe Q receFe salrio m%nimo e mais (S do
salrio m%nimo por peca acima das (= iniciais' A classe C receFe salrio m%nimo e mais
>S do salrio m%nimo por peca acima das (= iniciais'
Fa)er um algoritmo #ueB
a6 leia varias linhas+ contendo cada umaB
o nHmero do operrio
o nHmero de pecas faFricados por m*s
o se$o do operrio
F6 calcule e escrevaB
o salrio de cada operrio
o total da folha mensal de pagamento da faFrica
o numero total de pecas faFricadas por m*s
a media de pecas faFricadas pelos homens em cada classe
a media de pecas faFricadas pelas mulheres em cada classe
o nHmero do operrio ou operria de maior salrio 2no e$iste empate6
oFservaoB A Hltima linha+ #ue servir de flag+ ter o nHmero do operrio igual a
)ero'
algoritmo()
{
declare O7ERAR?O:inteiro; AA n(mero do o:erario
declare 7ROB5CAO:inteiro; AA n(mero de :eca# faDricada# :or o:erario
declare 8E)O:caracter; AA #e/o do o:erario (m,f)
declare 8A4AR?O:real; AA #alario de cada o:erario
declare =O4LA:real; AA total men#al da folKa de :agamento
declare 7ECA8SME8:inteiro; AA total de :eca# faDricada# :or m[#
declare MEB?ASLA:real; AA media de :eca# faDricada# :elo# Komen# da cla##e A
declare MEB?ASLB:real; AA media de :eca# faDricada# :elo# Komen# da cla##e B
declare MEB?ASLC:real; AA media de :eca# faDricada# :elo# Komen# da cla##e C
declare MEB?ASMA:real; AA media de :eca# faDricada# :or m(lKere# da cla##e A
declare MEB?ASMB:real; AA media de :eca# faDricada# :or m(lKere# da cla##e B
declare MEB?ASMC:real; AA media de :eca# faDricada# :elo# m(lKere# da cla##e C
declare LOMEN8SA:inteiro; AA n(mero de Komen# da cla##e A
declare LOMEN8SB:inteiro; AA n(mero de Komen# da cla##e B
declare LOMEN8SC:inteiro; AA n(mero de Komen# da cla##e C
declare M54LERE8SA:inteiro; AA n(mero de m(lKere# da cla##e A
declare M54LERE8SB:inteiro; AA n(mero de m(lKere# da cla##e B
declare M54LERE8SC:inteiro; AA n(mero de m(lKere# da cla##e C
declare 7ECA8SLA:inteiro; AA n(mero de :eca# faDricada# :or Komen# da cla##e A
declare 7ECA8SLB:inteiro; AA n(mero de :eca# faDricada# :elo# Komen# da cla##e B
declare 7ECA8SLC:inteiro; AA n(mero de :eca# faDricada# :elo# Komen# da cla##e C
declare 7ECA8SMA:inteiro; AA -td de :eca# faDricada# :ela# m(lKere# da cla##e A
declare 7ECA8SMB:inteiro; AA -td de :eca# faDricada# :ela# m(lKere# da cla##e B
declare 7ECA8SMC:inteiro; AA -td de :eca# faDricada# :ela# m(lKere# da cla##e C
declare LOMEN8:inteiro; AA n(mero total de Komen#
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&31
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
declare M54LERE8:inteiro; AA n(mero total de m(lKere#
declare ?BSMA?OR:inteiro; AA n(mero do o:erario(a) de maior #alario
declare MA?OR:inteiro; AA maior #alario
declare M?N?MO:real; AA alor do #alario minimo
AA inicialiVacao do# ac(m(ladore# gloDai#
=O4LA :& 9;
7ECA8SME8 :& 9;
LOMEN8 :& 9;
M54LERE8 :& 9;
LOMEN8SA :& 9;
LOMEN8SB :& 9;
LOMEN8SC :& 9;
M54LERE8SA :& 9;
M54LERE8SB :& 9;
M54LERE8SC :& 9;
7ECA8SLA :& 9;
7ECA8SLB :& 9;
7ECA8SLC :& 9;
7ECA8SMA :& 9;
7ECA8SMB :& 9;
7ECA8SMC :& 9;
AA inicialiVacao da# condicoe# de e/tremo#
MA?OR :& 9;
AA receDe alor do #alario minimo
leia ( "informe o alor do #alario minimo: ", M?N?MO );
AA inicialiVacao da condicao de contorno
O7ERAR?O :& 1;
re:ita ate-(e ( O7ERAR?O && 9 )
{
AA inicialiVacao do# ac(m(ladore# locai#
8A4AR?O :& 9;
leia ( "informe o n(mero do o:erario: ", O7ERAR?O );
#e ( O7ERAR?O $6 9 )
{
leia ( "informe o n(mero de :eca# faDricada#: ", 7ROB5CAO );
leia ( "informe o #e/o do o:erario: ", 8E)O );
AA calc(lo do #alario do o:erario
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&32
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#e ( 7ROB5CAO $& "9 )
{
8A4AR?O :& M?N?MO;
'
#enao
{
#e ( 7ROB5CAO 6& "1 % 7ROB5CAO $& "J )
{
8A4AR?O :& M?N?MO , ( 7ROB5CAO M "9 ) @ " A 199;
'
#enao
{
8A4AR?O :& M?N?MO , ( 7ROB5CAO M "9 ) @ J A 199;
'
'
AA ac(m(la o total da folKa
=O4LA :& =O4LA , 8A4AR?O;
AA ac(m(la o total de :eca# faDricada# :or m[#
7ECA8SME8 :& 7ECA8SME8 , 7ROB5CAO;
AA identifica o:erario de maior #alario
#e ( 8A4AR?O 6 MA?OR )
{
MA?OR :& 8A4AR?O;
?BSMA?OR :& O7ERAR?O;
'
AA totaliVa alore# :ara o calc(lo da# media#
#e ( 8E)O && PMP . 8E)O && PmP )
{
#elecao
{
ca#o ( 7ROB5CAO $& "9 )
{
7ECA8SLA :& 7ECA8SLA , 7ROB5CAO;
LOMEN8SA :& LOMEN8SA , 1;
'
ca#o ( 7ROB5CAO 6& "1 % 7ROB5CAO $& "J )
{
7ECA8SLB :& 7ECA8SLB , 7ROB5CAO;
LOMEN8SB :& LOMEN8SB , 1;
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ca#o ( 7ROB5CAO 6 "J )
{
7ECA8SLC :& 7ECA8SLC , 7ROB5CAO;
LOMEN8SC :& LOMEN8SC , 1;
'
'
'
#enao
{
#elecao
{
ca#o ( 7ROB5CAO $& "9 )
{
7ECA8SMA :& 7ECA8SMA , 7ROB5CAO;
M54LERE8SA :& M54LERE8SA , 1;
'
ca#o ( 7ROB5CAO 6& "1 % 7ROB5CAO $& "J )
{
7ECA8SMB :& 7ECA8SMB , 7ROB5CAO;
M54LERE8SB :& M54LERE8SB , 1;
'
ca#o ( 7ROB5CAO 6 "J )
{
7ECA8SMC :& 7ECA8SMC , 7ROB5CAO;
M54LERE8SC :& M54LERE8SC , 1;
'
'
'
AA #alario do o:erario
e#crea ( "O o:erario ", O7ERAR?O, " receDera ", 8A4AR?O );
'
'
AA calc(lo da# media#
MEB?ASLA :& 7ECA8SLA A LOMEN8SA;
MEB?ASLB :& 7ECA8SLB A LOMEN8SB;
MEB?ASLC :& 7ECA8SLC A LOMEN8SC;
MEB?ASMA :& 7ECA8SMA A M54LERE8SA;
MEB?ASMB :& 7ECA8SMB A M54LERE8SB;
MEB?ASMC :& 7ECA8SMC A M54LERE8SC;
AA re#(ltado#
e#crea ( ">otal da folKa de :agamento: ", =O4LA );
e#crea ( "7rod(cao do me#: ", 7ECA8SME8 );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( "Media de :rod(cao do# Komen# da cla##e A: ", MEB?ASLA );
e#crea ( "Media de :rod(cao do# Komen# da cla##e B: ", MEB?ASLB );
e#crea ( "Media de :rod(cao do# Komen# da cla##e C: ", MEB?ASLC );
e#crea ( "Media de :rod(cao da# m(lKere# da cla##e A: ", MEB?ASMA );
e#crea ( "Media de :rod(cao da# m(lKere# da cla##e B: ", MEB?ASMB );
e#crea ( "Media de :rod(cao da# m(lKere# da cla##e C: ", MEB?ASMC );
e#crea ( "O:erario de maior #alario: ", ?BSMA?OR );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',,
Dma determinada fFrica de rdios possui duas linhas de montagem distintas standard
e lu$o' A linha de montagem standard comporta um m$imo de ,< operrios+ cada
rdio standard da um lucro - e gasta um homem;dia para sua confeco' A linha de
montagem lu$o comporta no m$imo (, operrios e cada radio da um lucro . e gasta
, homens;dia para a sua confeco' A fFrica possui <= operrios' G mercado e capa)
de aFsorver toda a produo e o faFricante deseEa saFer #ual es#uema de produo a
adotar de modo a ma$imi)ar seu lucro dirio'
Fa)er um algoritmo #ue leia os valores de - e . e escreva+ para esse es#uema de lucro
m$imo+ o numero de operrios na linha standard e na linha lu$o+ o numero de rdios
standard e lu$o produ)idos e o lucro'
algoritmo()
{
declare ):real; AA l(cro do radio #tandard ((nitario)
declare *:real; AA l(cro do radio l(/o ((nitario)
declare 8>ANBARB:inteiro; AA n(mero de radio# #tandard :rod(Vido#
declare 45)O:inteiro; AA n(mero de radio# l(/o :rod(Vido#
declare 45CRO:real; AA alor do l(cro a(ferido
declare O7ERAR?O8:inteiro; AA n(mero de o:erario# da faDrica
declare 4?NLAS8>AN:inteiro; AA n(mero de o:erario# na linKa #tandard
declare 4?NLAS45)O:inteiro; AA n(mero de o:erario# na linKa l(/o
declare LOMEN8S8>AN:inteiro; AA Komen#Mdia :ara a confeccao do #tandard
declare LOMEN8S45)O:inteiro; AA Komen#Mdia :ara a confeccao do l(/o
declare 45CROSMA):real; AA maior l(cro
AA inicialiVacao do# :arametro# iniciai#
O7ERAR?O8 :& E9;
45CROSMA) :& 9;
AA receDendo o# alore# de ) e *
leia ( "informe o l(cro do radio #tandard: ", ) );
leia ( "informe o l(cro do radio l(/o: ", * );
A@ con#ideracoe# #oDre o :roDlema
1Re/:re##ao do l(cro total
45CRO :& 8>ANBARB @ ) , 45)O @ *;
!Rlimite# da linKa de :rod(cao
LOMEN8S8>AN $& !E, LOMEN8S45)O $& "!,
LOMEN8S8>AN , LOMEN8S45)O $& E9 (n(mero de o:erario# da faDrica)
LOMEN8S8>ANSM?N & E9 M LOMEN8S45)O & E9 M "! & <
LOMEN8S45)OSM?N & E9 M LOMEN8S8>AN & E9 M !E & 1N
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
"R:rod(cao em Komen#Mdia
8>ANBARB & LOMEN8S8>AN, 45)O & LOMEN8S45)O A !
ERcolocando a e/:re##ao do l(cro em f(ncao do n(mero de Komen#
45CRO :& LOMEN8S8>AN @ ) , LOMEN8S45)O @ * A ! e
LOMEN8S45)O :& E9 M LOMEN8S8>AN
@@@@@A
AA inicialiVacao do condicao de contorno do laco
LOMEN8S8>AN :& <;
re:ita ate-(e ( LOMEN8S8>AN && !E )
{
LOMEN8S45)O :& O7ERAR?O8 M LOMEN8S8>AN;
45CRO :& LOMEN8S8>AN @ ) , ( LOMEN8S45)O @ * ) A !;
#e ( 45CRO 6 45CROSMA) )
{
45CROSMA) :& 45CRO;
4?NLAS8>AN :& LOMEN8S8>AN;
4?NLAS45)O :& LOMEN8S45)O;
'
LOMEN8S8>AN :& LOMEN8S8>AN , 1;
'
LOMEN8S45)O :& 1N;
re:ita ate-(e ( LOMEN8S45)O && "! )
{
LOMEN8S8>AN :& O7ERAR?O8 M LOMEN8S45)O;
45CRO :& LOMEN8S8>AN @ ) , ( LOMEN8S45)O @ * ) A !;
#e ( 45CRO 6 45CROSMA) )
{
45CROSMA) :& 45CRO;
4?NLAS8>AN :& LOMEN8S8>AN;
4?NLAS45)O :& LOMEN8S45)O;
'
LOMEN8S45)O :& LOMEN8S45)O , 1;
'
8>ANBARB :& LOMEN8S8>AN;
45)O :& LOMEN8S45)O A !;
e#crea ( "N(mero de o:erario# na linKa #tandard: ", 4?NLAS8>AN );
e#crea ( "N(mero de o:erario# na linKa l(/o: ", 4?NLAS45)O );
e#crea ( "N(mero de radio# #tandard :rod(Vido#: ", 8>ANBARB );
e#crea ( "N(mero de radio# l(/o :rod(Vido#: ", 45)O );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( "4(cro oDtido: ", 45CROSMA) );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',(
Fa)er um algoritmo para calcular o numero de dias decorridos entre duas datas
2considerar tamFJm a ocorr*ncia de anos Fisse$tos6+ saFendo;se #ueB
a6 cada par de datas J lido numa linha+ a Hltima linha contem o nHmero do dia
negativo
F6 a primeira data na linha J sempre a mais antiga e o ano est digitado com <
d%gitos'
algoritmo()
{
declare B?A1: inteiro;
declare ME81: inteiro;
declare ANO1: inteiro;
declare B?A!: inteiro;
declare ME8!: inteiro;
declare ANO!: inteiro;
declare B?=E: inteiro; AA n(mero de dia# entre a# d(a# data#
declare B?88E)>O:inteiro;
declare A5): inteiro;
AA receDendo a# data#
leia ( "(data 1) informe o dia: ", dia1 );
leia ( " informe o me# : ", me#1 );
leia ( " informe o ano : ", ano1 );
leia ( "(data !) informe o dia : ", dia! );
leia ( " informe o me# : ", me#! );
leia ( " informe o ano : ", ano! );
AA inicialiVando o# ac(m(ladore#
B?=E :& 9;
AA ac(m(lando o# ano#
A5) :& ANO1;
re:ita ate-(e ( A5) && ANO! )
{
B?88E)>O :& Re#to ( A5), E );
#e ( B?88E)>O && 9 )
{
B?=E :& B?=E , "NN;
'
#enao
{
B?=E :& B?=E , "NJ;
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
A5) :& A5) , 1;
'
e#crea ( "A diferenca em dia# entre ", B?A1, "A", ME81, "A", ANO1, " e ", B?A!, "A",
ME8!, "A", ANO!, " ^ ", B?=E );
A@ ainda e#ta incom:leto RRR @A
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlemas envolvendo o clculo de somatrios
ProFlema &'&,',<
Fa)er um algoritmo #ue calcule e escreva o valor de 1B
algoritmo()
{
declare 8:real; AA o alor do #omatorio
declare N5M:inteiro; AA n(merador da e/:re##ao
declare BEN:inteiro; AA denominador da e/:re##ao
declare >:real; AA cada (m do# termo# do #omatorio
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& 1;
BEN :& 1;
AA faV o calc(lo do #omatorio
re:ita ate-(e ( N5M 6 ;; )
{
> :& N5M A BEN;
8 :& 8 , >;
N5M :& N5M , !;
BEN :& BEN , 1;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&1
.3
22
$$$
-
0
,
.
'
,
&
&
+ + + + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',<a
Fa)er um algoritmo #ue calcule e escreva o valor de 1B
algoritmo( )
{
declare 8:real; AA o alor do #omatorio
declare N5M:inteiro; AA n(merador da e/:re##ao
declare BEN:inteiro; AA denominador da e/:re##ao
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& 1;
BEN :& 1;
AA faV o calc(lo do #omatorio
re:ita ate-(e ( N5M 6 ;; )
{
8 :& 8 , N5M A BEN;
N5M :& N5M , !;
BEN :& BEN , 1;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&&2
.3
22
$$$
-
0
,
.
'
,
&
&
+ + + + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',<F
Fa)er um algoritmo #ue calcule e escreva o valor de 1B
algoritmo( )
{
declare 8:real; AA o alor do #omatorio
declare N:inteiro; AA n(merador da e/:re##ao
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
N :& 1;
AA faV o calc(lo do #omatorio
re:ita ate-(e ( N 6 J9 )
{
8 :& 8 , ( ( !@N M 1 ) A N );
N :& N , 1;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&'3
.3
22
$$$
-
0
,
.
'
,
&
&
+ + + + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',>
Fa)er um algoritmo #ue calcule e escreva o valor de 1B
algoritmo( )
{
declare 8:real; AA o alor do #omatorio
declare BEN:inteiro; AA denominador da e/:re##ao
declare >:real; AA cada (m do# termo# do #omatorio
declare i:inteiro; AA e/:oente
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
BEN :& J9;
i :& 1;
AA faV o calc(lo do #omatorio
re:ita ate-(e ( i 6 J9 )
{
> :& ( ! F i ) A BEN;
8 :& 8 , >;
i :& i , 1;
BEN :& BEN M 1;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&'&
&
'
$$$
-1
'
-2
'
.3
'
.3 , ' &
+ + + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',>a
Fa)er um algoritmo #ue calcule e escreva o valor de 1B
algoritmo()
{
declare 8:real; AA o alor do #omatorio
declare BEN:inteiro; AA denominador da e/:re##ao
declare >:real; AA cada (m do# termo# do #omatorio
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
BEN :& J9;
AA faV o calc(lo do #omatorio
re:ita ate-(e ( BEN && 9 )
{
> :& ( ! F ( J1 M BEN ) ) A BEN;
8 :& 8 , >;
BEN :& BEN M 1;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&''
&
'
$$$
-1
'
-2
'
.3
'
.3 , ' &
+ + + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',?
Fa)er um algoritmo #ue calcule e escreva o valor de 1B
algoritmo()
{
declare 8:real; AA o alor do #omatorio
declare N5M:real; AA n(merador da e/:re##ao
declare BEN:inteiro; AA denominador da e/:re##ao
declare >:real; AA cada (m do# termo# do #omatorio
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& "W;
BEN :& 1;
AA faV o calc(lo do #omatorio
re:ita ate-(e ( N5M $ 1 )
{
> :& ( N5M @ ( N5M , 1 ) ) A BEN;
8 :& 8 , >;
N5M :& N5M M 1;
BEN :& BEN , 1;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&',
,0
' &
$$$
,
,/ ,.
'
,0 ,/
&
,1 ,0
+ +

S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',@
Fa)er um algoritmo #ue calcule e escreva o valor de 1B
algoritmo()
{
declare 8:real; AA o alor do #omatorio
declare N5M:real; AA n(merador da e/:re##ao
declare BEN:inteiro; AA denominador da e/:re##ao
declare >:real; AA cada (m do# termo# do #omatorio
declare A5):inteiro; AA a(/iliar :ara decidir #oDre o #inal de >
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& 1;
BEN :& 1;
AA faV o calc(lo do #omatorio
en-(anto ( N5M $& 19 )
{
> :& N5M A BEN;
A5) :& Re#to ( BEN, ! );
#e ( A5) $6 9 )
{
8 :& 8 , >;
'
#enao
{
8 :& 8 M >;
'
N5M :& N5M , 1;
BEN :& N5M F !;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&'-
&33
&3
$$$
,/
/
'.
.
&/
-
2
,
-
'
&
&
+ + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&'.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',@a
Fa)er um algoritmo #ue calcule e escreva o valor de 1B
algoritmo()
{
declare 8:real; AA o alor do #omatorio
declare N:real; AA n(merador da e/:re##ao
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
N :& 1;
AA faV o calc(lo do #omatorio
en-(anto ( N $& 19 )
{
#e ( N U ! $6 9 )
{
8 :& 8 , ( N A ( N F ! ) );
'
#enao
{
8 :& 8 M N A ( N F ! ) );
'
N :& N , 1;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&'/
&33
&3
$$$
,/
/
'.
.
&/
-
2
,
-
'
&
&
+ + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',C
Fa)er um algoritmo #ue calcule e escreva a soma dos >= primeiros termos da seguinte
sJrieB
algoritmo( )
{
declare 8:real; AA o alor do #omatorio
declare N5M:real; AA n(merador da e/:re##ao
declare BEN:inteiro; AA denominador da e/:re##ao
declare >:real; AA cada (m do# termo# do #omatorio
declare A5):inteiro; AA a(/iliar :ara decidir #oDre o #inal de >
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& 1999;
BEN :& 1;
AA faV o calc(lo do #omatorio
en-(anto ( BEN $& J9 )
{
> :& N5M A BEN;
A5) :& Re#to ( BEN, ! );
#e ( A5) $6 9 )
{
8 :& 8 , >;
'
#enao
{
8 :& 8 M >;
'
N5M :& N5M M ";
BEN :& BEN , 1;
'
AA re#(ltado
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&'0
$$$
-
22&
,
22-
'
220
&
&333
+ + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( "O alor de 8 e ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&'1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',Ca
Fa)er um algoritmo #ue calcule e escreva a soma dos >= primeiros termos da seguinte
sJrieB
algoritmo()
{
declare 8:real; AA o alor do #omatorio
declare N5M:real; AA n(merador da e/:re##ao
declare BEN:inteiro; AA denominador da e/:re##ao
declare A5):inteiro; AA a(/iliar :ara decidir #oDre o #inal de >
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& 1999;
BEN :& 1;
A5) :& 1;
AA faV o calc(lo do #omatorio
en-(anto ( BEN $& J9 )
{
#e ( A5) && 1 )
{
8 :& 8 , N5M A BEN;
A5) :& 9;
'
#enao
{
8 :& 8 M N5M A BEN;
A5) :& 1;
'
N5M :& N5M M ";
BEN :& BEN , 1;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&'2
$$$
-
22&
,
22-
'
220
&
&333
+ + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,',I
Fa)er um algoritmo #ue calcule e escreva a soma dos (= primeiros termos da seguinte
sJrieB
algoritmo()
{
declare 8:real; AA o alor do #omatorio
declare N5M:real; AA n(merador da e/:re##ao
declare BEN:inteiro; AA denominador da e/:re##ao
declare ?:inteiro; AA contador :ara o n(mero de termo#
declare A5):inteiro; AA a(/iliar :ara decidir #oDre o #inal de >
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
? :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& E<9;
BEN :& 19;
AA faV o calc(lo do #omatorio
en-(anto ( ? $& "9 )
{
A5) :& Re#to ( BEN, ! );
#e ( A5) && 9 )
{
8 :& 8 , N5M A BEN;
'
#enao
{
8 :& 8 M N5M A BEN;
'
N5M :& N5M M J;
BEN :& BEN , 1;
? :& ? , 1;
'
AA re#(ltado
e#crea ( "O alor de 8 e ", 8 );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,&
$$$
&,
-/.
&'
-03
&&
-0.
&3
-13
+ + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(=
Escrever um algoritmo para gerar e escrever uma taFela com os valores do seno de
um 0ngulo A em radianos+ utili)ando a sJrie de "ac;laurim truncada apresentada a
seguir
condiesB os valores dos 0ngulos A devem variar de ='= a ?'(+ inclusive+ de ='& em
='&
algoritmo( )
{
declare 8enA:real; AA alor do #eno do ang(lo A
declare A:real; AA o ang(lo a #er gerado
AA inicialiVacao da# condicoe# iniciai#
A :& 9;
AA faV o calc(lo do #omatorio
en-(anto ( A $& NR" )
{
8enA :& A M ((AF") A N) , ((AFJ) A 1!9) M ((AFW) A J9E9);
e#crea ( "Ang(lo: ", A, " 8eno(A): ", 8enA );
A :& A , 9R1;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,,
.3-3 &'3 /
se!
0 . ,
A A A
A A +
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(=a
Escrever um algoritmo para gerar e escrever uma taFela com os valores do seno de
um 0ngulo A em radianos+ utili)ando a sJrie de "ac;laurim truncada apresentada a
seguir
condiesB os valores dos 0ngulos A devem variar de ='= a ?'(+ inclusive+ de ='& em
='&
algoritmo()
{
declare 8enA:real; AA alor do #eno do ang(lo A
declare A:real; AA o ang(lo a #er gerado
declare :1,:!,:":real; AA cada (ma da# :otencia# de A
AA inicialiVacao da# condicoe# iniciai#
A :& 9;
AA faV o calc(lo do #omatorio
en-(anto ( A $& NR" )
{
:1 :& 7otencia (A,");
:! :& 7otencia (A,J);
:" :& 7otencia (A,W);
8enA :& A M ( :1 A N ) , ( :! A 1!9 ) M ( :" A J9E9 );
e#crea ( "Ang(lo: ", A, " 8eno(A): ", 8enA );
A :& A , 9R1;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,-
.3-3 &'3 /
se!
0 . ,
A A A
A A +
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(&
Escrever um algoritmo para gerar e escrever o valor do numero pi+ com preciso de
=+===&+ usando a sJrie
Para oFter a preciso deseEada+ adicionar apenas os termos cuEo valor aFsoluto seEa
maior ou igual a =+===&'
algoritmo()
{
declare 7?:real; AA alor de :i
declare N:real; AA n(merador e denominador da #erie
declare A5):real; AA (tiliVado :ara de#coDrir a :reci#ao
declare ?:inteiro; AA #inal do# termo#
AA inicialiVacao da# condicoe# iniciai#
7? :& E;
N :& ";
? :& 9;
AA faV o calc(lo do #omatorio
en-(anto ( A5) $& 9R9991 )
{
A5) :& E A N;
#e ( ? && 1 )
{
7? :& 7? , A5);
? :& 9;
'
#enao
{
7? :& 7? M A5);
? :& 1;
'
N :& N , !;
'
e#crea ( "O alor calc(lado e: ", 7? );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,.
$$$
&&
-
2
-
0
-
.
-
,
-
- + + +
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(,
G valor apro$imado de P! pode ser calculado usando;se a sJrie
sendo
Fa)er um algoritmo para calcular e escrever o valor de P! com >& termos
algoritmo()
{
declare 7?:real; AA alor de :i
declare ?:real; AA contador do n(mero de termo# (J1)
declare A5):real; AA (tiliVado :ara de#coDrir o #inal
declare N:inteiro; AA denominador
declare 8:real; AA alor do #omatorio
AA inicialiVacao da# condicoe# iniciai#
N :& 1;
? :& 9;
8 :& 9;
A5) :& 1;
AA faV o calc(lo do #omatorio
en-(anto ( ? $& J1 )
{
#e ( A5) 6 9 )
{
8 :& 8 , ( 1 A ( NF"));
A5) :& M1;
'
#enao
{
8 :& 8 M ( 1 A ( NF"));
A5) :& 1;
'
N :& N , !;
? :& ? , 1;
'
7? :& 8 @ "!;
7? :& 7otencia(7?,1A");
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,0
$$$
2
&
0
&
.
&
,
&
&
&
, , , , ,
+ + S
,
,' S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( "O alor calc(lado e: ", 7? );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'((
Fa)er um algoritmo #ueB
a6 leia o valor de - de uma unidade de entrada
F6 calcule e escreva o valor do seguinte somatrio
algoritmo()
{
declare ):real; AA o n(mero lido
declare A5):real; AA (tiliVado :ara de#coDrir o #inal
declare N:inteiro; AA denominador
declare 8:real; AA alor do #omatorio
declare 7:real; AA :otencia de )
declare ?:inteiro; AA e/:oente de )
AA inicialiVacao da# condicoe# iniciai#
? :& !J;
N :& 1;
8 :& 9;
A5) :& 1;
leia ( "informe o alor de ): ", ) );
AA faV o calc(lo do #omatorio
en-(anto ( N $& !J )
{
7 :& 7otencia(),?);
7 :& 7 A N;
#e ( A5) 6 9 )
{
8 :& 8 , 7;
A5) :& M1;
'
#enao
{
8 :& 8 M 7;
A5) :& 1;
'
N :& N , 1;
? :& ? M 1;
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&,2
'.
$$$
- , ' &
'' ', '- '.
x x x x x
S + + +
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( "O alor do #omatorio :ara ) & ", ), " e: ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(<
Fa)er um algoritmo #ue calcule e escreva o valor de 1 dado por
algoritmo()
{
declare 8:real; AA alor do #omatorio
declare N5M:inteiro; AA n(merador da e/:re##ao
declare BEN:inteiro; AA denomiandor da e/:re##ao
declare A5):real; AA (tiliVado :ara de#coDrir o #inal
AA inicialiVacao da# condicoe# iniciai#
8 :& 9;
N5M :& 1; AA 7G de raVao !
BEN :& 1J; AA o# -(adrado# :erfeito# menore# -(e 1J
A5) :& 1; AA -(ando A5)&&1 o# alore# #ao #omado#
AA faV o calc(lo do #omatorio
en-(anto ( BEN 6& 1 )
{
#e ( A5) 6 9 )
{
8 :& 8 , N5M A (BENF!);
A5) :& M1;
'
#enao
{
8 :& 8 M N5M A (BENF!);
A5) :& 1;
'
N5M :& N5M @ !;
BEN :& BEN M 1;
'
e#crea ( "O alor do #omatorio e: ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-&
&
&/,1-
$$$
&--
1
&/2
-
&2/
'
''.
&
+ + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(>
Fa)er um algoritmo #ue calcule e escreva o valor de 1 dado pela soma dos ,=
primeiros termos da sJrie
algoritmo()
{
declare 8:real; AA alor do #omatorio
declare N5M:inteiro; AA n(merador da e/:re##ao
declare BEN:inteiro; AA denomiandor da e/:re##ao
declare >:real; AA o termo generico da #erie
declare =A>:inteiro; AA o fatorial do denominador
declare N:inteiro; AA a(/iliar no calc(lo do fatorial
declare ?:inteiro; AA contador do n(mero de termo#
declare A5):inteiro; AA a(/iliar no calc(lo do# fatoriai#
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
? :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& 199; AA 7A de raVao _1
BEN :& 9; AA 7A de raVao 1
A5) :& 9;
AA faV o calc(lo do #omatorio
en-(anto ( ? $& !9 )
{
AA inicialiVa condicoe# :ara o calc(lo do fatorial
=A> :& 1;
N :& A5);
re:ita ate-(e ( N && 9 )
{
=A> :& =A> @ N;
N :& N M 1;
'
BEN :& =A>;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-,
$$$
9 ,
20
9 '
21
9 &
22
9 3
&33
+ + + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
> :& N5M A BEN;
8 :& 8 , >;
AA at(aliVa o n(merador e o denominador
N5M :& N5M M 1;
AA :ro/imo denominador :ara o calc(lo do fatorial
A5) :& A5) , 1;
AA conta o n(mero de termo# Ca calc(lado#
? :& ? , 1;
'
e#crea ( "O alor do #omatorio e: ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&--
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(>a
Fa)er um algoritmo #ue calcule e escreva o valor de 1 dado pela soma dos ,=
primeiros termos da sJrie
algoritmo()
{
declare 8:real; AA alor do #omatorio
declare N5M:inteiro; AA n(merador da e/:re##ao
declare >:real; AA o termo generico da #erie
declare =A>:inteiro; AA o fatorial do denominador
declare N:inteiro; AA a(/iliar no calc(lo do fatorial
declare ?:inteiro; AA contador do n(mero de termo#
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
? :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& 199; AA 7A de raVao _1
=A> :& 1; AA 7A de raVao 1
N :& 1;
AA faV o calc(lo do #omatorio
en-(anto ( ? $& !9 )
{
> :& N5M A =A>; AA calc(la o termo generico
8 :& 8 , >; AA ac(m(la o #omatorio
N5M :& N5M M 1; AA at(aliVa o n(merador
=A> :& =A> @ N; AA at(aliVa o denominador (fatorial)
N :& N , 1; AA :ro/imo m(lti:licador :ara denominador
? :& ? , 1; AA conta o n(mero de termo# Ca calc(lado#
'
e#crea ( "O alor do #omatorio e: ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-.
$$$
9 ,
20
9 '
21
9 &
22
9 3
&33
+ + + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(?
ElaForar um algoritmo #ueB
a6 calcule e escreva o valor da sJrie aFai$o com preciso menor #ue um
dJcimo de milionJsimo 2=+======&6
F6 indi#ue #uantos termos foram usados
algoritmo( )
{
declare 8:real; AA alor do #omatorio
declare N5M:inteiro; AA n(merador da e/:re##ao
declare =A>:inteiro; AA o fatorial do denominador
declare >:real; AA o termo generico da #erie
declare N:inteiro; AA a(/iliar no calc(lo do fatorial
declare ?:inteiro; AA contador do n(mero de termo#
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
? :& 9;
AA inicialiVacao da# condicoe# iniciai#
N5M :& N"; AA 7A de raVao _!
=A> :& 1; AA 7A de raVao 1
N :& 1;
A@ inicialiVa condicao de contorno :ara o laco e
faV o calc(lo do #omatorio @A
> :& 1;
re:ita ate-(e ( > $& 9R9999991 )
{
> :& N5M A =A>;
8 :& 8 , >;
N5M :& N5M M !;
=A> :& =A> @ N;
N :& N , 1;
? :& ? , 1;
'
e#crea ( "O alor do #omatorio e: ", 8 );
e#crea ( "O n(mero de termo# (tiliVado# foi: ", ? );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-0
$$$
9 ,
.0
9 '
.2
9 &
/&
/, + + + + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(@
Fa)er um algoritmo #ue calcule e escreva a soma dos >= primeiros termos da sJrieB
algoritmo()
{
AA declaracao da e#tr(t(ra de dado#
declare 8:real; AA alor do #omatorio
declare =A>:inteiro; AA n(merador da e/:re##ao
declare BEN:inteiro; AA o fatorial do denominador
declare >:real; AA o termo generico da #erie
declare N:inteiro; AA a(/iliar no calc(lo do fatorial
declare ?:inteiro; AA contador do n(mero de termo#
declare E:inteiro; AA e/:oente
declare A5):inteiro; AA definir o #inal do termo
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
? :& 9;
AA inicialiVacao da# condicoe# iniciai#
=A> :& 1; AA 7A cre#cente de raVao 1
BEN :& 1; AA BEN , !FE (anterior mai# (ma :otencia de !)
N :& 1; AA :rimeiro termo da #erie
E :& 9; AA e/:oente :ara com:or o denominador
A5) :& 1; AA o# termo# com n(meradore# im:are# #ao #omado#
AA laco :ara o calc(lo do #omatorio
re:ita ate-(e ( ? 6 J9 )
{
> :& =A> A BEN;
A5) :& Re#to ( N, ! ); AA erifica #e N e :ar
#e ( A5) && 9 )
{
> :& M1 @ >; AA #e for, troca o #inal de >
'
8 :& 8 , >; AA ac(m(la
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&-2
$$$
,&
9 .
&.
9 -
0
9 ,
,
9 '
&
9 &
+ + S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA :ro/imo# alore#
N :& N , 1;
E :& E , 1;
=A> :& =A> @ N;
BEN :& BEN , !FE;
AA conta o n(mero de termo# Ca calc(lado#
? :& ? , 1;
'
e#crea ( "O alor do #omatorio e: ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&.3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(C
Fa)er um algoritmo #ue calcule o valor de e
$
atravJs da sJrie
de modo #ue o mesmo difira do valor calculado atravJs da funo E-P de no m$imo
='===&' G valor de $ deve ser lido de uma unidade de entrada' G algoritmo dever
escrever o valor de $+ o valor calculado atravJs da sJrie+ o valor dado pela funo E-P
e o nHmero de termos utili)ados da sJrie
algoritmo()
{
AA declaracao da e#tr(t(ra de dado#
declare 8:real; AA alor do #omatorio
declare N5M:inteiro; AA o n(merador da e/:re##ao
declare =A>:inteiro; AA denominador da e/:re##ao
declare >:real; AA o termo generico da #erie
declare N:inteiro; AA a(/iliar no calc(lo do fatorial
declare ?:inteiro; AA contador do n(mero de termo#
declare E:inteiro; AA e/:oente
declare ):inteiro; AA arg(mento lido
declare \:real; AA alor de eF/ oDtido :ela f(ncao E)7
declare B?=:real; AA diferenca entre o# alore#
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
? :& 9;
AA inicialiVacao da# condicoe# iniciai#
=A> :& 1; AA o denominador e (ma 7A cre#cente de raVao 1
N5M :& 1; AA o n(merador e (ma :otencia de /
N :& 1; AA :rimeiro termo da #erie
E :& 9; AA e/:oente :ara com:or o denominador
AA receDendo o arg(mento / do (#(ario
leia ( "informe o alor de /: ", ) );
AA calc(lando eF) atrae# da f(ncao
\ :& E/:onencial());
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&.&
$$$
9 , 9 ' 9 & 9 3
, ' & 3
+ + + +
x x x x
e
x
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
A@
inicialiVacao da condicao de contorno :ara o laco e
laco :ara o calc(lo do #omatorio
@A
B?= :& 1;
en-(anto ( B?= 6 9R9991 )
{
> :& N5M A =A>; AA calc(la o termo, erificar oerfloZ de =A>
8 :& 8 , >; AA ac(m(la
B?= :& \ M 8; AA calc(la a diferenca entre o# alore#
B?= :& IalorAD#(B?=); AA em alor aD#ol(to
AA gera o# :ro/imo# alore# da #erie
E :& E , 1; AA :ro/imo e/:oente do arg(mento )
N5M :& )FE; AA :ro/imo n(merador
N :& N , 1; AA :ro/imo fatorial
=A> :& =A> @ N; AA :ro/imo denominador
AA conta o n(mero de termo# Ca calc(lado#
? :& ? , 1;
'
e#crea ( "O alor do arg(mento / e: ", ) );
e#crea ( "Ialor calc(lado atrae# da #erie: ", 8 );
e#crea ( "Ialor dado :ela f(ncao E)7: ", \ );
e#crea ( "N(mero de termo# (tiliVado#: ", ? );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&.'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'(I
Fa)er um algoritmo #ue calcule o valor da sJrie
usando os ,= primeiros termos do somatrio' G valor de $ J lido de uma unidade de
entrada'
algoritmo()
{
AA declaracao da e#tr(t(ra de dado#
declare ):inteiro; AA arg(mento lido
declare 8:real; AA alor do #omatorio
declare N5M:real; AA o n(merador da e/:re##ao
declare BEN:real; AA denominador da e/:re##ao
declare >:real; AA o termo generico da #erie
declare N:inteiro; AA a(/iliar no calc(lo do fatorial
declare ?:inteiro; AA contador do n(mero de termo#
declare E:inteiro; AA e/:oente
declare A5):inteiro; AA a(/iliar no calc(lo do fatorial
declare `:inteiro; AA :ara definir o #inal
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
? :& 9;
AA inicialiVacao da# condicoe# iniciai#
BEN :& 1; AA o denominador e (ma 7A cre#cente de raVao 1
N5M :& 1; AA o n(merador e (ma :otencia de /
A5) :& 9;
E :& 9; AA e/:oente e (ma 7A cre#cente de raVao !
` :& M1; AA o #inal do :rimeiro termo dee #er :o#itio
AA receDendo o arg(mento / do (#(ario
leia ( "informe o alor de /: ", ) );
en-(anto ( ? $& !9 )
{
> :& N5M A BEN; AA calc(la o termo, erificar oerfloZ de BEN
` :& M1 @ `; AA inerte o #inal de `
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&.,
$$$
9 0 9 . 9 ,
/ - '
+ +
x x x
x S
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
8 :& 8 , ` @ >; AA ac(m(la
AA gera o# :ro/imo# alore# da #erie
E :& E , !; AA :ro/imo e/:oente do arg(mento )
N5M :& )FE; AA :ro/imo n(merador
AA calc(lo do fatorial do denominador
BEN :& 1;
A5) :& A5) , !; AA :ro/imo fatorial
N :& A5);
re:ita ate-(e ( N && 1 )
{
BEN :& BEN @ N; AA :ro/imo denominador
N :& N M 1;
'
AA conta o n(mero de termo# Ca calc(lado#
? :& ? , 1;
'
e#crea ( "O alor da #oma 8 e: ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&.-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<=
Fa)er um algoritmo #ue
a6 calcule o valor do co;seno de $ atravJs de ,= termos da sJrie seguinte
F6 calcule a diferena entre o valor calculado no item a e o valor fornecido pela funo
cos2$6
c6 imprima o #ue foi calculado nos itens a e F
oFservaoB o valor de $ J fornecido como entrada
algoritmo()
{
AA declaracao da e#tr(t(ra de dado#
declare ):inteiro; AA arg(mento lido
declare 8:real; AA alor do #omatorio
declare N5M:real; AA o n(merador da e/:re##ao
declare BEN:real; AA denominador da e/:re##ao
declare >:real; AA o termo generico da #erie
declare N:inteiro; AA a(/iliar no calc(lo do fatorial
declare ?:inteiro; AA contador do n(mero de termo#
declare `:inteiro; AA :ara definir o #inal
declare E:inteiro; AA e/:oente de /
declare \:real; AA alor do co##eno (#ando a f(ncao CO8
declare B?=:real; AA a diferenca entre o alor calc(lado e o
AA fornecido :ela f(ncao
AA inicialiVacao do# ac(m(ladore#
8 :& 1; AA o :rimeiro termo e 1
? :& 9;
AA inicialiVacao da# condicoe# iniciai#
BEN :& 1; AA o denominador e (ma 7A cre#cente de raVao !
N5M :& 9; AA o n(merador e (ma :otencia de /
E :& !; AA e/:oente e (ma 7A cre#cente de raVao !
` :& 1; AA o #inal do :rimeiro termo dee #er :o#itio
AA receDendo o arg(mento / do (#(ario
leia ( "informe o alor de /: ", ) );
\ :& Co8eno(/,"R");
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&..
9 1 9 / 9 - 9 '
& 7 8 cos
1 / - '
x x x x
x en + +
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
en-(anto ( ? $& !9 )
{
E :& E , !; AA :ro/imo e/:oente do arg(mento )
N5M :& )FE; AA :ro/imo n(merador
AA calc(lo do fatorial do denominador
BEN :& 1;
N :& E;
re:ita ate-(e ( N && 1 )
{
BEN :& BEN @ N; AA :ro/imo denominador
N :& N M 1;
'
> :& N5M A BEN; AA calc(la o termo, erificar oerfloZ de BEN
` :& M1 @ `; AA inerte o #inal de `
8 :& 8 , ` @ >; AA ac(m(la
AA conta o n(mero de termo# Ca calc(lado#
? :& ? , 1;
'
AA calc(lo da diferenca entre \ e 8
B?= :& \ M 8;
B?= :& IalorAD#(B?=);
e#crea ( "O alor do coM#eno calc(lado e: ", 8 );
e#crea ( "O alor do coM#eno dado :ela form(la e: ", \ );
e#crea ( "A diferenca e: ", B?= );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&./
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlemas de Aplicao em Ci*ncias E$atas
ProFlema &'&,'<&
Escrever um algoritmo #ue
leia varias linhas+ cada uma delas contendo um valor a ser arma)enado em $
para cada valor lido+ calcule o valor de X dado pela frmula
X 7 ,'> Y cos2$L,6
escreva os valores de - e .
oFservaoB A Hltima linha de dados+ cuEo conteHdo no ser processado dever
conter um valor negativo' Dse esta condio para testar o fim do processamento
algoritmo()
{
AA declaracao da# ariaei#
declare ):real; AA arg(mento lido da entrada
declare *:real; AA alor calc(lado :ela f(ncao dada
declare C:real; AA alor do co##eno de /
declare \:real; AA a(/iliar na e/:re##ao /A!
en-(anto ( ) 6& 9 )
{
AA receDendo o arg(mento / do (#(ario
leia ( "informe o alor de / (M1 :ara encerrar): ", ) );
#e ( / 6& 9 )
{
\ :& )A!; AA :re:ara o arg(mento :ara a f(ncao
A@
calc(la o co##eno de \ em radiano# (tiliVando a f(ncao
Co8eno() di#:oniel na DiDlioteca interna do inter:retador
@A
A@ cKama a f(ncao e#:ecificando -(e o arg(mento \ e#ta #endo
:a##ado em radiano#
@A
C :& Co8eno(\,"R");
* :& !RJ @ C; AA calc(la a e/:re##ao
AA e/iDe o re#(ltado
e#crea ( "alor de /: ", ), " alor de *: ", * );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&.0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&.1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<&a
Escrever um algoritmo #ue
leia vrias linhas+ cada uma delas contendo um valor a ser arma)enado em $
para cada valor lido+ calcule o valor de X dado pela frmula
X 7 ,'> Y cos2$L,6
escreva os valores de - e .
oFservaoB A Hltima linha de dados+ cuEo conteHdo no ser processado dever
conter um valor negativo' Dse esta condio para testar o fim do processamento
algoritmo()
{
AA declaracao da# ariaei#
declare ):real; AA arg(mento lido da entrada
declare *:real; AA alor calc(lado :ela f(ncao dada
declare C:real; AA alor do co##eno de /
en-(anto ( ) 6& 9 )
{
AA receDendo o arg(mento / do (#(ario
leia ( "informe o alor de / (M1 :ara encerrar): ", ) );
#e ( / 6& 9 )
{
A@
calc(la o co##eno de ) em radiano# (tiliVando a f(ncao
Co8eno() di#:oniel na DiDlioteca interna do inter:retador
@A
A@ cKama a f(ncao e#:ecificando -(e o arg(mento ) e#ta #endo
:a##ado em radiano# @A
C :& Co8eno ( )A!,"R" );
* :& !RJ @ C; AA calc(la a e/:re##ao
AA e/iDe o re#(ltado
e#crea ( "alor de /: ", ), " alor de *: ", * );
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&.2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<,
1eEam P2$&+X&6 e N2$,+X,6 dois pontos #uais#uer do plano' A sua dist0ncia J dada por
Escrever ento um algoritmo #ue+ lendo vrias linhas onde cada uma contem as
coordenadas dos dois pontos+ escreva para cada par de pontos lidos a dist0ncia' A
Hltima linha contem as coordenadas $&+$,+X&+X, iguais a )ero
algoritmo()
{
AA declaracao da# ariaei#
declare )1:real; AA aD#ci##a do :onto 7
declare *1:real; AA ordenada do :onto 7
declare )!:real; AA aD#ci##a do :onto T
declare *!:real; AA ordenada do :onto T
declare B:real; AA di#tancia entre 7 e T
declare +:inteiro; AA controla o laco en-(anto
AA incialiVa condicao de contorno
+ :& 1;
en-(anto ( + $6 9 )
{
AA receDendo a# coordenada#
e#crea ( "informe 9 :ara toda# a# coordenada# :ara encerrar");
leia ( "informe o alor de /1: ", )1 );
leia ( "informe o alor de *1: ", *1 );
leia ( "informe o alor de )!: ", )! );
leia ( "informe o alor de *!: ", *! );
#e ( )1 && 9 % *1 && 9 ) % ( )! && 9 % *! && 9 )
{
interrom:a;
'
AA calc(lo da di#tancia B
B :& RaiV ( 7otencia()!M)1,!) , 7otencia(*!M*1,!));
e#crea ( "A di#tancia calc(lada e: ", B );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/3
' '
&
'
'
' '
&
'
'
7 8 7 8 y y x x d +
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<,a
1eEam P2$&+X&6 e N2$,+X,6 dois pontos #uais#uer do plano' A sua dist0ncia J
dada por
Escrever ento um algoritmo #ue+ lendo vrias linhas onde cada uma contem
as coordenadas dos dois pontos+ escreva para cada par de pontos lidos a
dist0ncia' A Hltima linha contem as coordenadas $&+$,+X&+X, iguais a )ero
algoritmo()
{
AA declaracao da# ariaei#
declare )1:real; AA aD#ci##a do :onto 7
declare *1:real; AA ordenada do :onto 7
declare )!:real; AA aD#ci##a do :onto T
declare *!:real; AA ordenada do :onto T
declare B:real; AA di#tancia entre 7 e T
declare +:inteiro; AA controla o laco en-(anto
AA incialiVa condicao de contorno
+ :& 1;
en-(anto ( + $6 9 )
{
AA receDendo a# coordenada#
e#crea ( "informe 9 :ara toda# a# coordenada# :ara encerrar");
leia ( "informe o alor de /1: ", )1 );
leia ( "informe o alor de *1: ", *1 );
leia ( "informe o alor de )!: ", )! );
leia ( "informe o alor de *!: ", *! );
#e ( )1 && 9 % *1 && 9 ) % ( )! && 9 % *! && 9 )
{
interrom:a;
'
AA calc(lo da di#tancia B
B :& 7otencia ( 7otencia()!M)1,!) , 7otencia(*!M*1,!), 1A! );
e#crea ( "A di#tancia calc(lada e: ", B );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/'
' '
&
'
'
' '
&
'
'
7 8 7 8 y y x x d +
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<(
A soluo $ X para o sistema de e#uaes lineares aFai$oB
a$ 4 FX 7 u
c$ 4 dX 7 v
J dada por $ 7 du ; Fv L ad ; Fc e X 7 av ; uc L ad ; Fc
Escrever ento um algoritmo #ueB
leia vrias linhas+ onde cada uma contem os par0metros a+ F+ c+ d+ u+ v do
sistema 2a Hltima linha contem os valores de a+ F+ c+ d iguais a )ero6
calcule a soluo $+ X de cada sistema dado por seus par0metros
escreva os par0metros lidos e os valores calculados
algoritmo()
{
AA declaracao da# ariaei#
declare ):real; AA :rimeira #ol(cao do #i#tema
declare *:real; AA #eg(nda #ol(cao do #i#tema
declare A:real; AA coeficiente de /
declare B:real; AA coeficiente de a
declare C:real; AA coeficiente de /
declare B:real; AA coeficiente de a
declare 5:real; AA con#tante
declare I:real; AA con#tante
declare BEN:real; AA denominador da e/:re##ao
declare +:inteiro; AA condicao de contorno
AA incialiVa condicao de contorno
+ :& 1;
en-(anto ( + $6 9 )
{
AA receDendo a# coordenada#
e#crea ( "7ara encerrar informe 9 :ara toda# a# coordenada#");
leia ( "informe o alor do coeficiente A: ", A );
leia ( "informe o alor do coeficiente B: ", B );
leia ( "informe o alor do coeficiente C: ", C );
leia ( "informe o alor de coeficiente B: ", B );
#e ( A && 9 % B && 9 ) % ( C && 9 % B && 9 )
{
interrom:a;
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA calc(lo do denominador
BEN :& ( A@B M B@C );
#e ( BEN && 9 )
{
e#crea ( "erro, denominador n(lo" );
'
#enao
{
AA receDe a# con#tante#
leia ( "informe o alor da con#tante 5: ", 5 );
leia ( "informe o alor da con#tante I: ", I );
AA calc(lo da #ol(cao )
) :& ( B@5 M B@I ) A BEN;
* :& ( A@I M C@5 ) A BEN;
AA re#(ltado#
e#crea ( "Coeficiente# A,B,C,B: ", A," ",B," ",C," ",B );
e#crea ( "Con#tante# 5,I: ", 5," ", I );
e#crea ( "8ol(cao ) e *: ", ), " ", * );
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<<
Fa)er um algoritmo #ue+ lendo em uma unidade de entrada os par0metros A e
Q de uma reta no plano dado pela e#uao . 7 A- 4 Q+ determine a rea do
tri0ngulo formado por esta reta e os ei$os coordenados
G algoritmo ler um nHmero indeterminado de linhas+ cada linha contendo um
par de par0metros 2A+Q6 e para cada par lido dever escrever os par0metros A
e Q e a rea do tri0ngulo
algoritmo()
{
AA declaracao da# ariaei#
declare A:real; AA coeficiente de ) na e-(acao
declare B:real; AA termo inde:endente na e-(acao
declare ):real; AA ariael inde:endente da e-(acao
declare *:real; AA ariael de:endente
declare AREA:real; AA area do triang(lo formado
declare +:inteiro; AA condicao de contorno
AA incialiVa condicao de contorno
+ :& 1;
en-(anto ( + $6 9 )
{
AA receDendo o# :arametro#
e#crea ( "7ara encerrar informe 9 :ara o coeficiente A");
leia ( "informe o alor do coeficiente A: ", A );
leia ( "informe o alor do coeficiente B: ", B );
#e ( A && 9 . B && 9 )
{
e#crea ( "Coeficiente# A,B e Area: ", A, ", ", B, ", ", "9" );
interrom:a;
'
A@ con#ideracoe#
Na inter#ecao da reta * & A) , B com o# ei/o# coordenado#
ocorre a# #eg(inte# :ro:riedade#
) & 9 M6 * & B inter#ecao com o ei/o )
* & 9 M6 ) & MBAA inter#ecao com o ei/o *
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&//
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
de##e modo a Da#e e a alt(ra do triang(lo #ao dado# :elo# alore#
B e BAA @A
AA calc(lo da area do triang(lo
) :& BAA;
* :& B;
AREA :& ) @ * A !;
e#crea ( "Coeficiente# A,B e Area: ", A, ", ", B, " , ", AREA );
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<>
Fa)er um algoritmo para taFular a funo X 7 f2$6 4 g2$6+ para $ 7 &+ ,+ (+
<+ ''' &= ondeB
h2$6 7 $
,
Z &?+
f2$6 7 h2$6 se h2$6 R7 = e f2$6 7 & se h2$6 3 =+
g2$6 7 $
,
4 &? se f2$6 7 = e g2$6 7 = se f2$6 R =
algoritmo()
{
AA declaracao da# ariaei#
declare *:real; AA a f(ncao dada
declare ):inteiro; AA a ariael inde:endente
declare =/:real; AA o alor da f(ncao f(/)
declare G/:real; AA o alor da f(ncao g(/)
declare L/:real; AA o alor da f(ncao K(/)
declare AREA:real; AA area do triang(lo formado
declare +:inteiro; AA condicao de contorno
:ara ( ) :& 1 ate 19 :a##o 1 )
{
L/ :& 7otencia(),!) M 1N; AA calc(lo da f(ncao K(/)
#e ( L/ 6& 9 )
{
=/ :& L/; AA f(/) & K(/) #e K(/) 6& 9
'
#enao
{
=/ :& 1; AA f(/) & 1 #e K(/) $ 9
'
#e ( =/ && 9 )
{
G/ :& 7otencia(),!) , 1N; AA g(/) & /F! , 1N #e f(/) & 9
'
#enao
{
G/ :& 9; AA g(/) & 9 #e f(/) 6 9
'
AA calc(lo de *
* :& =/ , G/;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( ":ara / & ", ), " * & ", * );
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&/2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<?
As coordenadas de um ponto 2$+X6 esto dispon%veis em uma unidade de
entrada' 9er esses valores 2atJ #uando um flag ocorrer6 e escrever
T!:TER!GRT se o ponto estiver dentro da regio hachurada mostrada aFai$o+
caso contrrio+ escrever TE-TER!GRT'
algoritmo()
{
AA declaracao da# ariaei#
declare *:real; AA a f(ncao dada
declare ):inteiro; AA a ariael inde:endente
AA inicialiVacao da condicao de contorno
) :& 1;
* :& 1;
re:ita ate-(e ( ) && 9 % * && 9 )
{
AA receDendo a# coordenada# do :onto
leia ( "informe a coordenada ): ", ) );
leia ( "informe a coordenada *: ", * );
#e ( ) 6 9 )
{
AA erifica o -(adrante 1
#e ( * $ "@) % * 6 )A" )
{
e#crea ( "?N>ER?OR" );
'
#enao
{
e#crea ( "E)>ER?OR" );
'
'
#enao
{
#e ( ) $ 9 )
{
AA erifica o -(adrante "
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&03
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#e ( * 6 "@) % * $ ) A " )
{
e#crea ( "?N>ER?OR" );
'
#enao
{
e#crea ( "E)>ER?OR" );
'
'
'
'
'
ComentrioB Condio de interioridade do ponto
9elo diagrama e pelas equa&(es das retas dadas, o"ser,amos que as mesmas
passam pela origem de coordenadas e notamos tam"m que a regi'o
hachurada di,ide-se em duas:
acima do eixo x e a"aixo dele, ocupando o ;A e BA quadrante. No ;A
quadrante x sempre positi,o e no BA quadrante x sempre negati,o, sendo
estas, as condi&(es que de,emos analisar com as equa&(es das retas para
,eri$icarmos se os pontos cu8as coordenadas s'o lidas est'o no interior da
regi'o delimitada pelas equa&(es.
No ;A Cuadrante o"ser,amos que a equa&'o D 3 Bx esta"elece o limite
superior de coordenadas, isto , qualquer ponto com coordenadas D 3 Bx
estar so"re a reta e, qualquer ponto com coordenadas D E Bx estar a"aixo e
portanto dentro da regi'o hachurada. 9or outro lado, a equa&'o D 3 xFB
esta"elece o limite in$erior de coordenadas, isto e, qualquer ponto com
coordenadas tais que D @ xFB estar acima da reta e portanto dentro da
regi'o hachurada.
Gessa $orma, podemos escre,er que, para o ;A Cuadrante, isto , para 0 @ <
temos,
da equa&'o D 3 Bx -@ D E Bx
da equa&'o D 3 xFB -@ D @ xFB ent'o, 8untando as duas condi&(es temos que,
xFB E D E Bx#
No BA Cuadrante, temos que a reta D 3 Bx o limite in$erior de coordenadas
isto , qualquer ponto, para que o mesmo este8a dentro da rea hachurada
de,er ter coordenadas tais que D @ Bx, pois x agora negati,o. Ga mesma
$orma, a equa&'o D 3 xFB de$ine o limite superior da rea hachurada e
qualquer ponto cu8as coordenadas s'o tais que D E xFB, estar a"aixo e
portanto dentro da regi'o hachurada.
Gesse modo, podemos escre,er que para o BA Cuadrante, isto , para 0 E <
temos,
da equa&'o D 3 Bx -@ D @ Bx
da equa&'o D 3 xFB -@ D E xFB
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&0&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
7stas condi&(es s'o as condi&(es de interioridade dos pontos
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&0'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<@
Fa)er um algoritmo para calcular e escrever a soma dos cuFos dos nHmeros
pares compreendidos entre A e Q' 1uponha #ue os valores de A e Q so dados
em uma linha e #ue Q R A'
algoritmo()
{
AA declaracao da# ariaei#
declare A:inteiro; AA o limite inferior do# n(mero#
declare B:inteiro; AA o limite #(:erior do# n(mero#
declare 8:inteiro; AA a #oma do# :are# entre A e B acima
declare N:inteiro; AA (m n(mero inteiro -(al-(er entre A e B
declare R:inteiro; AA o re#to da dii#ao de N :or !
AA inicialiVacao do# ac(m(ladore#
8 :& 9;
AA lendo o# limite# da #e-(encia de n(mero#
leia ( "informe o limite inferior A: ", A );
leia ( "informe o limite #(:erior B: ", B );
N :& A;
en-(anto ( N $& B )
{
R :& Re#to ( N, ! );
#e ( R && 9 )
{
AA N e :ar
R :& 7otencia ( N, " ); AA a:roeita a ariael R
8 :& 8 , R;
'
N :& N , 1;
'
AA re#(ltado#
e#crea ( "A #oma do# c(Do# do# :are# e: ", 8 );
'
ProFlema &'&,'<C
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&0,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Fa)er um algoritmo #ue calcule o volume de uma esfera em funo do raio R'
G raio dever variar de = a ,= cm de ='> em ='>' P 7 < $ ('&<&> $ R
(
L(
algoritmo()
{
AA declaracao da# ariaei#
declare I:real; AA o ol(me calc(lado
declare R:real; AA o raio
R :& 9;
en-(anto ( R $& !9 )
{
I :& E @ "R1E1J;! @ 7otencia ( R, " ) A ";
e#crea ( "R & ", R, " I & ", I );
R :& R , 9RJ;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&0-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'<I
Fa)er um algoritmo para calcular e escrever a rea de um pol%gono regular de
: lados inscrito numa circunfer*ncia de raio R' G nHmero de pol%gonos ser
fornecido na primeira linha de dados e nas linhas seguintes sero fornecidos
os valores de : e R'
algoritmo()
{
AA declaracao da# ariaei#
declare 7:inteiro; AA o n(mero de :oligono#
declare N:inteiro; AA o n(mero de lado# do :oligono
declare R:real; AA o raio da circ(nferencia
declare A:real; AA area do :oligono reg(lar in#crito
AA receDe o n(mero de :oligono#
leia ( "informe o n(mero de :oligono#: ", 7 );
AA calc(la a area do# :oligono# in#crito#
en-(anto ( 7 6 9 )
{
leia ( "informe o n(mero de lado#: ", N );
leia ( "informe o raio da circ(nferencia: ", R );
AA calc(lo da area
AA A :&
e#crea ( "A area calc(lada e: ", A );
7 :& 7 M 1;
'
'
Comentrio
9ol6gono regular aquele que tem todos os lados e todos os ngulos
respecti,amente congruentes, e portanto inscrit6,eis em circun$erncias. O
-ptema, representado por m, distncia do lado ao centro do pol6gono
regular. Chamando de p a medida do per6metro do po6igono regular, sua rea
dada por - 3 p.m F =.
ProFlema &'&,'>=
Para um pol%gono regular inscrito numa circunfer*ncia+ #uanto maior o nHmero
de lados do pol%gono+ mais seu per%metro se apro$ima do comprimento da
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&0.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
circunfer*ncia' 1e o nHmero de lados for muito grande e o raio da
circunfer*ncia for unitrio+ o semiper%metro do pol%gono ter um valor muito
pro$imo de P!' Fa)er um algoritmo #ue escreva uma taFela do semiper%metro
em funo do nHmero de lados+ para pol%gonos regulares inscritos numa
circunfer*ncia de raio unitrio' G nHmero de lados dever variar de > a &== de
> em >'
algoritmo()
{
AA declaracao da# ariaei#
declare 7:real; AA medida do :erimetro
declare 4:inteiro; AA o n(mero de lado# do :oligono
AA inicialiVacao da# condicoe# iniciai#
4 :& J;
en-(anto ( 4 $ 199 )
{
AA calc(lo do :erimetro
AA 7 :&
e#crea ( "N(mero de lado# & ", 4, " 7erimetro & ", 7 );
4 :& 4 , J;
'
'
Comentrio
9ol6gono regular aquele que tem todos os lados e todos os ngulos
respecti,amente congruentes, e portanto inscrit6,eis em circun$erncias. O
-ptema, representado por m, distncia do lado ao centro do pol6gono
regular. Chamando de p a medida do pe6imetro do pol6gono regular, sua rea
dada por - 3 p.m F =.
ProFlema &'&,'>&
Construir uma taFela de perda de carga em tuFulaes para va)es #ue
variem de =+& lLs atJ &=+ de =+& em =+&+ atravJs da frmula de Wan)en;
[illians dada aFai$oB
\ 7 N
&+C>
' &=+?<('D
<+C@
' C
;&+C>
ondeB
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&0/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
\ 7 perda de carga 2mL&===m6
N 7 va)o 2m
(
Ls6
D 7 di0metro de tuFo 2m
,
6
C 7 coeficiente de rugosidade
Gs valores de D e C sero lidos de uma unidade de entrada' Considerar como
flag o valor D 7 ='
algoritmo()
{
AA declaracao da# ariaei#
declare `: real; AA :erda de carga (mA1999m)
declare T: real; AA aVao (mbA#)
declare B: real; AA diametro de t(Do (mc)
declare C: real; AA coeficiente de r(go#idade
AA inicialiVacao da# condicoe# iniciai#
T :& 9R1;
AA inicialiVacao da condicao de contorno
B :& 1;
en-(anto ( B $6 9 )
{
AA receDendo o# alore# de B e C
leia ( "informe o diametro do t(Do (mc): ", B );
#e ( B $6 9 )
{
leia ( "informe o coeficiente de r(go#idade: ", C );
AA calc(lo da# :erda# em f(ncao da aVao
:ara ( T :& 9R1 ate 19 :a##o 9R1 )
{
` :& 7otencia(T,1R<J) @ 19RNE"@7otencia(B,ER<W) @
7otencia(C,M1R<J);
e#crea ( "T & ", T, " 7erda & ", ` );
'
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&00
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'>&
Fa)er um algoritmo #ue calcule e escreva o nHmero de gros de milho #ue se
pode colocar num taFuleiro de $adre)+ colocando & no primeiro #uadro e nos
#uadros seguintes o doFro do #uadro anterior
1 7 ,
=
4 ,
&
4 ,
,
4 ,
(
4 ''' 4 ,
?<
algoritmo()
{
AA declaracao da# ariaei#
declare 8: real; AA o n(mero de grao# de milKo colocado#
declare N: inteiro; AA e/:oente de !
AA inicialiVacao da# condicoe# iniciai#
N :& 9;
en-(anto ( N $& NE )
{
AA ac(m(la
8 :& 8 , 7otencia(!,N);
N :& N , !;
'
e#crea ( "A -(antidade de milKo colocada e: ", 8 );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&01
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'>(
Dm certo ao J classificado de acordo com o resultado de tr*s testes #ue
devem verificar se o mesmo satisfa) as seguintes especificaesB
teste & ; conteHdo de carFono aFai$o de @S
teste , ; dure)a RoUOell maior #ue >=
teste ( ; resist*ncia a trao maior do #ue C='=== psi
Ao ao J atriFuido o grau &=+ se passa pelos tr*s testes+ I+ se passa apenas
nos testes & e ,+ C+ se passa no teste & e @ se no passou nos tr*s testes'
1upondo #ue seEam lidos de uma unidade de entradaB o nHmero da amostra+
conteHdo de carFono em S+ a dure)a roUOell e a resist*ncia a trao+ fa)er
um algoritmo #ue de a classificao de &&, amostras de ao #ue foram
testadas+ escrevendo o nHmero da amostra e o grau oFtido'
algoritmo()
{
AA declaracao da# ariaei#
declare AMO8>RA: inteiro; AA o n(mero da amo#tra
declare CARBONO: real; AA o :ercent(al de carDono
declare B5RE+A: real; AA a d(reVa roYZell
declare RE8?8>ENC?A: real; AA re#i#tencia a tracao
declare ?: inteiro; AA contador do n(mero de amo#tra#
declare GRA5:inteiro; AA re#(ltado do# te#te#
AA inicialiVacao do# contadore#
? :& 1;
en-(anto ( ? $& 11! )
{
AA receDe o# :arametro# da amo#tra
leia ( "informe o n(mero da amo#tra: ", AMO8>RA );
leia ( "informe o U de carDono: ", CARBONO );
leia ( "informe a d(reVa RoYZell: ", B5RE+A );
leia ( "informe a re#i#tencia a tracao: ", RE8?8>ENC?A );
AA erifica alore# :ara definir o gra( da amo#tra
#e ( CARBONO $ W % B5RE+A 6 J9 ) % ( RE8?8>ENC?A 6 <9999 )
{
GRA5 :& 19;
'
#enao
{
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&02
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#e ( CARBONO $ W % B5RE+A 6 J9 )
{
GRA5 :& ;;
'
#enao
{
#e ( CARBONO $ W )
{
GRA5 :& <;
'
#enao
{
GRA5 :& W;
'
'
'
AA re#(ltado
e#crea ( "A amo#tra ", AMO8>RA, " oDtee gra(: ", GRA5 );
AA acre#centa 1 ao contador
? :& ? , 1;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&13
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'><
Fa)er um algoritmo para calcular a rai) #uadrada de um nHmero positivo
usando o roteiro aFai$o+ Faseado no mJtodo de apro$imaes sucessivas de
:eOton' 1eEa . o nHmeroB

a primeira apro$imao para a rai) #uadrada de X e $ 7 XL,

as sucessivas apro$imaes serao -


n4&
7 -
n
,
4 . L ,-
n
G algoritmo dever prever ,= apro$imaes
algoritmo()
{
AA declaracao da# ariaei#
declare *: real; AA o n(mero dado
declare )1: real; AA a:ro/imacoe#
declare )!: real; AA a:ro/imacoe#
declare ?: inteiro; AA contador da# a:ro/imacoe#
AA receDe o n(mero * :ara calc(lar a raiV -(adrada
leia ( "informe (m n(mero :o#itio: ", * );
#e ( * 6 9 )
{
AA inicialiVacao da# condicoe# iniciai#, :rimeira a:ro/imacao
)1 :& * A !;
? :& 9;
AA faV o calc(lo com !9 a:ro/imacoe#
re:ita ate-(e ( ? && !9 )
{
)! :& ( 7otencia()1,!) , * ) A ( ! @ )1 );
)1 :& )!;
AA incrementa o contador em 1
? :& ? , 1;
'
AA re#(ltado
e#crea ( "A raiV -(adrada de ", *, " e ", )! );
'
#enao
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&1&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
{
e#crea ( "informe (m n(mero :o#itio" );
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&1'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'>>
Dada a e#uao $
(
; ($
,
4 & 7 =+ pode;se encontrar #ual#uer uma de suas
rai)es reais atravJs de apro$imaes sucessivas utili)ando a seguinte frmulaB
-
F
7 -
a
; -
a
(
; (-
a
,
4 & L (-
a
,
; ?$
a
Fa)er um algoritmo #ueB
considere como primeira apro$imao $ 7 &+>
calcule e escreva a trigesima apro$imao da rai)
algoritmo()
{
AA declaracao da# ariaei#
declare )a: real; AA a:ro/imacoe#
declare )D: real; AA a:ro/imacoe#
declare ?: inteiro; AA contador da# a:ro/imacoe#
declare *: real; AA o alor da f(ncao :ara a raiV calc(lada
AA atriD(icao da# condicoe# iniciai#
)a :& 1RJ;
? :& 9;
AA faV o calc(lo com "9 a:ro/imacoe#
re:ita ate-(e ( ? && "9 )
{
)D :& )a M ( 7otencia()a,") M ("@7otencia()a,!)) , 1 ) A
( ("@7otencia()a,!)) M N@)a);
)a :& )D;
AA incrementa o contador em 1
? :& ? , 1;
'
AA re#(ltado
e#crea ( "A trige#ima a:ro/imacao e ", )D );
AA #(D#tit(indo o alor de )D na f(ncao temo#
* :& 7otencia()D,") M "@7otencia()D,!) , 1;
e#crea ( "o alor da f(ncao e: ", * );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&1,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&1-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'>?
Fa)er um algoritmo #ue taFule a seguinte funo
f2$+X6 7 $
,
4 ($ 4 X
,
L $X ; >X ; ($ 4 &>
para $ 7 &+ <+ I+ &?+ ''' &== e
para X 7 =+ &+ ,+ ''' > para cada valor de $
algoritmo()
{
AA declaracao da# ariaei#
declare =: real; AA alor da f(ncao f(/,a) calc(lado
declare ): real; AA alor da ariael /
declare *: real; AA alor da ariael a
declare B: real; AA denominador da e/:re##ao
:ara ( ) :& 1 ate 19 :a##o 1 )
{
:ara ( * :& 1 ate J :a##o 1 )
{
AA calc(lo do denominador
B :& )@* M J@* , 1J;
#e ( B $6 9 )
{
AA calc(la a f(ncao f(/,a)
= :& (7otencia(),!) , "@) , 7otencia(*,!)) A B;
e#crea ( "/ & ", ), " a & ", *, " f(/,a) & ", = );
'
#enao
{
e#crea ( "Benominador n(lo :ara / & ", ), " e a & ", * );
'
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&1.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'>@
Tem;se &= conEuntos de valores+ onde cada conEunto J formado pelo nHmero
de um aluno+ a nota provisria do seu traFalho prtico e a data em #ue foi
entregue' Fa)er um algoritmo paraB
a6 calcular e imprimir a nota final de cada aluno+ saFendo;se #ue os traFalhos
entreguesB
atJ ,=L=<+ nota final 7 nota provisria 4 &=
atJ =,L=>+ nota final 7 nota provisria
atJ (=L=>+ nota final 7 nota provisria L ,]
atJ (=L=?+ nota final 7 =
F6 calcular a mJdia e o desvio padro das notas provisria e final
GFservacaoB consultar frmula do desvio padrao
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA n(mero de conC(nto# de dado#
declare ?: inteiro; AA contador da -(antidade conC(nto#
declare A45NO: inteiro; AA n(mero do al(no
declare 7ROI: real; AA alor da nota :roi#oria
declare B?A: inteiro; AA dia em -(e o traDalKo foi entreg(e
declare ME8: inteiro; AA me# em -(e o traDalKo foi entreg(e
declare =?NA4: real; AA nota final do al(no
declare MEB?A7: real; AA media da# nota# :roi#oria#
declare MEB?A=: real; AA media da# nota# finai#
declare 8OMA7: real; AA #oma da# nota# :roi#oria#
declare 8OMA=: real; AA #oma da# nota# finai#
declare BE8I?O7: real; AA de#io :adrao da# nota# :roi#oria#
declare BE8I?O=: real; AA de#io :adrao da# nota# finai#
declare 8OMAT7: real; AA #omatorio do# -(adrado# da# nota# :roi#oria#
declare 8OMAT=: real; AA #omatorio do# -(adrado# da# nota# finai#
AA inicialiVacao do# ac(m(ladore#
8OMA7 :& 9;
8OMA= :& 9;
AA incialiVacao do# contadore#
? :& 1;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&1/
1
1
]
1

,
_



'
& &
'
&
&
&
N
i
i
N
i
i
x
N
x
N
desvio
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA inicialiVacao da# condicoe# iniciai#
N :& 19;
en-(anto ( ? $& 19 )
{
AA receDe o conC(nto de dado# de cada al(no
leia ( "informe o n(mero do al(no: ", A45NO );
leia ( "informe a nota :roi#oria: ", 7ROI );
leia ( "informe o dia da entrega: ", B?A );
leia ( "informe o me# da entrega: ", ME8 );
AA calc(lo da nota final
#e ( ME8 && E )
{
#e ( B?A $& !9 )
{
=?NA4 :& 7ROI , 19;
'
#enao
{
=?NA4 :& 7ROI;
'
'
#enao
{
#e ( ME8 && J )
{
#e ( B?A $& ! )
{
=?NA4 :& 7ROI;
'
#enao
{
=?NA4 :& 7ROI A !;
'
'
#enao
{
=?NA4 :& 9;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&10
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA re#(ltado de cada al(no
e#crea ( "A nota final do al(no: ", A45NO, " e ", =?NA4 );
AA ac(m(la a# nota# :roi#oria# e finai#
8OMA7 :& 8OMA7 , 7ROI;
8OMA= :& 8OMA= , =?NA4;
AA calc(lo da #oma do# -(adrado# de cada (ma da# nota#
8OMAT7 :& 8OMAT7 , 7otencia(7ROI,!);
8OMAT= :& 8OMAT= , 7otencia(=?NA4,!);
AA conta o al(no
? :& ? , 1;
'
AA calc(lo da media
MEB?A7 :& 8OMA7 A N;
MEB?A= :& 8OMA= A N;
AA calc(lo do de#io :adrao
BE8I?O7 :& ( 8OMAT7 M ( 7otencia(8OMA7,!) ) A N ) A ( N M 1 );
BE8I?O7 :& RaiV ( BE8I?O7 );
BE8I?O= :& ( 8OMAT= M ( 7otencia(8OMA=,!) ) A N ) A ( N M 1 );
BE8I?O= :& RaiV ( BE8I?O= );
AA re#(ltado#
e#crea ( "Media da# nota# :roi#oria#: ", MEB?A7 );
e#crea ( "Media da# nota# finai#: ", MEB?A= );
e#crea ( "Be#io :adrao da# nota# :roi#oria#: ", BE8I?O7 );
e#crea ( "Be#io :adrao da# nota# finai#: ", BE8I?O= );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&11
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'>C
:Hmeros comple$os podem ser escritos na forma cartesiana ) 7 $ 4 Xi ou na
forma e$ponencial ) 7 re
i
' "ultiplicaes e divises de nHmeros comple$os na
forma e$ponencial ficam muito mais fceis de serem feitas+ pois assumem a
seguinte formaB
)& ' ), 7 2r& ' r,6'e
2&+,6i
)& L ), 7 2r& L r,6'e
2&,6i
Fastando+ portanto+ operar os mdulos r& e r, e os argumentos & e ,' Fa)er
um algoritmo #ue leia um conEunto de linhas+ cada uma contendo um cdigo e
#uatro valores' Cdigo "D9T!P9!CA indica #ue se #uer operar a multiplicao+
cdigo D!P!DE indica #ue se #uer operar a diviso e cdigo PA/!G vai indicar
fim dos dados' Para cada operao completada+ escrever todos os valores lidos
e calculados
algoritmo()
{
AA declaracao da# ariaei#
declare COB?GO: caracter; AA codigo do ti:o de o:eracao M M,B,=
declare R1: real; AA mod(lo do :rimeiro n(mero com:le/o
declare R!: real; AA mod(lo do #eg(ndo n(mero com:le/o
declare A1: real; AA alor do arg(mento de R1
declare A!: real; AA alor do arg(mento de r!
declare R: real; AA re#(ltado da o:eracao com o# mod(lo#
declare A: real; AA re#(ltado da o:eracao com o#
arg(mento#
AA incialiVacao da condicao de contorno
COB?GO :& P P;
en-(anto ( COB?GO $6 P=P . COB?GO $6 PfP )
{
AA receDe o# mod(lo#, o# arg(mento e a o:eracao
leia ( "informe o codigo: ", COB?GO );
#e ( COB?GO && P=P . COB?GO && PfP )
{
interrom:a;
'
leia ( "informe o mod(lo R1: ", R1 );
leia ( "informe o mod(lo R!: ", R! );
leia ( "informe o arg(mento A1: ", A1 );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&12
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
leia ( "informe o arg(mento A!: ", A! );
AA calc(lo#
#e ( COB?GO && PMP . COB?GO && PmP )
{
AA m(lti:licacao
R :& R1 @ R!;
A :& A1 , A!;
'
#enao
{
#e ( COB?GO && PBP . COB?GO && PdP )
{
AA dii#ao
#e ( R! $6 9 )
{
R :& R1 A R!;
A :& A1 M A!;
'
#enao
{
e#crea ( "Bii#ao inalida d, R! e n(lo" );
'
'
'
AA re#(ltado#
e#crea ( "Mod(lo re#(ltante: ", R );
e#crea ( "Arg(mento re#(ltante: ", A );
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&23
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'>I
G clculo do valor de uma integral definida+ usando o mJtodo da apro$imao por
trapJ)ios J feito dividindo o intervalo de integrao em : partes iguais e apro$imando
a funo+ em cada suFintervalo oFtido+ por um segmento de reta' G valor da integral J
calculado+ ento+ como a soma das reas dos diversos trapJ)ios formados'
A 7 2.i 4 .i4&6h+ rea de cada trapJ)io
h 7 -i4& ; -i 7 F ; a L :+ constante
Fa)er um algoritmo para determinar e escrever o valor de pi+ o #ual pode ser calculado
pela integral
algoritmo()
{
AA declaracao da# ariaei#
declare 8: real; AA alor a #er calc(lado
declare *1: real; AA o :rimeiro alor -(e a f(ncao a##(me
declare *!: real; AA o #eg(ndo alor -(e a f(ncao a##(me
declare L: real; AA Da#e do tra:eVio
declare a: inteiro; AA limite inferior de integracao
declare D: inteiro; AA limite #(:erior de integracao
declare ): real; AA a ariael inde:endente
declare N: inteiro; AA n(mero de :articoe# do interalo de integracao
declare ?: inteiro; AA contador do n(mero de tra:eVio# Ca #omado#
AA definicao da# condicoe# inciai#
a :& 9;
D :& 1;
N :& 199; AA alor arDitrariamente definido
) :& a;
AA inicialiVa o# ac(m(ladore#
8 :& 9;
AA calc(lo do incremento de /, a Da#e do tra:eVio
L :& ( D M a ) A N;
AA inicialiVacao da condicao de contorno
? :& 1;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&2&

&
3
'
&
&
dx
x
y
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
re:ita ate-(e ( ? && N . ) 6 D )
{
AA calc(lo de *
*1 :& 1 A ( 1 , 7otencia(),!));
*! :& 1 A ( 1 , 7otencia(),L,!));
AA ac(m(la a area 8 (alor de :i)
8 :& 8 , ( *1 , *! ) @ L A !;
AA conta o n(mero de tra:eVio# o( de :articoe#
? :& ? , 1;
AA incrementa ) :ara o :ro/imo alor do interalo ea,Df
) :& ) , L;
'
AA re#(ltado
e#crea ( "O alor calc(lado de 8 e ", 8 );
'
ComentrioB
- rea do trap.io "ase maior mais "ase menor ,e.es altura di,idido por =
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&2'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?=
Fa)er um algoritmo #ueB
leia um conEunto de ,> linhas+ contendo+ cada uma tr*s numeros inteiros positivos
2em #ual#uer ordem6
calcule o m$imo divisor comum entre os tr*s nHmeros lidos+ utili)ando o mJtodo
das divises sucessivas
escreva os tr*s nHmeros lidos e o "DC entre eles
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA n(mero de linKa# com dado#
declare A,B,C,MBC: inteiro; AA tre# n(mero# -(ai#-(er e o MBC
declare MA?, MEB, MEN:inteiro; AA o# n(mero# A,B,C ordenado#
declare T: inteiro; AA a(/iliar no# calc(lo#
declare R: inteiro; AA a(/iliar no# calc(lo#
AA definicao da# condicoe# inciai#
N :& !J; AA Ka !J linKa# com dado# (tre# n(mero# -(ai#-(er)
re:ita ate-(e ( N && 9 )
{
leia ( "informe o 1 n(mero: ", A );
leia ( "informe o ! n(mero: ", B );
leia ( "informe o " n(mero: ", C );
AA atriD(icoe# :ara re#g(ardar alore# ig(ai# -(e nao e#tao
AA #endo con#iderado# na ordenacao aDai/o
MA? :& A;
MEB :& B;
MEN :& C;
AA ordena o# tre# n(mero# lido#
#e ( A 6 B % A 6 C )
{
MA? :& A;
#e ( B 6 C )
{
MEB :& B;
MEN :& C;
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&2,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#enao
{
MEB :& C;
MEN :& B;
'
'
#enao
{
#e ( B 6 A % B 6 C )
{
MA? :& B;
#e ( A 6 C )
{
MEB :& A;
MEN :& C;
'
#enao
{
MEB :& C;
MEN :& A;
'
'
#enao
{
#e ( C 6 A % C 6 B )
{
MA? :& C;
#e ( A 6 B )
{
MEB :& A;
MEN :& B;
'
#enao
{
MEB :& B;
MEN :& A;
'
'
'
'
e#crea ( "O# n(mero# ordenado# #ao: ", MEN, " ", MEB, " ", MA? );
AA calc(la o MBC entre o# n(mero#, agora, ordenado#
AA calc(lo do MBC entre MA? e MEN
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&2-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
re:ita ate-(e ( MEN && 9 )
{
T :& 7arte?nteira ( MA? A MEN );
R :& MA? M T@MEN;
MA? :& MEN;
MEN :& R;
'
MBC :& MA?;
AA ordena o re#(ltado com o# o(tro# alore#
#e ( MEB 6 MBC )
{
MA? :& MEB;
MEN :& MBC;
'
#enao
{
MA? :& MBC;
MEN :& MEB;
'
AA calc(la o MBC entre o# n(mero#, agora, com noa ordenacao
AA calc(lo do MBC entre o# noo# MA? e MEN
re:ita ate-(e ( MEN && 9 )
{
T :& 7arte?nteira ( MA? A MEN );
R :& MA? M T@MEN;
MA? :& MEN;
MEN :& R;
'
MBC :& MA?; AA e#te e o MBC final
AA re#(ltado#
e#crea ( "N(mero#: ", A, ", ", B, ", ", C, " MBC & ", MBC );
N :& N M 1; AA conta (ma linKa :roce##ada
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&2.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?&
G nHmero (=,> possui a seguinte caracter%stica
(= 4 ,> 7 >> e >>
,
7 (=,>
Fa)er um algoritmo #ue pes#uise e imprima todos os nHmeros de #uatro algarismos
#ue apresentam tal caracter%stica
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA (m n(mero -(al-(er de E algari#mo#
declare 77: inteiro; AA o# doi# :rimeiro# algari#mo#
declare 55: inteiro; AA o# doi# (ltimo# algari#mo#
AA definicao da# condicoe# inciai#
N :& 1999; AA a:ena# n(mero# de E digito#
re:ita ate-(e ( N 6 ;;;; )
{
77 :& N A 199; AA :ega o# doi# :rimeiro# digito# de N
55 :& N M 77@199; AA :ega o# doi# (ltimo# digito# de N
AA te#ta :ela caracteri#tica
#e ( ( 77 , 55 )F! && N )
{
e#crea ( "encontrado: ", N );
'
N :& N , 1; AA :ro/imo n(mero de E digito#
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&2/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?&a
G nHmero (=,> possui a seguinte caracter%stica
(= 4 ,> 7 >> e >>
,
7 (=,>
Fa)er um algoritmo #ue pes#uise e imprima todos os nHmeros de #uatro algarismos
#ue apresentam tal caracter%stica
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA (m n(mero -(al-(er de E algari#mo#
declare 77: real; AA o# doi# :rimeiro# algari#mo#
declare 55: real; AA o# doi# (ltimo# algari#mo#
AA definicao da# condicoe# inciai#
N :& 1999; AA a:ena# n(mero# de E digito#
re:ita ate-(e ( N 6 ;;;; )
{
77 :& 7arte?nteira (NA199); AA :ega o# doi# :rimeiro# digito# de
N
55 :& 7arte?nteira (NM77@199); AA :ega o# doi# (ltimo# digito# de N
AA te#ta :ela caracteri#tica
#e ( 7otencia(77,55,!) && N )
{
e#crea ( "encontrado: ", N );
'
N :& N , 1; AA :ro/imo n(mero de E digito#
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&20
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?,
Dada uma e#uao diferencial X 7 f2$+X6 e a condio inicial X2-=6 7 .=+ pode;se
encontrar uma soluo apro$imada desta e#uao+ usando o seguinte mJtodoB
X& 7 X= 4 hf2-=+.=6
X, 7 X& 4 hf2-&+.&6
'''
.U4& 7 .U 4 hf2-U+.U6
onde h J um acrJscimo #ue se d aos valores de $'
h 7 -n ; -= L n+ onde -n J o limite superior do intervalo+ -= J o limite inferior do
intervalo e n J o nHmero de suFintervalos' Fa)er um algoritmo #ue encontre e escreva
as solues apro$imadas da e#uacao .^ 7 $X com .2=6 7 & no intervalo fechado de = a
&+ com n 7 &= suFintervalos
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA n(mero de #(Dinteralo#
declare )9: real; AA limite inferior do interalo
declare )n: real; AA limite #(:erior do interalo
declare K: real; AA acre#cimo :a##o a :a##o
declare *9: real; AA alor da :rimeira a:ro/imacao
declare *n: real; AA a# #(ce##ia# a:ro/imacoe#
declare ?: inteiro; AA contador :ara o n(mero de interalo#
AA definicao da# condicoe# inciai#
N :& 19; AA 19 #(Dinteralo#
)9 :& 9;
)n :& 1;
AA calc(lo do :a##o de / :ela e/:re##ao dada
K :& ( )n M )9 ) A N;
AA condicao inicial de :roce##amento
)n :& )9; AA :rimeiro alor do interalo
*n :& 1; AA alor da f(ncao no :ara )9
? :& 9;
re:ita ate-(e ( ? 6 N )
{
*n :& *9 , K @ )n @ *n;
*9 :& *n; AA o :ro/imo e f(ncao do anterior
)n :& )n , K; AA :ro/imo / no interalo e9,1f
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&21
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
? :& ? , 1; AA conta o n(mero de interalo#
'
AA re#(ltado
e#crea ( "A #ol(cao da e-(acao e : ", *n );
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
&22
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?(
Fa)er um algoritmo #ueB
calcule o nHmero de divisores dos nHmeros compreendidos entre (== e <==
escreva cada nHmero e o nHmero de divisores correspondentes
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA (m n(mero -(al-(er entre "99 e E99
declare ?: inteiro; AA contador :ara o n(mero de dii#ore#
declare T: real; AA -(ociente
declare B: inteiro; AA dii#ore# de N
declare 4: real; AA limite do dii#or de N
AA definicao da# condicoe# inciai#
N :& "99; AA alor inicial do interalo e"99,E99f
re:ita ate-(e ( N 6 E99 )
{
4 :& RaiV (N); AA limite #(:erior do# dii#ore# de N
? :& 9; AA o n(mero de dii#ore# :ara cada n(mero e
AA Vero inicialmente, :oi# ainda nao #e acKo( nenK(m
B :& 1; AA inicio do# dii#ore#
re:ita ate-(e ( B 6 4 )
{
T :& 7arte?nteira ( N A B );
AA erifica #e e dii#or e/ato
#e ( T @ B && N )
{
AA e dii#or e/ato
? :& ? , 1;
'
B :& B , 1; AA :ro/imo dii#or
'
AA re#(ltado#
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'33
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( "N(mero: ", N, " T(antidade de dii#ore#: ", ? );
N :& N , 1; AA :ro/imo N ate E99
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'3&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?<
Fa)er um algoritmo #ue+ dado &== nHmeros inteiros positivos+ calcule e imprima os
#ue so nHmeros perfeitos'
:otaB :Hmero perfeito J a#uele cuEa soma de seus divisores+ e$ceto ele prprio J igual
ao nHmero'
E$emploB ? J perfeito por#ue & 4 , 4 ( 7 ?
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA (m n(mero -(al-(er entre o# 199
declare 8: inteiro; AA #oma do# dii#ore# de N, com e/ce##ao de N
declare T: real; AA -(ociente
declare B: inteiro; AA dii#ore# de N
declare 4: real; AA limite do dii#or de N
AA definicao da# condicoe# inciai#
N :& 9; AA alor inicial do interalo e9,199f
AA definido arDitrariamente, a:ena# :ara e/em:lificar
re:ita ate-(e ( N 6 199 )
{
4 :& N A !; AA limite #(:erior do# dii#ore# de N
AA definido de##a forma :ara garantir -(e
AA :elo meno# a metade do n(mero #eCa te#tada
8 :& 9; AA a #oma do# dii#ore# de N
B :& 1; AA inicio do# dii#ore#
re:ita ate-(e ( B 6 4 )
{
T :& 7arte?nteira ( N A B );
AA erifica #e e dii#or e/ato
#e ( T @ B && N )
{
AA e dii#or e/ato
8 :& 8 , B;
'
B :& B , 1; AA :ro/imo dii#or
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'3'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
'
AA re#(ltado#
#e ( 8 && N )
{
e#crea ( "N(mero :erfeito: ", N );
'
N :& N , 1; AA :ro/imo N
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'3,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?>
Regresso linear J uma tJcnica estat%stica #ue aEusta uma e#uao linear 2da forma X
7 a$ 4 F6 a um conEunto de pontos dados' G proFlema consiste em achar uma
e#uao linear #ue melhor se aEuste aos pontos dados' Dm dos mJtodos empregados
J o dos m%nimos #uadrados+ #ue consiste em minimi)ar a soma dos #uadrados dos
desvios verticais dos pontos para a linha reta' As frmulas para os coeficientes a e F+
dado um conEunto de n pares de pontos 2$+X6 soB
Dma ve) achada a e#uao da reta+ J importante determinar a preciso de
aEustamento dessa linha aos dados reais' Dma medida disso J o coeficiente de
correlao R+ dado pela frmula '''
G intervalo de variao de R J de ;& 37 R 37 &' Nuanto mais pr$imo de & ou ;& ficar
o valor de R+ melhor ter sido o aEustamento da reta' Fa)er um algoritmo para ler e
imprimir um conEunto de pares de pontos 2$+X6 e calcular e escrever os valores de a+ F
e R
algoritmo()
{
AA declaracao da# ariaei#
declare a: real; AA coeficiente de / na e-(acao a & a/ , D
declare D: real; AA termo inde:endente na e-(acao a & a/ , D
declare N: inteiro; AA n(mero de :are# de :onto#
declare ?: inteiro; AA contador :ara N
declare /: real; AA aD#ci##a
declare a: real; AA ordenada
declare 8/: real; AA #oma do# /
declare 8a: real; AA #oma do# a
declare 87/a: real; AA #oma do# :rod(to# /a
declare 8T/: real; AA #oma do# -(adrado# de /
declare 8Ta: real; AA #oma do# -(adrado# de a
declare R: real; AA coeficiente de correlacao
declare BEN): real; AA denominador com e/:re##ao em /
declare BEN*: real; AA denominador com e/:re##ao em a
AA inicialiVacao do# ac(m(ladore#
8/ :& 9;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'3-
( )
' '
$
x x n
y x xy n
a

( )
' '
'
$ $
x x n
xy x x y
b

( ) ( )
,
_


,
_

' ' ' '


$
y y n x x n
y x xy n
R
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
8a :& 9;
87/a :& 9;
8T/ :& 9;
8Ta :& 9;
AA le o n(mero de :are# a #erem receDido#
leia ( "informe o n(mero de :are#: ", N );
AA inicialiVa o contador :ara N
? :& 9;
AA le o# :are# de n(mero# e faV a# deida# ac(m(lacoe#
re:ita ate-(e ( ? && N )
{
leia ( "informe o alor de /: ", / );
leia ( "informe o alor de a: ", a );
AA ac(m(la a #oma da# coordenada#
8/ :& 8/ , /;
8a :& 8a , a;
87/a :& 87/a , /@a;
8T/ :& 8T/ , 7otencia(/,!);
8Ta :& 8Ta , 7otencia(a,!);
AA conta o :ar -(e foi lido
? :& ? , 1;
'
AA o# denominadore# deem #er diferente# de Vero
BEN) :& N@8T/ M 7otencia(8/,!);
BEN* :& N@8Ta M 7otencia(8a,!);
#e ( BEN) $6 9 % BEN* $6 9 )
{
a :& ( N@87/a M 8/@8a ) A BEN);
D :& ( 8a@8-/ M 8/@87/a ) A BEN);
R :& ( N@87/a M 8/@8a ) A ( RaiV(BEN)) @ RaiV(BEN*) );
AA re#(ltado#
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'3.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( "Coeficiente a & ", a , " D & ", D, " e R & ", R );
'
#enao
{
e#crea ( "denominadore# n(lo#" );
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'3/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'??
Cap%cuas so nHmeros #ue tem o mesmo valor+ se lidos da es#uerda para a direita ou
da direita para a es#uerda' Fa)er um algoritmo #ue determine e escreva todos os
nHmeros inteiros menores #ue &='=== #ue so cap%cuas e #uadrados perfeitos ao
mesmo tempo'
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA (m n(mero -(al-(er entre 9 e 19R999
declare A,B,C,B: inteiro; AA a(/iliare#
declare R: real; AA raiV do n(mero N
AA definicao da# condicoe# inciai#
N :& 9; AA alor inicial do interalo e9,19R999f
AA n(mero# com 1 digito
re:ita ate-(e ( N 6 ; )
{
AA :ara n(mero# com a:ena# 1 digito Da#ta erificar
AA #e ele e (m -(adrado :erfeito
R :& RaiV (N);
R :& 7arte?nteira(R);
#e ( R@R && N )
{
e#crea ( N );
'
N :& N , 1;
'
AA n(mero# com ! digito#
re:ita ate-(e ( N 6 ;; )
{
AA erifica #e e -(adrado :erfeito
R :& RaiV (N);
R :& 7arte?nteira(R);
#e ( R@R && N )
{
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'30
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
AA erifica #e e ca:ic(a
A :& 7arte?nteira ( N A 19 );
B :& 7arte?nteira ( N M A @ 19 );
#e ( A && B )
{
e#crea ( N );
'
'
N :& N , 1;
'
AA n(mero# com " digito#
re:ita ate-(e ( N 6 ;;; )
{
AA erifica #e e -(adrado :erfeito
R :& RaiV (N);
R :& 7arte?nteira(R);
#e ( R@R && N )
{
AA erifica #e e ca:ic(a
A :& 7arte?nteira ( N A 199 );
B :& 7arte?nteira ( N M A @ 199 ) A 19;
#e ( A && B )
{
e#crea ( N );
'
'
N :& N , 1;
'
AA n(mero# com E digito#
re:ita ate-(e ( N 6 ;;;; )
{
AA erifica #e e -(adrado :erfeito
R :& RaiV (N);
R :& 7arte?nteira(R);
#e ( R@R && N )
{
AA erifica #e e ca:ic(a
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'31
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
A :& 7arte?nteira ( N A 1999 );
B :& 7arte?nteira ( N M A @ 19999 ) A 199;
C :& 7arte?nteira ( N M A@1999 M B@199 ) A 19;
B :& N M A@1999 M B@199 M C@19;
#e ( A && B % B && C )
{
e#crea ( N );
'
'
N :& N , 1;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'32
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'??a
Cap%cuas so nHmeros #ue tem o mesmo valor+ se lidos da es#uerda para a direita ou
da direita para a es#uerda' Fa)er um algoritmo #ue determine e escreva todos os
nHmeros inteiros menores #ue &='=== #ue so cap%cuas'
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA (m n(mero -(al-(er entre 9 e 19R999
declare A,B,C,B,E: inteiro; AA a(/iliare#
AA definicao da# condicoe# inciai#
N :& 9; AA alor inicial do interalo e9,19R999f
AA n(mero# com 1 digito
re:ita ate-(e ( N 6 199999 )
{
#e ( N $& ; )
{
AA todo# o# n(mero# com 1 digito #ao ca:ic(a#
e#crea ( N );
'
#enao
{
#e ( N $& ;; )
{
AA n(mero# com ! digito#
A :& 7arte?nteira ( N A 19 );
B :& 7arte?nteira ( N M A @ 19 );
#e ( A && B )
{
e#crea ( N );
'
'
#enao
{
#e ( N $& ;;; )
{
AA n(mero# com " digito#
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
A :& 7arte?nteira ( N A 199 );
B :& 7arte?nteira ( N M A @ 199 );
#e ( A && B )
{
e#crea ( N );
'
'
#enao
{
#e ( N $& ;;;; )
{
AA n(mero# com E digito#
A :& 7arte?nteira ( N A 1999 );
B :& 7arte?nteira ( N M A @ 1999 ) A 199;
C :& 7arte?nteira ( N M A@1999 M B@199 ) A 19;
B :& N M A@1999 M B@199 M C@19;
#e ( A && B % B && C )
{
e#crea ( N );
'
'
#enao
{
AA n(mero# com J digito#
A :& 7arte?nteira ( N A 19999 );
B :& 7arte?nteira ( N M A @ 19999 ) A 1999;
C :& 7arte?nteira ( N M A@19999 M
B@1999 ) A 199;
B :& 7arte?nteira ( N M A@19999 M B@1999 M
C@199 ) A 19;
E :& N M A@19999 M B@1999 M C@199 M B@19;
#e ( A && E % B && B )
{
e#crea ( N );
'
'
'
'
'
N :& N , 1;
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?@
:Hmero primo J a#uele #ue s J divis%vel por ele mesmo e pela unidade' Fa)er um
algoritmo #ue determine e escreva os nHmeros primos compreendidos entre >'=== e
@'==='
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA (m n(mero inteiro entre JR999 e WR999
declare B: inteiro; AA :o##iei# dii#ore# de N
declare R: real; AA -(ociente a(/iliar
declare 7: inteiro; AA indica #e (m n(mero e :rimo o( n3o
AA definicao da# condicoe# inciai#
N :& J991; AA alor inicial do interalo eJ999,W999f
re:ita ate-(e ( N 6 W999 )
{
AA inicialiVacao do# dii#ore# :ara cada n(mero N
B :& "; AA o# n(mero# :are# nao #erao te#tado#
7 & 1; AA indica -(e e :rimo
re:ita ate-(e ( B 6 N A ! )
{
AA a metade do n(mero N e o limite #(:erior de te#te :oi#
AA e o maior alor -(e diide N
AA erifica #e B e dii#or de N
R :& Re#to ( N, B );
#e ( R && 9 )
{
AA B e dii#or, interrom:e o laco
7 :& 9; AA indica -(e nao e :rimo
interrom:a;
'
B :& B , !; AA :ro/imo dii#or, a:ena# o# im:are#
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
#e ( 7 && 1 )
{
AA o n(mero N e :rimo
e#crea (N);
'
N :& N , !; AA te#tar a:ena# o# n(mero# im:are#
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?C
Fa)er um algoritmo #ueB
leia um conEunto de linhas contendo+ cada uma+ um numero inteiro+ na Fase &=+ de
atJ > d%gitos' A Hltima linha contem o valor )ero'
transforme esse nHmero da Fase &= para a Fase ,
escreva o nHmero na Fase &= e na Fase ,
algoritmo()
{
AA declaracao da# ariaei#
declare N: inteiro; AA (m n(mero inteiro -(la-(er de ate J digito#
declare R: inteiro; AA re#to da# dii#oe# de N :or !
declare A5): inteiro; AA (ma ariael a(/iliar c(Co alor inicial e N
AA incialiVacao da condicao de contorno
N :& 1;
re:ita ate-(e ( N && 9 )
{
AA leit(ra do n(mero N
leia ( "informe (m n(mero inteiro: ", N );
#e ( N $6 9 )
{
A5) :& N; AA :re#erar o alor de N -(e dee #er mo#trado
e#crea ( "Ba#e !:" );
re:ita ate-(e ( A5) && 9 )
{
R :& Re#to ( A5), ! );
e#crea ( R );
A5) :& A5) A !;
'
e#crea ( "Ba#e 19: ", N );
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?Ca
Fa)er um algoritmo #ueB
leia um conEunto de linhas contendo+ cada uma+ um nHmero inteiro+ na Fase &=+ de
atJ > d%gitos' A Hltima linha contem o valor )ero'
transforme esse numero da Fase &= para a Fase ,
escreva o numero na Fase &= e na Fase ,
algoritmo()
{
AA declaracao da# ariaei#
declare BEC: inteiro; AA (m n(mero inteiro -(la-(er de ate J digito#
declare R1: inteiro; AA re#to da# dii#oe# de N :or !
declare A5): inteiro; AA (ma ariael a(/iliar c(Co alor inicial e N
declare B?N: cadeia; AA armaVena a re:re#entacao Dinaria de N
declare R!: cadeia; AA cadeia corre#:ondente ao inteiro R1
AA inicialiVacao da condicao de contorno
BEC :& 1; AA ca#o contrario, nao entra no laco :oi# o alor inicial
AA de -(al-(er ariael e VeroR
re:ita ate-(e ( BEC && 9 )
{
AA leit(ra do n(mero decimal BEC
leia ( "informe (m n(mero inteiro: ", BEC );
#e ( BEC $6 9 )
{
A5) :& BEC; AA :re#erar o alor de N -(e dee #er mo#trado
B?N :& " "; AA inicialiVa a ariael B com e#:aco em Dranco
re:ita ate-(e ( A5) && 9 )
{
A@ de#cricao do :roce##o
:ega o re#to da dii#ao de N :or !
tran#forma em cadeia
armaVena na ariael B
@@@@@A
R1 :& Re#to ( A5), ! );
R! :& ?nteiro7araCadeia(R1);
B?N :& concatena ( R!, B?N );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
A5) :& A5) A !; AA :ro/imo -(ociente
'
e#crea ( "Ba#e 19: ", BEC, " Ba#e !: ", B?N );
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?CF
Fa)er um algoritmo #ueB
leia um conEunto de linhas contendo+ cada uma+ um nHmero inteiro+ na Fase &=+ de
atJ > d%gitos' A Hltima linha contem o valor )ero' transforme esse nHmero da Fase &=
para Fase , e escreva o nHmero na Fase &= e na Fase ,
algoritmo()
{
AA declaracao da# ariaei#
declare BEC: inteiro; AA (m n(mero inteiro -(la-(er de ate J digito#
declare R1: inteiro; AA re#to da# dii#oe# de N :or !
declare A5): inteiro; AA (ma ariael a(/iliar c(Co alor inicial e N
declare B?N: cadeia; AA armaVena a re:re#entacao Dinaria de N
declare R!: cadeia; AA cadeia corre#:ondente ao inteiro R1
AA inicialiVacao da condicao de contorno
BEC :& 1; AA ca#o contrario, nao entra no laco :oi# o alor inicial
AA de -(al-(er ariael e VeroR
re:ita ate-(e ( BEC && 9 )
{
AA leit(ra do n(mero decimal BEC
leia ( "informe (m n(mero inteiro: ", BEC );
#e ( BEC $6 9 )
{
A5) :& BEC;
AA :ara :re#erar o alor de N -(e dee #er mo#trado
B?N :& " "; AA inicialiVa a ariael B com e#:aco em Dranco
re:ita ate-(e ( A5) && 9 )
{
R1 :& Re#to ( A5), ! );
AA :ega o re#to da dii#ao de N :or !
R! :& ?nteiro7araCadeia(R1);
AA tran#forma em cadeia
B?N :& R! , B?N; AA armaVena na ariael B
A5) :& A5) A !; AA :ro/imo -(ociente
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
e#crea ( "Ba#e 19: ", BEC, " Ba#e !: ", B?N );
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'&2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
ProFlema &'&,'?I
Fa)er um algoritmo #ueB
leia um conEunto de linhas contendo+ cada uma+ um nHmero inteiro+ na Fase ,' A
Hltima linha contem o valor )ero'
transforme esse nHmero da Fase , para a Fase &=
escreva o nHmero na Fase , e na Fase &=
algoritmo()
{
AA declaracao da# ariaei#
declare B?N: cadeia; AA armaVena a cadeia Dinaria informada
declare B!: inteiro; AA armaVena o n(merico na Da#e !
declare BEC: inteiro; AA re:re#entacao decimal de B?N
declare N: inteiro; AA o alor de cada (m do# digito# da cadeia Dinaria
declare A5)1: inteiro; AA com:rimento da cadeia Dinaria
declare A5)!: cadeia; AA cada (m do# digito# da cadeia Dinaria B?N
declare ?: inteiro; AA o e/:oente da Da#e
AA inicialiVacao da condicao de contorno
B! :& 1;
re:ita ate-(e ( B! && 9 )
{
AA leit(ra do n(mero na Da#e !
leia ( "informe (m n(mero na Da#e !: ", B?N );
B! :& Cadeia7ara?nteiro(B?N);
#e ( B! $6 9 )
{
A5)1 :& Com:rimento (B?N);
AA de#coDre -(anto# digito# tem na cadeia
BEC :& 9; AA inicialiVa a ariael BEC com Vero
? :& 9; AA e/:oente inicial da Da#e (!)
re:ita ate-(e ( A5)1 && 9 )
{
A5)! :& 8(Dcadeia ( B?N, A5)1, 1 );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
''3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
N :& Cadeia7ara?nteiro ( A5)! );
BEC :& BEC , N @ (!F?);
A5)1 :& A5)1 M 1;
? :& ? , 1;
'
e#crea ( "Ba#e !: ", B?N, " Ba#e 19: ", BEC );
'
'
'
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
''&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
"anual de Refer*ncia do !nterpretador
Lall g (m inter:retador de algoritmo#R
Lall :o##(i (m conC(nto de in#tr(hie# :rg :rogramada# -(e :ermite ao#
#e(# (#(1rio# e/ec(tarem #e(# :rograma#R 7ara i##o, ele :o##(i (m conC(nto
de :alara# e in#tr(hie# #imilare# j# encontrada# na# ling(agen# de
:rogramah3o tradicionai#R
7artic(larmente, #(a #inta/e #e a##emelKa j #inta/e da ling(agem C, o(
#eCa, o de#enolimento do# algoritmo# g Da#eado na dii#3o do :rograma em
m2d(lo#, denominado# f(nhie#, a# -(ai# #3o identificada# :or :ar[nte#e# ( )
colocado# a:2# o #e( nome, e, #(a# in#tr(hie# #3o agr(:ada# em Dloco#, o#
-(ai# #3o delimitado# :or cKae# { ' e, cada comando do Dloco g finaliVado com
(m :onto e Hrg(la ;R
A# ling(agen# mai# moderna# e :odero#a# tai# como C,,, `aa, Bel:Ki,
Ii#(al Ba#ic, C,, B(ilder, etc, (tiliVam e##a #inta/e o( ariante# delaR
8aDemo# da teoria de l2gica de :rogramah3o -(e (m :roDlema g
re#olido atrag# de (m algoritmo, i#to g, o e#:aho do :roDlema g ma:eado
:ara o e#:aho do algoritmo faVendoM#e aD#trahie# em e#tr(t(ra# de dado# e
:roce##o# -(e mani:(lam e##a# e#tr(t(ra# de dado#R A# e#tr(t(ra# de dado#
#3o ma:eada# em ari1ei# e o# :roce##o# em f(nhie#R
Lall g e#tr(t(rado, o( #eCa, ele :ermite a criah3o de f(nhie# i#olada#
contendo ari1ei# locai#R Be##e modo, o# no##o# algoritmo# con#i#tem em (ma
coleh3o de (ma o( mai# f(nhie# com ari1ei# locai#R 5ma f(nh3o g com:o#ta
de (m nome, (ma li#ta de :ar0metro# entre :ar[nte#e# ( ) e o Dloco de c2digo
a##ociadoR O Dloco comeha com (m aDre cKae# { e, g #eg(ido de (ma o( mai#
in#tr(hie# finaliVada# com :onto e Hrg(la, e termina em (m fecKa cKae# 'R
5ma in#tr(h3o comeha com (ma :alara re#erada, tai# como: #e, ca#o, re:ita,
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'''
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
en-(anto, :ara o( ent3o g (ma e/:re##3o, tai# como: / :& 19, V :& V , !, leia(Y),
e#crea (Z)R
>odo# o# no##o# :rograma# comeham com (ma cKamada j f(nh3o
:rinci:al denominada algoritmo( ) e terminam com o kltimo fecKa cKae# '
de##a f(nh3oR T(ai#-(er o(tra# f(nhie# contida# no :rograma :reci#am #er
cKamada# direta o( indiretamente a :artir da f(nh3o :rinci:alR O fato de
e/i#tir (ma f(nh3o :rinci:al g :ara informar ao inter:retador Lall onde ele
dee iniciar a e/ec(h3o do algoritmoR
Bentro da :ro:o#ta inicial, a #aDer, a de definirmo# (m re:ert2rio de
:alara#, (m #(DconC(nto da lHng(a 7ort(g(e#a, j# -(ai# #eriam atriD(ida (ma
#em0ntica e#:ecial :ara a de#crih3o do# algoritmo#, a:re#entamo# aDai/o a#
eleita#R 5ma eV -(e e##a# :alara# a:re#entam (m #ignificado :reiamente
definido :elo inter:retador, ela# n3o :odem #er (tiliVada# :ara o(tro fim,
#en3o a-(ele a foi originalmente atriD(idoR
83o ela#, diidida# em cla##e#:
7alara# re#erada#
=(nhie# de interface
=(nhie# matem1tica#
=(nhie# de cadeia
=(nhoe# de Ar-(io
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'',
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
7alara# re#erada#
A# :alara# re#erada# e#t3o relacionada# com a definih3o de ti:o# e cla##e#
de dado# e com a# e#tr(t(ra# de controle do fl(/o de e/ec(h3o, #3o ela#:
ti:o, caracter, cadeia, inteiro, real, Cla##e, D1#ico, etor, matriV, c(Do,
regi#tro, conC(nto, ar-(io, fl(/o, #e, #enao, #elecao, ca#o, re:ita, ate-(e,
en-(anto, :ara, ate, :a##o, retorne, interrom:a, contin(e
8HmDolo# re#erado#
O# #HmDolo# re#erado# e#t3o relacionada# com a# o:erahie# matem1tica# e
o(tra# o:erahie# definida# no inter:retador
, M @ A U F :& & $M && l 6 6&
$ $& % . d " P R ( ) { ' e f , ;
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
''-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
=(nhie# de interface: A# f(nhie# de interface #3o a# in#tr(hie# -(e no#
:ermitem realiVar (m di1logo entre no##o :rograma e o (#(1rioR
E#crea( )
4eia( )
7o#icao( )
Mold(ra( )
7a(#a( )
>ecla( )
Bireito#( )
Co:aRigKt( )
4im:a>ela ( );
?m:rima ( );
4inKa ( );
Col(na ( );
CorBo>e/to ( );
CorBo=(ndo ( );
8inta/e da# f(nhie# de interface
1RE#crea( )
A f(nh3o e#crea tem :or oDCetio realiVar a #aida de informahie# :ara a telaR
A f(nh3o e#crea() n3o retorna alorR Ela g cKamada a #eg(inte #inta/e:
E#crea ( $e/:r6, RRR );
Onde $e/:r6 re:re#enta (ma e/:re##3o -(al-(er, como :or e/em:lo, (ma
cadeia o( (ma ari1elR A# retic[ncia# #ignificam -(e a f(nh3o aceita mai# de
(m arg(mento e -(ando i##o ocorrer, ele# deem #er #e:arado# :or Hrg(laR
E/em:lo#:
E#crea ( mfernandon );
E#crea ( mo alor g: m, );
E#crea ( mo me( nome g m, /, me o #e( g m, a );
!R4eia( )
A f(nh3o leia tem :or oDCetio realiVar a entrada de informahie# :ara o
:roce##adorR A f(nh3o leia() n3o retorna alorR
Ela g cKamada com a #eg(inte #inta/e:
4eia ( ee/:rcf, $ar6 );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
''.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Onde ee/:rcf g (ma e/:re##3o do ti:o cadeia e $ar6 g o nome de (ma ari1elR
O# colcKete# e f enolendo e/:rc indicam -(e e##a e/:re##3o g o:cionalR
E/em:lo#:
4eia ( / );
4eia ( minforme o alor de Dn, D );
"R7o#icao ( )
A f(nh3o :o#icao() tem :or oDCetio :o#icionar o c(r#or na telaR A tela g
diidida em !J linKa# e <9 col(na#R A f(nh3o :o#icao() n3o retorna alorR
Ela g cKamada com a #eg(inte #inta/e:
7o#icao ( e/:rN1, e/:rN! ); onde e/:rN1 g (ma e/:re##3o n(merica de alor
inteiro, -(e re:re#enta a linKa onde deer1 #er :o#icionado o c(r#or e, e/:rN!
g (ma e/:re##3o de alor inteiro, -(e re:re#enta a col(na onde deer1 #er
:o#icionado o c(r#orR
E/em:lo#:
7o#icao ( E, E9 );
7o#icao ( 4, C );
ERMold(ra( )
A f(nh3o mold(ra() tem :or oDCetio faVer (m -(adro com linKa# d(:la# na
telaR A f(nh3o mold(ra() n3o retorna alorR
Ela g cKamada com a #eg(inte #inta/e:
Mold(ra ( e/:rN1, e/:rN!, e/:rN", e/:rNE ); onde e/:rN1, e/:rN!, e/:rN"
e e/:rNE #3o e/:re##ie# n(mgrica# do ti:o inteiro -(e re:re#entam a#
coordenada# do# canto# #(:erior e#-(erdo e inferior direito do -(adroR A#
coordenada# #3o e#:ecificada# em :are# de nkmero# inteiro#, onde o :rimeiro
re:re#enta a linKa e o #eg(ndo re:re#enta a col(naR
E/em:lo#:
Mold(ra ( E, J, 1N, N9 );
Mold(ra ( 41, C1, 4!, C! );
JR7a(#a( )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
''/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
A f(nh3o :a(#a() tem :or oDCetio faVer (ma interr(:h3o na e/ec(h3o do
algoritmo e ag(ardar a tecla $enter6 #er :re##ionadaR A f(nh3o :a(#a() n3o
retorna alorR
Ela g cKamada com a #eg(inte #inta/e:
7a(#a(); A f(nh3o n3o tem arg(mento#R
E/em:lo#:
7a(#a();
E#crea ( mtecle $enter6 :ara contin(arn ); 7a(#a();
NR>ecla( )
A f(nh3o tecla() tem :or oDCetio faVer (ma interr(:h3o na e/ec(h3o do
algoritmo e ag(ardar atg -(e (ma tecla -(al-(er #eCa :re##ionadaR T(ando
ent3o, (ma tecla g :re##ionada, a f(nh3o tecla() retorna a tecla -(e foi
:re##ionadaR O alor de retorno da f(nh3o g do ti:o caracterR
E/em:lo#:
C :& tecla( ); onde C dee #er (ma ari1el do ti:o caracterR
WRBireito#( )
A f(nh3o direito#() tem :or oDCetio e/iDir a tela de direito# a(torai# do
inter:retadorR A f(nh3o direito#() n3o retorna alorR
Ela g cKamada com a #eg(inte #inta/e:
Bireito#();
<RCo:aRigKt( )
A f(nh3o Co:aRigKt() tem :or oDCetio e/iDir a men#agem de co:arigKt do
inter:retadorR A f(nh3o co:arigKt() n3o retorna alorR
Ela g cKamada com a #eg(inte #inta/e:
Co:aRigKt();
;R4im:a>ela ( );
A f(nh3o 4im:a>ela() tem :or oDCetio lim:ar a tela do HdeoR A f(nh3o n3o
retorna alorR
Ela g cKamada com a #eg(inte #inta/e:
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
''0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
4im:a>ela();
19R?m:rima ( );
A f(nh3o ?m:rima() tem :or oDCetio eniar a #aida de informahie# :ara a
im:re##oraR A f(nh3o im:rima() n3o retorna alorR
Ela g cKamada com a #eg(inte #inta/e:
?m:rima ( E/:r, RRR ); onde E/:rC g (ma e/:re##3o do ti:o cadeia e Iar g o
nome de (ma ari1elR
E/em:lo#:
?m:rima ( m>e#tando a im:re##oran );
?m:rima ( mO :reco do :rod(to e m, 7 );
11R4inKa ( );
A f(nh3o linKa() tem :or oDCetio retorna o alor da linKa na -(al encontraM#e
:o#icionado o c(r#orR A f(nh3o linKa() retorna (m alor do ti:o inteiro entre 1
e !JR
Ela g cKamada com a #eg(inte #inta/e:
N :& 4inKa( ); onde N dee #er (ma ari1el do ti:o inteiroR
E/em:lo#:
4 :& 4inKa( );
E#crea ( mA linKa onde e#ta o c(r#or e m, 4 );
1!RCol(na ( );
A f(nh3o col(na() tem :or oDCetio retorna o alor da col(na na -(al encontraM
#e :o#icionado o c(r#orR A f(nh3o col(na() retorna (m alor do ti:o inteiro
entre 1 e <9R
Ela g cKamada com a #eg(inte #inta/e:
N :& Col(na( ); onde N dee #er (ma ari1el do ti:o inteiroR
E/em:lo#:
C :& Col(na( );
E#crea ( mA col(na onde e#ta o c(r#or e m, C );
1"RCorBo>e/to ( );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
''1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
A f(nh3o CorBote/to() tem :or oDCetio e#taDelecer a cor com -(e #er1
e/iDido o# te/to# com a f(nh3o e#crea()R A f(nh3o CorBo>e/to() n3o retorna
alorR A f(nh3o e#:era (m arg(mento -(e re:re#enta (ma cor a #er
e#taDelecida de (m (nier#o de 1J core#R
A f(nh3o g cKamada com a #eg(inte #inta/e:
CorBo>e/to ( 19 );
CorBo>e/to ( C ); onde C re:re#enta o alor de (ma cor
1ERCorBo=(ndo ( );
A f(nh3o CorBo=(ndo() tem :or oDCetio e#taDelecer a cor de f(ndo com -(e
#er1 e/iDido o# te/to# com a f(nh3o e#crea()R A f(nh3o CorBo=(ndo() n3o
retorna alorR A f(nh3o e#:era (m arg(mento -(e re:re#enta (ma cor a #er
e#taDelecida de (m (nier#o de 1J core#R
A f(nh3o g cKamada com a #eg(inte #inta/e:
CorBo=(ndo ( 19 );
CorBo=(ndo ( C ); onde C re:re#enta o alor de (ma cor
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
''2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
=(nhie# matem1tica#: A# f(nhie# matem1tica# #3o a# in#tr(hie# -(e no#
:ermitem (tiliVar de rec(r#o# matem1tico# fre-bentemente encontrado# e
#olicitado# na re#ol(h3o de alg(m :roDlemaR Ela# foram im:lementada# :or-(e
de##a forma tornam mai# f1cil realiVar o# c1lc(lo#, o -(e de o(tra forma
deeria #er de#enolido :elo (#(1rioR
8inal( )
IalorAD#( )
7arte?nteira( )
7arteBecimal( )
T(ociente( )
Re#to( )
RaiV( )
7otencia( )
8eno( )
Co#eno( )
>angente( )
Arco8eno ( )
ArcoCo#eno ( )
Arco>angente ( )
E/:onencial( )
4ogBec( )
4ogNe:er( )
4ogaritmo ( )
1R8inal( )
A f(nh3o #inal() retorna o alor inteiro 1 #e o arg(mento :a##ado j f(nh3o for
:o#itio e, retorna _1 #e o arg(mento :a##ado j f(nh3o for negatioR
A f(nh3o g cKamada com a #eg(inte #inta/e:
8 :& 8inal ( e/:rN ); onde e/:rN g (ma e/:re##3o de cla##e n(mgrica ( ti:o
inteiro o( real) e 8 g (ma ari1el do ti:o inteiroR
!RIalorAD#( )
A f(nh3o IalorAD#() retorna o alor aD#ol(to de #e( arg(mento, i#to g, o #e(
m2d(loR O arg(mento dee #er (ma e/:re##3o de cla##e n(mgrica ( do ti:o
inteiro o( real)R
Ela g cKamada com a #eg(inte #inta/e:
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
I :& IalorAD# ( e/:rN ); onde e/:rN g (ma e/:re##3o n(mgrica, inteiro o(
real, e I g (ma ari1el n(mgricaR A ari1el I dee #er do me#mo ti:o de
e/:rN :ara -(e o alor de retorno n3o #eCa alteradoR
E/em:lo#:
N :& IalorAD# ( MJ );
"R7arte?nteira( )
A f(nh3o 7arte?nteira() retorna a :arte inteira de #e( arg(mento, i#to g, o#
dHgito# decimai# #3o ignorado#R
Ela g cKamada com a #eg(inte #inta/e:
N :& 7arte?nteira ( e/:rN );
ER7arteBecimal( )
A f(nh3o 7arteBecimal() retorna a :arte decimal de #e( arg(mento, i#to g, o#
dHgito# inteiro# #3o ignorado#R
Ela g cKamada com a #eg(inte #inta/e:
N :& 7arteBecimal ( e/:rN );
JRT(ociente( )
A f(nh3o T(ociente() retorna o -(ociente entre #e(# arg(mento#R O alor de
retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
T :& T(ociente ( e/:rN1, e/:rN! ); onde e/:rN1 e e/:rN! #3o e/:re##ie#
n(mgrica# e e/:rN! dee #er diferente de VeroR A f(nh3o retorna o alor de
e/:rN1 A e/:rN!R
E/em:lo#:
T :& T(ociente ( /, a );
NRRe#to( )
A f(nh3o Re#to() retorna o re#to da dii#3o inteira entre #e(# arg(mento#R O
alor de retorno g do ti:o inteiroR
Ela g cKamada com a #eg(inte #inta/e:
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
R :& Re#to ( e/:rN1, e/:rN! ); onde e/:rN1 e e/:rN! #3o e/:re##ie#
n(mgrica# e e/:rN! dee #er diferente de VeroR A f(nh3o retorna o alor do
re#to de e/:rN1 A e/:rN!R
E/em:lo#:
R :& Re#to ( /, a );
WRRaiV( )
A f(nh3o RaiV() retorna a raiV -(adrada de #e( arg(mentoR O alor de retorno
g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
R :& RaiV ( e/:rN ); onde e/:rN g e/:re##3o n(mgrica e e/:rN dee #er
:o#itioR
E/em:lo#:
R :& RaiV ( / );
<R7otencia( )
A f(nh3o 7otencia() retorna a :otenciah3o entre #e(# arg(mento#R O alor de
retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
7 :& 7otencia ( e/:rN1, e/:rN! ); onde e/:rN1 e e/:rN! #3o e/:re##ie#
n(mgrica#R A f(nh3o retorna o alor de e/:rN1 eleado a e/:rN!R
E/em:lo#:
7 :& 7otencia ( !, J );
;R8eno( )
A f(nh3o 8eno() retorna o #eno de #e( #e( arg(mentoR O alor de retorno g do
ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
8 :& 8eno ( e/:rN, > ); onde e/:rN g o alor do arco o( 0ng(lo e o #eg(ndo
arg(mento > e#:ecifica de o alor de e/:rN -(e e#t1 #endo :a##ado e#t1 em
gra(# o( radiano#R
E/em:lo#:
8 :& 8eno ( a, mGn );
8 :& 8eno ( a, mRn );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
','
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
19RCo#eno( )
A f(nh3o Co8eno() retorna o co##eno de #e( #e( arg(mentoR O alor de
retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
C :& Co8eno ( e/:rN, > ); onde e/:rN g o alor do arco o( 0ng(lo e o #eg(ndo
arg(mento > e#:ecifica de o alor de e/:rN -(e e#t1 #endo :a##ado e#t1 em
gra(# o( radiano#R
E/em:lo#:
8 :& Co8eno ( a, mGn );
8 :& Co8eno ( a, mRn );
11R>angente( )
A f(nh3o >angente() retorna a tangente de #e( #e( arg(mentoR O alor de
retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
> :& >angente ( e/:rN, > ); onde e/:rN g o alor do arco o( 0ng(lo e o #eg(ndo
arg(mento > e#:ecifica de o alor de e/:rN -(e e#t1 #endo :a##ado e#t1 em
gra(# o( radiano#R
E/em:lo#:
> :& >angente ( a, mGn );
8 :& >angente ( a, mRn );
1!RArco8eno ( )
A f(nh3o Arco8eno() retorna o arco o( 0ng(lo c(Co #eno g o #e( arg(mentoR O
alor de retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
A :& Arco8eno ( e/:rN, > ); onde e/:rN g o alor do #eno do arco o( 0ng(lo
-(e #e de#eCa #aDer, e o #eg(ndo arg(mento > e#:ecifica #e o alor de retorno
da f(nh3o deer1 #er dado em gra(# o( radiano#R
E/em:lo#:
A :& Arco8eno ( a, mGn );
A :& Arco8eno ( a, mRn );
1"RArcoCo#eno ( )
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
A f(nh3o ArcoCo8eno() retorna o arco o( 0ng(lo c(Co co##eno g o #e(
arg(mentoR O alor de retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
A :& ArcoCo#eno ( e/:rN, > ); onde e/:rN g o alor do co##eno do arco o(
0ng(lo -(e #e de#eCa #aDer, e o #eg(ndo arg(mento > e#:ecifica #e o alor de
retorno da f(nh3o deer1 #er dado em gra(# o( radiano#R
E/em:lo#:
A :& ArcoCo8eno ( a, mGn );
A :& ArcoCo8eno ( a, mRn );
1ERArco>angente ( )
A f(nh3o Arco>angente() retorna o arco o( 0ng(lo c(Ca tangente g o #e(
arg(mentoR O alor de retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
A :& Arco>angente ( e/:rN, > ); onde e/:rN g o alor da tangente do arco o(
0ng(lo -(e #e de#eCa #aDer, e o #eg(ndo arg(mento > e#:ecifica #e o alor de
retorno da f(nh3o deer1 #er dado em gra(# o( radiano#R
E/em:lo#:
A :& Arco>angente ( a, mGn );
A :& Arco>angente ( a, mRn );
1JRE/:onencial ( )
A f(nh3o E/:onencial() retorna (ma :ot[ncia do nkmero de ne::er c(Co
e/:oente g o #e( arg(mentoR O alor de retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
E :& E/:onencial ( e/:rN ); onde e/:rN g (ma e/:re##3o n(mgrica a -(al #e
de#eCa elear o nkmero eR
E/em:lo#:
E :& E/:onencial ( " );
1NR4ogBec ( )
A f(nh3o 4ogBec() retorna o logaritmo decimal da e/:re##3o -(e foi :a##ada
como arg(mento :ara a f(nh3oR O alor de retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',-
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
4 :& 4ogBec ( e/:rN ); onde e/:rN g (ma e/:re##3o n(mgrica a -(al #e de#eCa
o logarHtmo decimalR
E/em:lo#:
4 :& 4ogBec ( 1!" );
1WR4ogNe:er ( )
A f(nh3o 4ogNe:er() retorna o logaritmo ne:eriano, da e/:re##3o -(e foi
:a##ada como arg(mento :ara a f(nh3oR O alor de retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
4 :& 4ogNe:er ( e/:rN ); onde e/:rN g (ma e/:re##3o n(mgrica a -(al #e
de#eCa o logarHtmo ne:erianoR
E/em:lo#:
4 :& 4ogNe:er ( ! );
1<R4ogaritmo ( )
A f(nh3o 4ogaritmo() retorna o logaritmo, em (ma Da#e -(al-(er,decimal,
ne:eriano o( o(tra, da e/:re##3o -(e foi :a##ada como arg(mento :ara a
f(nh3oR O alor de retorno g do ti:o realR
Ela g cKamada com a #eg(inte #inta/e:
4 :& 4ogaritmo ( e/:rN1, e/:rN! ); onde e/:rN1 g (ma e/:re##3o n(mgrica a
-(al #e de#eCa o logarHtmo, e e/:rN! g (ma e/:re##ao n(merica, do ti:o
inteiro o( rela, -(e re:re#enta a Da#eR
E/em:lo#:
4 :& 4ogaritmo ( <, 19 );
4 :& 4ogaritmo ( <, e );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',.
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
=(nhie# de cadeia: A# f(nhie# de cadeia #3o a# in#tr(hie# -(e no#
:ermitem tratar #e-b[ncia de caractere#R A# cadeia# #3o rec(r#o# Da#tante
(tiliVado# na :rogramah3o em geralR
Com:rimento( )
Concatena( )
8(DCadeia( )
7rimeiro#( )
5ltimo#( )
Com:ara( )
Mai(#c(la#( )
Min(#c(la#( )
?n#ere( )
8oDre7oe( )
Cadeia7ara?nteiro( )
Cadeia7araReal( )
?nteiro7araCadeia( )
Real7araCadeia( )
1RCom:rimento( )
A f(nh3o com:rimento() retorna o com:rimento do arg(mento em -(antidade
de caractere#R O alor retornado :ela f(nh3o g do ti:o inteiroR
Ela g cKamada com a #eg(inte #inta/e:
C :& Com:rimento ( e/:rC ); onde e/:rC g (ma e/:re##3o do ti:o cadeia e C
re:re#enta (ma ari1el -(al-(er, de cla##e n(merica, -(e receDer1 o alor
retornado :ela f(nh3oR
E/em:lo#:
C :& Com:rimento ( mBominando a ling(agem Cn );
!RConcatena( )
A f(nh3o concatena() retorna o# #e(# arg(mento# concatenado# em (ma knica
cadeia, #em e#:aho# entre ele#R O alor retornado :ela f(nh3o g do ti:o
cadeiaR
Ela g cKamada com a #eg(inte #inta/e:
A :& Concatena ( e/:rC, RRR ); onde e/:rC g (ma e/:re##3o do ti:o cadeia e A
re:re#enta (ma ari1el -(al-(er, do ti:o cadeia, -(e receDer1 o alor
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',/
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
retornado :ela f(nh3oR A# retic[ncia# #ignificam -(e a f(nh3o :ode receDer
1rio# arg(mento#, #endo ele# #e:arado# :or Hrg(la#R
E/em:lo#:
A :& Concatena ( mT(em tem Docan, m m, mai a Roman );
"R8(DCadeia( )
A f(nh3o 8(DCadeia() retorna (ma #(Dcadeia de #e( arg(mentoR O alor
retornado :ela f(nh3o g do ti:o cadeiaR
Ela g cKamada com a #eg(inte #inta/e:
8 :& 8(DCadeia ( e/:rC, e/:rN1, e/:rN! ); onde e/:rC g (ma e/:re##3o do
ti:o cadeia da -(al #e de#eCa (ma #(Dcadeia, e/:rN1 g (ma e/:re##3o do ti:o
inteiro -(e re:re#enta a :o#ih3o do :rimeiro caracter da #(Dcadeia e, e/:rN!
re:re#enta a -(antidade de caractere# de##a #(DcadeiaR
E/em:lo#:
8 :& 8(DCadeia ( m>ecnica# E#tr(t(rada#n, J, E );
ER7rimeiro#( )
A f(nh3o 7rimeiro#() retorna (ma #(Dcadeia de #e( arg(mentoR O alor
retornado :ela f(nh3o g do ti:o cadeiaR
Ela g cKamada com a #eg(inte #inta/e:
8 :& 7rimeiro# ( e/:rC, e/:rN ); onde e/:rC g (ma e/:re##3o do ti:o cadeia da
-(al #e de#eCa (ma #(Dcadeia, e/:rN g (ma e/:re##3o do ti:o inteiro -(e
re:re#enta a -(antidade de caractere# de e/:rC, contado# a :artir de #e(
inHcio, -(e #e de#eCa retornarR
E/em:lo#:
8 :& 7rimeiro# ( m>ecnica# E#tr(t(rada#n, E );
JR5ltimo#( )
A f(nh3o 5ltimo#() retorna (ma #(Dcadeia de #e( arg(mentoR O alor
retornado :ela f(nh3o g do ti:o cadeiaR
Ela g cKamada com a #eg(inte #inta/e:
8 :& 5ltimo# ( e/:rC, e/:rN ); onde e/:rC g (ma e/:re##3o do ti:o cadeia da
-(al #e de#eCa (ma #(Dcadeia, e/:rN g (ma e/:re##3o do ti:o inteiro -(e
re:re#enta a -(antidade de caractere# de e/:rC, contado# a :artir de #e(
final, -(e #e de#eCa retornarR
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',0
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E/em:lo#:
8 :& 5ltimo# ( m>ecnica# E#tr(t(rada#n, E );
NRCom:ara( )
A f(nh3o Com:ara() tem :or oDCetio com:arar d(a# cadeia com relah3o a
ordem alfaDgtica de #e(# arg(mento#R Ela retorna (m alor inteiro, negatio,
n(lo o( :o#itio de acordo com a ordem de :a##agem de #e(# arg(mento#R
Ela g cKamada com a #eg(inte #inta/e:
8 :& Com:ara ( e/:rC1, e/:rC! ); onde e/:rC1 e e/:rC! #3o e/:re##ie# do ti:o
cadeiaR 8e o# alore# re:re#entado# :ela# e/:re##ie# e/:rC1 e e/:rC! forem
ig(ai# o alor de retorno g 9 (Vero), #e e/:rC! for maior -(e e/:rC1, i#to g,
e/:rC! re:re#entar (m alor -(e e#t1 em (ma :o#ih3o j frente de e/:rC1,
con#iderando a ordem alfaDgtica, o alor de retorno #er1 1 ((m), ca#o
contr1rio o alor de retorno #er1 _1R Bito de o(tra forma, o alor de retorno
#er1 negatio #e a ordem do# arg(mento# e#tier diferente da ordem
alfaDgtica do# me#mo#R
E/em:lo#:
7 :& Com:ara ( m=ernandon, mRo#an );
WRMai(#c(la#( )
A f(nh3o Mai(#c(la#() tem :or oDCetio retornar o #e( arg(mento
tran#formado em mai(#c(la#R O alor de retorno g do ti:o cadeiaR
Ela g cKamada com a #eg(inte #inta/e:
8 :& Mai(#c(la# ( e/:rC ); onde e/:rC g (ma e/:re##3o do ti:o cadeiaR
E/em:lo#:
8 :& Mai(#c(la# ( mamandan );
<RMin(#c(la#( )
A f(nh3o Min(#c(la#() tem :or oDCetio retornar o #e( arg(mento
tran#formado em min(#c(la#R O alor de retorno g do ti:o cadeiaR
Ela g cKamada com a #eg(inte #inta/e:
8 :& Min(#c(la# ( e/:rC ); onde e/:rC g (ma e/:re##3o do ti:o cadeiaR
E/em:lo#:
8 :& Min(#c(la# ( mmarinan );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',1
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
;R?n#ere( )
19R8oDre7oe( )
11RCadeia7ara?nteiro( )
A f(nh3o cadeia7ara?nteiro() tem :or oDCetio retornar (m n(mgrico do ti:o
inteiro corre#:ondente a cadeia n(mgrica de #e( arg(mentoR
Ela g cKamada com a #eg(inte #inta/e:
I :& Cadeia7ara?nteiro ( e/:rC ); onde e/:rC g (ma e/:re##3o do ti:o cadeiaR
8e a cadeia e#:ecificada em e/:rC n3o :(der #er conertida em inteiro, o
alor de retorno #er1 9 (Vero) e I re:re#enta (ma ari1el do ti:o inteiroR
E/em:lo#:
I :& Cadeia7ara?nteiro ( m1!Jn );
1!RCadeia7araReal( )
A f(nh3o cadeia7araReal() tem :or oDCetio retornar (m n(mgrico do ti:o real
corre#:ondente a cadeia n(mgrica de #e( arg(mentoR
Ela g cKamada com a #eg(inte #inta/e:
I :& Cadeia7araReal ( e/:rC ); onde e/:rC g (ma e/:re##3o do ti:o cadeia e, I
re:re#enta (ma ari1el do ti:o realR
8e a cadeia e#:ecificada em e/:rC n3o :(der #er conertida em real, o alor
de retorno #er1 9 (Vero)
E/em:lo#:
I :& Cadeia7araReal ( m"R1E1J;!n );
1"R?nteiro7araCadeia( )
A f(nh3o ?nteiro7araCadeia() tem :or oDCetio retornar (ma cadeia n(mgrica
do ti:o inteiro corre#:ondente ao inteiro -(e foi :a##ado como #e( arg(mentoR
Ela g cKamada com a #eg(inte #inta/e:
8 :& ?nteiro7araCadeia ( e/:rN ); onde e/:rN g (ma e/:re##3o do ti:o inteiro
e, 8 re:re#enta (ma ari1el do ti:o cadeiaR
8e a cadeia e#:ecificada em e/:rN n3o :(der #er conertida em inteiro, o
alor de retorno #er1 e#:aho#R
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
',2
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
E/em:lo#:
I :& ?nteiro7araCadeia ( 1!J );
1ERReal7araCadeia( )
A f(nh3o Real7araCadeia() tem :or oDCetio retornar (ma cadeia n(mgrica do
ti:o real corre#:ondente ao real -(e foi :a##ado como #e( arg(mentoR
Ela g cKamada com a #eg(inte #inta/e:
8 :& Real7araCadeia ( e/:rN ); onde e/:rN g (ma e/:re##3o do ti:o real e, 8
re:re#enta (ma ari1el do ti:o cadeiaR
8e a cadeia e#:ecificada em e/:rN n3o :(der #er conertida em real, o alor
de retorno #er1 e#:aho#R
E/em:lo#:
I :& Real7araCadeia ( "R1E1J;! );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'-3
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
=(nhie# de ar-(io#: A# f(nhie# :ara o tratamento de ar-(io #3o a#
in#tr(hie# -(e no# :ermitem tratar informahie# -(e :oder3o #er armaVenada#
indefinidamente no com:(tador, i#to g, ela# tratam da mani:(lah3o da
informah3o -(e e#t1 armaVenada no ZincKe#ter :or e/em:loR
Iinc(lar ( );
A##ociar ( );
Criar ( );
ADrir ( );
=ecKar ( );
Graar ( );
Regraar ( );
Beletar ( );
4er ( );
7o#icionar ( );
=BA ( );
1RIinc(lar ( );
A f(nh3o Iinc(lar() tem :or oDCetio e#taDelecer (ma ligah3o entre (m
identificador l2gico -(e #er1 (tiliVado no te/to do algoritmo e o
corre#:ondente identificador fH#ico do ar-(io em di#coR
Ela g cKamada com a #eg(inte #inta/e:
Iinc(lar ( e/:rC1, e/:rC! ); onde e/:rC1 re:re#enta o nome l2gico do ar-(io
(tiliVado no algoritmo e, e/:rC! re:re#enta o nome fH#ico do ar-(io no di#coR
E/em:lo#:
Iinc(lar ( cliente#, mar-991Rdatn );
!RA##ociar ( );
A f(nh3o A##ociar() tem :or oDCetio e#taDelecer (ma ligah3o entre (m
identificador l2gico -(e #er1 (tiliVado no te/to do algoritmo e o
corre#:ondente regi#tro -(e re:re#enta a# informahie# armaVenada#R
Ela g cKamada com a #eg(inte #inta/e:
A##ociar ( e/:rC1, e/:rC! ); onde e/:rC1 re:re#enta o nome l2gico do ar-(io
(tiliVado no algoritmo e, e/:rC! re:re#enta o nome do regi#tro -(e
re:re#enta a# informahie# armaVenada#R
E/em:lo#:
A##ociar ( cliente#, :e##oa# );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'-&
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
"RCriar ( );
A f(nh3o Criar() tem :or oDCetio criar o ar-(io fH#ico no di#coR
Ela g cKamada com a #eg(inte #inta/e:
Criar ( e/:rC ); onde e/:rC re:re#enta o identificador l2gico do ar-(io o( o
#e( identificador fH#icoR
E/em:lo#:
Criar ( cliente# );
Criar ( mar-991Rdatn );
ERADrir ( );
A f(nh3o ADrir() tem :or oDCetio aDrir o ar-(io fH#ico no di#coR
Ela g cKamada com a #eg(inte #inta/e:
ADrir ( e/:rC ); onde e/:rC re:re#enta o identificador l2gico do ar-(io o( o
#e( identificador fH#icoR
E/em:lo#:
ADrir ( cliente# );
ADrir ( mar-991Rdatn );
JR=ecKar ( );
A f(nh3o =ecKar() tem :or oDCetio fecKar o ar-(io fH#ico no di#coR
Ela g cKamada com a #eg(inte #inta/e:
=ecKar ( e/:rC ); onde e/:rC re:re#enta o identificador l2gico do ar-(io o( o
#e( identificador fH#icoR
E/em:lo#:
=ecKar ( cliente# );
=ecKar ( mar-991Rdatn );
NRGraar ( );
A f(nh3o Graar() tem :or oDCetio graar a# informahie# no ar-(io fH#icoR
Ela g cKamada com a #eg(inte #inta/e:
Graar ( e/:rC1, e/:rC! ); onde e/:rC1 re:re#enta o identificador l2gico o(
fH#ico do ar-(io e e/:rC! re:re#enta a informah3o -(e #e de#eCa armaVenarR
E/em:lo#:
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'-'
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Graar ( cliente#, mte#te de graacaon );
Graar ( mar-991Rdatn, mte#te de graacaon );
WRRegraar ( );
A f(nh3o ReGraar() tem :or oDCetio regraar a# informahie# no ar-(io
fH#icoR
Ela g cKamada com a #eg(inte #inta/e:
ReGraar ( e/:rC1, e/:rC! ); onde e/:rC1 re:re#enta o identificador l2gico o(
fH#ico do ar-(io e e/:rC! re:re#enta a informah3o -(e #e de#eCa armaVenarR
E/em:lo#:
ReGraar ( cliente#, mnoo te#te de graacaon );
ReGraar ( mar-991Rdatn, mnoo te#te de graacaon );
<RBeletar ( );
A f(nh3o Beletar() tem :or oDCetio e/cl(ir informahie# no ar-(io fH#icoR
Ela g cKamada com a #eg(inte #inta/e:
Beletar ( e/:rC1, e/:rC! ); onde e/:rC1 re:re#enta o identificador l2gico o(
fH#ico do ar-(io e e/:rC! re:re#enta a informah3o -(e #e de#eCa deletarR
E/em:lo#:
Beletar ( cliente#, :e##oa# );
Beletar ( mar-991Rdatn, :e##oa# );
;R4er ( );
A f(nh3o 4er() tem :or oDCetio rec(:erar informahie# no ar-(io fH#icoR
Ela g cKamada com a #eg(inte #inta/e:
4er ( e/:rC1, e/:rC! ); onde e/:rC1 re:re#enta o identificador l2gico o( fH#ico
do ar-(io e e/:rC! re:re#enta a informah3o -(e #e de#eCa lerR
E/em:lo#:
4er ( cliente#, :e##oa# );
4er ( mar-991Rdatn, :e##oa# );
19R7o#icionar ( );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'-,
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
A f(nh3o 7o#icionar() tem :or oDCetio :ermitir o :o#icionamento em (ma
determinada informah3o no ar-(io fH#icoR
Ela g cKamada com a #eg(inte #inta/e:
7o#icionar ( e/:rC, e/:rN ); onde e/:rC re:re#enta o identificador l2gico o(
fH#ico do ar-(io e e/:rN a :o#ih3o em -(e #e de#eCa a:ontar no ar-(ioR
E/em:lo#:
7o#icionar ( cliente#, ?N?C?O );
7o#icionar ( mar-991Rdatn, =?NA4 );
11R=BA ( );
A f(nh3o fda() retorna (m alor indicando #e o ar-(io e#t1 :o#icionado em
#e( finalR
Ela g cKamada com a #eg(inte #inta/e:
=BA ( e/:rC ); onde e/:rC re:re#enta o identificador l2gico o( fH#ico do
ar-(io
E/em:lo#:
=BA ( cliente# );
=BA ( mar-991Rdatn );
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'--
Lgica de Programao
Exerccios resolvidos e propostos do livro Algoritmos Estruturados de Harry Farrer & Outros
Refer*ncia QiFliogrfica
Agortmos Estruturados
Harry Farrer, Chrstano Gonaves Becker, Eduardo Chaves Fara, Heton
Fbo de Matos, Marcos Augusto dos Santos, Mram Loureno Maa da
Edtora Guanabara, 2 edo.
Algoritmos executveis com o i!terpretador Hall
"er!a!dopaim#e!etec$com$%r
'-.