MSW04, Estructuras de Datos

7
MSW04, estructuras de datos.odt Luis González ESTRUCTURAS DE DATOS  A veces, manejamos muchos datos y variable s en un ro!rama. Los ro!ramad ores suelen a!ruar los datos y variables "ormando estructuras re!ulares, tales como matrices, listas, frases o palabras. #stas estructuras nos ermiten manejar, de "orma racional y ordenada, !ruos de caracteres o !ruos de datos ara utilizarlos como variables en nuestros ro!ramas. $na lista es una entidad comuesta or una sucesi%n de datos, &ue ueden ser letras, alabras comletas, variables o n'meros. (ara re"erirnos a uno de los elementos de una lista bastar)a con utilizar el )ndice &ue se*ala al elemento. $na matriz es una entidad &ue or!aniza los datos en "ilas y columnas. +e este modo, ara re"erirnos a un dato de una matriz bastar)a con citar los )ndices &ue se*alan a la "ila y la columna en la &ue se encuentra dicho dato. 1. PRIMI TIVA LISTA La rimitiva lista crea una lista cuyos elementos son los datos & ue se declaran. (or ejemlo escribe (lista !ara"#za T#le$# Le%& ' el)a* hará &ue aarezca !ara"#za T#le$# Le%& 'el)a  en la ventana de te-tos r#t la lista +, - /0 +r# # &e"r#0 hará &ue aarezca +, - /0 +r## &e"r#0 en la antalla !rá"ica 2az 3 4,56 2az 7 116 p#&p#s (lista 83 87* deslazará la tortu!a hasta las coordenadas /40 0 . Al res entar d atos en a ntalla c omre nder ás la utili dad ctica de la s listas . (or ejemlo, va mos a escr ibir un rocedimiento, llamado smar, &ue nos ida dos n'meros y nos devuelva el resultado de sumarlos en la ventana de !rá"icos. La rimitiva leepalabra nos ayudará or&ue ermite eserar a &ue el usuario escriba lo &ue &uiera en el teclado y caturarlo, incluyendo todos los si!nos y esacios tecleados, como una 'nica alabra. para smar  bp "$ /6 # t s l b t 1 inicializa las antallas p#&p#s +4,66 60 1 sit'a el untero ara rotular la re!unta r#t la +9: ; &<mer#s = ieres s mar>0 2az ?& m1 leepalabra 1 ide al usuario & ue teclee el rimer n'mero 2az ?& m, leepalabra 1 ide y catura el se!undo n'mero  bp "$ /6 1 limia la antalla p#&p#s +4,66 60 1 sit'a el untero al comienzo r#t la +LA SUMA DE 0 p#&p#s +4@ 60 1 de cada uno de los r#t la 8& m1 1 p#&p#s +45 60 1 "ra!mentos del mensaje r#t la +B0 p#&p#s +4-6 60 1 de salida Edición: 14 de abril de 2009 Elaborado con OpenOffice Página 1 de 6

Transcript of MSW04, Estructuras de Datos

Page 1: MSW04, Estructuras de Datos

8/16/2019 MSW04, Estructuras de Datos

http://slidepdf.com/reader/full/msw04-estructuras-de-datos 1/6

MSW04, estructuras de datos.odt Luis González

ESTRUCTURAS DE DATOS

 A veces, manejamos muchos datos y variables en un ro!rama. Los ro!ramadores suelen a!ruar losdatos y variables "ormando estructuras re!ulares, tales como matrices, listas, frases o palabras. #stasestructuras nos ermiten manejar, de "orma racional y ordenada, !ruos de caracteres o !ruos de datosara utilizarlos como variables en nuestros ro!ramas.

$na lista es una entidad comuesta or una sucesi%n de datos, &ueueden ser letras, alabras comletas, variables o n'meros. (arare"erirnos a uno de los elementos de una lista bastar)a con utilizar el)ndice &ue se*ala al elemento.

$na matriz es una entidad &ue or!aniza los datos en "ilas y columnas.+e este modo, ara re"erirnos a un dato de una matriz bastar)a concitar los )ndices &ue se*alan a la "ila y la columna en la &ue seencuentra dicho dato.

1. PRIMITIVA LISTA 

La rimitiva lista crea una lista cuyos elementos son los datos &ue se declaran. (or ejemlo

escribe (lista !ara"#za T#le$# Le%& 'el)a*

hará &ue aarezca !ara"#za T#le$# Le%& 'el)a en la ventana de te-tos

r#tla lista +, - /0 +r## &e"r#0

hará &ue aarezca +, - /0 +r## &e"r#0 en la antalla !rá"ica

2az 3 4,562az 7 116p#&p#s (lista 83 87*

deslazará la tortu!a hasta las coordenadas /40 0

. Al resentar datos en antalla comrenderás la utilidad ráctica de las listas. (or ejemlo, vamos a escribirun rocedimiento, llamado smar, &ue nos ida dos n'meros y nos devuelva el resultado de sumarlos enla ventana de !rá"icos.

La rimitiva leepalabra nos ayudará or&ue ermite eserar a &ue el usuario escriba lo &ue &uiera en elteclado y caturarlo, incluyendo todos los si!nos y esacios tecleados, como una 'nica alabra.

para smar bp "$ /6 #t sl bt 1 inicializa las antallasp#&p#s +4,66 60 1 sit'a el untero ara rotular la re!untar#tla +9:; &<mer#s =ieres smar>02az ?&m1 leepalabra 1 ide al usuario &ue teclee el rimer n'mero2az ?&m, leepalabra 1 ide y catura el se!undo n'mero bp "$ /6 1 limia la antallap#&p#s +4,66 60 1 sit'a el untero al comienzor#tla +LA SUMA DE 0p#&p#s +4@ 60 1 de cada uno de losr#tla 8&m1 1p#&p#s +45 60 1 "ra!mentos del mensaje

r#tla +B0p#&p#s +4-6 60 1 de salida

Edición: 14 de abril de 2009 Elaborado con OpenOffice Página 1 de 6

Page 2: MSW04, Estructuras de Datos

8/16/2019 MSW04, Estructuras de Datos

http://slidepdf.com/reader/full/msw04-estructuras-de-datos 2/6

MSW04, estructuras de datos.odt Luis González

r#tla 8&m,p#&p#s +16 60r#tla + 0p#&p#s +-6 60r#tla 8&m1 B 8&m, 1 calcula la suma y la resentafi&

2emos tenido &ue mover el láiz cada vez &ue hay &ue rotular una alabra, ara &ue el te-to &uede bienescrito. (ero observa &ue, si introduces n'meros lar!os, se roducen roblemas al rotular cada una de lasartes del mensaje de salida. 2az la rueba

Si &uieres &ue la resentaci%n del resultado sea más ele!ante, en una sola l)nea de c%di!o y sin tener &uereocuarte de cuánto esacio necesitas ara cada ci"ra, uedes conse!uirlo utilizando la rimitiva lista.#l rocedimiento smar &uedar)a as)

para smar bp "$ /6 #t sl btp#&p#s +4,66 60r#tla +9:; &<mer#s =ieres smar>02az ?&m1 leepalabra2az ?&m, leepalabra bp "$ /6p#&p#s +4,66 60r#tla (lista ?La ?sma ?$e 8&m1 ?B 8&m, ? 8&m1B8&m,*fi&

#n una 'nica l)nea de c%di!o hemos resuelto la resentaci%n. Mucho más ele!ante, 3no es cierto (ru5balointroduciendo n'meros muy lar!os o muy cortos.

,. PRIMITIVAS LEELISTA LEEPALARA 

La rimitiva leelista resenta en antalla una ventana de entrada de datos y c#&strFe &a lista c#&las palabras teclea$as p#r el sari# en su terminal. (or ejemlo

r#tla leelista

rotulará en la antalla cual&uier te-to &ue teclees en la ventana de entrada. (ru5balo.

Edición: 14 de abril de 2009 Elaborado con OpenOffice Página 2 de 6

Page 3: MSW04, Estructuras de Datos

8/16/2019 MSW04, Estructuras de Datos

http://slidepdf.com/reader/full/msw04-estructuras-de-datos 3/6

MSW04, estructuras de datos.odt Luis González

2az ?3 leelistaescribe eleme&t# , 83 

escribirá en la ventana de te-tos la se"&$a palabra de entre la lista de alabras tecleadas. 6omo ves, larimitiva eleme&t# & nos ermite seleccionar el elemento en5simo de una lista.

2az m leepalabraescribe eleme&t# 8m

escribirá en la ventana de te-tos el =i&t# carGcter tecleado. 7odo lo &ue el usuario teclea en la ventanade catura es una 'nica alabra y a&u), la rimitiva eleme&t# & nos ermite seleccionar el carácteren5simo de una alabra.

/. (or ejemlo, vamos a escribir un rocedimiento llamado pesetas caaz de convertir euros a esetas y &ueresenta el resultado sin esacios suer"luos

para pesetas bp "$ /6 sl #tp#&p#s +4,66 60r#tla +9De cG&t#s er#s se trata>0

2az er#s leelista2az pesetas 8er#s H1.-@ bp "$ /6p#&p#s +4,66 60 r#tla (lista 8er#s Er#s s#&8 8pesetas Pesetas.0fi&

8)jate en el distinto uso de los dos untos, como carácter "inal de la alabra son y como indicador del valorde la variable  pesetas

9tro ejemlo1 ha!amos un rocedimiento llamado i$e&ti$a$, caaz de re!untarte tu nombre y lue!osaludarte escribi5ndolo en la antalla.

para i$e&ti$a$ bp "$ /6 #t sl btr#tla +9CGl es t &#mbre F apelli$#s>02az ?&apel leelista bp "$ /6r#tla (lista J'#laK 8&apel*fi&

Si &uieres &ue la comutadora te salude utilizando s%lo el nombre, modi"icaremos la en'ltima l)nea dec%di!o de este modo. (ru5balo

r#tla (lista J'#laK eleme&t# 1 8&apel*

Edición: 14 de abril de 2009 Elaborado con OpenOffice Página 3 de 6

Page 4: MSW04, Estructuras de Datos

8/16/2019 MSW04, Estructuras de Datos

http://slidepdf.com/reader/full/msw04-estructuras-de-datos 4/6

MSW04, estructuras de datos.odt Luis González

o, de este otro modo &ue roone el rocedimiento =ie& &ue, en lu!ar de leelista utiliza el rocedimientoleealabra

para =ie& bp "$ /6 #t sl btr#tla +9C%m# te llamas>02az ?&#mbre leepalabra bp "$ /6r#tla (lista TU OMRE ES8 8&#mbre*fi&

-. PRIMITIVAS ELEMETO POELEMETO PRIMERO

Los elementos de una lista ueden seleccionarse citando el )ndice, como vimos en la sinta-is de la rimitivalista. 7ambi5n ueden modi"icarse utilizando el )ndice. (or ejemlo1

2az 77 lista ()er$e azl sepia m#ra$#*r#tla eleme&t# - 877 

toma el elemento : de la lista y rotula la alabra sepia en la antalla !rá"ica

2az 77 lista ()er$e azl sepia m#ra$#*p#&eleme&t# - 877 amarill#escribe 877 

reemlaza el elemento : de la lista or la alabra amarill# y, or tanto, al escribir la lista comletaescribirá )er$e azl amarill# m#ra$# en la ventana de te-tos

2az 77 lista ()er$e azl sepia m#ra$#*r#tla primer# 877 

toma el rimer elemento de la lista y rotula la alabra )er$e en la antalla !rá"ica

:. 2az un rocedimiento, llamado &#mbre, &ue re!unte su nombre de ila al usuario, lo !uarde en una variable, y lo rotule en la antalla con el "ormato 7$ ;9M<=# #S nombre.

para &#mbre bp sl #t "$ /6 1 reara la antallar#tla +9C%m# te llamas>02az ?&ame primer# leelista 1 toma la rimera alabra tecleada bp "$ /6 1 limia la antallar#tla (lista J'#laK 8&ame 9:; tal estGs>*

fi&

5. PRIMITIVAS PALARA NRASE

$na palabra es una lista de caracteres. (uede construirse desde unro!rama o solicitárselas al usuario desde el teclado. $na frase, or suarte, es una lista de alabras.

Las alabras y las "rases se manejan, or tanto, como una listacual&uiera, cuyos elementos ueden seleccionarse y modi"icarse.

palabra dato dato/ dato: ... 1"orma una alabra con los datos indicados

frase alabra alabra/ ... 1"orma una "rase con las alabras indicadas

Edición: 14 de abril de 2009 Elaborado con OpenOffice Página 4 de 6

Page 5: MSW04, Estructuras de Datos

8/16/2019 MSW04, Estructuras de Datos

http://slidepdf.com/reader/full/msw04-estructuras-de-datos 5/6

MSW04, estructuras de datos.odt Luis González

eleme&t# indice objeto 1devuelve el carácter o la alabra &ue ocua la osici%n del )ndice en la listaobjeto

4. (or ejemlo, odemos comoner el c%di!o de un rocesador, or ejemlo, uniendo en una alabra lamarca, el modelo y la velocidad

para c#$i"# bp "$ /6 #t2az ?&mserie (palabra ?I&tel4 ?PIV ?4 ?-, ?2z* 1construye la alabrar#tla 8&mserie 1escribe la alabrafi&

La rimitiva palabra i!nora los esacios, &ue nunca ueden "ormar arte de una alabra.

>. Ahora modi"icaremos el anterior rocedimiento, a*adiendo una instrucci%n &ue e-trae al!unos elementosde una alabra y los escribe en la ventana de te-tos

para c#$i"# bp "$ /6 #t2az ?&mserie (palabra ?I&tel4 ?PIV ?4 ?-, ?2z* 1construye la alabrar#tla 8&mserie 1escribe la alabra2az eleme&t# 8&mserie 1toma tres letras de la alabra, la s5tima2az 3 eleme&t# @ 8&mserie 1la octava2az m eleme&t# / 8&mserie 1y la novena letra2az tip# (palabra 8 83 8m* 1construye una nueva alabraescribe (lista micr#pr#cesa$#r 8tip#* 1la escribe en los te-tosfi&

?. 2az un rocedimiento con el nombre i&icial, &ue re!unte tu nombre y resonda cuál es la letra inicial detu nombre.

para i&icial bp #t sl "$ /6r#tla +9CGl es t &#mbre>0

2az ?letra primer# leepalabra bp "$ /6p#&p#s +4166 60r#tla +T &#mbre empieza p#r 0p#&p#s +1, 60r#tla 8letrafi&

@. 9 este otro ejemlo, más comleto, &ue e-trae datos de lo &ue tecleas en antalla

para erest bp "$ /6 #t sl bt

r#tla +Escribe e& la )e&ta&a t &#mbre F apelli$#s02az ?&apel leelista

Edición: 14 de abril de 2009 Elaborado con OpenOffice Página 5 de 6

Page 6: MSW04, Estructuras de Datos

8/16/2019 MSW04, Estructuras de Datos

http://slidepdf.com/reader/full/msw04-estructuras-de-datos 6/6

MSW04, estructuras de datos.odt Luis González

2az &#mbre eleme&t# 1 8&apel2az apelli$#1 eleme&t# , 8&apel2az apelli$#, eleme&t# - 8&apellimpiap#&p#s +4,66 60 r#tla (lista racias 8&#mbre*p#&p#s +4,66 -60 r#tla (lista T &#mbre empieza p#r eleme&t# 1 8&#mbre*p#&p#s +4,66 160 r#tla (lista T pa$re se apelli$a 8apelli$#1*

p#&p#s +4,66 4160 r#tla (lista T ma$re se apelli$a 8apelli$#,*fi&

Edición: 14 de abril de 2009 Elaborado con OpenOffice Página 6 de 6