SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Fundamentos de Programación
Clase 8
Contenido
Arreglos: vectores y matrices
Tipos de Datos definidos por el Usuario (TDU)

Escuela de Sistemas, Facultad de Minas
Universidad Nacional de Colombia – Sede Medellín
Arreglos
Hasta el momento hemos trabajado con variables
“escalares”, es decir:
Una variable

Almacena un único valor

Sin embargo hay problemas en los que es conveniente
utilizar arreglos.
Arreglos
Considérese por ejemplo el siguiente algoritmo:
INICIO
Leer N
S=0
Para i: 1, <= N, +1
Leer A
S=S+A
Escribir S
FIN

Si luego de la instrucción Escribir S se añadiera Escribir
El último
A, ¿Cuál valor de A escribiría?
Arreglos
Si en cambio se trabaja con variables con subíndice todos
los valores quedan almacenados, y se pueden volver a
utilizar para otros procesos durante el algoritmo. El
ejercicio anterior con variables con subíndice se podría
ver de la siguiente forma:
INICIO
Leer N
S=0
Para i: 1, <= N, +1
Leer Ai
S = S + Ai
Escribir S
FIN
Arreglos
Un arreglo es un conjunto de elementos que tienen el
mismo nombre y el mismo tipo de dato.

A() =

A1

A2 A3

... Ai

...

An-1

An

Cada valor puede ser accesado por la posición o índice
que ocupa dentro del arreglo.
Los arreglos pueden ser de tipo numérico o de tipo texto
(cadenas de caracteres).
Tipos de arreglos
• Los arreglos de una
dimensión se les llama
vector o lista.

• Los demás se les conoce
como arreglos
multidimensionales.

A(3)

....

A(n)

A(1,1)

• Los arreglos de dos
dimensiones se les
conoce como matriz o
tabla (Anxn).

A(1)

A(1,3)

....

A(1,n)

A(2,1)

A(2,3)

....

A(2,n)

....

....

...

....
Subíndices
• Para vectores se utiliza un solo subíndice.

A(i)

Subíndice de
cada elemento
(1, 2, …, n)

• Para matrices se utilizan dos subíndices (uno para
las filas y otro para las columnas).

A(i,j)
Subíndice
para filas

Subíndice para
columnas

(1, 2, …, m)

(1, 2, …, n)
Ejercicio 1
Realizar prueba de escritorio al siguiente algoritmo. ¿Qué
mostraría?
INICIO
X(1) = 2, X(2) = 9, X(3) = 0, X(4) = -1, X(5) = 3
i=3
j=2
k=3
Mostrar X(4)
Mostrar X(i)
Mostrar X(k)
Mostrar X(j+1)
Mostrar X(2*j)
Mostrar X(i+j)
FIN
Ejercicio 2
Diseñar un algoritmo para leer un arreglo de N elementos
y mostrar cuál es su promedio, cuál es el mayor valor y
cuál es la cantidad de elementos negativos.
Ejercicio 2
INICIO
Leer N
Suma = 0
CN = 0
Para i=1, <= N, +1
Leer Xi
Suma = Suma + Xi
Si Xi < 0
CN = CN + 1
Fin Si
Fin Para
Promedio = Suma/N
Mayor = X1
Para i=2, <= N, +1
Si Xi > Mayor
Mayor = Xi
Fin Si
Fin Para
Mostrar Promedio, CN, Mayor
FIN
Declaración de arreglos en VBA
• Un arreglo se declara con la instrucción Dim:
Ej: Dim X() As Single
• Los paréntesis indican que la variable X es un
arreglo
• Al poner Single indica que X() tendrá todos
sus elementos de tipo real simple
Arreglos estáticos en VBA
En VB un arreglo ESTÁTICO es aquel que siempre
tiene el mismo número de elementos.
elementos.
Ej:
Ej:

Dim B(5) As integer
B(5
Dim A(10,6) As single
A(10,

En un proyecto declaramos en arreglo estático cuando
sabemos de antemano cuantos elementos va a tener.
tener.
Arreglos dinámicos en VBA
En VBA un arreglo DINÁMICO es aquel cuyo tamaño
(número de elementos) puede cambiar con el tiempo.
tiempo.
Ejs:
Ejs:

Dim T() as integer
n = 50
ReDim T(n)
Dim G() as single
p = val(texto1.text)
val(texto1
q = val(texto2.text)
val(texto2
ReDim G(p,q)
G(p,q)
Arreglos dinámicos en VBA
En general la forma de cambiar el tamaño de un arreglo
DINÁMICO en VBA es:
es:
Dim nombreVariable() as tipo
…
Redim nombreVariable(# elementos)
Nota:
Nota: Redim permite cambiar el número de elementos
del arreglo. No su tipo de datos
arreglo.
Maneras de dar valor a los
elementos de un arreglo
1. Asignación directa de valores
2. Leer los valores
3. Generar valores de manera aleatoria y
asignarlos a los elementos del vector
4. Leer los elementos a partir de celdas de Excel
5. Leer los elementos a partir de archivos de texto
Maneras de dar valor a los
elementos de un arreglo
1. Asignación directa:
Pseudocódigo:
X1 = 2
X2 = -8
…
A=7
XN = A

En VBA:
X(1) = 2
X(2) = -8
…
A=7
X(N) = A
Maneras de dar valor a los
elementos de un arreglo
2. Leer valores:
Pseudocódigo:
Para i=1, <=N, +1
Leer Xi
Fin Para
En VBA:
For i=1 To N
X(i) = Inputbox(“Ingrese X(” & i & “):”)
Next i
Maneras de dar valor a los
elementos de un arreglo
3. Generar valores aleatorios: Todos los lenguajes de
aleatorios:
programación tienen una instrucción para generar un
número aleatorio. En VB esta instrucción es Rnd y
aleatorio.
devuelve un valor real en el rango (0,1].

Ej: llenar el vector X con N valores aleatorios
entre A y B
Pseudocódigo:
Para i=1, <=N, +1
Xi = A + Rnd*(B-A)
Rnd*(BFin Para

VBA:
For i=1 To N
X(i) = A + Rnd*(B-A)
Rnd*(BNext i
Maneras de dar valor a los
elementos de un arreglo
4. Desde celdas de Excel: VBA permite la comunicación directa con el
Excel:
archivo de Excel sobre el cual se esté trabajando:
trabajando:
Maneras de dar valor a los
elementos de un arreglo
5. Desde un archivo de texto:
texto:

Objeto Excel

Nom$ = ThisWorkbook.Path & "" & "Vector_1.txt"
i = 0: Open Nom$ For Input As #1
Do While (Not EOF(7))
i=i+1
Redim Preserve X(i)
Input #1, X(i)
Loop
Close#1

• ThisWorkbook.Path contiene la trayectoria (ruta)
donde está grabado el libro de Excel que contiene
a su vez el proyecto VBA.
• Restricción: El archivo de Excel y el archivo de
textos deben estar en la misma carpeta.
Tipos de datos definidos por el
usuario
Todos los lenguajes de programación tienen sus propios
tipos de datos (estándar): enteros, reales, booleanos, etc.
(estándar):
etc.
La mayoría (incluyendo VBA) permiten además que el
programador defina tipos de datos particulares a partir de
los tipos estándar.
estándar.
En VBA dicha definición se hace con la instrucción:
instrucción:
Type nombre_del_tipo
(Aquí van los elementos)
End Type
Tipos de datos definidos por el
usuario
Una vez que se define un tipo de datos con Type … End
Type, este entra a formar parte de los tipos de datos
disponibles en el proyecto.
proyecto.
La definición debe hacerse en “General”.
“General”.
Igualmente, cuando se esté
empleando dicho tipo de datos,
el editor de programas mostrara
sus componentes previamente
definidos:
Tareas
• Crear un proyecto VBA y definir un tipo de datos
Punto,
Punto, que contenga las coordenadas de un punto en
el plano cartesiano.
cartesiano.
Leer las coordenadas de N puntos desde un archivo
de datos y almacenarlas en un vector
Mostrar cuál es la menor y mayor distancia de dichos
puntos respecto al origen (0,0) y mostrar los puntos a
los que corresponden.
corresponden.

• Comenzar a
problemateca 3

desarrollar

los

ejercicios

de

la
Fundamentos de Programación
Clase 8

FIN DE LA CLASE
Gracias por la atención
Escuela de Sistemas, Facultad de Minas
Universidad Nacional de Colombia – Sede Medellín

Más contenido relacionado

La actualidad más candente (18)

Estructuras de Datos (Arreglos)
Estructuras de Datos (Arreglos)Estructuras de Datos (Arreglos)
Estructuras de Datos (Arreglos)
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Estructura de datos (Arreglos)
Estructura de datos (Arreglos)Estructura de datos (Arreglos)
Estructura de datos (Arreglos)
 
Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a Objetos
 
Unidad5
Unidad5Unidad5
Unidad5
 
Ape unidad4
Ape unidad4Ape unidad4
Ape unidad4
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Static Alexander_Eivar
Static Alexander_EivarStatic Alexander_Eivar
Static Alexander_Eivar
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Arreglos en java v01
Arreglos en java v01Arreglos en java v01
Arreglos en java v01
 
Cap06
Cap06Cap06
Cap06
 
Arreglos en Java
Arreglos en JavaArreglos en Java
Arreglos en Java
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Exposicion Arreglos
Exposicion ArreglosExposicion Arreglos
Exposicion Arreglos
 
Semana 4 arreglos simples (1)
Semana 4   arreglos simples (1)Semana 4   arreglos simples (1)
Semana 4 arreglos simples (1)
 
Vectores en power point [recuperado]
Vectores en power point [recuperado]Vectores en power point [recuperado]
Vectores en power point [recuperado]
 
Arreglos
ArreglosArreglos
Arreglos
 

Destacado

Algoritmos Tiposde datos
Algoritmos Tiposde datos Algoritmos Tiposde datos
Algoritmos Tiposde datos bakura4
 
Programacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arreglosProgramacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arregloscarlos1518
 
estructura de datos
estructura de datosestructura de datos
estructura de datosjynjavi
 
Tipos de datos en programacion
Tipos de datos en programacionTipos de datos en programacion
Tipos de datos en programacionAlfonso
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltosfermodcor
 

Destacado (9)

Algoritmos Tiposde datos
Algoritmos Tiposde datos Algoritmos Tiposde datos
Algoritmos Tiposde datos
 
Programacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arreglosProgramacion inf121 i8 ii 2013 ocho arreglos
Programacion inf121 i8 ii 2013 ocho arreglos
 
estructura de datos
estructura de datosestructura de datos
estructura de datos
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Tipo de Arreglos
Tipo de ArreglosTipo de Arreglos
Tipo de Arreglos
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Tipos de datos en programacion
Tipos de datos en programacionTipos de datos en programacion
Tipos de datos en programacion
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
 

Similar a Fundamentos de programacion

Similar a Fundamentos de programacion (20)

clases de herramientas lorenita
clases de herramientas lorenitaclases de herramientas lorenita
clases de herramientas lorenita
 
TIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLABTIPOS DE DATOS MATLAB
TIPOS DE DATOS MATLAB
 
Uso vectores
Uso vectoresUso vectores
Uso vectores
 
Suma de imagenes
Suma de imagenesSuma de imagenes
Suma de imagenes
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlab
 
Capitulo4 arreglos
Capitulo4 arreglosCapitulo4 arreglos
Capitulo4 arreglos
 
Ambiente
 Ambiente Ambiente
Ambiente
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
 
conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdf
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Tarea6
Tarea6Tarea6
Tarea6
 
Cap06 arreglos y vectores.
Cap06 arreglos y vectores.Cap06 arreglos y vectores.
Cap06 arreglos y vectores.
 
2_LenguajeMATLAB
2_LenguajeMATLAB2_LenguajeMATLAB
2_LenguajeMATLAB
 
Computación sb
Computación sbComputación sb
Computación sb
 
DATA AUTOMATION.pdf
DATA AUTOMATION.pdfDATA AUTOMATION.pdf
DATA AUTOMATION.pdf
 
Algoritmos y programas ing civil
Algoritmos y programas ing civil Algoritmos y programas ing civil
Algoritmos y programas ing civil
 

Último

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (15)

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Fundamentos de programacion

  • 1. Fundamentos de Programación Clase 8 Contenido Arreglos: vectores y matrices Tipos de Datos definidos por el Usuario (TDU) Escuela de Sistemas, Facultad de Minas Universidad Nacional de Colombia – Sede Medellín
  • 2. Arreglos Hasta el momento hemos trabajado con variables “escalares”, es decir: Una variable Almacena un único valor Sin embargo hay problemas en los que es conveniente utilizar arreglos.
  • 3. Arreglos Considérese por ejemplo el siguiente algoritmo: INICIO Leer N S=0 Para i: 1, <= N, +1 Leer A S=S+A Escribir S FIN Si luego de la instrucción Escribir S se añadiera Escribir El último A, ¿Cuál valor de A escribiría?
  • 4. Arreglos Si en cambio se trabaja con variables con subíndice todos los valores quedan almacenados, y se pueden volver a utilizar para otros procesos durante el algoritmo. El ejercicio anterior con variables con subíndice se podría ver de la siguiente forma: INICIO Leer N S=0 Para i: 1, <= N, +1 Leer Ai S = S + Ai Escribir S FIN
  • 5. Arreglos Un arreglo es un conjunto de elementos que tienen el mismo nombre y el mismo tipo de dato. A() = A1 A2 A3 ... Ai ... An-1 An Cada valor puede ser accesado por la posición o índice que ocupa dentro del arreglo. Los arreglos pueden ser de tipo numérico o de tipo texto (cadenas de caracteres).
  • 6. Tipos de arreglos • Los arreglos de una dimensión se les llama vector o lista. • Los demás se les conoce como arreglos multidimensionales. A(3) .... A(n) A(1,1) • Los arreglos de dos dimensiones se les conoce como matriz o tabla (Anxn). A(1) A(1,3) .... A(1,n) A(2,1) A(2,3) .... A(2,n) .... .... ... ....
  • 7. Subíndices • Para vectores se utiliza un solo subíndice. A(i) Subíndice de cada elemento (1, 2, …, n) • Para matrices se utilizan dos subíndices (uno para las filas y otro para las columnas). A(i,j) Subíndice para filas Subíndice para columnas (1, 2, …, m) (1, 2, …, n)
  • 8. Ejercicio 1 Realizar prueba de escritorio al siguiente algoritmo. ¿Qué mostraría? INICIO X(1) = 2, X(2) = 9, X(3) = 0, X(4) = -1, X(5) = 3 i=3 j=2 k=3 Mostrar X(4) Mostrar X(i) Mostrar X(k) Mostrar X(j+1) Mostrar X(2*j) Mostrar X(i+j) FIN
  • 9. Ejercicio 2 Diseñar un algoritmo para leer un arreglo de N elementos y mostrar cuál es su promedio, cuál es el mayor valor y cuál es la cantidad de elementos negativos.
  • 10. Ejercicio 2 INICIO Leer N Suma = 0 CN = 0 Para i=1, <= N, +1 Leer Xi Suma = Suma + Xi Si Xi < 0 CN = CN + 1 Fin Si Fin Para Promedio = Suma/N Mayor = X1 Para i=2, <= N, +1 Si Xi > Mayor Mayor = Xi Fin Si Fin Para Mostrar Promedio, CN, Mayor FIN
  • 11. Declaración de arreglos en VBA • Un arreglo se declara con la instrucción Dim: Ej: Dim X() As Single • Los paréntesis indican que la variable X es un arreglo • Al poner Single indica que X() tendrá todos sus elementos de tipo real simple
  • 12. Arreglos estáticos en VBA En VB un arreglo ESTÁTICO es aquel que siempre tiene el mismo número de elementos. elementos. Ej: Ej: Dim B(5) As integer B(5 Dim A(10,6) As single A(10, En un proyecto declaramos en arreglo estático cuando sabemos de antemano cuantos elementos va a tener. tener.
  • 13. Arreglos dinámicos en VBA En VBA un arreglo DINÁMICO es aquel cuyo tamaño (número de elementos) puede cambiar con el tiempo. tiempo. Ejs: Ejs: Dim T() as integer n = 50 ReDim T(n) Dim G() as single p = val(texto1.text) val(texto1 q = val(texto2.text) val(texto2 ReDim G(p,q) G(p,q)
  • 14. Arreglos dinámicos en VBA En general la forma de cambiar el tamaño de un arreglo DINÁMICO en VBA es: es: Dim nombreVariable() as tipo … Redim nombreVariable(# elementos) Nota: Nota: Redim permite cambiar el número de elementos del arreglo. No su tipo de datos arreglo.
  • 15. Maneras de dar valor a los elementos de un arreglo 1. Asignación directa de valores 2. Leer los valores 3. Generar valores de manera aleatoria y asignarlos a los elementos del vector 4. Leer los elementos a partir de celdas de Excel 5. Leer los elementos a partir de archivos de texto
  • 16. Maneras de dar valor a los elementos de un arreglo 1. Asignación directa: Pseudocódigo: X1 = 2 X2 = -8 … A=7 XN = A En VBA: X(1) = 2 X(2) = -8 … A=7 X(N) = A
  • 17. Maneras de dar valor a los elementos de un arreglo 2. Leer valores: Pseudocódigo: Para i=1, <=N, +1 Leer Xi Fin Para En VBA: For i=1 To N X(i) = Inputbox(“Ingrese X(” & i & “):”) Next i
  • 18. Maneras de dar valor a los elementos de un arreglo 3. Generar valores aleatorios: Todos los lenguajes de aleatorios: programación tienen una instrucción para generar un número aleatorio. En VB esta instrucción es Rnd y aleatorio. devuelve un valor real en el rango (0,1]. Ej: llenar el vector X con N valores aleatorios entre A y B Pseudocódigo: Para i=1, <=N, +1 Xi = A + Rnd*(B-A) Rnd*(BFin Para VBA: For i=1 To N X(i) = A + Rnd*(B-A) Rnd*(BNext i
  • 19. Maneras de dar valor a los elementos de un arreglo 4. Desde celdas de Excel: VBA permite la comunicación directa con el Excel: archivo de Excel sobre el cual se esté trabajando: trabajando:
  • 20. Maneras de dar valor a los elementos de un arreglo 5. Desde un archivo de texto: texto: Objeto Excel Nom$ = ThisWorkbook.Path & "" & "Vector_1.txt" i = 0: Open Nom$ For Input As #1 Do While (Not EOF(7)) i=i+1 Redim Preserve X(i) Input #1, X(i) Loop Close#1 • ThisWorkbook.Path contiene la trayectoria (ruta) donde está grabado el libro de Excel que contiene a su vez el proyecto VBA. • Restricción: El archivo de Excel y el archivo de textos deben estar en la misma carpeta.
  • 21. Tipos de datos definidos por el usuario Todos los lenguajes de programación tienen sus propios tipos de datos (estándar): enteros, reales, booleanos, etc. (estándar): etc. La mayoría (incluyendo VBA) permiten además que el programador defina tipos de datos particulares a partir de los tipos estándar. estándar. En VBA dicha definición se hace con la instrucción: instrucción: Type nombre_del_tipo (Aquí van los elementos) End Type
  • 22. Tipos de datos definidos por el usuario Una vez que se define un tipo de datos con Type … End Type, este entra a formar parte de los tipos de datos disponibles en el proyecto. proyecto. La definición debe hacerse en “General”. “General”. Igualmente, cuando se esté empleando dicho tipo de datos, el editor de programas mostrara sus componentes previamente definidos:
  • 23. Tareas • Crear un proyecto VBA y definir un tipo de datos Punto, Punto, que contenga las coordenadas de un punto en el plano cartesiano. cartesiano. Leer las coordenadas de N puntos desde un archivo de datos y almacenarlas en un vector Mostrar cuál es la menor y mayor distancia de dichos puntos respecto al origen (0,0) y mostrar los puntos a los que corresponden. corresponden. • Comenzar a problemateca 3 desarrollar los ejercicios de la
  • 24. Fundamentos de Programación Clase 8 FIN DE LA CLASE Gracias por la atención Escuela de Sistemas, Facultad de Minas Universidad Nacional de Colombia – Sede Medellín