Contenido
Prefacio a la tercera edición ............................................................. ... ....
vii
1 Algoritmos, diagramas de flujo y programas ..... . .. . .. .. ......... ... ....... ... 1.1 Problemas y algoritmos ............ .................... ....................... ..............
1
1.2 Diagramas de flujo........ .. ............. ...... ...... ........... .... ...... ............. .. ...... 1.2.1 Reglas para la construcción de diagramas de flujo................ 1.3 Conceptos fundamentales .......................... ...................................... . 1.3.1 Tipos de datos........... ...... ........ .... ......... ..................... ... .......... 1.3.2 Identificadores, constantes y variables................................... 1.3.3 Operaciones aritméticas........................... .. ............................ 1.3.4 Expresiones lógicas.... ............ ................................... ... .......... 1.3.5 Bloque de asignación.................... ............ ............................. 1.4 Construcción de diagramas de flujo....... ...................................... .... 1.5 Programas ... ... ............................................................ ........................ Problemas resueltos..................... ................... .......... .................... ...........
1 4 4 8 8 9 12 15 22 24 31 37
2 Estructuras algorítmicas selectivas ........... ..... ...................................
53
2.1 Introducción..................................... .................................... ............ 53 2.2 La estructura selectiva simple si entonces.......................................... 54 2.3 La estructura selectiva doble si entonces/sino................................... 57 2.4 La estructura selectiva múltiple si mú/tio/e ........................................ 62 2.5 Estructuras selectivas en cascada (anidadas).................................... 70 Problemas resueltos........................................................... .. ...................... 77 3 Estructuras algorítmicas repetitivas .................................................. 107
3.1 Introducción ................................................................................. ...... 3.2 La estructura repetitiva~ (FOR) ........ .. ...................................... 3.3 La estructura repetitiva mientras (WHILE) ......................... ........ ....... Problemas resueltos .................. ... .... ... .... .......... ............. ...... ......................
107 107 115 121
4 Estructuras de datos: arreglos ..... ... ...... ................ ..... ......................... 175
4.1 Introducción ................ .. ..................................................................... 175 4 .2 Arreglos unidimensionales ..... ....... .......................................... .... ....... 181
182 1&¡
209 210 222 .. 229 ........ 343 .... 343 ... 344 346 ......... .. .......... 347 .... 347 ....... 354 6 Problemas suple~entarios .. .. .. .. ::::::::::::::::::·:· .· Arreglos unidimenSionales. . . ..... . Arreglos bidimensionales .. ··. ·· ·················.. ·· · Arreglos de mas de dos dimensiones Arreglos parale OS
Algoritmos, diagramas de flujo y programas
.................. 401 ... 441 .. 446 ............ 453 ....... 454
...... · · .. · ........
463 lndice
1 1.1 Problemas y algoritmos Casi inconscientemente, los humanos efectuamos cotidianamente una serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resol-
ver un problema . Esta serie de pasos, procedimientos o acciones, comenzamos a aplicarlas muy temprano en la mañana cuando, por ejemplo, décidimos tomar un baño. Posteriormente cuando pensamos en desayunar también seguimos una serie de pasos que nos permiten alcanzar un resultado específico: tomar el desayuno. La historia se repite innumerables veces durante el día. Continuamente seguimos una serie de pasos o conjunto de acciones que nos permiten alcanzar un resultado. Esta-
mos en realidad aplicando un algoritmo para resolver un problema. "Formalmente definimos un algoritmo como un conjunto de pasos. procedí· -mientas o acciones que nos permiten alcanzar un resultado o resolver un problemc(.
Muchas veces aplicamos el algoritmo de manera inadvertida, inconsciente o automáticamente. Esto generalmente se produce cuando el problema que tene· mos enfrente lo hemos resuelto con anterioridad un gran número de veces.
Supongamos que simplemente tenemos que abrir una puerta. Lo hemos he· cho tantas veces que difícilmente nos ponemos a enumerar los pasos para alean· zar este objetivo. Lo hacemos de manera automática. Lo mismo ocurre cuando queremos subirnos a un automóvil , cuando tenemos que lustrar nuestros zapa·
'"llliJ :¡
vestunos. cu.lntlo t<'tWmos desafort z cuando nos tomovtl o. stmplemente e ~na nos calzamosla' llanta de un a . U ando d uan o btar tos. ente que cam aso con agua udad d< prob1emas· que requteren de dame os tomar un v te una gran can fl ,,,ble v estructurado para su sol u . ~n que: otra parte. •;''un peo'amtento 'de prOblemas. Invariablemente suttón. rgen .. profundo y e abOrdar €>' llpO aná l¡sts os interesa En este libro n ? ciertas preguntas. a resolver un proble;na ·p demos ensenar a]IZ3r el mtsmo. nseñaraar. . ? • ¿Podemos e -ara pen,ar ,podemos ensen . terrogantes son difíciles de obtener N ' -t - a estaS tn bl s· . O mente asrespue,a> -- mitan resolver un pro ema. m embargo Lógl~~las espedficas que no> pe~n¡unto de técnicas y herramientas metodo: exiSten r que se pueden ofrecer un ctrUcturar el razonamiento utilizado en la solu creemos fl bthzar y es ·' d lógicasquepermttill' ''" revocará finalmente la construccton e algoritmos ción de un problema Eso p ef¡cientes
1 1 Problemas y algoriLmo:s
En la figura 1.1 podemo50 b
lución de un problema ·
PROBLEMA
• 'o
r
+
J.
ANALISIS PROFUNDO DEL PROBLEMA
ETAPA 1 f igura 1.1
Ejemplo 1.1 reparar "Pechugas de pollo en salsa de elote y chile Constru:i• un algontrno para P poblano lngredtentes para 6 personas . _ 3 pechugM deshuesadas s r piel 'i parttdas a la mttad 1dienle de a o 4 gramos de p m enla negra. sal 6 cucharadas de atette 5 chtles poblanos asados, hmpios. 2 taza de leche t, taza de crema gera !lata de crema de e llte
3
servar las etapas que debem 05 seguir . para la so~
J
CONSTRUCCION DEL ALGORITMO
VERIFICACION DEL ALGORITMO
ETAPA 2
ETAPA 3
Etapas de la Solución de un Problema .
~ Nota:
Por verificación del algoritmo entendemos el seguimiento del mismo con datos que sean representativos del problema que queremos resolver
Las características que los algoritmos deben reunir son las siguientes:
- Precisión : Los pasos a seguir en el algoritmo deben ser precisados claramente. - Determinismo: El algoritmo, dado un conjunto de datos idénticos de entrada siempre debe arrojar los mismos resultados. ' ~ Finitud: El algoritmo, independientemente de la complejidad del mismo, siem-
pre debe ser ele longitud fi nita. Por otra parte, un algoritmo consta de tres secciones o módulos principales. En la figura 1.2 podemos observar las secciones que constituyen un algoritmo. El módulo 1 representa la operación o acción que permite el ingreso de los datos del problema. -El módulo 2 representa la operación o conjunto de operaciones secuenciales, cuyo objetivo es obtener la solución al problema. - El módulo 3 representa una operación o conjunto de operaciones que permiten comunicar al exterior el o los resultados alcanzados.
1.2 Diagramas de flujo
5
Tabla 1.1 Símbolos utilizados en los Diagramas de Flujo Representación del Símbolo
Expl i~adón del Símbolo Símbolo utilizado para marcar el/nielo y el fm del dtagrama dP fluJo Símbolo utilizado para Introducir los datos de entrada Et:presa lectura
IMPRESION DE RESULTADOS
MódulO 3
/
Símbolo utilizado para representar un proceso_ En su lntf'!nor se el'.~re5an asignaciones, operaciones antméticas, cambios de valor de celdas en r'nf'· maria, etc
~
Símbolo utilizado para representar una decisión. En su 1nto:-nor se almacena una condición, y dependiendo del resultado de la evaluación d~ la m1sma se sigue por una de las ramas o caminos alternativos. Este slmbolo se utiliza en la estructura selectiva si entonces que estudiaremos en el stgu~~nte capítulo, y en las estructuras repetitivas repetir y mientras que analizaremos en el capi· tulo 3
151
ñgura l.Z
, . . 1.2 DiagraDW de flujo o . ' ' mala esquematización grahca de un algontmo. En . , Ce. a agrama de' "-~ ~eset los pasos o procesos a seguir para alcanzar la solureandad"" ...esuagraac.a: . er: e · t t porque ciónd.e .n moO e= a Su correcta construcción es sumamente ¡mpor an e . , s· 1 apamr :.,·~=a se escr·b€ ~n programa en algún lenguaje de programacton. d eld;agr.:n,ade •. oestacomp'eto ycorrecto. el paso del mismo a un lenguaJe e progra-acióc es •e.a .an:eme stmple y directo. .. mas y Aco'bruacor e· a ,.bla 1.1 presentamos los símbolos que uttltzare .. unaexphc.a(lón de os :--,tsrros. Estos satisfacen las recomendaciones de la lernat10nai Organ zation for Standardízatíon"' (150) y la ':American NatJOnO Standards lnst tute A.'iSI . Aco ac~ónenla hgura U presentamos las etapas q ue debemos segun en la construcc on de diagrarr a de flujo
Símbolo utilizado para representar la estructura selectiva doble s1 entonces/sino. En su 1ntenor se almacena una condición. 51 el resultado es verdade· ro se continúa por el camino de la IZquerda, y s1 es falso por el cam1no de la Clerecha Símbolo utilizado para representar una decisión múltlple En su mtenor se almacena un selector, y dependiendo del valor de d1cho selector se s1gue por una de las ramas o caminos alternativos Este símbolo se utJIIza en la estructura selectiva si múltiple, que analizaremos en el siguiente capítulo
¡
"í
1.1.1 llegloo poq la
~de diagramas de nujo
Debemos recordar q e d asos o procesos a segun par¡, alealaqrama de flu o debe Ilustrar gráficame nte los P re01 05 ~nlados. coloca
Símbolo utilizado pa ra representar la Impresión de un resultado Expresa es cr!tura
o
o
Símbolos utilizados para expresar la di rección del flujo del d1agrama Símbolo utilizado para expresar conexión dentro de una misma pág1na Sfmbolo utilizado para expresar conexión entre pág1nas d1ferentes Sfmbolo utilizado para expresar un módulo de un problema En reahdad expresa que para continuar con el flujo normal del d1agrama debemos pnmero resolver el subproblema que enuncia en su 1ntenor
7 . ._"1 ,
5 U'"'
con unro de reg as que permiten la consttuc-
deoo :e er
:!l
n ao ~ un f.n
Tod{1s lus \meas utiliMdas pum indica1 la dncccion ctd fluJO dd d 1 ~1 g 1 ull"lfllk bl..'n ~._•stL\r coned_<1?as. L:.1 con.cx1on pu~~l:? st>r ~ un snnbolo qm.· 0:\.PI~Sl' \t:>du ti\, proCL'SO. dl'CISIOn. lmprt?stOn. conl?\.1011 o hn de dia.grtlma
4. El diagrama de flujo debe ser construido de arrib<-' hucia abajo \top-down) \.' de izquierda a derecha (right to left). 5. La notacion utilizada en el diagrama de flujo debe St:>r indt>p\.•ndit:>ntl? d~\ knguaje de programacion. La solución presentada 12n 1?\ diagrUITia puedt:- t?:;cri· birse posteriormente y facilmente en diferentes lenguajes d12 programadon 6. Es conveniente cuando realizamos una tarea compk.ia poner corn\.•ntarios que expresen o a~.mden a entender lo que hicin1os. 7. Si el diagrama de flujo requiriera mas de una hoja para su construcclon.lkbt:tmos utilizar los conectores adecuados y• enumerar las p..:1ginas COI1\'t.~nknh.~~
mente. 8. No puede llegar mas de una hnt:a a un snnbolo.
2
9 Datos numéricos Denrro d~? los tipos dt" datos num.::>ricos encontramos los 2nteros \·los n~J:cs Los eme ros son numtros que pu.?d.?n t::star precedidos del signo ..... o-.\' que no tte-
n.:!n parte decimal. Por ejemplo:
128
152S
-714
8530
1t>235
-1-t~SO
Los ~ates son numeres que pueden estar prtcedidos dd signo ...._ o-.\.. Qllt' tienen una parte decimal. Por ej~mplo:
7.5
--.37.865
128.0
-15.0
129./
Datos alfanumericos
1.3.1 r¡pos de datos
....::.s . . . .;:.JS;. ;mx:.zsar por .... na co~})t:tadora pueden clasificarse en: •
~-?a:
• =.s:::-.. c:-..:raCcs
:...a ~r.~c ~ carac:eris:ica Ce los datos simples es que ocupan sólo_unac~: Ce :-eo.....a ~ ;>OT .o tanto. una variable simple hace referenc¡aa~n-~- .:G :-a.AJ.!a a 21. i}¿rrro de es:e grupo de datos se encuenrr~n_: enteros. r:~.~~~;. '!Ce-eres ooo ea'"'os. er. ... merados y subrangos (los dos ulttmos no e: -· ~-os e- ; ... a e5 ¿e programación . -o~: :.OS da·05 esm: .erados se caracrerizan por el hecho de que con un non .. ·. ·rie--· cacor de 'ariao:e estrucruradal se hace referencia a un grupo de ca.;: de -:e:':loria Fg 1 .;b . Es decir un dato estructurado tiene varios compon'_::~~ ' truC!U•u•' Cada cr.o Ce os cor::ponentes puede ser a su vez un dato simple 0 es . rtif" S·- e:cbargo..05 cor:oponentes básicos llos del nivel más baJO) de cua 1qu~~nar es:ruc.rado son da·os Simples. Dentro de este grupo de datos se encu arreg.os cadena de cara eres, registros y conjuntos.
Dentro de este tipo de datos ~?ncontTamos los de ti o caracto<>r (simple\~· cadena de caracteres (estructurado). Son datos cuyo contenido pueden ser lf'tras dd abt>cedario (a.b.c ..... z). dtgitos (0. l. 2 ..... 9) ostmbolos espo:?cial..:s t=. S. '. *...\~ .. !. +. - ..... etc.). Debemos remarcar que aunque este tipo de datos puedt>n conh> ner mimeros. no pueden ser utilizados para realizar operacion¿s aritm~ticas .. Un dato tipo caracter contiene un solo caracter. '!-'se t>scribe .mtre apostrott:-s Por ejemplo:
·s-
r;.
-~·
Un dato tipo cadena de coracreres contiene un conjunto dt- caractert-s, y se escribe entre comillas. La longitud de una cadena depende de los lenguaj~?s de programación. aunque normalmente se. acepta una longitud maxima dt: ~55 ~abcde··
""$9#T
··carlas Gomez"·
""Rosario··
.. ~54-2"7 -~:! ..
Datos lógicos
Dentro de este tipo de datos encontramos los booleanos. Son datos qu12 solo pueden tomar dos valores: verdadero (true) o falso {false}. 1.3.2 Identificadores, constantes y \-arlable.s
Identificadores
Figura 1.4
Da
wctu
A continuacion trata . caractt·rt::_: booleanos· Y el dato es:mos los datos Simples· enteros. reales;rnent< en . cap,tuJos 4 y 5, estudiarem:;ado. cadena de caracteres. Posteno istros 05 datos estructurados arreglos Y reg
Los datos a procesar por una computadora. ya sean simples o estructurados. dl:'ben almacenarse en casillas o celdas de memoria para su post.:!rior utili:.acion. Estas casillas o celdas de memoria {constantes o \.'ariablcs) tienen un nombre que permite su identificación. Llamaremos dentificador al nombre que se les da a las casillas de memoria Un identificador se forma de acuerdo a ciertas reglas (las mismas pueden tent:'r alguna variante dependiendo del lenguaje de progran1acion uhlizado)·
----Mt MORIA
dores
A
o"" o
o
11
NUMRtA
EJ
AL JM
D D
N M_l
En la figura l. 7, la variable 1es de tipo entero, tiene un valor inicial de cero y cambiará su valor durante la ejecución del programa. Las variables SUEL y SUMA son de tipo real, están inicializadas con el valor de cero, y al igual que la variable 1, seguramente cambiarán su valor durante la ejecución del programa. MlM0RIA
program~
. 1 .ecución de un Las constantes son datoo que no cambian durante a e¡ u e mencionamos a~
Constantes
Para nombrar las constantes utihzamos los identificadores q r Jo tanto. pue teriorrnente Existen tipos de constantes como tipos de datos, :c~eres. etc. l haber constantes de tipo entero real, caracter, cadena de car entero. NREA ~ Observe q e e la f ra 1 6 la constante NUM es de tipo Estas constan NUMREA so de tipo re y RESUde tipo cadena de caracteres. y importa no cambiará s r d ra te la e¡ecuc1ón del programa· Es m~n que tiC que los nomb de las constantes sean representativas de la funcl las m15mas e el PI'Qgrama
Va~blls
·on 0 Para~ue Plleden camb~ar su valor durantfi¡;adore~qrlif laa Vlriables u izaremos los 1dent• den 8]liSl1 Al iQual que las constantes pue
las vanables son
corno=
un programa
mos explícaclo con de variables
e la ei•'00 e
f'~ure 1. 7
VarlabiM repr~ntada5 en la Memona
Debemos remarcar que los nombres de las variables deben ser representativos de la función que cumplen en el programa.
v
¡Z
Prasr~rr:
¡unétlcas
.
raciones ar s antmettcas necesitamos de operad 1 ar operaclone lttran reahzar operaciones antmét¡ ores
=
.2
~AritmetiCO opera
operación
¡....---;-
....,u;tJplicaoon
~.
Potel'1oa
i
-:;;;;¡; ~
8 25'7
15/4 125 78 + 62 50 5uma 65 30-32 33 ReSta 15 mod 2 Jllódu,O(res duo) 17 d•v 3
D•"s•ón
t
Ejemplo 4 .. 3
Dl\1151ór entera
1 5 Programas
2.
Lo~
operadores aritmético . 13 qUierda a derecha . s se aphcan teniendo en euenta la jerarquía . y de iz-
Ejemplo 1.2 A continuación en este e· los mismos. Jemplo presentamos varios easos Y1a forma de resolver
Caso a) ~-6
Resultado 64
=--
1
577512- 6
3 75 188 28 32.97 1 5
L____j
2
6
Caso b) 9 +Q-36/5
A\ evaluar expresiones que contienen operadores aritméticos debemosresp¡
1
tar la jerarquía en el orden de aplicación. Es decir. si tenemos en una expres,· más de un operador. debemos aplicar primero el operador de mayor jerarq12 resolver esa operación. y así sucesivamente. Es importante señalar que el OJl'! dor es un operador asociativo que tiene la prioridad más alta en cualquier le guaje de programación En la tabla 1.3 se presenta la jerarquía de los operadow
9 +56- 36/ 5
L____j
2 ~-72
3
65- 7 2
L___j
4 57.8
Caso e) 7 -~ ¡ 4dlv3
1.
Las reglas para resolver una exp
s·
· ntes·· rest·6n aritmetica son las sigute
luna expresion COntiene subex pnmero· t 5 se el esta sub~~espetando claro está 1prestones entre paréntesis. es a ¡tiTlétiO'' sis prim preslon. Silassubex a ¡erarquta de los operadores ar rp3' 0 vei de seevaluan las se encuentran anidadas am,ento. prestones que se encuentran en e
an~~o
su~estones
P~ ¡)\11~
1 ~/4div3
2
Algontmos, diagramas de fluJo Y Progra
""'
875/4 diV 3
¡4
;:::.:::.:_..J 3
l S Programa5
15 1512
~ 4
'( 7
+< 68
~+ 1 26562513)/1~)>19 3
1~ 1 2 . ( 1 + ( 68
495 + 126 5625/ 3 ) /15) + 1g
72
Caso di
7 • 8 ' ( 160
15¡2 ' (7 + (~+ 421875 ) /15). 19
3 ·• 3 ) diV 5 ' 13 · 28
mod C---1
5
1
7,8
15/2. ( 7
. ~)dlv 5 '1 3
427 .¡ 42 1875 ) / 15 ) .¡ 19
28
6
2
15/2'(7
7 · 8 · 25 div 5 • 13
)3848125115)
t (
19
28
L.--J
. 5 / 2 ' ( c )25~) + 19
3 56 ' 25 diV 5 ' 13 L.--1
8
28 ~- e
4
1186541 + 19
9
1400 diV 5 '13 - 28 7S'(
) 186541
~
19
10
280. 13 - 28
- 139 9062 + 19
L____j
6
11
3640 - 28
- 120 9062
L.____¡
7 1.3.4 Expresiones lógicas
3612
Caso e)
Las expresiones lógicas o booleanas, llamadas así en honor del matematico
1' 2. ( 1 (68
15. 33+
(~" '!_/16)/3)
/15) + 19
diendo del resultado de la evaluación se toma por un determinado camino alter· nati vo) y en las estructuras repetitivas (dependiendo del resultado de la
1
15 2'fl+c 68 _ • 15 33
+
George Boole, gstán constituidas por números, constantes o variables y operadores lógicos o rélácionales. El valor que pueden tomar estas expresiones es el de verdadero o falso. Se utilizan frecuentemente en las estructuras selectivas (depen-
(~25/~) 2
/3) /15)
+ 19
evaluación se continúa con el ciclo o se interrumpe al mismo}
d1 ! r m !
dP ll tJj O
y IHü r
q
Programd~
17
Caso b) X B ( X . 5
+~ /
6 78 4 ) <
( X " 3 d1v B )
1
( ~ + 474 552 1 4 ) <
( X .. 3 dlv B)
2
( 30 + 474 552 1 4 ) <- ( X " 3 dlv B ) VERDAmHO VERDADtHO
( 30 + 118 638) <
Vl"RDADERO
ZO
( X " 3 dlv B )
VtRDADfRO
148 638 <
(~dlvB)
5
Ejemplo 1.3 l.n este e¡emplo pre en tamos vanos casos de expresiones lógicas con operadores r la 1onal y ia fnrm" de resolver la1 mismas.
148638 < ~ (~)
6
148638 <-27
Caso•) A B
16
Ll/13 ¡
FALSO
(B'2)
Caso e) ( ( 1580 mod 6 •
J
2
> ( 7 + 8 · 3 "4)) > ( ( 15 · 2)
(60 • 2 1 4 ))
1
• 2)
L
Ql
( ( 1580 mod 6 • 128) ., ( 7 + 8 · 3 " 4))
((~) '> (7+ 8 . 3 .. 4)) >
3
> ( (
15 · 2)
(60 · 2 1 4))
((15' 2) ~ (60 ' 2/4))
ram ¡~·2)
(60"2/4))
1.5 Programa5
19
¡8 Tabla 1.5 Operadores Lóg icos
¡5"2)
(60"2/4))
Operador lógico
Jerarquía
Expresión lógica
NO
(mayor)
No P
Significado
NOP
~ ( ( 15 . 2) = ( 60 . 2 1 4))
e
o
PoQ oPoQoamba!o Mn1moPoQ
Po Q
A continuación en la tabla 1.6 presentamos la tabla de verdad de los operado· res lóg icos. •<"2 ~(60"2/4))
Ta bla 1.6 Tabla de verdad de los Operadores Lógicos
p
8 FAlSO
(menor)
((15"2'~(60" 2/4))
c.::__.¡'
fAJ.5C >
p. Q P -,¡n embargo Q
PyQ
6
~· 1
e5 nerto que P e~rAI.~Q>JeP
No
>'30~(~
4
))
-P
-Q
fALSO
fALSO
VERDADERO
fALSO
fALSO
9
Q
Vt:RDADfRO VERDADERO
fALSO
fALSO
P' Q
VERDADERO VeRDADERO
rAL5C
VERDADERO
FAL50
FALSO
fALSO
VERDADERO VERDADERO fALSO
PoQ
VERDADERO VERDADERO
fALSO
VERDADERO Vt:ROADERO
Fl\lS() > 30~1~),
10
Por último en la tabla l. 7 presentamos la jerarquía correspondiente de todos los operadores (aritméticos, relacionales y lógicos).
fAlSO >(~l
Tabla l. 7 Jerarquía de los Operadores
11
fAI.50
>
Operadores
Jerarquia
()
(mayor)
J!:".DADfRO ' ,/, dlv, mod
• < > <.>.<_":>e NO
Noto.
o
~ Nota:
(mer' ; ,r)
',, 1 "• l'rt,r¡trlff,,l,
(1',
l1
1
1
.l
4
L.----'
~ """"3'Zd,Z) ~~~
J ( 11 1 L
11 )(J 111 1 ( /
•
¡1 • 1
'
1 ~ •• 1 1
·,
/// 1 1J/f;//'f;J( llf'IJfiJ~I'fJ)fJWJ(I f,
(L/~?
~
í~
1 L
L
(L~./J
:; • 2 dv 2)
1 1',
1
f/) (
( 1'1 ~'¿dv¿¡
4
¡:;
'J
J//'()[\f.J~J}I;Il'J(7'~~·,
¡ t j ¡ ) .. l )
rl
1
lf,l'IJ
f; /IIJ (~·5 ~
1
(J
·~
l17 • IJI'11
"1
••
IJ)
](J
ff'+L.':/; () llíJ ( 11
·,
/
1
11
fl,t.'/;
r,
110 1 t2_"-~/
1' ft'll:l; r; 11(; fN . ...lJ
-l
L-._
14 ff)l'J; (; l(f'l;hbtl'fJ L J
¡•,
ILI' Jivi 1'!J
J
IJ!¡ 1 (L/~~
1
1 ' 4 )
( 1 1 1 ¿ ' ''
1 •
1
1
1
11
) 1
1
IJI¡ ( 1(1 •JI ¿ J' 4 )
(1 1? '
f
1 • 2 1 11
1 J)
)
Alq0ntmo"'l, dl,lqr<~nl.l~ d«> l•Jo 11
zz
• d )
NO (
1~
1
~ ( 151 2 . l1 ;..
1::>' 2 / 17
Yp,"¡, 15))
J
1
~
f'r .. grama':'!l
Z:5
l
zo
15 ' 2117
151 2 . b
NO (JO '
El"' ACO
15 ) )
{L_:-J
1osn HO 1
e""
Ejemplo 1.5 Supongamos que las variables 1, ACUM y J son de tipo entero, REA y SUM de tipo
.¡
15 . 2 / 17 15) ) L..---1 6 15 ) ) :>O 1 17
40·
NO ( 40 ~ ( 45 .,
7 NO ( 40 > ( 45 >- 1 75
real , CARde tipo caracter y BAND de tipo booleano. Consideremos también que tenem os qu e realizar las siguientes asignaciones:
l 1-0
2 1-1 -t l 3 ACUM-0 4 J - 5 " 2 dtv 3 5 CAR- 'a '
15 ) )
8
6 7 8 9 10
NO ( 40 > (VERDADERO - 15) )
11.
9
13
12
14 Error
ACUM - J div l RLA-ACUM 3 BAND- (8 > 5) y (15 < 2 .. 3) SUM - ACUM • 5 / J •• 2 1-1 '3 REA -REA 5 BAND - BANDo (1 • J) 1-REA CAR - J
En la tabla 1.8 podemos observar los valores que van tomando las variables en memoria Tabla 1.8 1'\emorie Número de
Asignación
t
t
)(
2
_.:;o:;
l..U ...............
'
~~•utillzapara asignar valores o expresiones~ una vana·
6
Esto significa que si la vanablt lormelocteia-..........: áte • datruye, conservando ahora el nuevo valor~ - - . elliguiente:
v.table-.... ollllor Dc..de:.._. .... ~o lógk:a, o una constante o varfabie
a..v....
•
.........
·~~~
ACUII
IWI
5UII
BAnD
2;.
~
X 8
7 8
~ ~
g
10
CAl\
8
4
flnlllllipdo un= operacjón destructiva.
J
062~
X
ll
o ~,2
12 1' 14
MI!JO ~rror
~
....
1\lgt>rllrnQ,, III·H~f·Un.1 , rh· flrljl, 'l l >ll>•..¡r.,rr¡., ,
1 tl
't11•
ti U{ r ¡(¡111)1
()¡,1 ~ 1 ,1111
~ Noln :
1.4 Con • truu.lón d e dla
d
11'\Jo
! In lt1 JJI rnomrnto t•l lctltJr ~M , •..,tuci!Mio .JII)uno'> eon< Pph, ~.; qw· '"
¡wrrnlh· 11
r or 1 tnnr nhJIIflO diil r.,m,, dP flt1¡o Hdorl!lrf'rno~; c·r;to" roncppltJ'> e 011 ''JNnplr l'li'f t lflllddi)S J !1i rlUe'' lro lllll'Tt!S qlH' t•Jicc lor C Ollllf'llU' el rJ¡ ~~.-i!trTflllrH h rl hllld cH IJI.; unu tlf'•lCUI d de rtllOntlml'-''*' co;lruc lurcHirl V llc·x¡hJ¡• qtll' le· ¡wnnlt, 1, 1•11 ¡,1 rnc~ rhd,, qull puu.:llqUc. ohh•rwr ¡,, ~ol11t1Ón '' loe; prohll'fllcl'i p l 1 trlll•,tdo~.;
Ejemplo 1.6 Construyil un da~grnmc.l d.- fiiiJO lrll CJIH' ddciO lo'; drliOS /\ , B, e y () (IUI' n·pn•t.;t•n tan numrros enteros, (Jatos
AB
( nhrl In<; rrur..mos en ordPn mvPrso
e [1 (varrnhi!'S rll' lipO ~nl~ro). Ejemplo 1.7
Cons1d rartones
C..onc.truy,lun chrHJTiliTicl di• fltJ)O 1 1 d 1 1 c.ullrHio dr lrl O.,l()llll'nh• I'Xf'TC!I.rl6nc1 qtll' rlC o O'i d,liO'i f•nt~>ros 1\ y B. e-.c:nbrt el n-
• Para rltntcio y¡, riel dWjT•ITTI•I "" fl u¡o "' "'""'' el sfmbolo
(111 tl) ' 3
• Para lectura te utlllla el frnhr, lr,
• Para ucrflura M utiliza el tfmbolo
¿- -¡
/)r~to.l
fl, H (v,lrh>hb d<• li po en tero)
[_ _ 1 • fl"ilqnnrkm 1',11 ,1 r\C. Iflll r1T :
111M
PX}lH''i10 11
O Vcl\OT tl \ 11M VrH itl hh·
. 1' Htih ''' un bloqtw dt
Z6 2.7
1 4 Construcción de diagramas de fluJO
{lectura de datos}
Ejemplo 1.8
20
Dada la matrícula y 5 calificaciones de un alumno obtenidas a lo largo de\ semestre , construya un diagrama de flujo que imprima la matrícula del alumno y el promedio de sus cal ificaciones.
Datos: {Escrtura de .a vanable RE e! resu tado de la expres¡ó~ ~u e al maceo~
Donde:
MAT, CALl, CAl2, CAL3, CAL4, CAL5 MAT
es una variable de tipo entero que representa la matricula del alumno.
CALl, CAL2, CAL3,
CAL4 y CAL5
son variables de tipo real que representan las 5 calificacienes del alumno.
fl
AB E RES
ob
Vanables de tipo entero. {Almacena en la vanable de tipo real PRO. el promediO de 1~ cal~aciOne!>}
Vanable de ttpo real Al macena el resultado de la expres'o;.
ataba 19ellectorpod . b
""
{Escnbe la matncula y el promediO}
DillgntmZI de flujo 1.3
Explicación de las variables
MAT:
Variable de tipo entero.
CALl, CAL2, CAL3, CAL4, CALS: Variables de tipo real. Variable de tipo real. Almacena el promedio de las caliPRO: ficaciones del alumno.
29
¡;uM CIJA
/;:.•¡;;f) ~ Ól'!
[¡pr_.. H.'kr0
'lar~ar.J~é~fpr.~.-ex. f. ·--.~~~e.o... ~,._;·;;;.d,.-.~de ·'J"''e•r_..r~-e~ .. ry":v;
CUB
~~.a;....J!k d~ hptJ
f'U
i-.. :-~.aQ?:>.o ~. v_ y_, r.;e. "'""'":o/".Jq....e ~ ...tJ;e-
lat;.l~
11UMf:M Of COP.PJD/\
DATO hUY.
1 P.BOLTAOOS
CüA
-:.:; --~~
cue :;4!: ~:;,_
~.¿
fA
¿::;
;~
""
"
Ezpresa •;alrnes q1..1e se imprimen
Ejemplo 1.10 Construya un dia2Jama de flujo tal que dado como datos la base y la a:tura de <1n rectángukJ. calcule el pe-rímetro 'J la superficíe del mismo
BA'>E, ALTU
Dato<:
fJonde:
BASE
e., una ·¡ariable de tipo real que representa la base de un rectán-
ALTU
e., una variable de típo real que indica la altura del rectángulo
gulo.
LJ ~up?.:rfiCIIi! de un r!!ctángulo se calcula aplicando la siguiente fórmula
................
~·rfnf>
Wy7· -11turii"
Fórmula 1.1
30
zo
• u]aCIJO _......,st? ca.JC
'
El ne••11t:"'"" -
1 .5 Programa5
;; penrne _ _2 7{bi.se + altura) 1 ,__ -
formula 1.2
31
1.5 Progra mas Un progra':la , concep~o desarrollado por Van Neumann en 1946, es un conjunto de mstrucc1ones qu~ Sigue la computadora para alcanzar un resultado específico. El pr~gra~a_se escnbe en un lenguaje de programación a partir de un diagrama de fluJO dtsenado con anterioridad. Un lenguaje de programación , por otra parte, está constituido por un conjunto de reglas sintácticas (especifica la formación de instrucciones válidas) y semán-
Eje
Ae<
ticas {especifica el significado de estas instrucciones) , que hacen posible escribir un programa .
o &plicac¡Ón de las vana bies
BASE ALTU
Variab es de tipo real
SliP
Vanab e de t1po real. Almacena la superficie del rectángulo
PEP.
Va'lablede tipo real. Almacena el perímetro del rectángulo
ese mpr mert
Cientos de lenguajes de programación se han desarrollado hasta la fecha. Ya en 1969, se habían enumerado más de 120 que habían sido utilizados ampliamente . Actualmente a los lenguajes de programación podemos clasificarlos te niendo en cuenta el tipo de problemas que son capaces de resolver de manera natural. Así tenemos, por ejemplo, para programación estructurada: PASCAL, C, BASIC , FORTRAN, COBOL; estos tres últimos en su versión estructurada. Para programación orientada a objetos: C+ + , SMALLTALK y JAVA. Para programación simbólica: LISP, y para programación lógica: PROLOG. Cabe señalar que sólo hicimos mención de algunos lenguajes y tipos de lenguajes. En este libro nos enfocaremos sobre el tipo de lenguajes de programación estructurada. En este enfoque los programas se diseñan de arriba hacia abajo (top-down) jerárquicamente, usando sólo un conjunto restringido de estructuras de control en cada nivel, instrucciones secuenciales, estructuras selectivas y estructuras repetitivas. Cuando esto se hace en forma adecuada el programa resulta muy fácil de entender, depurar y modificar. Cuando tenemos que resolver un problema de tipo algorítmico, entendiendo por esto aquellos que tienen una solución determinística, primero desarrollamos el algoritmo, que proporciona una solución muy general. Posteriormente construimos el diagrama de flujo, que esquematiza gráfica y detalladamente la solució n del problema, y a partir de éste, escribimos el programa en algún lenguaje de programación estructurado. Pensamos que la tarea intelectual, la que requiere de un pensamiento profundo, de una capacidad de razo namiento flexible y crítica, es la de la construcción de l d iagrama de flujo, que representa la solución detallada del problema. La escri tura del programa puede ser muy simple, conociendo las reglas sintácticas y semá nticas que constituye n el lenguaje de programación. El lenguaje que utilizaremos en este libro para la construcción de los programas es un le ng u aje a lgorítmico de pseudo-código, independiente de cualquier lenguaje de programación. Esta característica consideramos que es muy importante, ya qu e permite al lector co mpre nder las estructuras de datos y los algoritmos asociados a e llas sin relacionarlos a un lenguaje de programación en particular. Se considera que una vez que e\ lector dom ine correctamente estos conceptos, muy fácilme nte podrá transportar los programas realizados a un lenguaje de programació n, ta l como PASCAL o C.
Todo programa tiene un nombr
sentadas para la con
programa. Es muy importante que los
nom""" de los - - -
sentativos de la función que cumplen los mismoo. Poslericw al nornt., dobotjo, • muy recomendable escribir un párrafo como comentario de lo q u e - el programa. También es M
INVIERTE_DAT05 {fl programa dado un c<>fVunto de oam di!' entrada ln\lferte el orden de lo5 m~ cuando m trnprl'nt:} {A. B C y D 500 variable> de tljlO ente
lLeerA.BCD 2t5CnrDCBA.
J
.......
...
~ Observe el lector que escribir un~~"":...-,,....., .. ...,.. instrucciones conespondientws. La m • trucción del diagrama de fluJO.
35
¡1)
J.J•·mplo 1
J:s
:ltiJ;; :"-~l '1nplr,
1'
1
1
rr¡
fHV
•nl.ltnr,'ll., v,hJr ¡(,f¡
''fll~
111fl¡f!l/fll¡, rj)rJ,¡,r¡r,tr 1 •,¡1iii'·J'I'''''
JliH/I(IfJ, 1 JJI¡JIJ
f11 IJr!
IJ J¡fl¡ffl llifl}
{/'\/\Ir IHI•IVIHIJf,j¡ fii·IIJ¡I¡fflll·fiJ fi\LJ,f[\[¿ (. (11 •,, 1 /1! <1, C f1l 1 •¡I'IVJ ,IJrJ J
l ¿ ~
¡, , 11r r,
r 1\11. r 1\11,
1\,,,., f'IV'--
r ,,,.,, 'Atl\, e¡,¡ ..,
(1 1\ll
tf1ll
+
C (\! '• 1 f All\
CA\')) f j
( <' fiJ,¡r/11\l, f'II(J
I .Jt·mplu 1. 14
1\ r IIIIIIIILI•H 1f111 pn- r•nt.uno 1,, olur lfllll'll li•nqu,,¡¡• rllqnnlmico de•\ di,,gr.Jm,, el~ f111)r•l 11 Progroma 1. 4 (Of\IIIIA[l() (11!10
{f 1 prc•qr,unt d.ulc1 1 orno d.11o un JHHllt·ro' ntl·ro J>l> .IIIVC1, e o~h IIIJ••It u.Hir,lfln y
Ul
1'1 tubo 1\! dlt ho llllrlll ro)
fllllMc
\111.1Vdlllhl! !11 11jml'lll1'\tl
V1111hl1
d! 11p(1 11 .\1)
{1lf\y{Utl..,on
V rl f 1 1 1' ' r ! H1~1 11.1111tllf\ r!loir lilA
' r,
y1 1111
!IIIM'!HI~1ytlll\
--
tHIM'"'
Problemas resueltos
37
Problemas resueltos
Problema 1.1
{BASE ~l- Se
PE" 50
a abes de t1po real}
Construya un diagrama de flujo tal que dado el costo de un artículo vendido y la cantidad de dmero en tregada por el cliente, calcule e imprima el cambio que se debe entregar al mismo. Datos: PREPRO, PAGO
Lee' 5.,5E ".a
p -
~SE' AL-lJ Y PER -
2 • (BASE + ALTU)
Donde: PREPRO PAGO
es una variable de tipo real que representa el precio del producto. es una variable de tipo real que representa el pago que realiza el cliente.
Aconnr.uaoon presen amos una serie de problemas resueltos, diseñadOS!!!· presamente como e ementos de a)'l.lda para el análisis y la retención de los cor· ceptos Ade~as S< IZilll en muchos de ellos. tablas que permiten hacer< seguimiento de la ue o p·an•eada en estos algoritmos.
Nota: Asumimos que el pago del cliente es mayor al precio del producto
Diagrama de flujo 1.8
EKplicación de las variables
DEVO :
Variable de tipo real. Almacena el cambio que se debe entregar al cliente.
A continuación en la siguie nte tabla, presentamos el seguimiento del algoritmo para diferentes corridas.
38 39
Problemas resueltos
21
E· ¡\
lo
e
E: resa valores que se imprimen Progra ma 1.6
PAGO rna dado e costo de un producto y la cantrdad de e c. e te ca cu a el vuelto que hay que entr drnero en. egarle al mrsmo· 1 PAGO DEVO son var abes de tipo real}
EKplicación de las variable s BASE y ALTU: Variables de tipo real.
• .ter PR!:PRQ PAGO e DEl/O PAGO- PREPRO ~
,
Diagrama de rtujo 1. 9
SUP:
DE\10
Variable de tipo real Almacena la superficie del trián· gulo.
A continuación en la siguiente tabla. presentamos e\ seguimiento de\ algorit-
l'toble!M l.2 Ce
mo para diferentes corridas.
d~agrama de flujo ta1que dadaslaba eylaalturadeunlnar: ee pnmasus.;perficle
Tabla 1.15
CORRIDA
Datos BASE, ALTU Donde
1gut nte formula
BASE
ALTU
l
8 50
7 20
2
9
so
12 50
120 60
85 90
os
198
1160
'•o
3
vanablede abe d 11 Po real que md 1ca ¡, 1 ba e del tnangu e tipo real qu repr <'ntala altura del triA
RESULTADO
DATOS
NUMERO DE
• 5
SUP
3060 ~12
snm • 28
.zgz
,_____,l ·Expresa valores que se imprimen A continuación presentamos el diagrama de flujo escrito en \engua.h? algontmico.
~1
ll
fxplicaCJon de las anab es
. "0. f FES' !..0..
PESruL
w
A1gontrno5, dlagrama5 de flujo Y Progr~rna, Problema3 re!»llelto5
4Z
43
rrograma 1.8 Consideraciones:
Cada galón tiene 3.7851itros El preCIO del litro es $8.20. Explicación de las variables
GAI TOTAL. {NOM es una variable de tipO cadena de caracteres 50 n variables
de tipo real}
Variable de tipo real V.u•able de lipo real Al macena el total de lo que debe pagar el chenle
A contmuac•ón, en la tabla 1 17 ell 1
a\gontmo pdro d!rmenles corridas.
304 7 Leer NOM, PES y LON Hacer PESKIL PES' 1000 Y LONMET- LON , O
.--¡...._
Escribir NOM. PESKIL y LONMcT
Tabla 1.17
NUMfr\0 Df ~RIDA
l"roblema 1.4 Construya un diagrama de fl ujo que resuelva el problema que tienen en una 9,. solinera, Los surtidores de la misma registran lo que "surten" en galones, pero e: precio de la gasolina está fijado en litros. El diagrama de flujo debe calcular e im· primir lo que hay que cobrarle al cliente. Dato:
GAL (variable de tipo real que representa los galones de gasoli na surt ieron a un cliente).
que~
ec or podrá observar el seguimiento del
1-- 2
-
DATOS GAL 10
~e
)'j'XJ
B 40
-
RfSUL~
TOTAL
522 10 49~
49
Z60 71
a'
966
Z99Bl
5
19rjQ
1517 64
'-----'1 · Expresa valores que se imprímen A continuación presentamos el diagrama de flujo, en lenguaje algorítmico. Programa 1.9
GASOLINERA {El programa, dado como dato los galones surtidos a un cliente en una gasolinera, calcula lo que el mismo debe pagar}
{GAL Y TOTAL son vanables de upo real} Leer GAL Hacer TOTAL - - GAL • 3 78S • 8 Escribir TOTAL
Dla¡rama de P'lujo 1.11
zo
45
Froblema 1.5 Construya n d d ftu)O tal q~c dado como datos el rodiO y la altura de un cdmdro calcule e mprtma e a y su volumen
wama
Datos
EMp licación de la5 variable5
RADIO y ALTU
VOl.: ARE.
RADIO ALTU
Donde RADIO ALTI..
En la tabla 1.18,
rentes corridas.
es vanable de bpo real que repre.senta el rad1o de un Cilindro es una vanable de tipo real que representa la altura del cilmdro
eo.wderactones • El
Variables de tipo real
Variable de tipo real. Al macen· 1 1 . Vanable de tipo re 1 Al - "e vo umen del dlmdro a . mar:ena el área del cilindro
d
po emos observar el seguimiento del d-1 goritmo para di fe
r-
__:_oRRIDA
de un c!l.Pdro io calculamos aplicando la SigUiente fórmula
~ r'rad_i·a~
¡....!!.A DIO 4"¡
.?2
f-~
17
:.o :.o
, 4
114!S92
DATOS
___!
~ ·-
fórmula 1.4
-
Tabla 1.18
1NUMERO DE
f:/i
.
RESULTADOS
ALTU
VOL
11<\0
74J
.,
¡e~
A~·
", ",
".2?~
714':ol)'il
B6
018~1
72 40
1092".~240
~1"¡24 7"¡
12"¡ ".O
IJ7 40
!17~~270
9242101
8>90
:?".7 20
)498~"¡
128022
10
eo
Expresa valores que se imprimen
• La ~" de a.mdro ~a c<>lculamo• cor-o 2 • n: • riV1iO • atttJr;
Progr;,ma 1.10 .J
VOLIJMt N ARtA CILINDRO
f6rmullll.5
~~~~~rr~~r~~~·~~a: rl~~~~ ~~t~~~~~=~rf y~ altura dP un {HA() lO, Al TU, VOL y ARE c,on vartabiP.5 dt> tipo H_.l1}
l leer Hl\010 y ALTU 2 II.Ju•rVOl - - 5141592 ' (RADI0 " 2)'ALTIJ Al\1 - 5 141 RADIO • ALTU V 1"!.<..rrbrr VOL y ARf
z·
~92 .
J>roble ma 1.6 Cfm.,tnry,, '9 t f1 ujo que lcadkule. e rmprima el numero de segundos qtw IMy t•n un un eh d~l·~r'm'",',", '1~ "' ,u n numero ( ~ ras
/Julo.'> . . . . . . . ,.,.111
1>l AS (vnrinhle d~ tipo entero que expresa el numero de días) .
47 46
Programa 1.11
SEGUNDOS EN OlAS
{El programa, dado un número determ1nado de días. calcula cuántos segundo5 ltenen éstos} { DIAS es una variable de t1po entero SEG es un~ vanable d"" tipo real}
J
Leer OlAS Hacer SEG OlAS • 24 ' 60 ' 60 Escribir • en ", DIAS, 'hay'', SEG, ~segundos."
~rud•t1uj0113
fJcpiJC:ICJón de la5 vanables
DIAS
SU
\iar111ble de tipo entero. Var111ble de ipo real. Almacena la cantidad de segundos que hay en un número determinado de días
Problema 1. 7 Construya un diagrama de flujo tal que dados los tres lados de un triángulo. pueda determinar su área. Esta la calculamos aplicando la siguiente fórmula·
[_-
Js
(S S
ll) . (S - LZ) . (S (ll • LZ
L3)
+ L3) 1 Z
fórmula 1.6
DatoS;
Expresa valore• que oe lmpnmen
m1coA e •nti ua 6 preoentam<>S al d'•gr,,m,, d". .-. flul'' 1 1:~. v.n 1'-"nqu,t¡P dlgonl
Ll, L2 , 1.3 (variables de tipo real que representan los tres lados)
S
A!gontn10 ,
dld~jl
o•'
·~
Problemas resueltos
49 Programa 1.12
AREA_TRIANGULO {El programa, dados los tres lados de un triángulo calcula su
área}
'
{Ll, LZ, L3, S y AREA son variables de tipo real} 1 Leerll, LZ, L3 2 Hacer S - - (Ll + LZ + L3) 1 2 y AREA- (S'(S-Ll)'(S-LZ)'(S-13))"05 3 Escribir AREA
Diagrama de flUJO 1.1
4
Explicación de las variables
Problema 1.8
Ll. L2. L3
Variables de ti pe real. S: Variable de tipo real. Se utiliza como una variable auxiliar para el cálculo del área.
Datos:
AREA: Variable de tipc real. Almacena el área del triángulo. En la tabla IZO podemos observar el seguimiento del algoritmo para diferen·
tes corridas Tabla 1.20 NUMERO OE CORRIDA ¡
DATOS
CALCULO AUXILIAR
ll
l2
l3
15
75
75
S jj
25
RESULTADO
~~69
2
61
48
H
7 15
8 D38
'lC
•
.a o
45
12 25
21 9230
16~
.l ~
1690
15 7889
6 ~6
250
30 JO
154 8739
L:J .
Expresa valores que se . lmpnmen.
Xl, Yl, X2, Y2
Donde: Xl y Yl
son variables de tipo real que representan las coordenadas de\ punto Pl en el eje de las X y Y, respectivamente.
X2 y Y2
son variables de tipo real que indican las coordenadas de\ punto P2 en el eje de las X y Y.
AREA
24
l
-~
Construya un diagrama de flujo que calcule la distancia entre dos puntos, dado como datos las coordenadas de los puntos Pl y P2.
Consideraciones: • Para calcular \a distancia "D" entre dos puntos dados Pl y P2 aplicamos \a siguiente fórmula:
D=
~(X l-X2) 2 +Cf ¡:_yz)' Fórmula 1.7
Atgorltrnos, diagramas de flujo Y Progr¡:¡rn
,, Problemas resueltos
51
50 Programa 1.13
DI5TANCIA_ENTRE._DOS_PUNTOS {El programa, dadas las coordenadas de dos puntos Pl y P2, calcula la distancia entre estos puntos}
{Xl , Y l . X2, Y2 y DIS son variables de tipo real}
Oiagramadi!I'IUJO 1.15
Explicación de las variables . Variables de tipo reaL Xl Y1 X2 · Y2. 1 d' t . Ir d · · DfS· Variabledetiporeai.Almacena a IS anc1a en e os pun. tos PI y P2 . En la tabla 1 21 mostramos el seguimiento del algoritmo.
Tabla 1.21 NUMERO DE CORRIDA
2
RESULTADO
DATOS
DIS
XI
y¡
X2
Y2
317
4 78
• 99
7 88
3.59
715
1160
1 93
4 38
17 99
l
1217
1040
1040
29 30
1898
' 5
l940
7890
68 30
187 20
!l2 08
88 70
118 30
295 30
18 40
22948
.__ ____,] Expresa valores que se imprimen
1 2
Leer XI, Yl, X2, Y2 Hacer 015 - - ((XI· X2) " 2
3
Escrlblr DIS
+ (Yl - Y2) " 2) " O 5
2 Estructuras algorítmicas selectivas
2.1 Introducción Las estructuras lógicas selectivas se encuentran en la solución algorítmica de casi
todo tipo de problemas. Las utilizamos cuando en el desarrollo de la solución de un problema debemos tomar una decisión, para establecer un proceso o señalar un camino alternativo a seguir.
Esta toma de decisión (expresada en el diagrama de flujo con un rombo) se basa en la evaluación de una o más condiciones que nos señalarán como alterna· tiva o consecuencia, la rama a seguir.
Hay situaciones en las que la toma de decisiones se realiza en cascada. Es decir se toma una decisión, se marca la rama correspondiente a seguir, se vuelve a tomar otra decisión y así sucesivamente. Por lo que para alcanzar la solución de
un problema o subproblema debemos aplicar prácticamente un árbol de decisión. Las estructuras algorítmicas selectivas que se utilizan para la toma de decisiones lógicas las podemos clasificar de la siguiente forma: l. SI ENTONCES 2. SI ENTONCES SINO 3. SI MULTIPLE
(Estructura selectiva simple) (Estructura selectiva doble) (Estructura selectiva multiple)
Cabe señalar que cuando a las estructuras selectivas las aplicamos en casca· da. podemos utilizar una combinación de las estructuras señaladas anteriormen· te en la clasificación.
Estruc.tura5 algoritmlcas ~
54 ctura selectiva slntple si entonces .
.
2.2 La estru mi te que el flujo del d.agrama Siga Por u La estructura St!lectiva SI entonces perondición o conjunto de condiciones. Si ~ amino espectfico si se cump~e una) el resultado es verdadero. entonces se e¡· ecua C . · ( condiCtOnes e · evaluar la con d ICtOn .0 _' L 0 se continua con la secuencia normal del dia. tal ni clertalsl operaclon(e> . ueg grama (diagrama de flujo 2.1 l.
2 2 La estructura setect1va stmple 5, enronces
55
Ejemplo 2 .1 Construya un diagrama de flujo tal que d d
alumno en un examen, escriba "a robad ~ 0 como dato la calificación de un 0 en caso de que esa calificación sea mayor a 8. p Dato:
CAL (variable de tipo real que representa la calificación del alumno).
Donde
CONDICION expresa la condición o conjunto de condiciones a evaluar
OPERACION expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta verdadera
Diagrama de flujo z.z
A conunuacion mostramos el diagrama de flujo 2.1, que ilustra la estructura selectJva s1 entonces. en lenguaje algorítmico.
. En la tabla2.1, podemos observar el seguimiento del diagrama de flujo para d1ferentes corndas.
Programa 2.1 Tabla 2 .1 NUMERO DE CORRIDA
1
2
SI
c~d
d6n entonces
'lace operaclé
{fr de
con~
na¡
'
4
5
DATO
CAL 8 75 7 90 800 9 50 835
RESULTADO "Aprobado
"'Aprobado
"1\probodo
: Expresa valores que se imprimen.
A co ntinuac ió n prese nta mos e l diagra ma de flujo en lenguaje a lgoritmico.
56
Programa 2.2
tXAMtN ~[LfCliVA
2 2 l d l"•lt u<. llu d •¡t'lt'<. tlvd clobl{• .-,/ f'ntonces_¡ sino
AUM:
NSUE:
IMI'l
{fl prollrarnJ d~ 1 do (omo d HO l..l c.~llllit~Kión dt.' un dlun1no ~n un exdmen ~c.nbt~ JPIObddO r kl CJIIflc.~Kión t.'c¡ ~uper tor a 8}
57
V,wiable de lipo real Al Variable de tipo real: rnacena el aumento del lrabdjador Almacena el nuevo sueldo del trabajador
En la tabla 2.2, observamos el s
. . eglllmtento del algoritmo para diferentes co
rridas.
{CAL e unl v 1r. Die d' trpo r ,11} Tabla 2.Z
Leer CAL 5 CAL , 8 entonce5
o o~
RIOA
E~cr
¡r,
b r Aproba O e ond e on.J/ del pdso 2)
DATO
SUE 87~ ~o
CALCULO AUXILIAR AUM
RfSULTAOO NSUr:
13132
1006 82
lr!ó .t!O llf/5 ttl0 .67
112240
1'500 00 2 ! ~ 0 . 00
C'llb .OO 18~ 00 031 60
Ejemplo 2.2 o,,do como dato el sueldo de un trabajador. apliqu le un aum nto d 115% si su
QO.?
7~
1078 41
: Expresa los valores que s imprimen.
sueldo es mf~nor a $1000. lmpnma en este caso el nuevo ueldo del trabajad 01 ¡¡,,g., el chagr,lma de fluJO correspondiente.
Dato
·
A continuación presentamos el programa correspondiente.
'UE {van,Jble de trpo real que repre enta el sueldo del trabajador) .
Programa 2.3
AUMENTO SELECTIVA SIMPLE t .t ruc. tu rJ of"let.tiV.;J!>Irnple
Si ~ · nt Oilct'"t
{El progrc1ma dado como dato el sueldo de un trabajador, le aplica un aumento del 15% SI su sueldo es Inferior a $1000}
{SUM, AUM y NSUE son variables de tipo real}
-
Leer SUI 'il SUI ' !000 entonce, lldcCr AUM - - SUE' 0.15 y NSU[ - L'Lrlblr N'">UL {fin del condlclon<~l del pa>o 2}
SUt f AUM
2.3 La estructura selectiva doble si entonces 1 sino L1 ('Siruclurtl Sl1 lt~clivtl si l'lltonces sino permitL' qul' L'l flujo dl'i diugruma se bifurqut1 por dos ranh\s difL'n.>ntL'~ t•n el punto de¡(, toma dl' dl'cision(es). Si tll evaluc:n ltl rondirion (o rondicionl's) l'l fl'Stdl.._ldo ~s vL•rdtld~,•ro. L'ntonces se sigtw por un (\H1lino l'S¡wnfko v Sl' ~,•jl't'Ulcl{n) cierl¡_l(S) opertlcionks). Por olru p.._utt-. si el re ~ull.._,do \1S f',,lso l'lltonn·s st• sigul' pm otro c\1mino y S\' t.'Jt.'Cllltl(n) otrd(s) opt.•r.:.l
b~fll'ftl dt P'lujo l -'
expllc•ctón de les lllrlebles SUE
V nabl de llpo r
111
Estructura s algorftmlcas select
~ la(s) operación( es) indicada(s) luego de ejecutarse a A continuación presentarno' Se bos caso S . d 1diagram · se[ ción(es). Ena~ ecuencia normal e tructura selectiva. continúa con as 2 4 que ilustra esta es diagrama de flu¡o . 58
Donde
CONDICION expresa la COndiCión 0 conjunto de condiCIOnes a eva"-.Jarse OPERACION 1 expresa la operación 0 conjunto de operaciones que se van a realizar slla condición resulta veraa. dera OPERACIONZ expresa la operación 0 conjunto de operaciones que se van a realiZar si la condición resulta falsa
2 3 La estruc tura selectiva doble si entonces 1 sino
59
Ejemplo 2,3 Construya un diagrama de flujo tal que dado como dato la calificación de un alumno en un examen, escriba "aprobado" si su calificación es mayor o igual que 8 y "reprobado" en caso contrario.
Dato: CAL (variable de tipo real que expresa la calificación del alumno) .
Diagrama de: l"tujo 2.4
. '!mico se representa de esta forma. El diagrama de flujo en lengua¡e a 1gon Programa 2.4
Diagrama de flujo 2. .5
En la tabla 2.3 podemos observar el seguimiento del algoritmo para difere1 tes corridas. Tabla 2.3
NUMERO DE CORRIDA
S condcón
entonces Hacer operac ón 1
sno Hacer opera ón 2 {f n de conde o
DATO CAL
1
J----¡us
2
7.90
3
8.00
4
9.50
S
8 35
RESULTADO
1--......,_.
......,_. ......,_.
-~·
......,_.
: Expresa valores que se imprimen. A continuación presentamos el programa correspondiente.
60
Programa 2.5
I
;¡,AMEN
~ElfCTVA
61
::>OBLE
dad ce 0 dato la caltftcaclón dP un alumno !El progr ma ~ aprobadO" 51 5u caltflcarlón E:5 ma•¡r,r
enune~
o gua
QUP
{CAL,...
e
~~~
6 Y reprnbadO" en ca50 contrario
na variable de ttpo
}
real)
eer CAL 2S1CA>8
entone e~ E5Cnb r Aprobado"
sno E5Ct b r F~probado"
¡• r
DiliQrllmll de I'IUJO 2 ,6
dP conde onal dPI paso 2 ¡ Explicación de las variables
SUE:
Ejemplo 2.4 Construya un diagrama de flujo tal que dado como dato el sueldo de un trabaja· dor, le aplique un aumento del15% si su sueldo es inferior a $1000 y 12% en casv contrario lmpnm~ el nuevo sueldo del trabajador.
Dato
NSUE:
Variable de tipo real. Variable de tipo real. Almacena el nue·Jo sueldo del traba¡advr
das En la tabla 2.4 mostramos el seguimiento del algoritmo para diferentes corn·
l
Tabla 2.4
SUE vanable de l!po real que representa el sueldo del trabajador) . NUMERO DE CORRIDA
DATO SUE
RESULTADO MSUE 96657
t
84050
2
1200 00
!>4400
~
4
1>50 00 óeQ 70
2184 00 7112.80
5 6
93080
107ó:42
100000
ll?Q.OO
Expresa los valores que se impnmen.
62 Pto!lrama 2.6
-;;-UME~TO
2.4 La e:.tructura selectiva múltiple~~ múltiple
63
';Elf(T vA DOBLE
E r
a u \.. ';(T'IO datO el sueldo de un trabajador, le dP ~ ~n aumento de 15% si su sueldo es lnfenor a $1000 y
1 3e
1Z'IC.
';Uf V
50 contrano}
~SUE '§011 vJ
ables de "po real}
L.eer"X.J!:
~ SLE < 1000 e 'JJf'lces nacer NSUE
SUE' 1 15
5I
Diagrama de Flujo z. 7
El diagrama de flujo 2. 7 en lenguaje algorítmico lo expresamos de esta forma.
2.4 La estructura selectiva múltiple sí múltiple Ld __ .aura se ee' vas múltiple permite que el flujo del diagrama se bifurque
Programa 2 . 7
por varas ramas en e punto de la toma de decisión(es) . esto en función del valor
que tome e se ector Así si el selector toma el valor 1 se ejecutará la acción 1, si toma e va or 2 se ejecutará la acción 2. si toma el valor N se realizará la acción N, ys1 t ma un a ordlStmtode Jos valores comprendidos entre 1 y N, se continuará
con el flu o norma del dragrama realizándose la acción N + l. A cont nuaoón presentamos el diagrama de flujo 2. 7 que ilustra esta estructu-
SI selector igual
Valor 1: Hacer acción 1 Valor 2 Hacer acción 2
ra selectrva
Donde es la vanable o expresión a evaluarse, según la cual se tomará una de las "múltiples" decisiones o alternativas expresa ra operacrón o con¡unto de operaciones que se ACClO van a realrzar SI el selector toma el valor 1. ACCIO 2 expresa la operac1ón o conjunto de operaCiones que se van a reahzar SJ el selector toma el valor 2. ACCIONN expresa la operac•ón o conjunto de operaciones que se van a realrzar Si el selector tomil el valor N 00 . ACCJONN+I expresa la operac16n que se va a realJZar cuando se e tmue con el flu¡o normal del dldgrama
<;ELECTOR
Valor N: Hacer acción N {Fin del condicional} Hacer acción N+ 1
. La estructura selectiva si múltiple es muy flexible, lo que permite aplicarse de diferentes formas. Obsérvense los siguientes diagramas de flujo y las explicaciones correspondie ntes.
f5tructura' algor•tmlcas ~
64
2.4 la estructura selectiva múltiple 51 múltmte
65
Ejemplo 2 .5
Ejemplo 2 .6 Analicemos el siguiente caso.
Diagrama de flujo 2.9
~ Nota:
~ Nota:
El diagrama de flu o en lenguaje algorítmico. Jo expresamos de esta forma:
Observe el lector que 5I el selector toma el va or 1 o 2 se realiza la ac 1 selector toma el valor 3, 4 o S se real~ la accl6n 2 y 51 e15elector toma e QUier otro valor se realtZ.a la accl6n ~ Luego. cuando se Continúa e el normal del d1agrama se rea aza la accl6n X
A continuación presentamos al diagrama de flujo 2.9 en lenguaje algorítmico.
Programa 2.8
l
1 2 3
Programa 2.9
S1 selector Igual Valor l. 2: Hacer acción 1
Valor 3.4,5 Hacer acción 2 De otra forma Hacer acc•ón 3
{fin del condicional}
ni'
Hacer acción X
j
--a•gv•rt:ml
5
. ., t mos algunos e¡emplos donde el lector puect' A contmuacJOn prdesen a la estructura selectiva si múltiple. e los conceptos estudia os con
66
apJieq,
ma de flujo tal que dado como datos dos variables d . Cotnstruybateunnga':?;:sultado de la siguiente función: e hr>o en ero, o
VAL
¡
SiNUM= 1
100 "V
SiNUM=Z
100
51 NUM= 3 Para cualquier otro valor de NUM
o
V
67
Explicación de las va riables
Ejemplo 2.7d.
lOO. V
2.4 La estructura selectiva múltiple si múltiple
NUM:
Variable de tipo entero.
V:
Variable de tipo entero.
VAL:
Variable de tipo real. Almacena el resultado de la función .
En la tabla 2.5 podemos observar el s
tes corridas.
. .
.
egUlmlento del a\gontmo para diferen-
Tabla 2 .5 NU MERO DE CO RRIDA
DATOS
NUM
RESULTADO
VAL
V
800
NUM, V
Datos Donde:
NUM V
es una variable de tipo entero que representa el tipo (opción)
de
1000000
cálculo que se va a realizar. es una variable de tipo entero que se utiliza para el cálculo de la
10
10
' - - - - - - ' : Expresa los valores que se imprimen.
func1ón.
Programa 2 .10
Estructura selectrva mútt1p1e /
5I múltiple
FUNCION _SELECTIVA_MULTIPLE {El programa, dados como datos dos variables de tipo entero, calcula el resultado de una función} { NUM y V son variables de tipo entero. VAL es una vanable de tipo real}
l. Leer NUM y V
1 1
2 51 NUM Igual 1 Hacer VAL
lOO' V lOO " V 2 Hacer VAL lOO¡V 3 Hacer VAL De otra forma Hacer VAL - {Fin del condicional del paso 2} 3 4 Escribir VAL
Diot'- dol'lujo 2 10
o
1
69
2 .4 La esuuctura selectiva mU t.1pl e 51 múit1p e
68
Ejemplo 2.8
.
ue dado como datos la categoría y el sue d·agrama de flu¡o ta 1q rrespondiente temendo en cuenta 11d,, ConstrUYab un d~r calcu e el aumentdo f~abajador y su nuevo sueldo. a S¡. de un tra a¡a . la categona e gu,ente tabla. Jmpnma
f
í
¡
1
Tabla 2. 6
CATEGORÍA
-
Explicación de las variables CATE: Variable de tipo entero. SUE · NSUE:
Variable de tipo real. Variable de tipo real. Almacena el sueldo con el aumento incorpo· rada.
1AUM ENTO A continuación en la siguiente tabla podemos observar el seguimiento del al· gontmo para d1ferentes corridas.
! 5C.
1
1 1
10%
8% Tabla 2.7 NU MERO DE CORRIDA
1 2 3 4
Datos CATE. SUE
Donde
5
es una variable de tipo entero que representa la categoría del tra.
CATE SüE
DAT~
bajador . ble de tl·po real que expresa el sueldo del trabajador es una vana
SUE
CATE
3 800 6200 1100 1750 4 100
~
4 1 2 3
1--
RESULTADO NSUE
4104 6634
--,
126~ 192~
4428
'-------' : Expresa valores que se imprimen. El programa en lenguaje algorítmico es el siguiente: Programa 2 .11
f;5 .,., f ' wr a 5e ectNa mu t~ple 5I mu t1ple
AUMENTO_SELECTIVA_MULTIPLE { El programa calcula el aumento de sueldo de tos trabajadores,
teniendo en cuenta su categoría. El aumento se ¡ncorpora al salano} {CATE es una variable de t1p0 entero SUE y NSUE son vanables de tipo real}
1 Leer CATE, SUE 2 S1 CATE ¡gua/ 1 Hacer NSUE 2 Hacer NSUE 3 Hacer NSUE 4 Hacer NSUE
\ SUE • 115 SUE . 1 10 SUE. 108 SUE. 107
3 {fin del condicional del paso 2} 4 Escribir CATE. NSUE
~ do l'lujo ZII
1 1 1
1
70 2.5 Estructuras
~electivas
en ca!>cada (anidadas) dt.>-.\\1 rollo de l(l soluC"lon de prob1<1rn que luego de tornar una decls on y rn.uc,lr el c,,mlllO coru•spondiente a sea' en el neces,\TIO tomar otr d CISión ._,'-~ .,.t?nala. luego di.! evc\luar las condicio~Ulr, e~ rdmo correspondJt>ntt: gutr y nucvdment' podemos tener que toma es, la m1on U proceso pu de repetorse numerosas veces En este caso, para de problema. e t mos aphcardo tructuras selectivas en cascada o anidada!veret Lnc:ontrdrnos numero
os e
os
71
llll
Programa 2.12
r~~ra
~
51 condición 1 entonces 11 L 51 condlclón2
A contl. uaCI r en los siguientes ejemplos analizaremos casos diferentes.
entonce!l
sino Hacer operaclón21
Ejemplo 2.9
N2
AnaliCemos el s g¡¡ ente caso. donde dentro de la estructura selectiva si ent ~ncontram la estrurtura select1va SI entonces 1sino. onces ura
/
N+ l. {n'n
Hacer operaclón22
dc{IF~~~~~~~nna~ 1 ~~~~!:~1~aso N.l}
~t1va ~1mp1e
entOfl(t~
Ejemplo 2.10 Analicemos el siguiente caso. t'5tructura~lectJva~mp¡e
/
E511'UC:tUtoJ ':>l'le
51
rntona•_., ¡.,1110
el prr>grama en 1 n< '"'1 ,,I
51entonc~¡s 1 no
72
2.5 E:struc_Luras 5P iectlvas f'n cascada (anidadas)
~ Nota:
73
Ejemplo 2.11 Estudiemos el último caso.
: Estructuro selectiVa s1mp1~
a~ algontmJCO lo expresamos de esta forrna. Programa 2 .13
·
Si enronces 1 s1no
Estructura selectiva múltiple 51 múltiple
\
t'
r pe
a
22 N 1}
Oi.,greme de l'tujo Z .14
~ Nota:
A continuacion mostramos el programa correspondiente .
E5 tructuras algorítmicas se/e
~
74
z.s
Estructuras selectivas en cascada (anidadas)
75
Programa 2.14
N
Nota Todas las e tru tur
vas son del ttpo doNe si entonce5 lsmo
5' cond clón l
entonces l
N
5 selector l ¡gua/ Valor l Hacer operación2l Valor 2 N1 l
51 condlción3 entonces Hacer operaclón31 {fin del condicional del paso N. 1 1}
Nl 2 De otra forma Si condlclón4 N13
entonces Hacer operaclón41
SinO
~2
Hacer operaclón42 ru 4 {f 1n del condlc1ona1 del paso N.l.3} {fn de condiCional del paso N.l}
s no 51cond1C1ónS entonces Hacer operación51 N 4 {F n del cond1c1onal del paso N.3} N+ 1 {F n de conde anal del paso N} 3
Diagrama de flujo 2.15
Explicación de las variables A continuacion en el e¡emplo 2.12, presentamos un problema d on d e ellector d puede aplicar los conceptos estud1ados en estructuras selectivas en casca a .
Ejemplo 2.12 .==:;:=:::::::==:::;=:::;::::~• Dados los datos A. BY e que representan números enteros diferentes. constrUYa un diagrama de flujo para escnb1r estos numeras en forma descendente . Datos A B.
e (variables de tipo entero).
A, By C:
Variables de tipo entero.
A continuación presentamos el diagrama de flujo en lenguaje algorítmico.
Estructuras algorítmicas se¡
~
76
programa 2.15
77
problemas resueltos
Problemas resueltos
oESCENDENTE_SELECTIVA_ CASCADA como datos tres números enteros diferentes,
{El programa,
d~d:os en forma descendente
escribe estos num
{A. B y C son vana bies de tipO entero}
Leer A. B. C
f'roble ma 2.1 El número de sonidos emitidos por un grillo en un minuto, es una función de la temperatura. Como resultado de esto, es posible determinar el nivel de \a temperatura haciendo uso de un gri\lito como termómetro.
SrA > B
entonces 2.1
La fórmula para la función es:
Sr A > C
[ T~N/4+40
entonces 211
SiB>e
entonces Escribir A, B y e smo Escnblr A, e y B {Frn del condlcronal del paso 2.1.1}
22
2 12 smo Escnbrr C. A YB {F n del condrcronal del paso 2.1}
s no 23
T representa la temperatura en grados Fahrenheit y N el número de sonidos emitidos por minuto
Donde:
Construya un diagrama de flujo que le permita calcular la temperatura. te· niendo en cuenta el número de sonidos emitidos por el grillo. Doto:
N
SB>e
entonces 2'51
SiA >e
Esvuctura selec.uva s rr,Qle S1 entonces
entonces
Escnbir B, A y e
smo
232
Escrlbrr B, e y A {Frn del condrclonal del paso 2.3 1}
sno EscrbrC. By A 2 4 {f de conde ona del paso 2 3} {fnde condco a de paso2¡
Diagrama de Fluj o Z.l6
E5tructuras algorltmlca 5
78
~ Problemas resueltos
Explicación de las variables
N: T
79
Variable de tipo entero. Variable de tipo real. Almacena la temperatura en grados Fahren. heit.
t bla 2 8 observamos el seguimiento del algoritmo A continuacion en 1a a · Para diferentes corridas. .
P}
+ Q 4 -2"P 2
< 68o
En caso afirmativo debe imprimir los valores p Y Q
Datos: P,Q (variables de tipo entero que expresan los datos que se ingresan) .
Tabla 2.8 NUMERO DE CORRIDA
1 2 3 4 5 6
DATO
RESULTADO
N 8
42 00
15 11 25 5 50
T 43 75 42 75 46 25
52
so
L...-----'1 . Expresa valores que se imprimen. Programa 2.16
GR;.LO_TEMPERATURA {E programa, dado como dato el número de sonidos emiUdos por un gr o el"' uf'l m nuto, calcula la temperatura en grados fahrenhelt} {~es una var~able de bpo entera Tes una variable de tipo real}
l leer N 2 5• N > O entonces '1acerT l't/4 + 40 E5Crbr Temperatura", T de cord oonal del paso 2}
Problema 2.2 e onstru ya_ un d1agrama de flujo tal que dado como datos los valores en teros py Q. determme s1 los miSmos satisfacen la sigUJente expresión:
Diagrama de f'lujo Z.17
Explicación de las variables
P, Q: EXP:
Variables de tipo entero. Variable de tipo real. Almacena el resultado del cálculo de la expresión.
A continuación en la tabla 2.9 podemos observar el seguimiento del algoritmo. Tabla 2.9
NUMERO DE CORRIDA
1 2 3 4 5
CALCULO
DATOS
p
Q
3 6 2 7 2
5 8 4 5 6
AUXILIAR
634
RESULTADO p Q
3
4240
256 870 1296
: Expresa valores que se imprimen.
2
'
•
80
Programo Z .1 7
l'roblt'JT\d'' rr ... tH'Ito•,
81
f~PRE
~ v lore'S enteros, determ1n~1 si los
tero EXP es una variable de tipo reul} p
Q"4
2' P"Z
Problema 2 ..3 La rae
re esd .>exprl!'lónax +bx+c-Oseobtienenatravésdelafórmula:
Diagrama de Flujo 2.18
Expli cación de las va ria bl es b•~ b
4a
A,B, C:
Za
fórmula 2.2
Variable de tipo reaL Almacena el discrimini'!nle de la ecuación.
Xl:
Variilble de tipo reaL Almacena la primera Tt11l rt?al de !t'l ecuación. Variable ele tipo real. Almacent~ la segunda ratz. rt'tll dv lt' en.ta
X2:
fl JO para calcular las ra1ces re<1les. d~ ser pos1ble, de
Variables de tipo r al.
DIS:
C'ión.
o rada
A conlimhldon Pn lü ldbld 2.10 ll"lOStrurnos (1\ st.•guimll•nlo eh'\ f\lqoritmo pc:lrt.1
Datos A B C
A O
difel'Ptli<'S COtTidtlS.
Donde
A ByC
H pr
nt on ¡,
NUMERO
oe
cocfluent<' de \,~t•tl'"
CORRIDA
[
~
f "¡\JIIl \(IJ,\'J dl(jQJ f1tnl~ d ~ "H ' /c •r r l!,¡il,
82 Programa Z.l8
63
tCUACION :;tGUNDO ORDEN
(El programa, dado como dato.5 los co trcr >ntes de Id ecuación, calcula las rafce5 reales si existen } {A. B.
c.
015 . XI
y xz son variaD/es de tipo real)
1 Leer A, By e Hacer 015 -
z
e··z
4 'A'
e
3 51 Dl5 > O entonces Hacer XI _ XZ _
(( B) + 015"0 .5)/Z'A y (( B) DIS"O.S)/Z'A
Escribir "Ralees reales", XI, XZ 4 {fin del condicional del paso 3}
Diagrama de l'lujo Z.HI
Problema 2.4
Explicación de las variables
Construya un diagrama de flujo tal que dado como datos la matrícula y 5 calificaciones de un alumno; imprima la matrícula, el promedio y la palabra "aprobado" si el alumno tiene un promedio mayor o igual que 6, y la palabra "no aprobadd' en caso contrario.
Datos: MAT, CALl, CAL2, CAL3, CAL4, CALS Donde:
MAT: CALl, CAL2, CAL3, CAL4 y CAL5: PRO:
Variable de tipo entero. Variables de tipo real. Variable de tipo real. Almacena el promedio de las 5 ca· lificaciones.
A continuación en la siguiente tabla, se puede observar el seguimiento del al· goritmo para diferentes corridas.
MAT CALl, CAL2, CAL3, CAL4yCAL5
es una variable entera que representa la matrícula del alumno. son variables de tipo real que representan las 5 califica· cienes del alumno.
Estructuras algorítmicas 5
~'
84 Tabla 2.11 NUMERO DE CORRIDA
Problema:» resueltos
85
RESULTADos
DATOS CAL2
CAL3
CALS
PRO
CAll
CAL4
MAT
9 50
7
7 60
!6>00
7 50
8
1
6
6 30
5 80
860
9
9
5.9
6 30
7 76
"NOAPR~ .APRQ~
'
1'220
'
4 80
5 90
¡66SO
7
2
7
460
4 90
5 60
5 82
!8240
7
4
NO APROBADo
· ~Z46
8
8 50
8 30
9 20
9 30
8 66
5
"APROBADo:'-
18250
9
9 25
8.10
9 80
!O
9 23
6
.. APROBAD;;-
COMENTARlo APROBAD(¡
] : Expresa valores que se imprimen '-----~
-
Programa 2.19
l
/ PROMEDiO_AlUMNO
{El programa. dado como datos.!a matrícu~~ y ~alificaclones .?e un alumno; Impri-
me la matrícula, el promedro y aprobado o no aprobado , dependiendo si su 1 promed o fue mayor o 1gual que 6 o menor que 6, respectivamente}
1
Diagrama de: I'IUJO 2.20
Explicación de las variables
NUM:
Variable de tipo entera.
{MATes una va naDie de t1po entero. CAL!, CALZ, CAL3, CAL4, CALS y PRO son vara bies de ~po real}
Tabla 2 .12 NUMERO DE CORRIDA
1 leer MAT CAL! CALZ, CAL3, CAL4 y CALS
2 Hacer PRO 3 Sr PRO> 6
(CAL!
DATO NUM
RESULTADO
+ CALZ + CAL3 + CAL4 + CALS) 1 5 P0'3t1VO
entonces "Negativo·'
Escnbrr MAT. PRO, "APROBADO"
smo
-15
'NegativO
Escr brr MAT. PRO, 'NO APROBADO" {F n del cond CIOnal del paso 3}
'-----'
: Expresa valores que se imprimen Programa 2.20
P'roblema 2.5
~nstruya un diagrama de flujo tal que dado como dato un
POSITIVO_NEGATIVO_NULO
número entero, de·
ermme e lmpnma si el mismo es positivo, negativo o nulo.
Dato
NUM (va· bl na e entera que representa el número que se ingresa).
{El
~rograma dado como dato un nUmero entero, determtna 51 el
mismo es positivo, negativo o nulo}
Estructuras algorítmicas se¡
86
~
problemas resueltos
87
{NUM es una variable de tipo entero.}
Explicación de las variables
A:
Leer NUM 51 NUM > O
Variable de tipo entero.
entonces
Programa 2.21
Escribir "Positivo"
smo 2 1 51 NUM =O entonces
PAR _IMPAR_NULO {El programa dado como dato un número entero, determina 51 el mismo es par, Impar o nulo}
Escribir "Nulo"
smo
{A
Escribir "Negativo"
2.2 {Fin del condicional del paso 21} { Fin del condicional del paso 2}
es
una variable de tipo entero}
1 Leer A 2 51 A= O entonces Escnblr "Nulo" sino
2.1 51(-1 .. A) >O entonces
Problema 2 .6
Escribir "Par"
Dado un número entero A, haga un diagrama de flujo para determinar si el mismo es par, Impar o nulo.
Dato:
A (variable de tipo entero).
sino Escribir "'Impar"
2 2 {Fin del condicional del paso 2.1} 3. {Fin del condicional del paso 2}
Nota: Utilizamos la expresión (-1·· A) para establecer si el número es par o Impar. -1 elevado a un nú-
mero par; da un valor positivo. -1 etevado a un número Impar, da un valor negativo. La condición para establecer si el número es nulo, debe Ir al principio, porque de otra
forma 5I Ingresamos el número O
'--------+~
~
Dlogromo de ~lujo 2.21
(cero), daría como resuitndo al aplicar la expresión par Recor-
demos que todo número elevado a la cero, da 1
Problema 2. 7 Construya un diagrama de flujo tal que dado como datos de entrada tres números enteros, determine si los mismos están en orden creciente. Datos: A, B, C (variables de tipo entero. Los números son diferentes entre sO.
88 Problemas resueltos
69 Programa 2.22
ORDEN CRECIENTE {El programa dados como datos tres números enteros, determina si los mrsmos están en orden creciente} {A, By C son variables de tipo entero}
1 LeerA,ByC Z . SI A < B
entonces Z. l 5/ B < C
entonces Escribir "Los números están en orden creciente"
sino Escribir "Los números no están en orden creciente" 2 .2 {Fin del condicional del paso 2.1} Ol~rarn.
de !"luJO 2 22
sino Escribir "los números no están en orden creciente" 3. {Fin del ciclo del paso Z}
fxplícación de la• variable•. A 8yC
Vana bies de tipo entero.
f'roblema 2.8 A contmuaCJon presentamos el programa correspondiente.
En una tienda efectúan un descuento a los clientes dependiendo del monto de la compra. El descuento se efectúa con base en el siguiente criterio:
Si el monto es menor que $500 -
no hay descuento.
Si el monlo eslá comprendido entre $500 y $1 000 inclusive- 5% de descuento. Si el monto está comprendido entre $1 000 Y$7 000 inclusive - 11% de descuento. Si el monto está comprendido entre $7 000 Y$15 000 inclusive - 18% de descuento. Si el monto es mayor a $15 000- 25% de descuento. . 1 d do el monto de la compra de un Construya un diagrama de ftUJO ta que a cliente, determine lo que el mismo debe pagar. ta el monto de la compra). Dato· COMPRA (variable de tipo rea 1que represen
o
l,,,, '/1 '/1,¡,,
1
•
t1 l
,
' t,¡~f·r·t
1/ 1 ( J/ 1 j'f'(
,IJ'¡
1(//111!11
,,,,,, / 1
l1
1
1/ 1 1
ttl'/ 1 t/l'
J/1!'1'1
lfll¡fJ
1/1/IJ/1'/t
11•1
11
(IJ/'\I'f ' /
11'/ 1/f 1
{lf¡/',!'f 1f ' l ¡ l ¡ 1¡
,//111
/ 1
,¡
1 l¡/~1'1
jl¡f¡l¡
1
1/i/IJ//11
11•• ri'IV1/I'
''•11/t'/
(tC¡/-'IIf'(
IJ
1
l1
,/!JI/
1 1 1
1
J ,1¡1,1¡
,¡11¡/11'11/ 1/J/I¡(¡rl
11
1
ti l'f
1
¡fl
r r 1/ 1 t 1 ( t, 1/~l t'/'1¡ 1H¡ ( 1 1 1/~lf f'IJ
\.
1)
\ 1di '' '
Estructuras algorítmicas 5
~
93
problemas resueltos
Explicación de las variables
PREBAS: JMP: PRETOT: rroblema 2.9 debe pagar por los artículos se calcui . 1. puesto que se . t 1 . a me En un cierto pa1S e lm . s rimeros $20 no causan lmpues o, os Siguientes $2diante la siguiente regla lo p 1 esto el 40% de impuesto, pero SI el costo del O tienen el30% de impuestoty e r en lugar dei40% se cobra el 50 % . Pro. $500 en onces , - d t' ¡ dueto es mayor a · d flu· 0 que lea el costo bas1c0 e un ar 1cu o y calcule Diseñe un dlagram~ _e pr~cio básico+ impuesto). su precio total 1preCIO tota PREBAS (variable de tipo real que representa el precio básico del Pro.
Dato: dueto que se ingresa).
Variable de tipo reaL Variable de tipo reaL Almacena el impuesto del producto que se ingresa. Variable de tipo reaL Almacena el costo total del producto, es decir el costo básico más el impuesto.
A continuación en la siguiente tabla podemos observar el seguimiento del algoritmo para diferentes corridas. Tabla 2.14 NUMERO DE CORRIDA 1 2 3 4 6
s1no
PRETOT
IMP
95 95 17 ~3 169 76 ~o 21 777 25 29Q 92
20.27
75 68 17 33 128.40 27.90 527.50 217 80
5
fsrructura se!ectrva doble 5; enronces
PREBAS
o 41 36 2 37 249 75 77 .12
: Expresa valores que se imprimen.
IMPUESTO_ARTICULO {El programa dado como dato el precio básico de un articulo, calcula el Impuesto correspondiente del mismo teniendo en cuenta ciertos criterios) {PRUEBAS, IMP y PRETOT son variables de tipo real}
1 1
,.
~
~ ........ Z.Z4
¡+-•- - -
1 Leer PREBAS 2 51 PREBAS > 500 entonces Hacer IMP -
20 · 0.30 + (PREBAS
40) 'O 50
sino
2.1 51 PREBAS > 40 entonces Hacer IMP 20' 0.30 f. (PREBAS- 40) '040 sino 2 1 1 51 PREBAS > 20
entonces Hacer IMP SinO
(PREBAS
20) ' O 30
~..,tructura s algontmlc as se¡
-
~
95 problemas resueltos
Explicación de las variables
A. By C:
Variables de tipo entero. Tabla 2 . 15
RESULTADO ~e e!>
el mayor"
"Av B !>On 105 mayor~'"
rrobledlll 2.10
reales. identifique cuál es e l mayor. Considere
datos rres nume~os Desarrolle el d1agra m a de flUJO correspo Dado co~o ueden ser ¡gua1es. n. que Jos numeres P diente
Datos A. B.
48 17
22 45 17
15 45
17
'A~
~A. B
el mayor"
ve son
1gua1e5"
c=J :Expresa va lores que se impri me n .
e (variables de tipo real).
A continuación presentamos el diagrama de flujo e n lenguaje a lgorítm ico:
MAYOR_TRES_NUMEROS_COMPLEJO
{El programa, dados como datos tres números cuyos valores pueden ser Iguales, determina cuá l es el mayor o los mayores}
{A, B y C son variables de tipo real} Leer A, B, C Si A > B
entonces 21S/A > C
entonces Escribir "A es el mayor"
sino 2 . 1 1 51 A
e
entonces Escribir "A y C son los mayores • sino Escribir "Ces el mayor" 2 1.2 {Fin del condicional del paso 2.1 1} 2 2 {Fin del condicional del paso 2 1}
sino
............. us
2 3 51 A
B
E-structuras algorltmrca 5
~~~~-
96
97
Prot>lemas resueltos
Construya un diagrama de flujo que le permita calcular e imprimir el costo to· tal de una llamada.
ento~c;s A ;;- C 2 3· entonces
E.s.crt>~
A Y B son los mayores"
Datos: CLAVE, NUMIN
~;o:¡sA~c enro~~t>rr
A, 5
y e son los mayores"
·e
s-no escnbrr es el mayor" , {f n del condrcronal del paso 2 3 1 1} 23 - 2 . zj 1}
2 3 2 {F,.., de conCi cronal del paso
Donde:
CLAVE
es una variable entera que representa la clave de la zona geoo:ráfí· ca a la que se llamó. _,
NUMIN
es una variable entera que expresa la duración (en minutos) de la llamada.
0
~; 351B>C
ento~~~b r
Bes el mayor"
sno
Z3315>B~C
entonces
Escnbir By C son los mayores"
smo
Escnbir e es el mayor" 2 3 3 2 !F n de! cond,cronal del paso 2 3 3 1} ·,::,...ce condconal del paso 2 3.3}
12
Problema 2.11 El costo de las llamadas telefónicas internacionales depende de la zona geográh· ca en la que se encuentre el país destino y del número de minutos hablados. En~ siguiente tabla se presenta el costo del minuto por zona. A cada zona se le ha as<> ciado una clave Tabla 2 .16
CLAVr
zonA
PRECIO
.l
Ar'IP'rf.J~ f1r/.t""
2 22
.J
,.,.__. ,.,.,,
~
23 25 lO
4~
E ;moa
5
"""" ~~<.
ó ó 5
~"'
~
Diagrama de f lujo 2: .26
--9 -8 --~--------------------- "~Q,
.
Problemas resueltos
. , de las variables
ExphcaCion
CLAVE, NUMIN: COST
. bies de tipo entero. Van\t de tipo reaL Almacena el costo total d Vana e . . e la 11 macla telefomca. '·
En la tabla 2.17 podemos o
bservar el seguimiento del algoritmo Para ct·¡ I
99
problema 2.12 Escri~a un dia~rama de flujo que permita calcular lo que hay que a arle a un trabaJador temendo en cuenta su sueldo y las horas extras trabaj~d;s. Para el pago de horas extras se toma en cuenta la categoría del trabajador.
eren.
tes corridas.
Tabla 2.18 Tabla 2.17 RESULTADO
DATOS CLAVE
NUMIN
1
23
S
2
15
4
3
15
10
22
4
29
8
40
Cada trabajador puede tener como máximo 30 horas extras, si tienen más
S
18
12
54
sólo se les pagarán 30. A los trabajadores con categoría mayor a 4 no debemos pagarle horas extras.
30 8.8
Programa 2.26
LLAMADAS_ TELEFONICAS {El programa dados como dato la clave de la zona a la cual se llamó y el número de m nutos que duró la llamada, calcula el costo total de la mis· ma} {CLAVE y NUMII'! son vanables de tipo entero COST es una variable de tipo real} 1 Leer CLAVE y NUMIN 2. Si CLAVE 1gual 12 Hacer COST NUMIN • 2 NUMIN • 2.2 15 Hacer COST 18 Hacer COST NUMIN • 4.5 19 Nacer COST NUMIN • 3 5 23, 25 Hacer COST NUMIN • 6 29 Nacer COST _ NUMIN • S 3 {Fin del condiCional del paso 2 }
Escnb~r
PRECIO HORA EXTRA $30
NUMERO DE CORRIDA
: Expresa valores que se imprimen
4
1
CATEGORIA
"Costo total de la llamada". COST
2
$38
3
$50
'
$ 70
Datos: SUE, CATE, HE Donde:
SUE
es una variable real que representa el sueldo básico del trabajador. CATE es una variable de tipo entero que indica la categoría del trabajador (1 ~ CATE ~ 8). HE es una variable de tipo entero que representa las horas extras trabajadas por el trabajador.
Problemas resueltos
101 NUMERO DE CORRIDA
1 2 3 4 5 6 7
8 9 10
SUE 1350 2200 980 13200 5800 3350 2480
5125 8700 3200
Tabla 2 .1 9 DATOS CATE HE 1 25 2 38 1 15 8 22 5 17 3 49 2 14 4 3 6 21 3 8
RESULTADOS NSUE
PHE 30 38 30
o o
50 38 70
o 50
2100 3340 1430 13200 5800 4850 3012 5335 8700 3600
Programa 2 .27
SUELDO_ HORAS_EXTRAS
{El programa calcula lo que hay que pagarle a un trabajador ten1endo en cuenta su sueldo, horas extras y su categoría} CATE y HE son variables de tipo entera. SUE, PHE y NSUE son variables de tipo real}
~ .. ...,. ll1
l. Leer SUE, CATE y HE 2. 51 CATE Igual 1: Hacer PHE - - 30 2· Hacer PHE - - 38 3· Hacer PHE - - 50 4. Hacer PHE - - 70 De otra forma Hacer PHE - - O 3 {Fin del condicional del paso 2} 4 51 I IE > 30
entonces
fl
SUE CATE
Hacer NSUE - - SUE
+ 30 . PHE
11acer NSUE - - SUE {Fin del condicional del paso 4} ESCflblr NSUf
+ HE . PHE
sino 5 6
HE PHE NSUE
Problema 2.13 Construya un d i <~grama de flujo tal que dado como datos la matrícula de un alumno, l<1 C
t ,(\
:\d.¡,, t,,\ \\lt.1..l ., \\h't\\ 11 ,., ,, \'(,hh' t tlh-'thh' ,.\,, u,·nt,\ 1, 1 ., 1,,\ ~:~k h~ 11 \ 1\''IHI\U \1 l\1.\hh Hl,\ \ 1\\l 'l,\ \ l,\ 1 i'l\ 1,
\. 1 , 1
•\•1
11 q,.
t\1\
f,:wl
\ d,, f,,,ult.hl'
lO
r "'1 ' 11
¡,
1~ '' ,, \1
\,\1\,Ü•\,l,khp,,,.l\h't,\
~,
\W\
',,,,,,\•k \k h¡\1' \,,,k,,,, lk '''"h h'l.
1·11,,¡,,,
nh'th'' .,
.~r ·''
¡·¡;<)\1
\,\1\,\\•l,• "'' hp,, 1'1\h•,,, ,,,,\,\1-h· \k h\ 111 h'.l\
Nll~\1'"1\lll'f
\..lll'\r\ll'"'
,r
~\Al
1'1''•\'•'1''·1., .1,,, ..... ·-.~·
'"', ,1.h'""' ,.
,, ll{' ,, , ~· ,
11,1t , ,
\1 1'11\(',111' ,!\ 1 \L\\ ,11\tllllh' 1\1'h' H \,\'". ,l,h,•,t, "1,
ll\11'1\\!•11' ,t{'-i,tf,t,Hit,1,i IW ·,•·\
1
,
,
104 Problemas resueltos
105 .::., .. ,,
-- e;,\ h
. . . 8 5 entonces Cc\RR "Aceptodo
~0 .. \
'~T
d~l
pJSO 2 5}
Tabla 2.21
1
TIPO DE fMffMEDAD
C05TO/PACIENTE/DIA
1 .6
zo Diagrama de Flujo 2.2.9
presenta
d grama de flu¡o que calcule e impnma el costo total que re· e
TIPOENF EDAD. DIAS: CO TOT:
Datos TfPOENF EDAD OlAS Donde
TIPOENF EDAD es DIAS
Explicación de las variables
Variables de tipo entero. Variable de tipo real. Almacena el costo total por paciente.
entera representa el tipo de enfermedad del pa e ' d ca la edad d 1pac• nte nd ca e! numero d dta Q' e 1~"'"en
A continuacion en la tabla 2.22 podemos obser\'ar el seguimiento del algoritmo para difer('ntes corridas
1oe
3
40
16
Expresa valores qu
[
e se imprimen
programa 2.29
~05-;-1\l
----
atosla edad del pactente, el tipo de enfermedad {f programa dados como d taltzados. calcula el costo total por P'ldeCJaa 1 el núrn~ro d¡:; d,as ho5P' ntemaCión}
1 0 COSTOT es una vanable 'i' (T P0f1'1f, EDAD 1 DiAS son vana bies de t•po en er pr.¡r~ar¡
l 2
4
Estructuras algorítmicas repetitivas
..eer TIPOellf. EDAD 1 Olió 51 TIPOfrtf •gw/ OlAS . 2S 1 Harer COSTOT OlAS ' 16 Marer COSTOT DIIIS ' 20 Harer COSTOT DIIIS • 32 4 Harer C05TOT {" n tjPI rr1 f d r r)n;;¡l d~>l p"::~O 1¡ 51 fúAD « 14 1 EDI ú / 22 Pnton cPS Hcr er C05Tr;• - - r osroT · 1 10 lf n del cr;r d' r,r.rll dPI ~dYJ 4} '~rtr ~to ,, , •, rrJSTOf
3.1 Introducción Es muy comú n e ncontrar e n la práctica algoritmos cuyas operaciones se deben ejecu tar un nú me ro repetido de veces. Si bien las instrucciones son las mismas, los da tos sobre los que se opera varían. El conjunto de mstrucciones que se ejecuta repeti dam ente se llama ciclo
Todo ciclo debe terminar de ejecutarse luego de un número finito de veces, por lo que es necesario en cada iteración del mismo, evaluar las condiciones ne~ cesarías para decidir si se debe seguir ejecutando o si debe detenerse. En todo ciclo, sie mpre debe existir una condición de parada o fin de ciclo. En algunos algoritmos podemos establecer a priori que el ciclo se repetirá un número definido de veces. Es decir, el número de repeticiones no dependerá de las proposiciones dentro del ciclo. Llamaremos repetir a la estructura algorítmica repetitiva que se ejecuta un número definido de veces. . . , Por otra parte, en algunos algoritmos no podemos est?blecer a pnon el_ numero de veces que ha de ejecutarse el ciclo, sino que este numero dependera _de ~as proposiciones dentro del mismo. Llamaremos mientras a la estructura algontm1ca repetitiva que se ejecuta mientras la condición evaluada resulta verdadera
3.2 La estructura repetitiva repetir (fOR) . • t FOR es la estructura algorit· La estructura repetir conoc1da com~nmen e com 0 t : número definido de mica adecuada para uttli>ar en u~ Ciclo que se te¡~cu ~:~~~guaje> de programa· os veces. Lste tipo de estructura esta presente en
°
i T
•.
f1.¡rt•r J
11
r t
l
(~"JI"r•v>}
t11'11ti'J - - VtiO
1ru. dd <>• Ir,¡
r
..,._ . ...,.,
--·-··--·--""
VIWOOS 11 1 ontlnUn< l()n el llgUI~nte ejemplo·
EJemplo 3. 1 ü'¡"''"'Y" un diagrama de ftu}o tal que dado como datm loi1U8Idol da 111110 ~a,:;jlatl
e~"
·~ ~
Doto. SUE l. SUE2, SUE3, SlJ!4, SUS. SU!6. SU!7. SIJU, SU!9, BUllO
110 Donde
3 2 La e5tructura
El
1qu ""P' s ntan los sueldos;,
SUE;
com:spond1ente del problellla·
repetitiva~
fOR.
lll
Donde:
es una variable de tipo rea1 que fepresenra el sueldo del trabajador ll5i510).
7 y
S
1 "'"'
1
Estructuras algorltrnlcas re
112
P•ut,,,,
. ble de tipo real. Representa el sueldo del trab . aHdar demos observar el seguimiento del algorit 0 · 1 . En la si~uiente(~tbElP$ 500 . $890. $700, $950, $2 300, $1 6!{b $Para los s 1gu 1entes atas · • 1 80o
SUE:
:s.z
La estructura repetitiva~ (FOR)
Es una vana
1
-
$1 400, $760, $900
Tabla 3.1 1
1 2 3 4 5 6 7 8 9
/mCia el Ciclo - -
lO 11
fna za e Ciclo - -
SUE
o 1500 890 700 950 2300 1650 1800 1400 760 900
.
-
NOMINA 15002390 3090 4040 6340 7990 9790 11190 11950 12850
-
113 Observemos a continuación otro ejemplo.
Ejemplo 3.3 Escriba un diagrama de flujo tal que d d tenga el número de ceros que hay entrea otcom? datos N números enteros abes os numeras.
Donde:
N
es ~na variable de tipo entero que representa el número de datos que se mgresan.
NUM¡
es una variable de tipo entero que representa al número i (1 s, i S N).
: Expresa la cantidad que se imprime.
~ Nota:
ObServe e lector que cuando inicia el ciclo se lee el sueldo (SUE), se actualiza 1a n6m na (NOMINA) y se incrementa la variable 1 (contador del ciclo). Este •sel e ter o que utiliZaremos en todo el capítulo para la construcción de tablas
EstructuraRepeutrva Repetir
A continuación presentamos la solución del problema, en lenguaje algorítmico. Programa 3.2
NOMINA {El programa calcula el total de la nómina de un grupo de 10 empleados}
{1 es una vanable de t1po entero. SUE y NOMINA son variables de tipO real}
1 Hacer NOMINA - - O e 1 - - 1 2 Repetir con 1 desde 1 hasta 1o Leer SUE Hacer NOMINA - - NOMINA + SUE e 1 - - 1 + 1 3 {Fin del ciclo del paso 2} 4 Escribir NOMINA
·
Datos: N, NUMt, NUM2, ... , NUMN
Diagrama de Flujo 3.4
114 115
fMpliciCión de las variables
V..naldlpo
NyNUM
11:1
r OH tR Aconunua g)ntm
n n la tgU11. ntc t,lbla pm.Jtlmo~ ohservclr el seguimiento del al
,1 1 2
Tabla 3.2 N
IZ
cuecel'l o 1
6 1
2
•
10
·--'+-o
~
·~o
:2 1~
,~
estructura repetitiva mientras (WHIL.E)
pongamos que tenemos que obtener el total de una serie de gastos, pero n? sabemos exactamente cuántos son; o cuando tenemos que sacar el promedto de calificaciones de un examen, pero no sabemos precisamente cuántos alumnos lo aplicaron. Tenemos que sumar las calificaciones e ir contando el número de alum· nos, esto con el fin de poder obtener posteriormente el promedio. El ciclo se repite mientras tengamos calificaciones de alumnos. En la estructura mientras se distinguen dos partes:
o
21 41
ll
J
del ciclo. Ejemplos en la vida cotidiana encontramos muchos. Por ejemplo, su-
~1
6
1
CUtCXK - - CUECER • 1
La es tru ctura algorítmica mientras, comúnmente conocida como while es la es· tructura adecuada para utilizar en un ciclo cuando no sabemos el númdro de veces que éste se ha de repetir. Dicho número depende de las proposiciones dentro
11 22
~
tlo~«·t
O
42 {flnd~'>lcondlclonaldelptl504.1} tlacNI--1 t 1 5 fin dPI ciclO del P•l50 4 6 E>
,3.3 La
!---''Nüil" .:__ 18
~
4
-
l
4 1 51 IIUM
• Ciclo: Conjunto de instrucciones que se ejecutarán repetidamente. Condición de terminación: La evaluación de esta condición permite decidir cuándo finalizará la ejecución del ciclo. La condición se evalúa al inicio
del mismo.
Exprna el ve~lor que se impnme.
El diagrama de flujo de la estructura algoritmica mientras es el siguiente: f'los¡lama 3.3
l
Dond<'
PI
La proposición inicial, debe tener un valor verdadero iniclalmente.
Si el v,,lor de PI es falso. entonces el ciclo no se e¡ecuta
'• .
116
.. ' lL (' '" U 1 • ltJra re
~ hJ n
cw,
!)
117
fJemplo 3.4
')upnn!}a~os que debemos obtener la sumarle 1 .,..1Urr10 vtaj(!. pero n(J e. ben,oc: exact.Jn.enter• 6 vsgastc)<;que h~elmr}sen nu
$..,dosenfrJrma
paros· GASTO¡,
( jASTO,
J
ntt.,.'ifld?rtm Lostidtr,
(;A~l
es una varia.OI~ de tipo real que representa el gasto número i.
A continuación presentamos la solución del problema
---··
Debe CIJibr tambotn , enunciado dentro del ciclo que afecte la con<: "lé 1*" ..-que ado"' e,ecute nldefímdamente
En ~onguato algori!rru
.,
1" - - Pr0(l051(oó
")UMQI\~
t'')UIIf!V
t'~tJnoK~>r
ÑIJI'I\uldlfdotlv.l~~
OA~ro
r
Uf'WIY•Wit*cMapo,...
"'\11601'
t:fl" pl'lflWflliKturl debl'., -a.
c:.s.
..
di et'IIOntftetadowdiWI$t
t
Vlne:r~o
Estructuras algorít
118 ~ Nota:
micas rep
Observe el lector que en este tipo de problemas deberemos reall ras, una antes de rnlclar el ciclo y otra antes de finalizar el
E.:t!t¡,¡~·
mlsm~rdos¡ectu.
·
3.3 La estructura repetitiva mientras (WHILE)
Datos: NUM1, NUM 2, NUM3,... , _ 1 (NUM·1 representa el número posif
119 . E . es una variables de r 1hn de datos está dado ~~r ~~\ero que
IVO l.
En la siguiente tabla podemos observar el seguimiento del algar¡ siguientes datos (GASTO): $2,528, $3,500, $1,600, $1,850, $15o',
~ Para1~
0
Tabla 3.3 SUMGAS
GASTO
o
2528 3500 1600 1850 150 1
lnrcraeiCiclo-
2528
6028 7628 9478 9628
Finaliza el Ciclo -
-
-
: Expresa el valor que se imprime Programa 3 .5 SUMA_ GAS TOS {El programa obtiene el total de gastos de un viaje} {Gasto Y SUMGAS son variables de tipo real} Diagrama de flujo 3 . 7
1 Hacer SUMGAS - - O 2 Leer GASTO
3 Mientras GASTO < > -1 Repetir Hacer SUMGAS - - SUMGAS Leer GASTO 4. {Fin del ciclo del paso 3} 5. Escribir SUMGAS
+ GASTO
Explicación de las variables NUM : CUB :
Variable de tipo entero. Variable de tipo real. Almacena el cubo del número que se ingr"'
En la siguiente tabla podemos observar el seguimiento del diagrama de flujo. Observemos a continuación otro ejemplo.
Ejemplo 3.5 Escriba un diagrama de fl . silí· UJob tal que dado un grupo de número naturales po a e 1cu o de estos números.
vos, calcule e imprim
120
NUI'I
'
aecdo -
J_ '-----
rroblema5 1L''>llcltos
r - Tabla5A
Expresa va1ore
121
CUB
Problemas resueltos
D
125
-7
_2_1?!__
48
~4~
18
110""92
27
5852
94
19685
62
830584
114
238328
1
1481544
s que se imprimen.
problema 3.1 Escriba un diagrama de flujo tal que dado como datos 270 numeres enteros. ob·
tenga la suma de los números impares y el promedio de los numeras parl!s.
Datos: NUMt , NUM2, .... NUM270 Donde: NUM¡
es una variable de tipo entero que representa el numero entero i que se ingresa (1 S i S 270).
Programa 3.6
e e bO de un grupo de numeras enteros positivos que se
e;::.tru<.turi!Rt'JX'\1\IV<'I f'le{l('ttr
Acontmuac16n pr te como elementos de a más se utdJZan en m algontmo
+
r1r1) Dlagr1ma de P'lujo
,_e
122 problema-s re'5m~Jto~
Explicación de las variables 1 Variable .!e lllX' ~ .,,,, Repre>cnL~ ;a var'ahle de contr Nl'M· VanaHe d t; e•, .>. , • oldeicicto SUMPAR y v :rr 3 ¡.•y; d< ~ rr~l. Acurm;.,dn los num~ros pares e •m SUMIMP· P""t ~-":~ Pares.,.,_ CUEPAR V • ah'e é upc c•:CU. (¡.enta e! numero de números PROPAR· \' · a 'e de· ¡x; · .:•J Almac<'·m el promedio de Jos num Pares. eros pares_
123
E.- :-·Jrl''Vope··.., f"aie""'t;;a
A contin· .a~ n ¡:-"eS<-.~""'' el díagra..,a de flujo en lenguaje algo ntmico_ . Programa 3.7
~ ~-- ~-::-
~:¿~-: N
1..: '.;.. ·~ 2"' · '_-t"')S en":eros. ob:en;
f' _ •
....
!PAR • • •
~ ~I'T ~de
:>s numeres
.,:,¿ :.5n--~~P3Te'S}
'-' ·~ '!"
de • ;,~ .,te, e SJMPAR SLM'"1P y PROPAR son
~~~~--e-
,. ':' e-·, -~""PS .... '•-...,
>
t:
Diagrama de f"luJO ~.0
Explicación de la• variables Variable de tipo entero. Se utiliza para incrementar el valor de los tl?rminos de la serie.
SUMSER
Problema 3.1 Escriba un dragrama de fl o 9Utente serie J que obtenga la suma e tmpnm81oslérminosde:J'
2. 5. 7. 10. 12. 15 17.
.180()
Variable de tipo entero. Acumula los términos de la serie.
rz·
Variable de tipo caracter. Es una variable auxiliar que se ut~0 ra indicar si al siguiente término de la serie hay que sumar e A · 1 nguaje algorltmico continuación presentamos el diagrama de flu¡o en e IJAND
·
Estructuras algorit
124
mlca5 rep
etltJ~,¡as
problemas resueltos
rrograma 3 .8
125
5UMA_E_IMPRIME_5ERIE {El programa
1mp~me y suma los termines de una serie}
{! y 5UM5ER son vana bies de
~po entero.
BAND es una variable de tipo caracter}
1 Hacer 5U~\5ER - - O BAND - - ' T ' e 1 - - 2 2 M entras 0 S 1800) Repe~r Hacer 5UM5ER - - 5UM5ER
Escnb r 2 1 S BAND =
+1
T
entonces
Hacer BAND - - ' F ' e 1 - - 1 + 3
sno
Hacer BAND - - ' T ' e 1 - - 1 + 2
2 2 {F" del cond cional del paso 2 1} 3 {f"Oe cclode pasoZ} 4 ESC"D r 5uM5ER
Yroblema 3.3 Escriba un diagrama de flujo que lea un número entero N y calcule el resultado de la siguiente serie:
Diagra ma de Flujo 3.10
1
1 -
1
1
Z + 3- 4
1
+···± N
Datos: N {variable de tipo entero que representa el númer; de términos de !ase· ne).
Explicación de las variables Variable de tipo entero. Representa la variable de control del ciclo.
1:
N: SERIE:
Variable de tipo entero. Variable de tipo reaL Acumula el resultado de los términos de la
BAND:
serie.
Variable de tipo caracter. Es una variable auxiliar que nos ayuda a determinar si debemos sumar o restar el término de \a serie.
A continuación en la siguiente tabla podemos observar el comportamiento del algoritmo.
u•
" .,.. ..
THII 5.5 IIMD
10-
,. ... ... ....,. T
'1'
l"lndlfOdO-
10
• • • • · Etcpaa valora que se Imprimen.
~'·'
.,.·r· ...
5r"~
0'
o 8~33 o ,833 o 7833 06166
o 7'9Ll 0.6344
Si el sueldo es Inferior a $1 000 SI el sueldo es mayor o Igual a $1 000
117 Aumemo¡ 5.._ : Aumento 12%
Imprima el sueldo nuevo del lrab )ad considerando este nuevo aumento. a or Yel total de n6rniJIII do la .....,...,
paros: SUEt. SUE2, ... , -1 Donde: SU El
es una variable de tipo real qu l. El fin de datos se expresa co':,'!eoentaol-lclodol........,
128 problernos resueltos
lZ9
EKplicación de las variables
NOM
3 1 51 SUE < 1000 entonces Hacer NSUE - - SUE · US
Vanable de ' res
SUE NSUE
A connn,.ac
sino
¡:, presa el nu~vo sueldo del traba· d
Ja or.
podemos observar el seguimiento d 1 e algon¡.
m o. 4
Tabla 3.6 NOI'I
SUE
s.
Hacer NSUE - - SUE · l.!Z 3 .2 {Fin del condicional del paso 3 .1} Hacer NOM - - NOM + NSUE Escribir NSUE Leer SUE {Fin del ciclo del paso 3} Escribir NOM
NSUE
rroblema 3.5 Dado N números enteros como dato haga un diagrama de flujo que: a} Obtenga cuántos números leídos fueron mayores que cero.
b) Calcule el promedio de los números positivos. e) Obtenga el promedio de todos los números.
Datos: N, NUM1, NUM2 ..... NUMN
Donde:
es qüe se 1mpnmen l'rognlma 3 .1 o
N
es una variable de tipo entero que representa el numero de datos que vamos a ingresar.
NUMt
una variable de tipo entero que representa el numero i que se mgrrsa (1 S i <:; N).
t'S
130 probe
tf"J' r· -,ut'lfl"
NUM pROCIN pROf'OS
l!H
Vmiuble de hp() ent~ro
Vanahle mmo11.
de tipo real Almacen¡¡ el Pmmed
Vanable hVO$.
de tipo real Almacena el prome~
A coniJ!1UilCión en Id $Íguiente tabla
~oritmo
)del IC
N zo. 1
--
'-';~~
--::-
NUM
~--
._
. -·
r;-- ·--;;;-- ,-
----
'"
¡z
11
1~
14
..:J
PI'\OGfN
PI'\OPQ~
,-----
---
,- r----
z ~-
11
"" " "" ~
1
24
102
lO
126
11
1Z9
12
-
10 20 ~In <:1(': (u Jo - -
Dt.gr.ma 6e P'Jujo 5.12
expliac16n de las variables
1
d 1c c~
/· Variable de tipo entero. Representa la vana . bl e de..control e SUMPOS: Variable de tipo real. Acumula los números pos¡hvo:.;n positiv<* SUMOTR: Variable de tipo real. Acumula los números que ~? s CUEPOS: Var~able de tipo entero. Cuenta los números positiVO · N: Variable de tipo entero.
Z1
~-
--- r------
o
l7
'"
~UMOll'\
,., --
r---.o'
" "'
5UM!05 CU!_P05l
o
~
--
1
o_
;¡
p.r-
10
Pod~mo¡¡ otncrvilor el !CWJimtentorlel Zll labta:S.7
In
eoera¡ ~e os J 9 de'"'"""'""''"' pe
0
16
'~
-
...Y.
-
~
t: -structur as algoritrnlca ~ rePt!:t
132 Progn~m•
3.11
Pl'\OMEDIO NUMEROS
--
•.El progrJrr'ia dado N "'Umf"n1~ enteros com1.. O:::.Jto. obtiene el número de n .. f"l postttvO"'\, el pro~edio de vs numero~ po 1t1vos Y el promed10 de tod~-. ~-nu~Dt.
~
~
{ . C.J~PO~. ~UM y N "'" variables de tipo entero 5UMP05. 5UMOTR. PROG~~
~~~~-~~-}
.
t'Jcer 5U"\P05 - - 0. CUEP05 - - O y 5UMOTR - - O Leer N l')cer - - 1 4 R.epetir con 1 Jesde 1 hasta N
Leer
NU~I
4.i.SI"'UM>O
entonces '1acer SUMI'OS - - SUMPOS t NUM y CUEPOS - - CUEPOS + 1 51"0 ~xr•
SUMOTR - - SUMOTR t NUM f n de: condtuonal del paso 4 1l -- t 1 (F.., oc: ctek> del paso 4t "a<.er i400EN - - (SUMPOS + SUMOTR)/N y PROPOS - - SUMPOS/CUEPOS Escnt>;· C~EPOS PROPOS y PROOEN 4 2.
í
l
•·~e"'l
~
l'roblema 3.6 Construya un diagrama de flujo tal que dado N números enteros como dato. cal cu 1e el mayor y el menor de estos números.
Datos N. NUM 1, NUM 2, •
.,
NUMN
Donde·
N
de tipo entero que indica el número de enterO' qe~eusna.variable e mgresan.
NUM,
es una variable de f · e~ ingresa(! <; Nitpo entero que representa el número 1 qu · 5
1
Diagrama de r'lujo 5.1.5
1 4 ~xpll 1
Ion de lu varla~IE:s
135
Programa 3.12 •IAYOK y MENOR
'IM .Ji'\\
{t:.l vm
'E ' "
-.,,m var1Jble5 d(
N
.,umen .. r· ·en
t.tpo entero. '1AY .¡ Mft• ..~ r'
&J J('
\i-..
ble
:>e ·ee t 1-' "r •
JLer MAY - - 10(' 000 y '~EN - - lOO OC': Lf.·erN Hac. ... r - - • Rc~t/1 on de-->dP 1 ha~ta N Lcerf"'L'M 4 . 1 '51 NUM
4 2 ,f•n 4
4
MAY
ertonce-s
t'xe,MAY - - ~LM ("el c.'n
'>
CjJ "1UM
t
'1aLer MFN - - NUM {i - dC'' 1..C' ·dtCIC""ll c:tel pa50 '1a
~E"1
t
ertof'.:ec. Q
3.
{ 111
..:el e ..:.le ..:e':"" -")t 4} fi r•cnblr MAY 1 'IE1 "i
Problema 3. 7 l',.. \ ..·ndt>dor ha hf'cho una :<.t>ni.' dt> \ l:'ntas y dt-s,ca ror.ocer 3Q:.1E' as dr :200 o :nrno:', ias :navorr:' a S200 p.?ro ~nfenores a $400. ~- pJ numerode\'er:tasde; o ~llpi':ion:·:-; a tal cantidad_ Haga un dlagrama de flu;o Ql.ie leproporr ~ ai .. en· d~ dor c.':-'ta mtormacion despuc's de.• haber !~ido !os datos de entrada. [\:.t ..'~
:\. \ ·..
"~··
. \\
!Nnde·
1'\ md ~. flu¡o n lcngu , algon tm •
\'
,., unu \ unable de tipo entero que repres<'Tlta •· del wndcdor. > una vanable de tipo real qu< 1 - 1
e,.l>lkacion de les 11arMibles
H1 ~lE 1
, G{?,
""'
.W-,.,..,...
Vanable de tipo entero. Repeslna .......... conaddd Vanables de tipo entero. Acumulan ~ • a .a$400 ~· ....,...
136 probler11
as resueltos
137 12 IniCIO del (IC
J
--
E"l::rt.Jctura Rt"'"'!etLtJva Repet¡r
fin del Ciclo
--
10 11 12 13 14020
: Expresa valores que se imprimen. Programa 3.13
~~ENDEDOR
1
{El programa dada Información sobre las ventas que hiZo un vendedor obtiene cuantas ventas fueron chicas. medianas y grandes} {1, CHI, MED, GRA y N son variables de tipo entero. V es una variable de tipo rea!}
Hacer CHI - - O, MED - - O y GRA - - O Leer N Hacer 1 - - 1 Repetir con 1 desde hasta N Leer V 4.1 51 V < 200
entonces Hacer CHI - - CHI
+1
SinO
4 1 1 Sr V < 400
entonces Hacer MED - - MED t 1 ~ .. l'tu)o314
N: Variable de tipo entero. V: Vanable de tipo real.
Acontinuadón en la tabla 3. 9. podemos observar el seguimiento del algoriUJ1C
SinO
6
Hacer GRA - - GRA 4 1 2 {fin del condrcional del paso 4 1 1l 4 2 {F1n del condicional del paso 4 1} Hacer 1 - - 1 + 1 {Fin del Ciclo del paso 4} E'crib¡r CHI ..
+l
~M~E~D~y~G~R~A~------------------
141
140 Programa 3.14
---------ULAM {El programa. dado un entero pos1t1vo. obtiene e Imprime la sucesión de ULAM¡ {NUM es una variable de t1p0 entero} Leer NUM 51 NUM > O
entonces
2 1 M1entras (NUM < > 1) Repetir Escnblr NUM 2 1 1 5, (-1 · • NUM) > O
entonces Hacer NUM
NUM DIV 2
Hacer NUM
NUM. 3
SinO
+
l
2 1 2 {F1n del condicional del paso 2 1 l} 2 2 {F n del c1clo del paso 21} Escnb~r
sno
Diagrama de flujo 3 16
NUM
Escnblf " NUM t1ene que ser un entero positivo"
Explicación de las variables 1: Variable de tipo entero. Representa la variable de control del ciclo
N: SERIE:
3 {F n del cond oonal del paso 2}
Variable de tipo entero. Variable de tipo real. Es un acumulador Acumula los resultados de cada término, obteniendo finalmente el resultado de la serie.
A continuación en la tabla 3.11 podemos observar el seguimiento del algoritmo.
Problema 3.9 Escriba un diagrama de flujo que lea un número entero
N y calcule la suma de la
1abla 3.11 SERIE M
1 1
SJgu1ente serie:
1' + 2' + 3' +
N"
lnlcto del Ciclo -
8
5
5
Dato:
•5
N (variable de tipo entero que representa el número de términos de la se· ne).
6 7 8
g ftn del (lelo -
[
o 1
2
: Expresa el valor que se imprime.
32 2BB ..,4\'j
W069 87~b12
17~~
142 143
Programa 3.1!1
f~ pti caci 6n de las variables
1:
'JERit
o ntero '5ene es un,l varl~lbiP <1P llpo rPal}
{1 y N
PHI:
? L er N t1 e
.
do. NormHimcmte se iniciolizu en t ~ Vc.tfli:l~le d<~ CQ~tro_l del ci puehlo que exic;ten dos asignacione'- e e:~~ Ci:lsa v~ IOltl~lhZ CJI comif.'nzo del cidQ
Vt-lTitlble de lipo (•ntero Representa di
que hay que sumar
.
pa~a obtener el si~~;;e,ro d_e los dos núml:!~os n e numero de \¡1 serw ¡,¡
1 HK r ~
VcWiabll' ele tipo entero. H~pre~l:!nta 1 _
SEC.
Varidble de tipo entero. Representa al segundo de los do~ núme r?s que hay Ql.te sumar para obtener el siguiente número d ¡- -_ ne. e u c,t:
SIG :
Vc.uiable_ de 1ipo entero. Hepr(:!senla el siguiente número de \aserie y se obl1ene como la suma de (PHI + SEG)
1--1
4
1 1 l
5 6
En la siguiente tabla podemos observar el seguimiento del algoritmo. Consideremos ildemás que en lugar de imprimir el término 680, calcularemos el término nú-
Problema 3. 1o
mero
7.
---,
Hoga un d1. grama de flujo que calcule el término número 180 de la secuen FlBONACCI Recuerde que los dos primeros números de la serie son Oy 1. tose calcula como la suma de los dos números inmediatos que le preceden.
Tabla 3.12
Elr~~~
EJemplo de la sene O.
l. !, 2. 3, 5, 8, 13, 21. 34, 55 ..
IniciO del Ciclo - -
~In
E trun 1rd
f~
f~t>(J('IIf
trtrv<:~
O
SIG
1
PRI
SEG
'
o
1
4
l
l
l
S
1
2
2
ó
2
1
'
' '
dt>l Ciclo--
:Expresa e\ valor que se imprime.
B
S
B
'
S
®
f'5tluctur
144 l'logtalM 3.16
145
f
z.
....---..."\ ! - ~e :a secuenc 3 f BOf"iACCI ¡.
~-
3
>ee ""
~
.
t-~:ce- e;
...~e 3
'1 _ _
,...as!a 1.5:
ffi .. ~:.::
pc;;, - - s:G SEG - - StG e
l'roblema 3.11
l
1 St.lttJ
.S..~ -;~ ... ;.;e r. ...:!'la reoen!e elección hubo cuatro candidatos (con idemi:ccdo-es 1 ? 3 ~ Usted habrá de encon::rar, mediante un programa, el número e;
~ - ,..~·!x
VOTO
Doncle: rep-esenta tr. ,.O!ú para el candidato 1 3 ur. voto para el candidato~
>.... sux:::-. i!!':
')TQ VOT(h
N141 1
CN1DtDATO~
VOTO CANDtDATOl VOTO CANDIOAT03 VOTO CANDIOAT04 CN!TIDAD VOTANTb
O f>lagtama de flujo 3.18
Dortk VOTO
NQ+(""'~ ..
N11/X"'V1"1'10 POf\2 M2'5Uf<; ,'>) ~.3 - :.N"3~l'1 ... ::
""-OS CO!TeSpOrldien!e a cada candida:o y el porcentaje que obtuvo respecto, mal&! los W'Olantes E usuano tecleará los votos de manera desorganizada. ;a, ._,...,se 'lb- =en .a e ección, el ómal de datos está representado por un ce:: Ob:;= ~~.2 e;er.:p!G. as guiente Jsta .314221 ~ 111213140
'N<• ..
POR.! -
cs~na •arat • de t po en!eroqu e represer:ta el voto para uno<~<
los <1latrl) ~Z"didatos
Explicación de las variables CANJ , CAN2 , CAN3 , CAN4 :
VOTO SUMV·
!adores Acumulan el Variables de tipo real. Son acumu respecti\a· número de votos de los candidatos l. 2, 3. Y4 · mente. total de votos emitidos Variable de tipo entero. Variable de tipo real. Almacena e1 en la elección.
1 6 147
i\.:'T ....""' e::-~,~ ~o._~ ..'!~ je ~~o e,..-::e:; ,..2,.,_ PO:C. f'!'~q-. ..... , .... -... ..._-;"'i-+ ~L"'V"'•Y'v:: a:;,e~~et~ e:-> ,__
Hacer -
1...
c.;"''t.. - -
-\"'i - - O '- .'..."':: - -
~,.eer \ C"Tü ~ e 1t· ~ (\OTO . . _ '
O
~e.:;.e:
;: 1 5 \OTl"' _;va 1 : 3
Hacer
C~"'l
(-\:'..~_
ti:;~cert~"-:
(.:;"'::.+.,~_
tbce CAt-.3 .... .:-c.er (.;'.!
C-\'.3
-t-
e:·. . . ~-
;. : 1 '" n ._e c0nd e .:-n.:: je ;>a~ S . . ). Lee \O'T0 _ ."'n.Je cccde p.;:::..:-=.:?.._er50"'~\ - - C-\'1-t- t_.;:': .._ .::_.;':: fC"\1 \'-~'1 ~ . . m • ~2'2
6:~ ....
P0R: - -
\'-~'25..._,...\
POR- - -
\..._.:;:--, ..... ~ . . \ " . . . .:"..)
~
"'\OT('S~.,._.:;"-:;.
-\TC'~
.....'~2
(;'~
.:'"'=' --
'-"''5..5..
... .:"q.::._"''""\.
..
.:--q..._~ "''~''\_
..
,:'IR\.. .. ··•·-,:_
.._1!::::\.. ..... '\_!'
Problema 3.11
Dnc!
t">tru<..tur.l'> .llqorllrn 1c,1·•
148 NUMEMP, SUE1
'''!Jt·
...
bl d tipo enti:.'rO que rPpresenta PI nUmero d
es una ~ar:~ . ~ ~)pleado t { 1 1 d t'po 1 real que represento el sueldo del e
es uPa vartab 1e e ¡ {1 <; 1 • Nl.
f' obwrnd5 w!)uelto'!l
149
""tt.
N·
VoriabiP de tipo entero
rnp¡~~dc.
r~ur.tr:MP
Variable de t1po entero.
{>j
sur::
Variable de tipo real.
tvrASUf"
Variable de tipo real Almacena el dos. mdyor f>U~\do de lo, emp\e~
ANUM M
Variable de tipo entero. Almacena el ni tenga el mayor sueldo. .1m" ro d,d emph·ado que
En la tabla 3.14 pode~os .seguir el algoritmo pnm un valor de N que ingresaremos son los stgUJentes: IIUMtMP
sur
1235
2~80
12fi0
1400
1!>25
!M>O
1418
27?.0
f:JO
4120
17.7
¡':)~O
------,
Tabla 3 14
_j
lnrc.? del Ciclo - -
1
N
1
6
-
SUf
12~5
2380
3
1260
1400
1325
:",.1)()()
1418
2120
1650
4120
1717
l!J~O
7
L ---:J :Señala los valores que se imprimen Explicación de las variables
Variable de tipo entero. Representa la variable de control delciclo.
MASUr:
MAMUM
o
2
• '6 fin d~>l CIClo -
NUMEMP
6. I.Jl'i da!os
1380
~'~~
'lj()()
1'2~
4120
16:10
·'·
150
,.
f'Jogroml 3. ¡ 8
15 1 '¡e. ..
1G.
tero
~
&-
f 1 "
>o.•
;
M
¡~'Art,f'\
.o 4l}
l'roblema J . JJ ete u"" ógJ.CIJ de Arst:n~-'na ¡e levan Jos prrJr"1~dios IT'ensuales r n e laspn. · paJesregionescer€dl(:'r del país. Et.tsten ':Sreg:rr. ~. IJP.TE, <..E"ITWJ y 'iUk. Haga ur. nia3rnmadeff D-iG
a1 -~de la Cí::'Jii,¡
C..i:'ntrr)
t:'J cor ~"JU,-rr¡r llu•tJa €n .a reg1f.on sur 6 :.vfl ma
re.
Ti•>IO$ F? f¡ H.
rer~i!;trrJ'5 rtnudesd~:
l' SU,
f1onde
......
__ ___ _,
~'5,truc ltu.l
.\lqnrrtrntl ., IP.p,
152
\¡
lS
fKplicación de las variables \'ariabk~ di' tipO
ARNO.ARCEy ARSU MERSU MES:
RNO. RCE y RSU· PRORCE:
'-'o¡rama
del ocio. q¡,l!,y; Variables de tipo re,11 Acumul,lf\ l<~s lluv1," , •lid reg1ones norte, centro y sllf '""''lo¡ Vanable de t1po rt!al. Alman.>I'M l'l tnl'nor h'Histto 111 de la región .s~r.. C?mo se trc\td dt• lortllb~t\r un 111 1 1l'r¡S\Ja: principio se ~nlclallza con un V(11or muy Pll•v,uto n rno.e¿ Vanable de 11po entero. Almace11<1 el nws nm nw vtas en la reg1on sur "'"•111, 1/anables de tipo real Vaóable de tipo real Almacena el promt•tllo 1 lluvias caídas en la región centro. ' nu,,¡ d,, la¡
¡¡[lVII\'> (ll ptll'!i•\1!1•1 d.Jd.!lltfcillfllt
!tJII
f;illl
,¡lt•r.t~ ch•l\ljl''!lllllol. rr illlll .ti• Hlr > 11
{lyMI J,onV.!rl·l>ll>hl -. d•lli,"llll, t'l\01\t 1 ,on v.u .1 • , •., t , . 1''' re 1l) ,, iloi"''i\ltiiCl-O,i\l\<1 O,flll,ll fft•¡wfif 'on 1 dt•')r/t • 1 /t.J~,/.t 1.~ l•·•·r lUJO, 1(1 1 y 1(',11 1\t~·,¡¡ t
A!fJIJ - -
(~
11, llrtl •\l
lll
"""'' Ai(l"'
A continuación en la tabla 3.15 podemos observar el seguimiento dc•l ¡
~-
lQ
cntl!n.). H.,•pres,•nt,\ 1,\ v' \ri t ,11)\'dt·
H 111
l'l!ll) )(¡
IItH
1
t",,,o,, ,.,
,r¡ ¡¡,,,,.,Mti\JII - - t\,llyMt", {1111 dJ•I e r¡ndl< I(J!J,J! dt \¡ :.fJ ¿ l j
1 1 .,,
¿2
¡~·,u
Mrt~
tl.!fl•fl --111 {l1ncl1·! rlt lo dt·l p.l o,?} 1\.rrr I'I(OMI (JI() llr l
llt11(( 1\ l Mt., ", Mrl\'51) (;
:;1 (\ff,Jj() t'flft}/1(
,, 1 ,, 1\11111)
llr
::K)
Ct1fOfiCe")
r"Knbrr
LA l'lt(IIOI1 011 MI\VOI\ LLlJ\M
'5/r i(J 11
5C.tlblf LJII'ItQION ? (rtn rld condt tonal del
'!S/rt(J
fJ~'lll\t'ó;
nton
no
~
n
e
U\
111 rv
es
_-.a,=
~á;,
e á2 ;>t) emero Q"Je .a wr.!a
represe~ta
e t;r.o,
=
es ~ ~ po er..ero que indJCa .a ca!'.!idi;.: :l! .,.MioS -.'Ol:!rlos de Wl aeno tipo. en la venta
- la canlldad ~ el unporte total de los bolm
;tal del
rnadto
------
----~
156 157
Explicación de las variables
Programa 3.20
Variables de tipo entero. Acumulan el total de vendidos del hpo 1, 2, 3, 4 y 5, respectivarn enteboJe¡O, RECAU· Variable de tipo real. Acumula la recaudaci . · estadio. on lota) d~ Variables de tipo real. Pl. P2. P3. P4 yP5 CLAVEyCANT Variable de tipo entero. Variable de tipo real. Almacena el total vendido PRE: ven ta . en cada APJ. AP2. AP3. AP4 AP5 · Y
A continuación en la siguiente tabla, podemos observar e l seguirnient 0 diagrama de flu¡o. de) Tabla 3.16 PI
niCa el
e
P2
P3
P4
P5
CLAVE CANT
7 25 15- Bé 25 00 50 00 75 00
2
PRE
3
8
2
4 20000
--
APl AP2 AP3 AP4
o
3 47 40
o
o
o
ou
APS ~
~
3 8
247d"'
310~
7
35410
1
12 25000 87 00
2
8
5
3
126 40
z
7
225 00
3
14 110 60
4
1 350 00
z 4
11
5
69110 15
22
·:, 450.00
231 52~.00
1
lll 1116.75
(;:~;P:'1;~6P.r.] · Expresa cantidades que se 1mpnmen
!50ll0
6
rograma, dado los precios de distintas localidades 1 1 {;d~ una de ellas en una determinada venta, obtiene el t~~lsv~antidades vendidas de e tdades de boletos vendidos de cada localidad y 1 ndldo en esa venta, las can 1 a recaudación total del estadio} AP3. AP4. APS, CLAVE y CANT son variables d rz.PIr3.APZ. P4, PS yPRE son variables de tipo real} e tipo entero RECAU, PI, Hacer API RECAU -
O, APZ O
O, AP3 -
0. AP 4 _
O ,APS -
Leer p¡, PZ. P3, P4 y PS Leer CLAVE y CANT 4 Mientras (CLAVE < > - 1) y (CANT < > -!) Repetir 4 1 51 CLAVE Igual 1 Hacer PRE - - PI· CANT y API 2 Hacer PRE - - P2 ' CANT y AP2 3 Hacer PRE - - P3 • CANT y AP3 4 Hacer PRE - - P4 ' CANT y AP4 S Hacer PRE - - PS ' CANT y APS 4.2 {Fin del condicional del paso 4 1} Escribir CLAVE, CANT y PRE Hacer RECAU - - RECAU + PRE Leer CLAVE y CANT 5 {Fin del ciclo del paso 4} 6. Escribir "CANTIDAD BOLETOS TIPO! . ", APl, "CANTIDAD BOLETOS TIP02 ", AP2, " CANTIDAD BOLETOS TIP03 ", AP3, "CANTIDAD BOLETOS TIP04 ", AP4, " CANTIDAD BOLETOS TIPOS ", APS, " RECAUDACION DEL ESTADIO ", RECAU
O,y
AP! + CANT AP2 + CANT AP3 + CANT AP4 + CANT APS + CANT
!55l l0
33
!726 00
15
2!76 00 iO
41
1042 l0
115)10
22
g 173 80
l
81750 3
50 00
,,
604!0
18
E5TADI0 PRECIOS
270~ 286865
Problema 3.15 Haga un diagrama de flujo para calcular lo que hay que pagar por un conjunto de llamadas telefónicas. Por cada llamada se ingresa el tipo (Internacional, NaCional, Local) y la duración e n minutos. El criterio que se sigue para calcular el costo de cada llamada es el siguiente:
Internacional: Nacional:
3 primeros minutos $7 59 Cada minuto adicional $3.03 3 primeros minutos $1.20 Cada minuto adicional $0.48
r
1 6
ll
11
(11}1 '
X.
rltr,
'"'
l¡,,.,,,
!111
TIPO¡ [JUH¡ Tlf
l)ond
Ul
Ull rm'''·"; ,,u !n.· t 1 sprlln f 11adn cu ,f,, O 60
'"'"' IJah)s
IJ
'''-''l'• r
( -,
V;!IJl¡.tl' i~;•fiJ1?Ctllo)(!E'I
qUt't!);.pw<;.lf:l hprH\¡
ll
('!J LOO VcHh1hh• dr tipo l'!lh'IP qtn• indl! n\,l dtii.HitlJl
lur ~_¡~ 1' 51l.1
n 1y 1 si {'~ k•c,1l
J
n flp \
•lll,,rr¡,\d.i
lt
,,
Vun . .,hlt• de ''P'' eni~·H, 1\
Volll~lllh
nultul.-. et num,•ro dro 1'
fii'(J
dt•liprrr('n\ /\tullltllntlt Vru1.1hltth 11po 1 mnrh·r
pt/11
Vlll¡,,hlt• tl•·llpo vnh· 1 n
\_r(J~ , 1()
1, '/ N.h.N , 1~.1
lKIIf'
l
T
+
<
+,. o
JO•
.,.
1
:~:
...
!
ol
1 ,,
Dlttr•rn• d• rlujo l l l
'"l
,..
1
I
OCi\let
'•. 1 '/,1 ,lr•,N,Ih.l,'l , l.f,.l,~ 1.11,)(, 1
t
lO
DUR
,,
,.Jlll.!
l
!1
lrlhl,l ... , p!ll'di• llb<>(.'IVIlT l'lat·qtlllllll'llil 1 , lliyull'llh' f(IIJ)\111111 dl' ll•llll!lflrl'> th \nhtt•ntmo )••Hll el
11\r
["
n.nd
dnllamnda
Vtlll•lhh· d11 llpo u·,11 Al m.,, t'fl
TIPO
'.,
~~lrrdl!!
¡ n J, 1 ¡.¡qllil'llh'
P"''" r
159
\
ll.llll~ld·l ,..._ lllh'lll·H·Ion,1J, ' N'~~¡ l;r't.
i ., nwn1tos.
u tt
fJ~pliC.iilc16n de la~ Varl.,hle.s ( ·tJI NI/\
iii'Üi ll!¡
ff1 ~ r e
1
t'S
forla el\.
,, ,
ro•.
1 11
Estructuras algo 1 r trnlc:as
160
froble(l'la
Ptogra ma 3 .21
5
resueltos
bleJllil 3.16
161 r .f se ¡ene m or;n~c:ión sobre la!:. [:n de vinO, a lo largo de los ulhmos años H· canndnde, prod 1 tipo ·m prima lo siguiente: · ag'1 un d1i1r1rr1m 1lu 1'1< r1 d~ <~'la eule e 1 ~ r1 r ~ u¡r, qu~ 1 1
rrouna bodega
3
e ,_cs.t.:- ce ;.Jn conJunto de llamadas telefónicas}
a)
[:l total producido de cada tipo de vino (s 5 .d d . on. lipr") a Ir, l.w d 1
b) El total produc1 o
e vmo por año.
.. )
~
r.11
r 'flf¡r
1
Año en que se produjo la mayor cantidad d 1. e) tarnbién la cantidad de litros. e Jtmsde,JinrJd~lhr,t 1 2 lmt, mr ) Verificar si hubo algún año en el cual nn '" p od . d eh O añO, imprimirlo. T UJf-, e\·¡mrJ bp
-l) Repetir
Datos: N 3. 1 5 JGR.
">
5
-;,ce' COSTO - - 7
59~
Vu, V¡z, .. ,V1.s Vz.t, Vz.z ... ,Vz.s
((DUR-3) '3.03)
5 .... o
VN.l. VN.2.· .• VN5
-ace' cos-o - - 7 59 3 ... : . =,.... .:e cDf'C e ::-'"'a .3 ~ : "
3
s.
e_
>
Donde:
so
er-:yces -ace' COYO - - O :_ cJr,c<-cna 3 _.) • 3
-.:es 'lace cesTo
-- 1 2
'DU~
:5 ·o4
N
es una variable de tipo ent-ero q Je 'ep!~~ 6 ': sobre los que se obtendrá la ír:'0rmaorJn ?'!rl c-.
V¡.¡
es una variable de tiporealc.e .~~.u \a C.O" del tipo j, producidos en el á!lo ! ' i '
')¡V/
J~ dt
162
,.,,,
EY.~Iicori6n d<• 1•• v~n,>IJI•··, f \),J(]d•JI'• ,¡,, hJJfJ ''flh•(IJ J~''¡JW:J.•f11.,
,; 1 ¡_,t &;'~
,: , IJ.¡
'•·
dJ.:
1
,¡,,,.,d,•tr¡'J JIPIJI 'JJI'(}~ fJI'IJ'l ,'JWIJ1 •;'ffi'IJ', MI Jlf'()%
'Jrlrl•ll,\'''• flt• tiJI'l
rt••ll
/V)Jrr¡ i•lfl ,.¡ lr,1,, 1\l•\tflr.ft.t~· flJ'/Jfll''/
r!r,• ~·J¡ ]r,·, N •lfl'í. tlt~ \11, \Jf,'~'• l '/. ·~ t11 r, w ·"'' \},lfl•ll,J,.
t
th• hflfl ,,.,,¡
/\(\ Hn• ]., ),, 1"l!¡ 1)!\•ld
,,¡,, ''rl ,.t rrl•l1J''' •lr¡r, rh· ~.rr,,..lw.ul¡r¡
•Jt: ·m 1 ttpr, / t
l11.ñ "" n
1
¡itfr •, 1
f'11''1
1
,,
liA
tr,n
(111()
,¡ N 'JIJIV/11
, •• ,,, ,, lfllt t•llil•l Url'lrl\t;r rrhalrJ 1r¡lt.et'l"n \s! rz;;.¡, 1},lfl•lhh1 rh•l1V1 c•nt'•fl¡ 1\lW•l(i'f.,¡¡{:] •1 ¡t,~WfiW! [IH'~0ti1~11
roe 1J''' ¡,rr,dll'' \lm ch•l "'llrJ'IliJ.I"IZ '/.Jfl•lh\t• dP ~~~''' ''llh'HI ~~,J,JW ¡ol•flt,~ aJ 'J,~n.,\ ,\e d~· II!J'J t"nh·rrJ
V·Hirlh)t•
rt¡f
,¡,, llpt} W•11 /v.urnut., ~1 ll¡t,¡lr
\bl:
r!f
d1•l 't(. t,¡\r\-'•trl•
1 1 •V\hlf"¡p1 1 ll-
r\r¡ ''li "'"
f111f!
V
v,lffrlbh· d(•\IJ¡Ij r''•11
PrOjjromo 3 Z2
ro , l ptJ', 1 yt 4.
~~-''
164
,_
e-;uelt?~
04-
.. ~ 5P
4 • •
o "Po
pr ••xLjo v no 5}
165
T1?()3
Explicación de las variables
/:
Variable de tipo entero. Representa la variable de e externo. Se inicializa en 3 porque sabemos por de~i~\ro~ del cic¡ 0 numero 1 y los numeras pares (con excepción del 2) Clan que mas. y se incrementa de 2 en 2. no son P~l
SP·
Variable de tipo entero. Acumula el número de nú comprendidos entre 1 y M. meros Prilllas
M
Variable de tipo real.
J:
Variable de tipo entero. Representa la variable de co t 1 interno. Se inicializa en 3 y se incrementa de 2 en 2n ro del Ciclo
BAND:
Variable de tipo caracter. Se inicializa en verdadero ('V') s· 1 na de las divisiones que se realizan produce módulo ce · algu. ces toma el valor de falso ('F'). ro, enton.
A continuacion, presentamos el programa correspondiente. Programa 3.23
.1 1 51 (1 MOD J) ~o entonces Hacer BAND - - 'F' 5 1 z {Fin del condicional del paso 5 1 Hacer J J+2 1} (Fin del ciclo del paso 5.1} 52 51 (BAND ~'V') entonces 53 Escribir "Número primo", 1 Hacer5P-- 5P+1 (fin del condicional del paso 5.3) 54 Hacer 1- - 1+2 {Fin del ciclO del paso S} " " Escribe "ENTRE 1 Y M hay , SP, NUMEROS PRIMOS"
167
5
rroblerna 3.18 Los datos reunidos en la Secretaría de Industrias relacionado 1 d Nfábricas (N :S 1000) en cada uno de los meses del año ant:/ pro ucción de nan de la siguiente forma:
IOr, se proporc1o-
Datos: N FABRICA¡,MESu,MES1.2, .. ,MESu2 FABRICA2, MES2.1,MES2,2, .. ,MES2.12 {El programa dado un entero pos1tivo M, obt1ene e imprime la cantidad de números pr f'lOS comprend1dos entre 1 y M} {l. SP y J son var abes de t1po entero M es una vanable de tipo real BAND es una var able de tJpo caracter}
1 Hacerl--3ySP --o 2 Leer M 3 S1 M~ 1 entonces Hacer sP --sP + 1 Escr Mr Numero Pr mo· ·, 1 3 1 S1 M> 2 entonces Hacer SP - - SP + 1 Escr be Numero Pr mo •, 2 3 2 {f n del conde onal del paso 3 1} 4 {F n del condiCIOnal del paso 3} S M entras 1:S M Repetir Hacer BAND - ' V ' y J - - 3 S 1 M entras (J < (1 DIV 2)) y (BAND 'V') Repetlf
FABRICAN,MESN.J,MESN,2, .. ,MESN,l2 Donde:
N
FABRICA; MES 1.i
es una variable de tipo entero que indica el número de fábricas registradas en la Secretaría de Industrias (N ~ 100). es una variable de tipo entero que indica la clave que identifica a .. . la fábrica; (1 $ i S N). es una variable de tipo real que representa la produce~on de la fabrica i en el mes j (1 S i S N, 1 :S j ~ 12).
Haga un diagrama de flujo que calcule lo siguiente: a) Los totales anuales de producción de cada fábrica. b) Lacl d . d' t mbiéneltota\dela ave e la fábrica que más produjo en el ano. 1n 1car a Producción. e) lrnpr . . el mes de julio supe ra ITTllr las claves de las fábricas cuyas producetones en ron los $ 3 000 000.
168
tstructuras algorítmicas plef11a5 resueltoS
pro
169 ¡¡cación de las variables
E>
/:
Variable de tipo enter R troJ del ciclo externo. o. epresenta la variable de con-
MAYPRO:
Va;iable de tipo real. Almacena el mas produJo en el ano. Se utiliza total de\~ fábrica que m o, por eso se inicializa en cero.para locahzar un máxi-
CLAVE:
Variable de tipo entero Alm 1 que más dinero produj~ en !te=~~- a clave de la fábrica
J:
. Variable de tipo entero. Representa 1 troJ del ciclo interno. a vanable de con-
TOTANU: N y FABRICA: MES:
Variabl_" de tipo real. Acumula lo que venct·. 10 1 f"b .
en el ano.
a a nca
Variables de tipo entero. Variable de tipo real.
Programa 3.2<1
SECRETARIA_DE _INDUSTRIAS {El programa, dada cierta Información que recibe de la Secretaria de Industrias relacionado a la producción de N fábricas, obtiene Información estadística de la misma}
{1, CLAVE, J, N y FABRICA son variables de tipo entero MAYPRO, TOTANU y MES son variables de tipo real}
l. Hacer MAYPRO - - O 2. Leer N 3. Si N ,; 1000 entonces Hacer! - 3.1 Repetir con 1 desde 1 hasta N Leer FABRICA Hacer TOTANU - - O y J 1 3 1.1 Repetir con J desde 1 hasta 12 Leer MES Hacer TOTANU TOTANU
+ MES
170 -
3-
... 5
-3(:0::'..-
3
&
a
v ....¿c.e:f"
-::25()
3 l 1!.
- - - ..
:SC~;
.... ::::~e
--
-o-A L y CLAVE
_
.--..-cGcr:a :::e ::.ase 3 ~ 3}
..
=--:x: . . c:..cr S •
3
ene~
_;:,_ccc,.ce,.::,~¿ ;,~Jrces
= "'.:.
..
3 000 OOC e'"'
::: .. :::e ::..)rcc.ona G~
3 _. 2 3 , : _' 3 - 3 :;
_'>
:J-.~ ... :.. =-.;,5_;;::¡_C"'
A-
3 ... u.3
-o-A
fanrc.a
==·e, ..
=ABR CA
v
ac::~
2 =.-::e ceo ce )2503 :.;. :S.,:"'::. r """~~ 1<:::~. c;,.Je mas :)rooujo en e '"'
aro
c_.__,.o;ve
rroblema 3.19
Un número es perfecto si ·ja suma de sus divisores excepto el mismo es is-~' propio número·. Haga un diagrama de flujo para calcular e imprimir los nurc.n perfectos menores o iguales que N.
Dato:
N (variable de tipo entero que representa el límite de los números narcc"' enteros que se probarán para determinar si son perfectos).
Diasnma de flujo 3.Z6
Explicación de las variables 1: Es una variable de tipo entero. Rapre58Dia la variable de del ciclo externo. N: Variable de tipo entero. SVM: Variable de tipo enteJO. AoJmulalosdlvisOl"'JIIII
te probar si el rulmero es~ _ _._....,de tQIIIIOIMI J yarlable de tipo enteJO.~ la,._ mtemo.
E'-structuras -11goritrn¡ql'S
172
rePetiL,
A mt1 u c1ór
~ la
chanrara de qu¡o·
-
r_
t..!'
Tabla 3 .18
1
+1 +--
-+--
f-_~:.
SUM
J
o o
i 1
t
2
~
o
1
1
2
e
1
i
l
~
'
o
~
----
Programa 3.25
o
'1
1
2
'
•'
o
-
+ ,
'1
..
:
•-¡-
r~
L---¡
-
i
'
' 1' ;
¡.
i
.¡. 1
-------
---
... 1
' --+' .... +-- '
~
'f5UN NUMERO PrRrECTO
2
1
'~
6
1
¡.
HUMEROS_PERFECTOS {El programa dado un número entero N, obtiene e lmpnme 1 . comprendidOS entre 1 y N} os numeras perfectos {I,H,SUM y J son variables de ~po entero}
Leer N Hacerl -
1
Repetir con 1 desde 1 hasta N Hacer SUM - - O y J - - 1 3.1 Repetir con J desde 1 hasta (1 DIV 2) 3.1 1 51 (1 MOD J) = O entonces Hacer SUM - - SUM ·d 3 12 {Fin del condicional del paso 31 1) Hacer J - - Jc- 1 3 2 {Fin del ciclo del paso 31) 3.3 51 SUM = 1 entonces Escribir l. " Es un número perfecto 3 4 {Fin del condicional del paso 3 3}
2
¡ t
(IMPRESION)
'
~ ~
173
''
ienta d~
t
1mpnm n
~--
~-
Hacer 1- - 1 + 1 {Fin del ciclo del paso 3}
E"'ltructura~ de datos
registros
400 t1acer LUG 5Jf'l0
Hacer LUG ~,
~5'1S.75LUG>0
5
6
1
5. 6 {Fn del cond1oonal del paso 3 3 3 1 15 . 15 1 1
entonces Hacer DEPA[LUG). NUMEMP - - DEPA[LUG].NUMEMP
}
+1
SinO
3
Escribir "Error· Opto. no registrado" 3 3; 15 1 8 {F1n del cond1c1onal del paso 3 3 3 115. 1 7 }
problemas suplementarios
smo Escnblr "Error No hay espacios para altas"
3 3 3 1 !52 {F•n del condicional del paso 3 3 3 1 15 1} 3 3 3 1 16 {F n del cond1c1onal del paso 3.3.3 1 15} 3 3 3 2 (F n del cond1c1onal del paso 3 3 3 1} Escr b r ''Ingrese opoón de operaoón"
ceer OPCION
33~
"n de e el o del paso 3 3 3¡
Escr b r Datos actuaf1zados ttacer - - 1 ~ 3 5 Repe~r con desde 1 hasta NE Escr Dr
3 3 6 ., n
NomDre " EMPLE (1] NOM, Clave dpto " EMPLE[I] CLADEP. An~guedad ", EMPLE(Q AWI, Sueldo ", Ef1PLE (8 SUE
t1a(er - - 1 + 1 del QCIO del paSO 3 3 5}
t\3cerl - - 1
5 3 7 Repe~r co~ 1 desde 1 hasta 110 Ewlb r Clave , DEPA[I] CLADEP. Nom~re DEPA[I] 110f1DEP Total de emplead05 ", DEPA(I] NUMEMP Nr¡mbre del,efe ", ')EPA(I) NOMJEF
+ 1
Nar"r ~58
"
f
cJer
(j;
pa~~'l}
fS 1.1 Escriba un diagrama de flujo ta_l que dado como datos dos númerosreales calcule \a suma, resta y mulhphcac1on de dichos números. ' Datos:
N 1, N2 (variables de tipo real que representan los números reales).
rs
1.2 Construya un diagrama de flujo tal que dado el radio de un circulo, calcule e im· prima el area y la circunferencia. Dolo:
RADIO (variable de tipo real que representa el radio del circulo).
Consideraciones: • E\ ,íred de un Clfcu\o \a calculamos como
§_J-.·~1 f6nmula 6.1 • La circunferencia la calculao1o> como:
4
~rcunf ren
Problemas suplernentano:s
402
;'j
16
~ f.6
PS 1•3
.
esítan construir un programa tal que dado corn 0
..
' .
" la estab1hd~d econom¡ca que existe e
En una Casa de Camb~o nedólares convierta esa ca ntidad a pesos. Const dato una cantidad expresa a en d. nte . ruya el
[)3~ las agenciaS automotrices comie n un determinad . tpt1°.:~to para la comercialización de sunzanh~ ofrecer distint~ P~ts de Am~nc.a
diagrama de flujo correspon ¡e
,,gu'
.
variable real que representa una cantidad en dólares). CAN (
Datos
Consideraciones:
.
.
• Observe que el tipo de cambio actual es el Slgwente:
~3~~nte plan de financiación: dado el ~~e lculos. La empre~~ ~nes de fma 0 .
el35% de enganche y el resto en 18nto total del vehículo IG~ ofrece el pa9a;ruya e l diagrama de flujo que permita ~~nsualidades iguaie~ s~~e.nte debe con las mensualidades que debe pagar el e1'tenener cuál es elimporte dlnltereses che Y te. e engan~
MON (variable de tipo real que repre
ato: D
senta el precio del vehículo).
1 dólar - - 11 96 pesos
rs 1.1 PS 1.4
Una persona compró una estancia en un país suda_mericano. La ~xtensión de la estancia está especificada en acres. C~~stru~,a un d1agrama de fluJO tal que dado como dato la extensión del campo en acres , calcule e 1mpnma la extensión del
L misma empresa comercializadora de vehículos XGW 0 f -~ción hasta 36 meses con un enganche dei3 5'J1 e rece planes de finan~~ una tasa de interés globa l dell2%. Construyao~l~i~~;';;~~a~~ua~sa~dorestan obtener tanto el tmporte del enganche como el de las m l'dl dq e permita pagar el cliente. ensua' a es que debe
mismo en hectáreas.
Datos:
ECA (variable de tipo real que especifica la extensión del campo en acres).
Consideraciones:
Doto:
MON (variable de tipo real que representa el precio del vehículo).
rs 1.s
• 1 acre es igual a 4047 m2.
Construya un diagrama de flujo tal que dado el radio, la generatriz y la altura de un cono. calcule e imprima el área de la base, el área lateral, el área total y su volumen.
• 1 hectárea tiene 10000 m2.
Dotas:
Recuerde lo siguiente:
PS l.S Una persona invierte en un banco una determinada cantidad de dinero Y a una cierta tasa de interés mensual. Construya un diagrama de flujo que permita obtener el monto del dinero que obtendrá al finalizar el mes.
Datos: MD, TASA Donde:
RADIO, ALTU, GENE
Donde:
RADIO
es una variable de tipo real que representa el radio del cono.
ALTU es una variable de tipo real que representa la altura del cono. GENE es una variable de tipo real que representa la generatriz Consideraciones:
MD es una variable de tipo real que representa el monto del dinero que colocará la persona.
TASA es una variable de tipo real que señala la tasa de interés mensual.
• Un cono tiene la siguiente forma:
404
, El área de una esfera •a calculamos de
._., ap=nde; la s gutente fórm:..!a
¡¡¡¡
1 mA
:><,
~ IINJiO¿
fOOnula~ ~
f-63
, El volumen como: ,._
1101.=4 •• ~
-.. •IW:JC-;--
_¿
fónnuta6.8
fótmula 6 4
rs
1.10
C., truva un diagrama de Ou¡o tal que dado •omodalo lado de un hexaedro o Jbo
Datos ~.
• N!.. N
L\VIUI bler alqt.
r:epresentaelladodeun~ edrooc bo
ltf raCIOn S
• Un h
dr'l o cubo t :'le lB stgUient lonna
7
f'S 1.9
lcuee m
l ••
r-1
1\
t
1
V
40
.'
[ o rilnnula
((.
~ )
40) (r
9
.' rcl
fh' m t. tilnnulo !lll
v 1\rJ,,hlf• d1• llpo rt·d\ qu1• r.·pre ntlln las coordtnadaHn ,. 1 <'1'' d<• J,, X y 1., Y, del punto 1'1
XI y VI X~
-, 011
y y:¿
1111 v.,rr.,¡,¡,, tiP. tlp
"'' 1., X~ ltt y d••l ¡>111110 JYl
"" 11cu1 hle de hpo 11' 1que r pr <'JI'"'' 1 X y J,, Y, d,•J punto 1'3 rcl
n las cOOrdenadast!n ~1 t>J•'
ntan
coordenada m el
Co11 11/4-tw/ont' • l'c11tt
t
tlt ul,H , 1 r
l
dt un lrJaP uto dad
,,. 1111 , l.t , eIIIIJ)Om~ n. d,·lH~mn tph ar la
[NI!
1
f.
' l l\1'~ ~)t
'M Yl)t ''(\'y
r&muio e 14
1\
r~ 1
1
Problemas suplf:!'nentar
408
105
~ fónnuta 6.18
PS 1.13 Construya un diagrama de flujo tal que dado el perímetro de la base. el y la altura de un prisma pentagonal; calcule el área de la base. el área ~r;oterna 6rea total y el volumen. eral. el
• para calcula r el volumen hacemos: VOL=AB'ALQ
Datos: PER, APO. ALT
fónnuta 6.19
Donde: PER APO ALT
es una variable de tipo real que representa e l perímetro de la base es una variable de tipo real que representa el apotema es una variable de tipo real que expresa la altura del prisma pentagonal.
Conslderocfones: Un prisma pentagonal tiene la siguiente forma :
,.... 8 .4 Prl5ma Pentagonal
• Para calcular el área de la base, hacemos:
AB=~ 2
• Para calcular el ánla lamal, aplicamos la siguiente fórmula: 111. • Peft"III.T
q¡¡
410
I'S
·z.1
¡ , t,111 ,
• 11 ¡,
th un
ll\1
uln ,. ddnh'
t
nllln
tllthO mulo 1 n(u)
,.¡, nt hlllh• 1 1\ht• ,.¡,,,. 1111 V 1,¡ 1 0 .,.. 1111 ,¡,, 1
•·t'll(cJ)
tcl'\(u)
r'órmule CLl:O
( on bUyO tJn di-\• rlUllot d1 fhqu q\11' h• IJI'Itllllol lo lit Uloll lcl ltllllli'lllt• d¡• llll i\1\ con id r u1do qu ,. rmHKl' ,.¡ v.1hn dt•l 'tt'IIO Y dt•l rtl'>i'IHJ th•1 1nlo.,n 10 1{,.
~ulo.
Utc.•JCI
l!Y'-'
tJJ C05• 1111 ch•lw
t'l dlft'h'llh'
di' 0
ENO. ('O~I.NO (v.~tl,lhb el•• llpo " '••1)
[)oto
PS 2.2 U\ cot: n nte d un anguln ,, ch•fu·w como ,.¡ n)( ll'nh• ''llhi' ,.¡ rn'lt'no y,.¡ wnn d • di ho ngulo. col q (u) • [
/1, ll , ('y ll (v,~ri,,hl•• ' rl•• lipo I'IIIPro)
co"!t (u) •.c•n(u)
~órmulal!
21
Con truya un chrl!.Jr.nn.l d1• flujo qut• l1• ¡wnmlol
IICJios
Dato~
Sf NO. (O f.NO (v.m.1hl••"l'• hpo ro•,1l) .
Dolos
lliST, TII .M
Donde:
lliST
TII.M I'S 2.3 fl¡• ( 111'1110 dl'l H~~, lllfl do aqu llotclat~nt cuya compra ttiiUP"rlor 11$ G.,r,oo (),ulo eon1o cl.tln ,•l!!ulll lo de compra del cliente cal ule In que 11!1 mismo d••lw IMfJrH ll.u¡,, ,.¡ di~tqr.lllltl En un negocio de productOI P.l ( lft)domé tic o
de flujo corr pondlente Dato
PI 'l.7
r1plu t11111fl
OMPRA (variable de tipo real que represenln In<"'"'"'',.¡,., 1"•" 1'' 11"' el clienl )
'SUELDo
$10.000
• $10,000
SUIIIlO
'IU!Loo
$lf>,IKXI
$1'•· 1100
r l:il rn
412
ltr b ¡ dor
pnm elnuevo
Dat
UlLDO
bl d llpo
de upo entero)
ma den. ,o tal q~e dddO como te expre .ór 1
A
\
A 1'5 2.10
AtO)
A
rs
2.13 fJ•do>trP-5 numero redlesA ByC ldenbt¡que'Úal elm..;or Consllle•e•lm de s•mplihc
tables de ttpo entero)
~ujo corre pond lcntc
..J agrama den~ o td que dddo comr, dato~ A, H y N, wmpruebe t!e gu ente expr~w)n {
D
cl,,,,,. A y N, comprw•be lo
(\
A
B
'1
d Ou¡o que ¡:flmlta caJcuial el;
ar a bies de tiP'' e t~r·')
AB
PS 2 . 11 deO ¡otalqued doco od toY cal
X
A, B, C (van blesdellponall
V
t·~lre
'(x
ulllldode
deflx
n la expre
, z ¡8 414
¡¡otos:
OPCION.MED
oo~de:
oPCiON
es una variable de ti que se desea real~~tetoquetepr 1
l~rprima la clave tngresada y el resultado de la operación .
Data~
Para convertir d
m~esa
e
e cor~·•ersJón
2. 3.
Para convertir de pulgadas a milímet Para convertir de ya_rdas a metr~ TO\ e millas a k¡)· esunavariabledetiporeal omeuos
MED
OPERI, OPER2. CLAVE
sará para conversión.
Donde
que representa lamed 1d
a que s.e ingre·
consideraciones:
es una variable de tipo real que representa el primer operand OPERI es una variable de hpo real que expresa el segundo operandoo. OPER2 es una vanabfe de t1po caracter que representa el tipo de op. a.AVE
oón antmélica que se va a realizar.
era-
, pulgada equivale a 2540 milímetros 1 yarda eqUivale a O9144 metros , 1 milla equ1vale a 1 6093 kilómetros
J'S 1 .18 I'S 2.16
Con!li'U\13 un d1agrama de flujo tal que dado como datos el modelo de un vehículo y su preCIO, determine el valor final que debe pagar el comprador. El concesio'lartO tA hac~endo deKuentos teniendo en cuenta el modelo. con base en la sigu~en e tabla
Construya un diagra~a de flujo que le permita calcular e lmpnmll el costo !mal de una llamada telefomca. Para calcular el costo final se sgu ¡ ·nd· d t
guiente tabla :
-
Tabla 6.3 Df5CUfNTO
110DfLO
Clb.t~Tratl'
Datm
6'1',
r...avat~
~.,.
C"""Y
6%
Op<1-i\Wo
'1'4
ZONA
t:
AmefKo!J del Nort~
18 IQ
Zl z~
¿g
Donde
PRECIO
CLAVf
~~
MODELO, PRECIO
MODElO
1
una Vl!riablede hpo cadems de caract~re que repre ~nta el mo· deJo del vehlculo es na vartable de IJpo real que repre~ntd o>l prec1o del vo>hiculo
PS 1.17 Eacrlba d•-ama n 0 que perm la convertir de pulgada a milfmetros, de yardat aunrné-•· _._ de"-01 Y"" m ·- a k lómetros
Dato.. Donde
A~rlea
Central
Amenc.a dd !>ur furopa MIO Ah O
e OJ Jea oen a si-
Pf\fC.l0/1'\lMUTO delQ.enadelante
"te
22
ll 21 46 46
o ll 6
l'
CLAVE, NUMIN
CLAVE
"' ble eot~ra que rep
esunava .. a ca a la que se Jlam6
,~nta 1 a
eográh· clave de la zona g
ProO!t•m,vs ":!Uplementarlos
416
NUMIN
es li::1a vMtable entera qut' ~~gnifica la durLKion (en minutos) de llar. da
la
I'S 2.19 Dado tres dat'>S enter pc-·t:vos que ~epresentan las longitudes de los lados d un probable tri ng>.e: construya un dtagrama de flu¡o que determine efectiva~ mente los dat corresponden a un trtangulo. En caso de que st correspondan escnba51 el triángulo C' eqwlatero, ¡sosceles o escaleno. Calcule además su área ' 51 Constdere que es trángulo. st se cumple que la suma de los dos lados m · res es mayor que a del ado r1ayor Tome en cuenta además que el área d:';:'~ ttán!J1.o·" la caln; ~os como: [ AREA = (5
\5- A) (5 -
r ¡ ·1 lfed¡das de peso onza equtvale a 28.35 gramo 1 ¡libra equtvale a 045359 k\ s ton inglesa equivale a l.O;:amo 1 tonelada
ooto:
OPCION , SUBOPC, MED
oande:
oPCION
1: Para medidas de longtlud 2: Para medidas de volumen 3: Para medtdas de peso
B) (5- 0) "' 1
Fórmula 6.22
es una variable entera quer sea convertir. Se ingresa.. epresenta el tipo de med.lda que se de·
sUBOPC
zar. Se ingresa:
Dond
S representa la mitad de la suma de los lados A, B. C. Datos
es una variable de tipo caden d tro de un tipo de medida el tipa0 ~caracteres que representa den-
I'S 2.20 Escnba un dlil!f."''TU' de flujo que permita realtzar la conversión de pesos y medidas Co !ere las stguientes equivalencias.
V l. Pilra converltr de piesl a,metroil 5 V2; Para converl!r de eardas· a metros VJ: Par,, convertir de pintas a litros V4 !'mil converltr de galon a htros
Med das de ongttud
r '\r '' convertir de onzas a gramos b . kilogramos 1'2: p,u,, conwrtn de h ra> gak'a a toneladas l':l (',na con,·ertn de ton tn. . . ' medida que se mgresa real ~ue e,po>a a
'! !
M!D
un,, vanable de 11po
}Mfi\ COO\€f
~edtdas de uo urncn
1 pi equtval a f) 02832 metro-l 1 yarda equiiial a O 7646 r O' ~ pmta equtval a O 56826 tiro • galón eqLivale a 4 54609l 70
e conversión que se desea rea\i-
Ll: Para convertir de pulgadas a milimetros 12: Para convertir de yardas a metros L3: Para convertir de millas a kilómetros L4: Para convertir de pulgadas2 a centimetrosl LS : Para convertir de pies2 a metros' L6: Para convertir de yardas2 a metros2 L7: Para convertir de acres a hectáreas 2 L8 Para convertir de millas2 a kilómetros
A. B C vanabies de tipo entero que representan los lados del posible tiángu o
1 pulgada equrva e a 25.40 r-tlímetros 1 ~arda equtvale a O9144 metro 1 mtla equivale a 1 6093 ktlóretro 1 pul~ada equtvale a 6 452 centímetms2 1 pte equtva e a O09290 metroZ 1 yarda2 equtva e a O8361 metroZ 1 acre equivale a O404 7 hectárea 1 mtlla2 eqwvale <1 2 59 kil6retros2
·
iof'
I'S 1.11
eadema\ de otra ,n!o~ -denctal en la qu ~ econom'cos del n -
n una ~.-~• • 0 greso:, di ni' d ul' h ptl Itten ¿epende de os
'lla • n r !JI tra un al orta que
-~ :C.C~:
varia e de tyc. ~·?"::.
CAL:. CALz, CALJ.
:¡;:os
Co" ;a el día(Tama de flt:¡o y programa correspondiente que resuelv 1 problema Observe que a.s ca•egorias :-oayor a 4 "o ·enen descuento. ae
DatoS
¡)or.de
CALi
CATE MO iTO
Donde
CATE
es "" •an'>D e de :;po ePiero que representa la categoría del ~
(ffl0
•e
\anabJe de tipo real que señala !o que debe pagar el cliente obv:amePie sm considerar el descuento correspondiente).
éS'-'il
rs 3.3 ó;aiba un diagrama de flujo ral q;:e caco co::-.o é.c:os . " -.me cuantos de ellos son pares;· ruamo; t::'·?'l'",' · ~ =
N,, UM¡, UMz.
::J::ros
""'""" Ó
,.;u~l.
Donde:
NUMi
es una variable de tipo entero que repres
PS 3.4 !lasa un diagrama de flujo para obtener la tabla de multiplicar de un nu!l'.eroen· '.ero K, comenzando desde 1 Dat . 1 mero entero del cual qce· o. K (variable de tipo entero que representa e nu remos obtenerla tabla de multtplicar\.
l'S ~.. .3.5
~ba d' ·mero entero icl . un tagrama de flujo que lea un nu Siguiente sen e:
1 d0 ¿e
Nycalcule el resu ta
4ZO 1.
N !v rl 11 d llp<:
floto
~~
t~r q11• r
,,,\
11
P''' ,,.,,,,,,.¡,,,,,,11'111 '"' li'lltliiHI" 1¡" ¡, 1 ,,.
Urnd
N
11
111
LE 1
11
[)ato
N (Volriolhh• dt• lipo <•nlt•ro)
PS J .ll
AIIIJJI'IIIO J\IIIJJI'IIIfl
¡n;,
f)ufll.\
H'::,
N, 1'1 S¡, i\1 1, , SI X¡,I'I'S¡, 1\lh SI X¡,
lrnprl
N
l''i \111,1 v,u¡,¡\¡h• (h• hpn ,•nh•ln qut• h'\'11'"'''\lo\ t•l m1mt·rod1• pr1.,0 ( tll\,ldt'lo\hll\ 11 1\\,\ 1\\\111'-ho\
11,\'i qiH
N Ul
/J '' /) 11
u
Ul
1'1 s, ¡
(1
Al l,
1 N
11,
1 !\ \111•\ Vill\ 1 1\1\¡1
nt •ro fqUt
li'H'
t•'P''
•'111·1''111111111'111
eh
1 l'l1
1 U )111 1 11f II'J \ll'lclolk(lfolh,tJ• dol
1
1
t!t• II¡Hllt'oll qlU' H'\'ll'"t'lllol t•\ \lt'!.O th• \,\ pt'l\Oilol 1
N)
llll.\ V,\1 1.1hh• t!t,
1 1
hpo h'll\4\111 h pu nt,\ \,¡,,\IUI
(1 1 N) ' un 1 v.Hh\hlt d, 11¡ tn•nh'tnqu' lltpn ' 1111111 t\
n
\1
hnmhu y 1 ,,.
.¡ H
n\\ll''ll\
1
1
1
oth•\,1\WI mMI
N\
422 f"S .J.f2 H~suelva f:'l prohh,m;1 dntenor, pero consJdt•re adernt~s el promedio de la dltur!l
del P"'" en func 1ón del exo [.s dec~r, ~1os mtere "obtener el prom<•d 1o de'" a/t Y r•• y peso ¡,111 ¡0 de la poblaCIÓn fewenma como de la m,"culm<~. u Votos
N, f'ESt . ALTt SEXt. PES2, ALT2. SEX2 ... , PESN , AI.TN , SEXN
f"S .J,f.J Se tienen las cahficaCJones de un grupo de alumnos que presentaron un exame
de computac1ón Haga un dmgrama de flu¡o que calcule e 1mprima cuántas calif~
7 e 8 1~
cauones hay en cada uno de los siguientes rangos:
o 4 6
8
Datos
CALt CAL2
3 99 599 7 99 10
'-1
Donde CAL;
es una variable de !Jpo real que representa la calificación del a/umr;o 1 El fm de datos está dado por 1
f"S 3.14 Un<~ perwna mv1erte en un banw un cierto Ci:lpital y qu1ere saber cuánto obten drá "' c<~bo de c1erto t•~mpo, s1 el dinero se colocó a una determinada ti!Sd de mterés mensual. llaga el dli>!Jram" de flu¡o correspondiente.
rs 3.16 ~riba un diagrama de flujo que reciba como presentan las temperaturas del exterior en u ent~ada 24 números real temperatura media, asl como la más alta y mnápebnodo de 24 horas. En~suqulrerels a¡adeldía 'en e a Datos: TEMP¡, TEMP2, .. TEM 24
Donde:
TEMP;
es una variable de tipo real que representa la le hora i que se ingresa (1::; ¡::; 24)_ mpera\ura de la
rs 3.17 Dado N valores de Y, haga un diagrama de flujo para calcular el resultado de \a sigutente función
/Jato · MESES, CAPINI, TA5At, '!ASAz, ... , TASA rr"''"' X
/Jonde:
Ml.:SU, e una vanable de ttpo enhm> QIH' repwsent.J ''' núm••ro de meses al que se colocarllla mvers1ón. CAPlNI e una v, n ble de t1po r~i:ll que reprewnt.l ••l (•lpit<~lm•ci<~l que se lnverltrá TASA,
es una van ble de t1po real que stgmflca lata a de mtcrés del mes i (1 ' MESES¡
3. y
1
Y'
10
36
Y" t Y 0
\
o
5IO
ll
~33
ra1acu0:"'
ouovalordeY
Datos: llollde: enta e\ numero de y que
N e una variable de tipo en\ero que repres se ingre aran.
* -a""
alordela 1
.·o.1, DIR RfGFI: ' RfGL"l
A>r cada clieme s.e Cebe .... ,¡omplo . ?.e-
problema anaenor pero ahora considere que no =ste a operac •
rs 3.20
.....
de cobro de período. Desea obtener tam el otal d cobroS IU cada dienle se mgresa el nombre din!Cci6n. regiStrO iaal re• áedúa con base en lo sogwen e -+
.... ....
35 67
porKVH porKVH
426
Problemas suplernentano:s
Condiciones para Facultad Menor de Administración o;emestre ~ 6 y PromediO
88
MAT 1
Condiciones para Facultad Menor de Contabilidad SemeStre ~ 6 y Promedio "8.5
CJIL1o. CAL2;, CAL3 CAL4;, CALS:
Condiciones para Facultad Menor de Computación SemeStre ~ 6 y PromediO ~ 8.8
Por cada uno de los N alumnos de la universidad se ingresa su matrícula rrera en la que está inscrito. sem~stre que cursa y pro':'~dio general hasta el·~~~ mento. Haga uf' diagrama de flu¡o para calcular lo sohcttado anteriormente. Datos.
·,MAL. CARR1. SEM1.
PRO¡ .... , MATN, CARRN, SEMN, PRON
Resuelva el ejerc1c10 antena r, Pero e e un Ctc\o onsldere qu 1 MAT CA '"'""' 0 tohhcaClones del Datos 1, L¡¡ • CAL 12, 'CAL t.s, MAT 1<,CAL·~'>¡ Dan de: CALy,_.,
alurnno se leerán dentro d
MAT;
Donde
es una variable d . alumno ¡ (1 'f ¡ $ e ttpo entero que
N es una variable de tipo entero que representa el número de alum.
CAL;,¡
nos de la universidad.
MAT; es una variable de tipo entero que representa la matrícula del CARR
alumno i (1 S i S N). es una variable de tipo entero que representa la carrera en la que está inscrito el alumno i ( 1 S i S N). La carrera se ingresa teniendo en cuenta lo siguiente:
1 · " ECONOMIA " 2 . "ADMINISTRACION " 3 · " CONTABILIDAD " 4. " INGENIERIA EN COMPUTACION " SEM PRO;
es una variable d35): representa la matr' alumno i (1 . e lipa real itula d•l $ J S 5, 1 Si< 35q)ue representa la tal! . -
rs
,
1 IUr.CIÓn
MAT¡,
CALu ... CAL
1.5.
• • MAT35, CAI..:Jst, CAL,s.s
rs 3.25
es una variable de tipo entero que representa el semestre que cursa el alumno i 11 si s N). . es una vanable de tipo real que significa el promedio del alumno t (1 si S NI.
En una escuela en la que se tienen re istro olumnos. se desea conocer la lista degl ~con las caracteristtcas !isicas de los ~uet. 1lag,, un diagrama de fl . osab umnos con aplltu.des pata practtcar u¡o que o lenga lo Stgutente 1 Usta
de 'al umnils con aptitudes fistcas para ¡ugar al básquet
Requerimientos : ALTURA~ 1
~enta¡e de alumnas con e
73 y 50s PESOs 90.
tas aptitudesdelapoblacl6n.,.tudtantil!eme·
alumno. Cabe aclarar que cada alumno de fa clase tiene 5 calificaciones.
MAT1 CALl. CAL2t CAL3¡ CAlA¡. CAL5 CAL235. CAL3 • CAL435 CALS35
1 ,.
de\
Resuelva el problema anterior e 1 pero sólo imprima matrícula y p~~m a~conStderaciones plantead e 10 del mejor y del peor alu~~~ el mismo. Datos
PS 3.22 En una clase de una untversulad se tienen 35 alumnos. Haga un diagrama de flu· )o que calcule e ompmna la matncula y el promedio de calificaciones de cada
Datos
j
3.24
,
MATJS, CALit'•
Usta de alumnos con aptitud ~uerlmiento ALTURA
f1Sicas para JU9ai al básquet 1 83 y73 s PESO 110.
4Z8 <.O Porn•nttlJl! de alumno.; con e h\S dptltudes dt•
ltl
población c..,ludi,tnlil mds-
culinfl
Por cdd<~ ,1 tumro e tngre
su NOMBRE. SEXO. EDAD, PESO y ALTURA
NOM¡, EX 1, EDAD 1, PES01. ALT¡, NOMz. SEXz, EDAD 2, PESO
Votos
·x· x·.
AI:f2,
1.-1.-
2,
Donde·
NOM, SEX1 EDAD• PESOi
es una vanable de hpo cadena de caracteres que representa el NOMBRE del alumno 1 es una vanable de tipo caracter que expresa el SEXO del alumno i. Ingresa" F" para mujer y" M " para hombre . es una variable de tipo entero que representa la EDAD del al um. no 1 es una variable de tipo entero que representa el PESO del alumno 1
Al .Ti
es una variable de tipo real que representa la ALTURA del alumrol.
I"S 3.26 fn u; .a ..- vers1dad con un número determinado de alumnos se desea obtener el porcenta¡e y promed1o de la población femenina. el porcenta¡e Y promed•o de la poblac1ón masculina y el promedio general Por cada alumno se mgresa MATRICULA, SEXO. SF.MESTRE y PROMEDIO 1laga un diagrama de flujo para calcular lo solicitado anteriormente.
Datos
N, MAT1 SEX 1, SEM1 PRO¡ ,
~n una empresa con N empleados se necesita cada empleado se mgresan los siguientes datos·~lener crerta rnlormatrón V QÜ. Haga un dmgrama de flujo para calcular e: LAVE, EDIID, SLXO y lmpnm¡r \o Mgu\en\e
N, CLAVE t . EDAD t. SEXO t. SUELDO, .. ,CLAVEN. EDIIDN. SEXO,. SUELDON '
Datos:
Donde: N es una variable de tipo entero que representa el número de em· CI.AVL¡
, MATN, SLXN SEMN, PRON
!DAD¡
Dondl!'
N
~una van~ble de tipo entero que representa el número de alum 00
MAT¡ EX¡ LM¡
i (1
PRO¡
.
i ·d~
~ una Vllflable de tipo entero que represen!<> 1<> mdtncu a alumno 1 (1 .- 1
sur.t.
a) Número de hombres. b) Número de mu¡eres . e) Número de mujeres que ganen más de $20 000 di N~mero de hombres menores de 40 anos que ganan menos de \40 000 e) Numero de empleados mayores de 50 anos. ·
pleados de la empresa. es una variabe de tipo entero que representa la clave del emplea· do ¡( 1 · i · N)· 1a es una variable de tipo entero que representa la edad del emp e -
do 1 ( 1
SEXO,
SUEI.DO,
PS 3.19 La U
i · N)
.
r senta el sexo del emplea·
es u 11<1 variable de llpo entero que rep ~ bre yosi es mu¡er do 1(1 ¡ <; N) . Secons1dera 1 51 es ~melsueldodelempleado
e un,, variable de hpo real que represen a i(l N) .
. orlanatorios ubica· t d¡stica sobre 1os · 1 nados en ea nblt••wr informM 100 e los ni nos huérlanos.•n e~mbre del 50 dentro de 1 Repuhlic Me~ telina Y sigUiente informac•on n lloe orfanatorlo Por cada nmo se mgresa
doa NICEF de
es:;a
1 V \ H\11 (111•\llo.¡IVl') 1 v h ll11l (llu "' lv••)
,l •f
(
.• ,
11
H
pu
ni. ,•ln1111H"Il' d• nhitl'
43Z
VENTA J 1
es una vartable de tipo rt!al que representa _l' l monto d
rs 3.33 El máximo comun diviSor (MCD)_entre dos números es el natural más grande que
I.Lc;, Pl!c;
divide a ambos. Construya un d1agrama de fluJO que calcule el max 1m o común
divisor (MCD) de dos numeros naturales A Y B Datos: A y B (variables de tipo entero que representan los números para calcu-
lare!MCDl
rs 3.34 Escriba un diagrama de flujo que imprima todos los pares de m y n que cumplan
'
.
TOM t PTOM,
LECt PLECt
ACE¡
~ Nota: PACE, 3.35 Escn'ba un d•agrama de flujo que imprima todos los valores de X, Y YZ que satisfacen la saguiente expresión.
ZAN 1
PZAN, CHI 1
~ Nota:
rs
3.36
En una granja llevan el registro de los kilogramos producados y entregados men· sualmente al mercado de la ciudad. Esta consiste de tomates. lechuga. acelgas. zanahoraas y chfcharos Haga un diagrama de flujo que calcule lo siguiente: a) ¿Cuál es el producto que más kilogramos rindió al final del año'/ . b) GCuál fue la produccaón total de tomates, lechuga, acelgas, zanahorias Yeh•· charos', y Cuál fue el danero que estos productos produjeron? e) GCuál es el producto que más dtnero produjo al final del año? d) Qué Importe rneniUIIIIe pegaron a ata familia de granjeros, por sus produc· tos entregados al mercado
AlL 1:,. ., 1-JAU,l~
/Jt
., i¡-¡. ~IJ•'
oonde:
con la stguiente condición·
rs
• • t'l..
PCHI,
e~
u n.o varii:1b\e d
(en kllogr(:}mos) :nlti;:J ·r~i:ll q\J~ rl'!rm~-w.:nt· 1
er, Unü
variable de t ·8d os d\ m'!u...,tirJ ~~ ;\ fAr¡l\~flri ri~ hmilt~\
"'liP~r~~lque~zpre::\de\p. m~\ 11, ,, l'L¡ e~ una variable de t. ¿J. . r(!wu!~\h\r}fl~ trJr:;,
teen elmesí( l
1porea\q entregadas di mercado en el ue repre'*.l)\.¡j 14 u..r,!lliild li" 1 esunavaridbledetipore·\ mes¡ll, 1, 12¡. -~.h1'l..:o ga en el mes i ( 1 ..- ¡ ..- i ~ue e-t.pr~\iH\ preur1 del \t.;\r1 lie ítt~hu 2
es una variable de tipo real ga entregada al mercado qule repre\t!nta \r)S Y:llfJ').TowA ~ ~ ene me-; 1 q "' 1 , 12
es una vanable de tipo real qu ' gasenelmes¡(l ..- ¡, _eexpre~eipre::c1ocM't (JÓC::at':,· 121 es una variable de tipo real 1 nahoria entregada al merca::~~,~~; ~t~ ~~~:~;~(r; de 1.0·
1
es unhva!iable de ti~ real que expre~ el ptec1o d~i \t.¡\r~G!Ti(J di?: zana ona en el mes, (l ' , ' 12¡. es una variable de tipo real que repre,.nta los hiO']ramo< de chicha ros entregados al mercado en el mes 1 (l < • ' \2. es una variable de tipo real que expresa el paec1o del h\ogramo de chicharos en el mes i (1 ~ 1 < \2¡.
~ Nota:
1.37 cada uno de ést"' tiene lllla tienda 114! venden dtferentes llpo5 de Pfodudos Y
dlve BIOCiada al ramo al que pertenecen
p5 ,.,8 Problemas suplementarios
434
CLAVE¡
RAMO
CLAVE 1 2 3
Perecederos Aseo Perfumería Abarrotes
4
CANTIDADj
pRECIO_UNITj
Haga un diagrama de flujo que realice lo siguiente. a) Confeccione una factura por cliente. Cada factura debe tener el siguiente formato: TIENDA ··LA PROVIDENCIA" MEXICO. D F CANTIDAD CU1VE-RAM0
PRECIO UNITARIO
yy yy
XX XX
zz zz
TOTAL
ww ww
En un restaurante se sirven 7 platillo . una clave, que es un valor num. . s dtferentes C d atienden a numerosos clientes, P~~cl~ comprendida ~n~r~\~h\\o se ~e':Onoee por formato: que es necesario g Y7. Dicmamente se enerar ta.ctutas can este r:TURA NUMERO
1
-
TOTAL A PAGAR $ GGG
1 CLAVE b) Al final del día imprima el total vendido en $de cada uno de estos 4 ram~>S. e) Imprima además el ramo (teniendo en cuenta el dmero productdo) que mas se consume en esta tienda.
CANTIDAD
1 2
S
6
PRECIO UNITARIO
qs
30 38
9
l'fiWOTOTAl <5 60 3é
TOTAL A PAGAR - - - - - - - - - - - - - - H<3
Datos. N¡
CLAVE¡, CANTIDAD¡, PRECIO_UNIT¡ CLAVE2 , CANTIDADz PRECIO_UNITz CLAVEN CANTIDADNL PRECIO_UNITNl
Escriba un diagrama de flujo que haga lo siguiente: a) Lea los precios de los
7 platillos.
Nz CLAVE¡ CANTIDAD¡ PRECIO UNITt CLAVEz CANTIDADz. PRECIO~UNITz
~~ Lea los datos de cada cliente y entregueunalacturacomo a presentada anteriormente . Las facturas se enumeran de 1 hasta, . óe;de el comienw del día.
CLAVENz CANTIDAD 12 PRECIO_UNITN2
e) Calcule lo que ha vendido el restaurante al final del día
-1
Datos. Pl,P2,P3,P4.P5,P6,P7 1
N,
es una vanable de ltpo entero que representa el número de productos que compró el cliente i.
K¡,CLAVEt.CANT 1,CLAVEz.CAN1"2. CLAVEl! CAN1• K2.CLAVE¡,CANT! CLAVEl CANT2 .CLAVfuCAN1I2 -1
1
436
1
~ lll
/)tltHk.'
Dond
NOM,
n Vt-UI ,¡ s d'-~ ttp<.' •.ll qth' r~.•ptl'~~..·nt,ln los Pl<.'l'ios dt•los
PI P'l P3. N. P. Pt• y P?
Ch
7plat,U ' , u.t1d \dnabl df' tipo .nh..'n.) q_ue rl'pl'l'Sl'l1tc\ el ntmh..•ro d p ..lhll ~:- que ha ("ún:o:tum<.h) t.'l cllent~,_• 1. e
una variabl~ d_'-~ tipo ~.•ntero qu~· rcpr'-'.Sl'l1td Id clav~;.> del J 7). ~una vnriable de tip? entero q_ue h'presl•nta _¡,, cl\ntitlad de 11l.ltillo~ de la cla\'~ J constmmlos por l'l cliente ¡ (1 "i n J
CL.AVf
CT,
plat1llo J consum1do por el dll•nt,• 1 (1
CAl"T
rs
f'S 3 .39
E.sM a un di ¡;:- ma de flL 'o que calcule F(X,YZ) p~ra cada uno de los datos que
se propo c:n • 11'
y.
!~!X
3.41.
E.n une"\ Universidad se conoce el . feren tcs c~ur~ras, en los últimos cion ~ la slgutente Información:
lÜu~ero de alumnos que in
e nu¡o que propor-.
>0
z
51 X ,Q.2 •O
Y' 1
En cualquier
e Y •O
ottC' ca50
r>
os. Hagaundiagrama9d\!!it\ron~n!ius 5 di
Total de alumnos por ano que· b) Porcentaje de alumnos mgresatdngresaron ~la Universidad . . osenelanoXd 1 e) E.n_ que e\ no Y en que carrera se dio e\ m . e i'l canera y d) Ano en el CU
a)
mayor mgreso d(> a\umnm.
Datos
Datos
ANOX.CARR Y.CARR T ALUMt t.ALUMt.2 .... ALUM¡; Al.UMl.t.ALUMl,2 ... ALUM1.5
K. X Y Zt Xz. Yz. Z2 , ... , XK. YK. ZK
Donde
K es una vanable de tipo entero que representa el numero de veces que se calculará la función. X Y y Z son variables de tipo entero que representan los do~ tos quP "' in·
gresan PS 3.40
~llene ,m grupo de re')IStms dorde ~almacena Informacton rel<~tiVil" los ele
mentos rle la tabla penócllca de qufmtc:a Por cada el mento se mgreS<> ~u nom· hre, su conductl\ddad e' ctnc:a y su conduct,v>d,l(i h~rmtca 11 ga un dl<~gr.>m•> d•• fu JO par~ calcular lo stgU>ente a Los do pnnctpal elementos conductore de la 1 ctrlctd<~d y d cdlor ¡, lo dos p ores el mentas conductore de 1 electm td, d y,.¡ c<~lor Datos
NOM¡,CE:.CT,NOM CEz.CTz
AlliM IIlt.AI.UMw.2 .... 1\LUMto.; Done/, •
,"NN',O.O
Al UMq
ANOX
lAHH y
AHH 1
•oblema-. ~uplemE>ntano 5
438 FS .J.lfl d f1 llene un 'in especifico. Realice lo siguiente: El 51 gu1ente d,agrama e u 0 a, lnterpretelo D•ga qué hace4~~ for~a breve b¡ S1galo para N - 20 • "'de fl~¡o ias estructuras algorítmicas utilizadas. e, Marque en e d1agrama
Nota: X f" y ~ n variable"" de po enter.
PS 3.43 El <1gu1ente :ag: ma de fl o gu1ente·
f
e construirlO cor un fin espec"ico. Realice lo si·
____ j
a) C mstr .ya L ~ mapa e m ona para N 11, mdica:1do 10 que ,m prime el programa t lnterpr tdo D1ga qué ~ace en fe r-a hreve e) Marque en el d1agrama de fl\.·o 'as cstr•,cturas algorftm1cas utilizadas.
....... .. "•Jo62
,¡1
440
Arren¡
"os llnld¡
-· r
--"
_.2!....
.,
l
L·~
L\, 01 ,¡..
VEC
NUM
rs
tnenslonates
i..'~ un ~\r r~glo unidimensional d~ h , po ~.:ntt>rodto lOO t>l\'tni'nt :\ t:'S urh' ,·ariabl._, dt:' tipo t:ntcro ~.:-s.
4.:J
Escrih., un d.íagran'k\ dl' flujo t..\l qul' dado como i'ntrada un am..'g\1) umJ.m,\'r.s.•o· na\ qUt.' conht.~lh' numl'ros l'nh:'ros. dt.'t\'rmint.: cua.nto~ di' t-\\l)'i- ~n i'"'-',h\ ,~ nt"· ~\\ti\'os
1,)
nulos
b
PS 4.4
DJdos di.)!' \'t.'(tOh_'s ~.k tip~..'l l.'nh.'rl" A\' R. \ l.ms.tT\1\'3 un di,\':)"'~''~' \\1.' \1\\\1..' ~'~" ..::J· cult> t.•\ pn,durh.'ll..k thfht'~:O:. \'l'\k)h'S
Dar
A( l. N\. 1\( 1
Sll)
I'S ••5
~
........ ,
\
t'lt.':-1..'
tt. \
U\\1\
n''