Sei sulla pagina 1di 8

1

Algoritmos: Vectores

VECTORES:

Hasta el momento, para hacer mención a un dato utilizábamos una variable.

La dificultad se presenta cuando tenemos una gran cantidad de datos que están relacionados entre sí. Por ejemplo cuando se nos presenta un problema así:

Ejemplo 3: Una línea aérea vende pasajes en 3 aeropuertos. En cada uno de ellos hay tres empleados que son los que efectúan las ventas. Cada vez que un cliente compra pasajes, se registra los siguientes datos:

Número de aeropuerto.

Número de empleados.

Valor del pasaje.

Cantidad de pasajes

El ingreso de datos finaliza con un número de aeropuerto igual a cero. Los números de los empleados se identifican de 1 a 9. Cada cliente puede comprar más de un pasaje. Se pide calcular e imprimir:

a) La cantidad de pasajes vendidos por cada empleado.

b) La recaudación por aeropuerto.

c) El número de empleado que haya vendido mayor cantidad de pasajes en una venta.

d) La cantidad de pasajes vendidos por aeropuerto.

e) El porcentaje de ventas en pesos de cada empleado, sobre el total.

f) La cantidad de ventas que hayan excedido $5000.

En este caso particular para contar por ejemplo la cantidad de pasajes vendidos por cada empleado, deberíamos armar una estructura “SI” o “SI CASO” con nueve relaciones, debido a que son nueve empleados. En estos casos es conveniente usar vectores.

Concepto de Vector:

Un vector es un conjunto de datos del mismo tipo, numéricos o alfanuméricos, organizados bajo un mismo nombre y almacenados en la memoria de la computadora.

Cada dato se llama “elemento del vector” y está referenciado pos una “variable índice”, que indica la posición de dicho elemento dentro del vector.

Previo al uso del vector, hay que reservar una zona de memoria para su uso, así como definir el número de elementos necesarios para acceder a cada elemento de la estructura. Al proceso de reservar una zona de la memoria para almacenar los datos del vector, se lo denomina “dimensionar” y se realiza de la siguiente forma:

Sintaxis: Nombre (cantidad de elementos)

Contador[20]

El ejemplo nos indica que el vector de nombre “contador”, está compuesto por 20 elementos.

La cantidad de elementos es el máximo valor que puede tomar el índice.

Los vectores solo se dimensionan una vez al comienzo del programa.

Los índices sólo pueden tomar valores enteros. Si el índice sobrepasa la dimensión del vector se producirá un error.

2

Algoritmos: Vectores Siendo el vector:

V = {1,3, 7, 5, 8}

V[1] = 1 V[2] = 3 V[3] = 7 V[4] = 5 V[5] = 8

Elementos del Vector V

Cantidad de elementos

= 5 V[5] = 8 Elementos del Vector V Cantidad de elementos En éste caso lo

En éste caso lo dimensionamos: Dim V[5]

de elementos En éste caso lo dimensionamos: Dim V[5] Nombre del vector Ejemplos de cómo se

Nombre del vector

Ejemplos de cómo se trabaja con vectores:

Ejemplo 1: Leer desde el teclado 5 números. INICIO Dim V[5] DESDE i ← 1 A 5 Leer desde el teclado 5 números. INICIO Dim V[5] DESDE i ← MOSTRAR “Ingrese un número MOSTRAR “Ingrese un númeroLEER V[i] FIN-DESDE FIN.

Ejemplo 2: Sumar el número 2 a cada elemento del vector de dimensión 5.

INICIO Dim V[5] DESDE i ← 1 A 5 MOSTRAR “Ingrese un número” LEER V[i] FIN-DESDE DESDE i ← 1 A 5 V[i] ← V[i] + 2 FIN-DESDE FIN.

DESDE i ← 1 A 5 V[i] ← V[i] + 2 FIN-DESDE FIN. IMPORTANTE: antes de
DESDE i ← 1 A 5 V[i] ← V[i] + 2 FIN-DESDE FIN. IMPORTANTE: antes de
IMPORTANTE: antes de realizar cualquier operación tenemos que leer el vector (como si fuera una
IMPORTANTE: antes de realizar cualquier operación
tenemos que leer el vector (como si fuera una
variable)

3

Algoritmos: Vectores Se podría agregar el ciclo para mostrar cómo queda el vector antes del fin, así quedaría:

INICIO Dim V[5] DESDE i ← 1 A 5 MOSTRAR “Ingrese un número” LEER V[i] FIN-DESDE DESDE i ← 1 A 5 V[i] ← V[i] + 2 FIN-DESDE DESDE i ← 1 A 5 MOSTRAR “el elemento”, i, “posee el valor”, V[i] FIN-DESDE

e lemento”, i, “posee el valor”, V[i] FIN-DESDE FIN. Ejemplo 3: Calcular la sumatoria de los
e lemento”, i, “posee el valor”, V[i] FIN-DESDE FIN. Ejemplo 3: Calcular la sumatoria de los
e lemento”, i, “posee el valor”, V[i] FIN-DESDE FIN. Ejemplo 3: Calcular la sumatoria de los

FIN.

Ejemplo 3: Calcular la sumatoria de los elementos del vector.

INICIO Dim V[5] acum ← 0 DESDE i ← 1 A 5 MOSTRAR “Ingrese un número” LEER V[i] FIN-DESDE DESDE i ← 1 A 5 acum ← acum + V[i] FIN-DESDE MOSTRAR “la sumatoria es”, acum FIN.

+ V[i] FIN-DESDE MOSTRAR “la sumatoria es”, acum FIN. Ejemplo 4: Calcular la productoria de los
+ V[i] FIN-DESDE MOSTRAR “la sumatoria es”, acum FIN. Ejemplo 4: Calcular la productoria de los

Ejemplo 4: Calcular la productoria de los elementos del vector.

INICIO Dim V[5] acum ← 1 DESDE i ← 1 A 5 MOSTRAR “Ingrese un número” LEER V[i] FIN-DESDE DESDE i ← 1 A 5 acum ← acum * V[i] FIN-DESDE MOSTRAR “la productoria es”, acum FIN.

LEER V[i] FIN-DESDE DESDE i ← 1 A 5 acum ← acum * V[i] FIN-DESDE MOSTRAR
LEER V[i] FIN-DESDE DESDE i ← 1 A 5 acum ← acum * V[i] FIN-DESDE MOSTRAR

4

Algoritmos: Vectores Ejemplo 5: Dado un vector de 20 elementos, informar cuántos son negativos, cuántos positivos y cuántos cero.

INICIO Dim A[20] pos ← 0 neg ← 0 MOSTRAR “Ingrese 20 números” DESDE i ← 1 A 20 LEER A[i] FIN-DESDE DESDE i ← 1 A 20 SI A[i] > 0 ENTONCES pos ← pos + 1 SINO SI A[i] < 0 ENTONCES neg ← neg +1 FIN-SI FIN-SI FIN-DESDE ceros ← 20 – pos neg MOSTRAR “La cantidad de positivos es:”, pos MOSTRAR “La cantidad de negativos es:”, neg MOSTRAR “La cantidad de ceros es:”, ceros FIN.

neg MOSTRAR “La cantidad de ceros es:”, ceros FIN. Ejemplo 6: Dado un vector de 10
neg MOSTRAR “La cantidad de ceros es:”, ceros FIN. Ejemplo 6: Dado un vector de 10

Ejemplo 6: Dado un vector de 10 elementos, generar otro cuyos elementos sean el duplo del anterior.

INICIO Dim A[10], B[10] DESDE i ← 1 A 10 MOSTRAR “Ingrese un número” LEER A[i] FIN-DESDE DESDE i ← 1 A 10 B[i] ← A[i] * 2 FIN-DESDE DESDE i ← 1 A 10 MOSTRAR “El elemento”, i, “es:”, B[i] FIN-DESDE

FIN.

1 A 10 B[i] ← A[i] * 2 FIN-DESDE DESDE i ← 1 A 10 MOSTRAR
1 A 10 B[i] ← A[i] * 2 FIN-DESDE DESDE i ← 1 A 10 MOSTRAR
1 A 10 B[i] ← A[i] * 2 FIN-DESDE DESDE i ← 1 A 10 MOSTRAR

5

Algoritmos: Vectores Ejemplo 7: Dado un vector de n (donde n<= 10) elementos, generar otro cuyos elementos sean el duplo del anterior.

En este caso, si bien no conozco la dimensión exacta del vector, informan que puede tener hasta 10 elementos y no más de 10. Por esta razón dimensionamos el vector para 10 elementos.

INICIO Dim A[10], B[10] MOSTRAR “Ingresar la cantidad de elementos del vector menor o igual a 10” LEER n DESDE i ← 1 A n MOSTRAR “Ingrese un número” LEER A[i] FIN-DESDE DESDE i ← 1 A n B[i] ← A[i] * 2 FIN-DESDE DESDE i ← 1 A n MOSTRAR “El elemento”, i, “es:”, B[i] FIN-DESDE

FIN.

“El elemento”, i, “es:”, B[i] FIN-DESDE FIN. Cálculo de máximos y mínimos: Ejemplo 8: Dado un
“El elemento”, i, “es:”, B[i] FIN-DESDE FIN. Cálculo de máximos y mínimos: Ejemplo 8: Dado un
“El elemento”, i, “es:”, B[i] FIN-DESDE FIN. Cálculo de máximos y mínimos: Ejemplo 8: Dado un

Cálculo de máximos y mínimos:

Ejemplo 8: Dado un vector de 10 elementos, informar el valor máximo (de los elementos).

Es conveniente inicializar el máximo con el primer elemento del vector, o con un valor arbitrario, dependiendo de las magnitudes que informa nuestro vector. Si vamos a inicializarlo con un valor arbitrario, se puede hacer, luego del dimensionamiento del mismo. En cambio, si vamos a inicializarlo con el primer elemento del vector, deberemos hacerlo luego de ingresar los elementos del vector.

INICIO Dim A[10] DESDE i ← 1 A 10 MOSTRAR “Ingrese un número” LEER A[i] FIN-DESDE max ← A[1] DESDE i ← 1 A 10 SI A[i] > max ENTONCES max ← A[i] FIN-SI FIN-DESDE MOSTRAR “El elemento máximo del vector es:”, max FIN.

10 SI A[i] > max ENTONCES max ← A[ i] FIN-SI FIN-DESDE MOSTRAR “El elemento máximo
10 SI A[i] > max ENTONCES max ← A[ i] FIN-SI FIN-DESDE MOSTRAR “El elemento máximo

6

Algoritmos: Vectores Ejemplo 9: Dado un vector de 10 elementos, informar el valor mínimo (de los elementos).

INICIO Dim A[10] DESDE i ← 1 A 10 MOSTRAR “Ingrese un número” LEER A[i] FIN-DESDE min ← A[1] DESDE i ← 1 A 10 SI A[i] < min ENTONCES min← A[i] FIN-SI FIN-DESDE MOSTRAR “El elemento máximo del vector es:”, min FIN.

MOSTRAR “El elemento máximo del vector es:”, min FIN. Ejemplo 10: Dado un vector que contiene
MOSTRAR “El elemento máximo del vector es:”, min FIN. Ejemplo 10: Dado un vector que contiene

Ejemplo 10: Dado un vector que contiene 50 sueldos. Calcular:

La suma vector.

La cantidad de sueldos mayor que $1500.

INICIO Dim A[50] acum ← 0 sueldosmas ← 0 DESDE i ← 1 A 50 MOSTRAR “Ingrese un valor”

LEER A[i] FIN-DESDE DESDE i ← 1 A 50 acum ← acum + A[i] SI A[i] > 1500 ENTONCES sueldosmas ← sueldosmas + 1 FIN-SI FIN-DESDE MOSTRAR “El vector suma de sueldos es:”, acum MOSTRAR “La cantidad de sueldos mayora $1500 es:”, sueldosmas FIN.

“El vector suma de sueldos es:”, acum MOSTRAR “La cantidad de sueldos mayora $1500 es:”, sueldosmas

sueldo

“El vector suma de sueldos es:”, acum MOSTRAR “La cantidad de sueldos mayora $1500 es:”, sueldosmas

7

Algoritmos: Vectores Ejemplo 11: Dados n nombres y notas de un conjunto de alumnos (siendo n <= 30), informar:

La nota más alta.

Los nombres de los alumnos que tienen esa nota.

En éste caso vamos a tener dos “vectores asociados”: uno con los nombres de los alumnos y otro con las notas.

Por ejemplo:

 

Nombres

 

Notas

1

Juan

1

8

2

Luis

2

7

3

Ana

3

9

4

Pedro

4

6

5…

María…

5…

9…

A cada uno de los nombres se le asocia instantáneamente una nota. Para buscar el máximo:

Recorre el vector de las notas hasta que encuentra el mayor valor.

Luego vuelve a recorrer el vector para encontrar el o los nombres asociados a esa nota máxima.

INICIO Dim Nom[30], Nota[30] MOSTRAR “Ingrese el valor de n <=30” LEER n DESDE i ← 1 A

el valor de n <=30” LEER n DESDE i ← 1 A n MOSTRAR Nom[i] FIN-SI

n

el valor de n <=30” LEER n DESDE i ← 1 A n MOSTRAR Nom[i] FIN-SI
el valor de n <=30” LEER n DESDE i ← 1 A n MOSTRAR Nom[i] FIN-SI

MOSTRAR Nom[i] FIN-SI FIN-DESDE FIN.

MOSTRAR “Ingrese el nombre y una nota” LEER Nom[i], Nota[i] FIN-DESDE max ← Nota[i] DESDE i ← 2 A SI Nota[i] > max ENTONCES max ← Nota[i] FIN-SI FIN-DESDE DESDE i ← 1 A SI Nota[i] = max ENTONCES

n

n

8

Algoritmos: Vectores Ejemplo 12: Dadas las notas de una clase, informar cuántos alumnos sacaron 1, cuántos 2, cuántos 3, cuántos 4, etc. El ingreso de datos finaliza con nota negativa.

En éste ejemplo vamos a dimensionar un vector “contador” que tiene 10 elementos (son 10 notas) y el valor de los elementos de dicho vector, será la cantidad de notas que tenemos de cada una.

INICIO

Dim Cont[10]

(es un vector donde voy a ir contabilizando la cantidad de alumnos que se sacaron cada una de las 10 notas diferentes)

DESDE i ← 1 A 10 Cont[i] ← 0 FIN-DESDE FIN-DESDE

(recorremos el vector inicializando cada elemento en cero para luego poder sumar)

MOSTRAR “Ingrese una nota”

LEER nota MIENTRAS nota>= 0 cont[nota] ← cont[nota] + 1

(es un ciclo mientras según dice el enunciado)

(el valor de la nota me dice el número de elemento donde debo sumar 1)

MOSTRAR “Ingrese una nota” LEER nota FIN-MIENTRAS DESDE i ← 1 A 10 MOSTRAR “La cantidad de alumnos con nota”, i, “es:”, cont[i] FIN-DESDE FIN.

nota FIN-MIENTRAS DESDE i ← 1 A 10 MOSTRAR “La cantidad de alumnos con nota”, i,