7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
1/53
Unidad 1: Diseo de Algoritmos y
Diagramas de Flujo
Prof: Andrs Ruiz-Tagle
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
2/53
Resultado de Aprendizaje de la Unidad
onstruir algoritmos para resol!er pro"lemas
modela"les #omputa#ionalmente$%
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
3/53
Resolu#i&n de pro"lemas
Resol!er pro"lemas no es tri!ial' pues esne#esario #omprender (u se (uiere resol!er'en#ontrar las )erramientas ade#uadas para
resol!er el pro"lema' y luego implementar lasolu#i&n #on las )erramientas disponi"les
PR*+,.A /*,U012 PR*+,.A R/U,T*3 4
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
4/53
Fases del pro#eso de rea#i&n de un Programa
An5lisis delPro"lema
Diseo delAlgor6tmo
7erifi#a#i&n delAlgor6tmo
Fase de resolu#i&n del pro"lema
odifi#a#i&n del
Algoritmo
je#u#i&n delPrograma
7erifi#a#i&n delPrograma
Fase de implementa#i&n
Programa de Tra"ajoo Plan de
0mplementa#i&n
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
5/53
Fase de resolu#i&n de un pro"lema
An5lisis del pro"lema tapa de #omprensi&n del pro"lema' en la (ue se de"e
identifi#ar (ue es lo (ue se soli#ita o se espera o"tener' y #ualesson los datos rele!antes del pro"lema (ue permitir5nsolu#ionarlo$
Diseo del algoritmo /e#uen#ia ordenada de pasos' sin am"iguedades' (ue
#ondu#en a la solu#i&n de un pro"lema dado y puede sere8presado en lenguaje natural 9#astellano$
Todo algoritmo de"e ser: Preciso: 0ndi#ar el orden de realiza#i&n de #ada uno de lo pasos$ Definido: /i se sigue el algoritmo !arias !e#es propor#ion5ndole
los mismos datos' se de"e o"tener siempre el mismo resultado$ Finito:Al seguir el algoritmo' este de"e terminar en alg;n
momento' es de#ir tener un n;mero finito de pasos$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
6/53
7erifi#a#i&n de Algor6tmos
Una !ez (ue se )a terminado de es#ri"ir un algoritmo sede"e #ompro"ar (ue realiza las tareas para las (ue se)a diseado y produ#e el resultado #orre#to y esperado$
Para #ompro"ar un algoritmo se de"e eje#utar
manualmente' usando datos de prue"a (ue a"ar(uetodo el rango posi"le de !alores$ ,os resultado de #ada paso del algoritmo de"en
anotarse en una )oja$
stos datos de"en analizarse seg;n lo esperado$
Este proceso se conoce como Prueba del Algoritmo
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
7/53
Des#ompo#isi&n 9Top-do
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
8/53
Partes de un Algoritmo
n un algor6tmo se de"en #onsiderar trespartes: Entrada: 0nforma#i&n o datos dados al algoritmo$
Proceso: *pera#iones o #5l#ulos ne#esarios paraen#ontrar la solu#i&n al pro"lema$
Salida: Respuestas dadas por el algor6tmo oresultados finales de los #5l#ulos$
Pro#eso /alidantrada
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
9/53
jemplo/e desea desarrollar un algoritmo (ue #al#ule la superfi#ie de unre#t5ngulo propor#ion5ndole su "ase y altura$%
spe#ifi#a#iones de ntrada=>u datos son de entrada?
=u5ntos datos se introdu#ir5n?
=u5les son datos de entrada !5lidos? spe#ifi#a#iones de /alida
=u5les son los datos de salida?=u5ntos datos de salida se produ#ir5n?=>u pre#isi&n tendr5n los resultados?
=/e de"e imprimir un en#a"ezado?
l algoritmo puede representarse en los siguientes pasos$
Paso 1:ntrada por el te#lado la "ase y la altura$Paso 2: 5l#ulo de la superfi#ie' multipli#ando la "ase por la altura$Paso 3: /alida por la pantalla de la "ase' la altura y la superfi#ie$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
10/53
Pseudo#&digo
l pseudo#&digo es un lenguaje deespe#ifi#a#i&n de algoritmos (ue utilizapala"ras reser!ada y e8ige la indenta#i&n$
s una )erramienta muy "uena para elseguimiento de la l&gi#a de un algoritmo y
para transformar #on fa#ilidad losalgoritmos a programas' es#ritos en unlenguaje de programa#i&n espe#6fi#o$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
11/53
jemplo @ Pro"lema: a#er una taza de t% An5lisis del Pro"lema:
Datos de salida:Taza de t$ Datos de entrada: +olsa de t' agua$ Datos auxiliares: Pitido de la tetera' aspe#to de la infusi&n$
Diseo del algor6tmo ,enguaje 2atural:
Despus de e#)ar el agua en la tetera' se pone al fuego y se espera )asta (ue )ier!a9)asta (ue suene el pitido de la tetera$ 0ntrodu#imos la "olsa de t en la tetera y sedeja reposar )asta (ue el aspe#to de la infusi&n sea el esperado$ ,uego se !ierte el teen la taza$
Pseudo#&digo$Inicio
Tomar la tetera
Llenarla de agua
Encender el fuego
Poner la tetera en el fuego
Mientras no suene el pito de la tetera
Esperar
Introducir la bolsa de t en la tetera
Mientras la infusin no alcance un color rojizo
EsperarEchar el t en la taza
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
12/53
jemplo B Pro"lema: Reparar un pin#)azo de una rueda de "i#i#leta% An5lisis del Pro"lema:
Datos de salida:,a rueda reparada$ Datos de entrada: ,a rueda pin#)ada' los par#)es' el pegamento' un re#ipiente #on agua$ Datos auxiliares: ,as "ur"ujas (ue salen del pin#)azo en la #5mara$
Diseo del algor6tmo ,enguaje 2atural:
Desomtar la rueda de la "i#i#leta$ /a#ar la #5mara de la rueda y luego inflarla$ 0ntrodu#ir la rueda porse##iones en el re#ipiente de agua$ uando aparez#an las "ur"ujas identifi#aremos donde est5 el
pin#a)azo$ Apli#ar pegamento al pin#)azo y al par#)e y pegarlos$ 0nstalar la #5mara en la rueda yluego inflarla$ Por ;ltimo montar la rueda en la "i#i#leta$ Pseudo#&digo$
Inicio
Desmontar la rueda
!acar la c"mara de la rueda
Inflar la c"mara
Meter una seccion de la camara en el recipiente de agua
Mientras no salgan burbujas
#irar la c"mara $ meter otra seccin de la c"mara en el agua
Marcar el pinchazo
Echar pegamento
Mientras no est seco
esperar
Poner el parche
Montar la c"mara
Montar el forro
Montar la rueda
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
13/53
lementos +5si#os de Programa#i&n
Dato 7aria"les
onstantes *peradores Aritmti#os 0dentifi#adores
*pera#iones Aritmti#as
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
14/53
Dato
Dato
Un datoes una representa#i&n sim"&li#a 9numri#a'alfa"ti#a' et#$' atri"uto o #ara#ter6sti#a de una entidad$l dato no tiene !alor sem5nti#o 9sentido en s6 mismo'
pero #on!enientemente tratado 9pro#esado se puedeutilizar en la realiza#i&n de #5l#ulos o toma dede#isiones$ s de empleo muy #om;n en el 5m"itoinform5ti#o$n programa#i&nun dato es la e8presi&n general (uedes#ri"e las #ara#ter6sti#as de las entidades so"re las#uales opera un algoritmo$%
9Ciipedia
http://es.wikipedia.org/wiki/Inform%C3%A1ticahttp://es.wikipedia.org/wiki/Programaci%C3%B3nhttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Programaci%C3%B3nhttp://es.wikipedia.org/wiki/Inform%C3%A1tica7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
15/53
7aria"le
Variable Una ariablees un elemento de una f&rmula'
proposi#i&no algoritmo(ue puede ad(uirir o
ser sustituido por un !alor #ual(uiera$ ,os!alores (ue una !aria"le es #apaz de re#i"irpueden estar definidos dentro de un rango$9Ciipedia-
http://es.wikipedia.org/wiki/F%C3%B3rmulahttp://es.wikipedia.org/wiki/Proposici%C3%B3nhttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Proposici%C3%B3nhttp://es.wikipedia.org/wiki/F%C3%B3rmula7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
16/53
!elaci"n entre Dato # Variable
EUn dato es un !alor parti#ular (ue puedetomar una !aria"le$
EA su !ez una !aria"le se utiliza pararepresentar a una #ara#ter6sti#a oatri"uto de una entidad' por lo tanto toma
el !alor de un dato
EDependiendo del las #ara#ter6sti#as dela informa#i&n (ue se (uiera representarse pueden usar estru#turas de datossimples #omo una !aria"le u otras m5s#omplejas #omo los arreglos' los
registros o los ar#)i!os
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
17/53
Pro"lema
Una "om"a de "en#ina #uenta #onsurtidores muy antiguos' (ue miden elflujo de #om"usti"le en galones$ /in
em"argo' la ley esta"le#e (ue el pre#iodel #om"usti"le de"e ser informado a los#onsumidores en litros$ /olu#ione el
pro"lema de la "om"a de "en#inaalgor6tmi#amente$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
18/53
/olu#i&n Algor6tmi#a
Pro"lema: /urtidor de "en#ina (ue !ende "en#ina en galones% An5lisis del Pro"lema:
Datos de salida:Total !enta' total litros Datos de entrada: galones !endidos Datos auxiliares: !alor del litro de "en#ina 9GHI' e(ui!alen#ia de litros por
gal&n 9@ gal&n 4 J'KHG litros
Diseo del algor6tmo ,enguaje 2atural: ,eer los galones !endidos' transformarlos a litros' multipli#arlos por el pre#io
del litro de "en#ina y mostrar el total de la !enta y el total de litros !endidos$ Pseudo#&digo$
Inicio
Leer galones %endidos
Los litros %endidos ser"n igual a los galones por
&'()*
El monto total %endido ser" igual a los litros
%endidos por el %alor del litro de bencina
Mostrar el Total de litros %endidos $ el monto de la
%enta
Fin
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
19/53
Pseudo#&digo resumido*tra forma de pseudo#&digo m5s resumida de pseudo#&digo es la
siguiente:
An5lisis del Pro"lema: Datos de salida:7enta: !aria"le (ue representa el !alor !endido
,itros: !aria"le (ue representa la #antidad de litros !endidos Datos de entrada: Lalones: 7aria"le (ue representa la #antidad de galones
!endidos Datos auxiliares: !alor del litro de "en#ina 9KH@' e(ui!alen#ia de litros por
gal&n 9@ gal&n 4 J'KHG litros
Pseudo#&digo
$nicio%eerLalones,itros M- Lalones N J'KHG
7enta M- ,itros N KH@
Escribir7enta4'7enta' ,itros4' ,itros
Fin
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
20/53
jer#i#io
Dos amigos estu!ieron jugando por !arias)oras en su 2intendo y a)ora (uierensa"er (uin gan&$ Para eso disponen del
puntaje (ue les entrega el juego a #adauno$ >ueremos un algoritmo (ue nospermita determinar (uin gan&' tomando
en #uenta (ue el (ue gana es el (ue tienemayor puntaje$ Tome en #uenta (uepuede )a"er un empate$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
21/53
/olu#i&n Algor6tmi#a An5lisis de Datos
ntradas: PuntajeA: !aria"le (ue
representa el puntaje o"tenidopor el jugador A
Puntaje+: !aria"le (uerepresenta el puntaje o"tenidopor el jugador +
/alida .ensaje:
Lan& Ougador A% Lan& Ougador +% mpataron%
Pseudo#&digo0ni#io
s#ri"ir 0ngrese puntaje Ougador A%,eer Puntaje AEscribir0ngrese puntaje Ougador +%,eer Puntaje+
/i PuntajeA Puntaje+ nton#es s#ri"ir Lan& Ougador A%/ino /i Puntaje+ PuntajeA nton#es s#ri"ir Lan& Ougador +% /ino
s#ri"ir mpataron%
Fin/iFin/i
Fin
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
22/53
Pro"lema
Dado los datos A'+' (ue representanenteros diferentes' se desea ordenarlosen forma des#endente$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
23/53
/olu#i&n Algor6tmi#a
An5lisis de Datos ntradas:
A'+': n;meros enterosdiferentes
/alidas: .ensaje (ue muestra los
n;meros enteros en formades#endente
Algoritmo
0ni#io ,eer A' +'
/i A + nton#es
/i A nton#es /i + nton#es
.ostrar A' +'
/ino
.ostrar A' ' + Finsi
/ino
.ostrar ' A' +
Finsi
/ino
/i + nton#es /i A nton#es
.ostrar +' A' /ino
.ostrar +' ' A
Finsi
/ino .ostrar ' +' A
Finsi
FinsiFin
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
24/53
Pro"lema
B$ a#er un algoritmo en pseudo#&digo(ue lea una se#uen#ia de !alores enterospositi!os )asta (ue !enga alg;n !alor
negati!o$ al#ular la suma y el promedio$0mprima di#)a suma y promedio$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
25/53
/olu#i&n Algoritmi#a An5lisis de datos ntradas
24representa los !alores enterosle6dos
Au8iliares /4representa la suma de enteros
leidos 4representa la #antidad de
enteros leidos
/alidas /4representa la suma de enteros
leidos P4representa el promedio de los
n;meros leidos
Pseudo#&di#o
0ni#io/M-I
M-I
,eer 2
.ientras 924I a#er
/M-/32M-3@
,eer 2
Fin.ientras
/i MI nton#es
PM-/QFin/i
.ostrar /uma 4'/
.ostrar Promedio4'P
Fin
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
26/53
Diagramas de Flujo
,os diagramas de flujo se utilizan para:
Diagrama de flu&o del sistema:representa#i&n gr5fi#a de lasopera#iones eje#utadas so"re los datos a tra!s de las partesde un sistema de pro#esamiento de informa#i&n
Diagrama de flu&o detallado:representa#i&n de la se#uen#iade pasos ne#esarios para des#ri"ir un pro#edimiento enparti#ular$
,os diagrama de flujo utilizan s6m"olos est5ndares' #on
los pasos del algoritmo es#rito en el s6m"olo ade#uado ylos s6m"olos unidos por fle#)as' denominados l6neas deflujo' (ue indi#an el orden o se#uen#ia en (ue los pasosde"en ser eje#utados$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
27/53
/im"olog6a de DFD @$I
0ni#io 0ni#io y fin del algoritmo
ntrada ntrada al algoritmo
/alida
Pro#eso o asigna#i&nPro#eso
/alida del algoritmo
De#isi&n De#isi&n o #ondi#i&n
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
28/53
jemplo
/e desea desarrollar un algoritmo (ue #al#ule lasuperfi#ie de un re#t5ngulo propor#ion5ndole su "ase yaltura$%
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
29/53
jemplo
Una "om"a de "en#ina #uenta #onsurtidores muy antiguos' (ue miden elflujo de #om"usti"le en galones$ /in
em"argo' la ley esta"le#e (ue el pre#iodel #om"usti"le de"e ser informado a los#onsumidores en litros$ /olu#ione el
pro"lema de la "om"a de "en#inaalgor6tmi#amente$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
30/53
/olu#i&n Algor6tmi#a
Pro"lema: /urtidor de "en#ina (ue !ende "en#ina en galones% An5lisis del Pro"lema:
Datos de salida:Total !enta' total litros Datos de entrada: galones !endidos Datos auxiliares: !alor del litro de "en#ina 9GHI' e(ui!alen#ia de litros por
gal&n 9@ gal&n 4 J'KHG litros
Diseo del algor6tmo ,enguaje 2atural: ,eer los galones !endidos' transformarlos a litros' multipli#arlos por el pre#io
del litro de "en#ina y mostrar el total de la !enta y el total de litros !endidos$ Pseudo#&digo$
Inicio
Leer galones %endidos
Los litros %endidos ser"n igual a los galones por
&'()*
El monto total %endido ser" igual a los litros
%endidos por el %alor del litro de bencina
Mostrar el Total de litros %endidos $ el monto de la
%enta
Fin
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
31/53
/olu#i&n Alg&ritmi#a 9Diagrama de Flujo
0ni#io
galones
litros galones N J'KHG!enta litros N GHI
fin
litros'!enta
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
32/53
*pera#iones Aritmti#as
Al realizar opera#iones aritmti#asne#esitamos operadores aritmti#os$
Al e!aluar e8presiones (ue #ontienenoperadores aritmti#os de"emos respetarla jerar(u6a en el orden de apli#a#i&n$
'perador (erar)uia 'peraci"nS mayor poten#ia
N' Q 'mod
multipli#a#i&n'
di!isi&n' m&dulo
3 ' - menor suma' resta
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
33/53
8presiones l&gi#as
,as e8presiones l&gi#as o "ooleanas' est5n #onstituidaspor n;meros' #onstantes o !aria"les y operadoresl&gi#os o rela#ionales$
l !alor de estas e8presiones es verdadero o falso.
stas opera#iones son utilizadas fre#uentemente eninstru##iones #ondi#ionales$
'perador 'peraci"n E&emplo !esultado
4 mayor )ola 4 lola FA,/*
4 diferente a 4 " 7RDADR*M menor K M @G 7RDADR* mayor BB @@ 7RDADR*
M4 menor o igual @G M 4 BB 7RDADR*4 mayor o igual JG 4 BI 7RDADR*
#orregir
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
34/53
*peradores l&gi#os ,os operadores l&gi#os son operadores (ue permiten formular
#ondi#iones #omplejas a partir de #ondi#iones simples$ ,os operadores l&gi#os tam"in tienen una jerar(u6a de al momento
de e!aluar una e8presi&n l&gi#a seg;n se indi#a en la siguienteta"la$
'perador 'peraci"n E&emplo Significado
2*T mayor 2*T P s falso (ue P
A2D P y > P sin em"argo >
*R menor K M @G o P o > o Am"as
#orregir
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
35/53
Ta"las de 7erdad de *peradores
,&gi#os ,a ta"la de !erdad determina los posi"les
!alores de !erdad de los operadores
l&gi#osP * +', P +', * P '! * P A+D *
7RDADR* 7RDADR* FA,/* FA,/* 7RDADR* 7RDADR*7RDADR* FA,/* FA,/* 7RDADR* 7RDADR* FA,/*
FA,/* 7RDADR* 7RDADR* FA,/* 7RDADR* FA,/*
FA,/* FA,/* 7RDADR* 7RDADR* FA,/* FA,/*
,abla de erdad de los 'peradores %"gicos -.ooleanos/
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
36/53
Pro"lema: 0mpuestos diferen#iadosn #ierto pa6s el 07A 90mpuesto al 7alor Agregado se #al#ulamediante la siguiente regla: los primeros B$III no #ausanimpuesto' los siguientes B$III tienen el JIV de impuesto y elresto WIV de impuesto' pero si el #osto del produ#to es mayor aGI$III' enton#es en lugar de WIV se #o"ra el GIV$ Disee una
solu#i&n algor6tmi#a del pro"lema y el plan de prue"as#orrespondiente$
An5lisis de DatosDatos de ntrada
P: Pre#io del produ#to
Datos Au8iliares07A: 0mpuesto a pagar
Datos de /alida
PT: Pre#io total #onsiderando pre#io m5s 07A
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
37/53
Diagrama de Flujo de Datos0200*
P
P GIIII
07A BIIIN JIV 3
9P X WIII N GIV P WIII
07A BIIIN JIV 39P X WIII N WIV P BIII
PT P 3 07A
07A I07A 9P X BIII N JIV
F02
PT
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
38/53
Plan de Prue"as
2;mero orrida ntrada Au8iliar /alida
7aria"les P+ 07A PT
@ GII I GII
B BIII I BIII
J BGII @GI BYGI
W WIII YII WYII
G @IIII JIII @JIII
Y GIIII @ZIII YZIII
K GGIII BY@II H@@II
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
39/53
jemplo$ /olu#i&n /e#uen#ialSe desea conocer el promedio final de notas de los alumnos de un curso apartir de las notas finales de cada uno de ellos0
An5lisis de Datos /upuesto
l #urso tiene @I alumnos ntradas
2@$$2@I: 2ota final del alumno @ al alumno @I
/alidas PF: Promedio final del #urso
Algoritmoini#io
2@'2B'2J'2W'2G'2Y'2K'2H'2Z'2@I
PF 92@32B32J32W32G32Y32K32H32Z32@I Q @I
PF
fin
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
40/53
jemplo$ /olu#i&n 0terati!a o Repetiti!a
/e desea #ono#er el promedio finalde notas de los alumnos de un#urso a partir de las notas finalesde #ada uno de ellos$
An5lisis de Datos ntradas
n: antidad de alumnos del #urso 2Fi: 2ota final del alumno i
Au8iliares /: /uma de notas
i: ontador (ue permitir5identifi#ar al alumno @ al @I$ /alidas
PF: Promedio final del #urso Algoritmo
ini#io
PF
fin
i @/ I
i M4 n
/ / 3 2Fii i 3 @
2Fi
PF / Q n
/i
2o
n
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
41/53
,a estru#tura repetiti!a mientras -$%E/
,a estru#tura algor6tmi#a mientras'#om;nmente #ono#ida #omo C0,'
s la estru#tura ade#uada para utilizar enun #i#lo #uando no sa"emos el n;mero de!e#es (ue ste se )a de repetir$
l n;mero de itera#iones del #i#lo
depende de las proposi#iones dentro del#i#lo$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
42/53
,a estru#tura repetiti!a mientras -$%E/
n la estru#tura mientrasse distinguen dos partes: Ciclo: onjunto de
instru##iones (ue se
eje#utan repetidamente$ Condicin de trmino: ,a
e!alua#i&n de esta#ondi#i&n permite de#idir#uando finalizar5 la
eje#u#i&n del #i#lo$ ,a#ondi#i&n se e!al;a alini#io del #i#lo$
!alua#i&nde P0
P0 .odifi#a#i&n de P0
/i
2o
P0 Propo#i#i&n 0ni#ial
Pro#eso
Donde: PI: s la proposi#i&n ini#ial' de"e tener un !alor !erdadero
ini#ialmente para (ue se eje#ute el #i#lo$uando P0 es falso' enton#es el #i#lo termina o no se eje#uta$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
43/53
Pseudo#&digo para estru#tura .ientras
n pseudo#&digo la estru#tura mientras la e8presamosde esta forma:
+acer PI Propocisin Inicial
Mientras , PI es %erdadero -
.Proceso/
+acer PI modificacin de PI
Fin Mientras
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
44/53
,a estru#tura repetiti!a repetir 9F*R
,a estru#tura algor6tmi#apara o repetir'#om;nmente #ono#ida #omo F*R'
s la estru#tura ade#uada para utilizar en un#i#lo (ue se eje#utar5 un n;mero definido de
!e#es$ l n;mero de itera#iones del #i#lo 2* depende
de las proposi#iones dentro del #i#lo$ l n;mero de !e#es se o"tiene del
planteamiento del pro"lema o de una le#tura(ue indi#a (ue el n;mero de itera#iones se de"erealizar 2 !e#es$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
45/53
,a estru#tura repetiti!apara o repetir -F'!/
Donde: 7: es la !aria"le de #ontrol
del #i#lo
70: es el !alor ini#ial de 7
7F: es el !alor final de 7
0D: es el in#lemento ode#remento ' segu[n sea
la estru#tura repetir
ascendente o descendente.
7 9M o M4 7F
7 ! 3 id
/i
2o
7 70
Pro#eso
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
46/53
jemplo$ /olu#i&n 0terati!a o Repetiti!a
/e desea #ono#er el promedio finalde notas de los alumnos de un#urso de @I alumnos a partir delas notas finales de #ada uno deellos$
An5lisis de Datos ntradas
n: antidad de alumnos del #urso 2Fi: 2ota final del alumno i
Au8iliares /: /uma de notas i: ontador (ue permitir5
identifi#ar al alumno @ al @I$ /alidas
PF: Promedio final del #urso Algoritmo
ini#io
PF
ini#io
/ I
i\ @\ @I\ @
/ / 3 2Fi
2Fi
PF / Q @I
/i
2o
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
47/53
Pro"lema Fa#torial
Para todo n;mero naturaln' se llama n factorialo factorial de nal produ#tode todos losnaturales entre @ y n:
@ si n4I
n 4@NBNJN]Nn-@Nn si nI^
http://es.wikipedia.org/wiki/N%C3%BAmero_naturalhttp://es.wikipedia.org/wiki/Multiplicaci%C3%B3nhttp://es.wikipedia.org/wiki/Multiplicaci%C3%B3nhttp://es.wikipedia.org/wiki/N%C3%BAmero_natural7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
48/53
Pro"lema /ueldos de mpleados
Dada una empresa de 2 empleados'ne#esitamos o"tener el sueldo y numerodel empleado #on mayor sueldo$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
49/53
Pro"lema stadio
n un estadio se tienen G tipos diferentes delo#alidades #on pre#ios diferen#iados$ ,ospre#ios de #ada lo#alidad dependen delespe#t5#ulo$
/e pide un algoritmo (ue permita #al#ular la#antidad de espe#tadores por lo#alidad y elmonto re#audado para un espe#t5#ulo$
,os "oletos de"en !enderse una a uno' y#uando se ingresa un I de"e terminar de !ender"oletos$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
50/53
+meros .inarios Un n;mero "inario est5 representado por dos posi"les !alores en
sus d6gitos: I o @$ Por ejemplo' @I@I es n;mero "inario$ /e re(uiereuna solu#i&n algor6tmi#a para dado un n;mero natural' se muestrenlos d6gitos del n;mero "inario e(ui!alente' de manera des#endentede apari#i&n$ As6 para el n;mero @I' la salida a mostrar ser5 I' @' I
y @$ Para transformar un n;mero . en su e(ui!alente en "inario' se
realizan los siguientes pasos$ /e di!ide . por B$ l resto de estaopera#i&n #orresponde a al ;ltimo d6gito se e(ui!alente en "inario$
/e #ontin;a #on el uo#iente' el #ual es di!ido por B nue!amente'donde el resto es el siguiente d6gito "inario en orden des#endentede apari#i&n' y el #uo#iente es di!idido nue!amente$ ste pro#esose detendr5 #uando el #uo#iente de la di!isi&n sea I o @' donde elresto se #orresponde #on el pen;ltimo d6gito "inario y el #uo#iente
es el ;ltimo digito' en orden des#endente de apari#i&n$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
51/53
Pro"lema Lenerador de /e#uen#ias
Un generador de se#uen#ias es #apaz de generar unalista de n;meros )asta un l6mite #onfigura"le' partiendode un !alor de ini#io y siguiendo un in#remento tam"in#onfigura"le$
As6' por ejemplo' espe#ifi#ando #omo !alor de ini#io eln;mero @' #omo in#remento B' y #omo !alor final @II' eldispositi!o genera los n;meros impares menores (ue@II$ De igual forma se podr6an generar se#uen#ias den;meros pares' u otras se#uen#ias #on in#rementosmayores$
0n#luso' es posi"le generar se#uen#ias de#re#ientes'espe#ifi#ando un !alor de in#remento (ue sea negati!o$ Disee un algoritmo (ue implemente un generador de
se#uen#ias$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
52/53
Pro"lemas d6as fr6os y #5lidos
Un d6a se #onsidera fr6o si la temperaturam58ima es inferior a @G grados elsius' se#onsidera agrada"le si la temperatura es mayoro igual a @G' pero menor a BG grados' y se#onsidera #aluroso si la temperatura es mayor oigual a BG grados$
,a Dire##i&n .eteorol&gi#a #uenta #on elregistro de las temperaturas m58imas de !ariosd6as' y re(uiere un algoritmo (ue le ayude adeterminar #u5ntos d6as fueron fr6os' #u5ntosagrada"les y #u5ntos #alurosos$
7/26/2019 U1 Diseo de Algoritmos y Diagramas de Flujo
53/53
Pro"lema de omputador Antiguo
Un #omputador muy antiguo' pero toda!6a en opera#i&n'no #uenta #on instru##iones para lle!ar a #a"omultipli#a#iones ni di!isiones$ ,as ;ni#as opera#ionesdisponi"les son sumas y restas so"re n;meros enteros$
Para poder apro!e#)ar ade#uadamente el #omputador're(uerimos un algoritmo (ue lle!e a #a"o la di!isi&n dedos n;meros enteros' entregando el resultado y el restode la di!isi&n entera$
An5lisis de los datos' diseo del algoritmo e8presado en
diagrama de flujo o pseudo#&digo$