Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ASIGNATURA:
FUNDAMENTOS DE
PROGRAMACIÓN
GUÍA DE PRÁCTICA 6
ESTRUCTURAS DE DATOS:
VECTORES
Profesores Responsables:
CHECA FERNÁNDEZ, ROCÍO (Coordinadora)
OCTUBRE - 2012
GUÍA DE PRÁCTICA 6
Objetivo:
Definición:
Es un conjunto de datos del mismo tipo, almacenado uno a continuación del otro y
denominados por un nombre común.
Cada dato o elemento es identificado por el nombre común y por un índice numérico que indica
su posición dentro del arreglo. El primer índice es cero(0).
Declaración:
Dim V( N ) As Tipo
Donde:
V : Es el nombre del Vector
N : Indica la posición o índice del último elemento del vector, siendo la primera posición
el índice 0.
USO DE VECTORES:
KmRec(5)
0 50 60 120 10
0 1 2 3 4 5
1
El vector KmRec almacena la cantidad de km. recorridos por cada uno de los 5 autos en las
carreras realizadas en el día de Hoy. Ejemplo, el auto 4 recorrió esta cantidad de km: primero
20 km, luego 40 km y finalmente 60 km, acumulo en total 120 km
KmRec(i) = KmRec(i) + KRPC KRPC almacena la cantidad de Km recorridos por carrera.
Problema 1
Desarrollar un proyecto que permita digitar y almacenar en un vector 10 números enteros,
luego:
Versión 1
‘1. repetir desde 1 hasta 10 el Ingreso de datos
‘2. repetir mostrar el valor almacenado en el vector de la posición 1 a la 10
‘3. repetir mostrar el valor almacenado en el vector de la posición 10 a la 1
Versión 2
Private Sub btnEjecutar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEjecutar.Click
Dim VE(10) As Integer, i As Integer
‘1. Repetir desde 1 hasta 10 el Ingreso de datos
For i = 1 To 10
VE(i) = InputBox("Digitar un valor entero", "V(" & i & ”)= ” )
Next I
‘2. repetir mostrar el valor almacenado en el vector de la posición 1 a la 10
For i= 1 to 10
LstNumeros1.Items.Add VE( i )
Next
‘3. repetir mostrar el valor almacenado en el vector de la posición 10 a la 1
For i = 10 To 1 Step -1
LstNumeros2.Items.Add VE( i )
Next
End sub
Problema 2
Desarrolle un proyecto que permita digitar 10 números enteros cualesquiera, almacenándolos en un
vector; luego ejecutar los siguientes procesos:
Hallar y mostrar la suma y el promedio de los números digitados.
Hallar y mostrar el número mayor.
Hallar y mostrar el número menor.
Nota: almacenar los valores de la posición 0 hasta la 9 del vector.
Versión 1
2
Versión2
Private Sub BtnEjecutar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles BtnEjecutar.Click
Dim VE(9) As Integer, I As Integer
Dim Suma As Integer, Promedio As Single
Dim Mayor As Integer, Menor As Integer
‘1. Guardar los valores en el vector VE
For I = 0 To 9
VE(I) = InputBox("Digitar un valor entero", "Posicion del Vector : " & I)
Next
‘2. Recorrer el vector VE para sumar, hallar el mayor y el menor valor
Mayor = Integer.MinValue
Menor = Integer.MaxValue
Suma = 0
For I = 0 To 9
Suma = Suma + VE(I)
If Mayor < VE(I) Then
Mayor = VE(I)
End If
If Menor > VE(I) Then
Menor = VE(I)
End If
Next
‘3. Hallar el promedio y mostrar resultados
Promedio = Suma / 10
messageBox.Show ("Sumatoria : " & Suma & vbNewline & _
"Promedio : " & Promedio & vbNewline & _
"Mayor : " & Mayor & vbNewline & _
"Menor : " & Menor & vbNewline , “Reporte”, MessageBoxButtons.OK,
MessageBoxIcon.Information )
End Sub
Problema 3
En un gimnasio existe un programa que permite evaluar los resultados de un entrenamiento de
máximo 30 días en una máquina caminadora.
El programa solicita al inicio el número de días de entrenamiento (N) y luego pide los siguientes
datos para cada día:
- Número de calorías quemadas (mayor a cero).
- Número de kilómetros recorridos (mayor a cero).
- Velocidad de la carrera (mayor a cero).
Después del ingreso de los datos el programa mostrará:
a) El total de calorías quemadas durante el entrenamiento.
b) El promedio de velocidad del entrenamiento.
c) Listar los días que se logro el máximo de kilómetros recorridos, indicando el día,
calorías quemadas y a qué velocidad corrió.
Versión 1
3
Versión 2
4
ALGORITMO DE ORDENAMIENTO
End Sub
End Class
5
Ejemplo 2: Ordenar vectores paralelos, según uno de los vectores.
Por ejemplo, si se tienen los vectores Nombres
y Notas y se desea ordenar en orden creciente
según las notas, debe tenerse en cuenta que
cuando se intercambian los valores de notas(i)
con notas(j) debe hacerse lo mismo con
Nombres(i) y Nombres(j), para que los datos
relacionados no se alteren.
6
PROBLEMAS PROPUESTOS
Problema 1. Desarrolle un proyecto que permita digitar 10 números enteros mayores que
cero, almacenándolos en un vector. Luego deberá ejecutar los siguientes procesos:
a) Hallar y mostrar el número mayor y su posición(es) en el vector.
b) Hallar y mostrar el número menor y su posición(es) en el vector.
c) El promedio de los números digitados
Problema 4. Desarrollar una aplicación que permita almacenar en dos vectores paralelos título
y cantidad de páginas de N libros, (N > 0 y N <= 100).
Primero se deberá ingresar la cantidad N de libros a procesar. Luego por cada libro digitar: el
título y cantidad de páginas. Al finalizar la digitación de datos mostrar los siguientes resultados:
a) Promedio de páginas de los libros
b) Listar el titulo y cantidad de páginas de todos aquellos libros que superen el promedio de
páginas.
Problema 5. Se requiere una aplicación que permita calcular el promedio final de N alumnos
del curso de Fundamentos de Programación de una sección, considerando que las aulas tienen
una capacidad máxima de 34 alumnos
El alumno tiene un número de orden que va desde 1, 2, 3, 4, 5,… N (máximo 34)
El programa deberá solicitar al inicio el número N de alumnos de la sección (>= 0 y <= 34).
Luego deberá digitar, los datos de cada uno de los N alumnos:
Nombre
Tarea Académica ( 0 – 20 )
Examen Parcial ( 0 – 20 )
Examen Final ( 0 – 20 )
Si el dato digitado no está dentro del rango indicado deberá mostrar un mensaje de error y
solicitará volver a digitar el dato.
Por cada alumno, calcular el promedio final aplicando la ponderación (3, 3, 4 respectivamente)
y el redondeo de punto a favor del alumno si el residuo final es >= 5.
Almacenar en vectores el nombre y el promedio final de cada alumno
Luego deberá listar los siguientes resultados:
a) Listado de notas, indicando el número de orden, nombre, y promedio final de cada
alumno
b) Promedio final del salón
c) La mayor nota final y los Nombres de los alumnos que obtuvieron nota igual a la mayor.
7
Problema 7. Crear un proyecto que permita digitar números enteros de cinco dígitos y
almacenarlos en el vector “VE”. La cantidad de números a digitar deberá ser como mínimo 3 y
como máximo 20.
Digitar y almacenar los N números enteros de cinco dígitos los mismos que deberán ser
>10000 y < 100000.
Después de digitar los números, proceder a copiar en un segundo vector “PAR” todos aquellos
números en los cuales el dígito medio sea par y en el vector VE borrará el número asignando el
valor cero en su posición.
Ejemplo:
Número 23456 dígito medio. 4 es par copiar al vector PAR
Número 12345 dígito medio: 3 No es par se mantiene en el vector VE
Al finalizar el proceso, en el vector “VE” desplazar hacia adelante los números que quedaron
por no tener el dígito medio par, de forma tal que los números que quedan estén uno a
continuación del otro.
a) Listar en dos ListBox los dos vectores: “VE” y “PAR”
Problema 8. Desarrollar un proyecto que permita ingresar los nombres y los códigos de N
alumnos máximo 30. Por cada código digitado se deberá separar los cuatro primeros dígitos
que corresponden al año de ingreso y almacenar en vectores paralelos el nombre y el año de
ingreso de cada alumno.
Luego, halle el año más antiguo (menor) de ingreso. Listar la posición en el vector, el nombre y
el año de ingreso, de todos los alumnos con año de ingreso igual al más antiguo (menor)
Problema 9. Para una muestra de N personas entrevistadas (mínimo 5 máximo 25) se debe
digitar y almacenar en vectores los siguientes datos: DNI, sexo, edad y valor del cociente
intelectual. Se desea saber:
a) Cociente intelectual promedio de las personas entrevistadas.
b) Cociente intelectual promedio de los hombres y las mujeres.
c) Quienes tienen mayor cociente intelectual, los hombres o las mujeres.
d) A la edad de 15 años cuantos tienen un cociente intelectual mayor de 120.
e) Diferencia de los promedios los cocientes intelectuales de los que tienen 15 años y los que
tienen 45 años.
f) Datos de la persona que tiene el mayor cociente intelectual; en caso de coincidir más de
una persona mostrar un listado con los datos de las mismas.
Problema 11. Desarrollar un programa para digitar el código, el nombre y el promedio final de
N alumnos (máximo 30), almacenando los datos en tres vectores.
Ordenar los datos en función del nombre, en forma alfabética y luego proceda a listar el código,
el nombre y el promedio final de cada alumno.
Problema 12. Desarrollar un proyecto para ingresar N números enteros (máximo 20), los
números deberán ser > 0 y serán almacenados en un vector, luego solicitará al usuario que
digite una opción para eliminar valore: (1) elimina pares; (2) elimina impares.
Proceder a eliminar los elementos pares o impares según sea la opción elegida.
Los valores que no fueron eliminados deberán ser reubicados dentro del vector hacia el inicio
del mismo en orden descendente.
Listar el vector tal como fue ingresado y el vector después del proceso de eliminación
Ejemplo:
Datos ingresados: 8, 5, 12, 8, 12, 5, 7, 6, 20.
Opción: (2) Impares
Vector depurado y ordenado: 20, 12, 12, 8, 8, 6.
8
Problema 13. Se tiene dos vectores A y B. A tiene M elementos enteros y B tiene N elementos
enteros (máximo 10). Los elementos de ambos vectores están ordenados ascendentemente.
Elabore un programa que obtenga un vector C con M+N elementos ordenados
ascendentemente. Asigne a criterio el valor para M y N.
Problema 16. El Gimnasio “Good Life Gym” requiere una aplicación que le permita almacenar
los datos de sus clientes, para preparar los programas de entrenamiento individual. Se
registran un máximo 100 clientes por mes. A cada cliente se le asigna un número de registro
que varia desde 1, 2, 3, 4, 5,… N.
Digitar al inicio el número N de clientes registrados en el mes (>= 3 y <= 100).
Para cada cliente se deberá digitar:
Nombre
Edad >= 16 y <= 70
Peso, >= 35 y <= 120
Talla, >= 1.40 y <= 2.00 (m)
Si el dato digitado no está dentro del rango indicado deberá mostrar un mensaje de error y
solicitará volver a digitar el dato.
Por cada cliente se deberá calcular y mostrar el índice de masa corporal (IMC) y la categoría
que le corresponda. El IMC se calcula dividiendo el peso de la persona entre su talla elevada
al cuadrado. La categoría se halla según la tabla que se muestra.
Almacenar en vectores paralelos el nombre, la edad, peso, talla, el IMC y la categoría de cada
cliente.
9
IMC (Kg/M2) Categoría
< 18 A
[18 - 25] B
> 25 y < 30 C
>= 30 D
Mostrar un listado ordenado de menor a mayor según sea la edad de cada cliente. El listado
deberá mostrar: el número de registro, Edad, IMC y categoría de cada cliente.
Problema 17. Desarrolle un programa para un aeropuerto que prepare la información de las
salidas de N vuelos nacionales. Al inicio el programa solicitar el número de vuelos N (> 0 y <=
50). Por cada vuelo digitar y almacenar en vectores paralelos los siguientes datos:
Código de vuelo nacional. Por ejemplo: LAN206.
Destino. Por ejemplo: CUZCO.
Hora-minuto de salida. Por ejemplo: el número 1811, representa las 18 horas y 11 minutos.
Debe verificarse que este valor numérico este en el rango de 500 y 2300, y que el residuo
de dividirlo entre 100 sea un valor entre 0 y 59.
Después de ingresar los datos de todos los vuelos ordenar los vectores paralelos según la
hora-minuto de salida, en forma ascendente.
Listar el código de vuelo, el destino y la hora de salida.
El formato de la hora-minuto de salida deberá emplear el símbolo dos puntos para separar la
hora de los minutos. Ejemplo 18:11
10