Teoria de La Practica (De Clases)
Teoria de La Practica (De Clases)
Teoria de La Practica (De Clases)
Capítulo 1
Introducción
Pasos a seguir para resolver un problema
1- Definición del problema
Consiste en identificar con claridad los datos con los que se cuenta, las incógnitas que se deben
calcular, seleccionar el método de trabajo, utilizar las distintas herramientas de las que se
disponen, como ser diagramas de flujo o algoritmos, y verificar su comportamiento con una
prueba de escritorio.
3- Programación
5- Documentación
Página 1
Informática
Diagrama de flujo
Un diagrama de flujo es la representación gráfica de los pasos lógicos a seguir para resolver un
problema, que puede ser de procesamiento de datos, científico, etc.
El diagrama de flujo se compone de gráficos estandarizados, que tienen su significado y alcance,
unidos por líneas de flujo, que marcan el recorrido del proceso.
En el interior del gráfico debe aparecer una variable a la izquierda y un signo igual que significa
transferencia o asignación, además de un valor, una operación o una función en el lado derecho,
que será resuelta en primer lugar y luego su resultado será asignado a la variable de la izquierda
para su almacenamiento.
El gráfico de proceso tiene una entrada y una salida de flujo.
Ejemplos:
Como se ve en los ejemplos, las variables almacenan distintos tipos de valores, como por
ejemplo números enteros, números decimales, palabras o cadenas de caracteres, etc. Para cada
tipo de dato almacenado existe un tipo de variable adecuado. Más adelante se estudiarán los
distintos tipos de variables y su capacidad de almacenamiento, así como también las reglas para
su denominación.
Página 2
Informática
Entrada de datos
En este gráfico se debe colocar la variable que recibe los datos para almacenarlos. En el mismo
gráfico se pueden colocar varias variables separadas por comas. El diagrama de entrada de datos
tiene una entrada y una salida de flujo.
Ejemplos:
x
El programa espera el ingreso de un valor numérico para ser almacenado
en la variable x
Decisión
Ejemplos:
Página 3
Informática
Salida
Ejemplos:
C
El programa imprime el contenido almacenado en la variable C
A+B
El programa imprime el resultado de la operación A+B
Página 4
Informática
Líneas de flujo
Cuando se desea recorrer de abajo hacia arriba o de derecha a izquierda es necesario el uso de las
flechas.
Inicio y fin
Inicio Estos gráficos marcan el inicio y el fin del programa, por ello tienen una
sola línea de flujo, que sale o que llega al gráfico, según corresponda.
Subproceso
Otro uso muy frecuente consiste en la división de los programas extensos en módulos, que se van
programando por separado y se los invoca desde el flujo principal del programa. Esto se conoce
como programación modulada.
En Visual Basic se pueden utilizar dos tipos de subprocesos, los Procedimientos Sub( ) y los
Procedimientos Function( ). El estudio de estos procedimientos así como de los argumentos que
admiten se verá en detalle más adelante.
Ejemplos:
Ingreso de Este subproceso se encarga de ingresar los datos necesarios para la ejecución
Datos del programa principal. Ha sido resuelto y programado por separado, y en el
programa principal sólo se lo invoca por su nombre.
Página 5
Informática
Conectores
Se utilizan para interrumpir el flujo del proceso y retomarlo en otro lado. En su interior se
colocan números o letras iguales, donde se corta y donde se retoma el flujo. Su objetivo es darle
continuidad a las líneas de flujo cuando se cambia de hoja, o bien mejorar la claridad de un
diagrama de flujo en la misma hoja evitando el entrecruzamiento de líneas.
Variables
Las variables son espacios de memoria con un nombre de identificación, que almacenan valores
que pueden ir cambiando durante la ejecución del programa. Las variables pueden ser variables
simples escalares o variables de tipo matricial.
Las variables simples, también conocidas como variables escalares, pueden almacenar un solo
valor a la vez, y el almacenamiento de un nuevo valor desplaza al anterior provocando su
pérdida. Este es el tipo de variables con las que se comienza a trabajar en las primeras unidades.
Las variables matriciales o subindicadas se utilizarán en las unidades finales, ya que son
variables con una estructura interna que permite el almacenamiento de más de un valor, y su
manejo es más complejo.
Las variables pueden ser numéricas o alfanuméricas, es decir, algunas almacenan valores
numéricos y otras almacenan cadenas alfanuméricas formadas por letras, números y otros
caracteres del código ASCII. Las variables numéricas, a su vez, pueden tener diferente precisión,
así se tienen las variables numéricas enteras, las variables numéricas para valores decimales con
simple precisión y doble precisión, variables numéricas para fechas, etc.
En la primera etapa de la materia se utilizarán variables alfanuméricas y variables numéricas sin
precisar exactamente su tipo, pero con el comienzo de las unidades de codificación se especifi-
carán en forma exacta los tipos de variables que requiere cada programa.
Ejemplos:
n=5
c=1
Nombre$ = “José”
Direccion$ = “Av. Alberdi 201”
Indice = 10
j = - 420.12
det = 32.02562546
opcion$ = “si”
DNI$ = “14.628.224”
Página 6
Informática
contador = 0
promedio = acumulador / n
superficie = base * altura
Operadores Aritméticos
Las operaciones matemáticas se transcriben en Visual Basic respetando la sintaxis exigida por el
lenguaje. A continuación se presenta una lista de las operaciones más utilizadas y el operador
correspondiente.
Suma +
Resta -
Producto *
División /
Exponenciación ^
Página 7
Informática
Las operaciones se resuelven según la jerarquía de los operadores matemáticos, es decir, los
operadores de menor jerarquía se resuelven primero, como la exponenciación, el producto y la
división, y luego los de mayor jerarquía, como la suma y la resta. A igualdad de jerarquía la
expresión se resuelve de izquierda a derecha.
Para cambiar el orden de resolución de expresiones matemáticas se deben utilizar paréntesis,
empleando todos los que sean necesarios, uno a continuación de otro, ya que no están permitidos
los corchetes ni las llaves como en la notación matemática. A continuación se pueden ver algu-
nos ejemplos de operaciones y de uso de varios paréntesis.
Ejemplos:
a = 22 * z ^ 3
y = -4 / ( 2 * x )
z=2*x+3*y
x1 = ( -b + ( b^2 – 4 * a * c )) / ( 2 * a )
f = n * (n-1) * (n-2)
delta = ( y2 – y1 ) / ( x2 – x1 )
distancia = ( ( x2-x1 )^2 + ( y2-y1 )^2 ) ^ (1/2)
Página 8
Informática
Ejercicios Capítulo 1:
1. Determinar qué nombres de las siguientes variables son válidos en Visual Basic:
1) TotalVentasAnuales 2) %Intereses
3) NumeroDecimal 4) π
5) Tasa IVA 6) 14Valores
7) Nombre$ 8) Errorξ
9) Fecha$ 10) λ
11) Superficie 12) alfa
13) Dia de Nacimiento$ 14) radio
15) epsilon 16) Direccion$
2. Determinar qué valores se pueden asignar a una variable numérica en Visual Basic:
1) 14.5 2) 225$
3) 47.540 4) 14225 kg
5) 12 cm 6) 15,24
3. Determinar qué procesos de asignación contienen errores y en qué consiste el error cada caso:
1) A = 1.000 2) Q = P/R
3) Promedio = Acumulador / n 4) lado * ancho = Superficie
5) Direccion = “Las Heras 740” 6) Nombre$ = “José Gómez”
4. Determinar qué valores se asignarán a las variables en las siguientes expresiones, si trabaja-
mos con los siguientes valores: A = 8; B = 4 y C = 3:
1) M = A + B + C 2) N = C / 3
3) B = B + 1 4) Superficie = B * C
5) C = A – 1 6) C = C + 2
5. Escribir las siguientes expresiones algebraicas en forma interpretable por el Visual Basic.
x2 + y2
r= r = ax 2 − 5 x + 10
z2
x + y 3x
r = b 2 − 4ac r= − + 4y
z 4
4x + 2 y
r= ab
3z r=
cd
a+b
r= y − y1
c−d r= 2
x 2 − x1
r = ( x 2 − x1 ) 2 + ( y 2 − y1 ) 2
d = 2πr
4
s = πr 3 s = 4πr 2
3
Página 9
Informática
7. Evaluar las siguientes expresiones trabajando con los siguientes valores: A=4; B=5 y C=1:
a) d = x^y^z
b) d = x^(y^z)
c) d = x-y/z
d) d = (x-y)/z
e) d = 4*x+y+z
f) d = 4*(x+y)+z
g) d = 4*(x+y+z)
Página 10
Informática
Capítulo 2
Procesos lineales
Procesos lineales
En esta primera etapa se comenzará a resolver problemas que requieren un simple proceso lineal
sin bifurcaciones ni repeticiones. Estos programas son muy sencillos y su aplicación es limitada,
pero constituyen el primer paso en el aprendizaje de la programación.
Tanto las bifurcaciones atadas a una condición, como las repeticiones o bucles se verán en los
próximos capítulos.
Ejercicio 2.1:
Efectuar el diagrama de flujo de un programa que lea el largo l y el ancho a de un rectángulo,
calcule su superficie S, e imprima el largo l, el ancho a y la superficie S obtenida.
Inicio Fórmula:
Superficie: S = l . a
Fin
Ejercicio 2.2:
Efectuar el diagrama de flujo de un programa que lea el radio r de un círculo, calcule su
superficie S, e imprima el radio r y la superficie S calculada.
Inicio Fórmula:
Superficie: S = π . r2
PI = 3.14
Prueba de escritorio:
PI r S
r 3.14 10
314
Fin
Página 11
Informática
En el Ejercicio 2.2 se aprecia el uso de una constante PI. Una variable que mantiene su valor en
un programa, y no lo cambia durante todo el proceso se conoce con el nombre de constante, y la
asignación de su valor se efectúa generalmente al inicio del programa.
Inicio
Prueba de escritorio:
A=6 A B S
6 5
B=5
2
10
A=2
Salida por pantalla
10
S=A*B
Fin
El producto S = A*B ha sido efectuado con los valores 2 y 5, como resultado de la utilización de
los últimos valores que tienen almacenadas las variables que participan en el producto. El valor 6
que almacenó en un principio la variable A fue desplazado por el almacenamiento de un nuevo
valor igual a 2, con el cual prosigue el proceso y es el que se utilizará desde ese momento.
Página 12
Informática
Ejercicio 2.3:
Efectuar el diagrama de flujo de un programa que convierta una temperatura ingresada en grados
Fahrenheit a su equivalente en grados Celsius, e imprima el valor obtenido.
C = 5/9 * (F-32)
Prueba de escritorio:
F C
85
C 29,444
Ejercicio 2.4:
Efectuar el diagrama de flujo de un programa que genere un número aleatorio N entre 0 y 10 en
la computadora y lo imprima.
Página 13
Informática
Ejercicio 2.5:
Efectuar el diagrama de flujo de un programa que calcule el resto r de la división entre dos
números enteros m y n, e imprima el valor del resto r obtenido.
c=m/n
Prueba de escritorio:
m n c r
5 2
c = ENT(c)
2.5
2
r=m-c*n 1
Fin
Ejercicio 2.6:
Efectuar el diagrama de flujo de un programa que obtenga el redondeo de un número a con n
decimales, e imprima el valor resultante.
a = a * 10 ^ n Prueba de escritorio:
a n
135.476 2
a = a + 0.5
13547.6
13548.1
a = ENT(a) 13548
135.48
a = a / 10 ^ n
Salida por pantalla
135.48
a
Fin
Página 14
Informática
Ejercicio 2.7:
Efectuar el diagrama de flujo de un programa que calcule el valor en radianes de un ángulo, cuya
medida se ha ingresado en formato sexagesimal, con grados, minutos y segundos.
Ejercicio 2.8:
Efectuar el diagrama de flujo de un programa que permita ingresar los datos de un alumno y
calcule el promedio de las notas de dos parciales. Imprimir los datos del alumno y el promedio
obtenido.
Prueba de escritorio:
Inicio Nombre$ LU Nota1 Nota2 Pr .
“José López” 10409 80 90
85
Nombre$, LU
Nota1, Nota2
Salida por pantalla
José López 10409 85
Pr = (Nota1+Nota2) / 2
Página 15
Informática
Función Rnd( )
Sintaxis:
Rnd[(número)]
Comentarios:
La función Rnd( ) devuelve un número aleatorio decimal de simple precisión.
El argumento opcional número es cualquier expresión numérica válida.
La función Rnd( ) devuelve un valor menor que 1 pero mayor o igual a cero. El valor del
argumento número determina cómo la función Rnd( ) genera el número aleatorio: Para cualquier
valor de semilla inicial se genera la misma secuencia de números. Esto es debido a que cada
llamada sucesiva a la función Rnd( ) usará el número anterior como valor de semilla para el
siguiente número de la secuencia.
Antes de llamar a la función Rnd( ), puede utilizar la instrucción Randomize sin argumento para
inicializar el generador de números aleatorios con un valor de semilla basado en el reloj del
sistema.
Para producir enteros aleatorios en un intervalo dado, use esta fórmula:
Int((Límite_superior - límite_inferior + 1) * Rnd( ) + límite_inferior)
Aquí, límite_superior es el número mayor del intervalo y límite_inferior es el número menor del
intervalo.
Ejemplos:
Instrucción Randomize
Sintaxis:
Randomize [número]
Comentarios:
La instrucción Randomize inicializa el generador de números aleatorios.
El argumento opcional número es cualquier expresión numérica válida.
La instrucción Randomize utiliza el argumento opcional número para inicializar el generador de
números aleatorios de la función Rnd( ) y le asigna un nuevo valor de semilla. Si se omite
número, el valor devuelto por el reloj del sistema se usa como el nuevo valor de semilla.
Página 16
Informática
Si no utiliza la instrucción Randomize, la función Rnd (sin argumentos) utiliza el mismo número
como valor de semilla la primera vez que se la invoca, usando después como valor de semilla el
último número generado.
Nota: Para repetir secuencias de números aleatorios, llame a la función Rnd con un argumento
negativo antes de utilizar la instrucción Randomize con un argumento numérico. Al utilizar la
instrucción Randomize con el mismo valor de número no se repite la secuencia anterior.
Ejemplo:
En este ejemplo se utiliza la instrucción Randomize para inicializar el generador de números
aleatorios. Al omitirse el argumento número, Randomize utiliza el valor de retorno de la función
Timer un nuevo valor de comienzo.
Dim MiValor as Integer ' Dimensiona la variable MiValor como variable entera
Randomize ' Inicializa el generador de números aleatorios
MiValor = Int((6 * Rnd) + 1) ' Almacena en MiValor un número aleatorio entre 1 y 6
Función Int( )
Sintaxis:
Int(número)
Comentarios:
La función Int( ) devuelve la parte entera de un número
El argumento número es cualquier expresión numérica válida, o sea, un número, una fórmula o
una variable numérica decimal de precisión simple o doble.
Las funciones Int( ) y Fix( ) eliminan la fracción de un número y devuelven el valor entero
resultante. La diferencia entre Int( ) y Fix( ) es que si el número es negativo, Int( ) devuelve el
primer entero negativo menor o igual a número, mientras que Fix( ) devuelve el primer entero
negativo mayor o igual a número. Por ejemplo, Int( ) convierte -8.4 en -9 a diferencia de Fix( )
que convierte -8.4 a -8.
Ejemplos:
Página 17
Informática
Función Abs( )
Sintaxis:
Abs(número)
Comentarios:
El valor absoluto de un número es igual a su magnitud sin el signo. La función Abs( ) devuelve
un valor del mismo tipo que el que se pasó como parámetro y que especifica el valor absoluto del
número. El argumento número puede ser cualquier expresión numérica válida, o sea, un número,
una operación matemática o una variable numérica de cualquier tipo. Si el argumento número
contiene Null, la función devolverá Null; si es una variable no inicializada, devolverá cero.
Ejemplos:
Operador Mod
Sintaxis:
variable = número1 Mod número2
Comentarios:
El operador Mod divide dos números y devuelve sólo el resto.
El operador de módulo o resto divide número1 por número2 redondeando los números decimales
a enteros y devuelve sólo el resto como resultado, asignándolo a la variable que se encuentra a la
izquierda del signo igual. En el siguiente ejemplo A recibe el valor 5.
A = 19 Mod 6.7
Generalmente el tipo de dato del resultado es Integer o entero. La parte fraccionaria se trunca.
Sin embargo, si cualquiera de las expresiones es Null, el resultado será Null. Toda expresión
Empty se considera como 0.
Ejemplos:
En estos ejemplos se utiliza el operador Mod para dividir dos números y obtener como resultado
sólo el resto de la división. Si uno de los números es decimal, se redondea primero para
convertirlo en un entero.
Página 18
Informática
Función Sin( )
Sintaxis:
Sin(ángulo)
Comentarios:
La función Sin( ) calcula el seno de un ángulo dando como resultado un número decimal de
doble precisión. El resultado entra dentro del intervalo -1 a 1.
El argumento ángulo es cualquier expresión numérica válida que exprese un ángulo en radianes.
Para convertir grados a radianes, multiplique los grados por π/180. Para convertir radianes a
grados, multiplique los radianes por 180/π.
Función Cos( )
Sintaxis:
Cos(ángulo)
Comentarios:
La función Cos( ) calcula el coseno de un ángulo dando como resultado un número decimal de
doble precisión. El resultado entra dentro del intervalo -1 a 1.
El argumento ángulo es cualquier expresión numérica válida que exprese un ángulo en radianes.
Para convertir grados a radianes, multiplique los grados por π/180. Para convertir radianes a
grados, multiplique los radianes por 180/π.
Función Tan( )
Sintaxis:
Tan(ángulo)
Comentarios:
La función Tan( ) calcula la tangente de un ángulo dando como resultado un número decimal de
doble precisión. El argumento ángulo es cualquier expresión numérica válida que exprese un
ángulo en radianes. Para convertir grados a radianes, multiplique los grados por π/180. Para
convertir radianes a grados, multiplique los radianes por 180/π.
Ejemplos:
Dim ang as Double ' Dimensiona la variable ang como decimal de doble precisión
ang = 1.3 ' Almacena en la variable ang el valor del ángulo en radianes
MsgBox (Sin(ang)) ' Imprime el seno del ángulo almacenado en ang
MsgBox (Cos(ang)) ' Imprime el coseno del ángulo almacenado en ang
MsgBox (Tan(ang)) ' Imprime la tangente del ángulo almacenado en ang
Página 19
Informática
Función Log( )
Sintaxis:
Log(número)
Comentarios:
La función Log( ) devuelve el logaritmo natural de un número. El logaritmo natural es el
logaritmo en base e. El valor de la constante e es 2.718282 aproximadamente. El argumento
número es cualquier expresión numérica válida mayor que cero.
Puede calcular logaritmos en base-n para cualquier número x dividiendo el logaritmo natural de
x por el logaritmo natural de n de la siguiente manera:
Logn(x) = Log(x) / Log(n)
El ejemplo siguiente ilustra el cálculo del logaritmo en base 10 de un número almacenado en x:
Log10 = Log(x) / Log(10#)
Ejemplo:
Dim ang as Double ' Dimensiona la variable ang como doble precisión
ang = 1.3 ' Define el valor del ángulo en radianes
Shi = Log(ang + Sqr(ang * ang + 1)) ' Calcula el seno hiperbólico inverso
MsgBox (Shi) ' Imprime el seno hiperbólico inverso
Función Sqr( )
Sintaxis:
Sqr(número)
Comentarios:
La función Sqr( ) calcula la raíz cuadrada de un número. El argumento número es cualquier
expresión numérica válida mayor o igual a cero.
Ejemplos:
Página 20
Informática
Ejercicios Capítulo 2:
1. Realizar el diagrama de flujo para sumar dos números enteros e imprimir el resultado.
3. Realizar el diagrama de flujo de un proceso que lea una medida en centímetros y la transforme
a pulgadas e imprima el resultado. ( 1 pulgada = 2.54 centímetros )
4. Realizar el diagrama de flujo de un proceso que lea un ángulo en grados y los convierta a
radianes e imprima el resultado. ( 180 grados = 3.1416 radianes )
5. Realizar el diagrama de flujo de un proceso que lea el lado de un cubo y calcule su volumen.
6. Realizar el diagrama de flujo para convertir una temperatura en grados Fahrenheit a grados
Celsius. Imprimir el resultado. ( °C = 5/9 * (°F-32) )
7. Realizar el diagrama de flujo para convertir una lectura en horas, minutos y segundos a
formato de hora con punto decimal. Imprimir el resultado.
8. Realizar el diagrama de flujo para convertir una lectura en horas, minutos y segundos a su
valor en segundos. Imprimir el resultado.
9. Realizar el diagrama de flujo para convertir una lectura en formato de hora con punto decimal
a horas, minutos y segundos. Imprimir el resultado.
10. Realizar el diagrama de flujo para convertir una lectura en segundos a su valor en horas,
minutos y segundos. Imprimir el resultado.
11. Realizar el diagrama de flujo de un proceso que permita ingresar un nombre, un documento
de identidad, la fecha de nacimiento y la edad de una persona, y luego imprima los datos
obtenidos.
12. Realizar el diagrama de flujo de un proceso que permita calcular el precio de un artículo en el
año 2009, con el ingreso del precio actual y considerando una tasa de inflación constante
mensual de 4%. ( P = C * (1+R)^N )
13. Realizar el diagrama de flujo para intercambiar los valores de las variables A y B. Hacer la
prueba de escritorio con el supuesto de A=32 y B=75.
14. Realizar el diagrama de flujo de un programa que genere un número al azar entre 0 y 1.
15. Realizar el diagrama de flujo de un programa que genere un número al azar entre 0 y 10.
16. Realizar el diagrama de flujo de un programa que genere un número al azar entre 1 y 100.
Página 21
Informática
17. Realizar las pruebas de escritorio y las salidas por pantalla de los siguientes diagramas de
flujo:
A=9 A=3
A=3
B=5 B=5
A = A+2
S = A+B
A,B
A
D = A-B
P = 12
P = A*B Nombre$ = "Luis"
M = P/3
Calificacion = 7.50
S,D,P
R = 2*M
Nombre$ , Calificacion
Fin
M,R
Fin Fin
18. Realizar las pruebas de escritorio con datos seleccionados por el alumno, y las salidas por
pantalla correspondientes, de los siguientes diagramas de flujo:
Inicio Inicio
Fin
Página 22
Informática
Capítulo 3
Procesos con estructuras de selección
Procesos con estructuras de selección
Los procesos lineales vistos en el capítulo anterior permiten solucionar un muy reducido número
de problemas, ya que cualquier pequeña complejidad incorporada nos obliga a tomar alguna
alternativa de entre varias posibles.
Para ello la programación provee varias estructuras de selección, de las cuales estudiaremos la
más simple: la decisión con dos ramas de salida, que a pesar de su simplicidad nos permite
resolver un numeroso grupo de problemas.
Ejercicio 3.1:
Efectuar el diagrama de flujo de un programa que lea el largo l y el ancho a de un rectángulo, y
calcule su perímetro P. Si el perímetro P es mayor a 12, que calcule e imprima su superficie S.
Fórmulas:
Perímetro: P = 2 . ( l + a )
Inicio
Superficie: S = l . a
S=l*a
No S
Prueba de escritorio 2:
l a P S
Fin
5 7
24
35
En este ejercicio nos encontramos con la primera decisión, donde se compara el perímetro P con
un valor 12. La condición del diagrama debe ser formulada de manera que pueda tener solamente
dos respuestas (Si o No, Verdadero o Falso, etc.) para poder utilizar el gráfico de decisión visto
en el capítulo 1.
Página 23
Informática
En las dos ramas de salida del gráfico de decisión pueden existir procesos, y en algunos casos los
procesos se encontrarán en una sola de las ramas. Para esta última situación se sugiere formular
la condición de manera que los procesos queden ubicados en la rama del SI, dejando vacía la
rama de salida del NO. Esto obedece a facilitar su codificación con la estructura cerrada del IF-
THEN como se verá más adelante.
Una vez efectuados los procesos de cada rama, las líneas de flujo vuelven a unirse más abajo, en
correspondencia con el cierre de la estructura de decisión, y a partir de este cierre continúa una
sola línea de flujo.
En el Ejercicio 3.1 el cierre de la estructura condicional conduce a la finalización del diagrama
de flujo al cumplir lo solicitado por el enunciado.
Operadores relacionales
Los operadores relacionales comparan dos datos del mismo tipo y producen un valor lógico
como resultado de la comparación, es decir, son los que producen la respuesta Verdadero o Falso
Si o No. En el Ejercicio 3.1 se utilizó el operador relacional > (mayor que), pero se admiten una
cantidad de seis operadores de relación, como lo muestra el cuadro siguiente:
Operador Y (And)
Al igual que en álgebra, la salida por Si se producirá en el caso
de que todas las condiciones resulten verdaderas. Es suficiente
x > x1 y x < x2 Si que una de las condiciones no se cumpla para que el flujo tome
la rama del No.
No
Página 24
Informática
Operador O (Or)
En este caso es suficiente que alguna de las condiciones sea
A>5oB>7 Si
verdadera para obtener una salida por la rama del Si. Si todas las
condiciones fueran falsas, el flujo continúa por la rama del No.
No
Ejercicio 3.2:
Efectuar el diagrama de flujo de un programa que lea tres valores a, b y c, determine si estos
valores pueden ser los lados de un triángulo, y en caso afirmativo que calcule la superficie S del
triángulo y la imprima.
Fórmulas:
Inicio Para verificar si los valores pertenecen a los lados de un
triángulo utilizamos la siguiente propiedad:
a,b,c
p=a+b+c debe ser mayor a todos y a cada uno de
2 los lados
p=(a+b+c)/2
es decir: p>a y p>b y p>c
p>a y p>b
y p>c
Si La superficie se calcula con la siguiente fórmula:
No S Prueba de escritorio 1:
a b c p S
10 8 6
12 24
Fin
Salida por pantalla 1
24
Prueba de escritorio 2:
a b c p S
10 2 4
8
Página 25
Informática
Ejercicio 3.3:
Efectuar el diagrama de flujo de un programa que lea dos números a y b, los compare y almacene
en dos variables diferentes el mayor y el menor de ellos. Imprimir los resultados.
Inicio
Prueba de escritorio:
a b mayor menor
a,b 10 12
12 10
mayor = b mayor = a
menor = a menor = b
Fin
Página 26
Informática
Ejercicio 3.4:
Efectuar el diagrama de flujo de un programa que calcule las raíces x1 y x2 de una ecuación de 2°
grado: a.x2 + b.x + c = 0.
Inicio
Fórmula:
a,b,c x1 − b ± b 2 − 4ac
=
x2 2a
x1 = ( - b + d ) / ( 2 * a )
Salida por pantalla
x1 = - 0.32055
x2 = ( - b - d ) / ( 2 * a ) x2 = - 4.67945
No
"x1 =" , x1
"x2 =" , x2
Fin
Página 27
Informática
Ejercicios Capítulo 3:
1. Realizar el diagrama de flujo de un programa que lea dos números a y b, e imprima el mayor
de ellos.
2. Realizar el diagrama de flujo de un programa que permita leer cuatro números y a conti-
nuación imprima el mayor de los cuatro.
3. Realizar el diagrama de flujo de un programa que lea tres números y encuentre si alguno de
ellos es igual a la suma de los otros dos. En ese caso, imprimir el número encontrado.
90-100 Sobresaliente
80-89 Distinguido
70-79 Bueno
60-69 Aprobado
menos de 60 Insuficiente
5. Realizar el diagrama de flujo de un programa que permita determinar si un número leído por
teclado es divisible por 2, por 3 o por 5. Imprimir para cada caso la respuesta.
6. Realizar el diagrama de flujo de un programa que lea dos números A y B, los compare y
almacene en dos variables diferentes el mayor y el menor de ellos. Imprimir los resultados.
8. Realizar el diagrama de flujo de un programa que permita resolver las raíces de la ecuación de
segundo grado y=ax2+bx+c contemplando todas sus variantes e imprimir las soluciones
obtenidas.
x1 − b ± b 2 − 4ac
=
x2 2a
Página 28
Informática
Capítulo 4
Procesos con estructuras de repetición
Estructura de contador
Esta es una operación que incrementa en una unidad el valor
c=c+1 almacenado en la variable c, cada vez que el flujo del diagrama pasa
por esta estructura.
Estructura de acumulador
En esta expresión se efectúa una acumulación de un valor s en la
ac = ac + s variable ac, cada vez que el flujo del programa encuentra esta
estructura.
El valor que toma s en cada acumulación es esencialmente variable, lo que diferencia este caso
de la estructura de contador vista anteriormente.
Cada valor de s irá incrementando el valor de ac, resolviendo en primer lugar la operación a la
derecha del signo igual y transfiriendo luego el resultado a la variable ac.
Ejercicio 4.1:
Efectuar el diagrama de flujo de un programa que acumule la suma de los primeros n números
naturales e imprima su resultado.
Inicio
Prueba de escritorio:
c=0
ac = 0 n c ac
4 0 0
1 1
n
2 3
3 6
4 10
c=c+1
5
Fin
Página 29
Informática
Ejercicio 4.2:
Efectuar el diagrama de flujo de un programa que sume los números impares comprendidos en el
intervalo (a,b) e imprima el resultado.
Para determinar si un número es par o impar tenemos dos métodos que se pueden utilizar en los
diagramas de flujo. Los métodos consisten en:
Ejemplos:
No No
Inicio
ac = 0
Prueba de escritorio:
a b c ac
a,b 2 8 0
3 3
5 8
7 15
Resto(a/2) = 0 Si
9
No
ac = ac + c
c=c+2
c>b Si
No ac
Fin
Página 30
Informática
Ejercicio 4.3:
Efectuar el diagrama de flujo de un programa que calcule el máximo común divisor mcd de dos
números naturales a y b, e imprima el resultado.
Inicio
No
Salida por pantalla
c=a c=b
2
r1 = Resto(a / c)
r2 = Resto(b / c)
r1 = 0
y Si
r2 = 0
No mcd = c
c=c-1
mcd
Fin
Página 31
Informática
Ejercicio 4.4:
Efectuar el diagrama de flujo de un programa que calcule el mínimo común múltiplo mcm de
dos números naturales a y b, e imprima el resultado.
En este caso el procedimiento es similar, pero tomando el mayor de los dos números, que será el
límite inferior del contador c creciente. Se verifica en cada caso si el contador c es divisible por
los dos números a y b, y en caso afirmativo estaremos en presencia del mcm.
El contador será ascendente y su límite superior será a.b.
Inicio
c=0
a,b
a>b Si
No
c=b c=a
r1 = Resto(c / a)
r2 = Resto(c / b)
r1 = 0
y Si
r2 = 0
No mcm = c
c=c+1
mcm
Fin
Nota: Es importante aclarar que las dos expresiones vistas de contador y acumulador no serían
válidas desde el punto de vista matemático, ya que plantean una igualdad que no se puede
conseguir, pero en computación, donde el signo igual significa transferencia, son totalmente
válidas e inclusive muy utilizadas por su utilidad en conteos, acumulación de valores, aumento
del valor de una variable x con incremento h, etc.
Página 32
Informática
Ejercicio 4.5:
Efectuar el diagrama de flujo de un programa que lea por teclado e imprima una lista de números
enteros distintos de cero. El proceso debe terminar con un valor igual a cero que no se debe
imprimir. Imprimir además el número de valores leídos.
Inicio
Prueba de escritorio:
c=0 a c .
0
4 1
a 7 2
5 3
9 4
a=0 Si 2 5
0
No
Fin
Página 33
Informática
El siguiente segmento de diagrama de flujo muestra un bucle que cuenta 100 números leídos
desde el teclado, con las aclaraciones de los pasos importantes en el bucle.
num
El cuerpo del bucle se repite mientras la condición sea falsa. Inicialmente el contador (variable
Cuenta) es igual a 1, y por lo tanto la condición es falsa: el cuerpo del bucle se ejecutará. A
continuación la variable Cuenta se incrementa a 2 y la condición sigue siendo falsa. El cuerpo
del bucle se repite 100 veces y en ese momento la variable Cuenta toma el valor 101, por lo tanto
la condición se vuelve verdadera y el bucle termina saliendo por la rama del Si.
Las variables de control del bucle son siempre contadores. Normalmente los contadores se
inicializan en 0 o 1, La decisión de inicializar el contador a 0 o 1 depende del diseño del
programador o del problema en cuestión. En el uso de contadores se deben considerar al menos
tres factores: 1) el valor inicial, 2) el valor final, y 3) el operador relacional utilizado para
comprobar la terminación del bucle.
La ubicación física de la sentencia que modifica el valor de la variable de control del bucle
depende de su diseño, y su posición normalmente influye en el número de iteraciones que realiza
el bucle.
Página 34
Informática
i=0 0
1
2
3
4
i >= 10 Si 5
6
7
No 8
9
i
1
2
i=0 3
4
5
6
i >= 10 Si 7
8
9
No 10
i=i+1
i=1 1
2
3
4
5
i >= 10 Si 6
7
8
No 9
Los ejemplos anteriores han mostrado principalmente el mecanismo para modificar el flujo de
control de los programas. Sin embargo, los bucles sirven fundamentalmente para realizar tareas a
fin de que puedan ser útiles. La complejidad de la tarea a realizar dependerá del problema y del
diseño eficiente del bucle, es decir que el gráfico de impresión por pantalla de los ejemplos
dados anteriormente será reemplazado por un conjunto de instrucciones de acuerdo a cada caso
en particular.
Página 35
Informática
- El valor centinela debe ser único, es decir, debe ser fácilmente diferenciable del resto.
- El centinela debe ser del mismo tipo que los valores reales de los datos, de modo que pueda
leerse con la misma sentencia de entrada.
- El valor realmente utilizado para terminar la entrada de datos debe ser el mismo valor
esperado por el programa.
Fin
Página 36
Informática
Supongamos que se necesita un proceso para buscar un valor x en una lista de n datos, que están
almacenados en un vector Dato( ). La búsqueda debe terminar si se encuentra el valor x o bien si
la lista de datos se agota.
c=1
Dato(c) = x Si
- Si se encuentra el valor x dentro del vector Dato( ) la
f=1 variable bandera f cambia su valor a 1.
No
c=c+1
c>n
- La condición de salida del bucle será la comparación
o Si de la cantidad de datos leídos y además la verificación
f=1 del valor bandera almacenado en la variable f.
Página 37
Informática
Ejercicios Capítulo 4:
1. Realizar el diagrama de flujo que efectúe la suma de los números pares hasta 200 inclusive.
Imprimir la suma.
2. Realizar el diagrama de flujo que lea por teclado e imprima una serie de números distintos de
cero. El proceso debe terminar con un valor cero que no se debe imprimir. Imprimir además el
número de valores leídos.
3. Realizar el diagrama de flujo para calcular la velocidad (m/seg) de cada corredor de una
carrera de 1500 mts. Las entradas consistirán en parejas de números (minutos, segundos) que dan
el tiempo del corredor, para cada corredor. El proceso debe imprimir el tiempo en minutos y
segundos, así como la velocidad media de cada corredor. El fin del proceso se producirá cuando
la pareja de valores de tiempo sea (0,0).
4. Realizar el diagrama de flujo que determine el menor valor y el mayor valor de una lista de 25
números leídos desde el teclado.
6. Realizar el diagrama de flujo de un procedimiento que genere números al azar entre 0 y 10, y
cuya salida se produzca con el número 0.
Página 38
Informática
Ejercicio 4.6:
Efectuar el diagrama de flujo de un programa que lea por teclado un material de construcción y
la cantidad de bolsas compradas de cada uno, acumule las distintas cantidades por separado y
termine con la cadena alfanumérica “Fin”. Imprimir los resultados.
Inicio
Prueba de escritorio:
Material$ Cantidad AC1 AC2 .
AC1 = 0 “Cemento” 10 10
“Cal” 25 25
AC2 = 0 “Cal” 10 35
“Cal” 30 65
“Cemento” 15 25
Material$
“Cemento” 10 35
Cantidad
“Fin”
Material$="Cemento" Si
Salida por pantalla
AC1 = AC1 + Cantidad Cemento = 35
No Cal = 65
Material$="Cal" Si
Material$="Fin" Si
Fin
Página 39
Informática
Capítulo 5
Tablas de funciones
Tablas de funciones
La impresión de tablas en la computadora se obtiene mediante un proceso repetitivo, en el cual
se calculan los diferentes valores de las variables para cada paso y se los imprime en forma
encolumnada. Para cada función se deberá controlar si tiene algún punto de indeterminación ya
que el resultado matemático ∞ (infinito) produce un error de desbordamiento en la computadora.
Ejercicio 5.1:
Calcular los cuadrados y cubos de los primeros n números naturales e imprimir una tabla con los
resultados.
Inicio
Prueba de escritorio:
n c cuad cubo
n
4 0
1 1 1
c=0 2 4 8
3 9 27
4 16 64
c=c+1 5
cubo = c ^ 3
c , cuad , cubo
Página 39
Informática
Ejercicio 5.2:
Tabular la función: y = a.x2 + b.x + c para valores de x comprendidos en el intervalo x0 a x1, con
un incremento h. Imprimir los resultados.
El ejercicio consiste en hacer una tabla de x e y para la función cuadrática que aparece en el
enunciado. Para ello se deben ingresar por el teclado las constantes a, b y c, y posteriormente
tomar los distintos valores de x y calcular el resultado de la función y = f(x) para cada caso, e
imprimir la tabla de valores, en cada línea el valor de x y su respectivo resultado y.
Los valores de x se irán asignando mediante una estructura de contador, con la diferencia de que
el incremento no será igual a 1, sino que en forma genérica estará dado por un valor h, que
también se introducirá por teclado. La estructura de contador queda entonces x = x + h.
Inicio
a,b,c
Prueba de escritorio:
a b c x0 x1 h x y
x0 , x1 , h 1 3 10 0 3 0.5
0 10
x = x0
0.5 11.75
1 14
1.5 16.75
y=a*x^2+b*x+c 2 20
2.5 23.75
3 28
x,y
3.5
Página 40
Informática
Ejercicio 5.3:
Inicio
c,r,d
x0 = d - r
x1 = d + r
x = x0
y1 = c + (r^2 - (x-d)^2)^0.5
y2 = c - (r^2 - (x-d)^2)^0.5
x , y1 , y2
x=x+h
x > x1 Si
No
Fin
Página 41
Informática
Ejercicio 5.4:
Prueba de escritorio
Inicio n x0 x1 h x y y1 y2
2 1 4 1 1 +1 -1
2 +1.414 -1.414
n
3 +1.732 -1.732
4 +2 -2
x0 , x1 , h
No
y1 = x ^ (1/n)
y = x ^ (1/n) y2 = - x ^ (1/n)
x,y x , y1 , y2
x=x+h
x > x1 Si
No Fin
Página 42
Informática
Ejercicio 5.5:
Tabular la función: y = seno(x) para valores de x comprendidos en el intervalo x0 a x1, con un
incremento h, ingresados en grados sexagesimales.
Debido a que los ángulos se suministran en grados y la computadora trabaja con radianes para
sus funciones trigonométricas, estos valores deben ser previamente transformados para poder
luego aplicarles cualquiera de las funciones seno, coseno o tangente. En el ejemplo se maneja
una variable x que almacena los ángulos en grados y otra xr que los almacena en radianes. La
variable x también se utiliza para recorrer el intervalo de la tabla como se observa en el contador
x = x + h, y para el control de salida del bucle cuando x supera a x1.
Inicio
x0 , x1 , h
x = x0
xr = x * 3.14 / 180
y = SIN(xr)
x,y
x=x+h
x > x1 Si
No Fin
Página 43
Informática
Ejercicio 5.6:
Tabular la función: y = tg(x) para valores de x comprendidos en el intervalo x0 a x1, con un
incremento h, ingresados en grados sexagesimales.
seno( x)
Se debe salvar la indeterminación teniendo en cuenta que tg ( x) = , por lo tanto, cada
cos eno( x)
vez que encontremos que coseno(x)=0 la función dará un valor ∞. En la computadora se
producirá un error si intentamos calcular el función tg(x) en esos casos, entonces debemos
interceptar el flujo del programa y seleccionar una rama de salida diferente para salvar el error de
cálculo.
Inicio
x0 , x1 , h
x = x0
xr = x * 3.14 / 180
COS(xr) = 0 Si
No
y = TAN(xr)
x=x+h
x > x1 Si
No Fin
Página 44
Informática
Ejercicio 5.7:
x2
Tabular la función: y = para valores de x comprendidos en el intervalo x0 a x1, con un
x−2
incremento h.
Inicio
x0 , x1 , h
x = x0
x=2 Si
No
y=x^2/(x-2)
x=x+h
x > x1 Si
No Fin
Página 45
Informática
Ejercicio 5.8:
x
1
Calcular e imprimir los valores de: y = 1 + para x igual a las sucesivas potencias de 10,
x
para una cantidad de n valores.
Como menciona el enunciado, los valores de x serán previamente calculados en base a las
sucesivas potencias de 10, es decir que el primer valor de x será 100, luego x tomará el valor de
101, luego 102, y así sucesivamente n veces.
Inicio
c=0
x = 10 ^ c
y=(1+(1/x))^x
x,y
c=c+1
c>n Si
No Fin
Página 46
Informática
Ejercicio 5.9:
Efectuar el diagrama de flujo de un programa que permita calcular el promedio de tres notas de
parciales, ingresadas por teclado, de cada alumno de una asignatura, e imprima una tabla con las
tres notas dadas y el promedio calculado de cada uno. El proceso debe terminar cuando las tres
notas ingresadas sean iguales a cero.
n1 , n2 , n3 , pr
Página 47
Informática
Ejercicios Capítulo 5:
1. Realizar el diagrama de flujo de un proceso que cree una tabla con los cuadrados y los cubos
de los números enteros variando de 0 a N.
2. Realizar el diagrama de flujo de un proceso que cree una tabla de conversión de centímetros a
pulgadas, para un conjunto de medidas dadas en centímetros que varíen entre m1 y m2 con un
incremento h. La fórmula de conversión es la siguiente: 1 pulgada = 2.54 cm
3. Realizar el diagrama de flujo de un proceso que cree una tabla de conversión de grados
Fahrenheit a grados Celsius, para un conjunto de temperaturas que varíen entre t1 y t2 grados
Fahrenheit con un incremento h. La fórmula de conversión es la siguiente:
5
C= ( F − 32)
9
4. Realizar el diagrama de flujo de un proceso que cree una tabla de conversión de velocidades
en km/h a millas/h, para un conjunto de velocidades que varíen entre v1 y v2 km/h con un
incremento h. La fórmula de conversión es la siguiente: 50 millas/h = 80 km/h
5. Realizar el diagrama de flujo que imprima una tabla de valores para la siguiente función, para
valores de x entre –10 y 10 con un incremento igual a 0.5
y = x2 + x +1
6. Realizar el diagrama de flujo de un programa que permita calcular el promedio de tres notas
de cada alumno e imprima una tabla con las tres notas dadas por teclado y el promedio obtenido
mediante el proceso. El proceso debe terminar cuando las tres notas ingresadas sean iguales a
cero.
7. Realizar el diagrama de flujo de un proceso que imprima una tabla de valores de la siguiente
función para valores de x que varían entre x1 y x2, con un incremento h.
x 2 + 12
y=
x2 − 4
8. Realizar el diagrama de flujo de un proceso que imprima una tabla de valores de la siguiente
función para valores de x que varían entre x1 y x2, con un incremento h.
x 2 + 1.22
y=
sen( x)
9. Realizar el diagrama de flujo de un proceso que imprima una tabla de valores de la siguiente
función para valores de x que varían entre x1 y x2, con un incremento h.
y = x 3 + x + 10
Página 48
Informática
Capítulo 6
Problemas matemáticos
Ejercicio 6.1:
Efectuar el diagrama de flujo de un programa que calcule e imprima el factorial de un número n.
Inicio
n Prueba de escritorio:
n c f .
c=n
4 4 1
4
3 12
f=1
2 24
1 24
f=f*c 0
c=c-1
Salida por pantalla
c=0 Si
24
No f
Fin
Ejercicio 6.2:
Efectuar el diagrama de flujo de un programa que calcule e imprima los múltiplos de a, desde m
hasta n.
Inicio
a,m,n
c=m
Resto( c/a ) = 0 Si
c
No
c=c+1
c>n Si
Fin
No
Página 49
Informática
Ejercicio 6.3:
Efectuar el diagrama de flujo de un programa que permita determinar si un número n ingresado
por teclado es primo, y luego imprima la conclusión obtenida.
El procedimiento consiste en ir dividiendo el número n, ingresado por teclado, por los distintos
valores de un contador c comenzando desde n-1 hasta la unidad. Sabemos que un número primo
sólo es divisible por sí mismo y por la unidad, así que si en alguno de los valores intermedios el
resto de la división fuera cero, el número ya no es primo.
Para este ejercicio se utilizará una variable f como bandera. Si el valor de f permanece en cero es
porque la condición nunca fue verdadera, en consecuencia el número n es primo. Al contrario, si
n era divisible por alguno de los valores de c, la condición fue verdadera y provocó que f=1, con
lo cual al final del proceso podemos decir que el número n no es primo.
Inicio
Prueba de escritorio
n f c
n 7 0 6
5
4
f=0 3
2
c=n-1 1
f=1
No
c=c-1
Prueba de escritorio
n f c
c=1 Si 6 0 5
4
No 3
f=1 Si
1
2
No
1
1
n "es primo" n "no es primo"
Página 50
Informática
Capítulo 7
Bucles
Bucle For-Next
Un procedimiento más práctico para controlar variables que deben tomar valores numéricos
entre un valor inicial hasta un valor final, con un incremento determinado, es el siguiente:
donde:
Var = V.I. , V.F. , H Var: Nombre de la variable.
V.I.: Valor inicial que tomará la variable.
V.F.: Valor final que tomará la variable.
H: Incremento.
Ejemplo 1:
i = 1, 2, 3, 4, 5, 6
Ejemplo 2:
i=0,7,2
La variable i tomará los siguientes valores:
i = 0, 2, 4, 6, 8
Página 51
Informática
Ejemplo 3:
i = 5 , 0 , -1
La variable i tomará los siguientes valores:
i = 5, 4, 3, 2, 1, 0, -1
Ejemplo 4:
i = 1, 2, 3, 4, …, N, N+1
Ejemplo 5:
c=A,B
Ejemplo 6:
x = xi , xf , h
La variable x tomará los siguientes valores:
Este gráfico del diagrama de flujo se puede aplicar en muchos de los programas vistos en los
capítulos 4 y 5, por lo que a continuación se transcribirán esos mismos ejemplos, ahora resueltos
con el bucle For-Next.
Página 52
Informática
Ejercicio 7.1:
Efectuar el diagrama de flujo de un programa que permita calcular e imprimir la suma de los
primeros n números naturales.
Inicio
N c Ac
Ac = 0
4 0 0
1 1
N 2 3
3 6
4 10
c=1,N 5
"Total" , Ac
Fin
Ejercicio 7.2:
Efectuar el diagrama de flujo de un programa que permita calcular e imprimir los primeros n
números naturales, sus cuadrados y sus cubos.
Inicio
Prueba de escritorio:
n i cuad cubo
N 4
1 1 1
2 4 8
i=1,N
3 9 27
4 16 64
cuad = i ^ 2 5
Fin
Página 53
Informática
Ejercicio 7.3:
Efectuar el diagrama de flujo de un programa que sume los números impares comprendidos en el
intervalo (a,b) e imprima el resultado.
Inicio
Ac = 0
Prueba de escritorio:
a b c i Ac
2 8 0
a,b 3 3 3
5 8
7 15
Resto( a / 2 ) = 0 Si 9
No
Salida por pantalla
c=a c=a+1 Total: 15
i=c,b,2
Ac = Ac + i
"Total" , Ac
Fin
La primera parte del diagrama de flujo se encarga de definir si el valor de a ingresado es par o
impar, almacenando en c entonces el primer valor impar del intervalo. A continuación se utiliza
la variable i como variable de control en el bucle For-Next, la cual va almacenando los valores
impares comprendidos entre c y b, y los acumula en la variable Ac, hasta que el valor de i supere
el valor de b.
Página 54
Informática
Ejercicio 7.4:
Tabular la función: y = a.x2 + b.x + c para valores de x comprendidos en el intervalo xi a xf, con
un incremento h. Imprimir los resultados.
Ejercicio 7.5:
Tabular la función: y = seno(x) para valores de x comprendidos en el intervalo xi a xf, con un
incremento h, ingresados en grados sexagesimales.
Inicio Prueba de escritorio:
xi xf h alfa alfar y .
xi , xf , h 0 20 5
0 0 0
5 0.08727 0.087156
alfa = xi , xf , h 10 0.17453 0.173648
15 0.26180 0.258819
20 0.34907 0.342020
alfar = alfa * 3.1416 / 180
25
Fin
Página 55
Informática
Ejercicio 7.6:
Tabular la función: y = tg(α) para valores de α comprendidos en el intervalo αi a αf, con un
incremento ∆, ingresados en grados sexagesimales.
seno(α )
Se debe salvar la indeterminación teniendo en cuenta que tg (α ) = , por lo tanto, cada
cos eno(α )
vez que encontremos que coseno(α) = 0 la función dará un valor ∞.
En la computadora se producirá un error si intentamos calcular el función tg(α) en esos casos,
entonces debemos interceptar el flujo del programa y seleccionar una rama de salida diferente
para salvar el error de cálculo.
Inicio
cos ( alfar ) = 0 Si
No
alfa , y
alfa
Fin
Página 56
Informática
Ejercicio 7.7:
x2
Tabular la función: y = para valores de x comprendidos en el intervalo xi a xf, con un
x−2
incremento h.
Inicio
xi , xf , h
x = xi , xf , h
x=2 Si
No
y=x^2/(x-2)
x , "∞ "
x,y
Fin
Como se ve en el ejercicio, en el momento en que x tome el valor 2 se producirá una división por
cero, que en la computadora provocará un error por desbordamiento. Se debe comparar entonces
si x = 2 para poder interceptar esta discontinuidad, imprimiendo un mensaje para luego continuar
la tabla con los próximos valores de x.
En los casos en que no se puede despejar fácilmente la variable en el denominador, es aconseja-
ble preguntar directamente si el denominador es cero: (x – 2) = 0. Esta es una regla general que
permite evitar en todos los casos el error por desbordamiento que produce una división por cero.
Página 57
Informática
Ejercicios Capítulo 7:
1. Realizar el diagrama de flujo de un programa que efectúe la suma de los números pares hasta
200 inclusive, e imprima la suma calculada.
2. Realizar el diagrama de flujo de un programa que determine el menor valor y el mayor valor
de una lista de 25 números leídos desde el teclado. Imprimir los resultados obtenidos.
4. Realizar el diagrama de flujo de un proceso que calcule e imprima una tabla con los cuadrados
y los cubos de los números enteros variando de 0 a N.
5. Realizar el diagrama de flujo de un programa que calcule e imprima una tabla de valores para
la siguiente función, para valores de x entre –10 y 10 con un incremento igual a 0.5
y = x2 + x +1
6. Realizar el diagrama de flujo de un programa que permita calcular el promedio de tres notas
de cada alumno e imprima una tabla con las tres notas dadas por teclado y el promedio obtenido
mediante el proceso. El proceso debe terminar cuando las tres notas ingresadas sean iguales a
cero.
7. Realizar el diagrama de flujo de un proceso que calcule e imprima una tabla de valores de la
siguiente función, para valores de x que varían entre x1 y x2, con un incremento h.
x 2 + 12
y=
x2 − 4
8. Realizar el diagrama de flujo de un proceso que calcule e imprima una tabla de valores de la
siguiente función, para valores de x que varían entre x1 y x2, con un incremento h.
x 2 + 1.22
y=
sen( x)
9. Realizar el diagrama de flujo de un proceso que calcule e imprima una tabla de valores de la
siguiente función, para valores de x que varían entre x1 y x2, con un incremento h.
y = x 3 + x + 10
Página 58
Informática
Capítulo 8
Estructuras de Datos - Vectores
Introducción. Estructuras de Datos: Arrays
Los datos pueden organizarse en diferentes formas: el modelo matemático o lógico de una
organización particular de datos recibe el nombre de estructura de datos. Una estructura de
datos es, en esencia, una colección de datos. La forma en que están relacionados unos con
otros determina el tipo de estructura. El valor de la estructura de datos se determina por
Las estructuras estáticas son aquellas en las que la dimensión total ocupada en memoria se
declara previamente y no es posible modificarla. Las estructuras dinámicas, como su nombre
lo indica, no tienen un tamaño fijo de memoria, y por lo tanto es posible modificar su tamaño
en memoria mediante variables denominadas punteros.
El Visual Basic soporta dos tipos de estructuras estáticas: arrays y archivos. Los arrays se
clasifican en vectores y matrices. Este capítulo se centra en el tema de los vectores, dejando el
tema de matrices para el capítulo siguiente.
Un array es una colección o conjunto de posiciones de memoria que tienen el mismo nombre
de variable, es decir, un conjunto de datos numéricos o de cadenas alfanuméricas que tienen el
mismo nombre.
Los valores individuales de un array son elementos, y para hacer referencia a ellos se utilizan
subíndices, según las dimensiones del array. Los elementos de los arrays también son
variables y se pueden utilizar en cualquier sentencia o función Visual Basic.
Tipos de Arrays
Los arrays se clasifican atendiendo a sus dimensiones:
Cada valor de un array se denomina elemento del array. Para acceder a los elementos de un
array se utilizan subíndices numéricos que identifican la posición de un valor dado en el array.
Visual Basic permite definir arrays de cualquier tipo: números o cadenas alfanuméricas. Los
arrays numéricos pueden ser de cualquier tipo numérico: enteros, enteros largos, simple
precisión o doble precisión.
Página 59
Informática
variables”). Cada elemento puede tener asignado un valor y se puede manipular de igual
forma que cualquier otra variable.
La dimensión de un vector es el número de elementos que componen el vector. En el caso de
un vector de nombre A y que conste de n elementos, se representa por alguna de las siguientes
notaciones:
variable ( subíndice )
Vectores numéricos:
Numero( )
1 2 3 4 5 6 7 8
4 51 32 -14 25 6 7 14
Numero( )
Numero(1) Numero(2) Numero(3) Numero(4) Numero(5) Numero(6) Numero(7) Numero(8)
4 51 32 -14 25 6 7 14
Página 60
Informática
Numero( )
Numero(1) 4
Numero(2) 51
Numero(3) 32
Numero(4) -14
Numero(5) 25
Numero(6) 6
Numero(7) 7
Numero(8) 14
Vectores de cadena:
Nombre$( )
1 2 3 4 5 6
Luis Francisco José Antonio Luis Marcos
Nombre$( )
Nombre$(1) Nombre$(2) Nombre$(3) Nombre$(4) Nombre$(5) Nombre$(6)
Nombre$( )
Nombre$(1) Luis
Nombre$(2) Francisco
Nombre$(3) José
Nombre$(4) Antonio
Nombre$(5) Luis
Nombre$(6) Marcos
A lo largo de todo el capítulo el paréntesis después del nombre de una variable estará indican-
do que se hace referencia a un vector en lugar de a una variable escalar. Es decir, Total( ) es el
vector de nombre Total.
Página 61
Informática
Ingreso de datos
Existen tres métodos para almacenar valores en un vector: sentencia de asignación, sentencia
de entrada de datos por teclado y sentencia de transferencia de datos desde la hoja de cálculo.
Supongamos que se desean almacenar los doce valores correspondientes a los elementos del
vector A( ).
A(2) = 3.50
A(1) = 4.25
A(2) = 3.50 A(3) = 2.50
...
A(12) = 22.05 A(12) = 22.05
A(2)
Dim A(12) as Single
A(3)
A(1) = InputBox (“Ingrese un valor”)
A(2) = InputBox (“Ingrese un valor”) A(4)
A(3) = InputBox (“Ingrese un valor”)
A(4) = InputBox (“Ingrese un valor”)
A(5)
...
A(12) = InputBox (“Ingrese un valor”)
A(12)
A(2)
Página 62
Informática
Las asignaciones de datos efectuadas con los procedimientos anteriores puede resultar útil si
el número de elementos es pequeño, porque en caso de ser elevado, estos procedimientos son
tediosos y largos de escribir. Para ello, el mejor sistema es utilizar estructuras repetitivas.
El ejemplo anterior se puede reemplazar con una estructura For-Next y la sentencia de entrada
de datos adecuada.
j=1,12
For j = 1 To 12
MsgBox (A(j)) A(j)
Next j j
Inicio
Dim A(12)
For j = 1 To 12 j=1,12
Página 63
Informática
En estas líneas se agregan mensajes que permiten comprender mejor los datos a ingresar y los
resultados que se están visualizando. Cuando la salida de datos se desea direccionar a las cel-
das de una hoja de cálculo, se podría codificar de esta manera:
Inicio
Dim A(12)
j=1,12
For j = 1 To 12
Mensaje$ = "Ingrese el valor de A(" + Str$(j) + ")" A(j)
A(j) = InputBox(Mensaje$)
j
Next j
j=1,12
For j = 1 To 12
ActiveSheet.Cells(j, 1).Value = A(j) A(j)
Next j
j
Fin
Las siguientes sentencias ponen todos los elementos del vector P( ) a un valor igual a cero.
k = 1,15
For k = 1 To 15
P(k) = 0
P(k) = 0
Next k
k
j = 1,15
For j = 1 To 15
X2(j) = X1(j)
X2(j) = X1(j)
Next j
j
Página 64
Informática
j = 1,20
For j = 1 To 20
C(j) = A(j) + B(j)
C(j) = A(j) + B(j)
Next j
j
Ejercicio 8.1:
Hacer el diagrama de flujo y la codificación de un programa que permita introducir un vector
A( ) de n elementos a través del teclado, y luego lo imprima por pantalla.
Inicio
Sub Ejercicio_8_1 ( )
n
Dim n as Integer
Dim i as Integer
i=1,n Dim A( ) as Single
n = InputBox (“Ingrese dimensión del vector”)
A(i) Redim A(n) as Single
For i = 1 To n
i
A(i) = InputBox (“Ingrese un elemento del vector”)
i=1,n Next i
For i = 1 To n
A(i) MsgBox (A(i))
Next i
i End Sub
Fin
Página 65
Informática
Ejercicio 8.2:
Hacer el diagrama de flujo y la codificación de un programa que permita cargar un vector A( )
por teclado, de n elementos, lo multiplique por una constante k, y almacene los resultados en
otro vector B( ). Imprimir el vector B( ) resultante.
Inicio
Sub Ejercicio_8_2 ( )
n Dim i as Integer, n as Integer
Dim k as Single
i=1,n Dim A( ) as Single, B( ) as Single
n = InputBox (“Ingrese dimensión del vector”)
A(i) Redim A(n) as Single, B(n) as Single
For i = 1 To n
i
A(i) = InputBox (“Ingrese un elemento del vector A”)
Next i
k
k = InputBox (“Ingrese el escalar k”)
i=1,n
For i = 1 To n
B(i) = k * A(i)
B(i)=k*A(i)
Next i
i For i = 1 To n
MsgBox (B(i))
i=1,n
Next i
B(i)
End Sub
Fin
En la página siguiente haremos una prueba de escritorio utilizando como referencia los
siguientes valores:
A( ) k
12.30 7.63 3.66 8.42 3
B( )
36.90 22.89 10.98 25.26
Página 66
Informática
Prueba de escritorio:
n i A( ) k B( ) Cálculos auxiliares .
4
1 A(1) = 12.30
2 A(2) = 7.63
3 A(3) = 3.66
4 A(4) = 8.42
5
3
1 B(1) = 36.90 B(1) = k * A(1) = 3 * 12.30
2 B(2) = 22.89 B(2) = k * A(2) = 3 * 7.63
3 B(3) = 10.98 B(3) = k * A(3) = 3 * 3.66
4 B(4) = 25.26 B(4) = k * A(4) = 3 * 8.42
5
1
2
3
4
5
36.90
22.89
10.98
25.26
Página 67
Informática
Ejercicio 8.3:
Hacer el diagrama de flujo y la codificación de un programa que calcule la resta de dos vec-
tores A( ) y B( ), de n elementos cada uno, leídos desde las celdas de una planilla de cálculo
Excel, almacenando el resultado en otro vector C( ) e imprimiendo el vector C( ) resultante en
otra columna de la planilla de cálculo.
Inicio
Sub Ejercicio_8_3 ( )
n Dim i as Integer, n as Integer
Dim A( ) as Single, B( ) as Single
i=1,n Dim C( ) as Single
n = InputBox (“Ingrese dimensión de los vectores”)
A(i)
Redim A(n) as Single, B(n) as Single
Redim C(n) as Single
i
For i = 1 To n
i=1,n
A(i) = Cells(i,1).Value
Next i
B(i)
For i = 1 To n
B(i) = Cells(i,2).Value
i
Next i
i=1,n For i = 1 To n
C(i) = A(i) – B(i)
C(i)=A(i)-B(i)
Next i
i For i = 1 To n
Cells(i,3).Value = C(i)
i=1,n
Next i
End Sub
C(i)
Fin
Página 68
Informática
Prueba de escritorio:
n i A( ) B( ) C( ) Cálculos auxiliares .
4
1 A(1) = 6
2 A(2) = 7
3 A(3) = 3
4 A(4) = 8
5
1 B(1) = 3
2 B(2) = 2
3 B(3) = 1
4 B(4) = 2
5
1
2
3
4
5
C(1) = 3
C(2) = 5
C(3) = 2
C(4) = 6
Página 69
Informática
Ejercicio 8.4:
Hacer el diagrama de flujo y la codificación de un programa que calcule e imprima el produc-
to escalar de dos vectores A( ) y B( ) de n elementos. Imprimir el producto escalar obtenido.
n
Pe = ∑ a i .bi = a1 .b1 + a 2 .b2 + a 3 .b3 + ... + a n .bn
i =1
Inicio
Sub Ejercicio_8_4 ( )
n Dim i as Integer, n as Integer
Dim A( ) as Single, B( ) as Single
i=1,n Dim Pe as Single
n = InputBox (“Ingrese dimensión de los vectores”)
A(i) Redim A(n) as Single, B(n) as Single
For i = 1 To n
i
A(i) = Cells(i,1).Value
Next i
i=1,n
For i = 1 To n
B(i) B(i) = Cells(i,2).Value
Next i
i Pe = 0
Pe = 0 For i = 1 To n
Pe = Pe + A(i) * B(i)
i=1,n
Next i
Pe
Fin
Página 70
Informática
Prueba de escritorio:
n i A( ) B( ) PE Cálculos auxiliares .
4
1 A(1) = 1.75
2 A(2) = 7.26
3 A(3) = 3.40
4 A(4) = 5.42
5
1 B(1) = 2.95
2 B(2) = 4.28
3 B(3) = 3.10
4 B(4) = 5.75
5
0
Página 71
Informática
Ejercicio 8.5:
Hacer el diagrama de flujo y la codificación de un programa que calcule el valor de un polino-
mio Pn(x), de grado n, para un valor de x ingresado por teclado. Imprimir el valor obtenido.
Pn ( x ) = a n . x n + a n −1 . x n −1 + ... + a3 . x 3 + a 2 . x 2 + a1 . x + a 0
a(i)
Redim a(n) as Single
For i = n To 0 Step -1
i a(i) = InputBox (“Coeficiente del polinomio”)
Next i
x
x = InputBox (“Ingrese valor de la variable x”)
y=0 y=0
For i = n To 0 Step -1
i = n , 0 , -1
y = y + a(i) * x ^ i
y=y+a(i)*x^i Next i
MsgBox (“x = ” + Str$(x) + “ y = ” + Str$(y))
i
End Sub
x,y
Fin
Además de estas variables es importante notar en la prueba de escritorio los valores que toma
la variable i cuando se carga el vector A( ) de coeficientes del polinomio, y luego los valores
que toma la variable i cuando se lo calcula con el valor de x = 0.8.
Página 72
Informática
Prueba de escritorio:
n i A( ) x y Cálculos auxiliares .
3
3 A(3) = 0.25
2 A(2) = 1.75
1 A(1) = – 0.7
0 A(0) = 2
-1
0.8
0
3 0.128 y = y + A(3) * x3 = 0 + 0.25 * 0.83
2 1.248 y = y + A(2) * x2 = 0.128 + 1.75 * 0.82
1 0.688 y = y + A(1) * x1 = 1.248 – 0.7 * 0.81
0 2.688 y = y + A(0) * x0 = 0.688 + 2 * 0.80
-1
0.8 2.688
Prueba de escritorio:
n i A( ) x y Cálculos auxiliares .
3
3 A(3) = 0.25
2 A(2) = 1.75
1 A(1) = – 0.7
0 A(0) = 2
-1
1.2
0
3 0.432 y = y + A(3) * x3 = 0 + 0.25 * 1.23
2 2.952 y = y + A(2) * x2 = 0.432 + 1.75 * 1.22
1 2.112 y = y + A(1) * x1 = 2.952 – 0.7 * 1.21
0 4.112 y = y + A(0) * x0 = 2.112 + 2 * 1.20
-1
1.2 4.112
Página 73
Informática
Ejercicio 8.6:
Hacer el diagrama de flujo y la codificación de un programa que calcule e imprima una tabla,
con los valores de un polinomio Pn(x), de grado n, para valores de x comprendidos en el inter-
valo de xi a xf, con un incremento h.
Pn ( x ) = a n . x n + a n −1 . x n −1 + ... + a3 . x 3 + a 2 . x 2 + a1 . x + a 0
i
Redim a(n) as Single
For i = n To 0 Step -1
x = xi , xf , h
a(i) = InputBox (“Coeficiente del polinomio”)
Next i
y=0
fila = 0
i = n , 0 , -1
For x = xi To xf Step h
y=0
y=y+a(i)*x^i
For i = n To 0 Step -1
i y = y + a(i) * x ^ i
Next i
x,y fila = fila + 1
Cells (fila,1).Value = x
x Cells (fila,2).Value = y
Fin
Next x
End Sub
Página 74
Informática
Ejercicio 8.7:
Hacer el diagrama de flujo y la codificación de un programa que determine el menor valor
almacenado en un vector A( ) de n elementos, y la posición que ocupa dicho valor. Imprimir
los resultados obtenidos.
Inicio
Sub Ejercicio_8_7 ( )
For i = 1 To n
A ( i ) < Menor Si
If A(i) < Menor Then
Menor = A ( i )
Menor = A(i)
No
Posicion = i Posicion = i
End If
i
Next i
"Menor =" , Menor MsgBox (“Menor = ” + Str$(Menor))
"Posición =" , Posicion
MsgBox (“Posición = ” + Str$(Posicion))
End Sub
Fin
Página 75
Informática
Ejercicio 8.8:
Hacer el diagrama de flujo y la codificación de un programa que ordene de menor a mayor los
valores almacenados en un vector A( ), de n elementos. Imprimir el vector A( ) ordenado.
Inicio
Sub Ejercicio_8_8 ( )
n
Dim n as Integer, i as Integer
Dim A( ) as Single
i=1,n
n = InputBox (“Ingrese la cantidad de elementos n”)
A(i) Redim A(n) as Single
i For i = 1 To n
A(i) = Cells ( i , 1 ) . Value
p=1,n-1 Next i
i=p+1,n For p = 1 To n – 1
For i = p + 1 To n
A(p)>A(i) Si
If A(p) > A(i) Then
aux = A ( i )
aux = A(i)
A(i)=A(p) A(i) = A(p)
No
A ( p ) = aux
A(P) = aux
End If
i Next i
Next p
p
For i = 1 To n
i=1,n
Cells ( i , 2 ) . Value = A(i)
Next i
A(i)
End Sub
Fin
Página 76
Informática
El método de ordenamiento por burbuja desarrolla un procedimiento que efectúa varias pasa-
das p por los elementos del vector, ordenando en cada una de ellas una posición dada en dicho
vector. Es decir, en la primera pasada, p = 1, se ordena el menor elemento en la posición 1, en
la segunda pasada, p = 2, se ordena el menor elemento restante en la segunda posición, y así
se continúa ordenando en cada pasada la posición p.
En el esquema que se presenta a continuación se pueden observar las distintas pasadas p y la
posición que se va ordenando, la cual está sombreada en gris. En la pasada p = 4 se ordena la
posición 4, y al estar ordenadas las cuatro posiciones superiores, la última posición quedará
entonces ordenada también.
Prueba de escritorio:
n p i A( ) p aux Cálculos auxiliares .
5
1 A(1) = 10
2 A(2) = 5
3 A(3) = 3
4 A(4) = 8
5 A(5) = 1
6
1
2 A(1) > A(2) ?
5
A(2) = 10
A(1) = 5
3 A(1) > A(3) ?
3
A(3) = 5
A(1) = 3
4 A(1) > A(4) ?
5 A(1) > A(5) ?
1
A(5) = 3
A(1) = 1
6
2
3 A(2) > A(3) ?
5
A(3) = 10
A(2) = 5
4 A(2) > A(4) ?
5 A(2) > A(5) ?
Página 77
Informática
A(1) = 1
A(2) = 3
A(3) = 5
A(4) = 8
A(5) = 10
Página 78
Informática
Ejercicio 8.9:
Escribir un programa que permita introducir y almacenar en un vector los nombres de las si-
guientes provincias: Formosa, Chaco, Santa Fe, Corrientes, Misiones y Entre Ríos.
End Sub
Fin
Ejercicio 8.10:
Modificar el Ejercicio 8.9 para imprimir la lista de nombres de las provincias en orden inverso
al ingresado.
For i = 1 To 6
Provincia$(i) Provincia$(i) = InputBox (“Ingrese el nombre de una provincia”)
Next i
i
For i = 6 To 1 Step –1
i = 6,1,-1
MsgBox (Provincia$(i))
Provincia$(i)
Next i
End Sub
i
Fin
Página 79
Informática
Ejercicio 8.11:
Se desea llenar un vector de 100 elementos con nombres de personas, con la salvedad de que
el proceso puede terminar cuando se introduzca un asterisco (*), lo que puede suceder antes
de haber leído los 100 nombres. Se debe imprimir el número de los elementos leídos así como
todos los nombres.
Inicio
Sub Ejercicio_8_11 ( )
Cuenta = 0 Dim Nombre$(1 To 100)
MsgBox (“Introducir nombres, un nombre por línea”)
Respuesta$
MsgBox (“Introducir un asterisco para terminar”)
Cuenta = 0
Respuesta$ <> "*" Si
Do
Cuenta = Cuenta + 1
Respuesta$ = InputBox (“Introducir un nombre”)
No
Nombre$(Cuenta) = Respuesta$
If Respuesta$ <> “*” Then
Cuenta = Cuenta + 1
Respuesta$ = "*" Nombre$(Cuenta) = Respuesta$
o
Cuenta >= 100 End If
Si
No
Loop Until (Respuesta$=”*”) or (Cuenta >= 100)
Cuenta MsgBox (“Cantidad de nombres = ” + Str$(Cuenta))
For i = 1 To Cuenta
i = 1,Cuenta
MsgBox (Nombre$(i))
Next i
Nombre$(i)
End Sub
i
Fin
Página 80
Informática
Ejercicio 8.12:
Se dispone de n temperaturas. Se desea calcular su media y determinar cuántas son superiores
o iguales a la media.
Se precisa, en primer lugar, leer los datos, almacenarlos en un vector y determinar la media. A
continuación se debe comparar cada uno de los valores con la media. Los datos se van a al-
macenar en un vector Temp( ).
C
End Sub
Fin
Página 81
Informática
Nombre$( ) Notas( )
Los arrays paralelos presentan la ventaja de que sus elementos se referencian por los mismos
subíndices.
Ejemplo:
NumeroCheques = 50
Aunque existen tres arrays independientes, todos tienen índices relacionados, de modo que
cada elemento de un array se refiere al mismo elemento del otro array. Los arrays paralelos
presentan la ventaja de poder utilizar la misma variable de control para acceder a elementos
homólogos.
Next i i
Página 82
Informática
Ejercicios Capítulo 8:
1. Realizar el diagrama de flujo y la codificación de un programa que defina un vector A( )
con 200 elementos, permita su ingreso por teclado y por último imprima todos los elementos
del vector A( ).
Suponiendo que j=3, k=4, l=6, ¿Qué valor almacena la variable A cuando se ejecutan las si-
guientes operaciones?
a) A = V(j) – V(k)
b) A = V(l) – V(k-j)
c) A = V(k) – V(j+k)
6. Hacer el diagrama de flujo correspondiente y determinar qué salida por pantalla produce el
siguiente programa en Visual Basic.
Dim B(5) as Integer
For j = 1 To 5
B(j) = InputBox (“Introduzca un número”)
Next j
For j = 5 To 1 Step –1
MsgBox (B(j))
Next j
si se ingresan los siguientes valores por teclado 5, 12, 6, 9 y 2.
Página 83
Informática
10. Realizar el diagrama de flujo y la codificación de un programa que transforme los datos de
un vector V( ) de n elementos, adicionándoles una constante k y almacenando los resultados
en el mismo vector V( ). Imprimir los resultados obtenidos.
Página 84
Informática
Capítulo 9
Estructuras de Datos - Matrices
Matrices: arrays de dos dimensiones
Un array de dos dimensiones, denominado también matriz, es una variable con filas y colum-
nas, que se identifica con un nombre válido, y cuyos elementos se referencian por dos sub-
índices, uno para la fila y otro para la columna. Así, una matriz de 4 filas y 6 columnas se
representa:
Arrays multidimensionales
Visual Basic permite arrays de hasta un máximo de 60 dimensiones, aunque es difícil trabajar
imaginar, y representar arrays con más de tres dimensiones.
Una matriz de tres dimensiones A(i,j,k) se puede representar por un paralelepípedo o un cubo.
Así, por ejemplo, la matriz T(3,2,5) se representa:
La mayoría de las aplicaciones no utilizan arrays con más de tres dimensiones, posiblemente
porque visualizar más de tres dimensiones parece demasiado abstracto.
Página 85
Informática
Arrays estáticos
Para declarar un array como estático, se deben utilizar constantes enteras positivas como
subíndices dentro de la sentencia DIM.
Si se define un array como estático no se puede redimensionar más tarde en el programa. Los
programas con arrays estáticos aumentan su velocidad, ya que Visual Basic necesita menos
memoria para su almacenamiento y por consiguiente se pueden procesar más rápido.
Arrays dinámicos
Para definir arrays como dinámicos, se deben utilizar variables enteras positivas como subín-
dices dentro de la sentencia REDIM. Estos arrays se definen cuando se ejecuta la sentencia
REDIM.
ReDim Notas(1 To Fin) Array de una dimensión, simple precisión con elementos
desde Notas(1) hasta Notas(Fin)
Página 86
Informática
x( )
0 0 0 0
x(0,0) x(0,1) x(0,2) x(0,3)
0 0 0 0
x(1,0) x(1,1) x(1,2) x(1,3)
0 0 0 0
x(2,0) x(2,1) x(2,2) x(2,3)
Ejemplo 9.1
Cargar una matriz Area( ) de 5 filas y 4 columnas con los siguientes datos:
Area( )
1 1 2 2
1 1 2 2
1 1 2 2
1 1 2 2
1 1 2 2
Solución 1
Inicio
Sub Ejemplo_9_1 ( )
Area(1,1) = 1
Dim Area(5,4) As Single
Area(1,2) = 1
Area(1,1) = 1
Area(1,3) = 2
Area(1,2) = 1
Area(1,3) = 2 Area(1,4) = 2
Area(1,4) = 2
...
Area(4,4) = 2 Area(4,4) = 2
End Sub
Fin
Este método es sumamente ineficiente, teniendo en cuenta que se ingresan los elementos con
20 procesos de asignación. Si la matriz fuera de 10 x 10, se necesitarían 100 gráficos de pro-
ceso para ingresar todos los elementos de la matriz.
Página 87
Informática
Solución 2 Inicio
Sub Ejemplo_9_2 ( )
i = 1,5
Dim Area(5,4) As Single
Area(i,1) = 1
For i = 1 To 5
Area(i,1) = 1 Area(i,2) = 1
Area(i,2) = 1 Area(i,3) = 2
Area(i,3) = 2
Area(i,4) = 2
Area(i,4) = 2
Next i
i
End Sub
Fin
Solución 3 Inicio
For i = 1 To 5
For j = 1 To 4 Area(i,j)
Ejemplo 9.2
Se desea cargar el valor 50 a cada elemento de una matriz A( ) con 10 filas y 20 columnas.
Inicio
Sub Ejemplo_9_2 ( )
i = 1,10
Dim A(10,20) As Single
For i = 1 To 10 j = 1,20
For j = 1 To 20
A(i,j) = 50 A(i,j) = 50
Next j
Next i j
End Sub
i
Fin
Página 88
Informática
Ejercicio 9.1:
Hacer el diagrama de flujo y la codificación de un programa que permita introducir por te-
clado los elementos de una matriz A( ) de n filas y m columnas.
Sub Ejercicio_9_1 ( )
Inicio
Dim A( ) As Single
Dim n As Integer, m as Integer n,m
For j = 1 To n
A( i , j )
For i = 1 To m
A(i,j) = InputBox(“Ingrese el valor del elemento”) j
Next i
i
Next j
End Sub Fin
Prueba de escritorio:
n m i j A( ) Cálculos auxiliares .
2 3
1 1 A(1,1) = 12
2 A(1,2) = 35
3 A(1,3) = 24
4
2 1 A(2,1) = 33
2 A(2,2) = 18
3 A(2,3) = 50
4
3
Página 89
Informática
Ejercicio 9.2:
Hacer el diagrama de flujo y la codificación de un programa que permita cargar los elementos
de una matriz A( ) de n filas y m columnas leyéndolos de una planilla de cálculo.
Inicio
Sub Ejercicio_9_2 ( )
Suponiendo tener una planilla de cálculo cargada con los siguientes datos:
A B C D E F
1 1 3 2 4
2 7 2 8 1
3 3 5 6 2
4
Prueba de escritorio:
n m i j A( ) Cálculos auxiliares .
3 4
1 1 A(1,1) = 1
2 A(1,2) = 3
3 A(1,3) = 2
4 A(1,4) = 4
5
2 1 A(2,1) = 7
2 A(2,2) = 2
3 A(2,3) = 8
4 A(2,4) = 1
5
3 1 A(3,1) = 3
2 A(3,2) = 5
3 A(3,3) = 6
4 A(3,4) = 2
5
4
Página 90
Informática
Ejercicio 9.3:
Hacer el diagrama de flujo y la codificación de un programa que permita sumar todos los
elementos de una matriz A( ) de 5 filas y 10 columnas.
Inicio
Sub Ejercicio_9_3 ( )
Suma = 0
Dim A(5,10) As Single
i = 1,5
Dim Suma as Single
Dim i as Integer, j as Integer
j = 1,10
Suma = 0
A(i,j)
For i = 1 to 5 j
For j = 1 to 10
i
A(i,j) = Worksheets(“Hoja1”).Cells(i,j).Value
i = 1,5
Next j
Next i j = 1,10
For j = 1 to 10 j
Fin
MsgBox( “La suma de los elementos de la matriz es ” + Str$(Suma) )
End Sub
La planilla de cálculo Excel trae varias hojas de cálculo, cada una con su nombre, por ejemplo
“Hoja1”, “Hoja2”, “Hoja3”. Estos nombres también se pueden cambiar, como por ejemplo
“Datos”, “Resultados”, etc.
Con el agregado de Worksheets(“Nombre de la Hoja”) antes de la instrucción Range o Cells
puedo especificar la hoja de cálculo de la cual quiero leer los datos, entre las distintas hojas de
cálculo de la planilla Excel activa.
Página 91
Informática
Ejercicio 9.4:
Hacer el diagrama de flujo y la codificación de un programa que permita cargar los elementos
de una matriz A( ) de n filas y m columnas de manera que cada elemento almacene el valor
resultante de sumar su fila y su columna. Imprimir la matriz resultante.
Aij = i + j
A12 = 1 + 2 = 3 Inicio
A13 = 1 + 3 = 4
A22 = 2 + 2 = 4 n,m
Sub Ejercicio_9_4 ( )
i=1,n
Dim A( ) As Single
Dim n as Integer, m as Integer
j=1,m
Dim i as Integer, j as Integer
n = InputBox(“Ingrese el número de filas”)
A(i,j) = i + j
m = InputBox(“Ingrese el número de columnas”)
ReDim A(n,m) as Single j
For i = 1 to n
i
For j = 1 to m
A(i,j) = i + j
i=1,n
Next j
Next i
j=1,m
For i = 1 to n
For j = 1 to m
A(i,j)
MsgBox( A(i,j) )
Next j
Next i j
End Sub
i
Fin
Página 92
Informática
Prueba de escritorio:
n m i j A( ) Cálculos auxiliares .
2 3
1 1 A(1,1) = 2 A(1,1) = i + j = 1 + 1
2 A(1,2) = 3 A(1,2) = i + j = 1 + 2
3 A(1,3) = 4 A(1,3) = i + j = 1 + 3
4
2 1 A(2,1) = 3 A(2,1) = i + j = 2 + 1
2 A(2,2) = 4 A(2,2) = i + j = 2 + 2
3 A(2,3) = 5 A(2,3) = i + j = 2 + 3
4
3
1 1 En esta etapa de la prueba de escritorio
2 se produce la impresión de los elementos
3 de la matriz, con la variación de las
4 variables i y j, pero la matriz A( ) no se
2 1 modifica, sólo se imprime, por lo tanto
2 no aparece en este sector de la prueba
3 de escritorio.
4
3
En la prueba de escritorio se pueden apreciar los valores que van tomando las variables i y j,
en un primer momento, para permitir el almacenamiento de los elementos de A( ), pero luego
también vuelven a tomar valores a medida que se va imprimiendo la matriz A( ). En esta etapa
no se modifican los valores de la matriz A( ), entonces no aparecen en la prueba de escritorio,
pero si lo hacen las variables i y j.
Página 93
Informática
Ejercicio 9.5:
Hacer el diagrama de flujo y la codificación de un programa que permita cargar los elementos
de una matriz D( ) de n filas y m columnas y calcule la suma de los elementos de cada co-
lumna almacenándolos en un vector C( ). Imprimir el vector C( ) resultante.
Ejemplo:
D( )
1 3 2 4
7 2 8 1
3 5 6 2
C( ) Inicio
11 10 16 7
n,m
For i = 1 to n
j=1,m
For j = 1 to m
D(i,j) = InputBox(“Ingrese el elemento D( )”) i=1,n
Next j
Next i C(j) = C(j) + D(i,j)
For j = 1 to m
i
For i = 1 to n
C(j) = C(j) + D(i,j) j
Next i
Next j j=1,m
For j = 1 to m
MsgBox( “C(” + Str$(j) + “) =” + Str$(C(j)) ) C(j)
Next j
End Sub j
Fin
Página 94
Informática
Prueba de escritorio:
n m i j D( ) C( ) Cálculos auxiliares .
3 4
1 1 D(1,1) = 1
2 D(1,2) = 3
3 D(1,3) = 2
4 D(1,4) = 4
5
2 1 D(2,1) = 7
2 D(2,2) = 2
3 D(2,3) = 8
4 D(2,4) = 1
5
3 1 D(3,1) = 3
2 D(3,2) = 5
3 D(3,3) = 6
4 D(3,4) = 2
5
4
1 1 C(1) = 1 C(1) = C(1) + D(1,1) = 0 + 1
2 C(1) = 8 C(1) = C(1) + D(2,1) = 1 + 7
3 C(1) = 11 C(1) = C(1) + D(3,1) = 8 + 3
4
1 2 C(2) = 3 C(2) = C(2) + D(1,2) = 0 + 3
2 C(2) = 5 C(2) = C(2) + D(2,2) = 3 + 2
3 C(2) = 10 C(2) = C(2) + D(3,2) = 5 + 5
4
1 3 C(3) = 2 C(3) = C(3) + D(1,3) = 0 + 2
2 C(3) = 10 C(3) = C(3) + D(2,3) = 2 + 8
3 C(3) = 16 C(3) = C(3) + D(3,3) = 10 + 6
4
1 4 C(4) = 4 C(4) = C(4) + D(1,4) = 0 + 4
2 C(4) = 5 C(4) = C(4) + D(2,4) = 4 + 1
3 C(4) = 7 C(4) = C(4) + D(3,4) = 5 + 2
4
5
1
2
3
4
5
Página 95
Informática
Ejercicio 9.6:
Hacer el diagrama de flujo y la codificación de un programa que permita cargar los elementos
de una matriz B( ) de n filas y m columnas y calcule el promedio de todos los valores almace-
nados en la matriz.
Ejemplo:
B( )
1 2 2 6
7 4 8 1
3 5 7 2
Inicio
AC PR
48 4
n,m
Dim B( ) As Single
j=1,m
Dim n As Integer, m As Integer
Dim i As Integer, j As Integer
B( i , j )
Dim AC As Single, PR As Single
n = InputBox(“Ingrese el número de filas”) j
m = InputBox(“Ingrese el número de columnas”)
i
ReDim B(n,m) as Single
For i = 1 to n AC = 0
For j = 1 to m
B(i,j) = Sheets(“Datos”).Cells(i,j).Value i=1,n
Next j
Next i j=1,m
AC = 0
AC = AC + B(i,j)
For i = 1 to n
For j = 1 to m j
AC = AC + B(i,j)
Next j i
Next i
PR = AC / (n*m)
PR = AC / (n*m)
MsgBox (“El promedio es ” + Str$(PR))
PR
End Sub
Fin
Página 96
Informática
Prueba de escritorio:
n m i j B( ) AC PR Cálculos auxiliares .
3 4
1 1 B(1,1) = 1
2 B(1,2) = 2
3 B(1,3) = 2
4 B(1,4) = 6
5
2 1 B(2,1) = 7
2 B(2,2) = 4
3 B(2,3) = 8
4 B(2,4) = 1
5
3 1 B(3,1) = 3
2 B(3,2) = 5
3 B(3,3) = 7
4 B(3,4) = 2
5
4
0 AC = 0
1 1 1 AC = AC + B(1,1) = 0 + 1
2 3 AC = AC + B(1,2) = 1 + 2
3 5 AC = AC + B(1,3) = 3 + 2
4 11 AC = AC + B(1,4) = 5 + 6
5
2 1 18 AC = AC + B(2,1) = 11 + 7
2 22 AC = AC + B(2,2) = 18 + 4
3 30 AC = AC + B(2,3) = 22 + 8
4 31 AC = AC + B(2,4) = 30 + 1
5
3 1 34 AC = AC + B(3,1) = 31 + 3
2 39 AC = AC + B(3,2) = 34 + 5
3 46 AC = AC + B(3,3) = 39 + 7
4 48 AC = AC + B(3,4) = 46 + 2
5
4
4 PR = AC / (n*m) = 48 / (3*4)
El promedio es 4
Página 97
Informática
Ejercicio 9.7:
Hacer el diagrama de flujo y la codificación de un programa que permita cargar los elementos
de una matriz A( ) de n filas y m columnas, y determine el mayor valor almacenado en dicha
matriz, y obtenga también la fila y la columna donde se halla este valor máximo. Imprimir los
resultados Inicio
Ejemplo:
n,m
A( )
12.30 21.45 0.78
i=1,n
7.63 4.67 45.32
3.66 15.72 8.66
j=1,m
Sub Ejercicio_9_7( ) j
Dim A( ) As Single
i
Dim n As Integer, m As Integer
Dim i As Integer, j As Integer Mayor = A(1,1)
Dim Mayor As Single
Dim Fila As Integer, Columna As Integer Fila = 1
Fila = 1
Fila = i
Columna = 1 No
For i = 1 to n Columna = j
For j = 1 to m
If Mayor < A(i,j) Then j
Mayor = A(i,j)
Fila = i i
Columna = j
Mayor
End If Fila , Columna
Next j
Next i
Fin
MsgBox (“El mayor elemento es ” + Str$(Mayor))
MsgBox (“Se encuentra en la fila ” + Str$(Fila) + “y en la columna ” + Str$(Columna))
End Sub
Página 98
Informática
Prueba de escritorio:
n m i j A( ) Mayor Fila Columna Cálculos auxiliares .
3 3
1 1 A(1,1) = 12.30
2 A(1,2) = 21.45
3 A(1,3) = 0.78
4
2 1 A(2,1) = 7.63
2 A(2,2) = 4.67
3 A(2,3) = 45.32
4
3 1 A(3,1) = 3.66
2 A(3,2) = 15.72
3 A(3,3) = 8.66
4
4
12.30 1 1
1 1
2 21.45 1 2
3
4
2 1
2
3 45.32 2 3
4
3 1
2
3
4
4
Página 99
Informática
Ejercicio 9.8:
Hacer el diagrama de flujo y la codificación de un programa que permita cargar un vector V( )
de n elementos y que calcule los cosenos directores de dicho vector. Imprimir los resultados.
Considerando como ejemplo un espacio de 2 dimensiones, el vector tendrá dos componentes
x1 y x2, su módulo será igual a:
2 2
M = x1 + x 2
y sus cosenos directores serán: Inicio
x
cos α 1 = 1
M
n
x
cos α 2 = 2
M
i=1,n
Sub Ejercicio_9_8 ( )
Dim V( ) As Single, C( ) As Single V( i )
Dim n As Integer, i As Integer
Dim MV As Single i
MV = 0
i
For i = 1 to n
MV = MV + V(i) ^ 2 MV = MV ^ 0.5
Next i
i=1,n
MV = MV ^ 0.5
For i = 1 to n
C(i) = V(i) / MV
C(i) = V(i) / MV
Next i i
For i = 1 to n
i=1,n
Sheets(“Cosenos”).Cells(i,1).Value = C(i)
Next i
C(i)
End Sub
Fin
Página 100
Informática
Ejercicio 9.9:
Hacer el diagrama de flujo y la codificación de un programa que calcule el producto entre dos
polinomios P(x) de grado n y Q(x) de grado m. El polinomio resultante de grado k debe ser
almacenado en R(x). Imprimir los resultados.
Inicio
Ejemplo:
P( x) = 4 ⋅ x 3 + 2 ⋅ x + 1
n,m
Q ( x) = 3 ⋅ x 2 + 2 ⋅ x
i = n , 0 , -1
R ( x ) = 12 ⋅ x 5 + 8 ⋅ x 4 + 6 ⋅ x 3 + 7 ⋅ x 2 + 2 ⋅ x
Sub Ejercicio_9_9( ) P( i )
For j = 1 to m
j
k=i+j
R(k) = R(k) + P(i) * Q(j) i
Next j
k=n+m
Next i
k=n+m
i = k , 0 , -1
For i = k to 0 Step -1
MsgBox(“Coeficiente de R(x) = ”+Str$(R(i))) R( i )
Next i
End Sub i
Fin
Página 101
Informática
Ejercicio 9.10:
Hacer el diagrama de flujo y la codificación de un programa que permita extraer el mayor
valor de la columna 3 de una matriz A( ) de n filas y m columnas. Imprimir el mayor valor, la
fila en la que se encuentra, y toda la fila de la matriz A( ) en donde se encuentra el mayor
valor obtenido.
Inicio
Dim A( ) As Single
Dim n As Integer, m As Integer i=1,n
For j = 1 to m
Mayor = A(1,3)
A(i,j) = InputBox(“Ingrese elemento de A( )”)
Next j Fila = 1
Next i
Mayor = A(1,3) i=1,n
Fila = 1
For i = 1 to n Mayor < A(i,3) Si
If Mayor < A(i,3) Then
Mayor = A(i,3)
Mayor = A(i,3)
Fila = i Fila = i
No
End If
Next i
MsgBox (“El mayor elemento es ” + Str$(Mayor)) i
A(Fila,j)
Fin
Página 102
Informática
Ejercicio 9.11:
Hacer el diagrama de flujo y la codificación de un programa que permita intercambiar todos
los elementos de las filas 1 y 3 de una matriz A( ) de n filas y m columnas. Imprimir la matriz
A( ) resultante.
Inicio
Sub Ejercicio_9_11( )
Dim A( ) As Single n,m
Dim n As Integer, m As Integer
Dim i As Integer, j As Integer i=1,n
For i = 1 to n
A(3,j) = aux
For j = 1 to m
Worksheets(“Matriz final”).Cells(i,j).Value = A(i,j)
j
Next j
Next i
i=1,n
End Sub
j=1,m
A( i , j )
Fin
Página 103
Informática
Ejercicio 9.12:
Hacer el diagrama de flujo y la codificación de un programa que permita controlar si en la
diagonal principal de una matriz cuadrada A( ) de n filas y n columnas, se encuentra un valor
menor a 10-3. Imprimir todos los valores encontrados que cumplan dicha condición.
Observar en este diagrama de flujo como se puede recorrer la diagonal principal de la matriz
con un solo subíndice, ya que sabemos que i = j.
Inicio
Sub Ejercicio_9_12( )
n
Dim A( ) As Single
Dim n As Integer i=1,n
Dim i As Integer
n = InputBox(“Ingrese el número de filas”) j=1,n
ReDim A(n,n) as Single
For i = 1 to n A( i , j )
For j = 1 to n
A(i,j) = InputBox(“Ingrese elemento de A( )”) j
Next j
Next i i
For i = 1 to m
If A(i,i) < 0.001 Then i=1,n
MsgBox( A(i,i) )
MsgBox(“Fila ” + Str$(i))
MsgBox(“Columna ” + Str$(i)) A(i,i) < 0.001 Si
End If
A(i,i)
Next i "Fila ", i
"Columna ", i
End Sub No
Fin
Página 104
Informática
Ejercicio 9.13:
Hacer el diagrama de flujo y la codificación de un programa que permita introducir una matriz
A( ) de n filas y m columnas, y luego intercambie las filas p y k elegidas por el usuario. Im-
primir la matriz A( ) resultante.
Sub Ejercicio_9_13( )
Inicio
Dim A( ) As Single
Dim n As Integer, m As Integer
n,m
Dim i As Integer, j As Integer
Dim p As Integer, k As Integer
i=1,n
n = InputBox(“Ingrese el número de filas”)
m = InputBox(“Ingrese el número de columnas”)
j=1,m
ReDim A(n,m) as Single
For i = 1 to n A( i , j )
For j = 1 to m
A(i,j) = InputBox(“Ingrese elemento de A( )”) j
Next j
i
Next i
p = InputBox(“Ingrese la fila a intercambiar”) p,k
k = InputBox(“Ingrese la otra fila a intercambiar”)
For j = 1 to m j=1,m
aux = A(p,j)
A(p,j) = A(k,j) aux = A(p,j)
A(k,j) = aux
Next j A(p,j) = A(k,j)
End Sub
j=1,m
A( i , j )
Fin
Página 105
Informática
Ejercicio 9.14:
Escribir un programa que lea el nombre de un cliente y el total de sus pedidos semanales de
materiales. El total de clientes es de 100 y se debe contemplar que hace un pedido de mate-
riales por cada día de la semana, de lunes a viernes.
Los nombres se almacenan en un vector Nombre$( ) de 100 elementos y los valores de los
pedidos diarios en una matriz Pedido( ) de 100 x 5 elementos. La lectura se efectúa tomando
los datos de una hoja de Excel que tiene el nombre de “Clientes” y su columna A está cargada
con los nombres de 100 clientes. Los pedidos se leen desde una hoja de Excel con nombre
“Compras” y cuyas columnas A, B, C, D y E contienen las compras diarias.
Next j i
Next i
i = 1,100
For i = 1 to 100
For j = 1 to 5 j = 1,5
Suma(i) = Suma(i) + Pedido(i,j)
Next j Suma(i) = Suma(i) + Pedido(i,j)
Sheets(“Totales”).Cells(i,1).Value = Suma(i) j
Next i
Suma(i)
End Sub
Fin
Página 106
Informática
Ejercicios Capítulo 9
1. Realizar el diagrama de flujo y la codificación de un programa que defina una matriz A( )
de n filas y m columnas, ingrese los datos por teclado y por último imprima todos los ele-
mentos de la matriz A( ).
Página 107
Informática
10. Realizar el diagrama de flujo y la codificación de un programa que permita introducir los
datos de una matriz A( ) de n filas y m columnas, luego intercambiar los valores almacenados
en la primera y la segunda columna, e imprimir la matriz A( ) transformada.
11. Realizar el diagrama de flujo y la codificación de un programa que permita introducir por
teclado los elementos de una matriz Temp( ) de n filas y m columnas, y adicionar un valor
constante k sólo a los elementos de la diagonal principal, recordando que en dichos elementos
el número de fila es igual al número de columna, es decir, i=j. Imprimir la matriz Temp( )
resultante.
12. Hacer el diagrama de flujo correspondiente y determinar qué salida por pantalla produce
el siguiente programa en Visual Basic.
For i = 1 To 3
For j = 1 To 3
A(i,j) = InputBox (“Introduzca un número”)
Next j
Next i
For i = 1 To 3
For j = 1 To 3
MsgBox (A(i,j))
Next j
Next i
si se ingresan los siguientes valores por teclado: 568, 123, 1, 3, 0.12, 24, 930, 7, -750
Página 108
Informática
13. Hacer el diagrama de flujo correspondiente y determinar qué salida por pantalla produce
el siguiente programa en Visual Basic.
For i = 1 To 4
For j = 1 To 4
C(i,j) = i + j
Next j
Next i
For i = 1 To 4
For j = 1 To 4
MsgBox (C(i,j))
Next j
Next i
19. Realizar el diagrama de flujo y codificación del programa que permita calcular la suma, la
resta y el producto de las dos matrices A( ) y B( ) siguientes:
2 1 3 -3 3 1
A( ) 1 -1 2 B( ) 4 0 -3
-1 -4 5 6 -2 7
Página 109
Informática
20. Realizar el diagrama de flujo y la codificación de un programa que permita obtener el co-
sto total de un viaje entre distintas ciudades 1, 2, 3, etc, teniendo como datos que el costo por
kilómetro es de 10 $/km, el viaje está formado por un par de valores c1 y c2 ingresados por
teclado que corresponden a las ciudades de origen y destino, y las distancias entre estas ciu-
dades están almacenadas en una matriz D(n,n) superior, cuyos elementos determinan las dis-
tancias entre las ciudades de su fila y su columna.
21. Realizar el diagrama de flujo y la codificación de un programa que permita obtener el co-
sto total de un viaje, como el problema anterior, considerando ahora que el viaje está almace-
nado en una matriz V( ), de n filas y 2 columnas, en la cual se encuentran las ciudades de ori-
gen en la columna 1 y las ciudades de destino en la columna 2. Los otros datos son iguales al
problema anterior.
2 7
V( ) 7 6
6 1
22. Realizar el diagrama de flujo y la codificación de un programa que obtenga el costo men-
sual de telefonía celular mediante el cálculo del costo de cada llamado efectuado durante el
último mes, cuyos datos se encuentran en una matriz L(n,2) en la cual la primera columna
corresponde a la localidad a la que se ha llamado y la segunda columna a la cantidad de se-
gundos de duración de la comunicación. Para calcular el costo unitario de cada llamado se
tiene como dato además un vector C(n) en el que el elemento i es el costo en $/min pertene-
ciente a la ciudad i.
Ejemplo:
1 2 0.32
L( ) 1 5 C( ) 0.62
4 3 0.78
3 8 0.95
3 2 1.02
1 11
Página 110
Informática
Capítulo 10
Series
Ejercicio 10.1:
Hacer un diagrama de flujo que permita calcular e imprimir los primeros 20 términos de la serie
de Fibonacci. Esta serie tiene los términos cuyo valor es la suma de los valores de los dos
términos anteriores, excepto los dos primeros.
Serie de Fibonacci: 1, 1, 2, 3, 5, 8, 12, ….
Prueba de escritorio:
Inicio c a s f .
1 1
c=1 2 0 1 1
3 1 1 2
f=1 4 1 2 3
5 2 3 5
...
f
Salida por pantalla
1
c=c+1 1
2
a=0 3
5
s=1 ...
f=a+s
Sub Ejemplo_10_1 ( )
Dim c As Integer, f As Integer
f
Dim a As Integer, s As Integer
c=1
f =1
c=c+1
MsgBox ( f )
c=c+1
a=s
a=0
s=1
s=f
Do
f=a+s
c > 20 Si MsgBox ( f )
c=c+1
No Fin a=s
s=f
Loop Until c > 20
End Sub
Página 111
Informática
Ejercicio 10.2:
N
2
Calcular la serie s = ∑1 k para una cantidad n de términos.
k =1
k=n Si
No s
Sub Ejemplo_10_1 ( )
Dim s As Single
Fin
Dim k As Integer, n As Integer
s=0
k=0
n = InputBox( “Ingrese la cantidad de términos”)
Do
k=k+1
s=s+(1/k^2)
Loop Until k = n
MsgBox (“La serie es igual a ” + Str$(s) )
End Sub
Página 112
Informática
Ejercicio 10.3:
1 1 1 1
Calcular la serie S ( x ) = 1 + + 2 + 3 + ... + n para una cantidad n de términos.
x x x x
Inicio
n
Prueba de escritorio
k S n x .
4 2
x 0
0 1
S=0 1 1.5
2 1.75
k=0 3 1.875
4 1.9375
S = S + 1 / x^k
k=k+1
Fin
Ejercicio 10.4:
1 1 1 1
Calcular la serie S ( x ) = 1 + + 2 + 3 + ... + n hasta que el último término calculado sea
menor que e = 0.001. x x x x
Inicio
Prueba de escritorio
x
k S x e .
5 0.001
0
e 0 1
1 1.2
S=0 2 1.24
3 1.248
k=0 4 1.2496
5 1.24992
S = S + 1 / x^k
k=k+1
Fin
Página 113
Informática
Ejercicios Capítulo 10
1. Realizar el diagrama de flujo que imprima y sume la serie de números 3, 6, 9, 12, ..., 99, hasta
un valor n ingresado. Imprimir además la suma obtenida.
2. Realizar el diagrama de flujo que calcule e imprima la serie de Fibonacci, donde cada término
es la suma de los dos anteriores, con excepción de los dos primeros. Serie de Fibonacci: 1, 1, 2,
3, 5, 8, ...
3. Realizar el diagrama de flujo que calcule e imprima una serie de números donde cada número
sea igual al doble del número anterior.
4. Calcular la fórmula:
x2 x3 xn
e( x ) = 1 + x + + + ... +
2! 3! n!
b) para un valor de x leído desde el teclado y hasta que n sea tal que xn
≤ 0.0001
n!
Página 114
Informática
Variables
Una variable es una zona o posición de memoria donde se almacena información (datos). Las
variables se identifican con un nombre, que debe cumplir ciertos requisitos del lenguaje.
Entre sus características se encuentra la estructura interna de la variable, que determina si una
variable es escalar o matricial, y el tipo de datos que puede almacenar, lo cual define el tipo de
variable. Las variables pueden ser numéricas o alfanuméricas. Los tipos de variables se analizan
con mayor detalle a continuación:
Hay dos clases de variables de cadenas: cadenas de longitud variable y cadenas de longitud fija.
Las cadenas de longitud variable pueden contener hasta 2 millones de caracteres. Las cadenas de
longitud fija pueden contener de 1 a 64 KB de caracteres.
Los caracteres que almacenan pueden ser letras, números, y otros símbolos como π, φ, £, µ, α, β,
γ, ε, incluidos en los juegos de caracteres ASCII. Dichos caracteres son identificados por las
computadoras mediante códigos.
Los códigos para caracteres de tipo String varían desde 0 a 255. Los primeros 128 caracteres (0-
127) corresponden a las letras y los símbolos de un teclado estándar de Estados Unidos. Estos
primeros 128 caracteres son los mismos que los definidos por el juego de caracteres ASCII. Los
siguientes 128 caracteres (128–255) representan caracteres especiales, como letras de alfabetos
internacionales, acentos, símbolos de moneda y fracciones.
El carácter de declaración de tipo String en el nombre de las variables es el signo de dólar ($).
Ejemplos:
A$ = “Hoy”
B$ = “Día Jueves”
Mensaje$ = “Ingresar el ángulo β:”
Direccion$ = “Av. Las Heras n°727”
Sexo$ = “Hombre”
Opcion$ = “Si”
DNI$ = “16.534.258”
LU$ = “4297”
Página 1
Informática
Las variables numéricas enteras tipo Integer se almacenan en memoria como números de 16 bits
(2 bytes) con valores que van desde -32768 a 32767.
El carácter de declaración de tipo en el nombre de la variable, para el tipo Integer, es el signo de
porcentaje (%). Este signo es opcional siempre que se la haya dimensionado anteriormente como
Integer.
Ejemplos:
c = 42
n = 10
cont% = 32000
Fila = 1
Columna = 3
i% = 10
j% = i% + 1
Las variables enteras largas almacenan números enteros entre -2147483648 y 2147483647.
Las variables Long se almacenan en la memoria como números con signo de 32 bits, ocupando 4
bytes.
El carácter de declaración de tipo en el nombre de la variable, para el tipo Long, es el signo &.
Ejemplos:
c = 4258687
n = 100000
cont = 320
fila& = 2
Cantidad = 427000
cd& = 175
Las variables de punto flotante de precisión simple tipo Single almacenan valores decimales, que
van desde –3.402823 x 1038 a –1.401298 x 10-45 para valores negativos y de 1.401298 x 10-45 a
3.402823 x 1038 para valores positivos.
Las variables Single o variables de punto flotante de precisión simple se almacenan en memoria
como números IEEE de coma flotante de 32 bits, ocupando 4 bytes.
El carácter de declaración de tipo en el nombre de la variable, para el tipo Single, es el signo de
exclamación (!).
Ejemplos:
Sup = 265.254236
base = 12.3685
altura = 32
Error = 0.0001
error! = 0.005
Det! = 136.432586
Area = base * altura
Página 2
Informática
Las variables dobles o variables de punto flotante de doble precisión, Double, almacenan valores
decimales comprendidos desde -1.79769313486231 x 10308 a –4.94065645841247 x 10-324 para
valores negativos y desde 4.94065645841247 x 10-324 a 1.79769313486232 x 10308 para valores
positivos.
Las variables Double se almacenan en memoria como números IEEE de coma flotante de 64 bits
ocupando 8 bytes.
El carácter de declaración de tipo en el nombre de variable, para Double, es el signo numeral (#).
Ejemplos:
Sup# = 265.25423125762836
base = 12.36851238465
altura = 14
Error# = 0.000000001
error = 0.000000005
Determinante# = 136.432582568753466
El lenguaje soporta otros tipos de variables que no se utilizarán en la cátedra. Para mayor
información se puede consultar la Ayuda del Visual Basic para Aplicaciones.
Declaración de Variables
En el código de un programa es recomendable efectuar al inicio la declaración de las variables
que se van a utilizar, asignándoles un nombre y un tipo, es decir, definiendo qué tipo de datos va
a almacenar cada una.
Instrucción Dim
La declaración de las variables se efectúa con la instrucción Dim. La instrucción Dim declara
variables y les asigna espacio de memoria para almacenamiento.
Esta instrucción no tiene un gráfico correlativo en el diagrama de flujo.
Sintaxis
donde:
nombre_variable: Argumento requerido. Es el nombre de la variable y sigue las reglas están-
dar de nombres de variables.
tipo: Argumento opcional. Es el tipo de variable, en relación al tipo de datos que puede alma-
cenar. Los tipos pueden ser Byte, Boolean, Integer, Long, Currency, Single, Double, Date,
String (para cadenas de longitud variable), String * longitud (para cadenas de longitud fija),
Object, Variant, un tipo definido por el usuario, o un tipo de objeto. Algunos de estos tipos ya
han sido descriptos anteriormente.
Página 3
Informática
Comentarios
Cuando se inicializan variables, una variable numérica se inicializa con 0 y una variable alfa-
numérica se inicializa con una cadena nula "". Las variables declaradas con Dim en el nivel de
módulo están disponibles para todos los procedimientos dentro de ese módulo. En el nivel de
procedimiento o programa, las variables sólo están disponibles dentro de ese procedimiento.
La declaración de varias variables en una sola instrucción Dim se realiza separando con comas
las variables y asignando a cada una un tipo de variable, con la palabra reservada As.
Cuando se utiliza la instrucción Dim en un procedimiento, se recomienda colocarla al principio
del mismo.
Ejemplos:
Las declaraciones de variables alfanuméricas de los ejemplos anteriores son equivalentes. Así,
por ejemplo, Nombre y Nombre$ hacen referencia a la misma variable, y por lo tanto a la misma
posición de memoria, de tal manera que los datos que se almacenan en una de ellas desplazan a
los datos anteriormente almacenados.
Página 4
Informática
Inicio y Fin
Los gráficos de Inicio y Fin se corresponden con dos instrucciones de Visual Basic: Sub y End
Sub. Las instrucciones Sub y End Sub se utilizan de acuerdo al esquema que se presenta a con-
tinuación:
donde:
nombre: Es el nombre del procedimiento. El nombre de un procedimiento puede ser de hasta
255 caracteres y debe comenzar con una letra. Puede contener letras, números y guión bajo.
No puede contener espacios.
argumentos: Es opcional. Es una lista de variables que se pasan al procedimiento. Puede no
contener argumentos pero los paréntesis son obligatorios.
Proceso
El diagrama de proceso no necesita una instrucción del Visual Basic. En las primeras versiones
del Basic se utilizaba la palabra Let, pero actualmente es suficiente escribir como código la ope-
ración que se desea realizar, con la sintaxis correcta.
Ejemplos:
c=c+1 c=c+1
S=L*A S=L*A
N$ = "Día" N$ = “Día”
Página 5
Informática
PI = 3.1416 PI = 3.1416
Ingreso de Datos
Existen diferentes formas de ingresar datos al proceso que estamos desarrollando. Se presentan a
continuación algunas de ellas, que son las utilizadas en la materia.
donde:
variable: es la variable que almacenará el dato a ingresar por teclado. Los tipos de variables se
estudiaron al principio del capítulo. Para efectuar un primer control de los datos válidos que
se admiten en la variable se la debe declarar previamente con la instrucción Dim.
mensaje: es una cadena de texto o cadena alfanumérica que facilita la comprensión del cuadro
de diálogo, haciendo posible una descripción del dato esperado. Puede ser un mensaje escrito
directamente entre comillas o una variable alfanumérica que contenga el mensaje aclaratorio.
Mediante la instrucción InputBox se despliega un cuadro de texto con un sector que permite
escribir los datos utilizando el teclado. Una vez que se oprime Aceptar, la variable que se utilizó
en la instrucción InputBox recibe los datos escritos en el cuadro de texto.
El ingreso por defecto de una instrucción InputBox es una cadena de texto, por lo tanto es nece-
sario declarar las variables numéricas previamente, para que el dato introducido por teclado se
tome como valor numérico. La declaración de las variables se realiza con la instrucción Dim
como se explicó anteriormente.
Ejemplos:
Página 6
Informática
donde:
variable: es la variable que almacenará el dato leído desde la celda de Excel, a la cual se hará
referencia mediante su columna y su fila. Los tipos de variables se estudiaron al principio del
capítulo. Para efectuar un primer control de los datos válidos que se admiten en la variable se
la debe declarar previamente con la instrucción Dim.
rango: es una cadena de texto o cadena alfanumérica formada por la letra de la columna y el
número de fila de la celda desde donde se quiere tomar el dato. Es decir, por ejemplo, que
para la celda A1 se deberá usar la cadena alfanumérica “A1”, para la celda C4 se deberá usar
una cadena alfanumérica “C4” o bien una operación que arroje ese resultado, como ser
“C”+”4”.
La instrucción Range no despliega ningún cuadro de texto ni mensaje aclaratorio, sino que pro-
cede directamente a la lectura del valor almacenado en la celda de Excel referenciada y luego
efectúa el almacenamiento de dicho valor en la variable indicada en la instrucción.
Ejemplos:
A B
1 Número real 14
N N = Range ( “B1” ) .Value 2
3
A B
1 Gómez, Luis
Nombre$ Nombre$ = Range ( “A1” ) .Value 2
3
A B
1 Límite inferior 1
x0 = Range ( “B1” ) .Value 2 Límite superior 10
x0 , x1 , h x1 = Range ( “B2” ) .Value 3 Incremento 0,5
h = Range ( “B3” ) .Value 4
C D E
A A = Range ( “D10” ).Value 9
10 420,75
11
Página 7
Informática
Instrucción Cells
Existe otro método para leer valores desde las celdas de Excel, utilizando la identificación de las
celdas mediante dos números, el de la fila y el de la columna. Así por ejemplo la celda A1 se
identifica como Cells(1,1), la celda B4 se podría referenciar como Cells(4,2), etc. La sintaxis
correspondiente para esta instrucción es la siguiente:
donde:
variable: es la variable que almacenará el dato leído desde la celda de Excel, a la cual se hará
referencia mediante su fila y su columna. Los tipos de variables se estudiaron al principio del
capítulo. Para efectuar un primer control de los datos válidos que se admiten en la variable se
la debe declarar previamente con la instrucción Dim.
fila: es un número entero, una operación matemática o variable numérica que almacene un
valor entero, el cual hace referencia al número de fila de la celda que se desea utilizar.
columna: es un número entero, una operación matemática o variable numérica que almacene
un valor entero, el cual hace referencia al número de columna de la celda que se desea utilizar.
La instrucción Cells tampoco despliega ningún cuadro de texto ni mensaje aclaratorio, sino que
procede directamente a la lectura del valor almacenado en la celda de Excel referenciada y luego
efectúa el almacenamiento de dicho valor en la variable indicada en la instrucción.
Ejemplos:
A B
1 Número real 14
N N = Cells ( 1 , 2 ) .Value 2
3
A B
1 Gómez, Luis
Nombre$ Nombre$ = Cells ( 1 , 1 ) .Value 2
3
A B
x0 = Cells ( 1 , 2 ) .Value 1 Límite inferior 1
x0 , x1 , h x1 = Cells ( 2 , 2 ) .Value 2 Límite superior 10
h = Cells ( 3 , 2 ) .Value 3 Incremento 0,5
4
C D E
A A = Cells ( 10 , 4 ) .Value 9
10 420,75
11
Página 8
Informática
Salida de Información
Existen diferentes instrucciones para visualizar los resultados obtenidos en un procedimiento. Se
pueden presentar los resultados por pantalla o por impresora. La salida por pantalla también tiene
distintas opciones, como ser la visualización en un cuadro de mensaje o la transferencia de los
resultados a las celdas de una hoja de cálculo Excel.
MsgBox ( mensaje )
donde:
mensaje: es una cadena de texto o cadena alfanumérica, que puede ser enviada en forma dire-
cta, encerrada entre comillas, o almacenando la información previamente en una variable al-
fanumérica.
Ejemplos:
MsgBox ( C )
C
Página 9
Informática
donde:
rango: es una cadena de texto o cadena alfanumérica formada por la letra de la columna y el
número de fila de la celda donde se desea escribir la información. Es decir, por ejemplo, que
para la celda A1 se deberá usar la cadena alfanumérica “A1”, para la celda C6 se deberá usar
una cadena alfanumérica “C6” o bien una operación que arroje ese resultado, como ser “C”+
“6”.
expresión: es un argumento que admite varias opciones, como ser una variable numérica, una
constante numérica, una variable alfanumérica, una constante alfanumérica, o una operación
que arroje resultados numéricos o alfanuméricos.
La instrucción Range no despliega ningún cuadro de mensaje como lo hace MsgBox, ni espera
que se oprima el botón Aceptar para continuar con el programa, sino que procede directamente a
escribir la información en la celda de Excel a la que se hace referencia, y luego continúa con la
siguiente instrucción del código.
Ejemplos:
Las instrucciones anteriores imprimen los títulos en la columna A y los valores de los datos o los
resultados obtenidos en la columna B, con lo cual se obtiene una planilla más completa.
Titulo$ = “Meses” A B C D
1 Meses
Range (“C1”) .Value = Titulo$
Titulo$ 2
3
En este ejemplo se imprime una variable alfanumérica que almacena la
palabra “Meses”, en la celda C1.
Página 10
Informática
Instrucción Cells
Existe otro método para escribir valores en las celdas de Excel, utilizando la identificación de las
celdas mediante dos números, el de la fila y el de la columna. De manera similar al proceso de
lectura de las variables desde la hoja de Excel, necesitaremos el número de fila y el número de
columna, así por ejemplo la celda A1 se identifica como Cells( 1, 1 ) y la celda B4 se referencia
como Cells( 4, 2 ). La sintaxis correspondiente para esta instrucción cuando la utilizamos para
impresión es la siguiente:
donde:
fila: es un número entero, una operación matemática o variable numérica que almacene un
valor entero, el cual hace referencia al número de fila de la celda que se desea utilizar.
columna: es un número entero, una operación matemática o variable numérica que almacene
un valor entero, el cual hace referencia al número de columna de la celda que se desea utilizar.
expresión: es una expresión que puede ser una variable numérica que contenga un dato, o un
resultado de un cómputo anterior, como así también alguna variable o cadena alfanumérica.
También se verá en los ejemplos la posibilidad de combinar cadenas alfanuméricas con valo-
res numéricos de manera de facilitar la comprensión de la información impresa.
La instrucción Cells tampoco despliega ningún cuadro de mensaje en pantalla como lo hacía
MsgBox, sino que procede directamente a la escritura del valor o resultado del argumento expre-
sión en la celda de Excel seleccionada mediante la fila y la columna. Dicho contenido queda es-
crito en la celda con la posibilidad de usarse posteriormente, tanto en una lectura o en algún
cálculo sucesivo.
Ejemplos:
Las instrucciones anteriores imprimen la información obtenida en las celdas de la fila 1, en las
columnas 1 y 2, es decir A1 y B1, de Excel, como se aprecia en el ejemplo.
Las instrucciones anteriores imprimen los títulos en la columna A y los valores de los datos o los
resultados obtenidos en la columna B, con lo cual se obtiene una planilla más completa.
Página 11
Informática
Titulo$ = “Meses” A B C D
Cells ( 1, 3 ) .Value = Titulo$ 1 Meses
2
Titulo$
3
En este punto ya contamos con las instrucciones necesarias para codificar todos los diagramas de
flujo del Capítulo 2, por lo que a continuación programamos como ejemplos en Visual Basic el
Ejercicio 2.1 del cálculo de la superficie de un rectángulo y el Ejercicio 2.5 del cálculo del resto r
en un división de dos números enteros m y n.
Ejercicio 2.1:
Ejercicio 2.5:
Inicio
Sub Ejercicio_2_5 ( )
Dim m as Integer
m,n
Dim n as Integer
Dim c as Single
c=m/n
Dim r as Integer
m = InputBox (“Ingrese un número entero m”)
c = ENT(c)
n = InputBox (“Ingrese un número entero n”)
r=m-c*n
c=m/n
c = INT ( c )
r=m–c*n
r
MsgBox (“El resto r es = ” + Str$(r) )
End Sub
Fin
Página 12
Informática
Ejercicio 3:
Fin
Ejercicio 7:
Sub Ejercicio_7 ( )
Dim A as Single, B as Single, C as Single
Dim D as Single, X1 as Single, X2 as Single
A = InputBox (“ a = ”)
B = InputBox (“ b = ”)
C = InputBox (“ c = ”)
D=B^2–4*A*C
Página 13
Informática
If D >= 0 Then
X1 = ( – B + D ) / ( 2 * A )
X2 = ( – B – D ) / ( 2 * A )
MsgBox (“ x1 = ” + Str$( X1))
MsgBox (“ x2 = ” + Str$( X2))
End If
End Sub
Ejercicio 8:
Sub Ejercicio_8 ( )
Dim C as Integer, AC as Integer
Dim N as Integer
C=0
AC = 0
N = InputBox (“Ingrese la cantidad n”)
Do
C=C+1
If C > N Then Exit Do
AC = AC + C
Loop
MsgBox (“Acumulador = ” + Str$( AC ))
End Sub
Página 14
Informática
Dimensionamiento Estático
Ejemplos:
En estos ejemplos se muestra cómo utilizar la instrucción Dim para declarar matrices y vectores.
El límite inferior predeterminado para los subíndices de vectores o matrices es 0 y se puede
modificar en el nivel de módulo mediante la instrucción Option Base.
Dimensionamiento Dinámico
Ejemplos:
Dim A( ) as Single
…
…
Redim A(n,m) as Single
Dim B( ) as Double
…
…
Redim B(n) as Double
Página 15
Informática
Dimensionamiento Estático
Ejemplos:
En estos ejemplos se muestra cómo utilizar la instrucción Dim para declarar matrices y vectores.
El límite inferior predeterminado para los subíndices de vectores o matrices es 0 y se puede
modificar en el nivel de módulo mediante la instrucción Option Base.
Dimensionamiento Dinámico
Ejemplos:
Dim A( ) as Single
…
…
Redim A(n,m) as Single
Dim B( ) as Double
…
…
Redim B(n) as Double
Página 17
Informática
1.- En primer lugar se nos presentará una pantalla similar a la que muestra la figura.
2.- Ubicándonos con el mouse en el extremo superior derecho, en la zona vacía de las barras de
íconos y oprimiendo el botón derecho del mouse, encendemos la barra de íconos del Visual
Basic.
Página 1
Informática
3.- Cuando encendemos la barra de íconos del Visual Basic es probable que aparezca en el centro
de la planilla, como se ve en la figura:
4.- Con el mouse la arrastramos hasta la parte superior tomándola en la zona azul del título y la
dejamos al lado de alguna de las otras barras de íconos que generalmente están encendidas.
Página 2
Informática
5.- A continuación grabaremos un programa en blanco con el fin de que el Excel arme la
estructura básica que luego pasaremos a completar. Oprimimos con el botón izquierdo del mouse
el icono de Grabar Macro que se ve en la figura:
6.- A continuación se nos presenta un cuadro de diálogo en el cual se sugiere un nombre para el
programa, que generalmente es Macro1, y lo aceptamos con el botón Aceptar. Posteriormente se
puede cambiar si así lo deseamos.
Página 3
Informática
7- En cuanto aceptamos el cuadro anterior, el Excel comenzará a grabar nuestras acciones, pero
como solamente deseamos grabar un programa en blanco para utilizar su estructura, procedemos
a finalizar la grabación con el icono Detener grabación como se muestra en la figura:
8.- Una vez grabada la estructura del programa debemos acceder a ella para poder completarla,
entonces seleccionamos el icono Editor de Visual Basic señalado en la figura, que nos llevará al
entorno de programación de la planilla Excel.
Página 4
Informática
9.- El entorno de programación del Visual Basic al cual accedemos es totalmente diferente a la
planilla de cálculo Excel, como se ve en la figura. En la zona superior izquierda del entorno se
presenta un pequeño explorador de proyectos, y debemos seleccionar el Módulo1 y efectuar un
doble clic para hacer visible el editor de Visual Basic donde escribiremos el programa.
10.- Una vez ejecutado el doble clic se nos presenta en la parte derecha un editor, con la
estructura creada de un programa llamado Macro1( ), con las palabras Sub y End Sub, pero su
interior permanece en blanco excepto algunas líneas que figuran en letras verdes y comienzan
con un apóstrofe, las que se utilizan para hacer aclaraciones.
Página 5
Informática
11.- Una vez creada la estructura del programa Macro1( ), lo completamos ubicándonos en una
línea en blanco que no tenga apóstrofe y que se encuentre dentro de la zona demarcada por las
palabras Sub y End Sub. En ese lugar comenzamos a escribir las primeras instrucciones Dim
desarrolladas en clase y avanzamos oprimiendo Enter al final de cada línea.
12.- Terminamos de escribir el programa completo, con lo cual la pantalla se verá de manera
similar a la figura siguiente:
Página 6
Informática
13.- El paso siguiente será ejecutar el programa. Para ello tenemos dos opciones: Con la tecla de
función F5 ejecutamos el programa normalmente y con la tecla de función F8 lo ejecutamos Paso
a Paso, señalando en amarillo la línea que se va a ejecutar. Elegimos el segundo método por ser
la primera vez, lo cual nos sirve además para interpretar mejor las acciones de la computadora.
Oprimimos entonces la tecla de función F8 y la pantalla mostrará lo siguiente:
14.- Para pasar a la siguiente línea nuevamente utilizamos la tecla de función F8.
Vemos así como se procesan las instrucciones Dim y la línea amarilla salta a la próxima
instrucción InputBox.
Página 7
Informática
Página 8
Informática
17.- Luego de avanzar con la tecla F8 para ejecutar paso a paso el programa, y después de haber
ingresado un valor para el lado y un valor para el ancho del rectángulo, la pantalla mostrará el
cálculo de S en color amarillo, indicando que ésta será la próxima línea a ejecutar.
Este cuadro combina el texto “La superficie es” con el valor numérico 140 que se obtuvo como
resultado del cálculo, y luego nuevamente el texto “cm2”.
Página 9
Informática
19.- Luego de seleccionar el botón Aceptar pasamos a la línea siguiente, donde se encuentra la
instrucción End Sub con la que se finaliza el programa.
20.- Oprimimos nuevamente la tecla F8 para que se ejecute la instrucción End Sub y al hacerlo
nos encontraremos con una pantalla como la siguiente figura:
Notamos que ninguna línea está señalada en amarillo, por lo tanto hemos terminado de ejecutar
el programa. Podemos probar ahora una nueva ejecución cambiando los valores del lado y del
ancho del rectángulo, con lo cual irá cambiando el valor de la superficie.
Página 10
Informática
21.- Es posible también ejecutar el programa desde la planilla del Excel, a diferencia de lo visto
anteriormente ya que nos encontrábamos en el entorno de programación Visual Basic. Para dar
comienzo a un programa desde la planilla Excel debemos seleccionar el icono Ejecutar Macro
como se ve en la figura:
22.- Se nos presenta un cuadro con los diferentes programas o macros disponibles, y elegimos
entonces el programa de la superficie del rectángulo que debe figurar con el nombre Macro1.
Página 11
Informática
23.- A continuación comenzará la ejecución del programa, con las pantallas ya explicadas en los
pasos anteriores. Iremos ingresando los valores del lado y del ancho de un rectángulo, la
computadora calculará la superficie y desplegará un mensaje con el resultado.
Página 12