Estimados Estudiantes,
Trabajo Experimental + GRUPAL
Realizar TAREA 2: Investigación de todo el capítulo de arreglos. Incluir ejercicios. Actividad
Grupal. (Formato Informe de Investigación + Diapositivas).
Subir una carpeta con el nombre: U2Tarea2Grupo#
EJEMPLO: U2Tarea2Grupo1
Dentro de la carpeta:
Informe en formato investigación en PDF con el nombre U2Tarea2Grupo#
Archivo en PSeint con el nombre U2Tarea2Grupo#
Carpeta del proyecto en Code Blocks con el nombre U2Tarea2Grupo#
Presentación - Diapositivas con el nombre U2Tarea2Grupo#
SIN PUNTOS, SIN ESPACIOS, CUMPLIR CON LA NOMENCLATURA, ver LISTA DE
ESTUDIANTES para colocar el # correcto.
NOTA: Su trabajo debe contener lo siguiente: mínimo 20 hojas. Recordar!!! Es el resumen
de lo visto, investigado y aprendido de los temas tratados hasta el momento. Cada tema
requiere de un ejemplo básico. Guiarse en las diapositivas de la clase y ejercicios vistos en
clase.
ESTRUCTURA DEL INFORME
1 hoja: Carátula.
1 hoja: Índice
1 hoja: Introducción.
Objetivos General y Específicos. (Copiar los objetivos )
15 - 20 hojas: Marco Teórico (Silabo) / Desarrollo (Lo indicado en clase)
Realizar el INFORME DE INVESTIGACIÓN.
A continuación, pasos de cómo hacer uso de todos los temas vistos hasta el momento fusionando
los SUBPROGRAMAS O FUNCIONES + ARREGLOS Y/O ALGORITMOS DE ORDENAMIENTO -
BÚSQUEDA.
1. Con el tema asignado, aplicar las etapas de desarrollo de un programa.
IDENTIFICAR UN PROBLEMA Y CREAR EL ALGORITMO PARA
DESARROLLAR:
2. Crear un proyecto con el nombre indicado.
3. Utilizar todos los temas vistos como:
§ Usar variables bibliotecas internas y externas.
§ Usar variables globales y locales.
§ Usar constantes globales y locales.
§ Declarar, implementar y llamar a subprogramas.
§ Usar TODAS LAS ESTRUCTURAS DE CONTROL en todo el programa y
subprogramas.
§ Aplicar todos los operadores aprendidos.
ARREGLOS Y TEMA ASIGNADO PARA EXPONER
4. Crear 1 librería mínimo. (ENCABEZADO ARREGLO)
1 a 2 hojas: Conclusiones.
Recomendaciones.
Bibliografía.
Legalización de los participantes (Nombres –Apellidos, CC y firma).
El documento a partir de la segunda hoja debe contener:
o Utilizar normas APA. Arial 11, Interlineado 1,15.
o Encabezado (Nombre de la Asignatura centrado)
o Pie de página (Esquina izquierda Apellidos Nombres del estudiante, esquina
derecha #página/Total página, ejemplo 2 Páginas de 11).
UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE
SEDE SANTO DOMINGO DE LOS TSÁCHILAS
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN - DCCO-SS
CARRERA DE INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN
PERIODO : 202150 Mayo – Septiembre 2021
ASIGNATURA : Fundamentos de Programación
TEMA : Burbuja + Inserción (++ o --)
ESTUDIANTE : GRUPO 2
● Torres Jennifer
● Calapucha Carlos
● Toapanta Darwin
● Diaz Cristhofer
NIVEL-PARALELO - NRC: Primero A - 6325
DOCENTE : Ing. Verónica Martínez C., Mgs.
FECHA DE ENTREGA : 12 de julio de 2021.
SANTO DOMINGO - ECUADOR
ÍNDICE
Introducción 5
Objetivos 6
Objetivo General: 6
Objetivos Específicos: 6
3.1. Marco Teórico: 6
3.1.1 RESUMEN UNIDAD 1 6
3.1.2 RESUMEN DE SUBPROGRAMAS 8
3.1.3. Definición de Subprograma 10
3.1.3. Declaración, implementación y llamada de Subprogramas 11
3.1.4. Argumentos y Parámetros 12
3.1.5. Ámbito de las variables 12
3.1.6. Funciones de librerías o módulos 13
3.1.7. Recursividad 14
3.1.8. Creación de librerías o módulos 14
3.1.9 ARREGLO 15
3.1.10 Arreglos Unidimensionales 16
3.1.11 Arreglos bidimensionales 17
3.1.12 Arreglos multidimensionales 18
3.1.13 Paso de Arreglos a funciones 19
3.1.14 Algoritmos de Ordenación ( selección, intercambio y burbuja) 20
3.1.15 Algoritmos de búsqueda. 22
Ejercicio en PSEINT. 23
Ejercicio en C++ 29
Conclusiones 32
Recomendaciones 32
Bibliografía/ Referencias 32
Anexos 33
TEMA: Burbuja + Inserción (++ o --)
1. Introducción
En el siguiente trabajo se dará a conocer sobre los temas de ordenamiento de Burbuja
e Inserción,existen diferentes tipos de ordenamiento donde dependerá del tamaño del
arreglo , el tipo de datos o también la cantidad de memoria disponible.Este tipos de
ordenamiento se clasifican en Interna y externa donde la interna es en el
almacenamiento principal por ejemplo tenemos a los arrays mientras la externa trata
almacenamiento secundario ejemplo los archivos.
En el ordenamiento de Burbuja funciona al verificar cada elemento en la lista para
que se clasifique con el siguiente elemento (par de elementos adyacentes) en la lista y
realizar intercambios cuando sea necesario.
En el método de inserción o también llamado método de baraja Consiste en insertar
un elemento evaluado en la posición correspondiente dentro de una parte ya ordenado
del listado.Este método se realicen un recorrido desde el segundo elemento hasta el
final y cada elemento es insertado en la posición adecuada dentro del segmento inicial
del listado
2. Objetivos
Objetivo General:
Investigar que son arreglos, tipos de arreglos, paso de arreglos a funciones y los tipos
de algoritmos de ordenamiento y búsqueda.
Objetivos Específicos:
● Investigar las definiciones de arreglos, tipos de arreglos y paso de
arreglos a funciones.
● Investigar y desarrollar los algoritmos de ordenación.
● Investigar y desarrollar los algoritmos de búsqueda.
● Realizar la presentación del tema investigado.
3. Desarrollo / Marco Teórico/ Práctica
3.1. Marco Teórico:
3.1.1 RESUMEN UNIDAD 1
En informática, un algoritmo es una secuencia de instrucciones secuenciales, gracias al cual
pueden llevarse a cabo ciertos procesos y darse respuesta a determinadas necesidades o
decisiones. Se trata de conjuntos ordenados y finitos de pasos, que nos permiten resolver un
problema o tomar una decisión. Los algoritmos no tienen que ver con los lenguajes de
programación, dado que un mismo algoritmo o diagrama de flujo puede representarse en
diversos lenguajes de programación, es decir, se trata de un ordenamiento previo a la
programación. Visto así, un programa no es otra cosa que una serie compleja de algoritmos
ordenados y codificados mediante un lenguaje de programación para su posterior ejecución
en un computador. Los algoritmos también son frecuentes en la matemática y la lógica, y son
la base de la fabricación de manuales de usuario, folletos de instrucciones, etc. Todo
algoritmo debe constar de las siguientes partes:
● Input o entrada: El ingreso de los datos que el algoritmo necesita para operar.
● Proceso: Se trata de la operación lógica formal que el algoritmo emprenderá con lo
recibido del input.
● Output o salida: Los resultados obtenidos del proceso sobre el input, una vez
terminada la ejecución del algoritmo.
Los algoritmos son una serie de pasos organizados los cuales describen el proceso a seguir
con la finalidad de dar la solución a un problema, existen dos tipos de algoritmos: los
cualitativos que describen los pasos usando palabras y los cuantitativos que usan cálculos
numéricos para definir los pasos del proceso. Las funciones son utilizadas cuando no se
pueden calcular operaciones directamente al crear una expresión. En pseudocódigo la función
es presentada como un subalgoritmo el cual forma parte del algoritmo principal. Las entradas
y salidas por consola son: el cin, el cual se usa para introducir y almacenar valores y el cout,
el cual representa la salida por pantalla. Los datos primitivos se los conoce como la variable
que un programa va a poseer, la determinación de los valores que se le puede asignar a un
dato depende del tipo de información que contengan. Los tipos de datos básicos son: el char,
el int, el float, double y bool. Las variables son un espacio en la memoria que depende del
tipo de dato para almacenar información que corresponda a este mismo. Una constante se la
puede declarar por medio de la sintaxis. Los operadores aritméticos son operaciones que
toman dos valores numéricos para devolver un solo valor. Los operadores de asignación se
representan con el signo “=” para asignar valores a una variable. Los operadores racionales
son operadores que toman dos valores lógicos para comparar y devolver un valor de tipo
entero, el cual puede ser 1 cuando sea verdadero o 0 cuando sea falso. Los operadores lógicos
son expresiones booleanas que cumplen con una tabla de verdad para sus operadores. Al
realizar la evaluación de una expresión esta devuelve un valor, la evaluación se realiza de
acuerdo con a la precedencia que ya ha sido establecida anteriormente. La programación
estructurada consiste en ahorrar tiempo en el momento de escribir un código, lo cual lo hace
más sencillo de entender, mantener y modificar. Las estructuras cíclicas permiten las
repeticiones de instrucciones.
3.1.2 RESUMEN DE SUBPROGRAMAS
Las subprogramas son rutinas, procedimientos o conjuntos de instrucciones que realizan
tareas específicas. El nacimiento de subrutinas o subrutinas es para evitar la duplicación
innecesaria del trabajo que ya se ha realizado. Se pueden llamar tantas veces como sea
necesario desde el cuerpo principal del programa principal. Forman el núcleo de la
denominada programación estructurada y permiten dividir problemas complejos en
subproblemas más simples que se pueden manejar de forma independiente.
Un subprograma ayuda a solucionar el problema dividiéndolo en subproblemas. Las
funciones son procedimientos que tienen la finalidad de reutilizar el código las veces que
sean necesarias a través del llamado. El procedimiento son las funciones, las cuales reciben
parámetros pero no retornan un valor. Las funciones internas son aquellas que el lenguaje de
programación incorpora. Las funciones externas son aquellas que el usuario define y crea
cuando las funciones internas no permiten la operación solicitada. La función recursiva es
una función que se llama así misma, de manera indirecta o directa por medio de una función.
Los arreglos son un conjunto de valores, los cuáles tienen un nombre en común. Los arreglos
unidimensionales o también conocidos como vectores son un conjunto de ubicaciones en la
memoria relacionados entre sí. En pseudocódigo los datos del vector se guardan inicialmente
desde el índice uno, pero en lenguaje de programación el dato se guardan inicialmente desde
el índice cero. La inicialización y asignación de un arreglo puede ser por medio de sus
índices. Los arreglos bidimensionales son una variable única que tiene dos subíndices: el
primero especifica las filas y el otro las columnas, y estos deben estar separados por
corchetes. Los arreglos multidimensionales trabajan con filas y columnas .Los algoritmos de
ordenamiento son: Ordenamiento por metodo burbuja en cual consiste en buscar de todo el
arreglo e ir avanzando y comparando elementos y si encuentra elementos que no están en el
lugar adecuado los ordenará, Ordenamiento por el método de inserción, este método es muy
natural de ordenar y puede usarse fácilmente para ordenar un mazo de cartas numeradas en
forma arbitraria. El ordenamiento por selección consiste en seleccionar un elemento del
pivote. El ordenamiento de búsqueda es una secuencia de pasos para encontrar un elemento
en una lista determinada. Búsqueda binaria, consiste en hallar aproximadamente la posición
media del arreglo y examinar el valor encontrado ahí. La búsqueda secuencial usa una clave,
para que al encontrarla ésta despliegue un mensaje o que realice alguna otra acción
específica.
3.1.3. Definición de Subprograma
“Los subprogramas y funciones son rutinas, procedimientos o conjuntos de sentencias que
realizan una labor específica. Los subprogramas o subrutinas nacieron de la necesidad de no
repetir innecesariamente un trabajo ya hecho. Pueden invocarse desde el cuerpo del programa
principal cuántas veces se desee. Están en el núcleo de lo que se denomina programación
estructurada.” (pntic, n.d.)
● los subprogramas propiamente dichos (procedimientos SUB), que realizan un
conjunto de tareas y no devuelven ningún valor.
● las funciones (procedimientos FUNCTION), que devuelven un valor de un tipo que se
puede especificar.
Según (González, 2004) Un subprograma es un fragmento de código que se comporta de
manera independiente dentro de un programa.Los subprogramas pueden ser invocados varias
veces desde otras partes del programa.Se comunican mediante el pasaje de parámetros .Cada
subprograma tiene su propio espacio de nombres (identificadores locales).
Torres, J.(2021).Ilustración de código programa c++. [Figura]
3.1.3. Declaración, implementación y llamada de Subprogramas
La Declaración: es como su cabecera, pero terminada en ";" en vez de con la palabra "is",
para expresar que lo que se está dando es una vista de un subprograma cuya definición se
halla en otro lugar además consta de una especificación formada por un identificador y una
lista de parámetros opcional.
La implementación: Los subprogramas se implementan por medio de lo que conocemos
como funciones o procedimientos. No son más que una lista de sentencias que se escriben
para resolver problemas, con algoritmos que pueden operar de manera independiente
La llamada: se realiza escribiendo el nombre del mismo, seguido de las expresiones sobre
las que queremos que trabaje.De esta forma se crea una vía de comunicación entre la
instrucción de llamada y el algoritmo llamado, facilitando el intercambio de información
entre ellos.” (Barber, n.d.)
Torres, J.(2021).Ilustración de código programa c++. [Figura]
3.1.4. Argumentos y Parámetros
“Son el medio a partir del cual podemos expandir el ámbito de variables locales de funciones,
hacia otras funciones y además quienes nos permiten establecer comunicaciones entre
funciones. Si nos vemos ante la necesidad de visualizar o modificar el valor de una variable
local en otra función que llamaremos, debemos invocar a dicha función haciendo referencia
de su nombre, seguido de los parámetros o nombres de variables para las cuales, en teoría
ampliaremos su ámbito. “ (Parámetros y argumentos (programación), n.d.)
Torres, J.(2021).Ilustración de código programa c++. [Figura]
3.1.5. Ámbito de las variables
El ámbito de una variable determina dónde es visible esa variable. Si la variable es visible en
algún punto del programa, esta puede ser utilizada. Caso contrario, si la variable no es visible
en algún punto entonces esta no puede ser utilizada. Existen cuatro tipos de ámbito:
● Programa
● Archivo fuente
● Función
● Bloque
Torres, J.(2021).Ilustración de código programa c++. [Figura]
3.1.6. Funciones de librerías o módulos
“Una biblioteca es un archivo que el compilador puede leer y en él se pueden encontrar
instrucciones para usar muchos métodos y funciones diferentes.Hay cientos de bibliotecas, la
mayoría de los IDE ya las incluyen, pero no las incluyen en todo el código fuente creado, por
lo que no son demasiado grandes. Por lo tanto, debemos declarar las bibliotecas que
necesitamos en el código fuente.”
La biblioteca C ++ es un archivo en el que se pueden definir funciones y utilizar muchas
funciones diferentes.
Si incluimos una biblioteca en el programa, entonces podemos usar rápida y fácilmente las
instrucciones definidas en ella. (Funciones y Módulos, n.d.)
Torres, J.(2021).Ilustración de código programa c++. [Figura]
3.1.7. Recursividad
Consiste en una función que calcula la factorial de un número. La factorial consiste en
multiplicar el número natural por el número anterior, luego multiplicarlo por el número
natural, y así sucesivamente, hasta llegar al número 1. Por ejemplo, la factorial 8 es el
resultado de multiplicar 8 por 7 y luego multiplicar por 6. Y así sucesivamente, hasta llegar a
uno.
Torres, J.(2021).Ilustración de código programa c++. [Figura]
3.1.8. Creación de librerías o módulos
1. Crear el archivo de cabeceras 2. Crear el archivo del código de la librería
Creamos un archivo con la extensión ".h" El archivo de código de biblioteca contiene
en el mismo directorio que el código el archivo de encabezado que creamos antes
principal, que debe tener todos los y también contiene el código de todas las
prototipos de funciones y definiciones de funciones escritas en el archivo de
tipos de datos en la biblioteca. encabezado.
3. Llamar a la librería
Cuando ambos archivos estén completos, nuestra biblioteca estará lista para usar. Creamos
un archivo test.c en el mismo directorio, que incluye la biblioteca estándar y la nueva
biblioteca creada. (Romo, 2019)
Torres, J.(2021).Creación de Librería. [Figura]
3.1.9 ARREGLO
Definición Ventajas
Es una estructura es decir es un conjunto de 1. Puedes recuperar la información.
variables que se citan y manejan con un mismo 2. Son de fácil trabajo.
nombre y que permiten además la utilización 3. Trabajas con direcciones.
individual de sus elementos (Joyanes, 2008). 4. El mismo es adecuado para llegar a
Un arreglo es un conjunto de datos o una almacenar o leer bloques de datos
estructura de datos homogéneos que se secuenciales que son muy grandes,
encuentran ubicados en forma consecutiva en como aplicaciones con grandes
la memoria RAM. (ecured, 2020) bases de datos, imágenes y vídeos
entre otros. (Escalante, 2020)
Características Ejemplo:
1. Las variables son únicas y llegan a
representar cada elemento dentro del
arreglo, estos elementos se llegan a
diferenciar a través del índice.
2. Los elementos del array serán
guardados en posición continua dentro
de la memoria.
3. En los elementos del array se puede
acceder de forma aleatoria y directa.
Torres, J.(2021).Ilustración de código programa
Pseint. [Figura]
3.1.10 Arreglos Unidimensionales
Definición Ventajas
Un arreglo unidimensional es un tipo de datos 1. Son más seguras y claros
estructurado que está formado de una colección 2. Menos problemas en cuanto a los datos
finita y ordenada de datos del mismo tipo. Es la válidos sean eliminados por error o a que
estructura natural para modelar listas de existan datos no válidos en el arreglo
elementos iguales. (sites, n.d.) 3. Ocupan menos recursos del ordenador.
Es un tipo de datos estructurado que está 4. El acceso a los arreglos es directo, nos
formado por una colección finita y ordenada de permiten hacer un conjunto de
datos del mismo tipo. Los arreglos guardan en operaciones para manipular los datos
memoria la cantidad de espacios que se le guardados en ellos, estas operaciones son:
indican en la declaración. ordenar, buscar, insertar, eliminar,
modificar entre otras.
Características Ejemplo
Un arreglo unidimensional se caracteriza por
modelar listas de elementos iguales. Arreglos se
define como una colección finita, homogénea y
ordenada de elementos.
Torres, J.(2021).Ilustración de código programa Pseint.
[Figura]
3.1.11 Arreglos bidimensionales
Definición Ventajas
Una disposición bidimensional sigue siendo 1. Fácil acceso a los elementos.
una disposición, pero ahora en dos 2. Fácil acceso a renglones.
dimensiones se llama fila y columna, lo que 3. Fácil extensión al caso multidimensional.
significa que sigue siendo una variable que 4. Puede ser muy eficiente si se puede
permite almacenar un conjunto de datos. Es programar de manera adecuada.
una estructura, es decir , es un conjunto de
referencias y variables de proceso y también
permite que sus elementos se utilizan
individualmente.
Características Ejemplo
1. Es un vector de vectores.
2. Un arreglo bidimensional se denomina
también tabla o matriz.
3. Cada elemento de un arreglo
bidimensional está simultáneamente en
una fila y en una columna.
4. Un arreglo bidimencional tiene dos
dimensiones Torres, J.(2021).Ilustración de código programa Pseint.
[Figura]
3.1.12 Arreglos multidimensionales
Definición Ventajas
Las matrices multidimensionales son 1. Formada por componentes del mismo
extensiones de matrices bidimensionales y tipo.
utilizan subíndices adicionales para la 2. No están limitados a dos índices
indexación. Por ejemplo, una matriz 3D 3. Se utilizan cuando se necesita almacenar
utiliza tres subíndices. Los dos primeros múltiples valores del mismo tipo
son similares a las matrices, pero la tercera 4. Permite agrupar muchos datos usando un
dimensión representa una página o tabla de mismo identificador
elementos.
Características Ejemplo
1. Se caracteriza por una combinación
del arreglo de una dimensión y de 2
dimensiones.
2. Son una ampliación de las matrices
de dos dimensiones y utilizan
Torres, J.(2021).Ilustración de código programa Pseint.
subíndices adicionales para la [Figura]
indexación.
3.1.13 Paso de Arreglos a funciones
Un array puede ser pasado como argumento a una función, permitiendo por consiguiente que
el array completo sea pasado a la función. Pero en cambio, la manera en que se pasa una
variable ordinaria a una función es muy distinta a la forma en cómo se pasa un array.
Para pasar un array a una función, el nombre del array debe aparecer solo, sin corchetes ni
índices, como un argumento actual dentro de la llamada a la función. El correspondiente
argumento formal se escribe de la misma manera, pero debe ser declarado como un array
dentro de la declaración de argumentos formales.
3.1.14 Algoritmos de Ordenación ( selección, intercambio y burbuja)
El algoritmo de ordenamiento por Selección consiste en encontrar el menor de todos los
elementos del arreglo o vector e intercambiarlo con el que está en la primera posición. Luego
el segundo más pequeño, y así sucesivamente hasta ordenarlo todo. Su implementación
requiere O(n2) comparaciones e intercambios para ordenar una secuencia de elementos.
● Este algoritmo mejora ligeramente el algoritmo de la burbuja.
● Su funcionamiento consiste en el recorrido por la lista seleccionando en cada iteración
un valor como clave y compararlo con el resto insertándolo en el lugar
correspondiente.
Ordenamiento Intercambio
El algoritmo se basa en la lectura sucesiva de la lista a ordenar, comparando al elemento
inferior de la lista con los restantes y efectuando el intercambio de posiciones cuando el
orden resultante de la comparación no sea el correcto.
Ordenamiento Burbuja
El algoritmo de ordenamiento Burbuja (Bubble Sort en inglés) es un sencillo algoritmo de
ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el
siguiente, intercambiandolos de posición si están en el orden equivocado. Es necesario revisar
varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la
lista está ordenada.
● Este algoritmo realiza el ordenamiento o reordenamiento de una lista a de n valores.
● La burbuja son dos términos de la lista seguidos, j y j+1, que se comparan.
● La comparación se repite en el centro de los dos bucles, dando lugar a una lista
ordenada.
3.1.15 Algoritmos de búsqueda.
Búsqueda Binaria
Es un algoritmo de búsqueda que encuentra la posición de un valor en un array ordenado.
Compara el valor con el elemento en el medio del array, si no son iguales, la mitad en la cual
el valor no puede estar es eliminada y la búsqueda continúa en la mitad restante hasta que el
valor se encuentre.
● Existen numerosas variaciones de la búsqueda binaria.
● Una variación particular (cascada fraccional) acelera la búsqueda binaria para un
mismo valor en múltiples arreglos.
Búsqueda Secuencial
La búsqueda secuencial es un método para encontrar un valor objetivo dentro de una lista.
Ésta comprueba secuencialmente cada elemento de la lista para el valor objetivo hasta que es
encontrado o hasta que todos los elementos hayan sido comparados.
● Búsqueda lineal comprueba secuencialmente cada elemento de la lista hasta que
encuentra un elemento que coincide con el valor de objetivo.
● Si el algoritmo llega al fin de la lista sin encontrar el objetivo, la búsqueda termina
insatisfactoriamente.
3.2. Desarrollo:
Ejercicio en PSEINT.
3.2.1. Algoritmo:
El algoritmo, el cual está divido en funciones, consta de las partes principales, las cuales son
el encabezado, y el menú principal.
Dentro del menú principal nos encontramos con el primer campo que debemos llenar, y se
trata de la cantidad de libros con la que vamos a trabajar, hemos puesto para que el usuario
ponga un número menor a 21, por lo que el usuario debe poner una cantidad que sea menor a
21 para poder al siguiente campo , dentro del menú principal también hacemos el llamado de
ciertas funciones, en donde estaremos aplicando el método de ordenamiento de burbuja y de
inserción. Dentro de cada una de las funciones, estarán declaras cada una de las variables que
utilizaremos dentro de las mismas funciones, para un mejor ordenamiento del algoritmo.
3.2.2. Código del programa:
Algoritmo lldSub SubProceso mostrarNumeros(Arr por referencia, s por valor)
encabezado() Definir I Como Entero
menuPrincipal() Para I<-1 Hasta s Con Paso 1 Hacer
FinAlgoritmo Escribir "Ingrese el precio del libro ", I, ":";
Leer Arr[I];
SubProceso encabezado() Fin Para
Escribir "UNIVERSIDAD: " ,"UNIVERSIDAD DE LAS FUERZAS FinSubProceso
ARMADAS-ESPE";
Escribir "=======================GRUPO SubProceso burbuja (Arr, s)
2======================="; Definir I, J, temp Como Real
Escribir "NIVEL:" ,"PRIMERO B ITIN "; Para I<-1 Hasta s con paso 1 Hacer
Escribir "MATERIA:" ,"FUNDAMENTOS DE PROGRAMACION "; Fin Para
Escribir "TEMA:" ,"EXPOSICION GRUPAL"; Para I<-2 Hasta s con paso 1 Hacer
Escribir Para J=1 Hasta (s-I+1) Con Paso 1 Hacer
"|===================================================|"; Si Arr[J]>Arr[J+1] Entonces
FinSubProceso Temp=Arr[J]
//Intercambio
SubProceso menuPrincipal() Arr[J]=Arr[J+1]
Dimension Arr[20]; Arr[J+1]=Temp
Definir n,opcionn, Arr, opcion1, S Como Entero; FinSi
Repetir FinPara
Escribir "Ingrese el numero de libros: "; FinPara
Leer n; Escribir "Los precios de los libros por el metodo burbuja
Si (n>=21) Entonces son: "
Escribir "No puedes ingresar mas Para I<-1 Hasta s con paso 1 Hacer
de 20 libros"; Escribir " " , Arr[I]
FinSi FinPara
Hasta Que (n<=20) FinSubProceso
Repetir
Repetir SubProceso metodoInsercion(Arr por referencia, s por valor)
Escribir "|-----------------MENU DE Definir I, pos, aux Como Entero;
OPCIONES---------------------|"; Para I=1 Hasta s Con Paso 1
Escribir "1.Digita los numeros de los ", n ," pos=I;
libros "; aux=Arr[I];
Escribir "2.Ordene la matriz usando el método Mientras ((pos>1)&(Arr[pos-1]>aux))
de clasificación de burbujas"; Arr[pos]=Arr[pos-1]
Escribir "3.Ordene usando el metodo de pos=pos-1
insercion "; FinMientras
Escribir "4.Salir"; Arr[pos]=aux;
Escribir "Ingrese su opcion del 1 al 4: "; FinPara
Leer opcionn; Escribir "Orden de libros ascendente";
Segun opcionn Hacer
1: Para I<-1 Hasta s Hacer
Escribir " ", Arr[I];
mostrarNumeros(Arr,n); Fin Para
2: Escribir "Orden de libros descendente";
burbuja(Arr,n);
3: Para I=s-0 Hasta 1 Hacer
Escribir " ", Arr[I];
Fin Para
metodoInsercion(Arr,n); FinSubProceso
4:
Escribir "Salio con
exito"
De Otro Modo:
Escribir 'Opcion
incorrecta'
FinSegun
Hasta Que (opcionn=4) //Escribir "Desea repetir? <S/N>";
//Leer opcionn;
Hasta Que (opcionn=4);
FinSubProceso
3.2.3. Captura de código:
3.2.4. Captura de ejecución:
3.2.5. Diagrama de flujo:
3.2.6. Captura de la resolución manual de sus operaciones matemáticas:
Ejercicio en C++
3.3.1 Código en C++
#include<iostream> void mostrarNumeros(int Arreglo[], int s);
#include"encabezado.h" void metodoInsercion (int Arreglo[],int s);
#include"menuPrincipal.h" void burbuja(int Arreglo[],int s);
using namespace std; void menuPrincipal(){
int main() int Arreglo[20],n,opcion;
{ string Libros;
encabezado(); do{
menuPrincipal(); cout<<"==================================|"<<endl;
} cout<<"Ingrese el numero de libros:"<<endl;
void mostrarNumeros(int Arreglo[], int s) cin>>n;
{ cout<<"==================================|"<<endl;
for(int I=0;I<s;I++)
{ do{ if(n>=21){
cout<<"Ingrese el precio del libro "<<I+1<<":"; cout<<"|===================================|"<<endl;
cin>>Arreglo[I]; cout<<"|No puedes ingresar mas de 20 libros|"<<endl;
if(Arreglo[I]<=0){ cout<<"|===================================|"<<endl;
cout<<"======================================"<<endl; }
cout<<"No puedes introducir numeros negativos"<<endl; if(n<=0){
cout<<"======================================"<<endl; cout<<"|No puedes ingresar numeros negativos "<<endl;
}
}while(Arreglo[I]<=0); }
}
} }while(n>=21||n<=0);
void burbuja (int Arreglo[],int s) do {
{ cout<<"\nMENU";
int I,J,Temp; cout<<"\n1.Digite el precio de los " <<n<< " libros ";
for(I=0;I<s-1;I++) cout<<"\n2.Metodo de burbuja";
{ cout<<"\n3.Ordene usando el metodo de insercion ";
for(J=0;J<(s-1-I);J++) cout<<"\n4.Salir"<<endl;
if(Arreglo[J]>Arreglo[J+1]) cout<<"=================================="<<endl;
{ cout<<"Opcion :";
Temp=Arreglo[J]; //Intercambio cin>>opcion;
Arreglo[J]=Arreglo[J+1]; cout<<"=================================="<<endl;
Arreglo[J+1]=Temp;
} switch(opcion)
cout<<"Los precios de los libros por el metodo burbuja son:\n"; {
for (int I=0;I<s;I++){ case 1: mostrarNumeros(Arreglo,n);
cout <<" " << Arreglo[I]; break;
}
cout << ("\n"); case 2: burbuja(Arreglo,n);
}
} break;
void metodoInsercion (int Arreglo[],int s){ case 3: metodoInsercion (Arreglo,n);
int I,pos,auxi; break;
for (I=0;I<s;I++){ case 4: break;
pos=I; cout<<"\n=================================="<<endl;
auxi=Arreglo[I]; default:cout<<"\nOpcion invalida";
while((pos>0)&&(Arreglo[pos-1]>auxi)){ cout<<"\n=================================="<<endl;
Arreglo[pos]=Arreglo[pos-1]; }
pos--; }while(opcion!=4);
}
Arreglo[pos]=auxi;
}
cout<<"Orden de libros ascendente:"<<endl; }
cout<<"\n==================================|"<<endl;
for (int I=0;I<s;I++){
cout <<" " << Arreglo[I];
}
cout<<"\n==================================|"<<endl;
cout << ("\n");
cout<<"\nOrden de libros descendente:"<<endl;
cout<<"\n==================================|"<<endl;
for(I=s-1;I>=0;I--){
cout<<" "<<Arreglo[I];
}
cout<<"\n==================================|"<<endl;
}
void encabezado(){
int i;
string nombres[5];
nombres[0] = "UNIVERSIDAD:""UNIVERSIDAD DE LAS FUERZAS
ARMADAS";
nombres[1] = "ESTUDIANTE:""CARLOS VICENTE CALAPUCHA ÑACATA";
nombres[2] = "NIVEL:""PRIMERO B ITIN";
nombres[3] = "MATERIA:""FUNDAMENTOS DE PROGRAMACION";
nombres[4] = "TEMA:""EXPOSICION GRUPAL---GRUPO
2";
for (i=1;i<=5;i++) {
cout << "" << nombres[i-1] << endl;
}
}
3.3.2. Captura de código:
3.3.3. Ejecución C++
4. Conclusiones
1. Para programar, es necesario identificar a qué tipo de datos pertenecen cada una de las
variables o constantes, ya sean estos números, letras, palabras, frases, entre otros y
cada uno corresponde a un tipo de dato, que requerirá de una manipulación específica
para obtener los resultados deseados.
2. El subprograma puede realizar las mismas funciones que el programa que es leer
datos, realizar cálculos y devolver los resultados al programa principal.
3. Los arreglos como en todos los lenguajes sirven para organizar datos y para que estos
sean más accesibles dependiendo de la cantidad de información es el tipo de arreglo
que se utiliza.
5. Recomendaciones
1. Realizar un buen análisis del desarrollo del programa que se va a realizar.
2. Utilizar las funciones y procedimientos internos y externos.
6. Bibliografía/ Referencias
Martinez, Miriam. “arreglos.” 09 junio 2020,
https://profile.es/blog/que-son-loarreglos-de-programacion/. Accessed 28 12 2020.
Pérez, Julián. “algoritmo.”
https://definicion.de/arreglos/#:~:text=Se%20denomina%20algoritmo%20a%20un,a%
20un%20resultado%20o%20soluci%C3%B3n. Accessed 28 12 2020.
Redator Rock Content. “arreglos.” 20 abril 2019,
https://rockcontent.com/es/blog/que-es-un-lenguaje-de-arreglos/#:~:text=Es%20un%2
0lenguaje%20formal%20que,y%20l%C3%B3gico%20de%20una%20m%C3%A1qui
na. Accessed 28 12 2020.
ecured. (2020, enero 22). Arreglos (Informática). Arreglos (Informática). Retrieved julio 09,
2021, from https://www.ecured.cu/Arreglos_(Inform%C3%A1tica)
Escalante, A. (2020, septiembre 23). arreglo. Los tipos de arreglos en la programación.
Retrieved julio 09, 2021, from
https://tecnoinformatic.com/c-programacion/tipos-de-arreglos/
sites. (n.d.). Arreglos Unidimensionales. Arreglos Unidimensionales. Retrieved julio 09,
2021, from
https://sites.google.com/site/miguelestructura/que-son-arreglos-unidimensionales
7. Anexos
Anexo 1:
Archivo en PSeint con el nombre U2Tarea2Grupo2
Carpeta de Code Blocks con el nombre U2Tarea2Grupo2
Presentación en .ppt con el nombre U2Tarea2Grupo2
8. Legalización de documento
(JENNIFER NAYELY TORRES MORETA, 2350394744).
(DIAZ CHAVEZ CRISTHOFER ALEXIS, 2300104136)
(TOAPANTA PAEZ DARWIN ANDRES, 2300412323)
CALAPUCHA ÑACATA CARLOS VICENTE
2350495277