vector es diagrama

27
tipo_de_dato nombre_variable[tamaño] Ejemplo: int vector [10] Entero tipo de dato vector nombre de la variable que representa a todo el arreglo 10 tamaño del arreglo 1. ARREGLOS UNIDIMENSIONALES Un arreglo unidimensional o vector es un conjunto finito y ordenado de elementos homogéneos. La propiedad ordenado se refiere a que los elementos primer, segundo, tercero y n- esimo pueden ser identificados. Además los elementos de un arreglo son homogéneos, es decir todos son del mismo tipo de datos. La forma general para definir un arreglo de sólo una dimensión es la siguiente: vector 13 24 35 12 78 53 71 29 30 83 1.1 Forma de acceso a un elemento específico del arreglo Para accesar a uno de los elementos del arreglo en particular, basta con invocar el nombre del arreglo y especificar entre corchetes el número de casilla que ocupa el elemento en el arreglo. 1 0 1 2 3 4 5 6 7 8 9 Ejemplo x[5] = 53 x[9] = 83 Recuerde que el arreglo almacena desde la casilla 0. Por tanto, en un arreglo de 10 casillas, éstas están numeradas del 0 al 9 tipo_de_dato se refiere al tipo de dato de cada elemento del arreglo. tamaño es la cantidad de

Upload: saraoconnor

Post on 18-Aug-2015

256 views

Category:

Documents


2 download

DESCRIPTION

fundamentos de programacion

TRANSCRIPT

tipo_de_dato nombre_variable[tamao]Ejemplo: int vector [10]Entero tipo de datovector nombre de la variable que representa a todo el arreglo10 tamao del arreglo1. ARREGLOS UNIDIMENSIONALESUn arreglo unidimensional o vector es un conjunto finito y ordenado de elementos homogneos! "apropiedad ordenado se refiere a que los elementos primer# segundo# tercero y n$ esimo pueden seridentificados! %dem&s los elementos de un arreglo son homogneos# es decir todos son del mismotipo de datos!"a forma general para definir un arreglo de s'lo una dimensi'n es la siguiente: vector1()*(+1),-+(,1).(0-(1.1 Forma de acceso a un elemento espec!co del arre"lo/ara accesara uno de los elementos delarregloen particular# bastacon invocar el nombre delarreglo y especificar entre corchetes el n0mero de casilla que ocupa el elemento en el arreglo!/or ejemplo# si queremosaccesar al cuartoelementodeunarreglode10# seinvocar1adelasiguiente manera: nombre2variable[(] el caso anteriorvector[(]31)!4abe notar que solo el vector global tienen el nombre vector y los elementos de estese referencianmediante el sub1ndice correspondiente! %s1 se usa un identificador global de la estructura perosepuede acceder a cada elemento independientemente!/or ejemplo para registrar los datos de temperatura en grados cent1grados de las )* horas del d1ase puede definir el vector5E6/E7%5U7% de )* elementos de tipo real ya que la temperatura nosiempre se representa en trminos enteros!El valor m1nimo permitido de un vector se denomina l1mite inferior y el valor m&8imo permitido sedenominal1mitesuperior! Enel ejemplode5E6/E7%5U7%# el l1miteinferior es0yel l1mitesuperior es )(!101)(*+9,-.Ejemplox[5] = 53x[9] = 83Recuerde que el arregloalmacena desde la casilla0. Por tanto, en un arreglode 10 casillas, stas estnnumeradas del 0 al 9tipo_de_datoserefiereal tipodedatodecada elemento del arreglo!tamaoes la cantidad de elementos agrupados en la misma variable!,,#+1)1(1(#+)01+#*10#("aformadealmacenamientodelosvectoresenmemoriaesadyacente! /orejemplo# el vectoranterior de 10 elementos se representa gr&ficamente por 10 posiciones de memoriasucesivas!MEMORIA5E6/E7%5U7%[0] :irecci'n 85E6/E7%5U7%[1] :irecci'n 8;15E6/E7%5U7%[)] :irecci'n 8;)5E6/E7%5U7%[(] :irecci'n 8;(5E6/E7%5U7%[)(] :irecci'n 8;)(%lgunas instrucciones que son v&lidas para este vector se representan en la siguiente tabla%cciones 7esultadosEscribir a el valor de 5E6/E7%5U7%[0]o ,5E6/E7%5U7%[*]*0 %lmacena el valor *0 en 5E6/E7%5U7%[*]?U6% 3 5E6/E7%5U7%[1];E6/E7%5U7%[(]%lmacena en suma 5E6/E7%5U7%[1];E6/E7%5U7%[(] o es decir )0#+?U6% 3 ?U6% ; 5E6/E7%5U7%[*] @ncrementa lavariable suma con elvalor de5E6/E7%5U7%[*]5E6/E7%5U7%[+]3E6/E7%5U7%[+]; *#+?uma *#+ a 5E6/E7%5U7%[+]#5E6/E7%5U7%[+] tendr& como valor )*#+5E6/E7%5U7%[9]3E6/E7%5U7%[1]5E6/E7%5U7%[)]%lmacenalasumade5E6/E7%5U7%[1] ;E6/E7%5U7%[)] en5E6/E7%5U7%[9] elnuevo valor de 5E6/E7%5U7%[9] ser& 1*#+%dem&s cabe mencionar la importancia que debe tener la utili>aci'n de los 1ndices y es necesario#mostrar cierta notaci'n!?upongamos un vector A de 9 elementos!,$+1)1(-)025E6/E7%5U7%[0]5E6/E7%5U7%[1]5E6/E7%5U7%[)]5E6/E7%5U7%[(]5E6/E7%5U7%[*]5E6/E7%5U7%[+]5E6/E7%5U7%[9]5E6/E7%5U7%[)(]A[0]A[1]A[)]A[(]A[*]A[+]10012 3 4 51.# Operac!ones $on %ectores "as operaciones que sepuedenreali>arconvectoresduranteel procesoderesoluci'n deunproblema o alguna actividad son:%signaci'n"ectura B escrituraCrdenaci'nD0squeda%ctuali>ar ar en 0# puedes empe>ardesde 1 e ir hasta 10# luego el bucle quedar1a de la siguiente manera: I obviamente todo lo dem&s que corresponde!I 1, 10, 10e1es tener presente &ue, e! incremento #e! 1uc!e 2or no necesariamente es #e 1 en 1, pue#es #e3inir e! incremento #e acuer#o a tus necesi#a#es, aumentan#o o #isminu4en#o)0 1 2 3 4%mbos diagramas de flujo hacen posible mostrar los elementos de las pociones pares del vectorA#ladiferenciaest&enquelasoluci'n1# el segundobuclea los siguientes ejercicios de ambas formas1! :ado el vector 6 de dimensi'n L se pide mostrar los elementos queestas almacenados enlas posiciones m0ltiplos de( empe>andodesde la posici'n ()! :ado el vector M de dimensi'n L se pide mostrar los elementos queestas almacenados enlas posiciones m0ltiplos de* empe>andodesde la posici'n *(! :ado el vector N de dimensi'n L se pide mostrar los elementos queestas almacenados en las posiciones m0ltiplos de + empe>ando desde la posici'n +5InicioI 0, N51,1LeerV[I]LeerNI 0, N51,2/ostrarV[I]2inInicioI 0, N51,1LeerV[I]LeerNI 0, N51,1/ostrarV[I]2inI mo# 260Solucin 1 Solucin 2Aoy a ayudarte en la soluci'n del primer ejercicio# dispondr los diagramas de flujo# dedos tipos de soluciones# te toca colocar las instrucciones!5e aconsejo reali>ar las respectivas pruebas de escritorio!OLo olvides queP El vector tiene un nombreAar la suma de suselementos# obteniendo el resultado en el vector 4102 100 20 10 45 (' 1' (5 45 '2 4'5 125 1 210 1 2 3 4 5 7 ( ' 9 10 11 12 130on#e N6140on#e / 6 10112 225 45 22 70 95 97 '9 55 9( 4'5 125 1 210 1 2 3 4 5 7 ( ' 9 10 11 12 13"a dimensi'n del vector resultado en este caso es 1* es decir L# dimensi'n del vector %# pero puedehaberocurridoqueDtengamayor dimensi'n# porloqueladimensi'nde4ser1a6# estonosconduceaafirmar queparaaveriguar ladimensi'nde4esnecesarioreali>ar unapreguntaa primero# dando lugar al traspasode los elementos del vector de dimensi'n mayor al vector resultante! Empecemos a construir la soluci'n# como es de suponer# el primerpaso a reali>ar escargar los elementos a los vectores# como las dimensiones no son igualesnecesitamos de dos bucles de lectura# uno para el vector % y el otro para D!10 125 25 12 15 1( (' 14 10 150 1 2 3 4 5 7 ( ' 99E;FB B B B. . .6 6 6 6. . .Gar& primero!102 100 20 10 45 (' 1' (5 45 '2 4'5 125 1 210 1 2 3 4 5 7 ( ' 9 10 11 12 13Cbserva que mientras haya elementos en ambos vectores# recorremos los sub1ndices de maneraparalela# es decir el elemento de la posici'n 0ar un recorri#opara!e!o>asta!a #imensi-nmenor en e! caso /Luego tras!a#amos !ose!ementosrestantes#e! "ector; a! "ector F)*+or &uD empe$amos #es#e9B1 4 "amos >asta N51.Imprimiremos !os e!ementos#e F, en este caso es #e#imensi-n N por ser ma4orUnelasdos partesytendr&s eldiagramade flujo completo#4odif1caloPPPEn un vector %# introducir L elementos# a partir de % almacenar en el vector 4# los elementos de %queno serepiten# finalmente desplegar ambos vectores!Ejemplo) 1 ) ( ) 1 * )) 1 ( *:ejo en tus manos el proceso de lectura de datos en el vector %# eso no implicaque dejes de reali>arloOL CC " A @ : E ?S % 4 E 7 " CP5eniendoel vector %conelementoscualesquierayadem&srepetidos# laideaprincipal consisteenllevar estoselementosa4perosinrepetirlos# lasoluci'npropuesta consiste en lo siguiente! %puesto en quecoincidimos en la idea de tomar el primer elemento de % y directamente asignarloen4# puesbienesomismoreali>aremos# perodentrodel bucle# paraaveriguarsi esel primerelementode % debemospreguntarsi @ 30# esdecirsi el sub1ndice@esigual acero# si esas1almacenamos ese primer elemento de % en 4# utili>aremos un sub1ndice W para las posiciones delvector 4# e iniciali>aremos W en 0 fuera del bucle Jor ! T:ime por que es conveniente utili>ar otrosub1ndice para 4# y por qu iniciar su valor en 0 fuera del bucleU"uego el diagrama queda de la siguiente forma:Dien# esto suceder& solo cuando @ 3 0# Tqu haremos cuando @sea diferentea 0UEsevidentequeel siguienteelementoaobtener# enel ejemploesel 1# antesdellevar esteelemento al vector 4# debemos verificar su e8istencia en el mismo! T4'moUEl siguiente elemento es) t o 1an#era en 1 caso contrario mantenemos sMen0) Ene! casosM614paramos !a"eri3icaci-n, e!#iagrama &ue#a #e !a siguiente 3ormaF12I0,N51,1I60F[K] 6 ;[I]K K B1K 0VsM 6 0J 6 0J A6 K51NsM 6 0;[I] 6 F[J]sM6 1 J J B1sM 6 0F[K] ;[I]K K B1J@L/ientras eLista e!ementos en F, 4 e! sM este apaga#oes #ecir sM 6 0, esto permitir rea!i$ar !acomparaci-nentre e! e!emento actua! #e ; con to#os!os e!ementos #e FEncen#emos sM 6 1 siencontramos un e!ementoigua!, este "a!or tam1iDnpermite sa!ir #e! 1uc!e:i no se >a encontra#o un"a!or igua! en F, se a!macenaeste e!emento en !a casi!!acorrespon#iente #e F, 4recorremos una posici-n en F,por e!!oincrementamos Kenuno7eali>a los siguientes ejercicios 1! Enunvector %# introducirLelementos# apartirde % almacenarenel vector 5#elelementoyel n0merodevecesqueserepitenloselementos# finalmentedesplegarambos vectores!Ejemplo) 1 ) ( ) 1 * )

) * 1 ) ( 1 * 1)! :ado el vector 7# llevar todos los elementos primos del vector 7 al vector /)1 1( ) ** ( 1( 11 )0 1( ) ( 1( 11(! :ado un vector % de dimensi'n L ar& un primer recorrido de la tabla comparando pares de elementos contiguos eintercambiando contenidos si es necesario!Primer recorrido, 1+ *0 10 1, )( ),, 1+ *0 10 1, )( ),, 1+ *0 10 1, )( ),@ntercambio, 1+ 12 32 1, )( ),@ntercambio, 1+ 10 14 32 )( ), @ntercambio, 1+ 10 1, #5 32 ),@ntercambio%l finali>ar el recorrido la tabla quedar1a:, 1+ 10 1, )( ), *0En el primer recorrido se han reali>ado intercambios# se vuelve a repetir el proceso# pero ahora conla tabla resultado de la pasada anterior!Segundo recorrido, 1+ 10 1, )( ), *0, 1+ 10 1, )( ), *0@ntercambio, 12 16 1, )( ), *0

, 10 1+ 1, )( ), *0

, 10 1+ 1, )( ), *0 , 10 1+ 1, )( ), *019%l finali>ar el recorrido la tabla quedar1a:, 10 1+ 1, )( ), *0Lote que la tabla ya esta ordenada# sin embargo si ese no fuese el resultado se vuelve a reali>arcomparaciones de pares efectuando los intercambios correspondientes y de esa manera e8istir& n$1recorridos! 7eali>a los diagramas de flujo de los dos anterioresmtodos de ordenaci'n!1! 6todo /or Cbtenci'n ?ucesiva :e 6enores)! 6todo :e "a Durbuja C :el @ntercambioMane1o de D"!tos con vectores?e tiene dos n0meros positivos almacenados en el vector % y D# el vector D contiene un n0mero de un solod1gito y el vector % contiene un n0mero mayor a 100