Act-Fundamental2 Ac
Act-Fundamental2 Ac
Act-Fundamental2 Ac
ALGORITMOS
COMPUTACIONALES.
ACTIVIDAD FUNDAMENTAL #2
Fecha de Entrega:
2 de marzo del 2024, Universidad Autónoma de Nuevo León
1
Integrantes:
Matricula: Nombre: Carrera:
Aguiar Cavazos
2074155 Isaid Harim ITS
Bautista Martinez
2062496 Ismael IAS
Barrientos Silva
Alan Abdiel
2015568 ITS
Bustos Estrada
2114447 Oscar Mauricio ITS
Dueñas Vidales
2094709 Adrian Gerardo ITS
2
2121462 Hernández Loyo
Iker Alejandro IAS
Peña Rocha
2121302 Denzel Fernando
IAS
NO TRABAJO
3
Tabla de contenido
¿Qué son los algoritmos recursivos? ................................................................................................... 5
Formato de los algoritmos recursivos ................................................................................................. 6
¿Qué es un arreglo? ............................................................................................................................. 7
Elementos de un arreglo .............................................................................................................. 7
¿Qué es un vector? .............................................................................................................................. 8
¿Cómo se les llama a los arreglos de una dimensión? .................................................................... 8
¿Cuál es la clasificación de los arreglos? ........................................................................................ 8
Clasificación de los arreglos ............................................................................................................... 9
3 ejemplos de los arreglos de una dimensión .................................................................................... 10
Ejemplos de Arreglos Multidimensionales ....................................................................................... 33
CONCLUSIONES ............................................................................................................................ 35
CONCULSION GRUPAL ............................................................................................................ 37
BIBLIOGRAFIAS ............................................................................................................................ 38
4
¿Qué son los algoritmos recursivos?
La recursividad en algoritmos se refiere a la técnica en la cual una función resuelve
un problema llamándose a sí misma. Este enfoque es adecuado cuando la definición del
problema puede expresarse en términos recursivos. La recursividad ofrece una alternativa a
la iteración en la resolución de problemas. Existen dos tipos principales de recursividad en
función del número de llamadas que se realizan: Recursividad simple o lineal: En este tipo
de recursión, cada llamada a la función recursiva realiza, como máximo, una llamada
adicional a sí misma. Esto se puede representar gráficamente como una lista. Ejemplos
comunes de problemas que se resuelven de manera recursiva simple incluyen el cálculo de
la factorial o la búsqueda dicotómica. Recursividad múltiple: En este caso, cada llamada
recursiva puede realizar más de una llamada adicional a sí misma dentro de la misma función.
Se representan gráficamente como un árbol binario. Ejemplos de algoritmos que utilizan
recursividad múltiple incluyen el algoritmo de ordenación Quicksort o el cálculo de la
secuencia de Fibonacci. Es fundamental comprender la diferencia entre estos dos tipos de
recursividad y saber cuándo es apropiado utilizar cada uno en función de la naturaleza del
problema a resolver.
Ejemplo:
5
Formato de los algoritmos recursivos
Para que una función o procedimiento recursivo funcione se debe cumplir lo
siguiente:
1.- Exista una salida no recursiva del procedimiento o función y funciona correctamente en
ese caso.
2.- Cada llamada al procedimiento o función se refiere a un caso más pequeño del mismo.
3.- Funciona correctamente todo el procedimiento o función.
Para poder construir cualquier rutina recursiva teniendo en cuenta lo anterior, podemos usar
el siguiente método:
1.- Obtener una definición exacta del problema.
2.- Determinar el tamaño del problema completo a resolver. Así se determinarán los valores
de los parámetros en la llamada inicial al procedimiento o función.
3.- Resolver el caso base en el que problema puede expresarse no recursivamente.
4.- Resolver correctamente el caso general, en términos de un caso más pequeño del mismo
problema (una llamada recursiva).
6
¿Qué es un arreglo?
Un arreglo es una colección ordenada de datos tanto primitivos u objetos dependiendo
del lenguaje. Los arreglos se emplean para almacenar múltiples valores en una sola variable,
frente a las variables que sólo pueden almacenar un valor.
Cada elemento en el arreglo se identifica mediante un índice o posición que indica su
ubicación en la secuencia. Los arreglos son utilizados para almacenar y manipular conjuntos
de datos de manera eficiente.
La longitud de un arreglo suele ser fija al ser creado, y se puede acceder y modificar
elementos mediante sus posiciones. Son ampliamente utilizados en programación para
organizar y manipular conjuntos de datos.
Elementos de un arreglo
Int Nombre[10]; [x]: En los corchetes se coloca
la cantidad de espacios que Elementos: Son los espacios en
ocupará el arreglo los cuales se almacenan los datos
Representación Gráfica
Subíndices: Son
0 1 2 3 4 5 6 7 las posiciones de
los arreglos.
7
¿Qué es un vector?
Un vector es una secuencia de elementos a los que puede acceder por índice. Es un
arreglo de “n” elementos organizados en una dimensión donde “n” recibe el nombre de
longitud o tamaño del vector. Para hacer referencia a un elemento del vector se usa el nombre
del mismo, seguido del índice (entre corchetes), el cual indica una posición en particular del
vector.
Los vectores son estructuras de datos similares a matrices; Pero lo más importante es que
pueden crecer y encogerse cuando sea necesario, entre otras características. En algunos
idiomas el tamaño de la matriz se fija en el momento de la escritura.
Unidimensionales(Vectores)
Bidimensionales(Matrices)
Multidimensionales(2 o más dimensiones
8
Clasificación de los arreglos
En una sola dimensión (Vector)
Un arreglo unidimensional es un tipo de dato que permite almacenar un conjunto de datos
homogéneos, es decir, del mismo tipo de dato. Al declararse el arreglo debe indicarse el
tamaño, en ese momento el compilador reserva la memoria que se necesite para almacenar
los datos solicitados por el programador.
El límite en la dimensión de los arreglos varía dependiendo del lenguaje de programación
que se utilice, siendo el límite natural la memoria de la computadora.
Imagínese que un arreglo es como un conjunto de lockers. Cada locker tiene cierto tamaño
para guardar objetos en él y todos son de las mismas dimensiones. Para diferenciar entre ellos
e identificar uno en particular, cada locker posee un número único con el cual puede ser
encontrado.
Un arreglo funciona de la misma forma. Al declararse se debe especificar el tamaño, es decir
el número de localidades de memoria. Es como si se declararan muchas variables del mismo
tipo al al mismo tiempo y asociadas todas ellas a un nombre en común.
9
3 ejemplos de los arreglos de una dimensión
Isaid Harim Aguiar Cavazos
10
11
12
13
Victor Yael González Villarreal
Ejemplo 1
Análisis
Inicio
Nombres[5] = “”
Telefon[5] = “”
Direcci[5] = “”
I=0
Leer nombres[i]
Imprimir “Teléfono del amigo “ i + 1 “ “
Leer telefon[i]
Leer direcci[i]
Fin
Fin
Diagrama de flujo
14
Ejemplo 2
Análisis
Inicio
nombres[5] = ""
telefon[5] = ""
direcci[5] = ""
i=0
leer telefon[i]
leer direcci[i]
fin
15
fin
FinFin
Diagrama de flujo
Ejemplo 3
Análisis
Inicio
numP = “”
Matricula = “”
U=0
Para u = 0 hasta 4 hacer
Leer numP
Leer Matricula
Fin
16
Para u = 0 hasta 4 hacer
Fin
Fin
Diagrama
17
Oziel Aldair Piña Vaquera
El dueño de una tienda quiere vender un producto a un precio competitivo. Para ello hará un
promedio de su costo de 5 abarrotes diferentes (sus competencias más directas). Haz un programa
que realice esta operación con un arreglo unidimensional.
Análisis
Datos de entrada:
Proceso:
s=0
i=1
i>5
i=I+1
s = s + Precio [i]
p=s/i
Diseño
1. Inicio
2. Iniciar suma en cero
3. Iniciar índice en uno
4. Si el índice es mayor a cinco ir al paso 8, sino ir al paso 5
5. Incrementar el valor del índice en uno
6. Leer el precio correspondiente al índice
7. Hacer la suma del valor anterior más el precio ingresado y volver al paso 4
8. Dividir la suma entre 5
9. Escribir: “El precio promedio es: “ p
10. Fin
18
Diagrama de flujo
Inicio
s=0
p=s/5
i=
1
i> 1
“El precio
promedio es: “ p
i=i+1 5
Precio[i] Fin
s = s + Precio[i]
19
Usando la metodología de la programación, realizar con un arreglo unidimensional un
programa que, dada una N cantidad de números, imprima el valor mayor ingresado.
Análisis
Datos de entrada:
Proceso:
i=1
i>N
i=i+1
Mayor = Número[1]
i=1
i>N
i=i+1
Mayor = Número[i]
Diseño
1. Inicio.
2. Solicitar la Cantidad de números a ingresar.
3. Iniciar índice en uno.
4. Si el Índice es mayor a la Cantidad de números ir al paso 7, sino ir al paso 5.
5. Incrementar el valor del índice en uno.
6. Leer el Número correspondiente, guardar en el índice e ir al paso 4.
7. Establecer como Mayor la cifra del primer Índice.
8. Iniciar índice en uno.
9. Si el Índice es mayor a la Cantidad de números ir al paso 13, sino ir al paso 10.
10. Incrementar el valor del índice en uno.
11. Si el Número correspondiente al Índice es mayor que Mayor entonces ir al paso 12, si no ir
al paso 9.
12. Sobrescribir el valor de Mayor por el del Número correspondiente al Índice y volver al paso
9.
20
13. Escribir: “El número mayor es: “ Mayor.
14. Fin.
Diagrama de flujo
Inicio
N
V
M=
i= Número[1]
V “El número mayor
1
i> 1
i=
es: “ M
i=i+1 N 1
i>N 2
F
i=i+1 Fin
Número[i]
F
1 Número[i] > M
V
M = Número[i] F
21
Haciendo uso del método de programación hacer un sistema con arreglo en el que se
ingresen X cantidad de nombres, que posteriormente serán mostrados en pantalla.
Análisis
Datos de entrada:
Proceso:
i=1
i>X
i=i+1
i=1
i>X
i=i+1
Diseño
1. Inicio.
2. Solicitar la Cantidad de nombres.
3. Iniciar Índice en uno.
4. Si el índice es superior a la Cantidad de nombres solicitado entonces ir al paso 7, sino ir al
paso 5.
5. Incrementar el valor del Índice en uno.
6. Pedir un nombre, guardarlo en su respectivo Índice e ir al paso 4.
7. Iniciar Índice en uno.
8. Si el índice es superior a la Cantidad de nombres solicitado entonces ir al paso 11, sino ir al
paso 9.
9. Incrementar el valor del Índice en uno.
10. Imprimir el nombre del Índice correspondiente e ir al paso 8.
11. Fin.
22
Inicio
X
V V
Fin
i= i=
1 1
i> 1 i>X 2
i=i+1 X i=i+1
F F
A[i]
A[i]
1
2
23
Alan Abdiel Barrientos Silva
1. Suma de Elementos de un Arreglo:
24
3. Contar la Cantidad de Números Pares en un Arreglo:
25
26
Angel Israel Moreno González
27
28
29
30
31
32
Ejemplos de Arreglos Multidimensionales
Análisis y Diseño del Código:
El código proporcionado es un ejemplo de cómo declarar, inicializar y acceder a elementos
de un arreglo tridimensional en el lenguaje C. Aquí está el análisis y diseño del código:
1. Declaración e Inicialización del Cubo 3D:
Se declara e inicializa un arreglo tridimensional llamado cubo, que tiene 2 caras, cada una
con 3 filas y 3 columnas.
Cada cara del cubo se inicializa con valores del 1 al 18, organizados en forma de matriz.
2. Acceso e Impresión de Elementos del Cubo:
Se utiliza un bucle for para recorrer cada cara del cubo.
Para cada cara, se imprime un encabezado indicando su número.
Se utilizan bucles anidados para recorrer cada fila y cada columna de la cara.
Se accede e imprime cada elemento del cubo utilizando los índices i, j y k.
3. Resultado Esperado:
El código imprimirá en la consola los elementos del cubo organizados por caras, con cada
número separado por un espacio y con saltos de línea entre filas y entre caras.
Diseño del Algoritmo:
33
34
CONCLUSIONES
En conclusión, con esta actividad aprendí más sobre lo que vienen siendo los
algoritmos recursivos y los arreglos, que los algoritmos recursivos son una técnica importante
que puede simplificar el diseño de algoritmos, más que nada cuando se trata de problemas
que pueden ser naturalmente divididos. Y que los arreglos son útiles cuando se necesita
acceder a los datos mediante un índice o más. Cada uno tiene sus fortalezas, y la elección de
cuándo usar cada uno depende en gran medida del problema específico que se esté tratando
de resolver.
35
se destaca como una herramienta poderosa en programación y matemáticas al descomponer
problemas en instancias más simples del mismo tipo.
36
Nicolás Nicolás Ernesto - 2112784:
En el ámbito de los algoritmos no solo se utilizan diferentes métodos de desarrollo
como lo son los algoritmos recursivos etc, si no también diferentes formas de guardado de
información, y en el cual entran los arreglos que son una manera de guardar grandes
cantidades de información de una manera muy sencilla y práctica, y que por lo general se le
suele acompañar de otros métodos para que así su utilización se la más práctica posible.
CONCULSION GRUPAL
En conclusión, aprendimos que los arreglos nos permiten tener pequeños o grandes conjuntos
de valores ordenados en una sola variable, en lugar de escribir cada variable para cada valor
por separado, lo que nos permite simplificar nuestros procesos y nuestro código mejorando
así la calidad del mismo, de la misma forma en que este se vuelve más sintetizado y fácil de
leer, evitando también el consumo de tiempo innecesario en procesos repetitivos, así como
en recursos. También, al momento de buscar algún dato en específico, los arreglos nos
brindan una forma muy eficiente en el almacenamiento y acceso de datos convirtiéndose así
en una herramienta muy útil en términos de desarrollo de resolución de problemas.
37
BIBLIOGRAFIAS
López García J.C (2009) EDUCACION BASICA ALGORITMOS Y
PROGRAMACION GUIA PARA DOCENTES (Segunda Edición) eduteka.org
https://libros.metabiblioteca.org/server/api/core/bitstreams/a567dd25-1e96-4c0f-9b6a-
7a844d0eb577/content
38