Está en la página 1de 80

Algoritmos y

Programación
Unidad 2 – Estructuras de
control repetitivas

Ing. Norman Reyes Morales


Contenido
1. Estructuras de control repetitivas de salida controlada
2. Estructuras de control repetitivas de entrada controlada
3. Estructuras de control repetitivas Contador Implícito
4. Algunos algoritmos útiles
5. Estructuras de Almacenamiento (Vectores y Matrices)
1. Estructuras de control
repetitivas de salida controlada
1. Estructura Repetitiva de Salida Controlada
Permite repetir una serie de acciones o instrucciones y termina este proceso cuando se
cumple la condición indicada.
DIAGRAMA DE FLUJO PSEUDOCÓDIGO

REPETIR

BLOQUE DE Bloque de acciones


ACCIONES
HASTA CONDICION DE SALIDA

NO SI
CONDICIÓN
1. Estructura Repetitiva de Salida Controlada
Diagrama
Pseudocódigo Diagrama NS
de flujo
Inicio
Instrucción
anterior Repetir (o Hacer) Tipo de dato de variables
Identificación de
constantes
Boque de Bloque de instrucciones a Instrucción anterior
Instrucciones repetir hasta que la Repetir
a repetir Condición se cumpla.
Bloque de instrucciones a
Hasta Condición repetir hasta que la
No Condición se cumpla
Condición
Hasta Condición
Si
Siguiente instrucción
Siguiente
Instrucción Fin algoritmo
7
1. Estructura Repetitiva de Salida Controlada
Ejemplo 1.1
Diseñe un algoritmo que incremente un número inicial en su propio valor hasta que supere el
tope de 5 veces su valor. Inicio

A
ANÁLISIS
Dato de entrada
PSEUDOCÓDIGO N <- 0
C <- 0 1 2 3 4 5
A: número a incrementar, INICIO
(entero) A 3 3 3 3 3
Leer A N<- N + A
Dato intermedio N <-0 C <- C + 1 N 3 6 9 12 15
N: acumulador del C <- 0 C 1 2 3 4 5
incremento (entero)
Repetir
Dato de salida N >= No
N <- N +A 5*A
C: contador de repetición
C <- C + 1
Si
Hasta (N >= 5*A)
“Se incrementó “+C+”
Mostrar “Se incrementó ” +C+ “ veces” veces”
Se incrementó 5 veces
FIN

• Practicar , diseñando el diagrama de flujo…… Fin


1. Estructura Repetitiva de Salida Controlada
EJEMPLO 1.2

• Cree un algoritmo que permita ingresar números, pero no se sabe cuántos


números se ingresarán, por lo que deberá realizar la pregunta “Desea
continuar” y si la respuesta es negativa, deberá terminar con los ingresos.
Además, indique cuántos números se ingresaron y cuál fue su suma.
• Tome en cuenta que cuando programe los números deberán mostrarse en un
listado a medida que se ingresan.

El caso anterior se resuelve utilizando una


estructura repetitiva de salida controlada
como se verá a continuación.
1. Estructura Repetitiva de Salida Controlada
Solución 1.2: Diagrama de flujo y pseudocódigo
Inicio

i <-0, S<-0

i <- i +1 Inicio
ANÁLISIS i <- 0, S <- 0
Dato de entrada
n Repetir
i <- i + 1
n: número (Real) S <- S + n Ingresar n
Rpta: respuesta del usuario (Texto) S <- S + n
“¿Desea
Dato intermedio Continuar? Mostrar “¿Desea continuar? S”
S:suma (Real) Ingresar Rpta
Dato de salida Rpta Hasta Rpta = “N”
i: contador de números (Entero) Mostrar i, s
No Fin
Rpta = “No”


¿Qué cambios realizaría en cada
I, S algoritmo para poder validar la
respuesta como “Sí” o “No”?
Fin
1. Estructura Repetitiva de Salida Controlada
EJEMPLO 1.3
• Elabore un algoritmo que solicite el ingreso de los nombres y sueldos de N empleados y
luego determine el sueldo promedio.
1. Estructura Repetitiva de Salida Controlada
Solución 1.3 Este problema se resuelve utilizando una
estructura repetitiva de salida controlada
como se verá a continuación.

Tabla de variables
Variable Descripción Tipo de dato Uso Validación
NE Número de empleados Entero Entrada >0
Nom Nombre empleado Texto Entrada <>””
Sueldo Sueldo empleado Real Entrada >0
C Contador de empleados Entero Intermedia
S Suma de sueldos Real Intermedia
Prom Promedio Real Salida
1. Estructura Repetitiva de Salida Controlada
Inicio
Solución 1.3 Diagrama de flujo
NE 1 No

No Si Nom, Nom< > “” Y


C <- 0
NE > 0 C <- C + 1 Sueldo Sueldo > 0
S <- 0
Nom=“” o
Si Sueldo<=0
“ Dato
errado”
S = S + Sueldo

2 Si
Prom <- S / NE C >= NE

No
1
Prom

2
Fin
1. Estructura Repetitiva de Salida Controlada
Pseudocódigo
Inicio Inicio
Entero: NE, C
Ingresar: NE Real: Sueldo, S,
Si NE > 0 Entonces Prom Texto: Nom
Leer: NE
C <- 0 , S <- 0
No NE > 0 Si
Repetir Repetitivas de C <- 0, S <- 0
C <- C + 1 salida controlada:
Repetir
Repetir 1)Para la
validación. C <- C + 1
Ingresar: Nom, Sueldo 2)Para la Repetir
Hasta Nom < > “” y Sueldo > 0 evaluación de los Leer: Nom, Sueldo
N Sueldos. Mostrar:
S <- S + Sueldo “Error” Hasta Nom < > “” y Sueldo > 0
Hasta C >= NE S <- S + Sueldo
Prom <- S / NE Mostrar Prom Hasta C = NE
Sino Prom <- S / NE
Mostrar “Error” Mostrar Prom
Fin Si Fin algoritmo
13
1. Estructura Repetitiva de Salida Controlada
¿Qué hacer cuando no se sabe de antemano cuántos datos se
procesarán repetitivamente?
En este caso, se debe preguntar al usuario si desea o no continuar con repetición,
así:
Repetir

Bloque de instrucciones a repetir

Mostrar “ ¿Desea continuar?”


Repetir
Leer: Rpta
Hasta Rpta=“Si” O Rpta =“No”
Hasta Rpta=“No”
1. Estructura Repetitiva de Salida Controlada
EJERCICIO
▪ Ingrese el nombre y monto vendido por un grupo de vendedores.
▪ Cada uno recibe una comisión de acuerdo a su categoría así:
o A … 5%
o B … 7.2%
o C … 9%
▪ No se sabe exactamente cuántos son, se ingresan datos hasta que se
contesta No, a la pregunta: “¿Desea Continúar?”
▪ Calcule y muestre:
o Porcentaje de vendedores de Cat. B
o Suma total de comisiones de Cat. A
1. Estructura Repetitiva de Salida Controlada
EJERCICIO: Numero Primo
▪ Desarrolle un algoritmo que permita
determinar si un número ingresado es o
no primo.
o Nota: Un número entero es primo cuando
solo es divisible por sí mismo y por la unidad.
▪ Empleando el algoritmo anterior, muestre
todos los números primos entre 1 y el
dato ingresado.
Si se ingresa 12, debe mostrar: 2, 3, 5, 7,
11
2. Estructuras de control
repetitivas de entrada controlada
2. Estructuras Repetitivas de Entrada Controlada
Permite repetir unas acciones SOLO mientras la condición de entrada se siga cumplimiento.

DIAGRAMA DE FLUJO PSEUDOCÓDIGO

NO
CONDICIÓN MIENTRAS CONDICION DE ENTRADA
SI NO SE CUMPLE LA CONDICION
SI DE ENTRADA CONTINUA CON Bloque de Acciones
LAS SIGUIENTE INSTRUCCION

BLOQUE DE
FIN_MIENTRAS
ACCIONES
2. Estructuras Repetitivas de Entrada Controlada
Diagrama Pseudocódigo Diagrama NS
de flujo
Mientras Condición Inicio
Instrucción
anterior Tipo de dato de variables
Identificación de
Bloque de instrucciones a constantes
repetir mientas la Instrucción anterior
No Condición se cumple.
Condición Mientras Condición

Fin Mientras
Si Bloque de instrucciones a
repetir mientras la
Boque de Condición se cumple
Instrucciones
a repetir Fin Mientras
Siguiente instrucción
Siguiente
Instrucción Fin algoritmo
24
2. Estructuras Repetitivas de Entrada Controlada
Ejemplo 2.1
Diseñe un algoritmo que incremente en 50 unidades la suma (que inicia en cero), mientras no
supere el valor de 1000. Desarrolle el diagrama de flujo equivalente.
Inicio

Suma<-0
PSEUDOCÓDIGO C<-0
ANÁLISIS
Datos de entrada INICIO
Suma no
Datos intermedios Suma <- 0
< 1000
SUMA: acumulador de la suma C <- 0
(entero) si
Mientras Suma < 1000 Suma <- Suma + 50
Datos de salida C <- C + 1
C: contador de repetición Suma <- Suma + 50
C <- C + 1
Fin mientras “Se incrementó
”&C&” veces”
Mostrar “Se incrementó ” & C & “ Veces”
FIN 1 2 3 19 20
S 50 100 150 950 100
Fin 0

• Practicar , diseñando el diagrama de flujo…… C 1 2 3 19 20


2. Estructuras Repetitivas de Entrada Controlada
EJEMPLO 2.2
Cree un algoritmo que permita realizar un numero de pedidos consecutivos mientras se cuente
con stock disponible en bodega. Desarrolle el seudocódigo equivalente.
Inicio

Stock
ANÁLISIS Seudocódigo
P <- 0
Dato de entrada
stock :Inventario, entero Ingresar: Stock
C:cantidad a pedir por pedido, entero P <- 0
No
Stock>0 Mientras Stock > 0
Dato intermedio Ingresar: C
Sí Si C>Stock o C=0 entonces
P: el número de pedidos a ingresar
C Mostrar “No valido”
sino
Dato de salida P <- P+1

• Al finalizar el bucle o loop se podría C>Stock o C= 0 Stock <- Stock – C
mostrar P acumulado. fin si
No “no valido”
• Stock disminuido o final. Fin mientras
P <- P + 1 Mostrar “No hay stock”
“No hay stock” Fin
Stock <- Stock - C

FIN
3. Estructura Repetitiva Contador
Implícito
3. Estructura Repetitiva Contador Implícito
Permite repetir una serie de acciones o instrucciones y termina cuando el contador
“implícito” alcanza el valor requerido
DIAGRAMA DE FLUJO PSEUDOCÓDIGO
Si la variación es +1,
se puede omitir

Para i <- Valor_inicial hasta Valor_final paso Variación


Para i <- Valor_inicial hasta Valor_final paso Variación BLOQUE DE INSTRUCCIONES

Siguiente i

BLOQUE DE
INSTRUCCIONES SIGUIENTE BLOQUE
DE INSTRUCCIONES

Siguiente i
3. Estructura Repetitiva Contador Implícito
Consideraciones
• Los datos del valor inicial y final son número enteros.
• La instrucción Siguiente incrementa por defecto en 1 el contador i.
• Si se desea otro incremento, debe indicar ese incremento con la palabra Paso
y a continuación especificar la variación. Por ejemplo, si desea que el
incremento sea de 3 en 3, deberá escribir Paso 3.
• También, puede disminuir en lugar de aumentar, en tal caso utilice el signo
negativo.
• Los nombres de los contadores se trabajan con las letras i, j, k, etc. de tal
manera, que esta normativa permite reconocer fácilmente a los contadores
dentro de un algoritmo o programa facilitando la lectura y comprensión.
3. Estructura Repetitiva Contador Implícito
Diagrama Pseudocódigo Diagrama NS
de flujo
Inicio
Instrucción
Tipo de dato de variables
anterior Para Var <- Vi hasta Vf
Identificación de
Bloque de instrucciones constantes
Var > Vf
Para Var <- Vi hasta Vf a repetir desde el valor Instrucción anterior
inicial de Var, mientras Para Var <- Vi hasta Vf
Var < = Vf
Var < = Vf
Boque de
Instrucciones Siguiente Var Bloque de instrucciones a
a repetir repetir mientras Var < = Vf

Siguiente Var
Siguiente Var
Siguiente Siguiente instrucción
Instrucción
Fin algoritmo
3. Estructura Repetitiva Contador Implícito
Observaciones:
o Var, es una variable numérica (entera o real)
o Vi, es el valor inicial que asume la variable Var
o Vf, es el valor final al que debe llegar la variable Var
o Siguiente Var, es una instrucción que incrementa el valor de la variable Var en
1.
o Si se desea un incremento (o decremento) diferente de 1 se debe escribir: Paso
o Inc
Para Var <- Vi hasta Vf Paso Valor Var asumirá los siguientes
valores: 1, 3, 5, 7
Ejemplo:
Para Var <- 1 hasta 8 Paso 2
Para Var <- 8 hasta 1 Inc -2
Var asumirá los siguientes
valores: 8, 6, 4, 2
3. Estructura Repetitiva Contador Implícito
EJEMPLO 3.1
Diseñe un algoritmo que aplique una encuesta demográfica para evaluar la edad promedio de
un grupo de 10 personas.
DIAGRAMA DE FLUJO
SEUDOCÓDIGO INICIO
ANÁLISIS
Inicialización de
Dato de entrada INICIO acumulador N<- 10
N: número de encuestados N <- 10
(entero) C <- 0
C <- 0
EDAD: de cada persona Para i <- 1 hasta N
(entero) Leer EDAD
Dato intermedio C <- C + EDAD Para i <- 1 hasta N
C: acumulador de la Siguiente i Sumatoria de Edades
suma de edad (entero) P <- C/N
P <- C / N EDAD
Dato de salida
Mostrar “el promedio de edad es” & P & “ Años”
P: promedio de edades
FIN P
C <- C + EDAD

Siguiente i
• Se omite el paso porque el incremento es de 1 FIN
3. Estructura Repetitiva Contador Implícito
EJEMPLO 3.1
Elabore un algoritmo que calcule el factorial de un número.

Modifique el algoritmo anterior para que muestre el factorial


de todos los números comprendidos entre 1 y N.
3. Estructura Repetitiva Contador Implícito
Solución 3.1 A Diagrama N-S
Inicio
Pseudocódigo
Entero: N, C
Hacer Doble: F

Ingresar: N Repetir
Si N <=0 Entonces Mostrar “Error” Ingresar: N
N <= 0
Hasta N > 0 Sí
No
F <- 1 Mostrar: “Error”
Hasta N > 0
Para C <- N hasta 1 Paso -1
F <- 1
F <- F* C
Para C <- N hasta 1 Paso - 1
Siguiente C
F <- F * C
Mostrar F
Siguiente C
Mostrar F
Fin algoritmo
3. Estructura Repetitiva Contador
Inicio
Implícito
N
Solución 3.1 A
Diagrama de flujo
“ Dato N <=0
errado”
No

No Si
N>0 F <- 1

C<1
Tabla de variables C <- N hasta 1 Paso -
1
Variable Descripción Tipo de dato Uso Validación C>=1
N Dato a evaluar Entero Entrada >1
F <-F * C
C Contador Entero Entrada
F Factorial Doble Salida F
Siguiente C

Fin
3. Estructura Repetitiva Contador Implícito
Solución 3.1 B
Diagrama N-S
Inicio
Pseudocódigo
Entero: N, C
Hacer Doble: F

Ingresar: N Repetir
Si N <=0 Entonces Mostrar “Error” Ingresar: N
N <= 0
Hasta N > 0 Sí
No
F <- 1 Mostrar: “Error”
Hasta N > 0
Para C <- 1 hasta N
F <- 1
F <- F* C
Para C <-1 hasta N
Siguiente C
F <- F * C
Mostrar F
Siguiente C
Mostrar F
Fin algoritmo
3. Estructura Repetitiva Contador
Inicio
Implícito
N
Solución 3.1 B
Si
Diagrama de flujo
“ Dato N <=0
errado”
No

No Si
N>0 F <-1

C>N
Tabla de variables C <- 1,
N
Variable Descripción Tipo de dato Uso Validación C<=N
N Dato a evaluar Entero Entrada >1
F <- F * C
C Contador Entero Entrada
F Factorial Doble Salida F

Fin
3. Estructura Repetitiva Contador Implícito
EJEMPLO 3.2

Empleando el método de integración por


rectángulos, calcule el área aproximada
bajo la curva:

F(x) = X 3 - 6X 2 + 10X + 4
Evalúe el área en el intervalo [a, b],
considerando N sub intervalos. Los 3
valores son ingresados como datos.
3. Estructura Repetitiva Contador Implícito
Solución 3.2
Tabla de variables
Variable Descripción Tipo de dato Uso Validación
a Extremo izquierdo del intervalo real Entrada <b
b Extremo derecho del Real Entrada >a
intervalo Tabla de riable
N va
Número de intervalos s Entero Entrada >1
Base Intermedia
Altura Intermedia
X Intermedia
S Suma de área Salida
3. Estructura Repetitiva Contador Implícito
Solución 3.2 Inicio
Diagrama de flujo
1
a, b

Base <- (b-a)/N


No
b>a Ini=a, Area = 0

Si i>N
Para i <- 0 hasta N
N
i<=N

No x <- Ini + Base/2


N>0 Altura <- x^3-6*x^2+10*x+4
Area <- Area +Base * Altura Area
Si Ini <- Ini + x
1
Repetir i
Fin
3. Estructura Repetitiva ContadorInicio
Implícito
Inicio
Solución 3.2 Hacer Entero: N
Diagrama N-S Real: X, a, b, Altura, Base, S
Ingresar: a, b
Repetir
Hasta b > a
Hacer Ingresar: a, b
Seudocódigo Leer: N Hasta b > a
Hasta N > 0 Repetir
Base <- (b-a) / N
Ingresar: N
S <- 0, Ini <- 0
Hasta N > 0
Para i <- 0 hasta N
Base <- (b-a)/N: S<-0
X <- Ini + Base/2
X <- a, b, Base
Altura <- X^ 3 - 6 * X ^ 2 + 10 * X + 4
S <- S + Base * Altura Altura <- X^3 - 6 * X^2 + 10 * X + 4
Ini <- Ini + Base S <- S + Base * Altura
Siguiente i Mostrar S
Mostrar S Fin algoritmo
Práctica….

• Desarrolle los ejercicios propuestos por el profesor y los propuestos de la


separata de ejercicios de clases ……

Practique codificando todos los ejemplos vistos ….

Realice el ejercicio anterior cambiando el valor inicial a 10 y el valor final a 1:


*Analice que cambia
*En este caso, el paso o variación es incremental???
*Realice el ejemplo anterior con estructura de entrada controlada
*Realice el ejemplo anterior con estructura de salida controlada
Ejercicio 1
Cree un algoritmo (diagrama de flujo) que
muestre los cuadrados de los n primeros números
naturales. Inicio

Finalmente, muestre el cociente de la suma de los n


“Ingrese #
cuadrados entre n. mayor a cero”
No
n>0

Suma =0

Para i = 1 hasta n

Cociente = Suma / n
Cuadrado = i ^ 2
Suma =Suma + Cuadrado

Cuadrado Cociente

Siguiente i
Fin
Ejercicio 2
▪ Elabore una aplicación que permita ingresar los nombres y deudas de un grupo de clientes,
no se sabe exactamente cuántos son, por lo que el proceso finaliza cuando se contesta No a
la pregunta ¿Hay más clientes?
▪ Determine:
o La deuda promedio
o La deuda mayor y a quién corresponde.
o La deuda menor.
Deudas
No. de
empleados: 5
No. Nombre Deuda Estadísticas
1 Luis S/. 2,700.00 Promedio: S/. 3,920.00
2 Carla S/. 1,400.00 Deuda mayor: S/. 7,800.00
3 Juan S/. 7,800.00 Quien debe más: Juan
4 Ricardo S/. 4,500.00 Deuda menor: S/. 1,400.00
5 Ana S/. 3,200.00

106
Ejercicio 3

1) Analice el siguiente algoritmo e indique cuál es el valor mostrado


para la variable S.
Solución:

N <- 5 • Se observa que el valor de C siempre


C <- 1 será impar (1, 3, 5 ), por lo que la
S<0 instrucción S = S + C no se ejecuta
Hacer Si C resto 2 = 0 entonces nunca.
S <- S + C • Por lo tanto, el valor de S es siempre
C <- C + 2 cero.
Hasta C >= N
Mostrar S
Ejercicio 3

1) Analice el siguiente algoritmo e indique cuál es el valor mostrado


para la variable S.
Solución:

N <- 5 • Se observa que el valor de C siempre


C <- 1 será impar (1, 3, 5 ), por lo que la
S <- 0 instrucción S = S + C no se ejecuta
Mientras C <= N nunca.
Si C resto 2 = 0 entonces • Por lo tanto, el valor de S es siempre
S <- S + C cero.
C <- C + 2
Fin Mientras
Mostrar S
Ejercicio 4

2) Tabule los valores de las variables C y S de acuerdo al algoritmo mostrado


en el diagrama N-S. Indique además cuál es el valor mostrado para S
Solución:

• El valor de S es 30.
85
Ejercicio 5

• Se abre una cuenta de ahorros


depositando Monto dólares, el
banco le pagará Tasa % de
interés al año, se deja el dinero
en la cuenta por A años
• ¿Cuánto dinero hay en la cuenta al
final?
4. Algunos algoritmos útiles
4. Algunos algoritmos útiles
Máximo valor
Cómo encontrar el valor mayor:
1. Antes del bloque de repeticiones:
Inicie una variable con el menor valor
posible. Max = 0
2. Dentro del bloque de repeticiones:
a) Ingrese el dato
b) Compare cada uno de los valores con Max
Si Dato >= Max Entonces
Max = Dato
3. Después de bloque de repeticiones:
Mostrar Max 29
4. Algunos algoritmos útiles
Mínimo valor
Cómo encontrar el valor menor:
1. Antes del bloque de repeticiones:
Inicie una variable con el mayor valor
posible Min = 9999
2. Dentro del bloque de repeticiones:
a) Ingrese el dato
b) Compare cada uno de los valores con Min
Si Dato <= Min Entonces
Min = Dato
3. Después de bloque de repeticiones:
Mostrar Min 29
4. Algunos algoritmos útiles
EJEMPLO 2.3
Mayor y menor de edad:

Elabore un pseudocódigo (Diagrama de flujo y


seudocodigo equivalente correspondiente que
permita registrar el nombre y la edad de N
personas, y determine:
o Quien es la persona de mayor edad y

cuántos años tiene.


o Determine quién es la persona de menor
edad y cuántos años tiene.
4. Algunos algoritmos útiles
Solución 2.3
Mayor y menor de edad:

Tabla de variables
Variable Descripción Tipo de dato Uso Validación
N Número de personas Entero Entrada >0
Nombre Nombre la persona Texto Entrada <>””
Edad Edad de la persona Entero Entrada [1,120]
Max Mayor edad Entero Salida
Mayor Persona mayor Texto Salida
Min Menor edad Entero Salida
Menor Persona menor Texto Salida
c Contador de personas Entero Intermedia
4. Algunos algoritmos útiles
Repetir
Solución 2.3
Ingresar: N
Hasta N > 0
Pseudocódigo
Max <- 0: Min <- 120
Para c <- 1 hasta N
Repetir
Ingresar: Nombre
Hasta Nombre <>””
Repetir
Ingresar: Edad
Hasta Edad > 0

Si Edad >= Max Entonces Max <- Edad: Mayor <- Nombre

Si Edad <= Min Entonces Min <- Edad: Menor <- Nombre
Siguiente c
Mostrar Mayor, Max, Menor,
Min
5. Estructuras de Almacenamiento
(Vectores y Matrices)
1. Introducción a los arreglos

En el desarrollo de aplicaciones de computador se


requiere:
✓ Los arreglos son estructuras
especiales que facilitan el proceso de
Diferentes formas para el almacenamiento y acceso a un grupos
manejo de datos e información. de datos, de manera ordena y
sistémica.
Escritura sencilla del código
para procesar y acceder a los
datos.
Almacenar, Ordenar y Procesar
volúmenes grandes de
información (data)
2. Uso y aplicación

Decisiones

Confiabilidad

Analítica Relacional
Estructura Multidimensionales

Rapidez Proyecciones
3. Arrays (Arreglos de Datos)
…”son variables de asignación de datos en los lenguajes de programación que permiten adicionalmente guardar un grupo o
conjunto de datos…” Imagina una caja donde guardar un grupo de cosas, marcando cada una de las cosas dentro de la caja como muestra
la Imagen”… (GALEANO, 2011)

Posición Inicial: por


defecto es 0
“A 5

0 1
2 3 4
Los arreglos pueden a su vez guardar
sub-arreglos en cada posición

En este curso los datos que se Índices: forma de identificar dentro de la variable una posición, orden,
almacenan en cada arreglo serán del ubicación , etc.
mismo tipo
4. Vectores y Matrices
Definición de un Arreglo Unidimensional - Vector
Un arreglo es una estructura de datos que permite almacenar datos del mismo tipo (int,
double, char, etc.).
El tipo más simple de un arreglo es el arreglo unidimensional.
Para poder utilizar un arreglo es necesario: declararlo e inicializarlo.
Supongamos que tenemos la siguiente variable:
Tipodato[] NombreArreglo;
Para crear un arreglo debemos hacer uso de New y sería de la
siguiente forma:
Tipodato[] NombreArreglo = new Tipodato[# de
elementos];
4. Vectores y Matrices
Declaración de un arreglo unidimensional - Vector
Vector de 7
Dirección en Índice del Elementos
Memoria Arreglo
Primer valor del índice

Valor en Vec[0]
AB001 0 20

AB003 1
La dirección donde se inicia
AB005 Vec es : AB001
2
AB007 3 Vec
La dirección de &Vec[0] es
AB009 15
4 AB001
AB00A
5
Valor en Vec[4] Vec <-> &Vec[0]
AB00C 6

Último valor del índice (N-1)


4. Vectores y Matrices
Declaración de un arreglo unidimensional - Vector
Sea Vec un arreglo unidimensional (Vector) de 10 valores enteros
V
e 89 36 15 64 37 29 18 59 75 91
c i 0 1 2 3 4 5 6 7 8 9
N-1
■ Para acceder a un elemento del arreglo

Primer elemento Vec[0] → 89


Segundo elemento Vec[1] → 36

Último elemento Vec[9] → 91


4. Vectores y Matrices
Declaración de un arreglo Multidimensional - Matriz
Una Matriz, o arreglo bidimensional, es una colección de datos del mismo tipo
de información, identificados mediante dos índices llamados: filas y columnas.

columnas del 0 al 2

filas 0 1 2
0 12 1 15
del 0
1 9 3 10
al 2 14 7 6
2

Solo valores de la
matriz
4. Vectores y Matrices
Referencia de un arreglo Multidimensional - Matriz
Un arreglo bidimensional almacena datos en dos índices : fila y
columna

Para referenciar un dato que pertenece al arreglo debemos usar


los dos índices

De manera general:
Matriz[indicefila, indicecolumna]
4. Vectores y Matrices
Arreglo que permite almacenar datos en Arreglo que permite almacenar datos en mas
VECTOR una dimensión MATRIZ de una dimensión

Matriz de 3 x 4 elementos

Vector de 7 elementos
j→
23 40 12 45 36 02 36 i 23 48 12 45


0 1 2 3 4 5 6 (0,0) (0,1) (0,2) (0,3)
57 64 22 26
Vector de Cantidades despachadas denominado Cant de valores
enteros de 7 elementos (1,0) (1,1) (1,2) (1,3)
62 46 45 24

Cant[7] (2,0) (2,1) (2,2) (2,3)

Matriz de unidades despachadas por semana denominado Vta


del tipo entero de 3x4 elementos

Vta[3, 4]
4. Vectores y Matrices
Ejemplo 1 Diseñe un algoritmo que permita calcular el
promedio de las notas de N alumnos
INICI
Análisis Inicio O
Datos de Entrada Leer N Se almacena en el vector
N
N: Cantidad de alumnos, Entero suma 0 llamado nota cada valor en la
Nota(i):Vector con i+ 1 datos , Para i = 0 hasta N-1 posición i
entero Leer nota (i) suma  0
Datos Intermedios suma suma + nota(i)
Suma: acumula notas Siguiente i
Dato de Salida Prom  suma / N
Prom: promedio de notas, real Mostrar “el promedio de notas es “ & Prom i= 0 hasta N-
Fin 1

Prom  Suma +suma / N


nota (i)

suma  Suma
+nota(i) “El promedio es “ &
Prom
Nota(N
Nota(0) Nota(1) Nota(2) Nota(3) Nota(4) Siguiente i
-1)
0 1 2 3 4 … N-1 FIN
Nota(N)
4. Vectores y Matrices
Ejemplo 1
Inicio Se almacena en el vector
Leer N llamado nota cada valor en la
suma 0 posición i
Para i = 0 hasta N-1
Leer nota (i)
suma suma + nota(i)
Siguiente i
Prom  suma / N
Mostrar “el promedio de notas es “ & Prom
Fin

Nota(N
Nota(0) Nota(1) Nota(2) Nota(3) Nota(4)
)
0 1 2 3 4 … N
Nota(N)
4. Vectores y Matrices
Ejemplo1.b: Con la información anterior identifique la máxima nota e
Inicio
identifique cuantos alumnos la lograron
Leer N INICI 1
max 0 O Se compara cada
C0 valor dentro del
N vector nota() con el
Para i = 0 hasta N-1 i= 0 hasta N-
Se recorre máximo y se toma 1 i= 1 hasta
Leer nota (i) cada posición como máximo N
si nota(i) > max entonces dentro del C0
notamax  nota(i) vector nota() y no
fin_si según el valor nota(i) > max
Siguiente i se cuenta i= 0 hasta N-1
Mostrar “la mayor nota es “ & notamax si
Para i = 0 hasta N-1
Si nota(i) = notamax entonces C  C +1
nota (i) “la mayor nota
c  c+1
es“ & max
Fin_si
Siguiente i no
nota(i) > max
Mostrar c & “Alumnos lograron la mayor nota” 1
FIN si Siguiente i
max  nota(i)
Se recorre cada C & “alumnos
posición dentro del lograron la mayor
vector nota() y nota”
Siguiente según el valor se
i FIN
cuenta
4. Vectores y Matrices
Ejemplo1.b: Con la información anterior identifique la máxima nota e
identifique cuantos alumnos la lograron
Inicio
Leer N
max 0
C0
Para i = 0 hasta N-1 Se recorre
Leer nota (i) cada posición
si nota(i) > max entonces dentro del
notamax  nota(i) vector nota() y
fin_si según el valor
Siguiente i se cuenta
Mostrar “la mayor nota es “ & notamax
Para i = 0 hasta N-1
Si nota(i) = notamax entonces
c  c+1
Fin_si
Siguiente i
Mostrar c & “Alumnos lograron la mayor nota”
FIN
4. Vectores y Matrices
Ejemplo 2 En Seudocódigo 20
Cree un pseudocódigo que permita -5 n=7
ingresar n números (sin restricción) y
luego, los muestre en el orden
0
inverso a cómo se ingresaron 48
inicialmente. 7
También, escriba el código en C#.
11
-2
4. Vectores y Matrices
Ejemplo 2 Solución en Seudocódigo
Inicio
V(500) Real, VV(500) Real
Repetir
Ejemplo Vector
Ingresar n Vector V
VV
Si n <= 0 entonces Mostrar ”Ingrese número

n=7
mayor a cero” 20 -2
Hasta n > 0 -5 11
Para i = 1 hasta n
0 7
Ingresar V(i)
Siguiente i 48 48
Para i=n hasta 1 Paso -1 7 0
VV(n - i + 1) = V(i)
Mostrar VV (n - i + 1) 11 -5
Siguiente i -2 20
Fin
4. Vectores y Matrices
Ejemplo 3
Nombre [6] Edad [6]
▪ Ingrese el nombre y la edad de N personas.
▪ Muestre los datos ingresados en vectores.
▪ Finalizado el ingreso de datos muestre el promedio 0 Juan 34
Elementos de posición #3
de edades. Nombre[2] 1 Ana 8
Tarea: Incorpore las instrucciones necesarias para que
también realice lo siguiente: 2 Luís 17
o Calcule qué % de personas tienen una edad superior al
3 Rosa 12
promedio.
o El nombre de las personas con edades superiores al
Edad[2] 4 Eva 71
promedio
o Nombre de las personas que tienen la edad máxima
5 Andrés 15

Promedio = 26,167
4. Vectores y Matrices
Ejemplo 3 Solución en Seudocódigo
Tabla de variables
Variable Descripción Tipo de dato Uso Validación
Nombre[50] Nombres Texto Entrada <>””
Edad[50] Edades (año cumplido) Entero Entrada >= 0
N Cant. de alumnos Entero Intermedia
I Indice de los vectores Entero Intermedia [0..49]
c Contador de personas Entero Intermedia
S Suma de edades Entero Intermedia
Promedio Promedio de edades Real Salida
4. Vectores y Matrices
1
Ejemplo 3 Solución en DF
Inicio i = 0, N-1

N Nombre[i] Promedio = S/N

No No Nombre[i] Prom
N > 0 y N < 50
<>””
Si Si
S=0 Fin
Edad[i]

1 No
Edad[i]> 0

Si
S = S + Edad[i)
4. Vectores y Matrices
Ejemplo 3 Solución
Pseudocódigo
Repetir
Ingresar N
Hasta N > 0 y N < 50
S=0
Para i = 0 hasta N-1
Repetir
Ingresar Nombre[i]
Hasta Nombre[i] <> “”
Repetir
Ingresar Edad[i]
Hasta Edad[i] > 0
S = S + Edad[i]
Siguiente i
Promedio = S/N
Mostrar “Promedio: “ & Prom
4. Vectores y Matrices
Método de la burbuja (Bubble Sort, EN)
Ordenar En forma Ascendente i= 1 hasta n-1

1
j= i+1 hasta n

nota (i)

no
valor(i) > valor(j)
si 1

Temporal  valor(i)

valor(i)  valor(j)

valor(j)  Temporal
*Dinámica de Conceptualización

Siguiente
j
4. Vectores y Matrices
Método de la burbuja (Bubble Sort, EN)
Ordenar En forma
Ascendente
Para i= 1 hasta n-1 • Primera Pasada
Para j = i+1 hasta n
Si vector(i) > vector(j) entonces
Auxiliar vector(i) ➢ Intercambia el 50 y el 26
vector(i) vector(j) ➢ Intercambia el 50 y el 7
➢ Intercambia el 50 y el 9
vector(j) Auxiliar
➢ Intercambia el 50 y el 15
Fin_si
Siguiente j
Siguiente i • Segunda Pasada

➢ Intercambia el 26 y el 7
➢ Intercambia el 26 y el 9
➢ Intercambia el 26 y el 15
4. Vectores y Matrices
Ejemplo 4
Se cuenta con la base de datos de ventas de dos referencias de productos , que se realiza en n canales de venta. Se
desea calcular : *Promedio de ventas de cada Referencia. **Conocer el listado de los canales que tienen un volumen de
venta superior al promedio, en la referencia 2

j→
i (1,1) (1,2)
Base de Datos Origen

(2,1) (2,2)
.. ..
. .
Inicio
S20
Para j = 1 hasta 2 (n,1) (n,2)
Para i=1 hasta n Para i= 1 hasta n
VENTA(i,j) Celda(5+i,j) CV  Celda (5+i,”B”)
SI j= 2 entonces S1 VENTA(i,1) + S1
S2S2 + VENTA(i,j) SI VENTA(i,2) > P2 entonces
Fin_si C2 C2 + 1
Siguiente j Superior(C2) VENTA(i,2)
Siguiente i Fin_si
P2S2/n Siguiente i
S10 :C20 P1S1/n
Fin

Practique Codificando el Seudocódigo anterior…


4. Vectores y Matrices
Ejemplo 4
j→
i (1,1) (1,2)
Base de Datos Origen

(2,1) (2,2)
.. ..
. .

(n,1) (n,2)

Preguntas adicionales por resolver, diseñe el diagrama de flujo y


codifique en C#

*Identificar el canal con el mayor volumen de ventas de la referencia 1.


*Cual referencia mantiene el promedio mas alto de ventas en todos sus
canales
4. Vectores y Matrices
Ejemplo 5
Elabore el programa C# que permite gestionar las compras de una empresa, como por ejemplo
la empresa Lácteos del Perú, que desea adquirir algunos equipos para su planta industrial. Debe
realizar lo siguiente:
▪ Ingrese en un vector el nombre del equipo a adquirir,
y en una matriz los precios ofertados por 5
proveedores, tal como se muestra en el ejemplo
gráfico mostrado.
El ingreso de datos finaliza cuando se responde
No a la pregunta ¿Hay más equipos?
• A continuación almacene en otro vector el menor
precio ofrecido por los proveedores de cada uno de
los equipos a adquirir.
• Muestre la información ingresada y calculada en las
celdas de la Hoja Excel, de acuerdo al diseño proporcionado.
4. Vectores y Matrices
Inicio

Ejemplo 5
i NomEqu
PrxProv[7,5],
1

0 Tanque de refrigeración PrMenProv[7], PrxProv[i,j]


1 Tina Quesera NomEqu[7], m=5

2
3 n PrxProv[i,j] <
PrMenPro[i]
4 No
No
0<n< Si
5
=6
6 Si PrMenPro[i] =
PrxProv[i,j]
Para i=0 hasta
i/j 0 1 2 3 4 3 Fin
n-1
PrMenPro[i] =
0 1800 2580 135 250 200 PrMenPro[i]
0 0 0 NomEqu[i]
1 1148 1019 ("El menor precio
la maquina Siguiente j
2 Para j=0 hasta
2 ("+i+") es
m-1 "+PrMenPro[i]
3 2
4 Siguiente i
1
5
3
6
Tenga en cuenta que…

• Las operaciones entre arreglos se ejecutan elemento a elemento

• Si se opera por un valor a un arreglo, se realiza la operación con el valor y por


cada elemento del arreglo.

• La estructura de repetición más eficiente para hacer el recorrido una a una de


las posiciones en un arreglo es el contador implícito.

• Todas las operaciones aritméticas entre arreglos son posibles


Práctica….

• Desarrollar ejercicios propuestos por el profesor y de la separata de ejercicios


de clases ……

Practique codificando todos los ejemplos vistos ….


Ejercicio 1 - Teatro
▪ Elabore un algoritmo que permita vender
las entradas a un teatro de F filas y A
asientos por fila.
▪ La venta termina cuando no hay más clientes
por atender o se agotaron todas las
entradas.
▪ Finalizada las ventas indique que % del
total de entradas se vendieron
▪ ¿Cuál es la fila más vendida?
Ejercicio 1 - Teatro
Pseudocódigo
Repetir Repetir Porc = NE/(NF*NA) * 100
Ingresar NF, NA Leer Asiento Mostrar “% entradas vendidas: “ &
Hasta NF > 0 y NA > 0 Hasta Asiento >=1 y Asiento Porc Max = 0
Para F = 1 hasta NF
<=NA Si M(F,A) = 0 Entonces Para F = 1 hasta NF
Para A = 1 hasta
M(F,A) = 1) : NE = NE +1 S=0
NA M(F,A) = 0 Para A = 1 hasta
Sino
Siguiente A NA S = S +
Mostrar “Asiento ocupado, elija
Siguiente F otro” M(F,A)
NE = 0 Fin Si Siguiente A
Repetir Mostrar “¿Hay más Si S > Max Entonces
Repetir clientes?” Hacer Max = S : FilaMas = F
Leer Fila Leer Rpta
Fin Si
Hasta (Fila>=1 y Fila <=NF) Hasta Rpta = “Si” o Rpta = “No”
Siguiente F
Ejercicio 2 - Hotel
El dueño de un hotel de P pisos y C cuartos en cada uno de los pisos,
requiere llevar un mejor control mensual del número de noches que se
asignó cada uno de los cuartos.

Se sabe que se registrarán N clientes. Para cada uno de ellos se ingresan:


Número de piso, Número de cuarto de dicho piso y el Número de noches
que se quedará el cliente.
El número de noches debe irse acumulando.

Finalizado el ingreso de datos se requiere saber lo siguiente:


• Cuál es el monto total recaudado en cada uno de los pisos, almacénese
en un vector.
• Ingrese un Piso, e indique qué cuarto fue el que tuvo la mayor cantidad
de noches de alquiler.

53
Ejercicio 2 - Hotel
'Suma por piso
Para y = 1 To P
Pseudocódigo V(y) = 0
Hacer Para x = 1 To C
Leer: N, P, C V(y) = V(y) + Hotel(x, y)
Hasta N > 0 y P >0 Y P<=10 y C >0 Y C<=10 Siguiente x

Para x=1 hasta Mostrar V(y)


Siguiente y
N
‘Máximo
Hacer
Hacer
Leer Piso, Cuarto, Noches Leer Piso
Hasta Piso>=1 y Piso <=P Y Cuarto>=1 Y Cuarto <=C Y Noches
hasta Piso > 0 Y Piso <= P
>0 Hotel(Cuarto, Piso) = Hotel(Cuarto, Piso) + Noches
Max = 0
Siguiente x Para y = 1 hasta C
Si Hotel(y, Piso) >= Max Entonces Max = Hotel(y, Piso): Mayor = y
Siguiente y
Mostrar "Cuarto con más noches del piso: " & Piso & " con " &
Mayor

También podría gustarte