Vous êtes sur la page 1sur 59

APOSTILA DE ALGORITIMOS

ndice
1. Algoritmos................................................................................................................................................4 2. Fases de um Algoritmos...........................................................................................................................5 . Estrutura de Algoritmos.........................................................................................................................! 4. "ari#$eis...................................................................................................................................................% 4.1 Formao de Variveis.......................................................................................................................8 4.2 Contedo de uma Varivel.................................................................................................................8 4.3 Tipos de Variveis...............................................................................................................................8 5. Ti&os de Dados.........................................................................................................................................' !. De(i)i*+o de "ari#$eis...........................................................................................................................1, 6.1 Comando de atribuio.....................................................................................................................1 6.2 Variveis do tipo C!"#$Cara%ter& e 'T#()*$Cadeia&..................................................................11 %. O&eradores.............................................................................................................................................14 +.1 ,peradores matemti%os..................................................................................................................14 +.2 ,peradores -./i%os..........................................................................................................................14 -. .oma)dos de E)trada e Sa/da.............................................................................................................1% '. Pro0essos de Re&eti*+o e Sele*+o.........................................................................................................1' 0.1 1strutura de #epetio 1)23")T,4F"5" $6!(-1 7,&.............................................................10 0.2 1strutura de repetio #18(T"4"T9 $ #epeat 3ntil&......................................................................21 0.3 1strutura de repetio 8"#"4F"5" $F,# ... T,... 7,&................................................................22 1,. Estrutura de sele*+o............................................................................................................................25 1 .1 1strutura '1:1)T;,:'1);, $(F:T!1):1-'1&..................................................................2< 1 .2 1strutura C"'1...............................................................................................................................20 11. "ari#$eis .om&ostas 1omog2)eas..................................................................................................... 2 11.1 Variveis (nde=adas 3ni 7imensionais$Vetores&...........................................................................32 11.2 Variveis (nde=adas >idimensionais$?atri@es&.............................................................................3+ 12. Fu)*3es &r45de(i)idas do Pas0al........................................................................................................4, 12.1 7es%rio das FunAesB#otinasC ...................................................................................................4 1 . Pro6lemas Resol$idos em Algoritmos7 Pas0al e .............................................................................4' 13.1 "l/oritmo do Trian/ulo..................................................................................................................40 13.2 "l/oritmo 8re%o "utom.vel..........................................................................................................< 13.3 "l/oritmo ?edia Valor...................................................................................................................<1 13.4 "l/oritmo 3 ?enores......................................................................................................................<2 13.< "l/oritmo ?edia ?aior Due 4........................................................................................................<4 13.6 "l/oritmo 'alrio............................................................................................................................<< 13.+ "l/oritmo < Trian/ulos.................................................................................................................<6 13.8 "l/oritmo ?edia ?enores..............................................................................................................<8

1.

Algoritmos

Algoritmo no a soluo de um problema, pois, se assim fosse, cada problema teria um nico algoritmo. Algoritmo um caminho para a soluo de um problema, e em geral, os caminhos que levam a uma soluo so muitas. O aprendi ado de algoritmos no se consegue a no ser atravs de muitos e!erc"cios. Algoritmos no se aprende# $ %opiando Algoritmos $ &studando Algoritmos Algoritmos s' se aprendem# $ %onstruindo Algoritmos $ (estando Algoritmos

2.

Fases de um Algoritmos

*uando temos um problema e vamos utili ar um computador para resolve$lo inevitavelmente temos que passar pelas seguintes etapas# a+ ,efinir o problema. b+ -eali ar um estudo da situao atual e verificar quais a.s+ forma.s+ de resolver o problema. c+ (erminada a fase de estudo, utili ar uma linguagem de programao para escrever o programa que dever/ a princ"pio, resolver o problema. d+ Analisar 0unto aos usu/rios se o problema foi resolvido. 1e a soluo no foi encontrada, dever/ ser retornado para a fase de estudo para descobrir onde est/ a falha. &stas so de forma bem geral, as etapas que um analista passa, desde a apresentao do problema at a sua efetiva soluo. 2remos, neste curso, nos ater as etapas de estudo, tambm chamada de an/lise, e a etapa de programao. 3as antes vamos definir o seguinte conceito# 4rogramar um computador consiste em elaborar um con0unto finito de instru5es, reconhecidas pela m/quina, de forma que o computador e!ecute estas instru5es. &stas instru5es possuem regras e uma 1inta!e pr'pria, como uma linguagem tipo portugu6s ou ingl6s, sendo isto chamadas de linguagem de computador. 7o mundo computacional e!iste uma grande variedade de linguagens 4ascal, %, %88, %obol, 9ortran, etc: . 7's iremos enfocar uma delas, o 4ascal.

3.

Estrutura de Algoritmos

Antes de utili armos uma linguagem de computador, necess/rio organi ar as a5es a serem tomadas pela m/quina de forma organi ada e l'gica, sem nos atermos as regras r"gidas da 1inta!e de uma linguagem. 4ara isto utili aremos uma forma de escrever tais a5es, conhecida como algoritmo, ou pseudo$c'digo. %onceituando# Algoritmo consiste em um con0unto l'gico e finito de a5es . instru5es + que resolvem um determinado problema. Os algoritmos tero a seguinte estrutura# A<=O-2(3O >7ome do algoritmo? >defini5es? 27@%2O >%omandos? 923 &m 4ascal ficaria da seguinte forma# 4-O=-A3 >7ome do programa?A >defini5es? B&=27 >%omandos?A &7,.

4.

Variveis

O computador possui uma /rea de arma enamento conhecida como mem'ria . (odas as informa5es e!istentes no computador esto ou na mem'ria prim/ria . mem'ria -A3 +, ou na mem'ria secund/ria . discos, fitas, %,$-O3 etc +. 7's iremos trabalhar , neste curso, somente com a mem'ria prim/ria , especificamente com as informa5es arma enadas na -A3 . mem'ria de acesso aleat'rio +. A mem'ria do computador pode ser entendida como uma seqD6ncia finita de cai!as, que num dado momento, guardam algum tipo de informao, como nmero, uma letra , uma palavra , uma frase etc, no importa , basta saber que l/ sempre e!iste alguma informao. O computador, para poder trabalhar como alguma destas informa5es, precisa saber onde, na mem'ria , o dado est/ locali ado. 9isicamente, cada cai!a, ou cada posio de mem'ria , possui um endereo, ou se0a, um nmero, que indica onde cada informao est/ locali ada . este nmero representado atravs da notao he!adecimal , tendo o tamanho de quatro, ou mais bEtes. Abai!o segue alguns e!emplos# &ndereo 9"sico 3FFF# BGH2 2FFF# H2&% 3FFF# FFF) 2nformao IJooK H23); ILK

%omo pode ser observado, o endereamento das posi5es de mem'ria atravs de nmeros he!adecimais perfeitamente compreendido pela m/quina , mas para n's humanos torna $se uma tarefa complicada . 4ensando nisto, as linguagens de computador facilitaram o manuseio, por parte dos usu/rios, das posi5es de mem'ria da m/quina , permitindo que, ao invs de trabalhar diretamente com os nmeros he!adecimais, fosse poss"vel dar nomes diferentes a cada posio de mem'ria . (ais nomes seriam de livre escolha do usu/rio. %om este recurso, os usu/rios ficaram livres dos endereos f"sicos . nmeros he!adecimais + e passaram a trabalhar com endereos l'gicos . nomes dados pelos pr'prios usu/rios +. ,esta forma, o &!emplo acima, poderia ser alterado para ter o seguinte aspecto# &ndereo 9"sico 7ome nmero letra 2nformao IJooK H23); ILK

%omo t"nhamos falado, os endereos l'gicos so como cai!as, que num dado instante guardam algum tipo de informao. 3as importante saber que o contedo desta cai!a no algo fi!o, permanente , na verdade, uma cai!a pode conter diversas informa5es, ou se0a, como no &!emplo acima, a cai!a . &ndereo <'gico + rotulada de M7omeN num dado momento contm a informao MJooN, mas em um outro momento, poder/ conter uma outra informao, por &!emplo M4edroN. %om isto queremos di er que o contedo de uma destas cai!as . endereo l'gico + podem variar , isto podem sofrer altera5es em seu contedo. (endo este conceito em mente, a partir de agora iremos chamar de forma genrica , as cai!as ou endereos l'gicos, de vari/veis. ,esta forma podemos di er que uma vari/vel uma posio de mem'ria , representada por um 7ome simb'lico . atribu"do pelo usu/rio +, a qual contm, num dado instante , uma informao.

4.1

Formao de Variveis

Oma vari/vel formado por uma letra ou ento por uma letra seguida de letras ou d"gitos, em qualquer nmero. 7o permitido o uso de espaos em branco ou de qualquer outro caractere, que no se0a letra ou d"gito, na formao de um identificador. 7a formao do nome da vari/vel de um nome significativo, para que se possa ter idia do seu contedo sem abri$l/. 1e utili ar palavras para compor o nome da vari/vel utili e o MP M underline para separar as palavras.

4.2

Contedo de uma Varivel


,ados $ &lementos conhecidos de um problema 2nformao $ Om con0unto estruturado de dados, transmitido conhecimento

4.3

Tipos de Variveis
%onsidere a f'rmula matem/tica simples do calculo do volume de uma esfera#

V =

) # 3 3

onde se encontram# H$ valores que podem ser classificados como# a+ valores constantes, invariantes em todas as aplica5es da f'rmula, no caso dos valores ), 3 e aos denomina$se constantesA b+ valores a serem substitu"dos na f'rmula, em cada aplicaoA a representao destes valores, usualmente feita atravs de letras, que recebem o nome de vari/veis e tornam a f'rmula genrica, poss"vel de ser aplicada para resolver uma certa classe de problemas e no apenas um problema espec"fico. 2 $ Opera5es a serem feitas sobre determinados operandos .Qalores+, para a obteno da soluo do problema.

5.

Tipos de Dados

O 4ascal e!ige que no momento que formos trabalhar com vari/veis, indiquemos o tipo de informao que uma vari/vel pode conter, isto , se uma dada posio de mem'ria arma enar/ um nmero ou uma letra etc. 4ara isto, a linguagem 4ascal possui definido alguns tipos que devero ser usados quando formos trabalhar com vari/veis. Alguns tipos so#

Algoritmo a+ 2nteiro b+ -eal e+ %aracter d+ %adeia g+ <'gica

4ascal a+ 27(&=&-# b+ -&A<# e+ %LA-# f+ 1(-27=# g+ BOO<&A7# c+ TO-,# d+ BU(&# h+ 1hor 2nt i+ <ong2nt 0+ 1ingle l+ ,ouble

,escrio -epresenta nmeros entre $32GCR at 832GCG. ocupa 2 bEtes na mem'ria . -epresenta os nmeros entre 2.S ! HF $3S at H.G ! HF3R . Ocupa C bEtes na mem'ria . -epresenta um dos caracteres, da tabela A1%22. Ocupa H bEte na mem'ria . %on0unto de caracteres . %LA- +. Ocupa de H a 2;; bEtes na mem'ria . Qalor l'gico. Assuma somente dois valores# (-O&.Qerdade+ ou 9A<1&.9also+. ocupa H bEte na mem'ria . 7meros de F at C;;3;. Ocupa 2 bEtes na mem'ria . 7meros de F at 2;;. Ocupa H bEte na mem'ria . -epresenta os nmeros entre $H2R at H2R . Ocupa H bEtes na mem'ria . -epresenta os nmeros entre $ 2.H)G.)R3.C)R at 2.H)G.)R3.C)R . Ocupa ) bEtes na mem'ria. -epresenta os nmeros entre H.; ! HF $); at 3.) ! HF3R . Ocupa ) bEtes na mem'ria . -epresenta os nmeros entre ; ! HF $32) at H.G ! HF3FR . Ocupa R bEtes na mem'ria .

2remos gradativamente trabalhar com cada um destes tipos e mostrar as suas caracter"sticas.

De!ini"#o de Variveis

4ara definir uma ou mais vari/veis, devemos utili ar , em 4ascal, a palavra QA-. 4ara manter uma compatibilidade, utili aremos a mesma nomenclatura em nossos algoritmos. Abai!o segue &!emplo de algumas defini5es de vari/veis# a+ A<=O-2(3O (este QA-2VQ&21 4alavra # %A,&2A 272%2O >comandos? 923 A<=O-2(3O (este QA-2VQ&21 <etra , %aracter # %A-A%(&272%2O >comandos? 923 A<=O-2(3O (este QA-2VQ&21 <etra , %aracter # %A-A%(&7mero# 27(&2-O 272%2O >comandos? 923 4-O=-A3 (esteA QA-

4alavra# 1tringA
B&=27 >comandos?A &7,. 4-O=-A3 (esteA QA<etra , %aracter # %LA-A B&=27 >comandos?A &7,. 4-O=-A3 (esteA QA<etra , %aracter # %LA-A 7mero# 27(&=&-A B&=27 >comandos?A &7,.

b+

c+

Obs.# Os nomes dados as vari/veis no podem ser os mesmos nomes de palavras reservadas do 4ascal, tais como 4-O=-A3, B&=27, &7,, Q&-, etc:

6.1

Comando de atribuio

*uando definimos uma vari/vel natural atribuirmos a ela uma informao. Oma das formas de colocar um valor dentro de uma vari/vel, consequentemente colocado este dado na mem'ria do computador, atravs da atribuio direta, do valor dese0ado que a vari/vel arma ena . 4ara isto utili aremos o s"mbolo . # W .4ascal+ , .Algoritmo+ +, que significa# recebe, ou se0a, a posio, de mem'ria que uma vari/vel representa , receber/ uma informao, a qual ser/ arma enada no interior desta vari/vel. E8em&lo# A<=O-2(3O (este 4-O=-A3 (esteA QA-2VQ&21 QA7mero# 27(&2-O 7mero# 27(&=&-A 272%2O B&=27 7mero# WHFA 7mero HF 923 &7,. O &!emplo acima nos informa que#

HF

a+ 9oi definido uma vari/vel, a qual demos o 7ome de M7meroN, e informamos que esta vari/vel, ou posio de mem'ria , s' poder/ aceitar dados, que se0am numricos e que este0am entre $32GCR a 832GCG . tipo 27(&=&- +. b+ Atribu"mos X vari/vel M7meroN o valor HF A mem'ria se comportaria da seguinte forma, de acordo com os itens acima# a+ b+ Qari/vel 7mero Qari/vel 7mero %ontedo indefinido %ontedo HF

6.2

Variveis do tipo CH !"Cara#ter$ e %T!&'("Cadeia$

As defini5es de vari/veis como sendo do tipo %LA- e 1(-27=, possuem algumas curiosidades que merecem um cuidado especial por parte do usu/rio.

!.2.1 9so das as&as : ; <


*uando estivermos fa endo a atribuio de um valor para uma vari/vel do tipo %LA.%aracter+ ou 1(-27= .%adeia+ , temos que ter o cuidado de colocar o valor . dado + entre aspas . I +, pois esta a forma de informar que a informao caracter . E8em&lo# A<=O-2(3O (este QA-2VQ&21 <etra # %A-A%(&7ome # %A,&2A 272%2O <etra IAK 7ome IJooK 923

!.2.2 Ma)i&ula*+o de 0ara0teres i)di$iduais em STRI=G>s :.adeias<


3uitas ve es necess/rio manipular caracteres individuais em uma 1(-27= .%adeia+ . O 4ascal possui uma forma toda especial de permitir tal operao, atravs do uso de colchetes. Y Z + logo ap's o 7ome da vari/vel do tipo 1(-27= .%adeia+ , e o nmero do caracter que se dese0a manipular entre os colchetes. E8em&lo# Atribuir o primeiro caracter de uma 1(-27= a uma vari/vel do tipo %LA-. A<=O-2(3O Atribui1tringA QA-2VQ&21 letra # %A-A%(&7ome # %A,&2A 272%2O 7ome IJoaoK letra 7omeYHZ 923 *uando definimos uma vari/vel como sendo do tipo 1(-27= no estamos alocando H posio de mem'ria apenas . uma cai!a, pela analogia inicial +, mas na verdade, estamos alocando at 2;; cai!as, uma para cada caracter da 1(-27= . lembre$se que uma 1(-27= pode ter no m/!imo 2;;

HH

caracteres +. Ao utili armos o s"mbolo de colchete, estamos na verdade indicando qual o caracter . qual a cai!a + dese0amos manipular . ,e acordo com o &!emplo acima, ter"amos na mem'ria a seguinte situao# a+ Alocamos 2;; bEtes . caracteres + na mem'ria . A estas posi5es de mem'ria dado o 7ome de M7omeN. 2nicialmente estas posi5es de mem'ria . %ai!as + possuem o contedo indefinido. b+ Alocamos H bEte . caracter + na mem'ria . A este caracter dado o 7ome de M<etraN. 2nicialmente esta posio de mem'ria possu" o contedo indefinido. c+ 7a mem'ria temos a seguinte situao# H 2 3 7ome

:
<etra

2;;

d+ Atribu"mos a vari/vel M7omeN o valor MJooN, obtendo na mem'ria a seguinte configurao 7ome H 2 3 ) : 2;; IJK IoK IaK IoK e+ Atribu"mos a vari/vel M<etraN o primeiro caracter da vari/vel M7omeN, ou se0a, o contedo da primeira posio de mem'ria . cai!a +. 7a mem'ria teremos a seguinte configurao# H IJK 2 IoK 3 IaK 7ome ) IoK <etra IJK Obs.# [ poss"vel definir vari/veis do tipo 1(-27=.%adeia+ com menos de 2;; caracteres. 4ara isto, basta colocar, ap's a palavra 1(-27=.%adeia+ , o nmero de caracteres dese0ados entre colchetes . Y Z +. E8em&lo#

2;;

A<=O-2(3O ,efine
QA-2VQ&21 7ome# %A,&2AYRFZ 272%2O 923 ,esta forma, o espao ocupado por uma vari/vel 1(-27=.%adeia+ passa de 2;; bEtes para apenas RF bEtes, na mem'ria .

H2

!.2.

E8er0/0ios ,?

H+ ,ar o tipo de cada uma das constantes a+ CH3 b+ CH3,F c+ $CH3 d+ MCH3N e+ $3,FH2 \ HFH; f+ HG\HFH2 g+ $2R,3 \ HF $23 h+ M9im de *uestoN 2+ 9aa um 4-O=-A3A para atribuir a vari/veis as seguintes informa5es# a+ H23); b+ H23);C c+ $HH22 d+ HF e+ Q&-,A,& f+ H23);CF; 3+ 7o seguinte 4-O=-A3A e!iste algum erro] Onde]

A<=O-2(3O (este
QA-2VQ&21 3aria idade letra 3aria 272%2O idade idade idade letra letra letra 923

# %A,&2A # 27(&2-O # %A-A%(&# -&A<


23 CGR letra AB% A 2

)+ *ual a diferena e!istente nas seguintes atribui5es] a+ <etra 7ome <etra 7ome IAK IJooK A Joo

b+

;+ [ correto definir uma vari/vel como sendo %aracter e atribuirmos a ela o valor# I4&,-OK] & se a vari/vel fosse definida como %A,&2A, a mesma poderia receber um valor do tipo %A-A%(&-]

H3

$.

%peradores

).1

*peradores matemti#os
Os operadores matem/ticos so os seguintes# a+ b+ c+ d+ e+ f+ g+ h+ i+ 0+ Adio 1ubtrao 3ultiplicao ,iviso ,iviso inteira -esto da diviso &!ponenciao ,iferena 3enor 2gual 3aior 2gual

# # # # # #

8 $ \ ^

,2Q .*OO%2&7(&+ 3O, .-&1(O+ # \\ # >? # >W # ?W

).2

*peradores +,-i#os

Os operadores l'gicos, reali am as opera5es da /lgebra booleana. Os operadores so os seguintes# a+ A7, .&+ b+ O- .OO+ c+ 7O( .7_O+ d+ `O- .7_O OO+ E8em&lo# a+ Operador A7,# (-O& A7, (-O& (-O& A7, 9A<1& 9A<1& A7, (-O& 9A<1& A7, 9A<1& b+ Operador O-# (-O& O- (-O& (-O& O- 9A<1& 9A<1& O- (-O& 9A<1& O- 9A<1& c+ Operador 7O(# 7O( (-O& 7O( 9A<1& d+ Operador `O-#

W? (-O& W? 9A<1& W? 9A<1& W? 9A<1&

W? (-O& W? (-O& W? (-O& W? 9A<1&

W? 9A<1& W? (-O&

H)

(-O& `O- (-O& (-O& `O- 9A<1& 9A<1& `O- (-O& 9A<1& `O- 9A<1&

W? 9A<1& W? (-O& W? (-O& W? 9A<1&

%.2.1 E8er0/0ios 1 ?
H+ indique qual o resultado ser/ obtido das seguintes e!press5es# a+ H ^ 2 b+ H ,2Q 2 c+ H 3O, 2 d+ . 2FF ,2Q HF + 3O, )

e) f) g) h) i) j)

5**2 + 3 6 +19-23 3,0* 5,0 +1 1/4+2 29,0/7+4 3/6,0-7

2+ 2ndique o resultado das seguintes e!press5es# a+ 2 ? 3 b+ . C > R + O- . 3 ? G + c+ ... HF ,2Q 2 + 3O, C + ? ; + `O- . 3 > . 2 3O, 2 + + d+ 7O( . 2 > 3 + 3+ &screva o comando de atribuio e resolva a e!presso das seguintes formulas matem/ticas.

> C a+ E = 1 7 F "+

onde AW 2, BW C, % W 3, ,W), &WR, 9W)

2 E 2 3 E ( E + H) + b+ 2 F= 2E

E +H onde ` W 2 E

)+ %onstrua o algoritmo que calcule as seguintes e!press5es# a+ 2 8 3 \ a 23 $ H2 8 Y a . H23 ^ 3) + 8 HF b ^ 2 $ H \ . ); $ H2 + Z ^ 3 b b+ Y . 2 \ 3 + c2 $ H Z c ) c+ . 2 8 Y 2 \ 3 $ . ) ^ 2F + c 2 Z +^ .HF \ a Y . G \ 3 + $ 2 Z c 3 b+ ;+ &screva os comandos de atribuio para as seguintes f'rmulas matem/ticas. a+ E =

2 > ) " + 2 F 3 3 2"

b+ F = 2 ! c+ E =

); )!( 3 ! ) 3E

2!

.a b + + .e + G + i \ .% d + + . / + H + I

H;

Obs.# O operador M8N caso se0a usado entre vari/veis do tipo %LA- ou 1(-27=, causar/ uma ao conhecida por concatenao, ou se0a, 0untar os caracteres ou 1(-27=Ks usados na operao em uma s' 1(-27=. E8em&lo# A<=O-2(3O %oncatena QA-2VQ&21 <etraH , <etra2 # %A-A%(&7omeH, 7ome2, 7ome # %A,&2A 272%2O <etraH I,K <etra2 IaK 7omeH IJoaoK 7ome2 I1ilvaK 7ome 7omeH 8 <etraH 8 <etra2 8 7ome2 923 As instru5es acima resultaro no arma enamento do 7ome IJoo ,a 1ilvaN na vari/vel rotulada de M7omeN.

HC

&.

'omandos de Entrada e (a)da

O computador no uma m/quina isolada , pois ele precisa se comunicar com o mundo e!terior com v"deo, impressora , teclado, discos, fitas etc. 4ara reali ar esta comunicao e!istem comandos que permitem que informa5es se0am e!ibidas, por &!emplo, no v"deo, como tambm e!istem comandos que permitem que informa5es se0am colocadas na mem'ria do computador atravs do teclado do 4%. Os comandos que iremos ver so os comandos <&2A e &1%-&QA, respectivamente, comando de entrada e de 1a"da . em 4ascal escreve$se -&A, e T-2(& +. E8em&lo H# &screver um algoritmo para ler um valor numrico do teclado e atribu"$lo a uma vari/vel do tipo numrica .

A<=O-2(3O <e7mero
QA-2VQ&21 7um 272%2O 923 O algoritmo acima, e!ecutar/ os seguintes comandos# a+ ,efine uma vari/vel rotulada M7umN, a qual s' poder/ arma enar dados numricos, que este0am compreendidos entre $32GCR a 832GCG . 27(&2-O +, sendo que inicialmente o contedo desta vari/vel est/ indefinido. b+ interrompe o processamento at que uma informao se0a digitada , seguida do pressionamento da tecla &7(&-. %aso a informao se0a digitada se0a compat"vel com o tipo 27(&=&- .27(&2-O+, este valor ser/ arma enado dentro da vari/vel M7umN. E8em&lo 2# 9a er um algoritmo para escrever no v"deo do 4% uma mensagem qualquer .

# 27(&2-O

<&2A.7um+

A<=O-2(3O &screve3sg
272%2O

&1%-&QA .IAlo 3undoK+


923 Obs.# A mensagem est/ entre aspas porque representa uma cadeia de caracteres. [ perfeitamente poss"vel mandar escrever o contedo de vari/veis no v"deo. ,esta forma, o &!emplo acima poderia ser escrito do seguinte modo#

A<=O-2(3O &screve3sg
QA-2VQ&21 3sg# 272%2O 3sg 923 Obs.# &m 4ascal, o &!emplo ficaria como mostrado abai!o 4-O=-A3 &screve3sgA QAHG

# %A,&2A

IAlo 3undoK &1%-&QA .3sg+

3sg B&=27

# 1(-27=A

3sg # W IAlo 3undoKA T-2(& .3sg+A &7,. Obs.# &m 4ascal, quando usamos os comandos -&A, e T-2(& , o cursor continuar/ posicionado na mesma linha . 4ara evitar tal situao, devemos pular para nova linha . 2sto obtido acrescentando as letras <7 . de <27& 7&T, ou se0a, linha nova + no final dos comandos -&A, e T-2(&. ,esta forma os comandos tero a seguinte grafia# -&A,<7 e T-2(&<7.

-.1.1 E8er0/0ios 2?
H+ 9aa um algoritmo para ler as seguintes informa5es de uma pessoa# 7ome, 2dade, 1e!o, 4eso, Altura, 4rofisso, -ua, Bairro, %idade, &stado, %&4, (elefone. 2+ ,ado as seguintes informa5es de um funcion/rio# 7ome, idade cargo e o seu sal/rio bruto considere# a+ O sal/rio bruto teve um rea0uste de 3Rd. b+ O funcion/rio receber/ uma gratificao de 2Fd do sal/rio bruto. c+ O 1al/rio total descontado em H;d 9aa um algoritmo e um algoritmo para# 2mprimir 7ome, idade e cargo. 2mprimir o sal/rio bruto. 2mprimir o sal/rio l"quido. 3+ 9aa um algoritmo para ler a base e a altura de um triengulo. &m seguida, escreva a /rea do mesmo. Obs.# Vrea W . Base \ Altura + ^ 2 )+ 9aa um algoritmo para# a+ <er uma %A,&2A em forma de data. &!emplo # I2C^FS^S;K b+ escrever o dia , m6s e ano desta data. ;+ Oma empresa tem para um determinado funcion/rio uma ficha contendo o nome, nmero de horas trabalhadas e o n F de dependentes de um funcion/rio. %onsiderando que# a+ A empresa paga H2 reais por hora e )F reais por dependentes. b+ 1obre o sal/rio so feito descontos de R,;d para o 2711 e ;d para 2-. 9aa um algoritmo para ler o 7ome, nmero de horas trabalhadas e nmero de dependentes de um funcion/rio. Ap's a leitura, escreva qual o 7ome, sal/rio bruto, os valores descontados para cada tipo de imposto e finalmente qual o sal/rio l"quido do funcion/rio. C+ 9aa um algoritmo que calcule a mdia aritmtica de ) valores inteiros. G+ O preo de um autom'vel calculado pela soma do preo de f/brica com o preo dos impostos .);d do preo de f/brica+ e a percentagem do revendedor .2Rd do preo de f/brica+. 9aa um algoritmo que leia o nome do autom'vel e o preo de f/brica e imprima o nome do autom'vel e o preo final.

HR

*.

+rocessos de ,epeti"#o e (ele"#o

..1

/strutura de !epetio /'01 'T*2F 3


a+ A<=O-2(3O

"4H&+/ 5*$

A<=O-2(3O &!&nquanto &7*OA7(O >%ondio for verdadeira ? 9AfA >%omandos? 923 &7*OA7(O b+ 4A1%A< 4-O=-A3 &!&nquantoA TL2<& >%ondio for verdadeira ? ,O B&=27 >%omandos?A &7,. E8em&lo # 9aa um algoritmo para ler e escrever o 7ome de 2F pessoas. A<=O-2(3O <e&screve QA-2VQ&21 7ome # %A,&2A (otal # 27(&2-O 272%2O (otal F &7*OA7(O (otal>2F 9A%A <&2A.7ome+ &1%-&QA .I7omeWI, 7ome+ (otal (otal 8 H

923 &7*OA7(O

&7,.

&m pascal#
4-O=-A3 <e&screveA QA7ome # 1(-27=A (otal # 27(&=&-A B&=27 (otal# WFA TL2<& (otal>2F ,O B&=27 -&A,.7ome+A T-2(& .I7omeWI, 7ome+A (otal # W(otal 8 HA &7,A &7,.

HS

'.1.1 E8er0/0ios ?
H+ 9aa um algoritmo para ler base e altura de ;F triengulos e imprimir a sua /rea. 2+ 9aa um algoritmo para calcular 7g. 3+ 9aa um algoritmo para calcular um valor A elevado a um e!poente B. Os valores A e B devero ser lidos. 7o usar A\\ B. )+ 9aa um algoritmo para# a+ <er um valor ! qualquer b+ %alcular U W . !8H+8.!82+8.!83+8.!8)+8.!8;+8:.!8HFF+. ;+ 9aa um algoritmo para somar os nmeros pares > HFFF e ao final imprimir o resultado. C+ 9aa um algoritmo para gerar os termos da seguinte 4.=.# 3,S,2G,RH,:,calcule F HFFh termo. G+ Ampliando o e!erc"cio acima, faa um algoritmo para calcular a soma dos termos da 4.=.. R+ 9aa um algoritmo para calcular a srie 9ibonacci at F 7$simo termo. A srie tem a seguinte forma# H,H,2,3,;,R,H3,2H,3),: S+ 9aa um algoritmo para ler um valor ` e calcular U W `82`83`8)`8;`8:82F` HF+ 9aa um algoritmo para ler e escrever o 7ome, idade e se!o de um nmero indeterminado de alunos. Ao final escreva o total de alunos lidos. HH+ 4ara cada nota de compra , tem$se o 7ome do produto comprado, o valor e o imposto. 9aa um algoritmo que escreva o valor total bruto, o imposto total cobrado e o valor total l"quido de todas as notas. %onsidere ;FF notas H2+ O valor apro!imado de 42 pode ser calculado usando$se a srie

H H H H H + 3 + 3 + 3 + 3 + ... 3 H 3 ; G S sendo = 3 '32 '=

fa er um algoritmo para calcular e escrever o valor de 42 com ;H termos H3+ 9aa um algoritmo para ler um valor ` e um valor n. Ap's, calcule a seguinte e!presso#

F=

( E + H) ( E + 2) ( E + 3)
Hg + 2g + 3g

+...+

( E + ))
)g

H)+ 9aa um algoritmo para somar os restos da diviso por 3 de 2FF nmeros. H;+ 9aa um algoritmo que calcule a hipotenusa de HF triengulos. hipotenusa 2 W cateto2 8 cateto2 HC+ 9aa um algoritmo para calcular a /rea de 7 quadril/teros. 9'rmula# Vrea W <ado \ <ado HG+ 9aa um algoritmo para calcular a /rea de 7 %"rculos . 9'rmula # Vrea W raio 2 W 3,H)H;S2. HR+ 9a er um algoritmo que calcule escreva a soma dos ;F primeiros termos das seguinte srie#

HFFF SSG SS) SSH + +... H 2 3 )

2F

..2

/strutura de repetio !/6&T 2 T7 " !epeat 1ntil$


A<=O-2(3O -&42(A

>%omandos? A(& >%ondio for verdadeira ?


4A1%A< -&4&A(

>%omandos? O7(2< >%ondio for verdadeira ?


E8em&lo# 9aa um A<=O-2(3O para ler e escrever o 7ome de 2F pessoas.

A<=O-2(3O <e&screve
QA-2VQ&21 7ome # %A,&2A (otal # 27(&2-O 272%2O (otal F -&42(A <&2A.7ome+

&1%-&QA.I7omeWI,7ome+ (otal (otal 8 H A([ (otal ?W2F


923

&m pascal#
4-O=-A3 <e&screveA QA7ome # 1(-27=A (otal # 27(&2-OA B&=27 (otal # W FA -&4&A( -&A,.7ome+A T-2(& .I7omeWI,7ome+A (otal # W (otal 8 HA O7(2< (otal ?W2FA &7,.

'.2.1 E8er0/0ios 4?
H+ <eia 2F valores reais e escreva o seu somat'rio. 2+ ,ado uma frase de e!atamente RF caracteres, escreva a frase de tr/s para frente, um caracter por linha. 3+ ,ado um nmero indeterminado de funcion/rios, onde fornecido o 7ome, nmero de dependentes e o nmero de horas trabalhadas. 4ede$se que se0a impresso, para cada funcion/rio, o seu 7ome, sal/rio bruto, sal/rio l"quido e o valor descontado. A empresa, paga -i 2.2;F,FF por hora de trabalho, e -i H2;,;; por dependente, e ainda fa um desconto de H2d sobre o sal/rio bruto. 4ede$se ainda que se0a impresso o total de funcion/rios da empresa, o total gasto com sal/rios, e o total descontado. )+ 9aa um A<=O-2(3O para# a+ <eia um valor ` e um valor 7. 2H

b+ %alcular# U W ` $ 2` 8 )` $ C` 8 R` $ HF` 8 : 7`. ;+ 9aa um A<=O-2(3O para ler um valor ` e um Qalor 7. Ap's, calcule a seguinte e!presso#

F=

( E + H) ( E + 2) ( E + 3)
Hg + 2g + 3g

+...+

( E + ))
)g

C+ ,ado uma quantidade indeterminada de palavras, sendo que as mesmas sempre terminam com o caracter MiN, escreva o tamanho de cada uma das mesmas . o sinal de MiN no deve ser considerado na contagem +. G+ ,ado uma palavra terminada com o sinal MiN, faa um A<=O-2(3O para criar uma nova 1(-27=, a ser formada com os caracteres da primeira palavra invertidos. R+ 9aa um algoritmo que calcule a hipotenusa de HF triengulos. hipotenusa 2 W cateto2 8 cateto2 S+ 9aa um algoritmo para calcular a /rea de 7 quadril/teros. 9'rmula# Vrea W <ado \ <ado HF+ 9aa um algoritmo para calcular a /rea de 7 %"rculos . 9'rmula # Vrea W raio 2 W 3,H)H;S2. HH+ 9a er um algoritmo que calcule escreva o valor de 1 onde#

H 3 ; G SS ' = + + + +...+ H 2 3 ) ;F
H2+ 9a er um algoritmo que calcule escreva o valor de 1 onde#

H 2 3 ) ; HF '= + + ...+ H ) S HC 2; HFF

..3

/strutura de repetio 6 ! 2F 3
A<=O-2(3O

"F*! ... T*... 5*$

4A-A >Qari/vel? ,& >272%2O? At >923?, 4A11O >7? 9AfA >%omandos? 9234A-A 4A1%A< a+ b+ 9O- >Qari/vel ? # W >272%2O ? (O >923? ,O >%omando?A 9O- >Qari/vel ? # W >272%2O ? (O >923? ,O B&=27 >%omando?A &7,A

E8em&lo# 9aa um algoritmo para ler e escrever o 7ome de 2F pessoas. A<=O-2(3O <e&screve QA-2VQ&21 7ome # %A,&2A %ont # 27(&2-O 272%2O 4A-A %ont ,& H A(& 2F, 4A11O H, 9A%A <&2A.7ome+ 22

&1%-&QA.7ome+ 9234A-A
923

&m pascal#
4-O=-A3 <e&screveA QA7ome # 1(-27=A %ont # 27(&2-OA B&=27 9O- %ont # W H (O 2F ,O B&=27 -&A,.7ome+A T-2(& .7ome+A &7,A &7,. Obs.# a+ A vari/vel de controle, no &!emplo acima a vari/vel M%ontN, automaticamente incrementada em um unidade, a partir do valor inicial . H pelo &!emplo acima +, at que se0a ultrapassado o limite final definido . 2F no &!emplo acima +. B+ *uando e!iste a necessidade de interromper o processamento antes de ser alcanado o limite final definido para a estrutura , no dever/ ser usado a estrutura 4A-A$9AfA, pela simples ra o que a vari/vel de controle no deve ser alterada propositadamente pelo usu/rio. A alterao do contedo das vari/veis de controle do 4A-A$9AfA so de inteira responsabilidade da pr'pria estrutura .

'. .1 E8er0/0ios 5?
H+ 9aa um 4-O=-A3A para calcular #

a+

) H ;F

2 )
2

;F

b+

) H ;F

)
) H ;F

c+

)
H

d+

) H ;F

2 )
H
2

e+

) H

2+ Oma empresa possui HFF vendedores que ganham por comisso sobre cada produto vendido. %ada vendedor em um determinado m6s vendeu ` produtos, onde cada produto pode ou no ter preos iguais. A empresa dese0a obter um relat'rio com o 7ome, o total de vendas e o valor a ser pago a cada vendedor. A comisso paga pela empresa de 3Fd sobre o valor de cada produto vendido. 3+ ,ado uma relao de HFFF nmeros em graus %lcius, faa um 4-O=-A3A que imprima o seguinte relat'rio# 23

=raus 9ahrenheit !!!!!! Obs.#

=raus %lcius !!!!!!

hF =

Sh C + 32 ;

)+ ,ado um nmero indeterminado de palavras, sendo que cada palavra possui um tamanho indeterminado , o qual dever/ ser lido pelo teclado, faa um 4-O=-A3A que imprima um relat'rio como mostrado no &!emplo abai!o# 1uponha que a palavra digitada foi M3A-2AN. 3 A 2 A A 2 A 3

;+ &screver um programa para gerar e escrever uma tabela com os valores de seno de um Angulo A em radianos, utili ando a srie de 3ac$<aurin (runcada apresentada a seguir#

'en" = "

"3 "; "G + C H2F ;F)F

%ondi5es# os valores dos engulos devem variar de F.F a C.3, inclusive, de F.H em F.H Obs.# &m pascal, caso se0a necess/rio que o M<oopN 4A-A$9AfA ao invs de incrementar a vari/vel de controle decrementa $a, a 'inta=e a ser utili ada ser/ a seguinte a+ b+ 9O- >Qari/vel ? # W >923? ,OT7(O >272%2O ? ,O >%omando? 9O- >Qari/vel ? # W >923? ,OT7(O >272%2O? ,O B&=27 >%omando?A &7,A

&m algoritmo#
a+

4A-A >Qari/vel ? ,& >923? A([ >272%2O? 4A11O .$H+ 9A%A >%omando?
923 4A-A

2)

1-.

Estrutura de sele"#o

18.1

/strutura %/9/'T:*9%/':* "&F9TH/'9/+%/$


A<=O-2(3O 1& >%ondio 9O- verdade? &7(_O >%omandos? Y1&7_O >%omandos?Z %olchete indica que o comando opcional 9231& a+ 4A1%A< 29 >%ondio for verdade? (L&7 >%omandos? Y&<1& >%omandos?AZ 29 >%ondio for verdade? (L&7 B&=27 >%omandos? &7, Y&<1& B&=27 >%omandos?A &7,AZ

b+

E8em&lo# ,ado dois valores A e B quaisquer , faa um algoritmo que imprima se A ? B, ou A > B , ou A W B A<=O-2(3O 3aior QA-2VQ&21 A,B # 27(&2-O 272%2O &1%-&QA.I,igite os valores A e BK+A 1& A ? B &7(_O &1%-&QA.IA maior que BK+ 1&7_O 1& A > B &7(_O &1%-&QA.IA menor que BK+ 1&7_O &1%-&QA.IA igual a BK+ 923

2;

&m pascal
4-O=-A3 3aiorA QAA,B # BU(&A B&=27 T-2(& .I,igite os valores A e BK+A 29 A ? B (L&7 T-2(& .IA maior que BK+ &<1& 29 A > B (L&7 T-2(& .IA menor que BK+ &<1& T-2(& .IA igual a BK+A &7,.

1,.1.1 E8er0/0ios !?
H+ 9aa um algoritmo que leia os valores A, B, % e diga se a soma de A 8 B menor que %. 2+ 9aa um algoritmo que leia dois valores inteiros A e B se os valores forem iguais dever/ se somar os dois, caso contr/rio multiplique A por B ao final do calculo atribuir o valor para uma vari/vel %. 3+ 9aa um algoritmo que leia o nome e a tr6s notas de uma disciplina de uma aluno e ao final escreva o nome do aluno, sua mdia e se ele foi aprovado a mdia R. )+ 9aa um algoritmo que leia 3 nmeros inteiros e imprima o menor deles. ;+ ,ado um con0unto de n registros cada registro contendo um valor real, faa um algoritmo que calcule a mdia dos valores maiores que ). C+ ,ado uma relao de HFF carros imprima quantos so da cor a ul. 1endo para cada carro tem$se uma ficha contento o nome e a cor. G+ ,ados tr6s valores distintos, fa er um algoritmo que, ap's a leitura destes dados coloque$os em ordem crescente. R+ ,ado uma srie de 2F valores reais, faa uma algoritmo que calcule e escreva a mdia aritmtica destes valores, entretanto se a mdia obtida for maior que R dever/ ser atribu"da HF para a mdia. S+ 9aa um algoritmo para somar os nmeros pares > HFFF e ao final imprimir o resultado. HF+ ,ado um con0unto de 2F valores reais, faa um algoritmo que# a+ 2mprima os valores que no so negativos. b+ %alcule e imprima a mdia dos valores > F. HH+ 1uponha que para cada aluno de sua sala e!ista uma ficha contendo o nome e a idade do aluno. 1upondo que e!ista ;F alunos, faa uma algoritmo que determine quantos alunos tem idade maior que 3F. H2+ ,ado modelo, ano de fabricao, cor e placa de HFFF carros, faa um algoritmo que# a+ 2mprima quantos so, da cor verde e o percentual em relao ao total. b+ 2mprima quantos foram fabricados antes de HSSF e o percentual em relao ao total. c+ 2mprima quantos so 92A( O7O e o percentual em relao ao total. d+ 2mprima quantos carros tem na placa o digito ; e o percentual em relao ao total. %onsidere placas com seguinte formato MAA7777N. H3+ ,ado 7ome e notas . total de C + de n alunos, faa um algoritmo que# a+ 2mprima 7ome e mdia dos alunos aprovados. 3dia ? W G.F. b+ 2mprima 7ome e mdia dos alunos em recuperao. ;.F ?W 3dia >G.F.

2C

c+ 2mprima 7ome e mdia dos alunos reprovados. 3dia >;.F. H)+ 9aa um algoritmo que simule um cronometro com horas, minutos e segundos. A simulao dever/ mostrar no v"deo o cronometro no seguinte formato LL# 33# 11. 2nicialmente o cronometro ser/ erado . FF# FF# FF +, sendo que os segundos comearo a ser incrementados, depois os minutos e depois as horas. <embre$se que a cada CF segundos os minutos devero ser incrementados, depois os minutos voltaro a ero. *uando as horas estiverem prestes a chegar em 2;, o cronometro dever/ voltar a ero . FF# FF# FF +. H;+ ,ado 7ome e sal/rio de um nmero indeterminado de funcion/rios, imprima o 7ome e o sal/rio de funcion/rio que tem o maior sal/rio, bem como o 7ome e o sal/rio que possui o menor sal/rio. HC+ ,ado uma relao de HFF 1(-27=Ks no formato de data . &!emplo IHF^H2^S;K +, imprima aquelas que correspondem ao m6s IFSK. HG+ ,ado uma relao de HFF 1(-27=Ks no formato de data . &!emplo IHF^H2^S;K +, imprima um relat'rio no seguinte formato# ,ata 2C^FS^S; 4or &!tenso 2C de setembro de HSS;

HR+ ,ados uma relao de n 1(-27=Ks, todas terminadas com o caracter MiN, faa um algoritmo que escreva a 1(-27= e o seu tamanho. HS+ ,ado uma relao de n 1(-27=Ks, todas terminadas com o caracter MiN, faa um algoritmo que imprima aquelas que tem tamanho par. 2F+ ,ado uma relao de n 1(-27=Ks, todas terminadas com o caracter MiN, faa um algoritmo que escreva as 1(-27=Ks "mpares cu0o caracter central uma vogal. 2H+ ,ado tr6s valores `, U, j, verificar se eles podem ser os comprimentos dos lados de um triengulo, e se forem, verificar se um triengulo equil/tero, is'sceles ou escaleno. 1e eles no formarem um triengulo, escrever uma mensagem. Antes da elaborao do algoritmo, torna$se necess/ria a reviso de algumas propriedades e defini5es. 4ropriedade $ O comprimento de cada lado de um triengulo menor do que a soma dos comprimentos dos outros dois lados. ,efinio H $ %hama$se triengulo equil/tero os que tem os comprimentos dos tr6s lados iguais, ,efinio 2 $ %hama$se triengulo is'sceles ao triengulo que tem os comprimentos de dois lados iguais. ,efinio 3 $ %hama$se triengulo escaleno ao triengulo que tem os comprimentos dos tr6s lados diferentes. 22+ Om hotel cobra -i 3FF,FF por di/ria e mais uma ta!a adicional de servios. 1e a di/ria for menor que H; a ta!a e de -i 2F,FF. 1e o nmero de di/rias for igual a H; a ta!a de -i H),FF e se o nmero for maior que H; a ta!a de -i H2,FF. %onsiderando$se que se tenha 2FF pessoas e para cada pessoa tenha$se um registro contendo seu nome e o nmero de di/rias. 9aa um algoritmo que imprima o nome e o total a pagar de cada pessoa e imprimir tambm o total ganho pelo hotel e o nmero total de di/rias. 23+ ,ado que cada pessoa tenha o seu nome e a sua idade e o seu peso em uma ficha, faa uma algoritmo que# a+ 2mprimir o nome da pessoa cu0o a idade esta na fai!a de 2F a 3F anos inclusive os e!tremosA b+ %alcule a idade mdia das pessoas com peso maior que RF kg, considere que e!ista 7 pessoas. 2)+ 9aa um algoritmo que calcule o sal/rio e o imposto de renda de um grupo de pessoas, considerando# a+ 4ara cada pessoa tem$se# 7ome, 7mero de ,ependentes, -enda Bruta AnualA b+ O imposto calculado segundo a tabela abai!o# -enda <iquida d at -i HF.FFF,FF isento ? -i HF.FFF,FF at -i 3F.FFF,FF ;d ? -i 3F.FFF,FF at -i CF.FFF,FF HFd ? -i CF.FFF,FF H;d 2G

c+ L/ um desconto de -i CFF,FF para cada dependente. d+ 1endo que a renda liquida igual a renda bruta menos o abatimento de cada dependente. 2;+ O ,epartamento de transito do estado anotou dados de acidentes de transito no ultimo ano. 4ara cada motorista envolvido no acidente, tem$se as seguintes informa5es# $ Ano de nascimentoA $ 1e!o .3 $ 3asculino, 9 $ 9eminino+ $ 4roced6ncia . F $ %apital, H $ 2nterior, 2 $ Outro estado+A 9aa um algoritmo que # a+ %alcule a porcentagem de motoristas com menos de 2H anosA b+ %alcule quantas mulheres so da capitalA c+ %alcule quantos motoristas do interior do estado tem idade maior que CF anosA d+ Qerifique se e!iste alguma mulher com idade maior que CF anosA -. 2C+ 1uponha que para cada tipo de computador fabricado, a 1&2, tem os seguintes informa5es# $ 7ome do computadorA $ O nome do fabricanteA $ e a sua capacidade de arma enamentoA 9aa um algoritmo que# a+ ,etermine qual o valor da maior capacidade de mem'riaA b+ ,etermine quantos computadores diferentes a 2B3 fabricaA c+ Qerifique se tem algum computador chamado 41^H. 1e tiver qual o seu fabricanteA

2R

18.2

/strutura C %/
A<=O-2(3O

&1%O<LA >Qalor? >Op5es? # >%omandos? . . . >Op5es? # >%omandos? Y 1eno >%omandos?Z


923&1%O<LA 4A1%A< a+ %A1& >valor? O9 >op5es? # >%omandos?A

. . . >op5es? # >%omandos?A Y&lse >%omandos?A


&7,A b+ %A1& >valor? O9 >op5es? #

B&=27

>%omandos?A
&7,A

. . . >op5es? # >%omandos?A Y &lse


B&=27

>%omandos?A
&7,A &7,A O comando &1%O<LA . %A1& +, corresponde ao comando 1&$&7(_O mas de uma forma mais compacta nas opera5es de seleo. 4or &!emplo, se0a a seguinte estrutura escrita com o comando 1&$&7(_O#

1& . 2,A,& ?W F + & . 2,A,& >W 3 + &7(_O &1%-&QA. IB&BlK+


1&7_O

1& . 2,A,& ?W ) + & . 2,A,& >W HF + &7(_O &1%-&QA. I%-2A7fAK+


1&7_O

1& . 2,A,& ?W HH + & . 2,A,& >W HR + &7(_O &1%-&QA. IA,O<&1%&7(&K+


1&7_O

&1%-&QA. IA,O<(OK+
2S

923 1& 923 1& 923 1& &m pascal


29 . 2,A,& ?W F + A7, . 2,A,& >W 3 + (L&7 T-2(& . IB&BlK+ &<1& 29 . 2,A,& ?W ) + A7, . 2,A,& >W HF + (L&7 T-2(& . I%-2A7fAK+ &<1& 29 . 2,A,& ?W HH + A7, . 2,A,& >W HR + (L&7 T-2(& . IA,O<&1%&7(&K + &<1& T-2(& . IA,O<(OK+A O &!emplo mostrado poderia ser escrito da seguinte forma usando o comando &1%O<LA#

&1%O<LA 2dade F..3 # &1%-&QA.IB&BlK+ )..HF # &1%-&QA.I%-2A7fAK+ HH..HR # &1%-&QA.IA,O<&1%&7(&K +


1&7_O

&1%-&QA.IA,O<(OK+
923 &1%O<LA

&m pascal#
%A1& 2dade O9 F..3 # T-2(&.IB&BlK+A )..HF # T-2(&.I%-2A7fAK+A HH..HR # T-2(&.IA,O<&1%&7(&K +A &<1& T-2(& .IA,O<(OK+A &7,A Abai!o seguem mais e!emplos de constru5es com o comando &1%O<LA# a+

&1%O<LA <etra IAK,K&K,K2IKOK,KOK


923&1%O<LA &1%O<LA QA<OH..;,S,H3..2;; 923&1%O<LA

# &1%-&QA.IQogaisK+

b+

# >%omandos?

3F

&m pascal a+

%A1& <etra O9 IAK,K&K,K2IKOK,KOK &7,A %A1& valor O9 H..;,S,H3..2;; &7,A

# T-2(&.IQogaisK+A

b+

# >%omandos?A

Obs.# O comando &scolha no aceita valores do tipo -&A< e 1(-27=.

1,.2.1 E8er0/0ios %?
H+ 9aa um algoritmo que leia um nmero que represente um determinado m6s do ano. Ap's a leitura escreva por e!tenso qual o m6s lido. %aso o nmero digitado no este0a na fai!a de H..H2 escreva uma mensagem informando o usu/rio do erro da digitao. 2+ 9aa um algoritmo que leia um nmero qualquer . %aso o nmero se0a par menor que HF, escreva I7mero par menor que ,e K, caso o nmero digitado se0a "mpar menor que HF escreva I7mero @mpar menor que ,e K, caso contr/rio &screva I7mero fora do 2ntervaloK. 3+ Oma empresa ir/ dar um aumento de sal/rio aos seus funcion/rios de acordo com a categoria de cada empregado. O aumento seguir/ a seguinte regra # a+ 9uncion/rios das categorias A, %, 9, e L ganharo HFd de aumento sobre o sal/rio b+ 9uncion/rios das categorias B, ,, &, 2, J e ( ganharo H;d de aumento sobre o sal/rio c+ 9uncion/rios das categorias k e - ganharo 2;d de aumento sobre o sal/rio d+ 9uncion/rios das categorias <, 3, 7, O, 4, *, - e 1 ganharo 3;d de aumento sobre o sal/rio e+ 9uncion/rios das categorias O, Q, `, U, T e j ganharo ;Fd de aumento sobre o sal/rio )+ 9aa um algoritmo que &screva 7ome, categoria e sal/rio rea0ustado de cada &mpregado. %onsidere HFFF funcion/rios na empresa. ;+ ,ado uma 1(-27= terminada com o caracter MiN faa um algoritmo que imprima quantas vogais e!istem nesta 1(-27=. C+ ,ado uma 1(-27= terminada com o caracter MiN faa um algoritmo que imprima quantas Ocorr6ncias de cada vogal em separado e!iste nesta 1(-27=.

3H

11.

Variveis 'ompostas .omog/neas

Qimos, no in"cio deste curso, ser poss"vel dar um 7ome para uma posio de mem'ria , sendo que a esta ser/ associado um valor qualquer . 4ois bem, acontece que, muitas ve es, esta forma de definio, ou melhor di endo, de alocao de mem'ria , no suficiente para resolver certos problemas computacionais. 2magine por &!emplo, como far"amos para construir um algoritmo, para ler o 7ome de 7 4essoas e que imprimisse um relat'rio destes mesmos nomes, mas ordenados alfabeticamente] 7o seria uma tarefa simples, ha0a visto no ser poss"vel determinar quantos nomes seriam lidos, mesmo que soubssemos o nmero de pessoas, digamos H.FFF pessoas, ter"amos que definir H.FFF vari/veis do tipo 1(-27=, como mostrado abai!o# A<=O-2(3O <oucuraA QA-2VQ&21 7omeH, 7ome2, 7ome3,

. . .
7omeSSS, 7omeHFFF# %A,&2A 272%2O

>%omandos?
923 %onsidere o tamanho do algoritmo, e o trabalho braal necess/rio para construi $lo. 2sto s' com H.FFF 7ome, imagine agora H.FFF.FFF de pessoas. A construo deste algoritmo comearia a ficar invi/vel na pratica . 4ara resolver problemas como este, e outros, foi criado um novo conceito para alocao de mem'ria sendo, desta forma, tambm criado uma nova maneira de definir vari/veis, a qual foi denominada de vari/vel inde!ada . Oma vari/vel inde!ada corresponde a uma seqD6ncia de posi5es de mem'ria , a qual daremos nico 7ome, sendo que cada uma destas pode ser acessada atravs do que conhecemos por "ndice. O "ndice corresponde a um valor numrico . e!ceto -&A< +, ou a um valor caracter . e!ceto 1(-27= +. %ada uma das posi5es de mem'ria de uma vari/vel inde!ada pode receber valores no decorrer do algoritmo como se fosse uma vari/vel comum, a nica diferena reside na 1inta!e de utili ao desta vari/vel.

11.1

Variveis &nde;adas 1ni 5imensionais"Vetores$

(ambm conhecida por MQetorN. Oma vari/vel uni $dimencional , como o pr'prio 7ome 0/ indica, possui apenas uma dimenso, sendo ser poss"vel definir vari/veis com quaisquer tipo de dados validos do 4ascal. a+ ,efinio#

A<=O-2(3O ,efine
QA-2VQ&21 >7ome?# Q&(O- Y272%2OQ # 923QZ ,& >tipo? 272%2O >%omandos? 923

&m pascal#
32

4-O=-A3 ,efineA QA>7ome?# A--AU Y272%2O ..923Z O9 >tipo?A B&=27 >%omandos?A &7,. Obs.# a+ MA--AUN uma palavra reservada do 4ascal b+ Os valores M272%2OQN e M923QN correspondem aos "ndices inicial e final c+ Oma vari/vel inde!ada pode ser apenas de um tipo de dado E8em&lo ,efinir uma vari/vel inde!ada como sendo do tipo -&A<, sendo que a mesma dever/ corresponder a HF posi5es de mem'ria . A<=O-2(3O &!emplo QA-2VQ&21 Qet # Q&(O- YH # HFZ O9 -&A< 272%2O >%omandos? 923

&m pascal#
4-O=-A3 &!emploA QAQet# A--AU YH..HFZ O9 -&A<A B&=27 >%omandos?A &7,. 7o E8em&lo acima, ap's a definio da vari/vel, a mem'ria estar/ como mostrado no esquema abai!o# Qet H 2 3 ) ; C G R S HF

Os Qalores numricos apresentados acima correspondem aos "ndices da vari/vel. B+ Atribuio >7ome?Y>@ndice?Z QalorA <&2A .>7ome?Y>@ndice?Z+A

&m pascal# >7ome?Y>@ndice?Z# WQalorA -&A, .>7ome?Y>@ndice?Z+A


E8em&lo? A<=O-2(3O Atribui QA-2VQ&21 7omes # Q&(O- YH # 2FZ ,& %A,&2A i # 27(&2-O B&=27 7omesYHZ IJoo da 1ilvaK 4A-A i 2 A(& 2F, 4A11O H, 9A%A <&2A.7omesYiZ+

923 4A-A
923

&m pascal#
4-O=-A3 AtribuiA QA33

7omes # A--AUYH..2FZO9 1(-27=A i # 27(&=&-A B&=27 7omesYHZ# WIJoo da 1ilvaKA 9O- i# W 2 (O 2F ,O -&A,.7omesYiZ+A &7,.

11.1.1 E8er0/0ios -?
H+ 9aa um algoritmo que leia, via teclado, 2FF valores do tipo inteiro e os guarde na mem'ria. 2+ Amplie o e!erc"cio anterior emitindo um relat'rio com todos os nmeros pares que voc6 leu. 3+ 9aa um algoritmo que determine qual o menor valor e!istente no vetor do e!erc"cio nmero H. )+ 9aa um algoritmo que determine qual o maior valor e!istente no vetor do e!erc"cio nmero H. ;+ 9aa um algoritmo que imprima quantos dos valores do e!erc"cio nmero H so maiores que a mdia desses valores. C+ 9aa um algoritmo que leia HF nomes e os guarde na mem'ria. G+ Amplie o e!erc"cio C imprimindo o menor 7ome do vetor R+ Amplie o e!erc"cio C imprimindo o maior 7ome do vetor S+ 9aa um algoritmo que leia 2F palavras, e ap's a leitura, reali a um processo qualquer que inverta os caracteres de cada uma das palavras. HF+ 9aa um algoritmo que leia HF nomes e os guarde na mem'ria. Ap's a leitura, emita um relat'rio com todos os nomes que so palindromes. Oma palavra palindrome aquela que a sua leitura a mesma da esquerda para a direita e vice versa. &!emplo# A-A-A, A7A, etc. HH+ 9aa um algoritmo que leia, 7ome idade e se!o de 7 pessoas. Ap's a leitura faa# a+ 2mprima o 7ome, idade e se!o das pessoas cu0a idade se0a maior que a idade da primeira pessoa. b+ 2mprima o 7ome e idade de todas as mulheres. c+ 2mprima o 7ome dos homens menores de 2H anos. H2+ 9aa uma algoritmo para ler 2F valores e que imprima os que so maiores que a mdia dos valores. H3+ 9aa um algoritmo que leia 7ome e notas . total de H2 + de 7 alunos de um colgio. Ap's a leitura faa# a+ 2mprima o 7ome e a mdia dos alunos aprovados . 3dia ?W G.F +. b+ 2mprima o 7ome e a mdia dos alunos em -ecuperao . ;.F ?W 3dia > G.F +. c+ 2mprima o 7ome e a mdia dos alunos reprovados . 3dia > ;.F +. d+ 2mprima o percentual de alunos aprovados. e+ 2mprima o percentual de alunos reprovados. H)+ ,ado 7ome e sal/rio de HF funcion/rios faa# a+ 2mprima o 7ome e o sal/rio dos funcion/rios que ganham mais de -i ;FF,FF b+ 4ara os funcion/rios que ganham menos de -i 2FF,FF conceda um aumento de 2Fd. 2mprima 7ome e o novo sal/rio destes funcion/rios aumentados H;+ 9aa um algoritmo que crie uma tabela no v"deo do computador com todos os caracteres A1%22, sendo que dever/ ser impresso o caracter, bem como o seu valor decimal. HC+ Om teste composto por HF quest5es foi proposto numa classe de n alunos. %ada questo admite as alternativas identificadas pelas letras A, B, %, , e &. 4ara cada aluno tem$se o registro contendo o seu nome e as suas respostas. 1endo dado o gabarito das quest5es faa um algoritmo que# 3)

a+ &screva uma relao contendo o nome e o nmero de acertos de cada alunoA b+ ,etermine quantos alunos acertaram as quest5es H e 2 e tiveram G acertosA c+ &screva o nome do aluno, que obteve a melhor nota e pior notaA HG+ 9aa um algoritmo para ler ;F valores inteiros. Ap's imprima tais valores ordenados crescentemente. HR+ %ontinuando o e!erc"cio anterior, emita um relat'rio com os valores ordenados decrescentemente. HS+ 9aa um algoritmo que leia HF valores numricos inteiros. Ap's a leitura emita um relat'rio com cada valor diferente e o nmero de ve es que o mesmo apareceu no vetor. 2F+ ,ado uma ralao de 7 nomes, faa um algoritmo que verifique se uma determinada pessoa est/ neste vetor. O 7ome da pessoa a ser pesquisada dever/ ser lido, bem como os nomes a serem colocados no vetor. 2H ,ado uma frase, faa um algoritmo que determine qual a consoante mais utili ada. 22+ 9aa um algoritmo que leia 7 letras e arma ene cada uma em uma posio de mem'ria. %oloque no vetor, ap's a ltima letra lida, o caracter MiN, indicando final dos caracteres 23+ 9aa um algoritmo que# a+ <eia um vetor A com 7 elementos e um vetor B com 7 elementos do tipo %A,&2A. b+ 2ntercale estes vetores A e B, formando um outro vetor % da seguinte forma. %YHZ AYHZ %Y2Z BYHZ %Y3Z AY2Z %Y)Z BY2Z c+ %aso um vetor . A ou B + termine antes do outro, o vetor % dever/ ser preenchido com os elementos do vetor que ainda possui informa5es. 2)+ 9aa um algoritmo que# a+ <eia um vetor A com 7 elementos 0/ ordenados e um vetor B com 3 elementos tambm 0/ ordenados. b+ 2ntercale os dois vetores A e B, formando um vetor %, sendo que ao final do processo de intercalao, o vetor % continue ordenado. 7enhum outro processo de ordenao poder/ ser utili ado alm da intercalao dos vetores A e B. c+ %aso um vetor . A ou B + termine antes do outro, o vetor % dever/ ser preenchido com os elementos do vetor que ainda possui informa5es. 2;+ 9aa um algoritmo que# a+ <eia um vetor com 7 elementos formado por valores do tipo inteiro. b+ Ap's a leitura, modifique o vetor de forma que o mesmo contenha na parte superior somente valores pares, e na parte inferior os valores impares. c+ Ordene crescentemente os nmeros pares, e decrescentemente os nmeros impares. 2C+ ,ado um con0unto de n registros, cada registro contendo o nome e a idade dessa pessoa faa um algoritmo que# a+ =uarde todos os dados na mem'riaA b+ &screva o nome das pessoas que tem idade maior que a idade da primeiraA c+ <istar os nomes das pessoas que tem a idade maior que a mdiaA d+ <istar o nome da pessoa de maior e menor idade 2G+ ,ado que para cada aluno de uma turma de M7N alunos se tenha, o seu nome, e as notas das R avalia5es. 9aa um algoritmo que# 2mprima o nome a mdia de cada alunoA a+ %alcule a 4ercentagem de alunos cu0o o nome comece com a letra MANA b+ 4ara cada aluno imprima uma mensagem di endo se o aluno tem ou no notas repetidasA c+ ,etermine quantos alunos tem pelo menos duas notas acima de GA 2R+ ,ado um verto ` de n elementos faa um algoritmo que# 3;

a+ b+ c+ d+

%rie outro vetor U contendo os elementos de ! que esto na fai!a entre HF e )FA %rie outro vetor T contendo os nmeros que esto nas posi5es paresA 4esquise a e!ist6ncia de um determinado elemento U no vetor `A &screva o menor e maior elemento do vetor `A

2S+ &m uma cidade do interior, sabe$se que, de 0aneiro a abril de HSGC .H2H dias+, no ocorreu temperatura inferior a H;o % nem superior a )Fo %. As temperatura verificadas em cada dia esto dispon"veis em uma unidade de entrada de dados. 9a er um algoritmo que calcule e escreva# a+ a menor temperatura ocorridaA b+ a maior temperatura ocorridaA c+ a temperatura mdia d+ o nmero de dias nos quais a temperatura foi inferior a mdia X temperatura mdia. 3F+ 9a er um algoritmo que# a+ leia o valor de n .n >W HFFF+ e os n valores de um vari/vel inde!ada A de valores inteiros ordenados de forma crescenteA b+ determine e escreva, para cada nmero que se repete no con0unto, a quantidade de ve es em que ele aparece repetidoA c+ elimine os elementos repetidos, formando um novo con0untoA d+ escreva o con0unto obtido no item cA 3H+ Om arma m trabalha com HFF mercadorias diferentes identificadas pelos nmeros inteiros de H a HFF. O dono do arma m anota a quantidade de cada mercadoria vendida durante o m6s. &le tem uma tabela que indica, para cada mercadoria, o preo de venda. &screva um algoritmo para calcular o faturamento mensal do arma m. A tabela de preos fornecida seguida pelos nmeros das mercadorias e as quantidades vendidas. *uando uma mercadoria no tiver nenhuma venda, informado o valor ero no lugar da quantidade. 32+ Oma grande firma dese0a saber quais os tr6s empregados mais recentes. 9a er um algoritmo para ler um nmero indeterminado de informa5es .m/!imo de 3FF+ contendo o nmero do empregado e o nmero de meses de trabalho deste empregado e escrever os tr6s mais recentes. Observa5es# A ltima informao contm os dois nmeros iguais a ero. 7o e!istem dois empregados admitidos no mesmo m6s. &!emplo# &34-&=A,O1 22) HG3H 22HF )C3H : ;2C H 2 3 ) 3FF 3&1&1 HG H 3 2 S 3 2 ) : HF 3FF

&mpregado mais recente# )C3H. 33+ 9a er um algoritmo que# a+ leia uma vari/vel inde!ada A com 3F valores reaisA b+ leia uma outra vari/vel inde!ada B com 3F valores reaisA c+ leia o valor de uma vari/vel `A d+ verifique qual o elemento de A igual a `A e+ escreva o elemento de B de posio correspondente X do elemento A igual a `A 3)+ 9a er um programa que# a+ leia o valor de 3 .3>W3F+ e os valores de uma vari/vel inde!ada AA b+ leia o valor de 7 .7>W2F+ e os valores de uma vari/vel inde!ada BA c+ determine o con0unto % W A B .unio de A com B+, onde % no dever/ conter elementos repetidos .A e B no contm elementos repetidos+A d+ escreva os elementos contidos em A, B e %A 3;+ 2ntercalao o processo utili ado para construir uma tabela ordenada, de tamanho n 8m, a partir de duas tabelas 0/ ordenadas de tamanhos n e m. 4or e!emplo, a partir das tabelas#

3C

AW e BW constru"mos a tabela %W

H 2

3 )

C ;

9a er um algoritmo que# a+ leia 7A, nmero de elementos do con0unto A .7A>WHFF+A b+ leia, em seguida, os elementos do con0unto AA c+ leia, logo ap's o valor de 7B, nmero de elementos do con0unto B .7B>WHFF+A d+ leia, finalmente, os elementos do con0unto BA e+ crie e imprima um con0unto %, ordenado, de tamanho 7A87B, a partir dos con0untos originais A e B. Observao# H. %onsiderar os elementos de A e B como inteiros. 3C+ 4ara cada nota de compra , tem$se o 7ome do produto comprado, o valor e o imposto. 9aa um algoritmo que escreva 7ome, valor e imposto de cada produto. Bem como o valor total bruto, o imposto total cobrado e o valor total l"quido de todas as notas. %onsidere ;FF notas 3G+ Oma empresa dese0a fa er um levantamento do seu estoque. 4ara isto possui para cada tipo de produto, o seu 7ome, o valor unit/rio e a sua quantidade em estoque. A empresa dese0a emitir um relat'rio contendo, o 7ome, quantidade, valor, unit/rio e o saldo . valor total + em estoque de cada tipo de produto. Ao final dese0a$se saber quantos tipos de produtos e!istem em estoque e o saldo de todos os produtos.

11.2

Variveis &nde;adas <idimensionais"=atri>es$

(ambm conhecida por M3atri N. Oma vari/vel Bidimencional , como o pr'prio 7ome 0/ indica, possui duas dimens5es, sendo ser poss"vel definir vari/veis com quaisquer tipo de dados validos do 4ascal.

AW

aHH a2H a3H

aH2 a22 a33

3atri A 3!2 .<inha ! %oluna+


a+ ,efinio# A<=O-2(3O ,efine QA-2VQ&21 >7ome?# 3A(-2j Y2 # J, <#3Z ,& >tipo? 272%2O >%omandos? 923

&m pascal#
4-O=-A3 ,efineA QA>7ome?# A--AU Y2..J, <..3Z O9 >tipo?A B&=27 >%omandos?A &7,.

3G

E8em&lo ,efinir uma vari/vel inde!ada bidemensional para arma enar os dados de uma matri ) por ) de nmeros do tipo -&A<, sendo que a mesma dever/ corresponder no total a HC posi5es de mem'ria. A<=O-2(3O &!emploA QA-2VQ&21 3A( # 3A(-2j YH#),H#)Z ,& -&A< 272%2O >%omandos? 923 &m pascal# 4-O=-A3 &!emploA QA3A(# A--AU YH..),H..)Z O9 -&A<A B&=27 >%omandos?A &7,.

7o E8em&lo acima, ap's a definio da vari/vel, a mem'ria estar/ como mostrado no esquema abai!o# 3A(

H,H 2,H 3,H ),H

H,2 2,2 3,2 ),2

H,3 2,3 3,3 ),3

H,) 2,) 3,) ),)

Os Qalores numricos apresentados acima correspondem aos "ndices da vari/vel. B+ Atribuio >7ome?Y>@ndice?,>@ndice?Z QalorA <&2A .>7ome?Y>@ndice?,>@ndice?Z+A

&m pascal# >7ome?Y>@ndice?,>@ndice?Z# WQalorA -&A, .>7ome?Y>@ndice?,>@ndice?Z+A


E8em&lo? A<=O-2(3O Atribui QA-2VQ&21 7omes # Q&(O- YH#),H#)Z ,& %A,&2A 2,J # 27(&2-O B&=27 4A-A 2 H A(& ), 4A11O H, 9A%A 4A-A J H A(& ), 4A11O H, 9A%A <&2A .7omes Y 2 , JZ + 923 4A-A 923 4A-A 923 4-O=-A3 AtribuiA QA7omes # A--AUYH..),H..)Z O9 1(-27=A 2,J # 27(&=&-A B&=27 9O- 2# W H (O ) ,O 9O- #W J #W H (O ) ,O -&A, .7omesY 2,JZ +A &7,.

&m pascal#

3R

11.2.1 E8er0/0ios '?


H+ 9aa um algoritmo para ler e imprimir uma matri 2!) de nmeros inteiros. 2+ ,ado uma matri de ordem 3!3 faa um algoritmo que# a+ %alcule a soma dos elementos da primeira colunaA b+ %alcule o produto dos elementos da primeira linhaA c+ %alcule a soma de todos os elementos da matri A d+ %alcule a soma do diagonal principalA 3+ ,ado uma matri de ordem 7!7 faa um algoritmo que verifique se a matri simtrica .ai0Wa0i+. )+ ,ado uma matri 7!3 de valores reais faa um algoritmo que faa a leitura destes valores e ao final da leitura de todos, imprimir o seguintes relat'rio# a+ *ual a 1oma dos valores de cada coluna da matri A b+ <istar os valores que so menores que a mdia dos valoresA c+ *ual a soma dos elementos da diagonal secund/riaA ;+ ,ado uma matri 7!3 de valores inteiros faca um algoritmo que faa a leitura destes valores e ao final coloque os elementos ordenados primeiro pela linha e depois pela coluna. C+ ,ado duas matri es A e B de ordem 7!7 faca um algoritmo que some as duas e gere a matri elementos da matri % so a soma dos respectivos elementos de A e B. G+ ,ado uma matri 7!3 de valores inteiros determine a sua matri transposta e imprima. R+ 9a er um algoritmo que efetue um produto matricial. 1e0a A.m ! n+ e B .n ! m+ as matri es fatores, sendo m>W)F e n>WGF. ,evero ser impressas as matri es A, B e a matri $produto obtida. %. Os

3S

12.

Fun"0es pr12de!inidas do +ascal

O 4ascal, possui muitas fun5es^-otinas pr$definidas, sendo que iremos estudar algumas das principais. %aso ha0a necessidade, o manual da linguagem 4ascal pode, e deve, ser usado como fonte de pesquisa de outras fun5es. ,entre as -otinas que iremos abordar , algumas necessitam que um comando especial se0a colocado no in"cio do 4-O=-A3A. (al comando mostrado abai!o# 4-O=-A3 (esteA O1&1 %-(A B&=27 >%omandos?A &7,. Obs.# As fun5es que necessitarem o comando especial mostrado acima tero colocados ao lado a palavra %-(.

12.1

5es#rio das Fun?es@!otinasA

#otina # AB1.+ Funo # -etorna o valor absoluto de um valor numrico. 'inta=e # -esultado# WAB1.Qalor+ E8em&lo# 4-O=-A3 (esteA QA`H # -&A<A `2 # 27(&=&-A B&=27 `H# WAB1. $2.3 +A `2# WAB1. $H;G +A &7,.

. 2.3 + . H;G +

#otina # %L-.+ Funo # -etorna um caracter da tabela A1%22 de acordo com um determinado valor numrico 'inta=e # -esultado# W%L-.Qalor+ E8em&lo# 4-O=-A3 (esteA QA`H # %LA-A B&=27 `H# W%L-. C; +A. IAK + &7,.

)F

#otina # %<-1%Funo # <impa a tela de v"deo 'inta=e # %<-1%E8em&lo# 4-O=-A3 (esteA O1&1 %-(A B&=27 %<-1%-A &7,. #otina # %O7%A(.+ Funo # %oncatena . Junta + uma seqD6ncia de 1(-27=Ks 'inta=e # -esultado# W%O7%A(. sH,s2,:,sn+ E8em&lo# 4-O=-A3 (esteA QAsH,s2 # 1(-27=A B&=27 sH# W%O7%A(.IJooK,K3ineiroK+A s2# W %O7%A(.IAB%K,K,&9=K,KL2JK+A &7,.

.IJoo 3ineiroK + .IAB%,&9=L2JK+

#otina # %O4U.+ Funo # %opia n caracteres de uma 1(-27= a partir de uma posio espec"fica 'inta=e # -esultado# W%O4U.sH, posio , quantidade+ E8em&lo# 4-O=-A3 (esteA QAsH #1(-27=A B&=27 sH# W%O4U.IAB%,&9=LK,2,3+A .IB%,K+ &7,. #otina # %O1.+ Funo # -etorna o cosseno de um valor numrico 'inta=e # -esultado# W %O1.Qalor+ E8em&lo# 4-O=-A3 (esteA QA! # -&A<A B&=27 !# W%O1.HF+A &7,.

)H

#otina # ,&%.+ Funo # ,ecrementa uma vari/vel numrica 'inta=e # ,&%.Qalor+ E8em&lo# 4-O=-A3 (esteA QA! # 27(&=&-A B&=27 !# WHFA ,&%.!+ A .S+ &7,. #otina # ,&<AU.+ . %-( + Funo # 2nterrompe o processamento por um nmero especificado de milisegundos 'inta=e # ,&<AU.(empo+ E8em&lo# 4-O=-A3 (esteA O1&1 %-(A B&=27 ,&<AU.2FF+A &7,. #otina # ,&<&(& .+ Funo # ,eleta n caracteres de uma 1(-27=, a partir de uma posio inicial 'inta=e # ,&<&(& .s ,posio, quantidade+ E8em&lo# 4-O=-A3 (esteA QAs # 1(-27=A B&=27 s# WIJoo da 1ilvaKA ,&<&(& .s,;,3+A .IJoo 1ilvaK+ &7,. #otina # &`4.+ Funo # -etorna MeN elevado a um determinado valor numrico 'inta=e # -esultado# W&`4.Qalor+ E8em&lo# 4-O=-A3 (esteA QA! # -&A<A B&=27 !# # W&`4.HF+A &7,.

)2

#otina # 9-A%.+ Funo # -etorna a parte fracion/ria de um valor numrico 'inta=e # -esultado# W9-A%.Qalor+ E8em&lo# 4-O=-A3 (este QA!# -&A< B&=27 !# W9-A%.2.3);+ . 3); + &7, #otina # =O(O`U.+ . %-( + Funo # 4osiciona o cursor no v"deo em uma determinada coluna . ! + e linha . E + 'inta=e # =O(O`U. coluna, linha + E8em&lo# 4-O=-A3 (esteA O1&1 %-(A B&=27 =O(O`U.HF,2F+A &7,. #otina # 27%.+ Funo # 2ncrementa uma vari/vel numrica 'inta=e # 27%.Qalor+ E8em&lo# 4-O=-A3 (esteA QA! # 27(&=&-A B&=27 !# WHFA 27%.!+A .HH+ &7,. #otina # 271&-(.+ Funo # 2nsere uma 1(-27= dentro de outra 1(-27= a partir de uma determinada posio 'inta=e # 271&-(.1(-27=P9onte, 1(-27=P,estino, posio+ E8em&lo# 4-O=-A3 (esteA QAs # 1(-27=A B&=27 s# WIJoo 1ilvaKA 271&-(.I,a K,s,C+A .IJoo ,a 1ilvaK+ &7,.

)3

#otina # 27( .+ Funo # -etorna a parte inteira de um valor numrico 'inta=e # -&sultado# W27( .Qalor+ E8em&lo# 4-O=-A3 (esteA QA! # -&A<A B&=27 !# W27( .2.3);+A &7,.

.2+

#otina # k&U4-&11&, . %-( + Funo # -etorna (-O& se uma tecla foi pressionada , 9A<1& case contr/rio 'inta=e # k&U4-&11&, E8em&lo# 4-O=-A3 (esteA O1&1 %-(A B&=27 -&4&A( O7(2< k&U4-&11&,A &7,. #otina # <&7=(L.+ Funo # -etorna o nmero de caracteres de uma 1(-27= 'inta=e # -esultado# W <&7=(L.s+ E8em&lo# 4-O=-A3 (esteA QA! # 27(&=&-A B&=27 !# W <&7=(L.IJooK+A &7,.

.)+

#otina # <7.+ Funo # -etorna o logaritmo natural de um determinado valor numrico 'inta=e # -esultado# W<7.Qalor+ E8em&lo# 4-O=-A3 (esteA QA! # -&A<A B&=27 !# W&`4.<7.2+\3+A .\ 2\\3 . R + \+ &7,.

))

#otina # O,,.+ Funo # -etorna (-O& se uma determinado valor numrico 9O- impar , 9A<1& caso contr/rio 'inta=e # E8em&lo# 4-O=-A3 (esteA QA! # BooleanA B&=27 c# Wodd.C;+A . (-O& + &7,. #otina # O-,.+ Funo # -etorna qual o nmero na tabela A1%22 de um determinado caracter 'inta=e # -esultado# WO-,.%aracter + E8em&lo# 4-O=-A3 (esteA QA! # 27(&=&-A B&=27 !# WO-,.IAK+A . C; + &7,. #otina # 42 Funo # -etorna o valor de 42 'inta=e # -esultado# W42 E8em&lo# 4-O=-A3 (esteA QA! # -&A<A B&=27 !# W42A . ).H)H;S2C;3;:+ &7,. #otina # 4O1.+ Funo # -etorna a posio da primeira ocorr6ncia dos caracteres de uma 1(-27= dentro de outra 1(-27= 'inta=e # -esultado# W4O1.%aracteres,1(-27=PAP1&-P4-O%O-A,A+ E8em&lo# 4-O=-A3 (esteA QA! # 27(&=&-A B&=27 !# W4O1.IAB%K,K,&AB%,9=K+A .3+ &7,.

);

#otina # -&A,k&U . %-( + Funo # 9a a leitura de um caracter do teclado, no sendo necess/rio pressionar &7(&'inta=e # -esultado# W-&A,k&U E8em&lo# 4-O=-A3 (esteA O1&1 %-(A QAtecla# %LA-A B&=27 tecla# W-&A,k&UA &7,. #otina # 127.+ Funo # -etorna o seno de um valor numrico 'inta=e # -esultado# W127.Qalor+ E8em&lo# 4-O=-A3 (esteA QA! # -&A<A B&=27 ! # W 127.HF+A &7,. #otina # 1*-.+ Funo # -etorna um valor numrico elevado ao quadrado 'inta=e # -esultado# W1*-.Qalor+ E8em&lo# 4-O=-A3 (esteA QA! # 27(&=&-A B&=27 !# W1*-.3+A .S+ &7,. #otina # 1*-(.+ Funo # -etorna a rai quadrada de um valor numrico 'inta=e # -esultado# Wstr.Qalor+ E8em&lo# 4-O=-A3 (este QA!# 27(&=&B&=27 !# W1*-(.S+ .3+ &7,

)C

#otina # 1(-.+ Funo # %onverte um valor numrico para a sua representao em 1(-27= 'inta=e # 1(-.Qalor, 1(-27=P-esultante + E8em&lo# 4-O=-A3 (esteA QAs # 1(-27=A B&=27 1(-.2.3);,s+A &7,. #otina # (&`(BA%k=-OO7,.+ . %-( + Funo # Altera a cor de fundo nas opera5es de &^1 'inta=e # (&`(BA%k=-OO7,.%or+ E8em&lo# 4-O=-A3 (esteA O1&1 %-(A B&=27 (&`(BA%k=-OO7,.F+A (&`(BA%k=-OO7,.H+A (&`(BA%k=-OO7,.2+A (&`(BA%k=-OO7,.3+A (&`(BA%k=-OO7,.)+A (&`(BA%k=-OO7,.;+A (&`(BA%k=-OO7,.C+A (&`(BA%k=-OO7,.G+A &7,. #otina # (&`(%O<O-.+ . %-( + Funo # Altera a cor das letras nas opera5es de &^1 'inta=e # (&`(%O<O-.%or+ E8em&lo# 4-O=-A3 (esteA O1&1 %-(A B&=27 (&`(%O<O- .F+A (&`(%O<O-.H+A (&`(%O<O- .2+A (&`(%O<O-.3+A (&`(%O<O-.)+A (&`(%O<O-.;+A (&`(%O<O-.C+A (&`(%O<O-.G+A &7,.

.4reto+ .A ul+ .Qerde+ .%iano+ .Qermelho+ .3angenta + .3arrom + .%in a +

.4reto+ .A ul+ .Qerde+ .%iano+ .Qermelho+ .3angenta + .3arrom + .%in a +

)G

#otina # (-O7%.+ Funo # (runca um valor -&A< para um valor 2nteiro 'inta=e # -esultado# W(-O7%.Qalor+ E8em&lo# 4-O=-A3 (esteA QA! # 27(&=&-A B&=27 !# W(-O7%.2.3);+A &7,

.2+

#otina # O4%A1&.+ Funo # %onverte um caracter minsculo para maisculo 'inta=e # -esultado# WO4%A1&.%aracter + E8em&lo# 4-O=-A3 (esteA QA! # %LA-A B&=27 !# WO4%A1&.IaK+A . IAK + &7,. #otina # QA<.+ Funo # %onverte uma 1(-27= para a sua representao numrica 'inta=e # QA<.1(-27=PO-2=&3,QA<O-P-&14O1(A,%O,2=OP&--O+ E8em&lo# 4-O=-A3 (esteA QA!, e # 27(&=&-A B&=27 QA<.IH23);K,!,e+A . H23); + &7,.

)R

13.

+ro3lemas ,esolvidos em Algoritmos4 +ascal e '


Alguns &!emplos de problemas resolvidos em Algoritmos, 4ascal e %.

13.1

l-oritmo do Trian-ulo

9aa um algoritmo para ler a base e a altura de um triengulo. &m seguida, escreva a /rea do mesmo. Obs# Vrea W . Base \ Altura + ^ 2 &m Algoritmo# Algoritmo Triangulo Variaveis: base, altura, area : real; Inicio Leia(Base) Leia(Altura) Area (Base * Altura)/2 Escreva (Area) im Em !ascal: "rogram triangulo; var area, base, altura: real; begin # Entra$a % &rite ('(igite a base: '); rea$ln (base); &rite ('(igite a altura: '); rea$ln (altura); # )alculos % area:* (base*altura)/2; # +ai$a% &riteln ('A area $o triangulo e: ',area:,-:2); en$. Em ): /inclu$e 0st$io.12 main () # /* $eclaracao $e variaveis */ 3loat area,base,altura; /* Entra$a $e $a$os */ "rint3 (4(igite base: 4); scan3 (4534, 6base) ; "rint3 (4(igite altura: 4); scan3 (4534, 6altura); )S

/* )alculos */ area * (base*altura)/2; /* 7esulta$os */ "rint3 (4A area $o triangulo e: 5,-.238n4, area); %

13.2

l-oritmo 6re#o

utom,vel

O preo de um au om!"e# $ %a#%u#ado pe#a &oma do preo de f'(ri%a %om o preo do& impo& o& )45* do preo de f'(ri%a) e a per%e+ agem do re"e+dedor )2,* do preo de f'(ri%a)- .aa um a#gori mo /ue #eia o +ome do au om!"e# e o preo de f'(ri%a e imprima o +ome do au om!"e# e o preo fi+a#0m 1#gori mo2 Algoritmo automovel Variaveis 9ome : ca$eia !reco3abrica, !reco3inal, Im"osto : real Inicio Leia (9ome, !reco3abrica) Im"osto !reco3abrica * (-,:; < -,2=) !reco3inal !reco3abrica < Im"osto Escreva (9ome, !reco3inal) im Em !ascal: "rogram "reco; var nome: string; !reco3abrica, !reco inal, im"osto : real; begin &rite ('(igite nome: '); rea$ln (nome); &rite ('(igite "reco $e 3abrica: '); rea$ln (!reco3abrica); Im"osto :* !reco3abrica * (-.:; < -.2=); !reco inal :* !reco abrica < im"osto; &riteln ('Automovel:', nome); &riteln ('!reco $e ven$a:', !reco inal:,-:2); en$. Em ): /inclu$e 0st$io.12 main () # /* $eclaracao $e variaveis */ c1ar nome>?-@ ; 3loat "reco3abrica, "reco3inal, im"osto ; /* Entra$a $e $a$os */ "rint3 (4(igite nome: 4);

;F

scan3 (45s4, 6nome) ; "rint3 (4(igite "reco $e 3abrica: 4); scan3 (4534, 6"reco3abrica); /* )alculos */ im"osto * "reco3abrica *(-.:; < -.2=); "reco3inal * "reco3abrica < im"osto; /* 7esulta$os */ "rint3 (4Automovel: 5s8n4, nome); "rint3 (4!reco $e ven$a: 5,-.238n4, "reco3inal); %

13.3

l-oritmo =edia Valor

3ado uma &$rie de 20 "a#ore& reai&, faa uma a#gori mo /ue %a#%u#e e e&%re"a a m$dia ari m$ i%a de& e& "a#ore&, e+ re a+ o &e a m$dia o( ida for maior /ue , de"er' &er a ri(u4da 10 para a m$dia5Algoritmo +erie Variaveis )onta$or: Inteiro 9,+oma, Ae$ia :7eal Inicio )onta$or +oma EnBuanto )onta$or 0 2- 3aca Leia (9) +oma +oma < 9 )onta$or )onta$or < , im EnBuanto Ae$ia +oma / 2+e Ae$ia 2 = Entao Ae$ia ,im +e Escreva (Ae$ia) im &m 4ascal# !rogram AE(IAC2-; Dses crt; var conta:integer; me$ia,num,soma:real; Begin )lrscr; conta :* -; soma :* -; Eriteln ('(igite 2- numeros'); E1ile conta 0 2- $o Begin rea$ (num); soma :* soma < num; conta :* conta < ,; En$; ;H

me$ia :* (soma / 2-); i3 me$ia 2 = t1en Eriteln ('me$ia *,-'); else Eriteln ('A me$ia F'); Eriteln (me$ia); En$. Em ): /inclu$e0st$io.12 /inclu$e0conio.12 main() # 3loat me$ia,num,soma; int cont; soma*-; cont*-; clrscr(); "rint3(48n(igite 2- numeros8n4); &1ile (cont02-) # scan3(4534,6num); soma*soma<num; num*soma; cont<<; % me$ia*num/2-; i3 (me$ia 2 =) # "rint3(4Ae$ia F igual a ,-4); % else # "rint3(4Ae$ia F igual a: 52.238n4,me$ia); # % % return(-); %

13.4

l-oritmo 3 =enores

.aa um a#gori mo /ue #eia 3 +6mero& i+ eiro& e imprima o me+or de#e&0m 1#gori imo2 Algoritmo Aenor Variaveis A, B, ), Aenor : Inteiro Inicio Leia ( A,B,)) +e (A 0 B) E (A 0)) Entao Aenor A +enao +e B 0 ) Entao Aenor B +enao

;2

Aenor ) im se im se Escreva (Aenor) im &m 4ascal# !rogram AE9G7C9; Dses crt; var n,,n2,nH,menor:integer; Begin )lrscr; Eriteln ('(igite H valores'); 7ea$ (9,,92,9H); I3 (9,092) An$ (9,09H) T1en menor:*9, Else I3 (9209,) An$ (9209H) T1en menor:*92 Else menor:*9H Eriteln ('G menor valor F'); Eriteln (menor); En$. Em ): /inclu$e0st$io.12 /inclu$e0conio.12 main() # int n,,n2,nH; clrscr(); "rint3(48n(igite H valores8n4); scan3(45$4,6n,); scan3(45$4,6n2); scan3(45$4,6nH); i3 ((n,0n2) 66 (n,0nH)) # "rint3(48nG menor numero F :5$8n4,n,); % else # i3 ((n20n,) 66 (n20nH)) # "rint3(48nG menor numero F :5$8n4,n2); % else # "rint3(48nG menor numero F :5$8n4,nH); % % return(-); %

;3

13.B

l-oritmo =edia =aior Cue 4

,ado um con0unto de n registros cada registro contendo um valor real, faa um algoritmo que calcule a mdia dos valores maiores que ). &m Algoritmo# Algoritmo Ae$ia Variaveis 9, )onta, Aaior: : Inteiro +oma, Ae$ia, 9umero :7eal Inicio )onta , Aaior: +oma Leia (9) EnBuanto )onta 0 9 aIa Leia (9umero) +e 9umero 2 : Entao +oma +oma < 9umero Aaior: Aaior: < , im +e )onta )onta < , im EnBuanto Ae$ia +oma / Aaior: Escreva (Ae$ia) im Em !ascal: "rogram maior:; uses )7T; var n, auJ: integer; soma, me$ia, numero: real; begin )lrscr; &rite ('(igite valores $i3erentes $e KKK'); &riteln; auJ :* -; soma :* -; rea$ (numero); &1ile numero 02 KKK $o begin i3 numero 2 : t1en begin soma:* soma < numero; auJ :* auJ < ,; en$; rea$ (numero); en$; me$ia :* (soma/auJ); &rite ('AE(IA*'); &rite (me$ia); en$. Em ):

;)

/inclu$e 0iostream.12 /inclu$e 0conio.12 main () # clrscr(); int n; 3loat soma,me$ia,numero,auJ; cout 004$igite valores $i3erentes $e KKK L2 4; cin 22 numero; auJ *,; soma *-; &1ile (numero M* KKK) # i3 (numero 2 :) # soma * soma < numero; auJ *auJ<,; % me$ia * (soma/auJ); cout 00 48nEntre com o "roJimo L24; cin 22 numero; % cout 00 me$ia; return -; %

13.6

l-oritmo %alrio

Oma empresa tem para um determinado funcion/rio uma ficha contendo o nome, nmero de horas trabalhadas e o n F de dependentes de um funcion/rio. %onsiderando que# a+ A empresa paga H2 reais por hora e )F reais por dependentes. 1obre o sal/rio so feito descontos de R,;d para o 2711 e ;d para 2-. 9aa um algoritmo para ler o 7ome, nmero de horas trabalhadas e nmero de dependentes de um funcion/rio. Ap's a leitura, escreva qual o 7ome, sal/rio bruto, os valores descontados para cada tipo de imposto e finalmente qual o sal/rio l"quido do funcion/rio. &m Algoritmo# Algoritmo salario variaveis nome : ca$eia $e"en$ente : inteiro 1oras, salariol, salariob, (escontoI, (esconto7 : real; Inicio Leia(nome,1oras, $e"en$ente) salariob (,2 * 1oras) < (:- * $e"en$ente) (escontoI (salariob*-,-=;) (esconto7 (salariob*-,-;) salariol (salariob L (escontoI, (esconto7) Escreva(nome,salarioB, (escontoI, (esconto7, salarioL) im &m 4ascal# !rogram +alario; Dses )rt; Var

;;

9ome:+tring; 9um1ora, +albruto, +alliB:7eal; 9um$e":Integer; Begin )lrscr; Erite ('(igite G 9ome (o uncionario:'); 7ea$ (9ome); Eriteln; Erite ('9umero (e Noras Trabal1a$as:'); 7ea$ (9um1ora); Eriteln; Erite ('E 9umero (e (e"en$entes:'); 7ea$ (9um$e"); Eriteln; +albruto:*(,2*9um1ora)<(:-*9um$e"); +alliB:*+albrutoL((+albruto*-.-=;)<(+albruto*-.-;)); Erite ('9ome (o uncionario:'); Erite (9ome); Eriteln; Erite ('+alario LiBui$o:'); Erite (+alliB); En$. &m %# /inclu$e 0iostream.12 /inclu$e 0conio.12 /inclu$e 0st$io.12 main () # clrscr(); int num$e"; 3loat num1ora,salbruto,salliB; c1ar nome>2-@; cout 00 4(igite o nome $o 3uncionario L2 4; scan3 (45s4, 6nome); cout 00 49umero $e 1oras trabal1a$as L2 4; scan3 (4534, 6num1ora); cout 00 49umero $e $e"en$entes L2 4; scan3 (4534, 6num$e"); salbruto * (,2*num1ora)<(:-*num$e"); salliB * salbruto L((salbruto*-.-=;)<(salbruto*-.-;)); cout 00 48n9ome $o uncionario: 400 nome; cout 00 48n+alario LiBui$o: 4 00 salliB; return -; %

13.)

l-oritmo B8 Trian-ulos

H+ 9aa um algoritmo para ler base e altura de ;F triengulos e imprimir a sua /rea. &m Algoritmo# Algoritmo Triangulo ;C

Variaveis )onta$or: Inteiro Base, Naltura, Area :7eal Inicio )onta$or , EnBuanto )onta$or 0 ;, 3aca Leia (Base Leia (Naltura) Area (Base * Naltura)/2 Escreva( Area) )onta$or )onta$or < , im EnBuanto im &m 4ascal# "rogram triangulo; uses crt; var base,altura,area:real; conta$or:integer; begin clrscr; conta$or:*,; &1ile conta$or 0 ;, $o begin &riteln('(igite a Base'); rea$(base); &riteln('(igite a Altura'); rea$(altura); area:*(base*altura)/2; &rite('Esta e a area $o triangulo &riteln (area); conta$or:*conta$or<,; en$; re"eat until OeP"resse$; en$. &m %# /*"rogram triangulo*/ /inclu$e 0st$io.12 main () # 3loat base,altura,area; int conta$or * ,; &1ile (conta$or 0 ;,) # "rint3 (48n(igite a Base8n4); scan3 (4534,6base); "rint3 (48n(igite a Altura8n4); scan3 (4534,6altura); area*(base*altura)/2; "rint3 (48nA area $o triangulo $e numero 5$ e1 534,area); conta$or<<; % return (-); % ;G

');

13.D

l-oritmo =edia =enores

,ado um con0unto de 2F valores reais, faa um algoritmo que# a+ 2mprima os valores que no so negativos. b+ %alcule e imprima a mdia dos valores > F. &m Algoritmo# Algoritmo )onQunto2Variaveis 9, +omaAenor, Ae$iaAenor : 7eal )ontaAenor, )onta$or : Inteiro Inicio )onta$or )ontaAenor +omaAenor EnBuanto )onta$or 0 2- 3aca Leia(9) +e 9 2* - Entao Escreva (9) +enao +omaAenor +omaAenor < 9 )ontaAenor )ontaAenor < , im +e )onta$or )onta$or < , im EnBuanto Ae$iaAenor +omaAenor / )ontaAenor im &m 4ascal# "rogram numeros; uses crt; var valor,me$ia,soma:real; cont,cont"os:integer; begin clrscr; cont:*,; &1ile cont 0 2, $o begin &riteln('(igite um valor real'); rea$(valor); i3 valor 0 - t1en begin me$ia:*me$ia<valor; cont"os:*cont"os<,; en$ else begin &rite (valor); &riteln (' e um valor maior Bue Rero'); en$; cont:*cont<,; en$; me$ia:*me$ia/cont"os; ;R

&rite ('G numero $e valores menores Bue Rero sao '); &riteln (cont"os); &rite ('A me$ia $o valores menores Bue Rero e '); &riteln (me$ia); re"eat until OeP"resse$; en$. &m %# /* numeros */ /inclu$e 0st$io.12 main() # 3loat int

valor ,me$ia; cont * ,, cont"os* -;

&1ile (cont 0 2,) # "rint3 (48n(igite um valor real8n4); scan3 (4534, 6valor); i3 (valor 0 -) # me$ia*me$ia<valor; cont"os<<; % else # "rint3 (48n 534,valor); "rint3 (4 e um valor maior Bue Rero4); % cont<<; % me$ia * me$ia / cont"os; "rint3 (48nG numero $e valores menores Bue Rero e1 5$4,cont"os); "rint3 (48nA me$ia $os valores menores Bue Rero e 534,me$ia); return (-); %

;S

Vous aimerez peut-être aussi