Está en la página 1de 20

INTRODUCCIÓN A LA PROGRAMACIÓN

Semana 6
Datos estructurados, arreglos, funciones y procedimientos
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

APRENDIZAJE ESPERADO
El estudiante será capaz de:
• Organizar los datos estructurados para determinar el uso de los arreglos, funciones
y procedimientos, para la solución algorítmica de problemas determinados.

Reservados todos los derechos Instituto Superior de Artes y Ciencias de la Comunicación S.A. No se permite copiar, reproducir, reeditar, descargar, publicar,
emitir, difundir, de forma total o parcial la presente obra, ni su incorporación a un sistema informático, ni su transmisión en cualquier forma o por cualquier
medio (electrónico, mecánico, fotocopia, grabación u otros) sin autorización previa y por escrito de Instituto Superior de Artes y Ciencias de la Comunicación
S.A. La infracción de dichos derechos puede constituir un delito contra la propiedad intelectual.

IACC 2022 2
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

ÍNDICE
APRENDIZAJE ESPERADO ..................................................................................................................................................... 2
INTRODUCCIÓN ................................................................................................................................................................... 4
RESUMEN ............................................................................................................................................................................ 5
PALABRAS CLAVE ................................................................................................................................................................. 5
PREGUNTAS GATILLANTES ................................................................................................................................................... 5
1. DATOS ESTRUCTURADOS.................................................................................................................................................... 6
2. ARREGLOS ................................................................................................................................................................................. 6
2.1 UNIDIMENSIONALES (VECTORES) ....................................................................................................................................... 6
2.2 BIDIMENSIONALES (MATRICES)......................................................................................................................................... 11
3. FUNCIONES Y PROCEDIMIENTOS ............................................................................................................................................ 14
COMENTARIO FINAL .......................................................................................................................................................... 19
REFERENCIAS ..................................................................................................................................................................... 20

IACC 2022 3
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

INTRODUCCIÓN
Para diseñar algoritmos óptimos, generalmente se precisan estructuras de datos eficientes, en este
sentido, estructurar datos se refiere a organizar estos dentro del computador, lo que permite realizar
operaciones y manejar gran cantidad de información de la mejor manera posible. En este mismo orden de
ideas, dentro de la programación computacional existen varias estructuras de datos como arreglos, listas
enlazadas, pilas, colas y árboles binarios.
Por otro lado, dentro de la programación existe otro paradigma, llamado programación por procedimientos
y funciones, lo cual constituye la base de la programación modular, este permite realizar tareas concretas
varias veces dentro de una página, sistema o aplicación.

IACC 2022 4
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

RESUMEN
La programación modular (tanto las funciones y los procedimientos) permiten la resolución de un problema
descomponiéndose en varios subproblemas independientes uno del otro, de forma tal que pueden ser tratados por
separado debido a que son independientes entre sí. Esto permite probar módulos o subprogramas de forma
individual, corrigiendo errores antes de incluirlo en el programa principal.
De lo anterior se puede inferir que, esta técnica permite que se realice una acción concreta, y una vez realizada se
regresa al flujo del cuerpo programa desde donde se llamó el procedimiento o función, esto trae como ventaja, una
respuesta adecuada en relación con el tamaño de los programas.

PALABRAS CLAVE
• Arreglo
• Bidimensional
• Función
• Procedimiento
• Unidimensional

PREGUNTAS GATILLANTES
• ¿Qué ventaja tiene programar con una función?
• ¿Cuál es el objetivo de hacer una instrucción mediante arreglos?
• ¿Se puede corregir un programa solo en una parte de este sin tener que modificarlo todo?

IACC 2022 5
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

1. DATOS ESTRUCTURADOS
Cuando se menciona la frase datos estructurados, se hace referencia a los datos que existen en cualquier
base de datos, su mejor característica es que siempre están organizados y mediante el lenguaje máquina
se comprende fácilmente. Esto permite a los programadores que aplican bases de datos relacionales,
ingresar, manipular y buscar datos estructurados con mayor inmediatez. Estos pueden ser direcciones,
nombres, fechas, números de cuentas bancarias, números de tarjeta de crédito o débito, entre otros.

2. ARREGLOS
En algoritmos y programación se le conoce a un arreglo como un conjunto de datos agrupados en una
misma variable. También otros autores definen a los arreglos como vectores, como lo indica el autor Duque
(2017), “se debe entender cómo arreglo a una estructura en la que se almacena una colección de datos del
mismo tipo (ejemplo: las calificaciones de los alumnos de un grupo, sus edades, sus estaturas, etcétera)”
(p. 143).
Estos arreglos se caracterizan por tener el mismo nombre de variable, tener un índice que indica la posición
de uno de los datos almacenados en él, por tener un tamaño en posiciones y un tipo definidos de datos,
bien sea de tipo texto, número, booleano, etcétera.
Se tienen dos tipos de arreglos para dar solución a distintos problemas que podamos enfrentar, por un
lado tenemos los arreglos unidimensionales, y por otro lado los arreglos bidimensionales.

2.1 UNIDIMENSIONALES (VECTORES)


Los vectores, son arreglos unidimensionales o lineales. Guardan datos en posiciones que se incrementan
de manera secuencial y utilizan un índice para ubicar estos datos. De acuerdo con la definición del autor
Duque (2017), “Los vectores son arreglos que contienen un solo índice que indica la posición que guarda
el dato dentro del arreglo” (p. 144).
La estructura de un vector unidimensional es como sigue:

Nombres[5] = {“Juan”,”Maria”,”Pedro”,”Rosa”,”Elena”};

El ejemplo anterior es un arreglo de tipo texto que almacena en la misma variable “Nombres” cinco datos,
de los cuales el primero se encuentra en la posición cero (0) y el último en la posición cuatro (4).
Dado lo anterior, si se quiere acceder a algún dato en particular dentro del arreglo, debemos indicar el
nombre del arreglo y su índice de la siguiente forma:

Nombres[3];

IACC 2022 6
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

En este caso, Nombres[3] nos devolverá el dato que contiene el índice en la posición 3, y para este ejemplo
en particular es el dato “Rosa”.
Es importante recordar que a pesar de que el índice sea el número 3, no es la tercera posición sino la cuarta,
puesto que el indexado comienza en el número 0.
Como ejemplo práctico, se requiere realizar un algoritmo que permita leer 3 notas y devolver el promedio
mediante un mensaje en pantalla, en este caso en particular, utilizaremos arreglos únicamente para
mostrar cómo sería el almacenamiento en cada uno y cómo se realiza una operación simple con los datos.
Es importante recordar que este tipo de datos funcionan de la misma manera que el resto y solo se debe
considerar la variable con la posición para acceder al dato.

Figura 1. Diagrama de Flujo leer 3 notas


Fuente: elaboración propia.

IACC 2022 7
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

Para el gráfico anterior, el pseudocódigo sería escrito de la siguiente manera:

Inicio
Declarar Nota[] como número;
Declarar promedio como flotante;
Escribir “Por favor ingrese la primera nota”
Leer Nota[0];
Escribir “Por favor ingrese la segunda nota”
Leer Nota[1];
Escribir “Por favor ingrese la tercera nota”
Leer Nota[2];
Promedio = (Nota[0]+ Nota[1]+ Nota[2])/3
Escribir “El promedio de las notas es” + promedio;
Fin

En el ejemplo anterior se utiliza una misma variable para almacenar 3 datos que corresponden a las 3 notas,
sin embargo, lo ideal es poder aprovechar las ventajas de los ciclos repetitivos para hacer más corto el
código.

Figura 2. Diagrama de Flujo leer 3 notas usando variables


Fuente: elaboración propia.

IACC 2022 8
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

Para el gráfico anterior, el pseudocódigo sería escrito de la siguiente manera:

Inicio
Declarar Nota[], acum, indice como número;
Declarar promedio como flotante;
para índice=0, índice <3, 1 hacer
escribir “Por favor ingrese la nota número” + índice;
leer Nota[índice];
acum = acum + Nota[índice];
fin para
promedio = acum / 3;
Escribir “El promedio de las notas es” + promedio;
Fin

Para el ejercicio anterior se aplicó una estructura repetitiva para acortar el código, en este caso el ciclo
“Para”. Es importante notar que se utilizó una variable que permitiera ir acumulando las notas (la variable
“acum”), y finalmente poder realizar la operación. También se comienza a utilizar una variable que maneja
las posiciones y que en el ejercicio anterior se nombró como “índice”.
Ejemplo práctico:
Se necesita un algoritmo que permita leer 500 calificaciones de estudiantes ingresadas por teclado, se debe
mostrar un mensaje en pantalla indicando cuántas son reprobatorias y cuantas son aprobatorias.
Consideremos que el rango de calificaciones es de 0 a 100, y la nota mínima para aprobar la asignatura es
80.
Algunas consideraciones antes de iniciar el ejercicio:

✓ En este ejemplo nótese que, a pesar de requerirse leer 500 veces un dato, no se escribe la sentencia
“leer” 500 veces, sino que se aprovecha el ciclo “Para”, escribiéndose una sola vez y repitiendo el
proceso 500 veces.
✓ Adicionalmente, dentro de la estructura repetitiva se necesita utilizar una estructura de decisión
“Si-hacer si-Sino”, para verificar si una nota es mayor o menor al número 80 que es la nota mínima
para aprobar de acuerdo con el enunciado del ejercicio.
✓ Por último, se requiere el uso de dos contadores, uno para llevar la cuenta de la cantidad de notas
aprobadas y el otro para llevar la cuenta de la cantidad de notas reprobadas. Finalmente, se
muestran estos dos datos en mensajes separados para cada caso.

IACC 2022 9
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

Figura 3. Diagrama de Flujo leer 500 veces un dato


Fuente: elaboración propia.

IACC 2022 10
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

Este ejercicio podría simplificarse mostrando ambos resultados en un solo elemento o mensaje de esta
manera: “La cantidad de notas aprobadas son” + cont_rep + “y las reprobadas son” + cont_rep.

Para el gráfico anterior, el pseudocódigo sería escrito de la siguiente manera:


Inicio
Declarar Nota[], cont_apr, cont_rep, índice como número;
para índice=0, indice <500, 1 hacer
escribir “Por favor ingrese la nota número” + índice;
leer Nota[índice];
Si Nota[índice] >= 80 entonces
cont_apr = cont_apr + 1;
Sino
cont_rep = cont_rep + 1;
Fin si
fin para
Escribir “La cantidad de notas aprobadas son” + cont_apr;
Escribir “La cantidad de notas reprobadas son” + cont_rep;
Fin

2.2 BIDIMENSIONALES (MATRICES)


Los arreglos bidimensionales, también conocidos como matrices, guardan datos en dos posiciones que
podríamos llamar temporalmente “X” y “Y”, y utilizan dos índices para ubicar estos datos. De acuerdo con
la definición del autor Duque (2017) “por tal motivo se deben especificar dos posiciones (dos subíndices),
uno para la fila y otro para la columna, a este tipo de arreglos indistintamente se les llama tablas o
matrices.” (p. 157).
La estructura de un vector bidimensional es como sigue:

Edades[3][3] = {“55”,”76”,”42”};
{“37”,”22”,”15”};
{“18”,”14”,”20”};

El ejemplo anterior es un arreglo de tipo texto que almacena en la misma variable “Edades” tres datos, en
dos subíndices.
Dado lo anterior, si se quiere acceder a algún dato en particular dentro del arreglo, debemos indicar el
nombre del arreglo y su índice de la siguiente forma:

Edades[3][2];

IACC 2022 11
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

En este caso, Edades[3][2] nos devolverá el dato que contiene la posición del índice 3 para la fila, y 2 para
la columna, para este ejemplo en particular es el dato “14”.
Como ejemplo práctico, se requiere realizar un algoritmo que permita leer 3 nombres y tres edades y
almacenarlos en una matriz, los nombres deben estar en la fila 0 y las edades en la fila 1, de manera que el
índice de columna corresponda a cada nombre con su edad.
Gráficamente se vería así:

Datos[2][3] = {“Cristina”,”Rosa”,”Pedro”};
{“37”,”22”,”15”};

De modo que: si se requiere saber el nombre y la edad de alguna persona se traerán los siguientes
elementos: Datos[0][1] y Datos[1][1] que corresponden al nombre “Rosa” y la edad “22”

Datos[0][1] = “Rosa”
Datos[1][1] = “22”

Es importante recordar que a pesar de que el índice sea el número 1, no es la primera posición sino la
segunda, puesto que el indexado comienza en el número 0.
Para poder desplazarnos por este arreglo de datos necesitaremos dos estructuras cíclicas “Para”, la primera
para desplazarnos por las filas y la segunda para desplazarnos por las columnas, de manera que tendremos
un “Para” dentro de otro “Para” como se muestra a continuación:

para indice_f = 0, indice_f < 2, 1 hacer


para indice_c = 0, indice_c < 3, 1 hacer
[Sentencias a ser evaluadas]
fin para
fin para

Nótese que la variable “indice_f” corresponde al índice destinado para las filas, y la variable “indice_c” es
la variable destinada a ser el índice para las columnas.

IACC 2022 12
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

Dado lo anterior, el ejercicio quedaría gráficamente de la siguiente manera:

Figura 4 Diagrama de Flujo que permita leer 3 nombres y 3 edades


Fuente: elaboración propia.

IACC 2022 13
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

Para el gráfico anterior, el pseudocódigo sería escrito de la siguiente manera:


Inicio

Declarar Datos[2][3] como texto;


Declarar indice_f, indice_c como número;
Declarar indicador como buleano;

Indicador = falso;

para indice_f = 0, indice_f < 2, 1 hacer


para indice_c = 0, indice_c < 3, 1 hacer
Si indicador = falso entonces
Escribir “Ingrese el nombre”;
Leer Datos[indice_f][indice_c];
Sino
Escribir “Ingrese la edad”;
Leer Datos[indice_f][indice_c]; Fin si
fin para
indicador = verdadero;
fin para

Escribir “La cantidad de notas aprobadas son” + cont_apr;


Escribir “La cantidad de notas reprobadas son” + cont_rep;
Fin

En este ejercicio se ha utilizado una variable de tipo booleana que nos ayudará a identificar cuándo el
primer ciclo “para” haya dado la primera iteración, y saber que ya no es necesario solicitar al usuario
ingresar el nombre de la persona sino la edad.

3. FUNCIONES Y PROCEDIMIENTOS
Las funciones y procedimientos en la programación son herramientas muy útiles que permiten al
programador descomponer un requerimiento o problema, en problemas más pequeños y manejables a
nivel de desarrollo. De acuerdo con el autor López (2009), “estos facilitan al programador plantear y seguir
instrucciones, fragmentar una tarea en módulos con funciones precisas y plantear decisiones que un
procedimiento debe tomar de acuerdo a ciertas condiciones.” (p. 42).
En el mismo orden de ideas, pasemos a definir y diferenciar una función de un procedimiento:
Funciones: Son un algoritmo más pequeño dentro de un algoritmo principal, también llamado
“subalgoritmo”, que devuelve un resultado habiendo recibido o no datos de entrada.

IACC 2022 14
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

Estos datos de entrada los conoceremos como parámetros. Estos son simplemente datos o variables que
se le entregan a una función para que con ellos realicen el procedimiento para lo que fue diseñada. Algunas
funciones no requieren recibir datos o variables de entrada, esto depende de para que se requiere la
función.
Las funciones tienen la siguiente forma:
Función nombre_función (parámetros)
Declaraciones de variables
Inicio
Acciones
Devolver (variable resultado)
Fin función

Lo anterior se puede llamar desde el algoritmo principal de la siguiente manera:


Función nombre_función (parámetros)

Dentro del paréntesis se colocan los parámetros a pasar al subalgoritmo, si son más de uno deben
separarse por comas, si no se van a pasar parámetros se deja vacío dentro del paréntesis.
Por dar un ejemplo básico, se requiere un algoritmo que realice la suma de dos números ingresados por
teclado y al resultado sumarle un tercer número ingresado por teclado.
Para este ejemplo, el subalgoritmo o función quedaría de la siguiente manera:
Función Suma (A,B)
Declarar num1, num2, resultado como entero
Inicio
num1 = A
num2 = B
resultado = num1 + num2
Devolver (resultado)
Fin función

Una vez realizada la función, seguidamente el algoritmo principal quedaría de la siguiente manera:
Inicio
Declarar n1,n2,n3,result1,result2 como entero;
Escribir “Ingrese el primer número”;
Leer n1;
Escribir “Ingrese el segundo número”;
Leer n2;
result1 = Función Sumas (n1,n2);
Escribir “Ingrese el tercer número”;

IACC 2022 15
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

Leer n3;
result2 = Función Sumas (result1,n3);
Escribir “El resultado total es” + result2;
Fin

Nótese que la línea result1 = Función Sumas (n1,n2); consta de una variable “result1” que es la que
almacena el resultado de la función “Sumas” que recibe los parámetros “n1” y “n2”.
Luego de ingresar el tercer número, se llama nuevamente a la función “Sumas” que recibe los parámetros
“result1” y “n3” que corresponden al resultado de la primera suma y al tercer número ingresado por
teclado respectivamente.
De esta forma, se evita tener que codificar la sumatoria 2 veces, sino que con solo una función se puede
llamar fácilmente en cualquier parte del algoritmo que se necesite.

Ejemplo práctico:
Se necesita un algoritmo que permita ingresar 4 lecturas de temperaturas diarias por un total de 15 días.
Finalmente, se requiere tener el promedio de todas las temperaturas.
El algoritmo principal toma las lecturas y envía los datos a una función llamada “Promedios” la cual realiza
el promedio de las 4 lecturas y devuelve ese resultado. En el algoritmo principal acumula estos resultados
y al finalizar realiza un promedio total y lo muestra por pantalla.

Inicio
Declarar temp1, temp2, temp3, temp4, acum, indice como entero;
Declarar promedio como flotante;
Para indice = 0, indice < 15, 1 hacer
Escribir “Por favor ingrese la primera lectura”;
Leer temp1
Escribir “Por favor ingrese la segunda lectura”;
Leer temp2
Escribir “Por favor ingrese la tercera lectura”;
Leer temp3
Escribir “Por favor ingrese la cuarta lectura”;
Leer temp4
acum = acum + Función Promedios (temp1, temp2, temp3, temp4);
Fin para
promedio = acum / 15;
Escribir “El promedio de todas lecturas es ” + promedio;
Fin

IACC 2022 16
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

La función quedaría de la siguiente manera:

Función Promedios (A,B,C,D)


Declarar t1, t2, t3, t4, como entero;
Declarar promedio como flotante;
Inicio
t1 = A
t2 = B
t3 = C
t4 = D
promedio = (t1+t2+t3+t4)/4
Devolver (promedio)
Fin función

Procedimientos: Al igual que las funciones, los procedimientos son subalgoritmos, sin embargo, estos
tienen la capacidad de devolver más de un dato en sí mismos sobre el algoritmo principal. Los
procedimientos pueden incluso no recibir ningún parámetro.
Los procedimientos tienen la siguiente forma:
• Procedimiento nombre_procedimiento (parámetros)
• Declaraciones de variables
• Inicio
• Acciones
• Fin procedimiento

Ejemplo práctico:
Diseñe un algoritmo que permita ingresar 30 notas, obtener el promedio de ellas e identificar en que rango
de calificación cualitativa se encuentra el resultado, considere:
01-12 Malo
13-17 Bueno
18-20 Excelente
El algoritmo principal quedaría de la siguiente forma:

Inicio
Declarar indice como entero;
Procedimiento Calcular();
Fin

IACC 2022 17
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

El procedimiento “Calcular()” llamado desde el algoritmo principal quedaría como sigue:

Procedimiento Calcular()
Declarar indice, acum, nota como entero
Declarar promedio como flotante
Inicio
Para indice = 0, indice < 30, 1 hacer
Escribir “Por favor ingrese la nota número ” + indice;
Leer nota
acum = acum + nota;
Fin para
promedio = acum / 30;
Escribir “El promedio de las 30 notas es” + promedio
Fin procedimiento

IACC 2022 18
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

COMENTARIO FINAL
Los arreglos, son una estructura de datos que almacenan un conjunto de datos del mismo tipo. Cada
elemento de un arreglo se indica claramente y se accede a él señalando el nombre del arreglo seguido de
una expresión que está dentro de unos paréntesis o corchetes, los cuales se denominan índice del arreglo.
Los arreglos pueden ser unidimensionales o vectores y bidimensionales o matrices.
Los vectores requieren de un índice para referirse a cada uno de sus elementos.
Toda esta información fue importante y necesaria en la presente documentación, para reforzar
conocimientos relacionados a arreglos, matrices y vectores.

IACC 2022 19
Semana 6
Datos estructurados, arreglos, funciones y procedimientos

REFERENCIAS

Duque Betancourth, D. F., Saint-Priest Velásquez, Y. E., Segovia de Maya, P. D. R., & Loaiza, D. F. (2017).
Algoritmos y programación en pseudocódigo.
Joyanes Aguilar, L. (2003). Fundamentos de programación: algoritmos y estructura de datos y objetos.

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:


IACC (2022). Datos estructurados, arreglos, funciones y procedimientos. Introducción a la Programación.
Semana 6.

IACC 2022 20

También podría gustarte