MSW04, Estructuras de Datos
-
Upload
marsapa-paredes -
Category
Documents
-
view
219 -
download
0
Transcript of 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
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
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
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
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
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