You are on page 1of 66

ndice

1. Algoritmos____________________________________________________________
2. Fases de um Algoritmos_________________________________________________
3. Estrutura de Algoritmos_________________________________________________
4. Variveis______________________________________________________________
4.1 Formao de Variveis________________________________________________
4.2 Contedo de uma Varivel_____________________________________________
4.3 Tipos de Variveis____________________________________________________
5. Tipos de ados________________________________________________________
!. e"ini#$o de Variveis__________________________________________________
6.1 Comando de atribuio_______________________________________________
6.2 Variveis do tipo C!"#Cara$ter% e &T"'()#Cadeia%______________________
%. &peradores___________________________________________________________
*.1 +peradores matemti$os______________________________________________
*.2 +peradores ,-.i$os__________________________________________________
'. (omandos de Entrada e )a*da___________________________________________
+. ,rocessos de -epeti#$o e )ele#$o__________________________________________
/.1 0strutura de "epetio 0(12!(T+3F!4! #5',0 6+%___________________
/.2 0strutura de repetio "07'T!3!T8 # "epeat 2ntil%________________________
/.3 0strutura de repetio 7!"!3F!4! #F+" ... T+... 6+%_____________________
1.. Estrutura de sele#$o___________________________________________________
19.1 0strutura &0:0(T;+:&0(;+ #'F:T0(:0,&0%___________________
19.2 0strutura C!&0____________________________________________________
11. Variveis (ompostas /omog0neas_______________________________________
11.1 Variveis 'nde<adas 2ni 6imensionais#Vetores%___________________________
11.2 Variveis 'nde<adas =idimensionais#>atri?es%____________________________
12. Fun#1es pr23de"inidas do ,ascal_________________________________________
12.1 6es$rio das Fun@esA"otinasB_______________________________________
13. ,ro4lemas -esolvidos em Algoritmos5 ,ascal e (___________________________
13.1 !l.oritmo do Trian.ulo______________________________________________
13.2 !l.oritmo 7re$o !utom-vel__________________________________________
13.3 !l.oritmo >edia Valor_______________________________________________
13.4 !l.oritmo 3 >enores________________________________________________
0
13.C !l.oritmo >edia >aior Due 4_________________________________________
13.6 !l.oritmo &alrio___________________________________________________
13.* !l.oritmo C9 Trian.ulos_____________________________________________
13.E !l.oritmo >edia >enores____________________________________________
1
1. Algoritmos
Algoritmo n$o 2 a solu#$o de um pro4lema5 pois5 se assim "osse5 cada
pro4lema teria um 6nico algoritmo. Algoritmo 2 um camin7o para a solu#$o de um
pro4lema5 e em geral5 os camin7os 8ue levam a uma solu#$o s$o muitas.
& aprendi9ado de algoritmos n$o se consegue a n$o ser atrav2s de muitos
e:erc*cios.
Algoritmos n$o se aprende;
3 (opiando Algoritmos
3 Estudando Algoritmos
Algoritmos s< se aprendem;
3 (onstruindo Algoritmos
3 Testando Algoritmos
2
2. Fases de um Algoritmos
=uando temos um pro4lema e vamos utili9ar um computador para resolve3
lo inevitavelmente temos 8ue passar pelas seguintes etapas;
a> e"inir o pro4lema.
4> -eali9ar um estudo da situa#$o atual e veri"icar 8uais a?s> "orma?s> de
resolver o pro4lema.
c> Terminada a "ase de estudo5 utili9ar uma linguagem de programa#$o para
escrever o programa 8ue dever a princ*pio5 resolver o pro4lema.
d> Analisar @unto aos usurios se o pro4lema "oi resolvido. )e a solu#$o n$o
"oi encontrada5 dever ser retornado para a "ase de estudo para desco4rir
onde est a "al7a.
Estas s$o de "orma 4em geral5 as etapas 8ue um analista passa5 desde a
apresenta#$o do pro4lema at2 a sua e"etiva solu#$o. Aremos5 neste curso5 nos ater as
etapas de estudo5 tam42m c7amada de anlise5 e a etapa de programa#$o. Bas
antes vamos de"inir o seguinte conceito; ,rogramar um computador consiste em
ela4orar um con@unto "inito de instru#1es5 recon7ecidas pela m8uina5 de "orma
8ue o computador e:ecute estas instru#1es. Estas instru#1es possuem regras e uma
)inta:e pr<pria5 como uma linguagem tipo portugu0s ou ingl0s5 sendo isto
c7amadas de linguagem de computador.
Co mundo computacional e:iste uma grande variedade de linguagens
,ascal5 (5 (DD5 (o4ol5 Fortran5 etcE . C<s iremos en"ocar uma delas5 o ,ascal.
3
3. Estrutura de Algoritmos
Antes de utili9armos uma linguagem de computador5 2 necessrio organi9ar
as a#1es a serem tomadas pela m8uina de "orma organi9ada e l<gica5 sem nos
atermos as regras r*gidas da )inta:e de uma linguagem. ,ara isto utili9aremos uma
"orma de escrever tais a#1es5 con7ecida como algoritmo5 ou pseudo3c<digo.
(onceituando; Algoritmo consiste em um con@unto l<gico e "inito de a#1es ?
instru#1es > 8ue resolvem um determinado pro4lema.
&s algoritmos ter$o a seguinte estrutura;
AFG&-ATB& HCome do algoritmoI
Hde"ini#1esI
AC(A&
H(omandosI
FAB
Em ,ascal "icaria da seguinte "orma;
,-&G-AB HCome do programaIJ
Hde"ini#1esI
KEGAC
H(omandosIJ
EC.
4
4. Variveis
& computador possui uma rea de arma9enamento con7ecida como
mem<ria. Todas as in"orma#1es e:istentes no computador est$o ou na mem<ria
primria ? mem<ria -AB >5 ou na mem<ria secundria ? discos5 "itas5 (3-&B
etc >. C<s iremos tra4al7ar5 neste curso5 somente com a mem<ria primria5
especi"icamente com as in"orma#1es arma9enadas na -AB ? mem<ria de acesso
aleat<rio >.
A mem<ria do computador pode ser entendida como uma se8L0ncia "inita
de cai:as5 8ue num dado momento5 guardam algum tipo de in"orma#$o5 como
n6mero5 uma letra5 uma palavra5 uma "rase etc5 n$o importa5 4asta sa4er 8ue l
sempre e:iste alguma in"orma#$o.
& computador5 para poder tra4al7ar como alguma destas in"orma#1es5
precisa sa4er onde5 na mem<ria5 o dado est locali9ado. Fisicamente5 cada cai:a5 ou
cada posi#$o de mem<ria5 possui um endere#o5 ou se@a5 um n6mero5 8ue indica
onde cada in"orma#$o est locali9ada. este n6mero 2 representado atrav2s da
nota#$o 7e:adecimal5 tendo o taman7o de 8uatro5 ou mais 4Mtes. A4ai:o segue
alguns e:emplos;
Endere#o F*sico An"orma#$o
3...; K%12 NOo$oP
2...; 12E( 12345
3...; ...4 N/P
(omo pode ser o4servado5 o endere#amento das posi#1es de mem<ria
atrav2s de n6meros 7e:adecimais 2 per"eitamente compreendido pela m8uina5
mas para n<s 7umanos torna3se uma tare"a complicada. ,ensando nisto5 as
linguagens de computador "acilitaram o manuseio5 por parte dos usurios5 das
posi#1es de mem<ria da m8uina5 permitindo 8ue5 ao inv2s de tra4al7ar
diretamente com os n6meros 7e:adecimais5 "osse poss*vel dar nomes di"erentes a
cada posi#$o de mem<ria. Tais nomes seriam de livre escol7a do usurio. (om este
recurso5 os usurios "icaram livres dos endere#os "*sicos ? n6meros 7e:adecimais > e
passaram a tra4al7ar com endere#os l<gicos ? nomes dados pelos pr<prios
usurios >. esta "orma5 o E:emplo acima5 poderia ser alterado para ter o seguinte
aspecto;
Endere#o F*sico An"orma#$o
Come NOo$oP
n6mero 12345
letra N/P
(omo t*n7amos "alado5 os endere#os l<gicos s$o como cai:as5 8ue num dado
instante guardam algum tipo de in"orma#$o. Bas 2 importante sa4er 8ue o
conte6do desta cai:a n$o 2 algo "i:o5 permanente5 na verdade5 uma cai:a pode
conter diversas in"orma#1es5 ou se@a5 como no E:emplo acima5 a cai:a ? Endere#o
F<gico > rotulada de QComeR num dado momento cont2m a in"orma#$o QOo$oR5
mas em um outro momento5 poder conter uma outra in"orma#$o5 por E:emplo
5
Q,edroR. (om isto 8ueremos di9er 8ue o conte6do de uma destas cai:as ? endere#o
l<gico > podem variar5 isto 2 podem so"rer altera#1es em seu conte6do. Tendo este
conceito em mente5 a partir de agora iremos c7amar de "orma gen2rica5 as cai:as
ou endere#os l<gicos5 de variveis.
esta "orma podemos di9er 8ue uma varivel 2 uma posi#$o de mem<ria5
representada por um Come sim4<lico ? atri4u*do pelo usurio >5 a 8ual cont2m5
num dado instante5 uma in"orma#$o.
4.1 Formao de Variveis
Sma varivel 2 "ormado por uma letra ou ent$o por uma letra seguida de
letras ou d*gitos5 em 8ual8uer n6mero. C$o 2 permitido o uso de espa#os em
4ranco ou de 8ual8uer outro caractere5 8ue n$o se@a letra ou d*gito5 na "orma#$o
de um identi"icador.
Ca "orma#$o do nome da varivel de um nome signi"icativo5 para 8ue se
possa ter id2ia do seu conte6do sem a4ri3l. )e utili9ar palavras para compor o
nome da varivel utili9e o Q_ Q underline para separar as palavras.
4.2 Contedo de uma Varivel
ados 3 Elementos con7ecidos de um pro4lema
An"orma#$o 3 Sm con@unto estruturado de dados5 transmitido con7ecimento
4.3 Tipos de Variveis
(onsidere a "<rmula matemtica simples do calculo do volume de uma
es"era;
V R =
4
3
3

onde se encontram;
13 valores 8ue podem ser classi"icados como;
a> valores constantes5 invariantes em todas as aplica#1es da "<rmula5 no caso
dos valores 45 3 e aos denomina3se constantesJ
4> valores a serem su4stitu*dos na "<rmula5 em cada aplica#$oJ a
representa#$o destes valores5 usualmente 2 "eita atrav2s de letras5 8ue
rece4em o nome de variveis e tornam a "<rmula gen2rica5 poss*vel de ser
aplicada para resolver uma certa classe de pro4lemas e n$o apenas um
pro4lema espec*"ico.
2 3 &pera#1es a serem "eitas so4re determinados operandos ?Valores>5 para a
o4ten#$o da solu#$o do pro4lema.
6
5. Tipos de ados
& ,ascal e:ige 8ue no momento 8ue "ormos tra4al7ar com variveis5
indi8uemos o tipo de in"orma#$o 8ue uma varivel pode conter5 isto 25 se uma dada
posi#$o de mem<ria arma9enar um n6mero ou uma letra etc. ,ara isto5 a
linguagem ,ascal possui de"inido alguns tipos 8ue dever$o ser usados 8uando
"ormos tra4al7ar com variveis. Alguns tipos s$o;
Algoritmo ,ascal escri#$o
a> Anteiro a> ACTEGE-; -epresenta n6meros entre 332%!' at2 D32%!%. ocupa 2
4Mtes na mem<ria.
4> -eal 4> -EAF; -epresenta os n6meros entre 2.+ : 1.
33+
at2 1.% : 1.
3'
.
&cupa ! 4Mtes na mem<ria.
e> (aracter e> (/A-; -epresenta um dos caracteres5 da ta4ela A)(AA. &cupa 1
4Mte na mem<ria.
d> (adeia "> )T-ACG; (on@unto de caracteres ? (/A- >. &cupa de 1 a 255 4Mtes
na mem<ria.
g> F<gica g> K&&FEAC; Valor l<gico. Assuma somente dois valores;
T-SE?Verdade> ou FAF)E?Falso>. ocupa 1 4Mte na
mem<ria.
c> T&-; C6meros de . at2 !5535. &cupa 2 4Mtes na mem<ria.
d> KUTE; C6meros de . at2 255. &cupa 1 4Mte na mem<ria.
7> )7or Ant -epresenta os n6meros entre 312' at2 12' . &cupa 1 4Mtes
na mem<ria.
i> FongAnt -epresenta os n6meros entre 3 2.14%.4'3.!4' at2
2.14%.4'3.!4' . &cupa 4 4Mtes na mem<ria.
@> )ingle -epresenta os n6meros entre 1.5 : 1.
345
at2 3.4 : 1.
3'
.
&cupa 4 4Mtes na mem<ria.
l> ou4le -epresenta os n6meros entre 5 : 1.
3324
at2 1.% : 1.
3.'
.
&cupa ' 4Mtes na mem<ria.
Aremos gradativamente tra4al7ar com cada um destes tipos e mostrar as suas
caracter*sticas.
7
!. e"ini#$o de Variveis
,ara de"inir uma ou mais variveis5 devemos utili9ar5 em ,ascal5 a palavra
VA-. ,ara manter uma compati4ilidade5 utili9aremos a mesma nomenclatura em
nossos algoritmos. A4ai:o segue E:emplo de algumas de"ini#1es de variveis;
a> AFG&-ATB& Teste ,-&G-AB TesteJ
VA-AVVEA) VA-
,alavra ; (AEAA ,alavra; )tringJ
ACA(A& KEGAC
HcomandosI HcomandosIJ
FAB EC.
4> AFG&-ATB& Teste ,-&G-AB TesteJ
VA-AVVEA) VA-
Fetra5 (aracter;
(A-A(TE-
Fetra5 (aracter;
(/A-J
ACA(A& KEGAC
HcomandosI HcomandosIJ
FAB EC.
c> AFG&-ATB& Teste ,-&G-AB TesteJ
VA-AVVEA) VA-
Fetra5 (aracter;
(A-A(TE-
Fetra5 (aracter;
(/A-J
C6mero; ACTEA-& C6mero; ACTEGE-J
ACA(A& KEGAC
HcomandosI HcomandosIJ
FAB EC.
&4s.; &s nomes dados as variveis n$o podem ser os mesmos nomes de palavras
reservadas do ,ascal5 tais como ,-&G-AB5 KEGAC5 EC5 VE-5 etcE
6.1 Comando de atribuio
=uando de"inimos uma varivel 2 natural atri4uirmos a ela uma
in"orma#$o. Sma das "ormas de colocar um valor dentro de uma varivel5
conse8uentemente colocado este dado na mem<ria do computador5 2 atrav2s da
atri4ui#$o direta5 do valor dese@ado 8ue a varivel arma9ena. ,ara isto
utili9aremos o s*m4olo ? ; W ?,ascal> 5 ?Algoritmo> >5 8ue signi"ica; rece4e5 ou
se@a5 a posi#$o5 de mem<ria 8ue uma varivel representa5 rece4er uma
in"orma#$o5 a 8ual ser arma9enada no interior desta varivel.
E:emplo;
AFG&-ATB& Teste ,-&G-AB TesteJ
VA-AVVEA) VA-
C6mero; ACTEA-& C6mero; ACTEGE-J
ACA(A& KEGAC
8
C6mero 1.
C6mero; W1.J
FAB EC.
& E:emplo acima nos in"orma 8ue;
a> Foi de"inido uma varivel5 a 8ual demos o Come de QC6meroR5 e in"ormamos
8ue esta varivel5 ou posi#$o de mem<ria5 s< poder aceitar dados5 8ue se@am
num2ricos e 8ue este@am entre 332%!' a D32%!% ? tipo ACTEGE- >.
4> Atri4u*mos X varivel QC6meroR o valor 1.
A mem<ria se comportaria da seguinte "orma5 de acordo com os itens acima;
a> Varivel (onte6do
C6mero inde"inido
4> Varivel (onte6do
C6mero 1.
6.2 Variveis do tipo C!"#Cara$ter% e &T"'()#Cadeia%
As de"ini#1es de variveis como sendo do tipo (/A- e )T-ACG5 possuem
algumas curiosidades 8ue merecem um cuidado especial por parte do usurio.
!.2.1 Sso das aspas ? N >
=uando estivermos "a9endo a atri4ui#$o de um valor para uma varivel do
tipo (/A- ?(aracter> ou )T-ACG ?(adeia>5 temos 8ue ter o cuidado de colocar o
valor ? dado > entre aspas ? N >5 pois esta 2 a "orma de in"ormar 8ue a in"orma#$o 2
caracter.
E:emplo;
AFG&-ATB& Teste
VA-AVVEA)
Fetra ; (A-A(TE-
Come ; (AEAA
ACA(A&
Fetra NAP
Come NOo$oP
FAB
!.2.2 Banipula#$o de caracteres individuais em )T-ACGPs ?(adeias>
Buitas ve9es 2 necessrio manipular caracteres individuais em uma
)T-ACG ?(adeia> . & ,ascal possui uma "orma toda especial de permitir tal
opera#$o5 atrav2s do uso de colc7etes? Y Z > logo ap<s o Come da varivel do tipo
)T-ACG ?(adeia> 5 e o n6mero do caracter 8ue se dese@a manipular entre os
colc7etes.
E:emplo; Atri4uir o primeiro caracter de uma )T-ACG a uma varivel do tipo
(/A-.
9
AFG&-ATB& Atri4ui)tringJ
VA-AVVEA)
letra ; (A-A(TE-
Come ; (AEAA
ACA(A&
Come NOoaoP
letra ComeY1Z
FAB
=uando de"inimos uma varivel como sendo do tipo )T-ACG n$o estamos
alocando 1 posi#$o de mem<ria apenas ? uma cai:a5 pela analogia inicial >5 mas na
verdade5 estamos alocando at2 255 cai:as5 uma para cada caracter da )T-ACG
? lem4re3se 8ue uma )T-ACG pode ter no m:imo 255 caracteres >. Ao utili9armos
o s*m4olo de colc7ete5 estamos na verdade indicando 8ual o caracter ? 8ual a
cai:a > dese@amos manipular.
e acordo com o E:emplo acima5 ter*amos na mem<ria a seguinte situa#$o;
a> Alocamos 255 4Mtes ? caracteres > na mem<ria. A estas posi#1es de mem<ria 2
dado o Come de QComeR. Anicialmente estas posi#1es de mem<ria ? (ai:as >
possuem o conte6do inde"inido.
4> Alocamos 1 4Mte ? caracter > na mem<ria. A este caracter 2 dado o Come de
QFetraR. Anicialmente esta posi#$o de mem<ria possu* o conte6do inde"inido.
c> Ca mem<ria temos a seguinte situa#$o;
Come
1 2 3 E 255
Fetra
d> Atri4u*mos a varivel QComeR o valor QOo$oR5 o4tendo na mem<ria a seguinte
con"igura#$o
Come
1 2 3 4 E 255
NOP NoP NaP NoP
e> Atri4u*mos a varivel QFetraR o primeiro caracter da varivel QComeR5 ou se@a5
o conte6do da primeira posi#$o de mem<ria ? cai:a >. Ca mem<ria teremos a
seguinte con"igura#$o;
Come
1 2 3 4 E 255
NOP NoP NaP NoP
Fetra
NOP
10
&4s.; [ poss*vel de"inir variveis do tipo )T-ACG?(adeia> com menos de 255
caracteres. ,ara isto5 4asta colocar5 ap<s a palavra )T-ACG?(adeia>5 o n6mero de
caracteres dese@ados entre colc7etes ? Y Z >.
E:emplo;
AFG&-ATB& e"ine
VA-AVVEA)
Come; (AEAAY'.Z
ACA(A&
FAB
esta "orma5 o espa#o ocupado por uma varivel )T-ACG?(adeia> passa de 255
4Mtes para apenas '. 4Mtes5 na mem<ria.
11
!.2.3 E:erc*cios .;
1> ar o tipo de cada uma das constantes
a> !13
4> !135.
c> 3!13
d> Q!13R
e> 335.12 \ 1.
15
"> 1%\1.
12
g> 32'53 \ 1.
323
7> QFim de =uest$oR
2> Fa#a um algoritmo para atri4uir a variveis as seguintes in"orma#1es;
a> 12345
4> 12345!
c> 31122
d> 1.
e> VE-AE
"> 12345!.5
3> Co seguinte algoritmo e:iste algum erro] &nde]
AFG&-ATB& Teste
VA-AVVEA)
Baria ; (AEAA
idade ; ACTEA-&
letra ; (A-A(TE-
Baria ; -EAF
ACA(A&
idade 23
idade !%'
idade letra
letra AK(
letra A
letra 2
FAB
4> =ual a di"eren#a e:istente nas seguintes atri4ui#1es]
a> Fetra NAP
Come NOo$oP
4> Fetra A
Come Oo$o
5> [ correto de"inir uma varivel como sendo (aracter e atri4uirmos a ela o valor;
N,E-&P] E se a varivel "osse de"inida como (AEAA5 a mesma poderia rece4er
um valor do tipo (A-A(TE-]
12
%. &peradores
*.1 +peradores matemti$os
&s operadores matemticos s$o os seguintes;
a> Adi#$o ; D
4> )u4tra#$o ; 3
c> Bultiplica#$o ; \
d> ivis$o ; ^
e> ivis$o inteira ; AV ?=S&(AECTE>
"> -esto da divis$o ; B& ?-E)T&>
g> E:ponencia#$o ; \\
7> i"eren#a ; HI
i> Benor Agual ; HW
@> Baior Agual ; IW
*.2 +peradores ,-.i$os
&s operadores l<gicos5 reali9am as opera#1es da lge4ra 4ooleana. &s
operadores s$o os seguintes;
a> AC ?E>
4> &- ?&S>
c> C&T ?C_&>
d> `&- ?C_& &S>
E:emplo;
a> &perador E ?AC>;
T-SE AC T-SE WI T-SE
T-SE AC FAF)E WI FAF)E
FAF)E AC T-SE WI FAF)E
FAF)E AC FAF)E WI FAF)E
4> &perador &S ?&->;
T-SE &- T-SE WI T-SE
T-SE &- FAF)E WI T-SE
FAF)E &- T-SE WI T-SE
FAF)E &- FAF)E WI FAF)E
c> &perador C_& ?C&T>;
C&T T-SE WI FAF)E
13
C&T FAF)E WI T-SE
d> &perador C_& &S ?`&->;
T-SE `&- T-SE WI FAF)E
T-SE `&- FAF)E WI T-SE
FAF)E `&- T-SE WI T-SE
FAF)E `&- FAF)E WI FAF)E
%.2.1 E:erc*cios 1 ;
1> Andi8ue 8ual o resultado ser o4tido das seguintes e:press1es;
a> 1 ^ 2
4> 1 AV 2
c> 1 B& 2
d> ? 2.. AV 1. > B& 4
e> 5\\2 D 3
"> ! D1+323
g> 35.\ 55. D1
7> 1^4D2
i> 2+5.^%D4
@> 3^!5.3%
2> Andi8ue o resultado l<gico das seguintes e:press1es;
a> 2 I 3
4> ? ! H ' > &S ? 3 I % >
c> ??? 1. AV 2 > B& ! > I 5 > C_& &S ? 3 H ? 2 B& 2 > >
d> C_& ? 2 H 3 >
3> Escreva o comando de atri4ui#$o e resolva a e:press$o das seguintes "ormulas
matemticas.
a>
X
A
B
C
D
E
F
=
+

onde AW 25 KW !5 ( W 35 W45 EW'5 FW4


4>
( )
Y
X X X
X
X
X
=

+
+
+
2 3
2
1
2
2 1
onde ` W 2
4> (onstrua o algoritmo 8ue calcule as seguintes e:press1es5 utili9e parentes ;
a> 2 D 3 \ a 23 3 12 D Y a ? 123 ^ 34 > D 1. b ^ 2 3 1 \ ? 45 3 12 > Z ^ 3 b
4> Y ? 2 \ 3 > \\2 3 1 Z \\ 4
c> ? 2 D Y 2 \ 3 3 ? 4 ^ 2. > \\ 2 Z >^ ?1. \ a Y ? % \ 3 > 3 2 Z \\ 3 b>
5> Escreva os comandos de atri4ui#$o para as seguintes "<rmulas matemticas.
a> X
B A F
A
=
+

2 4 2
3 2
3
14
4> ( ) Y H
X
H H
H
=

2
45
3
4 3
2
c>
X
a b e f
c d g h
i
j
=
+ +
+ +
( ) ( )
( ) ( )
*
&4s.; & operador QDR caso se@a usado entre variveis do tipo (/A- ou )T-ACG5
causar uma a#$o con7ecida por concatena#$o5 ou se@a5 @untar os caracteres ou
)T-ACGPs usados na opera#$o em uma s< )T-ACG.
E:emplo;
AFG&-ATB& (oncatena
VA-AVVEA)
Fetra15 Fetra2 ; (A-A(TE-
Come15 Come25 Come ; (AEAA
ACA(A&
Fetra1 NP
Fetra2 NaP
Come1 NOoaoP
Come2 N)ilvaP
Come Come1 D Fetra1 D Fetra2 D Come2
FAB
As instru#1es acima resultar$o no arma9enamento do Come NOo$o a )ilvaR na
varivel rotulada de QComeR.
15
'. (omandos de Entrada e )a*da
& computador n$o 2 uma m8uina isolada5 pois ele precisa se comunicar
com o mundo e:terior com v*deo5 impressora5 teclado5 discos5 "itas etc. ,ara
reali9ar esta comunica#$o e:istem comandos 8ue permitem 8ue in"orma#1es se@am
e:i4idas5 por E:emplo5 no v*deo5 como tam42m e:istem comandos 8ue permitem
8ue in"orma#1es se@am colocadas na mem<ria do computador atrav2s do teclado
do ,(.
&s comandos 8ue iremos ver s$o os comandos FEAA e E)(-EVA5
respectivamente5 comando de entrada e de )a*da ? em ,ascal escreve3se -EA e
T-ATE >.
E:emplo 1; Escrever um algoritmo para ler um valor num2rico do teclado e
atri4u*3lo a uma varivel do tipo num2rica.
AFG&-ATB& FeC6mero
VA-AVVEA)
Cum ; ACTEA-&
ACA(A&
FEAA?Cum>
FAB
& algoritmo acima5 e:ecutar os seguintes comandos;
a> e"ine uma varivel rotulada QCumR5 a 8ual s< poder arma9enar dados
num2ricos5 8ue este@am compreendidos entre 332%!' a D32%!%
? ACTEA-& >5 sendo 8ue inicialmente o conte6do desta varivel est
inde"inido.
4> interrompe o processamento at2 8ue uma in"orma#$o se@a digitada5
seguida do pressionamento da tecla ECTE-. (aso a in"orma#$o se@a
digitada se@a compat*vel com o tipo ACTEGE- ?ACTEA-&>5 este valor
ser arma9enado dentro da varivel QCumR.
E:emplo 2; Fa9er um algoritmo para escrever no v*deo do ,( uma mensagem
8ual8uer.
AFG&-ATB& EscreveBsg
ACA(A&
E)(-EVA ?NAlo BundoP>
FAB
&4s.; A mensagem est entre aspas por8ue representa uma cadeia de caracteres.
[ per"eitamente poss*vel mandar escrever o conte6do de variveis no v*deo.
esta "orma5 o E:emplo acima poderia ser escrito do seguinte modo;
AFG&-ATB& EscreveBsg
VA-AVVEA)
16
Bsg; ; (AEAA
ACA(A&
Bsg NAlo BundoP
E)(-EVA ?Bsg>
FAB
&4s.; Em ,ascal5 o E:emplo "icaria como 2 mostrado a4ai:o
,-&G-AB EscreveBsgJ
VA-
Bsg ; )T-ACGJ
KEGAC
Bsg ; W NAlo BundoPJ
T-ATE ?Bsg>J
EC.
&4s.; Em ,ascal5 8uando usamos os comandos -EA e T-ATE5 o cursor
continuar posicionado na mesma lin7a. ,ara evitar tal situa#$o5 devemos pular
para nova lin7a. Asto 2 o4tido acrescentando as letras FC ? de FACE CET5 ou se@a5
lin7a nova > no "inal dos comandos -EA e T-ATE. esta "orma os comandos
ter$o a seguinte gra"ia; -EAFC e T-ATEFC.
'.1.1 E:erc*cios 2;
1> Fa#a um algoritmo para ler as seguintes in"orma#1es de uma pessoa; Come5
Adade5 )e:o5 ,eso5 Altura5 ,ro"iss$o5 -ua5 Kairro5 (idade5 Estado5 (E,5 Tele"one.
2> ado as seguintes in"orma#1es de um "uncionrio; Come5 idade cargo e o seu
salrio 4ruto considere;
a> & salrio 4ruto teve um rea@uste de 3'c.
4> & "uncionrio rece4er uma grati"ica#$o de 2.c do salrio 4ruto.
c> & )alrio total 2 descontado em 15c
Fa#a um algoritmo e um algoritmo para;
Amprimir Come5 idade e cargo.
Amprimir o salrio 4ruto.
Amprimir o salrio l*8uido.
3> Fa#a um algoritmo para ler a 4ase e a altura de um tridngulo. Em seguida5
escreva a rea do mesmo.
&4s.; Vrea W ? Kase \ Altura > ^ 2
4> Fa#a um algoritmo para;
a> Fer uma (AEAA em "orma de data. E:emplo ; N2!^.+^+5P
4> escrever o dia 5 m0s e ano desta data.
5> Sma empresa tem para um determinado "uncionrio uma "ic7a contendo o
nome5 n6mero de 7oras tra4al7adas e o n
.
de dependentes de um "uncionrio.
(onsiderando 8ue;
a> A empresa paga 12 reais por 7ora e 4. reais por dependentes.
4> )o4re o salrio s$o "eito descontos de '55c para o AC)) e 5c para A-.
Fa#a um algoritmo para ler o Come5 n6mero de 7oras tra4al7adas e n6mero de
dependentes de um "uncionrio. Ap<s a leitura5 escreva 8ual o Come5 salrio 4ruto5
17
os valores descontados para cada tipo de imposto e "inalmente 8ual o salrio
l*8uido do "uncionrio.
!> Fa#a um algoritmo 8ue calcule a m2dia aritm2tica de 4 valores inteiros.
%> & pre#o de um autom<vel 2 calculado pela soma do pre#o de "4rica com o pre#o
dos impostos ?45c do pre#o de "4rica> e a percentagem do revendedor ?2'c do
pre#o de "4rica>. Fa#a um algoritmo 8ue leia o nome do autom<vel e o pre#o de
"4rica e escreva o nome do autom<vel e o pre#o "inal.
18
+. ,rocessos de -epeti#$o
/.1 0strutura de "epetio 0(12!(T+3F!4! #5',0 6+%
a> AFG&-ATB&
AFG&-ATB& E:En8uanto
EC=SACT& H(ondi#$o "or verdadeiraI FAeA
H(omandosI
FAB EC=SACT&
4> ,A)(AF
,-&G-AB E:En8uantoJ
T/AFE H(ondi#$o "or verdadeiraI &
KEGAC
H(omandosIJ
EC.
E:emplo ; Fa#a um algoritmo para ler e escrever o Come de 2. pessoas.
AFG&-ATB& FeEscreve
VA-AVVEA)
Come ; (AEAA
Total ; ACTEA-&
ACA(A&
Total .
EC=SACT& TotalH2. FA(A
FEAA?Come>
E)(-EVA ?NComeWN5 Come>
Total Total D 1
FAB EC=SACT&
EC.
Em pascal;
,-&G-AB FeEscreveJ
VA-
Come ; )T-ACGJ
Total ; ACTEGE-J
KEGAC
Total; W.J
T/AFE TotalH2. &
KEGAC
-EA?Come>J
T-ATE ?NComeWN5 Come>J
Total ; WTotal D 1J
19
ECJ
EC.
+.1.1 E:erc*cios 3;
1> Fa#a um algoritmo para ler 4ase e altura de 5. tridngulos e escreva a sua rea.
2> Fa#a um algoritmo para calcular Cf.
3> Fa#a um algoritmo para calcular um valor A elevado a um e:poente K. &s
valores A e K dever$o ser lidos. C$o usar A\\ K.
4> Fa#a um algoritmo para;
a> Fer um valor : 8ual8uer
4> (alcular U W ? :D1>D?:D2>D?:D3>D?:D4>D?:D5>DE?:D1..>.
5> Fa#a um algoritmo para somar os n6meros pares positivos H 1... e ao "inal
imprimir o resultado.
!> Fa#a um algoritmo para gerar os termos da seguinte ,.G.; 35+52%5'15E5calcule o
1..g termo.
%> Ampliando o e:erc*cio acima5 "a#a um algoritmo para calcular a soma dos
termos da ,.G..
'> Fa#a um algoritmo para calcular a s2rie Fi4onacci at2 . C32simo termo. A s2rie
tem a seguinte "orma; 1515253555'5135215345E
+> Fa#a um algoritmo para ler um valor ` e calcular U W `D2`D3`D4`D5`DE
D2.`
1.> Fa#a um algoritmo para ler e escrever o Come5 idade e se:o de um n6mero
indeterminado de alunos. Ao "inal escreva o total de alunos lidos.
11> ,ara cada nota de compra 5 tem3se o Come do produto comprado5 o valor e o
imposto. Fa#a um algoritmo 8ue escreva o valor total 4ruto5 o imposto total
co4rado e o valor total l*8uido de todas as notas. (onsidere 5.. notas
12> & valor apro:imado de ,A pode ser calculado usando3se a s2rie
S = + + + + +
1
1
1
3
1
5
1
7
1
9
3 3 3 3 3
...
sendo
= S 32
3
"a9er um algoritmo para calcular e escrever o valor de ,A com 51 termos
13> Fa#a um algoritmo para ler um valor ` e um valor n. Ap<s5 calcule a seguinte
e:press$o;
( ) ( ) ( ) ( )
Y
X X X X N
N
=
+
+
+
+
+
+ +
+ 1
1
2
2
3
3 ! ! !
. . .
!
14> Fa#a um algoritmo para somar os restos da divis$o por 3 de 2.. n6meros.
15> Fa#a um algoritmo 8ue calcule a 7ipotenusa de 1. tridngulos.
20
7ipotenusa
2
W cateto1
2
D cateto2
2
1!> Fa#a um algoritmo para calcular a rea de C 8uadrilteros. F<rmula; Vrea W
Fado \ Fado
1%> Fa#a um algoritmo para calcular a rea de C (*rculos . F<rmula ; Vrea W raio
2
W 351415+2.
1'> Fa9er um algoritmo 8ue calcule escreva a soma dos 5. primeiros termos das
seguinte s2rie;
1000
1
997
2
994
3
991
4
+ +...
1+> Fa#a um algoritmo para ler C n6meros inteiros e ao "inal escrever sua m2dia.
2.> Sma turma possui C alunos5 e para cada aluno tem3se uma m2dia para cada
disciplina. & pro"essor de Batemtica precisa sa4er a m2dia geral de sua disciplina
em um turma. Fa#a um algoritmo para au:iliar a encontrar este valor.
21> Sma empresa com ` "uncionrios precisa sa4er a m2dia de seus salrios. Fa#a
um algoritmo para ler a 8uantidade de "uncionrios e o salrio de cada um e
escrever a m2dia dos salrios.
21
/.2 0strutura de repetio "07'T!3!T8 # "epeat 2ntil%
AFG&-ATB&
-E,ATA
H(omandosI
ATE H(ondi#$o "or verdadeiraI
,A)(AF
-E,EAT
H(omandosI
SCTAF H(ondi#$o "or verdadeiraI
E:emplo; Fa#a um AFG&-ATB& para ler e escrever o Come de 2. pessoas.
AFG&-ATB& FeEscreve
VA-AVVEA)
Come ; (AEAA
Total ; ACTEA-&
ACA(A&
Total .
-E,ATA
FEAA?Come>
E)(-EVA?NComeWN5Come>
Total Total D 1
AT[ Total IW2.
FAB
Em pascal;
,-&G-AB FeEscreveJ
VA-
Come ; )T-ACGJ
Total ; ACTEA-&J
KEGAC
Total ; W .J
-E,EAT
-EA?Come>J
T-ATE?NComeWN5Come>J
Total ; W Total D 1J
SCTAF Total IW2.J
EC.
+.2.1 E:erc*cios 4;
1> Feia 2. valores reais e escreva o seu somat<rio.
2> ado uma "rase de e:atamente '. caracteres5 escreva a "rase de trs para "rente5
um caracter por lin7a.
3> ado um n6mero indeterminado de "uncionrios5 onde 2 "ornecido o Come5
n6mero de dependentes e o n6mero de 7oras tra4al7adas. ,ede3se 8ue se@a
22
impresso5 para cada "uncionrio5 o seu Come5 salrio 4ruto5 salrio l*8uido e o
valor descontado. A empresa5 paga -h 2.25.5.. por 7ora de tra4al7o5 e -h 125555
por dependente5 e ainda "a9 um desconto de 12c so4re o salrio 4ruto. ,ede3se
ainda 8ue se@a impresso o total de "uncionrios da empresa5 o total gasto com
salrios5 e o total descontado.
4> Fa#a um AFG&-ATB& para;
a> Feia um valor ` e um valor C.
4> (alcular; U W ` 3 2` D 4` 3 !` D '` 3 1.` D E C`.
5> Fa#a um AFG&-ATB& para ler um valor ` e um Valor C. Ap<s5 calcule a
seguinte e:press$o;
( ) ( ) ( ) ( )
Y
X X X X N
N
=
+
+
+
+
+
+ +
+ 1
1
2
2
3
3 ! ! !
. . .
!
!> ado uma 8uantidade indeterminada de palavras5 sendo 8ue as mesmas sempre
terminam com o caracter QhR5 escreva o taman7o de cada uma das mesmas ? o sinal
de QhR n$o deve ser considerado na contagem >.
%> ado uma palavra terminada com o sinal QhR5 "a#a um AFG&-ATB& para
criar uma nova )T-ACG5 a ser "ormada com os caracteres da primeira palavra
invertidos.
'> Fa#a um algoritmo 8ue calcule a 7ipotenusa de 1. tridngulos.
7ipotenusa
2
W cateto
2
D cateto
2
+> Fa#a um algoritmo para calcular a rea de C 8uadrilteros. F<rmula; Vrea W
Fado \ Fado
1.> Fa#a um algoritmo para calcular a rea de C (*rculos . F<rmula ; Vrea W raio
2
W 351415+2.
11> Fa9er um algoritmo 8ue calcule escreva o valor de ) onde;
S = + + + + +
1
1
3
2
5
3
7
4
99
50
...
12> Fa9er um algoritmo 8ue calcule escreva o valor de ) onde;
S = + +
1
1
2
4
3
9
4
16
5
25
10
100
...
/.3 0strutura de repetio 7!"!3F!4! #F+" ... T+... 6+%
AFG&-ATB&
,A-A HVarivelI E HACA(A&I At2 HFABI5 ,A))& HCI
FAeA
H(omandosI
FAB,A-A
23
,A)(AF
a> F&- HVarivel I ; W HACA(A&I T& HFABI &
H(omandoIJ
4> F&- HVarivel I ; W HACA(A&I T& HFABI &
KEGAC
H(omandoIJ
ECJ
E:emplo; Fa#a um algoritmo para ler e escrever o Come de 2. pessoas.
AFG&-ATB& FeEscreve
VA-AVVEA)
Come ; (AEAA
(ont ; ACTEA-&
ACA(A&
,A-A (ont E 1 ATE 2.5 ,A))& 15 FA(A
FEAA?Come>
E)(-EVA?Come>
FAB,A-A
FAB
Em pascal;
,-&G-AB FeEscreveJ
VA-
Come ; )T-ACGJ
(ont ; ACTEA-&J
KEGAC
F&- (ont ; W 1 T& 2. &
KEGAC
-EA?Come>J
T-ATE?Come>J
ECJ
EC.
&4s.;
a> A varivel de controle5 no E:emplo acima 2 a varivel Q(ontR5 2
automaticamente incrementada em um unidade5 a partir do valor inicial ? 1 pelo
E:emplo acima >5 at2 8ue se@a ultrapassado o limite "inal de"inido ? 2. no E:emplo
acima >.
K> =uando e:iste a necessidade de interromper o processamento antes de ser
alcan#ado o limite "inal de"inido para a estrutura5 n$o dever ser usado a estrutura
,A-A3FAeA5 pela simples ra9$o 8ue a varivel de controle n$o deve ser alterada
propositadamente pelo usurio. A altera#$o do conte6do das variveis de controle
do ,A-A3FAeA s$o de inteira responsa4ilidade da pr<pria estrutura.
+.3.1 E:erc*cios 5;
1> Fa#a um ,-&G-ABA para calcular;
24
a> 2
1
50
N
N

4> N
N
2
1
50

c>
1
1
50
N
N

d>
1
2
1
50
N
N

e>
1
2
1
50
N
N

2> Sma empresa possui 1.. vendedores 8ue gan7am por comiss$o so4re cada
produto vendido. (ada vendedor em um determinado m0s vendeu ` produtos5
onde cada produto pode ou n$o ter pre#os iguais. A empresa dese@a o4ter um
relat<rio com o Come5 o total de vendas e o valor a ser pago a cada vendedor. A
comiss$o paga pela empresa 2 de 3.c so4re o valor de cada produto vendido.
3> ado uma rela#$o de 1... n6meros em graus (2lcius5 "a#a um ,-&G-ABA
8ue imprima o seguinte relat<rio;
Graus Fa7ren7eit Graus (2lcius
:::::: ::::::
&4s.;


F C = +
9
5
32
4> ado um n6mero indeterminado de palavras5 sendo 8ue cada palavra possui um
taman7o indeterminado5 o 8ual dever ser lido pelo teclado5 "a#a um ,-&G-ABA
8ue imprima um relat<rio como 2 mostrado no E:emplo a4ai:o; )upon7a 8ue a
palavra digitada "oi QBA-AAR.
B A
A A
- -
A A
A B
5> Escrever um programa para gerar e escrever uma ta4ela com os valores de seno
de um Angulo A em radianos5 utili9ando a s2rie de Bac3Faurin Truncada
apresentada a seguir;
SenA A
A A A
= +
3 5 7
6 120 5040
25
(ondi#1es; os valores dos dngulos devem variar de ... a !.35 inclusive5 de ..1 em
..1
&4s.; Em pascal5 caso se@a necessrio 8ue o QFoopR ,A-A3FAeA ao inv2s de
incrementar a varivel de controle decrementa3a5 a &inta<e a ser utili9ada ser a
seguinte
a> F&- HVarivel I ; W HFABI &TCT& HACA(A&I &
H(omandoI
4> F&- HVarivel I ; W HFABI &TCT& HACA(A&I &
KEGAC
H(omandoIJ
ECJ
Em algoritmo;
a> ,A-A HVarivel I E HFABI AT[ HACA(A&I ,A))& ?31>
FA(A
H(omandoI
FAB ,A-A
26
1.. Estrutura de sele#$o
19.1 0strutura &0:0(T;+:&0(;+ #'F:T0(:0,&0%
AFG&-ATB&
)E H(ondi#$o F&- verdadeI ECT_&
H(omandosI
Y)EC_&
H(omandosIZ (olc7ete indica 8ue o
comando 2 opcional
FAB)E
,A)(AF
a> AF H(ondi#$o "or verdadeI T/EC
H(omandosI
YEF)E
H(omandosIJZ
4> AF H(ondi#$o "or verdadeI T/EC
KEGAC
H(omandosI
EC
YEF)E
KEGAC
H(omandosIJ
ECJZ
E:emplo; ado dois valores A e K 8uais8uer5 "a#a um algoritmo 8ue imprima se A
I K5 ou A H K 5 ou A W K
AFG&-ATB& Baior
VA-AVVEA)
A5K ; ACTEA-&
ACA(A&
E)(-EVA?Nigite os valores A e KP>J
)E A I K ECT_&
E)(-EVA?NA 2 maior 8ue KP>
)EC_&
)E A H K ECT_&
E)(-EVA?NA 2 menor 8ue KP>
)EC_&
E)(-EVA?NA 2 igual a KP>
FAB
27
Em pascal
,-&G-AB BaiorJ
VA-
A5K ; KUTEJ
KEGAC
T-ATE?Nigite os valores A e KP>J
AF A I K T/EC
T-ATE?NA 2 maior 8ue KP>
EF)E
AF A H K T/EC
T-ATE?NA 2 menor 8ue KP>
EF)E
T-ATE?NA 2 igual a KP>J
EC.
1..1.1 E:erc*cios !;
1> Fa#a um algoritmo 8ue leia os valores A5 K5 ( e diga se a soma de A D K 2 menor
8ue (.
2> Fa#a um algoritmo 8ue leia dois valores inteiros A e K se os valores "orem iguais
dever se somar os dois5 caso contrrio multipli8ue A por K ao "inal do calculo
atri4uir o valor para uma varivel (.
3> Fa#a um algoritmo 8ue leia o nome e a tr0s notas de uma disciplina de uma
aluno e ao "inal escreva o nome do aluno5 sua m2dia e se ele "oi aprovado a m2dia 2
'.
4> Fa#a um algoritmo 8ue leia 3 n6meros inteiros e imprima o menor deles.
5> ado um con@unto de n registros cada registro contendo um valor real5 "a#a um
algoritmo 8ue calcule a m2dia dos valores maiores 8ue 4.
!> ado uma rela#$o de 1.. carros imprima 8uantos s$o da cor a9ul. )endo para
cada carro tem3se uma "ic7a contento o nome e a cor.
%> ados tr0s valores distintos5 "a9er um algoritmo 8ue5 ap<s a leitura destes dados
colo8ue3os em ordem crescente.
'> ado uma s2rie de 2. valores reais5 "a#a uma algoritmo 8ue calcule e escreva a
m2dia aritm2tica destes valores5 entretanto se a m2dia o4tida "or maior 8ue '
dever ser atri4u*da 1. para a m2dia.
+> Fa#a um algoritmo para somar os n6meros pares H 1... e ao "inal imprimir o
resultado.
1.> ado um con@unto de 2. valores reais5 "a#a um algoritmo 8ue;
a> Amprima os valores 8ue n$o s$o negativos.
4> (alcule e imprima a m2dia dos valores H ..
28
11> )upon7a 8ue para cada aluno de sua sala e:ista uma "ic7a contendo o nome e a
idade do aluno. )upondo 8ue e:ista 5. alunos5 "a#a uma algoritmo 8ue determine
8uantos alunos tem idade maior 8ue 3..
12> ado modelo5 ano de "a4rica#$o5 cor e placa de 1... carros5 "a#a um algoritmo
8ue;
a> Amprima 8uantos s$o5 da cor verde e o percentual em rela#$o ao total.
4> Amprima 8uantos "oram "a4ricados antes de 1++. e o percentual em
rela#$o ao total.
c> Amprima 8uantos s$o FAAT SC& e o percentual em rela#$o ao total.
d> Amprima 8uantos carros tem na placa o digito 5 e o percentual em rela#$o
ao total. (onsidere placas com seguinte "ormato QAACCCCR.
13> ado Come e notas ? total de ! > de n alunos5 "a#a um algoritmo 8ue;
a> Amprima Come e m2dia dos alunos aprovados. B2dia I W %...
4> Amprima Come e m2dia dos alunos em recupera#$o. 5.. IW B2dia H%...
c> Amprima Come e m2dia dos alunos reprovados. B2dia H5...
14> Fa#a um algoritmo 8ue simule um cronometro com 7oras5 minutos e segundos.
A simula#$o dever mostrar no v*deo o cronometro no seguinte "ormato //; BB;
)). Anicialmente o cronometro ser 9erado ? ..; ..; .. >5 sendo 8ue os segundos
come#ar$o a ser incrementados5 depois os minutos e depois as 7oras. Fem4re3se
8ue a cada !. segundos os minutos dever$o ser incrementados5 depois os minutos
voltar$o a 9ero. =uando as 7oras estiverem prestes a c7egar em 255 o cronometro
dever voltar a 9ero ? ..; ..; .. >.
15> ado Come e salrio de um n6mero indeterminado de "uncionrios5 imprima o
Come e o salrio de "uncionrio 8ue tem o maior salrio5 4em como o Come e o
salrio 8ue possui o menor salrio.
1!> ado uma rela#$o de 1.. )T-ACGPs no "ormato de data ? E:emplo N1.^12^+5P >5
imprima a8uelas 8ue correspondem ao m0s N.+P.
1%> ado uma rela#$o de 1.. )T-ACGPs no "ormato de data ? E:emplo N1.^12^+5P >5
imprima um relat<rio no seguinte "ormato;
ata ,or E:tenso
2!^.+^+5 2! de setem4ro de 1++5
1'> ados uma rela#$o de n )T-ACGPs5 todas terminadas com o caracter QhR5 "a#a
um algoritmo 8ue escreva a )T-ACG e o seu taman7o.
1+> ado uma rela#$o de n )T-ACGPs5 todas terminadas com o caracter QhR5 "a#a
um algoritmo 8ue imprima a8uelas 8ue tem taman7o par.
2.> ado uma rela#$o de n )T-ACGPs5 todas terminadas com o caracter QhR5 "a#a
um algoritmo 8ue escreva as )T-ACGPs *mpares cu@o caracter central 2 uma vogal.
21> ado tr0s valores `5 U5 i5 veri"icar se eles podem ser os comprimentos dos lados
de um tridngulo5 e se "orem5 veri"icar se 2 um tridngulo e8uiltero5 is<sceles ou
escaleno. )e eles n$o "ormarem um tridngulo5 escrever uma mensagem.
29
Antes da ela4ora#$o do algoritmo5 torna3se necessria a revis$o de algumas
propriedades e de"ini#1es.
,ropriedade 3 & comprimento de cada lado de um tridngulo 2 menor do 8ue a
soma dos comprimentos dos outros dois lados.
e"ini#$o 1 3 (7ama3se tridngulo e8uiltero os 8ue tem os comprimentos dos tr0s
lados iguais5
e"ini#$o 2 3 (7ama3se tridngulo is<sceles ao tridngulo 8ue tem os comprimentos
de dois lados iguais.
e"ini#$o 3 3 (7ama3se tridngulo escaleno ao tridngulo 8ue tem os comprimentos
dos tr0s lados di"erentes.
22> Sm 7otel co4ra -h 3..5.. por diria e mais uma ta:a adicional de servi#os. )e
a diria "or menor 8ue 15 a ta:a e de -h 2.5... )e o n6mero de dirias "or igual a
15 a ta:a 2 de -h 145.. e se o n6mero "or maior 8ue 15 a ta:a 2 de -h 125...
(onsiderando3se 8ue se ten7a 2.. pessoas e para cada pessoa ten7a3se um registro
contendo seu nome e o n6mero de dirias.
Fa#a um algoritmo 8ue imprima o nome e o total a pagar de cada pessoa e
imprimir tam42m o total gan7o pelo 7otel e o n6mero total de dirias.
23> ado 8ue cada pessoa ten7a o seu nome e a sua idade e o seu peso em uma
"ic7a5 "a#a uma algoritmo 8ue;
a> Amprimir o nome da pessoa cu@o a idade esta na "ai:a de 2. a 3. anos inclusive
os e:tremosJ
4> (alcule a idade m2dia das pessoas com peso maior 8ue '. jg5 considere 8ue
e:ista C pessoas.
24> Fa#a um algoritmo 8ue calcule o salrio e o imposto de renda de um grupo de
pessoas5 considerando;
a> ,ara cada pessoa tem3se; Come5 C6mero de ependentes5 -enda Kruta AnualJ
4> & imposto 2 calculado segundo a ta4ela a4ai:o;
-enda Fi8uida c
at2 -h 1.....5.. isento
I -h 1.....5.. at2 -h 3.....5.. 5c
I -h 3.....5.. at2 -h !.....5.. 1.c
I -h !.....5.. 15c
c> / um desconto de -h !..5.. para cada dependente.
d> )endo 8ue a renda li8uida 2 igual a renda 4ruta menos o a4atimento de cada
dependente.
25> & epartamento de transito do estado anotou dados de acidentes de transito
no ultimo ano. ,ara cada motorista envolvido no acidente5 tem3se as seguintes
in"orma#1es;
3 Ano de nascimentoJ
3 )e:o ?B 3 Basculino5 F 3 Feminino>
3 ,roced0ncia ? . 3 (apital5 1 3 Anterior5 2 3 &utro estado>J
Fa#a um algoritmo 8ue ;
a> (alcule a porcentagem de motoristas com menos de 21 anosJ
4> (alcule 8uantas mul7eres s$o da capitalJ
c> (alcule 8uantos motoristas do interior do estado tem idade maior 8ue !. anosJ
d> Veri"i8ue se e:iste alguma mul7er com idade maior 8ue !. anosJ
-.
30

2!> )upon7a 8ue para cada tipo de computador "a4ricado5 a )EA5 tem os seguintes
in"orma#1es;
3 Come do computadorJ
3 & nome do "a4ricanteJ
3 e a sua capacidade de arma9enamentoJ
Fa#a um algoritmo 8ue;
a> etermine 8ual o valor da maior capacidade de mem<riaJ
4> etermine 8uantos computadores di"erentes a AKB "a4ricaJ
c> Veri"i8ue se tem algum computador c7amado ,)^1. )e tiver 8ual o seu
"a4ricanteJ
31
19.2 0strutura C!&0
AFG&-ATB&
E)(&F/A HValorI
H&p#1esI ; H(omandosI
.
.
.
H&p#1esI ; H(omandosI
Y )en$o
H(omandosIZ
FABE)(&F/A
,A)(AF
a> (A)E HvalorI &F
Hop#1esI ; H(omandosIJ
.
.
.
Hop#1esI ; H(omandosIJ
YElse
H(omandosIJ
ECJ
4> (A)E HvalorI &F
Hop#1esI ; KEGAC
H(omandosIJ
ECJ
.
.
.
Hop#1esI ; H(omandosIJ
Y Else
KEGAC
H(omandosIJ
ECJ
ECJ
& comando E)(&F/A ? (A)E >5 corresponde ao comando )E3ECT_&
mas de uma "orma mais compacta nas opera#1es de sele#$o. ,or E:emplo5 se@a a
seguinte estrutura escrita com o comando )E3ECT_&;
)E ? AAE IW . > E ? AAE HW 3 > ECT_&
E)(-EVA? NKEKkP>
)EC_&
)E ? AAE IW 4 > E ? AAE HW 1. > ECT_&
E)(-EVA? N(-AACeAP>
32
)EC_&
)E ? AAE IW 11 > E ? AAE HW 1' >
ECT_&
E)(-EVA? NA&FE)(ECTEP>
)EC_&
E)(-EVA? NASFT&P>
FAB )E
FAB )E
FAB )E
Em pascal
AF ? AAE IW . > AC ? AAE HW 3 > T/EC
T-ATE? NKEKkP>
EF)E
AF ? AAE IW 4 > AC ? AAE HW 1. > T/EC
T-ATE? N(-AACeAP>
EF)E
AF ? AAE IW 11 > AC ? AAE HW 1' >
T/EC
T-ATE? NA&FE)(ECTEP>
EF)E
T-ATE? NASFT&P>J
& E:emplo mostrado poderia ser escrito da seguinte "orma usando o comando
E)(&F/A;
E)(&F/A Adade
...3 ; E)(-EVA?NKEKkP>
4..1. ; E)(-EVA?N(-AACeAP>
11..1' ; E)(-EVA?NA&FE)(ECTEP>
)EC_&
E)(-EVA?NASFT&P>
FAB E)(&F/A
Em pascal;
(A)E Adade &F
...3 ; T-ATE?NKEKkP>J
4..1. ; T-ATE?N(-AACeAP>J
11..1' ; T-ATE?NA&FE)(ECTEP>J
EF)E
T-ATE?NASFT&P>J
ECJ
A4ai:o seguem mais e:emplos de constru#1es com o comando E)(&F/A;
a> E)(&F/A Fetra
NAP5PEP5PANP&P5PSP ; E)(-EVA?NVogaisP>
FABE)(&F/A
4> E)(&F/A VAF&-
1..55+513..255 ; H(omandosI
33
FABE)(&F/A
34
Em pascal
a> (A)E Fetra &F
NAP5PEP5PANP&P5PSP ; T-ATE?NVogaisP>J
ECJ
4> (A)E valor &F
1..55+513..255 ; H(omandosIJ
ECJ
&4s.; & comando Escol7a n$o aceita valores do tipo -EAF e )T-ACG.
1..2.1 E:erc*cios %;
1> Fa#a um algoritmo 8ue leia um n6mero 8ue represente um determinado m0s do
ano. Ap<s a leitura escreva por e:tenso 8ual o m0s lido. (aso o n6mero digitado
n$o este@a na "ai:a de 1..12 escreva uma mensagem in"ormando o usurio do erro
da digita#$o.
2> Fa#a um algoritmo 8ue leia um n6mero 8ual8uer. (aso o n6mero se@a par menor
8ue 1.5 escreva NC6mero par menor 8ue e9P5 caso o n6mero digitado se@a *mpar
menor 8ue 1. escreva NC6mero mpar menor 8ue e9P5 caso contrrio Escreva
NC6mero "ora do AntervaloP.
3> Sma empresa ir dar um aumento de salrio aos seus "uncionrios de acordo
com a categoria de cada empregado. & aumento seguir a seguinte regra;
a> Funcionrios das categorias A5 (5 F5 e / gan7ar$o 1.c de aumento so4re
o salrio
4> Funcionrios das categorias K5 5 E5 A5 O e T gan7ar$o 15c de aumento
so4re o salrio
c> Funcionrios das categorias j e - gan7ar$o 25c de aumento so4re o
salrio
d> Funcionrios das categorias F5 B5 C5 &5 ,5 =5 - e ) gan7ar$o 35c de
aumento so4re o salrio
e> Funcionrios das categorias S5 V5 `5 U5 T e i gan7ar$o 5.c de aumento
so4re o salrio
4> Fa#a um algoritmo 8ue Escreva Come5 categoria e salrio rea@ustado de cada
Empregado. (onsidere 1... "uncionrios na empresa.
5> ado uma )T-ACG terminada com o caracter QhR "a#a um algoritmo 8ue
imprima 8uantas vogais e:istem nesta )T-ACG.
!> ado uma )T-ACG terminada com o caracter QhR "a#a um algoritmo 8ue
imprima 8uantas &corr0ncias de cada vogal em separado e:iste nesta )T-ACG.
35
11. Variveis (ompostas /omog0neas
Vimos5 no in*cio deste curso5 ser poss*vel dar um Come para uma posi#$o de
mem<ria5 sendo 8ue a esta ser associado um valor 8ual8uer. ,ois 4em5 acontece
8ue5 muitas ve9es5 esta "orma de de"ini#$o5 ou mel7or di9endo5 de aloca#$o de
mem<ria5 n$o 2 su"iciente para resolver certos pro4lemas computacionais. Amagine
por E:emplo5 como "ar*amos para construir um algoritmo5 para ler o Come de C
,essoas e 8ue imprimisse um relat<rio destes mesmos nomes5 mas ordenados
al"a4eticamente] C$o seria uma tare"a simples5 7a@a visto n$o ser poss*vel
determinar 8uantos nomes seriam lidos5 mesmo 8ue sou42ssemos o n6mero de
pessoas5 digamos 1.... pessoas5 ter*amos 8ue de"inir 1.... variveis do tipo
)T-ACG5 como 2 mostrado a4ai:o;
AFG&-ATB& FoucuraJ
VA-AVVEA)
Come15
Come25
Come35
.
.
.
Come+++5
Come1...; (AEAA
ACA(A&
H(omandosI
FAB
(onsidere o taman7o do algoritmo5 e o tra4al7o 4ra#al necessrio para
construi3lo. Asto s< com 1.... Come5 imagine agora 1........ de pessoas. A
constru#$o deste algoritmo come#aria a "icar invivel na pratica. ,ara resolver
pro4lemas como este5 e outros5 "oi criado um novo conceito para aloca#$o de
mem<ria sendo5 desta "orma5 tam42m criado uma nova maneira de de"inir
variveis5 a 8ual "oi denominada de varivel inde:ada.
Sma varivel inde:ada corresponde a uma se8L0ncia de posi#1es de
mem<ria5 a 8ual daremos 6nico Come5 sendo 8ue cada uma destas pode ser
acessada atrav2s do 8ue con7ecemos por *ndice. & *ndice corresponde a um valor
num2rico ? e:ceto -EAF >5 ou a um valor caracter ? e:ceto )T-ACG >. (ada uma
das posi#1es de mem<ria de uma varivel inde:ada pode rece4er valores no
decorrer do algoritmo como se "osse uma varivel comum5 a 6nica di"eren#a reside
na )inta:e de utili9a#$o desta varivel.
11.1 Variveis 'nde<adas 2ni 6imensionais#Vetores%
Tam42m con7ecida por QVetorR. Sma varivel uni3dimencional5 como o
pr<prio Come @ indica5 possui apenas uma dimens$o5 sendo ser poss*vel de"inir
variveis com 8uais8uer tipo de dados validos do ,ascal.
36
a> e"ini#$o;
AFG&-ATB& e"ine
VA-AVVEA)
HComeI; VET&- YACA(A&V ; FABVZ E HtipoI
ACA(A&
H(omandosI
FAB
Em pascal;
,-&G-AB e"ineJ
VA-
HComeI; A--AU YACA(A&..FABZ &F HtipoIJ
KEGAC
H(omandosIJ
EC.
&4s.;
a> QA--AUR 2 uma palavra reservada do ,ascal
4> &s valores QACA(A&VR e QFABVR correspondem aos *ndices inicial e "inal
c> Sma varivel inde:ada pode ser apenas de um tipo de dado
E:emplo e"inir uma varivel inde:ada como sendo do tipo -EAF5 sendo 8ue a
mesma dever corresponder a 1. posi#1es de mem<ria.
AFG&-ATB& E:emplo
VA-AVVEA)
Vet ; VET&- Y1 ; 1.Z &F -EAF
ACA(A&
H(omandosI
FAB
Em pascal;
,-&G-AB E:emploJ
VA-
Vet; A--AU Y1..1.Z &F -EAFJ
KEGAC
H(omandosIJ
EC.
Co E:emplo acima5 ap<s a de"ini#$o da varivel5 a mem<ria estar como mostrado
no es8uema a4ai:o;
Vet
1 2 3 4 5 ! % ' + 1.
&s Valores num2ricos apresentados acima correspondem aos *ndices da varivel.
K> Atri4ui#$o
HComeIYHndiceIZ ValorJ
FEAA ?HComeIYHndiceIZ>J
Em pascal;
HComeIYHndiceIZ; WValorJ
-EA ?HComeIYHndiceIZ>J
37
E:emplo;
AFG&-ATB& Atri4ui
VA-AVVEA)
Comes; VET&- Y1 ; 2.Z E (AEAA
i ; ACTEA-&
KEGAC
ComesY1Z NOo$o da )ilvaP
,A-A i 2 ATE 2.5 ,A))& 15 FA(A
FEAA?ComesYiZ>
FAB ,A-A
FAB
Em pascal;
,-&G-AB Atri4uiJ
VA-
Comes; A--AUY1..2.Z&F )T-ACGJ
i ; ACTEGE-J
KEGAC
ComesY1Z; WNOo$o da )ilvaPJ
F&- i; W 2 T& 2. &
-EA?ComesYiZ>J
EC.
11.1.1 E:erc*cios ';
1> Fa#a um algoritmo 8ue leia5 via teclado5 2.. valores do tipo inteiro e os guarde
na mem<ria.
2> Amplie o e:erc*cio anterior emitindo um relat<rio com todos os n6meros pares
8ue voc0 leu.
3> Fa#a um algoritmo 8ue determine 8ual o menor valor e:istente no vetor do
e:erc*cio n6mero 1.
4> Fa#a um algoritmo 8ue determine 8ual o maior valor e:istente no vetor do
e:erc*cio n6mero 1.
5> Fa#a um algoritmo 8ue imprima 8uantos dos valores do e:erc*cio n6mero 1 s$o
maiores 8ue a m2dia desses valores.
!> Fa#a um algoritmo 8ue leia 1. nomes e os guarde na mem<ria.
%> Amplie o e:erc*cio ! imprimindo o menor Come do vetor
'> Amplie o e:erc*cio ! imprimindo o maior Come do vetor
+> Fa#a um algoritmo 8ue leia 2. palavras5 e ap<s a leitura5 reali9a um processo
8ual8uer 8ue inverta os caracteres de cada uma das palavras.
1.> Fa#a um algoritmo 8ue leia 1. nomes e os guarde na mem<ria. Ap<s a leitura5
emita um relat<rio com todos os nomes 8ue s$o palindromes. Sma palavra
38
palindrome 2 a8uela 8ue a sua leitura 2 a mesma da es8uerda para a direita e vice
versa. E:emplo; A-A-A5 ACA5 etc.
11> Fa#a um algoritmo 8ue leia5 Come idade e se:o de C pessoas. Ap<s a leitura
"a#a;
a> Amprima o Come5 idade e se:o das pessoas cu@a idade se@a maior 8ue a
idade da primeira pessoa.
4> Amprima o Come e idade de todas as mul7eres.
c> Amprima o Come dos 7omens menores de 21 anos.
12> Fa#a uma algoritmo para ler 2. valores e 8ue imprima os 8ue s$o maiores 8ue a
m2dia dos valores.
13> Fa#a um algoritmo 8ue leia Come e notas ? total de 12 > de C alunos de um
col2gio. Ap<s a leitura "a#a;
a> Amprima o Come e a m2dia dos alunos aprovados ? B2dia IW %.. >.
4> Amprima o Come e a m2dia dos alunos em -ecupera#$o ? 5.. IW B2dia H %.. >.
c> Amprima o Come e a m2dia dos alunos reprovados ? B2dia H 5.. >.
d> Amprima o percentual de alunos aprovados.
e> Amprima o percentual de alunos reprovados.
14> ado Come e salrio de 1. "uncionrios "a#a;
a> Amprima o Come e o salrio dos "uncionrios 8ue gan7am mais de -h 5..5..
4> ,ara os "uncionrios 8ue gan7am menos de -h 2..5.. conceda um aumento de
2.c. Amprima Come e o novo salrio destes "uncionrios aumentados
15> Fa#a um algoritmo 8ue crie uma ta4ela no v*deo do computador com todos os
caracteres A)(AA5 sendo 8ue dever ser impresso o caracter5 4em como o seu valor
decimal.
1!> Sm teste composto por 1. 8uest1es "oi proposto numa classe de n alunos. (ada
8uest$o admite as alternativas identi"icadas pelas letras A5 K5 (5 e E. ,ara cada
aluno tem3se o registro contendo o seu nome e as suas respostas. )endo dado o
ga4arito das 8uest1es "a#a um algoritmo 8ue;
a> Escreva uma rela#$o contendo o nome e o n6mero de acertos de cada
alunoJ
4> etermine 8uantos alunos acertaram as 8uest1es 1 e 2 e tiveram %
acertosJ
c> Escreva o nome do aluno5 8ue o4teve a mel7or nota e pior notaJ
1%> Fa#a um algoritmo para ler 5. valores inteiros. Ap<s imprima tais valores
ordenados crescentemente.
1'> (ontinuando o e:erc*cio anterior5 emita um relat<rio com os valores ordenados
decrescentemente.
1+> Fa#a um algoritmo 8ue leia 1. valores num2ricos inteiros. Ap<s a leitura emita
um relat<rio com cada valor di"erente e o n6mero de ve9es 8ue o mesmo apareceu
no vetor.
39
2.> ado uma rala#$o de C nomes5 "a#a um algoritmo 8ue veri"i8ue se uma
determinada pessoa est neste vetor. & Come da pessoa a ser pes8uisada dever ser
lido5 4em como os nomes a serem colocados no vetor.
21 ado uma "rase5 "a#a um algoritmo 8ue determine 8ual a consoante mais
utili9ada.
22> Fa#a um algoritmo 8ue leia C letras e arma9ene cada uma em uma posi#$o de
mem<ria. (olo8ue no vetor5 ap<s a 6ltima letra lida5 o caracter QhR5 indicando "inal
dos caracteres
23> Fa#a um algoritmo 8ue;
a> Feia um vetor A com C elementos e um vetor K com C elementos do tipo
(AEAA.
4> Antercale estes vetores A e K5 "ormando um outro vetor ( da seguinte "orma.
(Y1Z AY1Z
(Y2Z KY1Z
(Y3Z AY2Z
(Y4Z KY2Z
c> (aso um vetor ? A ou K > termine antes do outro5 o vetor ( dever ser preenc7ido
com os elementos do vetor 8ue ainda possui in"orma#1es.
24> Fa#a um algoritmo 8ue;
a> Feia um vetor A com C elementos @ ordenados e um vetor K com B
elementos tam42m @ ordenados.
4> Antercale os dois vetores A e K5 "ormando um vetor (5 sendo 8ue ao "inal
do processo de intercala#$o5 o vetor ( continue ordenado. Cen7um outro
processo de ordena#$o poder ser utili9ado al2m da intercala#$o dos vetores
A e K.
c> (aso um vetor ? A ou K > termine antes do outro5 o vetor ( dever ser
preenc7ido com os elementos do vetor 8ue ainda possui in"orma#1es.
25> Fa#a um algoritmo 8ue;
a> Feia um vetor com C elementos "ormado por valores do tipo inteiro.
4> Ap<s a leitura5 modi"i8ue o vetor de "orma 8ue o mesmo conten7a na
parte superior somente valores pares5 e na parte in"erior os valores impares.
c> &rdene crescentemente os n6meros pares5 e decrescentemente os n6meros
impares.
2!> ado um con@unto de n registros5 cada registro contendo o nome e a idade
dessa pessoa "a#a um algoritmo 8ue;
a> Guarde todos os dados na mem<riaJ
4> Escreva o nome das pessoas 8ue tem idade maior 8ue a idade da
primeiraJ
c> Fistar os nomes das pessoas 8ue tem a idade maior 8ue a m2diaJ
d> Fistar o nome da pessoa de maior e menor idade
2%> ado 8ue para cada aluno de uma turma de QCR alunos se ten7a5 o seu nome5 e
as notas das ' avalia#1es. Fa#a um algoritmo 8ue;
Amprima o nome a m2dia de cada alunoJ
40
a> (alcule a ,ercentagem de alunos cu@o o nome comece com a letra QARJ
4> ,ara cada aluno imprima uma mensagem di9endo se o aluno tem ou n$o
notas repetidasJ
c> etermine 8uantos alunos tem pelo menos duas notas acima de %J
2'> ado um verto ` de n elementos "a#a um algoritmo 8ue;
a> (rie outro vetor U contendo os elementos de : 8ue est$o na "ai:a entre 1.
e 4.J
4> (rie outro vetor T contendo os n6meros 8ue est$o nas posi#1es paresJ
c> ,es8uise a e:ist0ncia de um determinado elemento U no vetor `J
d> Escreva o menor e maior elemento do vetor `J
2+> Em uma cidade do interior5 sa4e3se 8ue5 de @aneiro a a4ril de 1+%! ?121 dias>5
n$o ocorreu temperatura in"erior a 15
o
( nem superior a 4.
o
(. As temperatura
veri"icadas em cada dia est$o dispon*veis em uma unidade de entrada de dados.
Fa9er um algoritmo 8ue calcule e escreva;
a> a menor temperatura ocorridaJ
4> a maior temperatura ocorridaJ
c> a temperatura m2dia
d> o n6mero de dias nos 8uais a temperatura "oi in"erior a m2dia X
temperatura m2dia.
3.> Fa9er um algoritmo 8ue;
a> leia o valor de n ?n HW 1...> e os n valores de um varivel inde:ada A de
valores inteiros ordenados de "orma crescenteJ
4> determine e escreva5 para cada n6mero 8ue se repete no con@unto5 a
8uantidade de ve9es em 8ue ele aparece repetidoJ
c> elimine os elementos repetidos5 "ormando um novo con@untoJ
d> escreva o con@unto o4tido no item cJ
31> Sm arma92m tra4al7a com 1.. mercadorias di"erentes identi"icadas pelos
n6meros inteiros de 1 a 1... & dono do arma92m anota a 8uantidade de cada
mercadoria vendida durante o m0s. Ele tem uma ta4ela 8ue indica5 para cada
mercadoria5 o pre#o de venda. Escreva um algoritmo para calcular o "aturamento
mensal do arma92m. A ta4ela de pre#os 2 "ornecida seguida pelos n6meros das
mercadorias e as 8uantidades vendidas. =uando uma mercadoria n$o tiver
nen7uma venda5 2 in"ormado o valor 9ero no lugar da 8uantidade.
32> Sma grande "irma dese@a sa4er 8uais os tr0s empregados mais recentes. Fa9er
um algoritmo para ler um n6mero indeterminado de in"orma#1es ?m:imo de 3..>
contendo o n6mero do empregado e o n6mero de meses de tra4al7o deste
empregado e escrever os tr0s mais recentes.
&4serva#1es; A 6ltima in"orma#$o cont2m os dois n6meros iguais a 9ero.
C$o e:istem dois empregados admitidos no mesmo m0s.
E:emplo;
EB,-EGA&)
224 1%31 221. 4!31 E 52!
1 2 3 4 3..
BE)E)
1% 3 + 2 E 1.
1 2 3 4 3..
41
Empregado mais recente; 4!31.
33> Fa9er um algoritmo 8ue;
a> leia uma varivel inde:ada A com 3. valores reaisJ
4> leia uma outra varivel inde:ada K com 3. valores reaisJ
c> leia o valor de uma varivel `J
d> veri"i8ue 8ual o elemento de A 2 igual a `J
e> escreva o elemento de K de posi#$o correspondente X do elemento A igual
a `J
34> Fa9er um programa 8ue;
a> leia o valor de B ?BHW3.> e os valores de uma varivel inde:ada AJ
4> leia o valor de C ?CHW2.> e os valores de uma varivel inde:ada KJ
c> determine o con@unto ( W A K ?uni$o de A com K>5 onde ( n$o dever
conter elementos repetidos ?A e K n$o cont2m elementos repetidos>J
d> escreva os elementos contidos em A5 K e (J
35> Antercala#$o 2 o processo utili9ado para construir uma ta4ela ordenada5 de
taman7o n Dm5 a partir de duas ta4elas @ ordenadas de taman7os n e m. ,or
e:emplo5 a partir das ta4elas;
AW 1 3 ! %
e
KW 2 4 5
constru*mos a ta4ela
(W 1 2 3 4 5 ! %
Fa9er um algoritmo 8ue;
a> leia CA5 n6mero de elementos do con@unto A ?CAHW1..>J
4> leia5 em seguida5 os elementos do con@unto AJ
c> leia5 logo ap<s o valor de CK5 n6mero de elementos do con@unto K ?CKHW1..>J
d> leia5 "inalmente5 os elementos do con@unto KJ
e> crie e imprima um con@unto (5 ordenado5 de taman7o CADCK5 a partir dos
con@untos originais A e K.
&4serva#$o;
1. (onsiderar os elementos de A e K como inteiros.
3!> ,ara cada nota de compra 5 tem3se o Come do produto comprado5 o valor e o
imposto. Fa#a um algoritmo 8ue escreva Come5 valor e imposto de cada produto.
Kem como o valor total 4ruto5 o imposto total co4rado e o valor total l*8uido de
todas as notas. (onsidere 5.. notas
3%> Sma empresa dese@a "a9er um levantamento do seu esto8ue. ,ara isto possui
para cada tipo de produto5 o seu Come5 o valor unitrio e a sua 8uantidade em
esto8ue. A empresa dese@a emitir um relat<rio contendo5 o Come5 8uantidade5
valor5 unitrio e o saldo ? valor total > em esto8ue de cada tipo de produto. Ao "inal
42
dese@a3se sa4er 8uantos tipos de produtos e:istem em esto8ue e o saldo de todos os
produtos.
11.2 Variveis 'nde<adas =idimensionais#>atri?es%
Tam42m con7ecida por QBatri9R. Sma varivel Kidimencional5 como o
pr<prio Come @ indica5 possui duas dimens1es5 sendo ser poss*vel de"inir variveis
com 8uais8uer tipo de dados validos do ,ascal.
a11 a12
A W a21 a22
a31 a33
Batri9 A 3:2 ?Fin7a : (oluna>
a> e"ini#$o;
AFG&-ATB& e"ine
VA-AVVEA)
HComeI; BAT-Ai YA ; O5 F;BZ E HtipoI
ACA(A&
H(omandosI
FAB
Em pascal;
,-&G-AB e"ineJ
VA-
HComeI; A--AU YA..O5 F..BZ &F HtipoIJ
KEGAC
H(omandosIJ
EC.
E:emplo e"inir uma varivel inde:ada 4idemensional para arma9enar os dados
de uma matri9 4 por 4 de n6meros do tipo -EAF5 sendo 8ue a mesma dever
corresponder no total a 1! posi#1es de mem<ria.
AFG&-ATB& E:emploJ
VA-AVVEA)
BAT ; BAT-Ai Y1;451;4Z E -EAF
ACA(A&
H(omandosI
FAB
Em pascal;
,-&G-AB E:emploJ
VA-
BAT; A--AU Y1..451..4Z &F -EAFJ
KEGAC
H(omandosIJ
EC.
43
Co E:emplo acima5 ap<s a de"ini#$o da varivel5 a mem<ria estar como mostrado
no es8uema a4ai:o;
BAT
151 152 153 154
251 252 253 254
351 352 353 354
451 452 453 454
&s Valores num2ricos apresentados acima correspondem aos *ndices da varivel.
K> Atri4ui#$o
HComeIYHndiceI5HndiceIZ ValorJ
FEAA ?HComeIYHndiceI5HndiceIZ>J
Em pascal;
HComeIYHndiceI5HndiceIZ; WValorJ
-EA ?HComeIYHndiceI5HndiceIZ>J
E:emplo;
AFG&-ATB& Atri4ui
VA-AVVEA)
Comes; VET&- Y1;451;4Z E (AEAA
A5O ; ACTEA-&
KEGAC
,A-A A 1 ATE 45 ,A))& 15 FA(A
,A-A O 1 ATE 45 ,A))& 15 FA(A
FEAA ?Comes Y A 5 OZ >
FAB ,A-A
FAB ,A-A
FAB
Em pascal;
,-&G-AB Atri4uiJ
VA-
Comes; A--AUY1..451..4Z &F )T-ACGJ
A5O ; ACTEGE-J
KEGAC
F&- A; W 1 T& 4 &
F&- ;W O ;W 1 T& 4 &
-EA ?ComesY A5OZ >J
EC.
11.2.1 E:erc*cios +;
1> Fa#a um algoritmo para ler e imprimir uma matri9 2:4 de n6meros inteiros.
2> ado uma matri9 de ordem 3:3 "a#a um algoritmo 8ue;
a> (alcule a soma dos elementos da primeira colunaJ
4> (alcule o produto dos elementos da primeira lin7aJ
c> (alcule a soma de todos os elementos da matri9J
44
d> (alcule a soma do diagonal principalJ
3> ado uma matri9 de ordem C:C "a#a um algoritmo 8ue veri"i8ue se a matri9 2
sim2trica ?ai@Wa@i>.
4> ado uma matri9 C:B de valores reais "a#a um algoritmo 8ue "a#a a leitura
destes valores e ao "inal da leitura de todos5 imprimir o seguintes relat<rio;
a> =ual a )oma dos valores de cada coluna da matri9J
4> Fistar os valores 8ue s$o menores 8ue a m2dia dos valoresJ
c> =ual a soma dos elementos da diagonal secundriaJ
5> ado uma matri9 C:B de valores inteiros "aca um algoritmo 8ue "a#a a leitura
destes valores e ao "inal colo8ue os elementos ordenados primeiro pela lin7a e
depois pela coluna.
!> ado duas matri9es A e K de ordem C:C "aca um algoritmo 8ue some as duas e
gere a matri9 (. &s elementos da matri9 ( s$o a soma dos respectivos elementos de
A e K.
%> ado uma matri9 C:B de valores inteiros determine a sua matri9 transposta e
imprima.
'> Fa9er um algoritmo 8ue e"etue um produto matricial. )e@a A?m : n> e K ?n : m>
as matri9es "atores5 sendo mHW4. e nHW%.. ever$o ser impressas as matri9es A5 K e
a matri93produto o4tida.
45
12. Fun#1es pr23de"inidas do ,ascal
& ,ascal5 possui muitas "un#1es^-otinas pr23de"inidas5 sendo 8ue iremos
estudar algumas das principais. (aso 7a@a necessidade5 o manual da linguagem
,ascal pode5 e deve5 ser usado como "onte de pes8uisa de outras "un#1es.
entre as -otinas 8ue iremos a4ordar5 algumas necessitam 8ue um
comando especial se@a colocado no in*cio do ,-&G-ABA. Tal comando 2
mostrado a4ai:o;
,-&G-AB TesteJ
S)E) (-TJ
KEGAC
H(omandosIJ
EC.
&4s.; As "un#1es 8ue necessitarem o comando especial mostrado acima ter$o
colocados ao lado a palavra (-T.
12.1 6es$rio das Fun@esA"otinasB
"otina ; AK)?>
Funo ; -etorna o valor a4soluto de um valor num2rico.
&inta<e ; -esultado; WAK)?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
`1 ; -EAFJ
`2 ; ACTEGE-J
KEGAC
`1; WAK)? 32.3 >J ? 2.3 >
`2; WAK)? 315% >J ? 15% >
EC.
"otina ; (/-?>
Funo ; -etorna um caracter da ta4ela A)(AA de acordo com um
determinado valor num2rico
&inta<e ; -esultado; W(/-?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
`1 ; (/A-J
KEGAC
`1; W(/-? !5 >J ? NAP >
EC.
46
"otina ; (F-)(-
Funo ; Fimpa a tela de v*deo
&inta<e ; (F-)(-
E:emplo;
,-&G-AB TesteJ
S)E) (-TJ
KEGAC
(F-)(-J
EC.
"otina ; (&C(AT?>
Funo ; (oncatena ? Ounta > uma se8L0ncia de )T-ACGPs
&inta<e ; -esultado; W(&C(AT? s15s25E5sn>
E:emplo;
,-&G-AB TesteJ
VA-
s15s2 ; )T-ACGJ
KEGAC
s1; W(&C(AT?NOo$oP5PBineiroP>J ?NOo$o BineiroP >
s2; W (&C(AT?NAK(P5PEFGP5P/AOP>J
?NAK(EFG/AOP>
EC.
"otina ; (&,U?>
Funo ; (opia n caracteres de uma )T-ACG a partir de uma posi#$o
espec*"ica
&inta<e ; -esultado; W(&,U?s15 posi#$o 5 8uantidade>
E:emplo;
,-&G-AB TesteJ
VA-
s1 ;)T-ACGJ
KEGAC
s1; W(&,U?NAK(EFG/P5253>J ?NK(P>
EC.
"otina ; (&)?>
Funo ; -etorna o cosseno de um valor num2rico
&inta<e ; -esultado; W (&)?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
: ; -EAFJ
KEGAC
:; W(&)?1.>J
EC.
47
"otina ; E(?>
Funo ; ecrementa uma varivel num2rica
&inta<e ; E(?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
: ; ACTEGE-J
KEGAC
:; W1.J
E(?:> J ? + >
EC.
"otina ; EFAU?> ? (-T >
Funo ; Anterrompe o processamento por um n6mero especi"icado de
milisegundos
&inta<e ; EFAU?Tempo>
E:emplo;
,-&G-AB TesteJ
S)E) (-TJ
KEGAC
EFAU?2..>J
EC.
"otina ; EFETE?>
Funo ; eleta n caracteres de uma )T-ACG5 a partir de uma posi#$o
inicial
&inta<e ; EFETE?s 5posi#$o5 8uantidade>
E:emplo;
,-&G-AB TesteJ
VA-
s ; )T-ACGJ
KEGAC
s; WNOo$o da )ilvaPJ
EFETE ?s5553>J ?NOo$o )ilvaP>
EC.
"otina ; E`,?>
Funo ; -etorna QeR elevado a um determinado valor num2rico
&inta<e ; -esultado; WE`,?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
: ; -EAFJ
KEGAC
:; ; WE`,?1.>J
EC.
48
"otina ; F-A(?>
Funo ; -etorna a parte "racionria de um valor num2rico
&inta<e ; -esultado; WF-A(?Valor>
E:emplo;
,-&G-AB Teste
VA-
:; -EAF
KEGAC
:; WF-A(?2.345> ? 345 >
EC
"otina ; G&T&`U?> ? (-T >
Funo ; ,osiciona o cursor no v*deo em uma determinada coluna ? : > e
lin7a ? M >
&inta<e ; G&T&`U? coluna5 lin7a >
E:emplo;
,-&G-AB TesteJ
S)E) (-TJ
KEGAC
G&T&`U?1.52.>J
EC.
"otina ; AC(?>
Funo ; Ancrementa uma varivel num2rica
&inta<e ; AC(?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
: ; ACTEGE-J
KEGAC
:; W1.J
AC(?:>J ?11>
EC.
"otina ; AC)E-T?>
Funo ; Ansere uma )T-ACG dentro de outra )T-ACG a partir de uma
determinada posi#$o
&inta<e ; AC)E-T?)T-ACG_Fonte5 )T-ACG_estino5 posi#$o>
E:emplo;
,-&G-AB TesteJ
VA-
s ; )T-ACGJ
KEGAC
s; WNOo$o )ilvaPJ
AC)E-T?Na P5s5!>J ?NOo$o a )ilvaP>
EC.
49
"otina ; ACT?>
Funo ; -etorna a parte inteira de um valor num2rico
&inta<e ; -Esultado; WACT?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
: ; -EAFJ
KEGAC
:; WACT?2.345>J ?2>
EC.
"otina ; jEU,-E))E ? (-T >
Funo ; -etorna T-SE se uma tecla "oi pressionada5 FAF)E case contrrio
&inta<e ; jEU,-E))E
E:emplo;
,-&G-AB TesteJ
S)E) (-TJ
KEGAC
-E,EAT SCTAF jEU,-E))EJ
EC.
"otina ; FECGT/?>
Funo ; -etorna o n6mero de caracteres de uma )T-ACG
&inta<e ; -esultado; W FECGT/?s>
E:emplo;
,-&G-AB TesteJ
VA-
: ; ACTEGE-J
KEGAC
:; W FECGT/?NOo$oP>J ? 4 >
EC.
"otina ; FC?>
Funo ; -etorna o logaritmo natural de um determinado valor num2rico
&inta<e ; -esultado; WFC?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
: ; -EAFJ
KEGAC
:; WE`,?FC?2>\3>J ?\ 2\\3 ? ' > \>
EC.
50
"otina ; &?>
Funo ; -etorna T-SE se uma determinado valor num2rico F&- impar5
FAF)E caso contrrio
&inta<e ;
E:emplo;
,-&G-AB TesteJ
VA-
: ; KooleanJ
KEGAC
c; Wodd?!5>J ? T-SE >
EC.
"otina ; &-?>
Funo ; -etorna 8ual o n6mero na ta4ela A)(AA de um determinado
caracter
&inta<e ; -esultado; W&-?(aracter>
E:emplo;
,-&G-AB TesteJ
VA-
: ; ACTEGE-J
KEGAC
:; W&-?NAP>J ? !5 >
EC.
"otina ; ,A
Funo ; -etorna o valor de ,A
&inta<e ; -esultado; W,A
E:emplo;
,-&G-AB TesteJ
VA-
: ; -EAFJ
KEGAC
:; W,AJ ? 4.1415+2!535E>
EC.
"otina ; ,&)?>
Funo ; -etorna a posi#$o da primeira ocorr0ncia dos caracteres de uma
)T-ACG dentro de outra )T-ACG
&inta<e ; -esultado; W,&)?(aracteres5)T-ACG_A_)E-_,-&(S-AA>
E:emplo;
,-&G-AB TesteJ
VA-
: ; ACTEGE-J
KEGAC
:; W,&)?NAK(P5PEAK(FGP>J ? 3 >
EC.
51
"otina ; -EAjEU ? (-T >
Funo ; Fa9 a leitura de um caracter do teclado5 n$o sendo necessrio
pressionar ECTE-
&inta<e ; -esultado; W-EAjEU
E:emplo;
,-&G-AB TesteJ
S)E) (-TJ
VA-
tecla; (/A-J
KEGAC
tecla; W-EAjEUJ
EC.
"otina ; )AC?>
Funo ; -etorna o seno de um valor num2rico
&inta<e ; -esultado; W)AC?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
: ; -EAFJ
KEGAC
: ; W )AC?1.>J
EC.
"otina ; )=-?>
Funo ; -etorna um valor num2rico elevado ao 8uadrado
&inta<e ; -esultado; W)=-?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
: ; ACTEGE-J
KEGAC
:; W)=-?3>J ? + >
EC.
"otina ; )=-T?>
Funo ; -etorna a rai9 8uadrada de um valor num2rico
&inta<e ; -esultado; Wstr?Valor>
E:emplo;
,-&G-AB Teste
VA-
:; ACTEGE-
KEGAC
:; W)=-T?+> ? 3 >
EC
52
"otina ; )T-?>
Funo ; (onverte um valor num2rico para a sua representa#$o em )T-ACG
&inta<e ; )T-?Valor5 )T-ACG_-esultante>
E:emplo;
,-&G-AB TesteJ
VA-
s ; )T-ACGJ
KEGAC
)T-?2.3455s>J
EC.
"otina ; TE`TKA(jG-&SC?> ? (-T >
Funo ; Altera a cor de "undo nas opera#1es de E^)
&inta<e ; TE`TKA(jG-&SC?(or>
E:emplo;
,-&G-AB TesteJ
S)E) (-TJ
KEGAC
TE`TKA(jG-&SC?.>J ?,reto>
TE`TKA(jG-&SC?1>J ?A9ul>
TE`TKA(jG-&SC?2>J ?Verde>
TE`TKA(jG-&SC?3>J ?(iano>
TE`TKA(jG-&SC?4>J ?Vermel7o>
TE`TKA(jG-&SC?5>J ?Bangenta>
TE`TKA(jG-&SC?!>J ?Barrom>
TE`TKA(jG-&SC?%>J ?(in9a>
EC.
"otina ; TE`T(&F&-?> ? (-T >
Funo ; Altera a cor das letras nas opera#1es de E^)
&inta<e ; TE`T(&F&-?(or>
E:emplo;
,-&G-AB TesteJ
S)E) (-TJ
KEGAC
TE`T(&F&- ?.>J ?,reto>
TE`T(&F&-?1>J ?A9ul>
TE`T(&F&- ?2>J ?Verde>
TE`T(&F&-?3>J ?(iano>
TE`T(&F&-?4>J ?Vermel7o>
TE`T(&F&-?5>J ?Bangenta>
TE`T(&F&-?!>J ?Barrom>
TE`T(&F&-?%>J ?(in9a>
EC.
53
"otina ; T-SC(?>
Funo ; Trunca um valor -EAF para um valor Anteiro
&inta<e ; -esultado; WT-SC(?Valor>
E:emplo;
,-&G-AB TesteJ
VA-
: ; ACTEGE-J
KEGAC
:; WT-SC(?2.345>J ? 2 >
EC
"otina ; S,(A)E?>
Funo ; (onverte um caracter min6sculo para mai6sculo
&inta<e ; -esultado; WS,(A)E?(aracter>
E:emplo;
,-&G-AB TesteJ
VA-
: ; (/A-J
KEGAC
:; WS,(A)E?NaP>J ? NAP >
EC.
"otina ; VAF?>
Funo ; (onverte uma )T-ACG para a sua representa#$o num2rica
&inta<e ; VAF?)T-ACG_&-AGEB5VAF&-_-E),&)TA5(&AG&_E--&>
E:emplo;
,-&G-AB TesteJ
VA-
:5 e ; ACTEGE-J
KEGAC
VAF?N12345P5:5e>J ? 12345 >
EC.
54
13. ,ro4lemas -esolvidos em Algoritmos5 ,ascal e (
Alguns E:emplos de pro4lemas resolvidos em Algoritmos5 ,ascal e (.
13.1 !l.oritmo do Trian.ulo
Fa#a um algoritmo para ler a 4ase e a altura de um tridngulo. Em seguida5 escreva
a rea do mesmo.
&4s; Vrea W ? Kase \ Altura > ^ 2
Em Algoritmo;
Algoritmo Triangulo
Variaveis;
4ase5 altura5 area ; realJ
Anicio
Feia?Kase>
Feia?Altura>
Area ?Kase \ Altura>^2
Escreva ?Area>
Fim
Em ,ascal;
program trianguloJ
var
area5 4ase5 altura; realJ
4egin
a Entrada b
lrite ?migite a 4ase; m>J
readln ?4ase>J
lrite ?migite a altura; m>J
readln ?altura>J
a (alculos b
area;W ?4ase\altura>^2J
a )aidab
lriteln ?mA area do triangulo e; m5area;1.;2>J
end.
Em (;
ninclude Hstdio.7I
main ?>
55
a
^\ declaracao de variaveis \^
"loat area54ase5alturaJ
^\ Entrada de dados \^
print" ?oigite 4ase; o>J
scan" ?oc"o5 p4ase> J
print" ?oigite altura; o>J
scan" ?oc"o5 paltura>J
^\ (alculos \^
area W ?4ase\altura>^2J
^\ -esultados \^
print" ?oA area do triangulo e; c1..2"qno5 area>J
b
13.2 !l.oritmo 7re$o !utom-vel
& pre#o de um autom<vel 2 calculado pela soma do pre#o de "4rica com o pre#o
dos impostos ?45c do pre#o de "4rica> e a percentagem do revendedor ?2'c do
pre#o de "4rica>. Fa#a um algoritmo 8ue leia o nome do autom<vel e o pre#o de
"4rica e imprima o nome do autom<vel e o pre#o "inal.
Em Algoritmo;
Algoritmo automovel
Variaveis
Come ; cadeia
,reco"a4rica5 ,reco"inal5 Amposto ; real
Anicio
Feia ?Come5 ,reco"a4rica>
Amposto ,reco"a4rica \ ?.545 D .52'>
,reco"inal ,reco"a4rica D Amposto
Escreva ?Come5 ,reco"inal>
Fim
Em ,ascal;
program precoJ
var
nome; stringJ
,reco"a4rica5 ,recoFinal5 imposto ; realJ
4egin
lrite ?migite nome; m>J
readln ?nome>J
lrite ?migite preco de "a4rica; m>J
readln ?,reco"a4rica>J
Amposto ;W ,reco"a4rica \ ?..45 D ..2'>J
,recoFinal ;W ,recoFa4rica D impostoJ
lriteln ?mAutomovel;m5 nome>J
lriteln ?m,reco de venda;m5 ,recoFinal;1.;2>J
56
end.
Em (;
ninclude Hstdio.7I
main ?>
a
^\ declaracao de variaveis \^
c7ar nomeY!.Z J
"loat preco"a4rica5 preco"inal5 imposto J
^\ Entrada de dados \^
print" ?oigite nome; o>J
scan" ?ocso5 pnome> J
print" ?oigite preco de "a4rica; o>J
scan" ?oc"o5 ppreco"a4rica>J
^\ (alculos \^
imposto W preco"a4rica \?..45 D ..2'>J
preco"inal W preco"a4rica D impostoJ
^\ -esultados \^
print" ?oAutomovel; csqno5 nome>J
print" ?o,reco de venda; c1..2"qno5 preco"inal>J
b
13.3 !l.oritmo >edia Valor
ado uma s2rie de 2. valores reais5 "a#a uma algoritmo 8ue calcule e escreva a
m2dia aritm2tica destes valores5 entretanto se a m2dia o4tida "or maior 8ue '
dever ser atri4u*da 1. para a m2dia.
-.
Algoritmo )erie
Variaveis
(ontador; Anteiro
C5)oma5 Bedia ;-eal
Anicio
(ontador .
)oma .
En8uanto (ontador H 2. "aca
Feia ?C>
)oma )oma D C
(ontador (ontador D 1
Fim En8uanto
Bedia )oma ^ 2.
)e Bedia I ' Entao
57
Bedia 1.
Fim )e
Escreva ?Bedia>
Fim
Em ,ascal;
,rogram BEAA_2.J
Sses crtJ
var
conta;integerJ
media5num5soma;realJ
Kegin
(lrscrJ
conta ;W .J
soma ;W .J
Triteln ?migite 2. numerosm>J
T7ile conta H 2. do
Kegin
read ?num>J
soma ;W soma D numJ
conta ;W conta D 1J
EndJ
media ;W ?soma ^ 2.>J
i" media I ' t7en
Triteln ?mmedia W1.m>J
else
Triteln ?mA media rm>J
Triteln ?media>J
End.
Em (;
nincludeHstdio.7I
nincludeHconio.7I
main?>
a
"loat media5num5somaJ
int contJ
somaW.J
contW.J
clrscr?>J
print"?oqnigite 2. numerosqno>J
l7ile ?contH2.>
a
scan"?oc"o5pnum>J
somaWsomaDnumJ
numWsomaJ
contDDJ
b
mediaWnum^2.J
i" ?media I '>
58
a
print"?oBedia r igual a 1.o>J
b
else
a
print"?oBedia r igual a; c2.2"qno5media>J
a
b
b
return?.>J
b
13.4 !l.oritmo >edia >aior Due 4
ado um con@unto de n registros cada registro contendo um valor real5 "a#a um
algoritmo 8ue calcule a m2dia dos valores maiores 8ue 4.
Em Algoritmo;
Algoritmo Bedia
Variaveis
C5 (onta5 Baior4 ; Anteiro
)oma5 Bedia5 Cumero ;-eal
Anicio
(onta 1
Baior4 .
)oma .
Feia ?C>
En8uanto (onta H C Fa#a
Feia ?Cumero>
)e Cumero I 4 Entao
)oma )oma D Cumero
Baior4 Baior4 D 1
Fim )e
(onta (onta D 1
Fim En8uanto
Bedia )oma ^ Baior4
Escreva ?Bedia>
Fim
Em ,ascal;
program maior4J
uses
(-TJ
var
n5 au:; integerJ
soma5 media5 numero; realJ
4egin
59
(lrscrJ
lrite ?migite valores di"erentes de +++m>J
lritelnJ
au: ;W .J
soma ;W .J
read ?numero>J
l7ile numero HI +++ do
4egin
i" numero I 4 t7en
4egin
soma;W soma D numeroJ
au: ;W au: D 1J
endJ
read ?numero>J
endJ
media ;W ?soma^au:>J
lrite ?mBEAAWm>J
lrite ?media>J
end.
Em (;
ninclude Hiostream.7I
ninclude Hconio.7I
main ?>
a
clrscr?>J
int nJ
"loat soma5media5numero5au:J
cout HHodigite valores di"erentes de +++ 3I oJ
cin II numeroJ
au: W1J
soma W.J
l7ile ?numero fW +++>
a
i" ?numero I 4>
a
soma W soma D numeroJ
au: Wau:D1J b
media W ?soma^au:>J
cout HH oqnEntre com o pro:imo 3IoJ
cin II numeroJ
b
cout HH mediaJ
return .J
b
13.C !l.oritmo &alrio
Sma empresa tem para um determinado "uncionrio uma "ic7a contendo o nome5
n6mero de 7oras tra4al7adas e o n
.
de dependentes de um "uncionrio.
60
(onsiderando 8ue;
a> A empresa paga 12 reais por 7ora e 4. reais por dependentes.
)o4re o salrio s$o "eito descontos de '55c para o AC)) e 5c para A-.
Fa#a um algoritmo para ler o Come5 n6mero de 7oras tra4al7adas e n6mero de
dependentes de um "uncionrio. Ap<s a leitura5 escreva 8ual o Come5 salrio 4ruto5
os valores descontados para cada tipo de imposto e "inalmente 8ual o salrio
l*8uido do "uncionrio.
Em Algoritmo;
Algoritmo salario
variaveis
nome ; cadeia
dependente ; inteiro
7oras5 salariol5 salario45 escontoA5 esconto- ; realJ
Anicio
Feia?nome57oras5 dependente>
salario4 ?12 \ 7oras> D ?4. \ dependente>
escontoA ?salario4\.5.'5>
esconto- ?salario4\.5.5>
salariol ?salario4 3 escontoA5 esconto->
Escreva?nome5salarioK5 escontoA5 esconto-5 salarioF>
Fim
Em ,ascal;
,rogram )alarioJ
Sses
(rtJ
Var
Come;)tringJ
Cum7ora5 )al4ruto5 )alli8;-ealJ
Cumdep;AntegerJ
Kegin
(lrscrJ
Trite ?migite & Come o Funcionario;m>J
-ead ?Come>J
TritelnJ
Trite ?mCumero e /oras Tra4al7adas;m>J
-ead ?Cum7ora>J
TritelnJ
Trite ?mE Cumero e ependentes;m>J
-ead ?Cumdep>J
TritelnJ
)al4ruto;W?12\Cum7ora>D?4.\Cumdep>J
)alli8;W)al4ruto3??)al4ruto\...'5>D?)al4ruto\...5>>J
Trite ?mCome o Funcionario;m>J
Trite ?Come>J
TritelnJ
Trite ?m)alario Fi8uido;m>J
Trite ?)alli8>J
61
End.
Em (;
ninclude Hiostream.7I
ninclude Hconio.7I
ninclude Hstdio.7I
main ?>
a
clrscr?>J
int numdepJ
"loat num7ora5sal4ruto5salli8J
c7ar nomeY2.ZJ
cout HH oigite o nome do "uncionario 3I oJ
scan" ?ocso5 pnome>J
cout HH oCumero de 7oras tra4al7adas 3I oJ
scan" ?oc"o5 pnum7ora>J
cout HH oCumero de dependentes 3I oJ
scan" ?oc"o5 pnumdep>J
sal4ruto W ?12\num7ora>D?4.\numdep>J
salli8 W sal4ruto 3??sal4ruto\...'5>D?sal4ruto\...5>>J
cout HH oqnCome do Funcionario; oHH nomeJ
cout HH oqn)alario Fi8uido; o HH salli8J
return .J
b
13.6 !l.oritmo C9 Trian.ulos
1> Fa#a um algoritmo para ler 4ase e altura de 5. tridngulos e imprimir a sua rea.
Em Algoritmo;
Algoritmo Triangulo
Variaveis
(ontador; Anteiro
Kase5 /altura5 Area ;-eal
Anicio
(ontador 1
En8uanto (ontador H 51 "aca
Feia ?Kase
Feia ?/altura>
Area ?Kase \ /altura>^2
Escreva? Area>
(ontador (ontador D 1
Fim En8uanto
Fim
62
Em ,ascal;
program trianguloJ
uses crtJ
var
4ase5altura5area;realJ
contador;integerJ
4egin
clrscrJ
contador;W1J
l7ile contador H 51 do
4egin
lriteln?migite a Kasem>J
read?4ase>J
lriteln?migite a Alturam>J
read?altura>J
area;W?4ase\altura>^2J
lrite?mEsta e a area do triangulo m>J
lriteln ?area>J
contador;WcontadorD1J
endJ
repeat until seMpressedJ
end.
Em (;
^\program triangulo\^
ninclude Hstdio.7I
main ?>
a
"loat 4ase5altura5areaJ
int contador W 1J
l7ile ?contador H 51> a
print" ?oqnigite a Kaseqno>J
scan" ?oc"o5p4ase>J
print" ?oqnigite a Alturaqno>J
scan" ?oc"o5paltura>J
areaW?4ase\altura>^2J
print" ?oqnA area do triangulo de numero cd e7 c"o5area>J
contadorDDJ
b
return ?.>J
b
63
13.* !l.oritmo >edia >enores
ado um con@unto de 2. valores reais5 "a#a um algoritmo 8ue;
a> Amprima os valores 8ue n$o s$o negativos.
4> (alcule e imprima a m2dia dos valores H ..
Em Algoritmo;
Algoritmo (on@unto2.
Variaveis
C5 )omaBenor5 BediaBenor ; -eal
(ontaBenor5 (ontador ; Anteiro
Anicio
(ontador .
(ontaBenor .
)omaBenor .
En8uanto (ontador H 2. "aca
Feia?C>
)e C IW . Entao
Escreva ?C>
)enao
)omaBenor )omaBenor D C
(ontaBenor (ontaBenor D 1
Fim )e
(ontador (ontador D 1
Fim En8uanto
BediaBenor )omaBenor ^ (ontaBenor
Fim
Em ,ascal;
program numerosJ
uses crtJ
var
valor5media5soma;realJ
cont5contpos;integerJ
4egin
clrscrJ
cont;W1J
l7ile cont H 21 do
4egin
lriteln?migite um valor realm>J
read?valor>J
i" valor H . t7en
4egin
media;WmediaDvalorJ
contpos;WcontposD1J
end
else
4egin
lrite ?valor>J
64
lriteln ?m e um valor maior 8ue ierom>J
endJ
cont;WcontD1J
endJ
media;Wmedia^contposJ
lrite ?m& numero de valores menores 8ue iero sao m>J
lriteln ?contpos>J
lrite ?mA media do valores menores 8ue iero e m>J
lriteln ?media>J
repeat until seMpressedJ
end.
Em (;
^\ numeros \^
ninclude Hstdio.7I
main?>
a
"loat valor 5mediaJ
int cont W 15
contposW .J
l7ile ?cont H 21> a
print" ?oqnigite um valor realqno>J
scan" ?oc"o5 pvalor>J
i" ?valor H .> a
mediaWmediaDvalorJ
contposDDJ
b
else
a
print" ?oqn c"o5valor>J
print" ?o e um valor maior 8ue ieroo>J
b
contDDJ
b
media W media ^ contposJ
print" ?oqn& numero de valores menores 8ue iero e7 cdo5contpos>J
print" ?oqnA media dos valores menores 8ue iero e c"o5media>J
return ?.>J
b
65

You might also like