Vous êtes sur la page 1sur 26

Carpeta Algoritmos y Estructura de Datos Primer Ao UTN FRLP

Bibliografia: Fundamentos de Programacion: Algoritmos y Estructuras de Datos

Autor: Luis Joayanes Aguilar / Editorial: Mc-Graw-Hill Algoritmos Datos Y Programas Conceptos asicos

Autores: De Giusi Madoz Gor a !aiou Bertoni "usso Lanzarin Programacion en Tur!o" arland Pascal #$%

Autor: Luis Joyanes Aguilar / Editorial Mc-Graw-Hill

#eoria: $nfor%&tica: 'iencia (ue er%ite resol)er en for%a auto%&tica y racional un roble%a del %undo real* "esoluci+n de ,roble%as: El ob-eti)o de la infor%&tica es ro)eer .erra%ientas y %etodolog/as ara estudiar analizar y resol)er roble%as %ediante el uso de una co% utadora* 0n roble%a es cual(uier cuesti+n lanteada ara ser resuelta y si bien e1isten roble%as de distinta /ndole o naturaleza solo nos ocu are%os de a(uellos (ue tengan una soluci+n algor/t%ica es decir de a(uellos cuya soluci+n ueda ser e1 resada %ediante un rogra%a* 0n rogra%a es un con-unto de acciones ele%entales escritas en un lengua-e entendible or una co% utadora (ue resuel)en un roble%a en un inter)alo de tie% o li%itado* El roceso de "esoluci+n de roble%as co% rende desde el %o%ento (ue se enuncia el roble%a .asta (ue se e-ecuta o one en %arc.a el rogra%a (ue lo resuel)e* Este roceso co% rende )arias eta as* 0na co% utadora es una %a(uina digital y sincr+nica (ue tiene cierta ca acidad de c&lculo arit%eticologicas (ue esta controlada or un rogra%a interno lla%ado 2iste%a 3 erati)o 4325 y (ue interact6a con el usuario %ediante los dis ositi)os de cada salida* Los co% onentes funda%entales de una co% utadora son: Hardware4 ,arte 7isica5 2oftware 4,arte Logica5 construida or el con-unto de rogra%as (ue er%iten su funciona%iento y brindan ser)icios* En todos los siste%as infor%&ticos a arece co%o tercer co% onente el factor .u%ano (ue es (uien desarrolla los rogra%as* E#A,A2 DE "E23L0'$3! DE 0! ,"3BLEMA 85A!AL$2$2 DEL E!0!'$AD3 3 E2,E'$7$'A'$3! DEL AMB$E!#E 2e .ace una lectura co% rensi)a del enunciado ara deter%inar cu&les son los datos conocidos 4datos de entrada5 si faltan datos ara resol)er el roble%a si .ay datos oco claros o a%biguos y ade%&s deter%inar los ob-eti)os o resultados del roble%a* #a%bi9n se .ace un an&lisis de la relaci+n e1istente entre los datos de entrada y los ob-eti)os ara saber si es necesario %&s infor%aci+n (ue nos er%ita resol)er el roble%a* El resultado de esta eta a es un %odelo si% lificado de la realidad y es ecifica (ue debe%os resol)er*

:5 D$2E;3 DEL ALG3"$#M3 En esta eta a detalla%os una a una las acciones (ue deben lle)arse a cabo ara resol)er el roble%a* Dic.as acciones deben estar escritas una continuaci+n de la otra y en el orden l+gico en (ue se lle)an a cabo* El con-unto de dic.as acciones confor%an el algorit%os y constituye co%o se resuel)e el roble%a* Lla%a%os algorit%os al con-unto ordenado y finito de acciones ri%iti)as (ue resuel)en un roble%a deter%inado en un inter)alo de tie% o acotado* E1isten di)ersas t9cnicas de dise<o de algorit%os siendo la elegida de dise<o descendente o de refina%ientos sucesi)os o #3,-D3=!* De acuerdo a esta t9cnica dado un roble%a co% le-o , se lo di)ide o desco% one en sub roble%as* Las desco% osiciones sucesi)as ter%inan cuando se llega a una tarea indi)isible o acci+n ri%iti)a y ele%ental ca az de ser e-ecutado or una ,'* El con-unto final de acciones as/ obtenidas constituyen el algorit%o* 0n algorit%o debe ser: 7inito es decir tener una cantidad li%itada de acciones de %anera tal de e-ecutarse en un inter)alo de tie% o li%itado* ,reciso: Debe indicar el orden de e-ecuci+n de sus acciones* Definido: 2ie% re (ue se e-ecute debe roducir la %is%a soluci+n* >5 '3D$7$'A'$3! DEL ALG3"$#M3 2e transcribe el algorit%o usando el lengua-e de rogra%aci+n* ,ara eso se to%a cada acci+n del algorit%o y se la traduce a la corres ondiente instrucci+n del lengua-e elegido res etando la sinta1is y la se%&ntica de dic.o lengua-e? el resultado de esta eta a es el rogra%a y re resenta con (ue .erra%ientas resuel)o el roble%a* 0n ,rogra%a es un con-unto ordenado y finito de acciones ele%entales escrito en un lengua-e de rogra%aci+n re resuel)e un roble%a dado*>*85 EJE'0'$3! DEL ,"3G"AMA/ >*:5 DE,0"A'$3! DE E""3"E2 / >*>5 D3'0ME!#A'$3! / >*@5 MA!#E!$M$E!#3 0na )ez escrito el rogra%a debe ser cargado y guardado en la %e%oria de la co% utadora transfor%&ndose en un rogra%a fuente* Antes de ser e-ecutado el siste%a o erati)o lo co% ila realizando asi un an&lisis sint&ctico del %is%o* 0n rogra%a co% ilado correcta%ente se transfor%a en un rogra%a ob-eto? estos rogra%as ob-etos son e-ecutados or el 2iste%a 3 erati)o dando origen al rogra%a e-ecutable* 'o%o resultado de la co% ilaci+n y e-ecuci+n se lle)a a cabo la eta a de de uraci+n de errores consiguiendo cada uno de los %is%os* La eta a de docu%entaci+n er%ite generar: Docu%entaci+n $nterna: Escrita dentro del rogra%a co%o co%entarios (ue e1 lican lo (ue .ace el rogra%a* Docu%entaci+n E1terna: 7or%ada or %anuales? gu/as r& idas de%ostraciones etc* De ayuda ara el usuario* La eta a de %anteni%iento abarca todas las acciones de correcci+n %odificaci+n y a% liaci+n del rogra%a a lo largo del tie% o de )ida del %is%o*

,A"AD$GMA2 DE ,"3G"AMA'$3!: $% erati)o* L+gico* 7uncional* 3rientado a 3b-etos* ,rogra%a: 'on-unto de +rdenes de la co% utadora* Ar(uitectura de Aon !eu%ann: Me%oria Acci+n secuencial%ente Asignaci+n Programa: Nom!re Campo de Datos &acer n 'nstrucciones (in)acer Finprograma$ ,roble%as: B'+%o re resentar los datos en la %e%oriaC Estructuras de Datos: mecanismos de almacenamiento de in(ormaci*n en la memoria$ B'+%o e1 resar las accionesC Estructuras de Control: +on los medios a tra,-s de los cuales se puede indicar el orden de e.ecuci*n de las acciones$ ,ara co%enzar a resol)er un roble%a ri%ero .ay (ue elegir un aradig%a de rogra%aci+n* 0n aradig%a de rogra%aci+n es un con-unto de atrones conce tuales (ue ro)ee .erra%ientas ara analizar roble%as y desarrollar rogra%as* E1isten @ aradig%as $% erati)o? L+gico? 7uncional y 3rientado a 3b-etos* !osotros utilizare%os el i% erati)o en el cual el rogra%a es un con-unto de +rdenes de la co% utadora* Los ,rogra%as se desarrollan sobre co% utadoras basadas en la ar(uitectura de Aon !eu%ann las cuales tienen > caracter/sticas funda%entales* Los datos se al%acenan en la %e%oria? las acciones se e-ecutan una a una consecuti)a%ente y los resultados y datos se al%acenan en la %e%oria a tra)9s de una o eraci+n de asignaci+n de )alor* 0na )ez elegido el aradig%a se resentan dos cuestiones a resol)er co%o resultado de las : ri%eras eta as del roceso de resoluci+n de roble%as* B'+%o re resentar los datos del roble%aC 4obtenidos de la eta a de an&lisis5 B'+%o e1 resar las accionesC 43btenidos de la eta a de dise<o5 Los datos se re resentan con estructuras de datos? las acciones se re resentan con estructuras de control* 'onocidas estas : .erra%ientas se escribe el algorit%o en seudoc+digo re resentando el for%ato de un rogra%a* Programa Nom!re

/0ona de almacenamiento y declaraci*n de Datos1 &acer /'nstrucciones1 Fin)acer Finprograma$ El encabeza%iento de un rogra%a es ecifica el no%bre del %is%o* En la zona de declaraci+n de datos se detallan los datos de entrada los resultados inter%edios y finales del roble%a* El cuer o rinci al contiene acciones e-ecutables (ue resuel)en el roble%a y la docu%entaci+n interna e1 resada co%o co%entarios escritos entre lla)es* E+TRUCTURA DE DAT2+ Al%acenan en la %e%oria "AM constituida or unidades indi)iduales de al%acena%iento* Las estructuras de datos son %ecanis%os de al%acena%iento e infor%aci+n en la %e%oria* 2e clasifican ba-o distintas criterios* La ri%er clasificaci+n a tener en cuenta es con res ecto a la cantidad de datos (ue ueden al%acenar* 2eg6n este criterio se di)iden en si% les y co% uestas* Las estructuras de datos si% les er%iten al%acenar un solo dato en un %o%ento deter%inado de la e-ecuci+n y las co% uestas al%acenan con-untos de datos si%ult&nea%ente* Aariables: es una referencia abstracta a una celda de la %e%oria "AM* 0na )ariable tiene D atributos: !o%bre (ue la identifica Aalor: es el dato contenido en la celda #i os de datos: Entero Booleano car&cter "eal indica (ue )alores se ueden guardar en la )ariable y (ue o eraciones se le ueden a licar* #ie% o de Aida: es el la so de tie% o durante el cual la )ariable esta creada en la %e%oria* Alcance: $ndica el lugar donde una )ariable uede ser utilizada* 'onstante: Es una )ariable cuyo contenido no uede %odificarse durante la e-ecuci+n de un rogra%a* ,ara usar )ariables y constantes .ay (ue declararlas* Cuerpo Principal

Declaraci+n de )ariables y 'onstantes ,rogra%a E-e% lo 'onstantes i:E >?8@8F

3 eraciones con Aariables Asignaci+n de Aalor :E asignaci+n )alores internos

Aariables !ota: real @?: !o%bre: car&cter 8D

Leer: asignaci+n )alor e1terno Hacer 1:E@ !ota:E :G1 Leer: !o%bre HAnaI Muestra de Datos $% resi+n $% ri%ir: 1 $% ri%ir: JLa nota es?K !ota

Las o eraciones ele%entales (ue lle)a a cabo una co% utadora son entonces los de asignaci+n de )alor entrada de dato %uestra de datos y %ensa-e y o eraciones arit%eticologicas* E2#"0'#0"A2 De '3!#"3L ,er%iten e1 resar el orden en (ue se e-ecutan las acciones de un rogra%a* 2e clasifican en secuencia decisi+n y re etici+n* La estructura de secuencia er%ite indicar acciones consecuti)as (ue se lle)an a cabo de a una or )es en for%a sucesi)a* Las estructuras de control se usan ara deter%inar el flu-o de control de un rogra%a* Lla%a%os flu-o nor%al de un rogra%a al orden en (ue se e-ecutan sus acciones* El flu-o nor%al de un rogra%a es el secuencial* ,ara %odificar dic.o flu-o nor%al se utilizan estructuras de control de decisi+n y de re etici+n* E-e% lo: Programa Per3metro Constantes Pi:4 567879 :aria!les Radio: real ;6< Resultado: real 96< &acer 'mprimir: ='ngrese el radio de la circun(erencia> Leer: Radio

Resultado:4 <?pi?Radio 'mprimir:> El per3metro de la circun(erencia es =6 Resultado Fin)acer Finprograma$ E+TRUCTURA DE DEC'+'@N 2e utilizan ara elegir entre ca%inos alternati)os %ediante la e)aluaci+n de una condici+n* 0na condici+n es una e1 resi+n en la cual se uede e)al6a si )alor de )erdad* 0na condici+n est& for%ada or una o %&s co% araciones? estas ueden estar e1 resadas entre una )ariable y una constante o entre : )ariables si la condici+n es si% le contiene una sola co% araci+n ? en caso contrario con %&s de una co% araci+n es una condici+n co% uesta? estas est&n unidas or un conector l+gico 4 and con-unci+n or disyunci+n5* ,or e-e% lo: 41E85 +imple 41E:5 y 4zE>5 4zLEM5 o 4zED5 Compuesta

Las decisiones se clasifican en si% les y %6lti les o co% uestas* En las ri%eras %ediante la e)aluaci+n de una condici+n se uede elegir entre dos ca%inos alternati)os disyuntos o e1cluyentes* +intaAis +i Bcondici*nC entonces Rama ,erdadera Accion7$7 Accion7$n +ino Rama (alsa Acci*n < Acci*n <$n Finsi En la rama ,erdadera se escri!en una o mEs acciones ,alidas del lengua.e Fue serEn e.ecutadas solo en caso Fue la condici*n e,aluada sea ,erdadera$ +i la condici*n es (alsa se saltea las acciones de la rama ,erdadera y se lle,an a ca!o las acciones de la rama (alsa$ La rama (alsa es opcional$ La e.ecuci*n de una rama eAcluye la e.ecuci*n de la otra y las acciones especi(icadas en cada rama de!en ser distintas entre s3$ E.emplo A E.emplo (insi +i Bcondici*nC entonces accion7 acci*n 7$D

Programa :aria!les Resu6 nota: real 86< &acer 'mprimir: ='ngrese Nota> =Desapro!*> Leer: nota +i B notaG48Centonces 'mprimir: = El alumno estE apro!ado> +ino 'mprimir: =El alumno esta desapro!ado> Finsi resu:4nota"< 'mprimir: resu Fina)cer Finprograma$ DE+'C'2NE+ AN'DADA+ 2 ENCADENADA+

si BNotaG4 9C entonces 'mprimir: =Esta en promoci*n> sino siB notaH8C 'mprimirI (insi (insi

Es cuando a arece una decisi+n dentro de la ra%a )erdadera y/o de la falsa de otra decisi+n* La decisi+n %6lti le se utiliza ara elegir entre )arios ca%inos alternati)os cuando una )ariable to%a %6lti les )alores distintos* 2olo se a lica ara )ariables enteras booleanas o cadena de caracteres* La decisi+n %6lti le se utiliza cuando se tiene > o %&s decisiones encadenadas* 2inta1is

CA+2 Bnom!re de la ,aria!leC / no se puede usar en !ooleana carEcter y realC B,aria!le ,alor 7C acciones B,aria!le ,alor <C B,aria!le ,alor DC En otro caso acciones acciones acciones Rama :erdadera

acciones (incaso

Rama Falsa

2e a lica sobre una 6nica )ariable (ue to%a %6lti les )alores distintos* #iene una ra%a )erdadera or cada )alor osible y la ra%a falsa es o cional* Las acciones de cada ra%a son distintas y e1cluyentes entre s/* 'uando e)al6a las condiciones e% ieza desde la ri%era ra%a .asta la 6lti%a y si encuentra (ue se cu% len alguna condici+n en esa ra%a e-ecuta las acciones corres ondientes y saltea el resto del caso* 2i ninguna condici+n se cu% le e-ecuta la ra%a falsa* 'ada ra%a uede contener una o %&s acciones )alidas del rogra%a es decir dentro de una ra%a uede .aber decisiones %6lti les y si% les* E.emplo Leer: D3a Caso: D3a D3a47 'mprimir: lunes D3a4< 'mprimir: martes En otro caso 'mprimir: =D3a err*neo> Fincaso Las estructuras de control de iteraci+n o re etici+n se utilizan ara e-ecutar )arias )eces sucesi)as el %is%o con-unto de acciones* 2e clasifican en estructuras de re etici+n condicional e incondicional* Las ri%eras se utilizan cuando se conocen la cantidad de )eces (ue se re ite el con-unto de acciones* Las condicionales se usan cuando no se conoce la cantidad de )eces (ue deben re etirse las acciones y es necesario e)aluar una condici+n ara saberlo*

+intaAis Repetir para ,aria!le de control:4 ,alor inicial6 ,alor (inal6 paso Acciones Acciones Finrepetirpara

Condicionales" Pre condicionales Repetir mientras Bcondici*nC )astaBcondici*nC Acciones Acciones Finrepetirmientras

PostJCondicional Repetir acciones (inrepetir)asta

El bucle uede contener una o %&s acciones )alidas* La )ariable de control de estar declarada y ser de ti o entera* El )alor inicial )alor final y el aso son )alores enteros e1 resados a tra)9s de constantes o de )ariables* Las )ariables de control se encarga de controlar (ue el bucle se e-ecute un n6%ero de )eces deter%inado* La cantidad de )eces (ue se re ite el bucle est& dado or la for%ula cant* Ent*4 )alor final N )alor inicial? O aso/ aso5* ,ara la e-ecuci+n de esta instrucci+n la )ariable de control se inicializa con el )alor inicial y se e-ecuta el cuer o de la re etici+n al finalizar la e-ecuci+n de dic.as acciones la )ariable de control se incre%enta con el )alor del aso y se )erifica (ue este nue)o )alor sea %enor o igual (ue el )alor final* 2i se cu% le re ite las acciones del bucle y as/ sucesi)a%ente .asta alcanzar el )alor final establecidos* 'ondicionales: 2e clasifican en re condicional y ost condicionales* En la ri%era se e)al6a la condici+n si la %is%a es )erdadera se e-ecuta el bucle y al finalizar dic.a e-ecuci+n se )uel)e a testear dic.a condici+n y se sigue re itiendo el bucle sie% re (ue esta sea )erdadera* En las os condicionales ri%ero se e-ecuta el bucle y des u9s se e)al6a la condici+n? si es falsa se sigue re itiendo el bucle* En a%bos casos la condici+n de la re etici+n tiene (ue tener )alor de )erdad es decir deben escribir acciones recisas (ue le den )alor a las )ariables (ue o eran en dic.as condiciones* Las condiciones ueden contener )ariables de lectura a contadores a acu%uladores*

E.emplo Programa repetir para :aria!les Nota: real 86<

&acer +uma:4% Repetir para i:4 767%67 / repite desde 7 )asta 7% con paso 71 'mprimir: ='ngrese nota> Leer: Nota +uma:4 +uma K nota Finrepetirpara Alu:4% Prom:4 suma"7% Fin)acer Finprograma$ E.emplo < 'mprimir: >LDesea agregar una nota del alumnoM B+"NC> Leer: Resp +uma:4% Repetir mientras Bresp4>+>C 'mprimir: ='ngrese nota> Leer nota +uma:4 +uma K nota 'mprimir: =Ldesea agragaar otra notaM B+"NC> Leer:resp Finrepetirmientras 0n acu%ulador es una )ariable (ue %odifica su contenido en una cantidad )ariable* 0n contador es una )ariable (ue %odifica su ro io contenido sie% re en una cantidad constante* E-e% lo: ,rogra%a e-e% lo Aariables !u%: entero

Hacer 2:EP ':EP "e etir Leer nu% 2:E2Onu% ':E 'O8 Hasta 42Q>PP5

PR2NRAOAC'2N O2DULAR Es una %etodolog/a de relaci+n de roble%as (ue utiliza co%o t9cnica de dise<o de algorit%o los refina%ientos sucesi)os? dise<o descendente o #3,-D3=! (ue consiste en di)idir el roble%a general , en sub roble%as ,i4 , sub i5 %&s sencillos* La desco% osici+n o di)isi+n se )uel)e a a licar sobre cada sub roble%a .asta obtener un con-unto de acciones ele%entales ca aces de ser e-ecutadas or una co% utadora* 2e lla%a %+dulos a cada sub roble%a o subtarea resultante de dic.a desco% osici+n* 'ada %+dulo se resuel)e %ediante un sub rogra%a* 0n sub rogra%a es una unidad de rogra%a (ue e-ecuta una tarea es ec/fica* 0n sub rogra%a contiene las %is%as artes (ue un rogra%a rinci al* Encabeza%iento: donde figura su no%bre y ti o de sub rogra%a* Rona de declaraci+n de datos ro ia* 'uer o de instrucciones e-ecutables (ue son las (ue lle)an a cabo dic.a tarea es ec/fica* 'on-unto de co%entarios: E1 lican ara (u9 sir)e el sub rogra%a* 0n roble%a resuelto con esta %etodolog/a consta de un rogra%a rinci al (ue es (uien resuel)e el roble%a original y un con-unto de sub rogra%as (ue resuel)en cada %+dulo* Los sub rogra%as se diferencian de un rogra%a rinci al en su uesta en e-ecuci+n* ,ara (ue un sub rogra%a se e-ecute debe e1istir una in)ocaci+n desde un rogra%a* 0na in)ocaci+n es una lla%ada a tra)9s de una instrucci+n ara (ue un sub rogra%a se acti)e* Los sub rogra%as se clasifican en rocedi%ientos y funciones los ri%eros son una unidad del rogra%a (ue recibe P o %&s datos desde el rogra%a lla%ados y de)uel)e P o %&s resultados* 0na funci+n es una unidad de rogra%a (ue recibe P o %&s datos del rogra%a lla%ados y de)uel)e sie% re un solo resultado de ti o standard 4entero real booleano o car&cter5 guardado en el no%bre de la funci+n* ,ara (ue un rogra%a co% arta infor%aci+n o datos con un sub rogra%a se debe utilizar ar&%etros* 0n ar&%etro es un %ecanis%o de interca%bios de datos entre un rogra%a lla%ador y un

sub rogra%a lla%ado o in)ocado* Los sub rogra%as deben estar declarados y definidos dentro del rogra%a y deben ser in)ocados ara su e-ecuci+n* Programa E.e Oodular Constantes Pi:45678 :aria!les a6!6c: entero Procedimiento Nom!re7 /sin parEmetros1 0ona de declaraci*n /datos Fue usa el procedimiento1 &acer Acciones Fin)acer Finprocedimiento Procedimiento Nom!re < BLista de parEmetros FormalesC 0ona de declaraci*n &acer Acciones Fin)acer Finprocedimiento

Funci*n Nom!re 5: Tipo de dato del resultado /sin parEmetros1 0ona de declaraci*n &acer Acciones Fin)acer Fin(uncion Funci*n Nom!re 8 Blista de parEmetros (ormalesC: tipo de datos del resultado 0ona de declaraci*n

&acer Acciones Fin)acer Fin(uncion 'N:2CAC'2N &acer BPrograma PrincipalC Acciones Nom!re7 'n,ocaci*n Acciones Nom!re< BLista de parEmetros actualesC Acciones P:4 Nom!re5 Acciones 'mprimir: Nom!re8 BLista parEmetros actualesC

'uando se in)oca un rocedi%iento el 2iste%a 3 erati)o detiene la e-ecuci+n del rogra%a rinci al? busca la declaraci+n del rocedi%iento? crea en la %e%oria las )ariables (ue necesita el rocedi%iento crea en la %e%oria las )ariables (ue necesita el rocedi%iento e inicia su e-ecuci+n* Al ter%inar retorna el control de la e-ecuci+n al rogra%a rinci al a artir de la l/nea siguiente a la in)ocaci+n* 'uando se in)oca una funci+n es necesario .acerlo dentro de una e1 resi+n l+gica o arit%9tica o en una i% resi+n de for%a tal de no erder el resultado de)uelto* 2e detiene la e-ecuci+n del rogra%a rinci al del %odo antes e1 licado ero el retorno de la e-ecuci+n es en la %is%a l/nea de in)ocaci+n* ,asa-es de ar&%etro: 'o ia o Aalor Entrada "eferencia Entrada-2alida y 2alida 7unci+n: "ecibe ,ar&%etros de Entrada ,rocedi%iento: "ecibe ,ar&%etro de Entrada 2alida y Entrada-2alida* ,ar&%etros 'uando se utiliza rogra%aci+n %odular es indis ensable realizar asa-e de ar&%etros sie% re (ue .aya interca%bio de infor%aci+n entre el rogra%a rinci al y los sub rogra%as*

0n ar&%etro es un %edio de transferencia de datos entre unidades de rogra%as* Los ar&%etros se es ecifican tanto en la in)ocaci+n al sub rogra%a co%o en el encabeza%iento del %is%o* En la in)ocaci+n se es ecifican los ar&%etros actuales (ue son los datos (ue el rogra%a rinci al le en)/a al sub rogra%a ara (ue este los use y/o los %odifi(ue* ,ueden ser constantes )ariables o e1 resiones arit%eticologicas? escritas en la lista se arados or co%as 4?5* Los ar&%etros for%ales son las )ariables en las (ue el rogra%a recibe y/o de)uel)e los datos desde? .ac/a el rogra%a rinci al* 2e es ecifica el no%bre y el ti o de cada ar&%etro for%al se ara or unto y co%a 4S5* En el %o%ento de la in)ocaci+n el 2iste%a 3 erati)o relaciona un/)oca%ente cada ar&%etro actual con su corres ondiente ar&%etro for%al* ,or esta raz+n deben coincidir en cantidad? ti o de dato y orden de a arici+n los ar&%etros actuales con los for%ales* De acuerdo al uso (ue se les de los ar&%etros se clasifican en: ,ar&%etros de entrada: 'uando solo lle)an infor%aci+n al sub rogra%a ero no traen resultados*4 ,ar&%etros 0nidireccional5 ,ar&%etro de 2alida: 'uando solo trae resultado desde el sub rogra%a 40nidireccional5 ,ar&%etro de Entra-2alida: 'uando lle)a dato al sub rogra%a y lo de)uel)e %odificando co%o resultado 4,ar&%etro Bidireccional5* En funci+n del ti o de ar&%etro utilizado se deter%ina el asa-e de ar&%etro* El asa-e de ar&%etros es el %odo o la for%a en (ue se transfieren los datos* ,uede ser or co ia o )alor y or referencia* ,asa-e or 'o ia: En el asa-e or co ia o )alor el siste%a o erati)o 4235 crea en el %o%ento de la in)ocaci+n al ar&%etro for%al asign&ndole co%o )alor el del ar&%etro actual corres ondiente* De esta for%a el ar&%etro for%al es una co ia del ar&%etro actual y todo ca%bio (ue se .aga sobre ese ar&%etro for%al no afecta al ar&%etro actual* Este asa-e se usa ara ar&%etros de entrada*

Programa E.emplo :aria!les Num: entero < Funci*n Triple BA: entero de <C: entero 5 &acer Triple:4 5?P Fin)acer Fin(uncion

&acer /Programa Principal1 'mprimir:> 'ngrese un numero> Leer: num 'mprimir: =El triple de:>6 num6>es>6 TripleBnumC Fin)acer Finprograma$ ,asa-e or referencia: El siste%a o erati)o en el %o%ento de la in)ocaicon crea el ar&%etro for%al asign&ndole co%o )alor la direcci+n de %e%oria del ar&%etro actual es decir (ue el ar&%etro for%al se con)ierte en un untero o alias del rogra%a actual* De esta %anera todas las %odificaciones (ue se .acen sobre el ar&%etro for%al (uedan refle-ados directa%ente en el ar&%etro actual corres ondiente* 0tiliza ar* de 2alida y Entrada-2alida* Programa E.emplo< :aria!les Num76 num<: entero < +uma6 Prod: Entero 5 Procedimiento calculo B:al7: entero <6 ,al<: entero <6 re( +: entero5 re( P: entero 5C &acer +:4 ,al7 K ,al< P:4 ,al7?,al< Fin)acer Finprocedimiento &acer /Programa Principal1 'mprimir: =ingrese < ,alores> Leer: num76 num< Calculo B,al76 ,al<6 suma6 prodC 'mprimir:> La suma es:>6 suma6 =y el producto es:>6 prod Fin)acer Finprograma

AA"$ABLE2 L3'ALE2 T GL3BALE2 ,rogra%a: Main Aariables A: entero : R: real @?: ,rocedi%iento A 4w: entero :5 Aariables T: car&cter 8P 7in rocedi%iento Hacer Acciones 7in.acer 7in rogra%a* 0na )ariable global es a(uella (ue est& declarada en el rogra%a rinci al* 0na )ariable local est& declarada dentro de un sub rogra%a ya sea en la zona de declaraci+n o co%o ar&%etro for%al* El tie% o de )ida de una )ariable es el la so de tie% o durante el cual dic.a )ariable esta asignada a la %e%oria* El tie% o de )ida de una )ariable global co% rende el eriodo de tie% o desde la co% ilaci+n del rogra%a rinci al 4%o%ento en (ue se crean .asta la finalizaci+n de la e-ecuci+n del %is%o54 %o%ento en (ue se liberan5* Las )ariables locales se crean al iniciar la e-ecuci+n de un sub rogra%a y se liberan al finalizar en %is%o* Alcance de una Aariable: El alcance de una )ariable indica el lugar donde dic.a )ariable uede ser utilizada y es conocida 4donde est& declarada5* Las )ariables locales tienen un alcance li%itado al sub rogra%a (ue la declara* Las )ariables globales ueden usarse en el rogra%a rinci al y en los sub rogra%as internos e1ce to (ue e1ista una )ariable local con el %is%o no%bre (ue la global en cuyo caso tiene rioridad de uso la local* Resumen Cantidad de Elementos +imples 7 solo dato Compuestas Con.unto de datos OQltiples$ y w : a6R: ,aria!les Nlo!ales S6y: :aria!les Locales

Tipos de datos de Elementos &omog-neos: Elementos de 'gual tipo$ &eterog-neos: Elem$ distintos tipos$ Estructura de Datos etc$ Lugar de Almacenamiento Temporales BRAOC poco tiempo Permanentes BOem$ AuA$C CD D:D

Uso de memoria EstEticas DinEmicas E2#"0'#0"A DE DA#32 '3M,0E2#A Es un con-unto de ele%entos al%acenados ba-o un no%bre gen9rico con una cierta organizaci+n articular* Ho%og9neas: 'on-unto de ele%entos del %is%o ti o de datos Arreglos: 2us ele%entos )an uno a continuaci+n del otro en la "AM* Es un con-unto finito y ordenado de ele%entos .o%og9neos al%acenados en osiciones consecuti)as de la %e%oria "AM donde cada ele%ento se accede or su osici+n dentro del con-unto* Es una estructura de datos est&tica* Los arreglos se clasifican en unidi%ensionales o )ectores bidi%ensionales o %atrices tridi%ensionales o tensores o n-di%ensionales ara nQE@ de acuerdo a la cantidad de /ndices o osiciones (ue se necesitan ara identificar un ele%ento* Aectores: 0n )ector es un arreglo cuyos ele%entos se acceden or un solo /ndice (ue su osici+n o ubicaci+n dentro del con-unto*

Declaraci+n del )ector Programa :ectores Tipos estructurados :ector74 arregloB8%C: real 86< tipo de los elementos del ,ector :ector<4 arregloB8%C:carEcter 5% :aria!les Com9<: :ector7

Com97: :ector7 Ape: :ector< Los ele%entos de un )ector se al%acenan en la %e%oria "AM 4estructura te% oral5 en osiciones o celdas consecuti)as una or cada ele%ento* ,ara traba-ar con )ectores es necesario declararlos conociendo la cantidad total de ele%entos y de ti o de datos 4estructura est&tica5* Lla%a%os di%ensi+n o ta%a<o del )ector a la cantidad total de ele%entos del %is%o* ,ara deno%inar un ele%ento del )ector se utiliza el no%bre gen9rico del %is%o seguido del /ndice o osici+n del ele%ento encerrado entre ar9ntesis* Dic.o /ndice uede ser una constante o una )ariable entera* Las o eraciones sobre cada ele%ento indi)idual de un )ector son las ya dadas ara )ariables si% les 4asignaci+n i% resi+n o eraciones arit%eticologicas5* 3,E"A'$3!E2 4co%o con-unto5 'arga e inicializaci+n "e etir ara i:E 8? @P?8 @P?8 'o%F: 4i5:EP a ellidoK 7inre etir ara "e etir ara U:E8? $% ri%ir:K $ngrese un Leer: a e 4U5 7inre etir ara Muestra e $% resi+n de 'ontenido "e etir ara i:E 8? @P?8 $% ri%ir: a e 4U5 7inre etir ara 3 eraciones de "ecorrido 4tra%as y roceso con ele%entos consecuti)os5 3rdena%iento B6s(ueda $ntercalaci+n E-e% lo ,rogra%a E-e% lo )ectores #i os Estructurados Aector8E arreglo 4:PP5: real D?: Vse guardan los recios de re%ediosW Aector:E arreglo 4:PP5: car&cter >P V2e guardan los no%bres delos re%ediosW Aariables

A8:Aector8 A::Aector: Hacer 2u%a:EP "e etir

su%a: real X?: ro%: real D?:

i: entero >

ara i:E 8? :PP?8 $% ri%ir: J$ngrese el recio del re%edioK Leer: A8 4i5 $% ri%ir: J$ngrese el no%bre del re%edioK Leer: A: 4i5 2u%a:E2u%a O A8 4i5

7inre etir ara ,ro%:Esu%a/:PP V2aca el Y ro%edio de los re%ediosW $% ri%ir: JEl recio ro%edio es:K? ro% 'ont:EP "e etir ara i:E8? :PP?8 2i 4A8 4i5Q ro%5 entonces 'ont:E 'ontO8 $% ri%ir: A: 4i5 7insi 7inre etir ara $% ri%ir: JLa cantidad de re%edios %&s caros (ue el recio ro%edio es J? 'ont 7in.acer 7in rogra%a* MA"#"$'E2 0na %atriz es un arreglo bidi%ensional cuyos ele%entos est&n dis uestos en for%a de tabla de doble entrada or lo cual se los accede or %edio de dos /ndices: un /ndice de fila o osici+n .orizontal y un /ndice de colu%nas o osici+n )ertical* Las %atrices se al%acenan en %e%oria "AM 4estructura te% oral5? en osiciones consecuti)as de la %is%a* ,ara utilizar una %atriz debe conocerse la cantidad de filas y de colu%nas de la %is%a ara oder declararla* El ta%a<o de la %atriz esta dado

or el roducto 7$LA21'3L0M!A2 (ue es in)ariable durante la e-ecuci+n de un rogra%a 4estructura est&tica5* ,ara referirse a un ele%ento de una %atriz se utiliza el no%bre gen9rico de la %is%a aco% a<ada del /ndice de fila y colu%na* Las %atrices tienen las %is%as o eraciones (ue los )ectores* 'arga e $nicializaci+n "e etir ara i:E8? @?8 "e etir ara -:E 8? D?8 $% ri%ir: J$ngrese un datoK Leer: M8 4i? -5 7inre etir ara 7inre etir ara "ecorrido 4 or 7ila y 'olu%na5 Muestra de contenido "e etir ara i:E8? >?8 "e etir ara -:E8? D?8 $% ri%ir* M8 4i?-5 7inre etir ara 7inre etir ara

3rdena%iento B6s(ueda $ntercalaci+n

E-e% lo ,rogra%a Matrices #i os estructurados MatrizE arreglo 4D?>5: entero : V%atriz de D filas or > colu%nasW Aariables M8: Matriz "e etir ara -:E 8? >?8

"e etir ara i:E 8? D?8 $% ri%ir: J$ngrese un nu%eroK Leer: M8 4i? -5 7inre etir ara 7inre etir ara

B6s(ueda "ecursi)a de $nfor%aci+n

Deter%ina e1istencia

'once to de cantidad de a ariciones de un dato* ,osici+n/es de un dato* 3btener $nfor%aci+n Asociada B6s(ueda 2ecuencial B6s(ueda Dicot+%ica o Binaria4 se a lica en con-untos ordenados5 Los %9todos de b6s(ueda se utiliza ara recu erar infor%aci+n sobre con-untos y los %is%os nos ro orcionan infor%aci+n sobre e1istencia cantidad de a ariciones

osiciones o infor%aci+n asociada de un dato deter%inado* Los %9todos de b6s(ueda se clasifican en* 2E'0E!'$AL y D$'3#3M$'3 3 B$!A"$3* El secuencial se uede a licar sobre cual(uier con-unto de datos y consiste en co% arar un dato dado contra cada ele%ento del con-unto en for%a consecuti)a%ente* El %9todo dicot+%ico solo se a lica a con-untos ordenados y consiste en di)idir el con-unto a la %itad ara )erificar si en dic.a osici+n se encuentra el dato buscado* De no estar all/ se elige la subunidad donde se sigue buscando a licando el %is%o %9todo* B6s(ueda 'ondicional 7unci+n Buscar 4A: )ector? n: entero>? dato: entero :5:booleano Aariables i:entero : esta: booleano Hacer $:E8 Esta:Efalso "e etir %ientras4$LEn5 y 4A4$5LQdato5 $:E$O8 7inre etir%ientras 2i 4$LEn5 entonces esta )erdadero 7insi Buscar:E esta 7in.acer//7infuncion B02Z0EDA D$'3#3M$'A

7unci+n dico 4A: Aector? dato:entero:? n:entero :5:booleano Aariables Li?Lf?%itad: entero : Esta booleano Hacer

Li:E8 Lf:En Esta:Efalso "e etir %ientras [4LiLELf5\4estaEfalso5] Mitad:E[4Li OLf5/:] 2i 4A 4%itad5Edato5 entonces Esta:E)erdadero 2i 4A4%itad5Ldato5 entonces Lf:E%itad 7insi 7insi 7in.acer 7infuncion

E2#"0'#0"A2 DE DA#32 D$!AM$'A2 2e utilizan ara re resentar ob-etos de la )ida real cuyo ta%a<o uede )ariar durante la e-ecuci+n de un rogra%a er%itiendo crear celdas de datos o borrarlas en for%a din&%ica de acuerdo a las necesidades del roble%a* Las estructuras de Datos Din&%icas ueden ser te% orales o er%anentes de endiendo si est&n al%acenadas en la "AM o %e%oria au1iliar* 3tra de las caracter/sticas de las estructuras de datos din&%icas es (ue al%acenan sus datos en osiciones no consecuti)as de la %e%oria obligando co%o consecuencia a (ue cada dato contenga la direcci+n de donde est& al%acenado el ele%ento siguiente* Este ti o de estructura er%ite un %ane-o %&s eficiente de la %e%oria ya (ue ocu an y liberan la %is%a ba-o de%anda* Esta er%ite a.orro de %e%oria un uso %&s ordenado de la %e%oria entre rocesos si%ult&neos osibilidad de agregar ele%entos sin l/%ite de ta%a<o de la estructura? osibilidad de borrar ele%entos inter%edios sin

necesidad de .acer corri%ientos de datos? los ordena%ientos i% lican solo redirecciona%iento de unteros o de direcciones y no %o)i%iento de ele%entos* Estructuras de datos te% orales: dentro de este con-unto ode%os encontrar unteros listas ilas colas grafos &rbol etc* ,unteros: Es una )ariable cuyo contenido es la direcci+n de una celda de la %e%oria (ue contiene datos el uso de unteros i% lica el %ane-o de : )ariables* El untero ro ia%ente dic.o y la )ariable a untada or el untero en al cual se encuentran guardados datos (ue ueden ser de ti o standard o bien definidos or el usuario 4 ,untero a entero a un )ector a un registro etc*5* Dato

Direcci+n

\ )ariable a untada or el untero

,untero

Eficiencia de un Logarit%o La eficiencia de un Logarit%o se uede a ro1i%ar desde el unto de )ista te+rico con una funci+n %ate%&tica construida a artir de la cantidad de o eraciones b&sicas (ue realiza el algorit%o* De acuerdo al co% orta%iento y a la tasa de )elocidad de creci%iento de dic.a funci+n se uede acotar el tie% o de e-ecuci+n del algorit%o* Dado un algorit%o (ue rocesa n datos si lla%a%os #4!5 a su tie% o de e-ecuci+n se define (ue el tie% o de e-ecuci+n #4!5 de un algorit%o es de orden f4!5 [P 4f4!5] si e1iste una funci+n %ate%&tica f4!5 (ue es una cota de dic.o tie% o de un inter)alo dado* El orden de co% le-idad de #4!5 es f4!5 si y solo si e1iste f4!5 y constantes c?U no nulas t4!5LEf4!5 ara todo c?U LQP* Las funciones de co% le-idad %as frecuentes or orden de eficiencia son*

7unci+n: 'onstante Logar/t%ica lineal cuadr&tica cubica oli n+%ica e1 onencial y factorial*

Vous aimerez peut-être aussi