Está en la página 1de 12
ESCUELA DE INGENIERIA ASIGNATURA: FUNDAMENTOS DE PROGRAMACION GUIA DE PRACTICA 6 ESTRUCTURAS DE DATOS: VECTORES Profesores Responsables: CHECA FERNANDEZ, ROCIO (Coordinadora) GARCIA VILCAPOMA, GLADYS VILCA NEYRA, GUSTAVO ‘sobre los derechos de autor: Decreto Legislative 822 OCTUBRE - 2010 GUIA DE PRACTICA 6 ESTRUCTURAS DE DATOS: VECTORES Objetivo: Conocer y utilizar la estructura de datos denominada vector o arreglo de una dimension, como almacenamiento temporal de informacién. & Reealizar operaciones de procesamiento de informacién en los vectores y ordenarlos. Definicién: Es un conjunto de datos del mismo tipo, aimacenado uno a continuacién del otro y Hallar y mostrar la suma y el promedio de los nimeros digitados > Hallar y mostrar el nimero mayor. > Haliar y mostrar el nimero menor. Nota: almacenar los valores de la posicién 0 hasta la 9 del vector. Version 4 [ "1. Guardar los valores en el vector VE. “2. Recorrer el vector VE para sumar, hallar el mayor y el menor valor. “3, Hallar el promedio e mostrar resultados. Private Sub BtnEjecutar_Click(ByVal sender As System.Object, ByVal e As System EventArgs) Handles BnEjecutar Click | | Dim VE(9) As integer, | As Integer Dim Suma As integer, Promedio As Single |, Dim Mayor As Integer, Menor As Integer “4. Guardar los valores en el vector VE For!=0 To VE(l) = Input6ox(’Digitar un valor entero", Next "2. Recorrer el vector VE para sumar, hallar el mayor y el menor valor Mayor = Integer MinValue Menor = Integer MaxValue ‘asicion del Vector : " & I) Suma + VE(I) If Mayor < VE()) Then Mayor = VE() End if If Menor > VE(I) Then Menor = VE(!) End If Next “3. Hallar el promedio y mostrar resultados Promedio = Suma / 10 messageBox.Show ("Sumai ria: ” & Suma & vbNewline & _ "Promedio : " & Promedio & vbNewline & _ "Mayor > "& Mayor & vbNewiine & _ "Menor " & Menor “& vbNewline , *Reporte’, MessagefioxButtons.OK, MossageBoxicon Information ) End Sub a Problema 3 Elaborar un programa que procese las boletas de atencién de los pacientes de un centro médico escolar, cuyas edades varian de 1a 17 afos. Se debera digitar la edad de cada paciente, verificando que la edad esté en el rango de 1 @ 17. La digitacién finaliza cuando el operador responda NO a la pregunta ¢Desea continuar?, luego de lo cual el programa mostrara: - Cantidad de pacientes atendidos por edades = Promedio de edades de los pacientes atendidos Version 1 “1, Hacer ' 4.4 capturar la edad ' 4.2 Verificar el rango de edad y contar en el vector VE segiin edad ‘4.3 Acumular las edades y contar pacientes ‘Hasta que operador responda NO ‘2, Calcular el promedio ‘3. Mostrar el conteo por edades y el promedio de edades Version 2 | Private Sub BtnEjecutar_lick(8yVal sender As System.Object, ByVal e As System EventArgs) Handles Bact ck Dim VE(17) As intger, | As Integr Dim EDAD &s integer, CONT As Integer Dim Rota As DialogResu Prom As Single, Suma as Integer Sum Cont=0 Fori= 1017 VEQ)=0 Next Ha Do | Do | ‘-teapturar la edad EDAD = InputBox( Digital edad del paciente’, "Edad vida de 1 a 17 aos") 112 Veriicarelrango de eded y contar en el vector VE segin edad WEDAD < 1 Or EDAD > 17 Then MessageBox Show(’ERRORY, ‘ingtese dato nuevamnenie", MessageBoxButtons OK, MessageBoxcon Eon) End Loop Uni Edad >= 1 and Edad <= 17 \VE(EDAD)= VE(EDAD) +1 "43 Acumular las edades y contar pacientes ‘Suma Suma + EDAD ‘Se acumulan todas las edades CONT = CONT +1 “Se oventan los pacientes Rpia = MessageBox Show (Desca cominuar?,“OPCION’, MessageBoxButtons YesNo, MessageBoxlcon information) ta quo el operador responda NO Loop Unt Rpta = voNo '2. calcula a promedio Prom=SumalCONT ‘2, mostrar el conteo por edades ye! promedio de adades Forl=1To17 stad ems Add (i) stant tems Aga (VEQ) Next Messagebox Show (El prometio de edades es:"& Prom, “Reporte, MessageBoxBuitons OK, MessageBoxiconInfrmation) End Sub Nota: Haga los cambios necesarios para mostrar la MODA, es decir la edad mas frecuente. Problema 4 Desarrollar un proyecto para procesar los montos cobrados por el flete de camiones de una empresa de transporte de carga, para calcular el monto acumulado por el flete cobrado por camion y el numero de veces que cada camién efectué un transporte. Para realizar dicho proceso se deberd digitar el codigo del camicn y el monto cobrado por cada fle. Los camiones estén identificados por un codigo que varia de 1a 20. La digitacion finaliza ‘cuando el operador responda NO a la pregunta ,Desea continuar? AA finalizar la digitacion, procesar y mostrar un listado de los resultados, con el siguiente detalle: Cédigo Nro. de Viajes Monto del flete Nota: Puede emplear los resultados en 3 ListBox Version 4 [it-Hacer ‘1 capturarel cédigo camion y el monto del fete 41.2. acumuiar en el vector MONTO segun codigo 1.3 contar viajes en el vector VE segin codigo, Hasta que el usuario decida NO continuar '2 Mostrar codigo, # viajes y monto acumulado fetes Version? ace nasane era aaa Private Sub BtnEjecutar_Clck(By¥al sonder As System Object, 8/Vale As System EventArgs) Handles BinEjocutar.Ciek Dim VE(20) As Integer, MONTO(20) As Single Dim CO As Integer, MO As Single Dim Rpta As DialogResut, | As integer For! =1 to 20 VEU MONTOW) =o | Next | 4, Hacer bo + "4.4 Capturar el cédigo camién y el monto del flete Do CO = Val ( InputBox ("Digtar el Codigo del Camién If. CO<10R.CO>20 then ODIGO >= 1 y <= 20) MessageBox Show("ERROR’, "reingrese_-— dato", MessageBoxButtons.OK, MessageBoxlcon Error) End if Loop until CO >=1 And CO <= 20 MO = ValinputBox(Digtarel Monto dl Fete," MONTO")) 4.2 Reumularen el vector MONTO sagan codigo MONTOLGS) = WONTOLCO) MO |+ 1.3 Contar viajes en el vector VE sega cédigo VEICO) = VECO) +1 Fa > MessageSox ShowCDesea continuar 7 *, “OPCION', MessageBoxButton.YesNo, NessageBorcon rematon j*jaeta que usuario Goclda NO contiwuar {Gop Usil pla = vNo "2, Mostrar cédigo, # viajes y monto acumulado fletes. For=t to2o if MONTO() > 0 Then Ustcodign tems Aad LstCantViajes. Items. Add VE(I) ListMontoAcumul.Items.Add MONTO(|) end | Now! [Lend Sub_ ALGORITMO DE ORDENAMIENTO Sea un vector A de N elementos desde el elemento 1 al N. Para ordenar el vector A(N) de menor a mayor se puede emplear. For i= 1TON-1 For j=i+1TON Hf AQ) > AG) Then ‘Intercambio de valores de A(i) y A) aux = A(i) AQ) = AQ) A() = aux End If Next Next Ejemplo 1: Ordenar el vector A de menor a mayor (creciente) Mostrar en la lista 1 el vector original y en la lista 2 el vector ordenado en orden creciente o ascendente. Public Class Form: Unidoxt [ListBox Sub BtnBjecutar_Click (ayval As System.Object, ByVal e As entargs) Handles aBjecutar.Click Const N= 6 Dim A(N) As Integer Dim i, j As Integer Dim aux As Integer ‘1. Reignar los valores al vector A() For i= 1 To N A(i) = Val (IaputBox("Ing. valor entero:")) ListBoxt Teens. Aad (a(4)) Next "2, Ordenar los valores de menor a mayor (ASCENDENTE) For i= 1T0N- 2 For j=i4+170N Te ad) > AG) then O = © ntercambio de valores de Ati) y AGT aux = ACL) Para ordenarios en orden descendente (de Mayor a menor), se cambia el signo, a < Ai) = AG A(j) = aux ena Tf Next Next "3. Mostrar los valores ya ordenados en la lista 2 For i= 1ToN ListBox2.Ttems.add(A(i)] Next End sub nd Class Ejemplo 2: Ordenar vectores paralelos, segiin uno de los vectores. Por ejemplo, si se tienen los vectores Nombres y Notas y se desea ordenar en orden creciente Seguin las notas, debe tenerse en cuenta que cuando se intercambian los valores de notas(i) con notas() debe hacerse lo mismo con Nombres(i) y Nombres(j), para que los datos relacionados no se alteren. Public Class Form Private Sub BtnE} r_Click (ByVal sender As System.Object, Byval e As system. Eventar Handles Btnsjecut: Const N= 6 Dim Nombres(N) As string Dim Notas(N) As Integer Dim 4, , auxNota As Integer Dim audion Ag String 1. Asignar valores a los vectores For i= 170 N Nombres(i) = InputBox("Ing. nombre: ") Notas (i) = Val(InputBox("ing. nota:") Next Si se desea ordenaren orden alfabético segin los Nombres, sof debe cambiar el condicional Nombres(i) > Nombres(j) Fori=1T0N-1 Oo For j = i+1 Tow I Notas(i) > Notas(j) Then © ‘Intercambio de Notas(i) y wotas(3) auxNota = Notas (i) Notas (i) = Notas(3) fotas (3) = auxNota Intercambio de Nomb: auxvon = Nombres (i) 6 (i) y Nombres (3) Nombres (i) = Nombres (3) Nombres(j) = auxNom End if Wext Next 13. Mostrar los vectores For i= 1ToN ListBoxl. Items Add (Nombres (i) ListBox2 .Ttems Add (Notas (i)) Next End Sub End Class PROBLEMAS PROPUESTOS Problema 1 Desarrolle un proyecto que permita digitar 10 nimeros enteros mayores que cero, almacenandolos en un vector. Luego debera ejecutar los siguientes procesos: > Hallar y mostrar el numero mayor y su posici6n(es) en el vector > Hallar y mostrar el ntimero menor y su posicién(es) en el vector. Problema 2. Se desea registrar un maximo de 30 temperaturas para realizar un estudio del clima. E! programa solicitara un entero N que representa el cantidad de dias en que tomaran temperaturas, donde N >=1 y N<=30. ~ Calcular las temperaturas promedio, minima y maxima = Mostrar los dias que se superé la temperatura promedio. Problema 3. En un gimnasio existe un programa que permite evaluar los resultados de un entrenamiento de maximo 20 dias en una maquina caminadora El programa solicita al inicio el nimero de dias de entrenamiento (N) y luego pide los siguientes datos para cada dia: - Numero de calorias quemadas. - Numero de kilometros recorridos, - Velocidad de la carrera, Después del ingreso de los datos el programa mostrara: El total de calorias quemadas durante el entrenamiento (descartando el valor minimo). = El promedio de velocidad del entrenamiento (descartando la maxima). - El dia que se logro el maximo de kilometros recorridos, indicando cuantas calorias se quemo ya qué velocidad corr. Problema 4. Un programa procesara las edades de un grupo de estudiantes que oscilan entre 4-20 afios y hace un conteo de estudiantes por edad. El ingreso de datos finaliza cuando el usuario indica que no desea continuar. El reporte mostraré: a) La edad y la frecuencia de cade edad. b)Promedio de edades en base a las frecuencias. c)La(s) edad(es) mas frecuente(s). Problema 5. Un programa procesara la produccién semanal de una fabrica de aros para automaviles, siendo los datos de entrada la cantidad de unidades producidas en cada uno de los siete dias de la semana, El reporte debe mostrar: a) Los datos de entrada indicando el dia (1 al 7) y la cantidad producida, )La produccion maxima y el dia(s) on que ocurri. ) La produccion minima y el dia(s) en que ocurri6. 4d) Los dias que la produccién fue inferior al promedio. Problema 6. Desarrollar un proyecto que permita ingresar los 4 primeros digitos del cbdigo de 410 alumnos. Luego, teniendo en cuenta que los cuatro primeros digitos representan el arto de ingreso, halle que alumno identificado con los nimeros de 1 a 10, registra el afio mas antiguo de ingreso; si hublese mas de un alumno con el mismo afio, muestre cada uno de ellos. Problema 7: Desarroliar un proyecto que permita digitar 10 nimeros enteros mayores que 20 y menores que 300, hallar la cantidad de nimeros primos que existen y en que posicién se encuentran dentro del vector. Problema 8. Desarrollar un proyecto que permita digitar los votos de las cedulas de votacion de las elecciones presidenciales, considerando que se han registrado 10 listas, a las cuales se les ha asignado un numero de identificacién que varia del 1 al 10; el indicador 11 se asigna a los votos en bianco y el 12 para los votos viciados o nulos Procesar las actas de la provincia de Lima, digitando por cada acta, el numero de votos que obtuvo cada lista, asi como los votos en blanco y los viciados; la digitacion finaliza cuando el operador responda NO a la pregunta desea continuar?.Al finalizar la digitacion, mostrar en orden descendente los resultados indicando: a)El numero de lista, la cantidad de votos y el porcentaje obtenido con relacién a los votos validos. b)La cantidad de votos en bianco y los nulos se listan al final Problema 9: Desarrollar un proyecto que permita procesar las ventas de tarjetas de crédito vendidas por un conjunto de 20 empleados de un banco, los mismos que estan identificados por un cédigo que varia del 1 al 20. Por cada venta se incrementa en uno el niimero de tarjetas vendidas y se acumula el monto limite asignado a ta tarjeta, La digitacion finaliza cuando el operador responde No a la pregunta zDesea continuar?; al finalzar la digitacién mostrar los siguientes resultados: Codigo del vendedor, numero de tarjetas vendidas, monto acumulado de las tarjetas y_el monto de la comision por cada vendedor, considerando que a cada uno le pagan el 2% sobre el monto total Problema 10: Escriba un programa que luego de almacenar 15 nimeros, entre positives y negativos (ejm: -2, 5, 8, -8, 10, 15,...etc) en un arreglo unidimensional (vector), genere dos vectores uno de valores positivos y el otro de valores negativos Finalmente mostrard independientemente, los dos vectores y la suma de los valores en cada vector. Problema 11: Se tienen tres vectores paralelos de un maximo de 30 elementos, uno contiene los nombres de personas, el otro la edad de cada persona y el itimo el sexo de cada persona realice un programa que: a) Ingrese los nombres, edades y sexo de las personas, Validaciones: + laedad entre 1 y 99 aftos + el sexo"F"0"M" b) Calcule el promedio de edad de hombres y el promedio de edad de mujeres, ©) Muestre el nombre personas cuyas edades estén en el rango comprendido entre ambos promedios de edades. Problema 12: En dos vectores paralelos de un maximo de 100 elementos, se almacena los datos de un grupo de libros: titulo y cantidad de paginas. Se pide un programa que ‘+ Pida la cantidad de libros a ingresar entre 1 y 100. ‘+ Solicite el titulo y cantidad de paginas de cada libro. Luego el programa debe: a) Calcular el promedio de paginas de TODOS os libros b) Mostrar el titulo y cantidad de paginas de todos aquellos libros que superen el promedio de paginas, Problema 13: Para una muestra de N personas entrevistadas (De 5a 25) se almacenan los siguientes datos: DNI, sexo, edad y valor del cociente intelectual. Se desea saber: a) Cociente intelectual promedio de las personas entrevistadas. ) Cociente intelectual promedio de los hombres y las mujeres, ©) Quienes tienen mayor cociente intelectual, los hombres o las mujeres. 4) Ala edad de 15 afios cuantos tienen un cociente intelectual mayor de 120 @) Diferencia de los promedios los cocientes intelectuales de los que tienen 15 aftos y los que tienen 45 afios, 4) Datos de la persona que tiene el mayor cociente intelectual; en caso de coincidir mas de tuna persona mostrar un listado con los datos de las mismas. Problema 14: Desarrollar un programa para ingresar y almacenar en un vector 10 nmeros enteros mayores que 0 y menores que 300; procedera a ordenar los nimeros digitados de mayor a menor y listar los valores en forma ordenada, Problema 15: Desarrollar un programa para digitar el cédigo y el nombre de 10 alumnos, almacenando los datos en dos vectores (los cédigos en un vector numérico y los nombres en vector tipo cadena) EI programa procederd a ordenar los datos en funcién del nombre, en forma alfabética y luego proceda a listar el cédigo y el nombre del alumno, en forma ordenada Problema 16: Desarrollar un proyecto de programacion que procese las notas de todos los ‘alumnos que siguieron el curso de “Fundamentos de Programacién’, para hallar la frecuencia de repeticién de las Notas. Se digitaran las notas que varian desde 0 hasta 20; las notas fuera de rango no se consideran; la digitacion finaliza cuando el operador responda NO a la pregunta Desea continuar? Al finalizar la digitacion procesar y mostrar: a Cada nota y su frecuencia, en orden descendente en funcién de la frecuencia de repeticion. El promedio del curso. El porcentaje de aprobados. El porcentaje de desaprobados. vyy Problema 17: Desarrollar un programa para procesar las boletas de venta de una zapateria, para lo cual se deberd digitar el cédigo y el monto por cada articulo vendido; tener en cuenta que puede efectuar mas de una venta por cada articulo. El cédigo del articulo varia de 1 a 50. La digitacién termina cuando el operador responda NO a la pregunta: ;Desea continuar?, Al finalizar la digitacion, procesar y mostrar los siguientes resultados: > Monto total de las ventas. > Monto promedio de ventas por cada articulo, > Listado ordenado por el monto promedio (descendente). Cédigo Nro. de Ventas__Monto Acumulado__Monto Promedio Problema 18: Desarrollar un proyecto de programacién para ingresar un maximo de 20 valores enteros diferentes de cero en un vector, iuego solicitara al usuario que escoja entre dos ‘opciones mediante la siguiente pregunta: {Desea eliminar los valores 1: pares 0 2: impares? A continuacion procederd a eliminar los elementos pares o impares Finalmente los valores que no fueron eliminados deberan ser reubicados dentro del vector hacia el inicio de! mismo en orden descendente. jm’ Datos ingresados: 8, 5, 12, 8, 12, 5, 7. Opcién: impares Vector depurado: 12, 12, 8, 8. Problema 19: Desarrollar un proyecto que permita procesar los resultados de un muestreo del ingreso de personas a un Centro Comercial, teniendo en cuenta que a las personas se les ha clasificado de la siguiente manera: Niftos Nitias. ‘Adolescentes hombres. Adolescentes mujeres Aduttos jovenes hombres. Adultos jovenes mujeres. ‘Adultos mayores hombres. Adultos mayores mujeres. @Noonena La digitacién de la muestra se hace en funcion del numero de identificacion (1,2, 3, 4, 5, 6,7 u 8). La digitacion finaliza cuando el operador responde NO a la pregunta zDesea continuar? Al finalizar muestre la cantidad total de personas en orden descendente indicando el tipo de persona (1,2, 3, 4, 5, 6,7 U8) Problema 20: Se tiene dos vectores A y B. A tiene M elementos enteros y B tiene N elementos enteros. Los elementos de ambos vectores estan ordenados ascendentemente. Elabore un programa que obtenga un vector C con M+N elementos ordenados ascendentemente. DEBE RECORDAR QUE: D Sise desea inicializar un vector, esto debe hacerse asi Dim vec() as integer = {12,45,87,89,23,45,60,23,70,80) Se declara el vector sin indicar el indice Dim A(60) as Integer Si no se inicializa e! vector Al), hay que colocar el indice, 50 vendria a ser el ultimo indice del vector 2 Los vectores contadores, en instrucciones de asignacién, se usan asi Conti) = Con(i) +1 (dentro de un estructura de control repetitiva) 1 Los vectores acumuladores, en instrucciones de asignacion, se usan asi: Vec(i) = Vecti) + valor (dentro de un estructura de control repet ul

También podría gustarte