U1 Diseño de Algoritmos y Diagramas de Flujo

Embed Size (px)

Citation preview

  • 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%A1tica
  • 7/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%B3rmula
  • 7/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_natural
  • 7/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$