diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/ADA4_ANGEL_GONZALEZ/v16/.suo" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/ADA4_ANGEL_GONZALEZ/v16/.suo" new file mode 100644 index 0000000..6d16fbd Binary files /dev/null and "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/ADA4_ANGEL_GONZALEZ/v16/.suo" differ diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/ProjectSettings.json" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/ProjectSettings.json" new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/ProjectSettings.json" @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/VSWorkspaceState.json" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/VSWorkspaceState.json" new file mode 100644 index 0000000..2fb9e9c --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/VSWorkspaceState.json" @@ -0,0 +1,7 @@ +{ + "ExpandedNodes": [ + "" + ], + "SelectedNode": "\\ejemplo1.cs", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/slnx.sqlite" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/slnx.sqlite" new file mode 100644 index 0000000..d61ec95 Binary files /dev/null and "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/.vs/slnx.sqlite" differ diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/ejercicio26 de Marzo/Ejercicio 26 de Marzo.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/ejercicio26 de Marzo/Ejercicio 26 de Marzo.cs" new file mode 100644 index 0000000..59c719e --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/ejercicio26 de Marzo/Ejercicio 26 de Marzo.cs" @@ -0,0 +1,153 @@ +//Elaborado por: Ángel González +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///sirve para elegir la funcion a representar por el sistema + /// + static void elegirFuncion(int[,] funcion) + { + //lineas de escritura para solicitar que funcion se desea obtener + Console.WriteLine("Elige que función deseas obtener:"); + Console.WriteLine("Opción 1: Matriz de las secciones 2-4"); + Console.WriteLine("Opción 2: Matriz de las secciones 1-3"); + //definicion de la variable opcion, la cual servira para definir la funcion a representar + int opcion=int.Parse(Console.ReadLine()); + //condicional switch que sirve para elegir entre los casos de la funcion a representar + switch(opcion) + { + //el caso 1 hace un pase por referencia a la funcion recorrerMatriz2_4 + case 1: + recorrerMatriz2_4(funcion); + break; + //el caso 2 hace un pase por referencia a la funcion recorrerMatriz1_3 + case 2: + recorrerMatriz1_3(funcion); + break; + //en caso de que la variable opcion no sea ninguno de los casos posibles, se volvera a solicitar mediante un mensaje de error + default: + Console.WriteLine("Porfavor ingrese una opción valida"); + break; + } + } + /// + ///representa la funcion del caso 1 recorrerMatriz2_4 + /// + static void recorrerMatriz2_4(int[,] rango) + { + //se define N como uno de los parametros de la matriz, en este caso N representa 3 + //se define a una variable auxiliar que ayudara con la representacion de la función después + int N=rango.GetLength(0), aux; + //ciclo for que lee las filas de la matriz para el caso 1 + for(int fil=0; fil=(N-1) && fil>=col) + { + //se imprime la posicion solicitada de la matriz mediante un Write + Console.Write(" " + rango[fil,col]); + } + //el condicional else se usa para ayudar a la representación grafica de la matriz + else + { + //se imprime un Write vacion para ayudar a la representación grafica de la matriz + Console.Write(" "); + } + } + //se imprime un WriteLine vacio para generar un espaciado entre lineas + Console.WriteLine(" "); + } + } + /// + ///representa la funcion del caso 2 recorrerMatriz1_3 + /// + static void recorrerMatriz1_3(int[,] rango) + { + //se define N como uno de los parametros de la matriz, en este caso N representa 3 + //se define a una variable auxiliar que ayudara con la representacion de la función después + int N=rango.GetLength(0), aux; + //ciclo for que lee las filas de la matriz para el caso 2 + for(int fil=0; fil=col && aux<=(N-1)) + { + //se imprime la posicion solicitada de la matriz mediante un Write + Console.Write(" " + rango[fil,col]); + } + //el condicional else se usa para ayudar a la representación grafica de la matriz + else if(aux>=(N-1) && fil<=col) + { + //se imprime la posicion solicitada de la matriz mediante un Write + Console.Write(" " + rango[fil,col]); + } + //el condicional else se usa para ayudar a la representación grafica de la matriz + else + { + //se imprime un Write vacion para ayudar a la representación grafica de la matriz + Console.Write(" "); + } + } + //se imprime un WriteLine vacio para generar un espaciado entre lineas + Console.WriteLine(" "); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/readme.txt" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/readme.txt" new file mode 100644 index 0000000..6b20616 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/readme.txt" @@ -0,0 +1,2 @@ +los archivos que tiene en el titulos las siglas RG despues del nombre de la funcion, son aquellas que tienen una representación grafica al ejecutarse +mientras que los que no lo tienen son lo que unicamente representan los numeros solictados por la funcion de manera lineal. \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerDiagonalInvertida_RG_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerDiagonalInvertida_RG_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..b940fe8 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerDiagonalInvertida_RG_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,59 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera la diagonal invertida o secundaria de la matriz y la imprimira + /// + static void recorrerDiagonalInvertida(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de manera identica inversa de la matriz + //al ser identicas inversa solo se toma en cuenta la diagonals inversa o secundaria + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera la diagonal invertida o secundaria de la matriz y la imprimira + /// + static void recorrerDiagonalInvertida(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de manera identica inversa de la matriz + //al ser identicas inversa solo se toma en cuenta la diagonals inversa o secundaria + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera la diagonal principal de la matriz y la imprimira + /// + static void recorrerDiagonalPrincipal(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz de manera identica + //al ser identicas filas y columnas solo se toma en cuenta la diagonal principal + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera la diagonal principal de la matriz y la imprimira + /// + static void recorrerDiagonalPrincipal(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz de manera identica + //al ser identicas filas y columnas solo se toma en cuenta la diagonal principal + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 1 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz1Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil=col) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(" " + rango[fil,col]); + } + } + //se genera un espaciado entre lineas mediante un WriteLine vacio + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1Ascendente_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1Ascendente_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..bcb667a --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1Ascendente_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,66 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 1 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz1Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil=col) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(rango[fil,col]); + } + } + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..6c6ca67 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,68 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 1 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz1Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee de manera invertida las filas de la matriz + for(int fil=(N-1); fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col<=(N-fil-1); col++) + { + //se utiliza un if que regula el arreglo deseado para la matriz + if(fil>=col) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(" " + rango[fil,col]); + } + } + //se genera un espaciado entre lineas mediante un WriteLine vacio + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1Descendente_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1Descendente_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..026d836 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1Descendente_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,66 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 1 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz1Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee de manera invertida las filas de la matriz + for(int fil=(N-1); fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col<=(N-fil-1); col++) + { + //se utiliza un if que regula el arreglo deseado para la matriz + if(fil>=col) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(rango[fil,col]); + } + } + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1_2Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1_2Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..f885b4f --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1_2Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,67 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 1 y 2 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz1_2Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 1 y 2 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz1_2Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 1 y 2 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz1_2Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz de manera inversa + for(int fil=(N-1); fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + //al restarle la cantidad de filas a N se genera el arreglo deseado para la matriz + for(int col=0; col<(N-fil); col++) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(" " + rango[fil,col]); + } + //se genera un espaciado entre lineas mediante un WriteLine vacio + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1_2Descendente_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1_2Descendente_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..f3b76f1 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1_2Descendente_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,62 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 1 y 2 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz1_2Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz de manera inversa + for(int fil=(N-1); fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + //al restarle la cantidad de filas a N se genera el arreglo deseado para la matriz + for(int col=0; col<(N-fil); col++) + { + Console.Write(rango[fil,col]); + } + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1_4Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1_4Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..afe209d --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz1_4Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,65 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 1 y 4 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz1_4Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 1 y 4 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz1_4Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 1 y 4 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz1_4Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz de manera invertida + for(int fil=N-1; fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + //al sumarle 1 a el numero de filas se genera el arreglo deseado para la matriz + for(int col=0; col + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 1 y 4 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz1_4Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(1); + //ciclo for que lee las filas de la matriz de manera invertida + for(int fil=N-1; fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + //al sumarle 1 a el numero de filas se genera el arreglo deseado para la matriz + for(int col=0; col + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 2 manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz2Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil<(N-1); fil++) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col<=(N-fil-1); col++) + { + //se utiliza un if que regula el arreglo deseado para la matriz + if(fil<=col) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(" " + rango[fil,col]); + } + //el else se utiliza para acomodar adecuadamente la representacion grafica de la matriz + else + { + //espaciado que ayuda a la representacion grafica + Console.Write(" "); + } + } + //se genera un espaciado entre lineas mediante un WriteLine vacio + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2Ascendete_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2Ascendete_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..d4872e2 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2Ascendete_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,66 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 2 manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz2Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil<(N-1); fil++) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col<=(N-fil-1); col++) + { + //se utiliza un if que regula el arreglo deseado para la matriz + if(fil<=col) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(rango[fil,col]); + } + } + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..a0ef427 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,74 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 2 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz2Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee de manera invertida las filas de la matriz + for(int fil=(N-1)/2; fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col<=(N-fil-1); col++) + { + //se utiliza un if que regula el arreglo deseado para la matriz + if(fil<=col) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(" " + rango[fil,col]); + } + //el else se utiliza para acomodar adecuadamente la representacion grafica de la matriz + else + { + //espaciado que ayuda a la representacion grafica + Console.Write(" "); + } + } + //se genera un espaciado entre lineas mediante un WriteLine vacio + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2Descendente_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2Descendente_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..c289f86 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2Descendente_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,66 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 2 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz2Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee de manera invertida las filas de la matriz + for(int fil=(N-1)/2; fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col<=(N-fil-1); col++) + { + //se utiliza un if que regula el arreglo deseado para la matriz + if(fil<=col) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(rango[fil,col]); + } + } + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2_3Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2_3Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..7e9ea3f --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz2_3Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,65 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 2 y 3 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz2_3Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 2 y 3 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz2_3Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 2 y 3 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz2_3Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz de manera invertida + for(int fil=N-1; fil>=0; fil--) + { + //ciclo for que leelas columnas de la matriz + //al igualar las columnas al numero de filas se genera el arreglo deseado para la matriz + for(int col=fil; col + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 2 y 3 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz2_3Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz de manera invertida + for(int fil=N-1; fil>=0; fil--) + { + //ciclo for que leelas columnas de la matriz + //al igualar las columnas al numero de filas se genera el arreglo deseado para la matriz + for(int col=fil; col + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 3 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz3Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + //se define un auxiliar que se utilizara para la representacion grafica + int N=rango.GetLength(0), aux; + //ciclo for que lee las filas de la matriz + for(int fil=0; fil=(N-1)) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(" " + rango[fil,col]); + } + //el ciclo else sirve para acomodar de manera adecuada la representacion grafica + else if(col>=(N-1)/2) + { + //espaciado que ayuda a la representacion grafica + Console.Write(" "); + } + } + //se genera un espaciado entre lineas mediante un WriteLine vacio + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3Ascendente_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3Ascendente_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..5789032 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3Ascendente_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,68 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 3 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz3Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + //se define un auxiliar que se utilizara para limitar la matriz + int N=rango.GetLength(0), aux; + //ciclo for que lee las filas de la matriz + for(int fil=0; fil=(N-1)) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(rango[fil,col]); + } + } + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..c0e26b1 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,77 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 3 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz3Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + //se define un auxiliar que se utilizara para la representacion grafica + int N=rango.GetLength(0), aux; + //ciclo for que lee de manera invetida las filas de la matriz + for(int fil=(N-1); fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col=(N-1)) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(" " + rango[fil,col]); + } + //el ciclo else sirve para acomodar de manera adecuada la representacion grafica + else if(col<=(N-1)/2) + { + //espaciado que ayuda a la representacion grafica + Console.Write(" "); + } + } + //se genera un espaciado entre lineas mediante un WriteLine vacio + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3Descendente_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3Descendente_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..aeb433e --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3Descendente_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,69 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 3 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz3Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + //se define un auxiliar que se utilizara para limitar la matriz + int N=rango.GetLength(0), aux; + //ciclo for que lee de manera invetida las filas de la matriz + for(int fil=(N-1); fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col=(N-1)) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(rango[fil,col]); + } + } + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3_4Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3_4Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..9056201 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz3_4Ascendente_RG_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,65 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 3 y 4 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz3_4Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 3 y 4 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz3_4Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz + for(int fil=0; fil + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 3 y 4 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz3_4Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz de manera invertida + for(int fil=N-1; fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + //al restarle el numero de filas mas 1 a N se genera el arreglo deseado para la matriz + for(int col=(N-fil-1); col + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera las areas 3 y 4 de manera descendente y generara una matriz impresa + /// + static void recorrerMatriz3_4Descendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + int N=rango.GetLength(0); + //ciclo for que lee las filas de la matriz de manera invertida + for(int fil=N-1; fil>=0; fil--) + { + //ciclo for que lee las columnas de la matriz + //al restarle el numero de filas mas 1 a N se genera el arreglo deseado para la matriz + for(int col=(N-fil-1); col + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 4 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz4Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + //se define un auxiliar que se utilizara para la representacion grafica + int N=rango.GetLength(1), aux; + //ciclo for que lee las filas de la matriz + for(int fil=(N-1)/2; fil<=(N-1); fil++) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col(N-1)/2 ) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(" " + rango[fil,col]); + } + //el ciclo else sirve para acomodar de manera adecuada la representacion grafica + else + { + //espaciado que ayuda a la representacion grafica + Console.Write(" "); + } + } + //se genera un espaciado entre lineas mediante un WriteLine vacio + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz4Ascendente_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz4Ascendente_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..eae00d9 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz4Ascendente_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,69 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 4 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz4Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + //se define un auxiliar que se utilizara para limitar la matriz + int N=rango.GetLength(1), aux; + //ciclo for que lee las filas de la matriz + for(int fil=(N-1)/2; fil<=(N-1); fil++) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col(N-1)/2 ) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(rango[fil,col]); + } + } + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz4Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz4Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..589a3d6 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz4Descendente_RG_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,77 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 4 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz4Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + //se define un auxiliar que se utilizara para la representacion grafica + int N=rango.GetLength(1), aux; + //ciclo for que lee de manera invertida las filas de la matriz + for(int fil=(N-1); fil>=(N-1)/2; fil--) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col(N-1)/2 ) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(" " + rango[fil,col]); + } + //el ciclo else sirve para acomodar de manera adecuada la representacion grafica + else + { + //espaciado que ayuda a la representacion grafica + Console.Write(" "); + } + } + //se genera un espaciado entre lineas mediante un WriteLine vacio + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz4Descendente_\303\201ngel_Gonz\303\241lez.cs" "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz4Descendente_\303\201ngel_Gonz\303\241lez.cs" new file mode 100644 index 0000000..46e3fa8 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA4_ANGEL_GONZALEZ/recorrerMatriz4Descendente_\303\201ngel_Gonz\303\241lez.cs" @@ -0,0 +1,69 @@ +//Elaborado por: Ángel González +using System; + +namespace ejemplo1 +{ + /* + /// + ///La clase program denota el tipo de proyecto en el que se trabaja + ///en este caso, un programa + /// + */ + class program + { + //sirve como base para el pase por valor de la matriz + static void Main(string[] args) + { + //el int Matriz representa el tamaño total de la matriz a crear + int[,] Matriz = new int [3,3]; + //pase por valor hacia la funcion asignaciodeMatriz + asginaciondeMatriz (Matriz); + } + /// + ///sirve para asignar los valores que tendra cada posicion de la matriz + /// + static void asginaciondeMatriz(int[,] matr) + { + //num nos servira como la base de la asignacion de valores + int num=1; + //ciclo for que lee las filas + for(int f=0; f + ///la funcion leera el area 4 de manera ascendente y generara una matriz impresa + /// + static void recorrerMatriz4Ascendente(int[,] rango) + { + //se define una constante N en base a la longitud de uno de los parametros de la matriz + //se define un auxiliar que se utilizara para limitar la matriz + int N=rango.GetLength(1), aux; + //ciclo for que lee de manera invertida las filas de la matriz + for(int fil=(N-1); fil>=(N-1)/2; fil--) + { + //ciclo for que lee las columnas de la matriz + for(int col=0; col(N-1)/2 ) + { + //se imprime la posicion de la matriz mediante Write en un string + Console.Write(rango[fil,col]); + } + } + } + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Lista_Angel_Gonz\303\241lez.c" "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Lista_Angel_Gonz\303\241lez.c" new file mode 100644 index 0000000..39f49bd --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Lista_Angel_Gonz\303\241lez.c" @@ -0,0 +1,129 @@ +#include +#include +#include + +typedef struct Mascota +{ + int edad; + struct Mascota* siguiente; +}Mascota; +typedef Mascota *MascotaPtr; + +void insertarOrdenado(MascotaPtr*, int); +MascotaPtr borrar(MascotaPtr, int); +void imprimirLista(MascotaPtr); +void menu(); + +int main() +{ + MascotaPtr lista=NULL; + int _edad, opcion; + bool auxiliar=false; + + do + { + menu(); + scanf("%d", &opcion); + + switch(opcion) + { + case 1: + scanf("%d", &_edad); + insertarOrdenado(&lista, _edad); + break; + case 2: + scanf("%d", &_edad); + lista = borrar(lista, _edad); + break; + case 3: + imprimirLista(lista); + break; + default: + auxiliar=true; + break; + } + } while(auxiliar==false); + return 0; +} + +void menu() +{ + printf("Bienvenido al menu de opciones, porfavor elige una de acuerdo al numero en pantalla\n"); + printf("1.\n Insertar un elemento en la lista\n"); + printf("2.\n Borrar un elemento de la lista\n"); + printf("3.\n Imprimir todos los elementos de la lista\n"); + printf("En caso de desear cerrar el programa, porfavor pulse cualquier otro boton\n"); +} + +void insertarOrdenado(MascotaPtr *nPtr, int val) +{ + MascotaPtr nuevo; + MascotaPtr anterior; + MascotaPtr actual; + + nuevo = (Mascota*)malloc(sizeof(Mascota)); + if (nuevo!=NULL) + { + nuevo->edad=val; + nuevo->siguiente=NULL; + + anterior=NULL; + actual=*nPtr; + + while(actual!=NULL && val>actual->edad) + { + anterior=actual; + actual=actual->siguiente; + } + if(anterior==NULL) + { + nuevo->siguiente=*nPtr; + *nPtr=nuevo; + } + else + { + anterior->siguiente=nuevo; + nuevo->siguiente=actual; + } + } + else + { + printf("lo siento, no se encontro el elemento deseado\n"); + } +} + +MascotaPtr borrar(MascotaPtr actual, int val) +{ + MascotaPtr opborrar=NULL; + if(actual=NULL) + { + if(actual->edad==val) + { + opborrar=actual; + actual=actual->siguiente; + free(opborrar); + } + else + { + actual->siguiente=borrar(actual->siguiente, val); + } + } + return actual; +} + +void imprimirLista(MascotaPtr actual) +{ + if(actual==NULL) + { + printf("Lo sentimos, no existe ningun elemento\n"); + } + else + { + printf("Lista de elementos:\n"); + while (actual!=NULL) + { + printf("%d\n",actual->edad); + actual=actual->siguiente; + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Lista_Angel_Gonz\303\241lez.exe" "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Lista_Angel_Gonz\303\241lez.exe" new file mode 100644 index 0000000..3a6d5a5 Binary files /dev/null and "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Lista_Angel_Gonz\303\241lez.exe" differ diff --git "a/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Racionales.c" "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Racionales.c" new file mode 100644 index 0000000..9388e06 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Racionales.c" @@ -0,0 +1,163 @@ +#include + +typedef struct racional{ + int numerador; + int denominador; +}racional; + +void leerRacional(racional *, racional *); +racional sumarRacional(racional, racional ); +racional restarRacional(racional, racional ); +racional multiplicarRacional(racional, racional); +racional dividirRacional(racional, racional); +void simplificarRacional(racional *); +void imprimirRacional(racional, racional, racional, racional); + +int main() +{ + racional r1, r2, r3, r4, r5, r6; + + leerRacional(&r1, &r2); + r3 = sumarRacional(r1, r2); + r4 = restarRacional(r1, r2); + r5 = multiplicarRacional(r1, r2); + r6 = dividirRacional(r1, r2); + imprimirRacional(r3, r4, r5, r6); + + return 0; +} + +void leerRacional(racional *r1, racional *r2) +{ + int numerador1, denominador1, numerador2, denominador2; + scanf("%d", &numerador1); + scanf("%d", &denominador1); + scanf("%d", &numerador2); + scanf("%d", &denominador2); + + r1->numerador=numerador1; + r1->denominador=denominador1; + r2->numerador=numerador2; + r2->denominador=denominador2; + +} + +racional sumarRacional(racional r1, racional r2) +{ + racional resultados; + int numerador, denominador; + + if(r1.denominador != r2.denominador) + { + numerador=(r1.numerador*r2.denominador)+(r2.numerador*r1.denominador); + denominador=(r1.denominador*r2.denominador); + } + else + { + numerador=r1.numerador + r2.numerador; + denominador=r1.denominador; + } + resultados.numerador=numerador; + resultados.denominador=denominador; + + simplificarRacional(&resultados); + return resultados; +} + +racional restarRacional(racional r1, racional r2) +{ + racional resultados; + int numerador, denominador, num1, num2; + + if(r1.denominador != r2.denominador) + { + num1=(r1.numerador*r2.denominador); + num2=(r2.numerador*r1.denominador); + + numerador=num1-num2; + denominador=(r1.denominador*r2.denominador); + } + else + { + + numerador=r1.numerador-r2.numerador; + denominador=r1.denominador; + } + resultados.numerador=numerador; + resultados.denominador=denominador; + + simplificarRacional(&resultados); + return resultados; +} + +racional multiplicarRacional(racional r1, racional r2) +{ + racional resultados; + int numerador, denominador; + + numerador = r1.numerador*r2.numerador; + denominador = r1.denominador*r2.denominador; + + resultados.numerador=numerador; + resultados.denominador=denominador; + + simplificarRacional(&resultados); + + return resultados; +} + +racional dividirRacional(racional r1, racional r2) +{ + racional resultados; + int numerador, denominador; + + numerador = r1.numerador*r2.denominador; + denominador = r1.denominador*r2.numerador; + + resultados.numerador=numerador; + resultados.denominador=denominador; + + simplificarRacional(&resultados); + + return resultados; +} + +void simplificarRacional(racional *r1) +{ + int aux1=0, aux2=2; + + if(r1->numerador<0) + { + r1->numerador = r1->numerador*(-1); + aux1++; + } + if(r1->denominador<0) + { + r1->denominador = r1->denominador*(-1); + aux1++; + } + while (aux2<=r1->numerador && aux2<=r1->denominador) + { + if (r1->numerador%aux2==0 && r1->denominador%aux2==0) + { + r1->numerador=r1->numerador/aux2; + r1->denominador=r1->denominador/aux2; + } + else + { + aux2++; + } + } + if(aux1==1) + { + r1->numerador=r1->numerador*(-1); + } +} + +void imprimirRacional(racional r3, racional r4, racional r5, racional r6) +{ + printf("%d/%d \n", r3.numerador, r3.denominador); + printf("%d/%d \n", r4.numerador, r4.denominador); + printf("%d/%d \n", r5.numerador, r5.denominador); + printf("%d/%d \n", r6.numerador, r6.denominador); +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Racionales.exe" "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Racionales.exe" new file mode 100644 index 0000000..ec117c5 Binary files /dev/null and "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Racionales.exe" differ diff --git "a/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Sudoku.c" "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Sudoku.c" new file mode 100644 index 0000000..9427682 --- /dev/null +++ "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Sudoku.c" @@ -0,0 +1,133 @@ +#include +#include +#include +#include + +typedef struct tableroMenor +{ + int matriz[3][3]; +} tableroMenor; + +typedef struct sudoku +{ + tableroMenor tableroCompleto[3][3]; +} sudoku; + +void asignarValores(sudoku *); +bool verificadorMatriz(int, int _matriz[][3], int, int); +bool verificadorLineas(int, int _matrizFalsa[][9], int, int); +bool verificadorColumnas(int, int _matrizFalsa[][9], int, int); +void imprimirSudoku(sudoku); + +int main() +{ + sudoku sudoku; + time_t t; + + srand((unsigned) time(&t)); + + asignarValores(&sudoku); + + imprimirSudoku(sudoku); + + return 0; +} + +void asignarValores(sudoku *_sudoku) +{ + int auxiliar1, sudokuFalso[9][9]; + bool auxiliar2, auxiliar3, auxiliar4; + for(int f=0; f<3; f++) + { + for (int c=0; c<3; c++) + { + for (int i=0; i<3; i++) + { + for (int j=0; j<3; j++) + { + do + { + auxiliar1=1+rand() %9; + sudokuFalso[i+f*3][j+c*3]=auxiliar1; + _sudoku->tableroCompleto[f][c].matriz[i][j]=auxiliar1; + auxiliar2=verificadorMatriz(auxiliar1, _sudoku->tableroCompleto[f][c].matriz, i, j); + auxiliar3=verificadorLineas(auxiliar1, sudokuFalso, i+f*3, j+c*3); + auxiliar4=verificadorColumnas(auxiliar1, sudokuFalso, i+f*3, j); + } while (auxiliar2==false || auxiliar3==false || auxiliar4==false); + } + } + } + } +} + +bool verificadorMatriz(int num, int _matriz[][3], int x, int y) +{ + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { + if (num==_matriz[i][j]) + { + if (i==x && j==y) + { + return true; + } + else + { + return false; + } + + } + } + } +} + +bool verificadorLineas(int n, int _matrizFalsa[][9], int i, int j) +{ + for (int f = 0; f < j; f++) + { + if (n==_matrizFalsa[f][j]) + { + return false; + } + return true; + } +} + +bool verificadorColumnas(int n, int _matrizFalsa[][9], int i, int j) +{ + for (int f = 0; f < 9; f++) + { + if (n==_matrizFalsa[f][j]) + { + if (i==f) + { + return true; + } + else + { + return false; + } + + } + } +} + + +void imprimirSudoku(sudoku _sudoku) +{ + for(int f=0; f<3; f++) + { + for (int c=0; c<3; c++) + { + for (int i=0; i<3; i++) + { + for (int j=0; j<3; j++) + { + printf("%d\t", _sudoku.tableroCompleto[f][i].matriz[c][j]); + } + } + printf("\n\n"); + } + } +} \ No newline at end of file diff --git "a/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Sudoku.exe" "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Sudoku.exe" new file mode 100644 index 0000000..d12c6b7 Binary files /dev/null and "b/ADAs/Angel Gonz\303\241lez/ADA6_ANGEL_GONZALEZ/ADA6_Sudoku.exe" differ diff --git a/ADAs/Giovanni Quintal ADA/ADA 4/No visual.c b/ADAs/Giovanni Quintal ADA/ADA 4/No visual.c new file mode 100644 index 0000000..3d80f80 --- /dev/null +++ b/ADAs/Giovanni Quintal ADA/ADA 4/No visual.c @@ -0,0 +1,367 @@ +/** + * @file ADA 4.c + * @author Giovanni Quintal + * Salida: Secciones acordadas + * @brief Determinar la matriz y secciones + * @version 0.1 + * @date 2020-03-26 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include +#define N 3 + +/** +* @brief Se inicializan los prototipos de las funciones +*/ + +void asignarMatriz(int arr[][N]); +void imprimirMatriz(int arr[][N]); +void recorrerMatriz1_2Ascendente(int arr[][N]); +void recorrerMatriz1_2Descendente(int arr[][N]); +void recorrerMatriz3_4Ascendente(int arr[][N]); +void recorrerMatriz3_4Descendente(int arr[][N]); +void recorrerMatriz1_4Ascendente(int arr[][N]); +void recorrerMatriz1_4Descendente(int arr[][N]); +void recorrerMatriz2_3Ascendente(int arr[][N]); +void recorrerMatriz2_3Descendente(int arr[][N]); +void recorrerMatriz1Ascendente(int arr[][N]); +void recorrerMatriz1Descendente(int arr[][N]); +void recorrerMatriz2Ascendente(int arr[][N]); +void recorrerMatriz2Descendente(int arr[][N]); +void recorrerMatriz3Ascendente(int arr[][N]); +void recorrerMatriz3Descendente(int arr[][N]); +void recorrerMatriz4Ascendente(int arr[][N]); +void recorrerMatriz4Descendente(int arr[][N]); +void recorrerDiagonalPrincipal(int arr[][N]); +void recorrerDiagonalInvertida(int arr[][N]); + + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + * para el algoritmo. + * @return + */ + +int main() +{ + int arreglo[N][N]; + time_t t; + + /* Intializes random number generator */ + srand((unsigned) time(&t)); + + asignarMatriz(arreglo); + imprimirMatriz(arreglo); + recorrerMatriz1_2Ascendente(arreglo); + recorrerMatriz1_2Descendente(arreglo); + recorrerMatriz3_4Ascendente(arreglo); + recorrerMatriz3_4Descendente(arreglo); + recorrerMatriz1_4Ascendente(arreglo); + recorrerMatriz1_4Descendente(arreglo); + recorrerMatriz2_3Ascendente(arreglo); + recorrerMatriz2_3Descendente(arreglo); + recorrerMatriz1Ascendente(arreglo); + recorrerMatriz1Descendente(arreglo); + recorrerMatriz2Ascendente(arreglo); + recorrerMatriz2Descendente(arreglo); + recorrerMatriz3Ascendente(arreglo); + recorrerMatriz3Descendente(arreglo) + recorrerMatriz4Ascendente(arreglo); + recorrerMatriz4Descendente(arreglo); + recorrerDiagonalPrincipal(arreglo); + recorrerDiagonalInvertida(arreglo); + + + return 0; +} + + /** + * @brief + * En esta función se agrega valores aleatorios a la matriz + * @param arr + */ + void asignarMatriz(int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = 0; j < N; j++) { + arr[i][j] = rand() % 9; + } + } + } + /** + * @brief + * Impresión de la matriz + * @param arr + */ + + void imprimirMatriz(int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = 0; j < N; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 1-2 Ascendente + * @param arr + */ + void recorrerMatriz1_2Ascendente(int arr[][N]) { + for(int i=0; i=0; i--) { + for (int j = 0; j<(N-i); j++) { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + } + + /** + * @brief + * Matriz 3-4 Ascendente + * @param arr + */ + void recorrerMatriz3_4Ascendente(int arr[][N]) { + for(int i=0; i=0; i--) { + for (int j = (N-i-1); j=0; i--) { + for (int j = 0; j<=i; j++) { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + } + + /** + * @brief + * Matriz 2-3 Ascendente + * @param arr + */ + void recorrerMatriz2_3Ascendente(int arr[][N]) { + for(int i=0; i=0; i--) { + for (int j = i; j=j) { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } + } + + + /** + * @brief + * Matriz 1 Descendente + */ + void recorrerMatriz1Descendente(int arr[][N]) { + for(int i=N-1; i>=0; i--) { + for (int j=0; j<=(N-i-1); j++) { + if (i>=j) { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } + } + + /** + * @brief + * Matriz 2 Ascendente + */ + void recorrerMatriz2Ascendente(int arr[][N]){ + for(int i=0; i=0; i--) { + for (int j=0; j<=(N-i-1); j++) { + if (i<=j) { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } + } + + /** + * @brief + * Matriz 3 Ascendente + */ + void recorrerMatriz3Ascendente(int arr[][N]) { + int sum; + for(int i=0; i=N-1) { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } + } + + /** + * @brief + * Matriz 3 Descendente + */ + void recorrerMatriz3Descendente(int arr[][N]) { + int sum; + for(int i=N-1; i>=0; i--) { + for (int j=0; j=N-1) { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } + } + + + /** + * @brief + * Matriz 4 Ascendente + */ + void recorrerMatriz4Ascendente(int arr[][N]) { + for(int i=0; i=j) { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } + } + + /** + * @brief + * Matriz 4 Descendente + */ + void recorrerMatriz4Descendente(int arr[][N]) { + for(int i=N-1; i>=0; i--) { + for (int j=N-i-1; j=j) { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } + } + + /** + * @brief + * Diagonal Principal + */ + void recorrerDiagonalPrincipal(int arr[][N]) { + for(int i=0; i +#include +#include +#define N 3 + +/** +* @brief Se inicializan los prototipos de las funciones +*/ + +void asignarMatriz(int arr[][N]); +void imprimirMatriz(int arr[][N]); +void recorrerMatriz1_2Ascendente(int arr[][N]); +void recorrerMatriz1_2Descendente(int arr[][N]); +void recorrerMatriz3_4Ascendente(int arr[][N]); +void recorrerMatriz3_4Descendente(int arr[][N]); +void recorrerMatriz1_4Ascendente(int arr[][N]); +void recorrerMatriz1_4Descendente(int arr[][N]); +void recorrerMatriz2_3Ascendente(int arr[][N]); +void recorrerMatriz2_3Descendente(int arr[][N]); +void recorrerMatriz1Ascendente(int arr[][N]); +void recorrerMatriz1Descendente(int arr[][N]); +void recorrerMatriz2Ascendente(int arr[][N]); +void recorrerMatriz2Descendente(int arr[][N]); +void recorrerMatriz3Ascendente(int arr[][N]); +void recorrerMatriz3Descendente(int arr[][N]); +void recorrerMatriz4Ascendente(int arr[][N]); +void recorrerMatriz4Descendente(int arr[][N]); +void recorrerDiagonalPrincipal(int arr[][N]); +void recorrerDiagonalInvertida(int arr[][N]); + + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + * para el algoritmo. + * @return + */ + +int main() +{ + int arreglo[N][N]; + time_t t; + + /* Intializes random number generator */ + srand((unsigned) time(&t)); + + asignarMatriz(arreglo); + imprimirMatriz(arreglo); + recorrerMatriz1_2Ascendente(arreglo); + recorrerMatriz1_2Descendente(arreglo); + recorrerMatriz3_4Ascendente(arreglo); + recorrerMatriz3_4Descendente(arreglo); + recorrerMatriz1_4Ascendente(arreglo); + recorrerMatriz1_4Descendente(arreglo); + recorrerMatriz2_3Ascendente(arreglo); + recorrerMatriz2_3Descendente(arreglo); + recorrerMatriz1Ascendente(arreglo); + recorrerMatriz1Descendente(arreglo); + recorrerMatriz2Ascendente(arreglo); + recorrerMatriz2Descendente(arreglo); + recorrerMatriz3Ascendente(arreglo); + recorrerMatriz3Descendente(arreglo) + recorrerMatriz4Ascendente(arreglo); + recorrerMatriz4Descendente(arreglo); + recorrerDiagonalPrincipal(arreglo); + recorrerDiagonalInvertida(arreglo); + + + return 0; +} + + /** + * @brief + * En esta función se agrega valores aleatorios a la matriz + * @param arr + */ + void asignarMatriz(int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = 0; j < N; j++) { + arr[i][j] = rand() % 9; + } + } + } + /** + * @brief + * Impresión de la matriz + * @param arr + */ + + void imprimirMatriz(int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = 0; j < N; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 1-2 Ascendente + * @param arr + */ + void recorrerMatriz1_2Ascendente(int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = 0; j < (N-i); j++ ){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 1-2 Descendente + * @param arr + */ + void recorrerMatriz1_2Descendente(int arr[][N]) { + for(int i = N-1; i >= 0; i--) { + for (int j = 0; j <= (N-1-i); j++ ){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 3-4 Ascendente + * @param arr + */ + void recorrerMatriz3_4Ascendente(int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = (N-1-i); j < N; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 3-4 Descendente + * @param arr + */ + void recorrerMatriz3_4Descendente(int arr[][N]) { + for(int i = N-1; i >= 0; i--) { + for (int j = (N-1-i); j < N; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 1-4 Ascendente + * @param arr + */ + void recorrerMatriz1_4Ascendente(int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = 0; j <= i; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 1-4 Descendente + * @param arr + */ + void recorrerMatriz1_4Descendente(int arr[][N]) { + for(int i = N-1; i >= 0; i--) { + for (int j = 0; j <= i; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 2-3 Ascendente + * @param arr + */ + void recorrerMatriz2_3Ascendente(int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = i; j < N; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 2-3 Descendente + * @param arr + */ + + void recorrerMatriz2_3Descendente(int arr[][N]) { + for(int i = N-1; i >= 0; i--) { + for (int j = i; j < N; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 1 Ascendente + */ + void recorrerMatriz1Ascendente((int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = 0; j <= i && j <(N-i); j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + + /** + * @brief + * Matriz 1 Descendente + */ + void recorrerMatriz1Descendente((int arr[][N]) { + for(int i = N-1; i >= 0; i--) { + for (int j = 0; j <= i && j <= (N-1-i); j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 2 Ascendente + */ + void recorrerMatriz2Ascendente((int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = i; j < N && j < (N-i); j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 2 Descendente + */ + void recorrerMatriz2Descendente((int arr[][N]) { + for(int i = N-1; i >= 0; i--) { + for (int j = i; j < N && j <= (N-1-i); j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 3 Ascendente + */ + void recorrerMatriz3Ascendente((int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = 0; j < N; j++ ){ + if(i+j >= N-1 && j-i >= 0){ + printf("%d ", arr[i][j]); + } + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 3 Descendente + */ + void recorrerMatriz3Descendente((int arr[][N]) { + for(int i = N-1; i >= 0; i--) { + for (int j = 0; j < N; j++ ){ + if(i+j >= N-1 && j-i >= 0){ + printf("%d ", arr[i][j]); + } + } + printf("\n"); + } + printf("\n"); + } + + + /** + * @brief + * Matriz 4 Ascendente + */ + void recorrerMatriz4Ascendente((int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j = (N-1-i); j <= i; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Matriz 4 Descendente + */ + void recorrerMatriz4Descendente((int arr[][N]) { + for(int i = N-1; i >= 0; i--) { + for (int j = (N-1-i); j <= i; j++){ + printf("%d ", arr[i][j]); + } + printf("\n"); + } + printf("\n"); + } + + /** + * @brief + * Diagonal Principal + */ + void recorrerDiagonalPrincipal((int arr[][N]) { + for(int i = 0; i < N; i++) { + printf("%d ", arr[i][i]); + } + printf("\n"); + } + + /** + * @brief + * Diagonal Invertida + * @param arr + */ + void recorrerDiagonalInvertida(int arr[][N]) { + for(int i = 0; i < N; i++) { + for (int j= 0; j < N; j++){ + if(i+j== N-1){ + printf("%d ", arr[i][j]); + } + } + } + printf("\n"); + } \ No newline at end of file diff --git a/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-BusquedaBinaria.c b/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-BusquedaBinaria.c new file mode 100644 index 0000000..6899604 --- /dev/null +++ b/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-BusquedaBinaria.c @@ -0,0 +1,305 @@ +/** + * @file Ada6-Busqueda Binaria + * @author Giovanni Quintal + * @brief + * @version 0.1 + * @date 2020-04-27 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +typedef struct pet +{ + int edad; + struct pet* siguiente; +}pet; +typedef pet *petPtr; + +/** + * @brief Se inicializan los prototipos de las funciones + * + */ +void insertarOrdenado(petPtr*, int); +petPtr borrar(petPtr, int); +void imprimir(petPtr); +void menu(); +void busquedaBinaria(petPtr); +void leerParaBusqueda(int *); +int totalNodos(petPtr); +int compareTo(petPtr, int, int); +void imprimirBusqueda(int, int, int); + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + * para el algoritmo. Tambien contiene las funciones de la entrada, proceso y la salida. + * + * @return int + */ +int main() +{ + petPtr lista=NULL; + int _edad, opcion; + bool aux=false; + + do + { + menu(); + scanf("%d", &opcion); + + switch (opcion) + { + case 1: + printf("\n¿Cuál es la edad del animal?\n"); + scanf("%d", &_edad); + insertarOrdenado(&lista, _edad); + break; + + case 2: + printf("\n¿Cuál elemento deseas eliminar?\n"); + scanf("%d", &_edad); + lista = borrar(lista, _edad); + break; + + case 3: + imprimir(lista); + break; + + case 4: + leerParaBusqueda(&_edad); + busquedaBinaria(lista); + break; + + default: + aux=true; + break; + } + + } while (aux==false); + return 0; +} + +/** + * @brief Sección donde se pregunta al usuario que desea hacer. + * + */ +void menu() +{ + printf("\nMenú\n"); + printf("Elige uno de las opciones:(Solo el número)\n"); + printf("1.\tInsertar un elemento\n"); + printf("2.\tBorrar un elemento\n"); + printf("3.\tImprimir la lista\n"); + printf("4.\tBusqueda\n"); + printf("Para terminar presiona algún otro botón\n\n"); +} + + +/** + * @brief La varriable actual guarda el dato. + * + * @param sPtr + * @param valor + */ +void insertarOrdenado(petPtr *sPtr, int valor) +{ + petPtr nuevo; + petPtr anterior; + petPtr actual; + + nuevo = (pet*)malloc(sizeof(pet)); + if (nuevo!=NULL) + { + nuevo->edad=valor; + nuevo->siguiente= NULL; + + anterior=NULL; + actual=*sPtr; + + while (actual!=NULL && valor>actual->edad) + { + anterior=actual; + actual=actual->siguiente; + } + + if (anterior==NULL) + { + nuevo->siguiente=*sPtr; + *sPtr=nuevo; + } + else + { + anterior->siguiente=nuevo; + nuevo->siguiente=actual; + } + } + else + { + printf("Error"); + } + +} + +/** + * @brief En esta función podremos borrar los datos provenientes las variable actual. + * + * @param actual + * @param valor + * @return petPtr + */ +petPtr borrar(petPtr actual, int valor) +{ + petPtr paraBorrar = NULL; + if (actual!=NULL) + { + if (actual->edad==valor) + { + paraBorrar=actual; + actual=actual->siguiente; + free(paraBorrar); + } + else + { + actual->siguiente=borrar(actual->siguiente, valor); + } + } + return actual; +} + +/** + * @brief Esta función imprime la lista final. + * + * @param actual + */ +void imprimir(petPtr actual) +{ + if (actual==NULL) + { + printf("No hay elementos aún"); + } + else + { + printf("\nLista:\n"); + while (actual!=NULL) + { + printf("%d\n", actual->edad); + actual=actual->siguiente; + } + } + +} + +/** + * @brief Funcion que recibe la edad buscada + * + * @param _edad + */ +void leerParaBusqueda(int *_edad) +{ + printf("Introduce la edad que buscas:"); + scanf("%d", _edad); +} + +/** + * @brief + * + * @param nptr + */ +void busquedaBinaria(petPtr nptr) +{ + int derecha, izquierda=0, mitad, _edad, resultado, aux=0, numNodo; + + derecha=totalNodos(nptr); + + while (izquierda<=derecha) + { + mitad=(izquierda+derecha)/2; + resultado=compareTo(nptr, _edad, mitad); + + if (resultado==0) + { + numNodo=mitad; + aux=1; + break; + } + else if (resultado==1) + { + izquierda=derecha+1; + } + else if (resultado==-1) + { + derecha=mitad-1; + } + } + imprimirBusqueda(numNodo, aux, resultado); +} + +/** + * @brief + * + * @param nptr + * @param _edad + * @param mitad + * @return int + */ +int compareTo(petPtr nptr, int _edad, int mitad) +{ + int resultado; + + for(int i=0; isiguiente; + } + + if (_edad==nptr->edad) + { + resultado=0; + } + else if (_edad>nptr->edad) + { + resultado=1; + } + else + { + resultado=-1; + } + + return resultado; +} + +/** + * @brief + * + * @param nodo + * @return int + */ +int totalNodos(petPtr nodo) +{ + int cont=0; + + while (nodo->siguiente!=NULL) + { + cont++; + nodo=nodo->siguiente; + } + return cont; +} + +/** + * @brief Imprime los nodos + * + */ +void imprimirBusqueda(_numNodo, _aux, _resultado) +{ + if (_aux== _resultado) + { + printf("\nNo existe el dato"); + } + else + { + printf("\nEl dato esta en el nodo %d\n", _numNodo); + } +} \ No newline at end of file diff --git a/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-Listas.c b/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-Listas.c new file mode 100644 index 0000000..b3d692c --- /dev/null +++ b/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-Listas.c @@ -0,0 +1,181 @@ +/** + * @file Ada6-Listas.c + * @author Giovanni Quintal + * @brief + * @version 0.1 + * @date 2020-04-16 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +typedef struct pet +{ + int edad; + struct pet* siguiente; +}pet; +typedef pet *petPtr; + +/** + * @brief Se inicializan los prototipos de las funciones + * + */ +void insertarOrdenado(petPtr*, int); +petPtr borrar(petPtr, int); +void imprimir(petPtr); +void menu(); + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + * para el algoritmo. Tambien contiene las funciones de la entrada, proceso y la salida. + * + * @return int + */ +int main() +{ + petPtr lista=NULL; + int _edad, opcion; + bool aux=false; + + do + { + menu(); + scanf("%d", &opcion); + + switch (opcion) + { + case 1: + printf("\n¿Cuál es la edad del animal?\n"); + scanf("%d", &_edad); + insertarOrdenado(&lista, _edad); + break; + + case 2: + printf("\n¿Cuál elemento deseas eliminar?\n"); + scanf("%d", &_edad); + lista = borrar(lista, _edad); + break; + + case 3: + imprimir(lista); + break; + + default: + aux=true; + break; + } + + } while (aux==false); + return 0; +} + +/** + * @brief Sección donde se pregunta al usuario que desea hacer. + * + */ +void menu() +{ + printf("\nMenú\n"); + printf("Elige uno de las opciones:(Solo el número)\n"); + printf("1.\tInsertar un elemento\n"); + printf("2.\tBorrar un elemento\n"); + printf("3.\tImprimir la lista\n"); + printf("Para terminar presiona algún otro botón\n\n"); +} + +/** + * @brief La varriable actual guarda el dato. + * + * @param sPtr + * @param valor + */ +void insertarOrdenado(petPtr *sPtr, int valor) +{ + petPtr nuevo; + petPtr anterior; + petPtr actual; + + nuevo = (pet*)malloc(sizeof(pet)); + if (nuevo!=NULL) + { + nuevo->edad=valor; + nuevo->siguiente= NULL; + + anterior=NULL; + actual=*sPtr; + + while (actual!=NULL && valor>actual->edad) + { + anterior=actual; + actual=actual->siguiente; + } + + if (anterior==NULL) + { + nuevo->siguiente=*sPtr; + *sPtr=nuevo; + } + else + { + anterior->siguiente=nuevo; + nuevo->siguiente=actual; + } + } + else + { + printf("Error"); + } + +} + +/** + * @brief En esta función podremos borrar los datos provenientes las variable actual. + * + * @param actual + * @param valor + * @return petPtr + */ +petPtr borrar(petPtr actual, int valor) +{ + petPtr paraBorrar = NULL; + if (actual!=NULL) + { + if (actual->edad==valor) + { + paraBorrar=actual; + actual=actual->siguiente; + free(paraBorrar); + } + else + { + actual->siguiente=borrar(actual->siguiente, valor); + } + } + return actual; +} + +/** + * @brief Esta función imprime la lista final. + * + * @param actual + */ +void imprimir(petPtr actual) +{ + if (actual==NULL) + { + printf("No hay elementos aún"); + } + else + { + printf("\nLista:\n"); + while (actual!=NULL) + { + printf("%d\n", actual->edad); + actual=actual->siguiente; + } + } + +} \ No newline at end of file diff --git a/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-Racionales.c b/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-Racionales.c new file mode 100644 index 0000000..a34c865 --- /dev/null +++ b/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-Racionales.c @@ -0,0 +1,265 @@ +/** + * @file Ada6-Racionales.c + * @author Giovanni Quintal + * @brief + * @version 0.1 + * @date 2020-04-01 + * + * @copyright Copyright (c) 2020 + * + */ +#include + +typedef struct racional{ + int numerador; + int denominador; +}racional; + +/** +* @brief Se inicializan los prototipos de las funciones +*/ +void leerRacionales(racional *, racional *); +racional sumarRacionales(racional, racional ); +racional restarRacionales(racional, racional ); +racional multiplicarRacionales(racional, racional); +racional dividirRacionales(racional, racional); +void simplificarRacionales(racional *); +void imprimirRacionales(racional, racional, racional, racional); + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + * para el algoritmo. Tambien contiene las funciones de la entrada, proceso y la salida. + * @return racional + */ +int main(){ + racional r1, r2, r3, r4, r5, r6; + + leerRacionales(&r1, &r2); + r3 = sumarRacionales(r1, r2); + r4 = restarRacionales(r1, r2); + r5 = multiplicarRacionales(r1, r2); + r6 = dividirRacionales(r1, r2); + imprimirRacionales(r3, r4, r5, r6); + + return 0; +} + +/** + * @brief La función leerRacionales se encarga de pedir los valores para las variables correspondientes. + * + * @param r1 + * @param r2 + */ +void leerRacionales(racional *r1, racional *r2) +{ + int numerador1, denominador1, numerador2, denominador2; + printf("Primer numerador: "); + scanf("%d", &numerador1); + printf("Primer denominador: "); + scanf("%d", &denominador1); + printf("Segundo numerador: "); + scanf("%d", &numerador2); + printf("Segundo denominador: "); + scanf("%d", &denominador2); + + r1->numerador=numerador1; + r1->denominador=denominador1; + r2->numerador=numerador2; + r2->denominador=denominador2; +} + +/** + * @brief En esta función se suma los racionales. + * @param r1 + * @param r2 + * @return racional + */ +racional sumarRacionales(racional r1, racional r2) +{ + racional result; + int numerador, denominador, d1, d2, MCM; + + d1=r1.denominador; + d2=r2.denominador; + + if (d1%d2==0 || d2%d1==0) + { + if (d1>d2) + { + MCM=d1; + } + else + { + MCM=d2; + } + } + else + { + MCM=d1*d2; + if (MCM%2==0) + { + if ((MCM/2)%d1==0 && (MCM/2)%d2==0) + { + MCM=MCM/2; + } + } + + } + + numerador = (r1.numerador*MCM/r1.denominador)+(r2.numerador*MCM/r2.denominador); + denominador = MCM; + + result.numerador = numerador; + result.denominador = denominador; + + simplificarRacionales(&result); + + return result; +} + +/** + * @brief En esta función se resta los racionales. + * + * @param r1 + * @param r2 + * @return racional + */ +racional restarRacionales(racional r1, racional r2) +{ + racional result; + int numerador, denominador, d1, d2, MCM; + + d1=r1.denominador; + d2=r2.denominador; + + if (d1%d2==0 || d2%d1==0) + { + if (d1>d2) + { + MCM=d1; + } + else + { + MCM=d2; + } + } + else + { + MCM=d1*d2; + if (MCM%2==0) + { + if ((MCM/2)%d1==0 && (MCM/2)%d2==0) + { + MCM=MCM/2; + } + } + + } + + numerador = (r1.numerador*MCM/r1.denominador)-(r2.numerador*MCM/r2.denominador); + denominador = MCM; + + result.numerador = numerador; + result.denominador = denominador; + + simplificarRacionales(&result); + + return result; +} + +/** + * @brief En esta función se multiplica los racionales. + * + * @param r1 + * @param r2 + * @return racional + */ +racional multiplicarRacionales(racional r1, racional r2) +{ + racional result; + int numerador, denominador; + + numerador = r1.numerador*r2.numerador; + denominador = r1.denominador*r2.denominador; + + result.numerador=numerador; + result.denominador=denominador; + + simplificarRacionales(&result); + + return result; +} + +/** + * @brief En esta función se divide los racionales. + * + * @param r1 + * @param r2 + * @return racional + */ +racional dividirRacionales(racional r1, racional r2) +{ + racional result; + int numerador, denominador; + + numerador = r1.numerador*r2.denominador; + denominador = r1.denominador*r2.numerador; + + result.numerador=numerador; + result.denominador=denominador; + + simplificarRacionales(&result); + + return result; +} + +/** + * @brief En esta función se simplifica los racionales. + * + * @param r1 + */ +void simplificarRacionales(racional *r1) +{ + int aux1=0, aux2=2; + + if(r1->numerador<0){ + r1->numerador = r1->numerador*(-1); + aux1++; + } + if(r1->denominador<0){ + r1->denominador = r1->denominador*(-1); + aux1++; + } + while (aux2<=r1->numerador && aux2<=r1->denominador) + { + if (r1->numerador%aux2==0 && r1->denominador%aux2==0) + { + r1->numerador=r1->numerador/aux2; + r1->denominador=r1->denominador/aux2; + } + else + { + aux2++; + } + } + if(aux1==1) + { + r1->numerador=r1->numerador*(-1); + } +} + +/** + * @brief En esta función se imprime todos los racionales. + * + * @param r3 + * @param r4 + * @param r5 + * @param r6 + */ +void imprimirRacionales(racional r3, racional r4, racional r5, racional r6) +{ + printf("SUMA: %d/%d \n", r3.numerador, r3.denominador); + printf("RESTA: %d/%d \n", r4.numerador, r4.denominador); + printf("MULTIPLICACION: %d/%d \n", r5.numerador, r5.denominador); + printf("DIVISION: %d/%d \n", r6.numerador, r6.denominador); +} \ No newline at end of file diff --git a/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-Sudoku.c b/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-Sudoku.c new file mode 100644 index 0000000..8820ef6 --- /dev/null +++ b/ADAs/Giovanni Quintal ADA/ADA 6/Ada6-Sudoku.c @@ -0,0 +1,159 @@ +/** + * @file Ada6-Sudoku.c + * @author Giovanni Quintal + * @brief + * @version 0.1 + * @date 2020-04-06 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +typedef struct tablero{ + int sudoku[3][3]; +}tablero; + +/** + * @brief Se inicializan los prototipos de las funciones + * + * @param tableroMenor + */ +void asignarSudokuRamdom(tablero tableroMenor[][3]); +void imprimirSudoku(tablero tableroMenor[][3]); +void revisarTablerosMenores(tablero tableroMenor[][3], int*CTL); +void revisarAllFilas(tablero tableroMenor[][3], int*CTL); +void revisarAllColumnas(tablero tableroMenor[][3], int*CTL); +void imprimirConfirmacion(int CTL); + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + * para el algoritmo. Tambien contiene las funciones de la entrada, proceso y la salida. + * + * @return int + */ +int main(){ + + int CTL=1; + tablero tableroMenor[3][3]; + + asignarSudokuRamdom(tableroMenor); + imprimirSudoku(tableroMenor); + revisarTablerosMenores(tableroMenor,&CTL); + revisarAllFilas(tableroMenor,&CTL); + revisarAllColumnas(tableroMenor,&CTL); + imprimirConfirmacion(CTL); +} + +/** + * @brief Se crea el Sudoku con dimension de 9x9. + * + * @param tableroMenor + */ +void asignarSudokuRamdom(tablero tableroMenor[][3]){ + time_t t; + srand((unsigned) time(&t)); + for(int i=0;i<3;i++){ + for(int k=0;k<3;k++){ + for(int j=0;j<3;j++){ + for(int l=0;l<3;l++){ + tableroMenor[i][j].sudoku[k][l]=rand()%10; + } + } + } + } +} + +/** + * @brief Se revisan los 9 tableros menores y asi con la variable CTL se sepa si se repite algún numero. + * + * @param tableroMenor + * @param CTL + */ +void revisarTablerosMenores(tablero tableroMenor[][3], int*CTL){ + int contador; + for(int i=0;i<3;i++){ + for(int j=0;j<3;j++){ + contador=0; + for(int k=0;k<3;k++){ + for(int l=0;l<3;l++){ + if(tableroMenor[i][j].sudoku[i][j]==tableroMenor[i][j].sudoku[k][l]){ + contador++; + } + } + if(contador>0){ + *CTL=0; + } + } + } + } +} + +/** + * @brief Se revisan los 9 filas y asi con la variable CTL se sepa si se repite algún numero. + * + * @param tableroMenor + * @param CTL + */ +void revisarAllFilas(tablero tableroMenor[][3], int*CTL){ + for(int i=0;i<3;i++){ + for(int j=0;j<3;j++){ + for(int k=0;k<3;k++){ + if(tableroMenor[0][j].sudoku[i][j]==tableroMenor[1][j].sudoku[k][j] || tableroMenor[0][j].sudoku[i][j]==tableroMenor[2][j].sudoku[k][j]){ + *CTL=0; + } + } + } + } +} + +/** + * @brief Se revisan los 9 columnas y asi con la variable CTL se sepa si se repite algún numero. + * + * @param tableroMenor + * @param CTL + */ +void revisarAllColumnas(tablero tableroMenor[][3], int*CTL){ + for(int i=0;i<3;i++){ + for(int j=0;j<3;j++){ + for(int l=0;l<3;l++){ + if(tableroMenor[i][0].sudoku[i][j]==tableroMenor[i][1].sudoku[i][l] || tableroMenor[i][0].sudoku[i][j]==tableroMenor[i][2].sudoku[i][l]){ + *CTL=0; + } + } + } + } +} + +/** + * @brief Se imprime el sudoku completo. + * + * @param tableroMenor + */ +void imprimirSudoku(tablero tableroMenor[][3]){ + for(int i=0;i<3;i++){ + for(int k=0;k<3;k++){ + for(int j=0;j<3;j++){ + for(int l=0;l<3;l++){ + printf("%d ",tableroMenor[i][j].sudoku[k][l]); + } + } + printf("\n"); + } + } +} + +/** + * @brief Se verifica si es un sudoku. + * + * @param CTL + */ +void imprimirConfirmacion(int CTL){ + if (CTL==0){ + printf("\n No es un sudoku--^"); + } else { + printf("\n Es un sudoku--^"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/.vscode/c_cpp_properties.json b/ADAs/Greene/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..eec713c --- /dev/null +++ b/ADAs/Greene/.vscode/c_cpp_properties.json @@ -0,0 +1,20 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE" + ], + "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/cl.exe", + "cStandard": "c11", + "cppStandard": "c++17", + "intelliSenseMode": "msvc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Ejercicio26Marzo/Ejercicio26Marzo.c b/ADAs/Greene/ADA4/Ejercicio26Marzo/Ejercicio26Marzo.c new file mode 100644 index 0000000..bf34a5c --- /dev/null +++ b/ADAs/Greene/ADA4/Ejercicio26Marzo/Ejercicio26Marzo.c @@ -0,0 +1,152 @@ +/** + * @file recorrerMatriz1-2Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que imprime la zona 2-4 0 1-3 de una matriz de NxN según a elección del usuario + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void elegirFuncion(int arr[][N]); +void recorrerMatriz2_4(int arr[][N]); +void recorrerMatriz1_3(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + elegirFuncion(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=N-1 && i>=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + else + { + printf("\t"); + } + + } + printf("\n"); + } +} + +/** + * @brief Función que imprime la zona 1-3 de la matriz + * + * @param arr + */ +void recorrerMatriz1_3(int arr[][N]) +{ + int aux; + for(int i=0; i=j && aux<=N-1) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + else if (aux>=N-1 && i<=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + else + { + printf("\t"); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Ejercicio26Marzo/Ejercicio26Marzo.exe b/ADAs/Greene/ADA4/Ejercicio26Marzo/Ejercicio26Marzo.exe new file mode 100644 index 0000000..ae7e74b Binary files /dev/null and b/ADAs/Greene/ADA4/Ejercicio26Marzo/Ejercicio26Marzo.exe differ diff --git a/ADAs/Greene/ADA4/No visual/recorrerDiagonalInvertida.c b/ADAs/Greene/ADA4/No visual/recorrerDiagonalInvertida.c new file mode 100644 index 0000000..47887db --- /dev/null +++ b/ADAs/Greene/ADA4/No visual/recorrerDiagonalInvertida.c @@ -0,0 +1,72 @@ +/** + * @file recorrerDiagonalInvertida.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la diagonal inversa y no visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerDiagonalInvertida(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerDiagonalInvertida(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerDiagonalPrincipal(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerDiagonalPrincipal(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1_2Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1_2Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1_2Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1_2Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j = 0; j<(N-i); j++) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/No visual/recorrerMatriz1-4Ascendente.c b/ADAs/Greene/ADA4/No visual/recorrerMatriz1-4Ascendente.c new file mode 100644 index 0000000..a1f8346 --- /dev/null +++ b/ADAs/Greene/ADA4/No visual/recorrerMatriz1-4Ascendente.c @@ -0,0 +1,74 @@ +/** + * @file recorrerMatriz1-4Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 1 a 4 forma ascendente y no visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1_4Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1_4Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1_4Desscendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1_4Desscendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j = 0; j<=i; j++) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/No visual/recorrerMatriz1Ascendente.c b/ADAs/Greene/ADA4/No visual/recorrerMatriz1Ascendente.c new file mode 100644 index 0000000..e207653 --- /dev/null +++ b/ADAs/Greene/ADA4/No visual/recorrerMatriz1Ascendente.c @@ -0,0 +1,78 @@ +/** + * @file recorrerMatriz1Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 1 forma ascendente y no visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/No visual/recorrerMatriz1Descendente.c b/ADAs/Greene/ADA4/No visual/recorrerMatriz1Descendente.c new file mode 100644 index 0000000..e49f949 --- /dev/null +++ b/ADAs/Greene/ADA4/No visual/recorrerMatriz1Descendente.c @@ -0,0 +1,78 @@ +/** + * @file recorrerMatriz1Descendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 1 forma descendente y no visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j=0; j<=(N-i-1); j++) + { + if (i>=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/No visual/recorrerMatriz2-3Ascendente.c b/ADAs/Greene/ADA4/No visual/recorrerMatriz2-3Ascendente.c new file mode 100644 index 0000000..d5741ad --- /dev/null +++ b/ADAs/Greene/ADA4/No visual/recorrerMatriz2-3Ascendente.c @@ -0,0 +1,75 @@ +/** + * @file recorrerMatriz2-3Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 2 a 3 forma ascendente y no visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz2_3Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz2_3Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz2_3Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz2_3Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j = i; j +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz2Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz2Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz2Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz2Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j=0; j<=(N-i-1); j++) + { + if (i<=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/No visual/recorrerMatriz3-4Ascendente.c b/ADAs/Greene/ADA4/No visual/recorrerMatriz3-4Ascendente.c new file mode 100644 index 0000000..98000d8 --- /dev/null +++ b/ADAs/Greene/ADA4/No visual/recorrerMatriz3-4Ascendente.c @@ -0,0 +1,75 @@ +/** + * @file recorrerMatriz3-4Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 3 a 4 de forma ascendente y no visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz3_4Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz3_4Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz3_4Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz3_4Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j = (N-i-1); j +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz3Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz3Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=N-1) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/No visual/recorrerMatriz3Descendente.c b/ADAs/Greene/ADA4/No visual/recorrerMatriz3Descendente.c new file mode 100644 index 0000000..b0364cc --- /dev/null +++ b/ADAs/Greene/ADA4/No visual/recorrerMatriz3Descendente.c @@ -0,0 +1,80 @@ +/** + * @file recorrerMatriz2Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 3 de forma descendente y no visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz3Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz3Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j=0; j=N-1) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/No visual/recorrerMatriz4Ascendente.c b/ADAs/Greene/ADA4/No visual/recorrerMatriz4Ascendente.c new file mode 100644 index 0000000..030a6d8 --- /dev/null +++ b/ADAs/Greene/ADA4/No visual/recorrerMatriz4Ascendente.c @@ -0,0 +1,78 @@ +/** + * @file recorrerMatriz2Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 4 de forma ascendente y no visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz4Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz4Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/No visual/recorrerMatriz4Descendente.c b/ADAs/Greene/ADA4/No visual/recorrerMatriz4Descendente.c new file mode 100644 index 0000000..d84798a --- /dev/null +++ b/ADAs/Greene/ADA4/No visual/recorrerMatriz4Descendente.c @@ -0,0 +1,78 @@ +/** + * @file recorrerMatriz2Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 4 de forma descendente y no visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz4Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz4Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j=N-i-1; j=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Visual/recorrerDiagonalInvertida.c b/ADAs/Greene/ADA4/Visual/recorrerDiagonalInvertida.c new file mode 100644 index 0000000..dc42a19 --- /dev/null +++ b/ADAs/Greene/ADA4/Visual/recorrerDiagonalInvertida.c @@ -0,0 +1,76 @@ +/** + * @file recorrerDiagonalInvertida.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la diagonal inversa de forma visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerDiagonalInvertida(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerDiagonalInvertida(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerDiagonalPrincipal(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerDiagonalPrincipal(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1_2Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1_2Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1_2Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1_2Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j = 0; j<(N-i); j++) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Visual/recorrerMatriz1-4Ascendente.c b/ADAs/Greene/ADA4/Visual/recorrerMatriz1-4Ascendente.c new file mode 100644 index 0000000..f6f4e19 --- /dev/null +++ b/ADAs/Greene/ADA4/Visual/recorrerMatriz1-4Ascendente.c @@ -0,0 +1,75 @@ +/** + * @file recorrerMatriz1-4Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 1 a 4 forma ascendente de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1_4Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1_4Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1_4Desscendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1_4Desscendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j = 0; j<=i; j++) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Visual/recorrerMatriz1Ascendente.c b/ADAs/Greene/ADA4/Visual/recorrerMatriz1Ascendente.c new file mode 100644 index 0000000..579de3d --- /dev/null +++ b/ADAs/Greene/ADA4/Visual/recorrerMatriz1Ascendente.c @@ -0,0 +1,78 @@ +/** + * @file recorrerMatriz1Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 1 forma ascendente y visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Visual/recorrerMatriz1Descendente.c b/ADAs/Greene/ADA4/Visual/recorrerMatriz1Descendente.c new file mode 100644 index 0000000..2acc04c --- /dev/null +++ b/ADAs/Greene/ADA4/Visual/recorrerMatriz1Descendente.c @@ -0,0 +1,78 @@ +/** + * @file recorrerMatriz1Descendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 1 forma descendente y visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz1Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz1Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j=0; j<=(N-i-1); j++) + { + if (i>=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Visual/recorrerMatriz2-3Ascendente.c b/ADAs/Greene/ADA4/Visual/recorrerMatriz2-3Ascendente.c new file mode 100644 index 0000000..2f750e4 --- /dev/null +++ b/ADAs/Greene/ADA4/Visual/recorrerMatriz2-3Ascendente.c @@ -0,0 +1,79 @@ +/** + * @file recorrerMatriz2-3Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 2 a 3 forma ascendente y visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz2_3Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz2_3Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz2_3Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz2_3Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int y = 0; y +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz2Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz2Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz2Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz2Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j=0; j<=(N-i-1); j++) + { + if (i<=j) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + else + { + printf("\t"); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Visual/recorrerMatriz3-4Ascendente.c b/ADAs/Greene/ADA4/Visual/recorrerMatriz3-4Ascendente.c new file mode 100644 index 0000000..baa85a7 --- /dev/null +++ b/ADAs/Greene/ADA4/Visual/recorrerMatriz3-4Ascendente.c @@ -0,0 +1,79 @@ +/** + * @file recorrerMatriz3-4Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 3 a 4 de forma ascendente y visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz3_4Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz3_4Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz3_4Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz3_4Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int y = 0; y <(N-1-i); y++) + { + printf("\t"); + } + for (int j = (N-i-1); j +#include +#include + +//Se define el valor de N como constante +#define N 5 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz3Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz3Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=N-1) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + else if(j>=(N-1)/2) + { + printf("\t"); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Visual/recorrerMatriz3Descendente.c b/ADAs/Greene/ADA4/Visual/recorrerMatriz3Descendente.c new file mode 100644 index 0000000..46d7d29 --- /dev/null +++ b/ADAs/Greene/ADA4/Visual/recorrerMatriz3Descendente.c @@ -0,0 +1,84 @@ +/** + * @file recorrerMatriz2Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 3 de forma descendente y visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz3Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz3Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j=0; j=N-1) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + else if(j>=(N-1)/2) + { + printf("\t"); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Visual/recorrerMatriz4Ascendente.c b/ADAs/Greene/ADA4/Visual/recorrerMatriz4Ascendente.c new file mode 100644 index 0000000..0c5ef68 --- /dev/null +++ b/ADAs/Greene/ADA4/Visual/recorrerMatriz4Ascendente.c @@ -0,0 +1,84 @@ +/** + * @file recorrerMatriz2Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 4 de forma ascendente y visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz4Ascendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz4Ascendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=j && aux>=N-1) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + else if(i>=(N-1)/2) + { + printf("\t"); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA4/Visual/recorrerMatriz4Descendente.c b/ADAs/Greene/ADA4/Visual/recorrerMatriz4Descendente.c new file mode 100644 index 0000000..4a5de92 --- /dev/null +++ b/ADAs/Greene/ADA4/Visual/recorrerMatriz4Descendente.c @@ -0,0 +1,84 @@ +/** + * @file recorrerMatriz2Ascendente.c + * @author Carlos Enrique Greene Mex (greenecarlos17@gmail.com) + * @brief Programa que recorre la zona 4 de forma descendente y visual de una matriz de NxN + * @version 0.1 + * @date 2020-03-22 + * + * @copyright Copyright (c) 2020 + * + */ +#include +#include +#include + +//Se define el valor de N como constante +#define N 3 + +/** + * @brief Prototipos de las funciones + * + * @param arr + */ +void asignarArreglo(int arr[][N]); +void recorrerMatriz4Descendente(int arr[][N]); + +/** + * @brief Main donde inicia el programa + * + */ +int main() +{ + int arreglo[N][N]; + time_t t; + + srand((unsigned) time(&t)); + + asignarArreglo(arreglo); + + recorrerMatriz4Descendente(arreglo); + + return 0; +} + +/** + * @brief Función donde asigna los valores que va contener la matriz + * + * @param arr + */ +void asignarArreglo(int arr[][N]) +{ + for(int i=0; i=0; i--) + { + for (int j=0; j=j && aux>=N-1) + { + printf("%d,%d: %d\t", i, j, arr[i][j]); + } + else if(i>=(N-1)/2) + { + printf("\t"); + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA6/.vscode/c_cpp_properties.json b/ADAs/Greene/ADA6/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..603770a --- /dev/null +++ b/ADAs/Greene/ADA6/.vscode/c_cpp_properties.json @@ -0,0 +1,20 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE" + ], + "compilerPath": "C:/MinGW/bin/gcc.exe", + "cStandard": "c11", + "cppStandard": "c++17", + "intelliSenseMode": "gcc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/ADAs/Greene/ADA6/Ada6-Listas.c b/ADAs/Greene/ADA6/Ada6-Listas.c new file mode 100644 index 0000000..d341050 --- /dev/null +++ b/ADAs/Greene/ADA6/Ada6-Listas.c @@ -0,0 +1,137 @@ +#include +#include +#include + +typedef struct animal +{ + int edad; + struct animal* siguiente; +}Animal; +typedef Animal *AnimalPtr; + +void insertarOrdenado(AnimalPtr*, int); +AnimalPtr borrar(AnimalPtr, int); +void imprimir(AnimalPtr); +void menu(); + +int main() +{ + AnimalPtr lista=NULL; + int _edad, opcion; + bool aux=false; + + do + { + menu(); + scanf("%d", &opcion); + + switch (opcion) + { + case 1: + scanf("%d", &_edad); + insertarOrdenado(&lista, _edad); + break; + + case 2: + scanf("%d", &_edad); + lista = borrar(lista, _edad); + break; + + case 3: + imprimir(lista); + break; + + default: + aux=true; + break; + } + + } while (aux==false); + return 0; +} + +void menu() +{ + printf("Menú\n"); + printf("Elige uno de las opciones de acuerdo a su numero para realizar una accion\n"); + printf("1.\tInsertar un elemento\n"); + printf("2.\tBorrar un elemento\n"); + printf("3.\tImprimir la lista\n"); + printf("Para cerrar el programa preciona otro botón\n"); +} + +void insertarOrdenado(AnimalPtr *sPtr, int valor) +{ + AnimalPtr nuevo; + AnimalPtr anterior; + AnimalPtr actual; + + nuevo = (Animal*)malloc(sizeof(Animal)); + if (nuevo!=NULL) + { + nuevo->edad=valor; + nuevo->siguiente= NULL; + + anterior=NULL; + actual=*sPtr; + + while (actual!=NULL && valor>actual->edad) + { + anterior=actual; + actual=actual->siguiente; + } + + if (anterior==NULL) + { + nuevo->siguiente=*sPtr; + *sPtr=nuevo; + } + else + { + anterior->siguiente=nuevo; + nuevo->siguiente=actual; + } + } + else + { + printf("Sorry men"); + } + +} + +AnimalPtr borrar(AnimalPtr actual, int valor) +{ + AnimalPtr paraBorrar = NULL; + if (actual!=NULL) + { + if (actual->edad==valor) + { + paraBorrar=actual; + actual=actual->siguiente; + free(paraBorrar); + } + else + { + actual->siguiente=borrar(actual->siguiente, valor); + } + } + return actual; +} + +void imprimir(AnimalPtr actual) +{ + if (actual==NULL) + { + printf("Sorry men, no hay elementos"); + } + else + { + printf("Imprimir lista\n"); + while (actual!=NULL) + { + printf("%d\n", actual->edad); + actual=actual->siguiente; + } + } + +} \ No newline at end of file diff --git a/ADAs/Greene/ADA6/Ada6-Listas.exe b/ADAs/Greene/ADA6/Ada6-Listas.exe new file mode 100644 index 0000000..7d50a9b Binary files /dev/null and b/ADAs/Greene/ADA6/Ada6-Listas.exe differ diff --git a/ADAs/Greene/ADA6/Ada6-ListasBusquedaBinaria.c b/ADAs/Greene/ADA6/Ada6-ListasBusquedaBinaria.c new file mode 100644 index 0000000..a94b6a1 --- /dev/null +++ b/ADAs/Greene/ADA6/Ada6-ListasBusquedaBinaria.c @@ -0,0 +1,246 @@ +#include +#include +#include + +typedef struct animal +{ + int edad; + struct animal* siguiente; +}Animal; +typedef Animal *AnimalPtr; + +void menu(int *); +void leerParaInsertar(int*); +void insertarOrdenado(AnimalPtr*, int); +void leerParaBorrar(int*); +AnimalPtr borrar(AnimalPtr, int); +void imprimirLista(AnimalPtr); +void busquedaBinaria(AnimalPtr); +void leerParaBusqueda(int *); +int totalNodos(AnimalPtr); +int compareTo(AnimalPtr, int, int); +void imprimirBusqueda(int, int); + + +int main() +{ + AnimalPtr lista=NULL; + int _edad, opcion; + bool aux=false; + + do + { + menu(&opcion); + + switch (opcion) + { + case 1: + leerParaInsertar(&_edad); + insertarOrdenado(&lista, _edad); + break; + + case 2: + leerParaBorrar(&_edad); + lista = borrar(lista, _edad); + break; + + case 3: + imprimirLista(lista); + break; + + case 4: + busquedaBinaria(lista); + break; + + default: + aux=true; + break; + } + + } while (aux==false); + return 0; +} + +void menu(int *opcion) +{ + printf("Menú\n"); + printf("Elige uno de las opciones de acuerdo a su numero para realizar una accion\n"); + printf("1.\tInsertar un elemento\n"); + printf("2.\tBorrar un elemento\n"); + printf("3.\tImprimir la lista\n"); + printf("Para cerrar el programa preciona otro botón\n"); + scanf("%d", opcion); +} + +void leerParaInsertar(int *_edad) +{ + printf("\nIntroduce el dato que quieras insertar"); + scanf("%d", _edad); +} + +void insertarOrdenado(AnimalPtr *sPtr, int valor) +{ + AnimalPtr nuevo; + AnimalPtr anterior; + AnimalPtr actual; + + nuevo = (Animal*)malloc(sizeof(Animal)); + if (nuevo!=NULL) + { + nuevo->edad=valor; + nuevo->siguiente= NULL; + + anterior=NULL; + actual=*sPtr; + + while (actual!=NULL && valor>actual->edad) + { + anterior=actual; + actual=actual->siguiente; + } + + if (anterior==NULL) + { + nuevo->siguiente=*sPtr; + *sPtr=nuevo; + } + else + { + anterior->siguiente=nuevo; + nuevo->siguiente=actual; + } + } + else + { + printf("\nSorry men"); + } +} + +void leerParaBorrar(int *_edad) +{ + printf("\nIntroduce el dato que quieras borrar"); + scanf("%d", _edad); +} + +AnimalPtr borrar(AnimalPtr actual, int valor) +{ + AnimalPtr paraBorrar = NULL; + if (actual!=NULL) + { + if (actual->edad==valor) + { + paraBorrar=actual; + actual=actual->siguiente; + free(paraBorrar); + } + else + { + actual->siguiente=borrar(actual->siguiente, valor); + } + } + return actual; +} + +void imprimirLista(AnimalPtr actual) +{ + if (actual==NULL) + { + printf("\nSorry men, no hay elementos\n"); + } + else + { + printf("Imprimir lista\n"); + while (actual!=NULL) + { + printf("%d\n", actual->edad); + actual=actual->siguiente; + } + } + +} + +void busquedaBinaria(AnimalPtr nptr) +{ + int derecha, izquierda=0, mitad, _edad, resultado, aux=0, numNodo; + + derecha=totalNodos(nptr); + + leerParaBusqueda(&_edad); + + while (izquierda<=derecha) + { + mitad=(izquierda+derecha)/2; + resultado=compareTo(nptr, _edad, mitad); + + if (resultado==0) + { + numNodo=mitad; + aux=1; + break; + } + else if (resultado==1) + { + izquierda=derecha+1; + } + else if (resultado==-1) + { + derecha=mitad-1; + } + } + imprimirBusqueda(numNodo, aux); +} + +int compareTo(AnimalPtr nptr, int _edad, int mitad) +{ + int resultado; + + for(int i=0; isiguiente; + } + + if (_edad==nptr->edad) + { + resultado=0; + } + else if (_edad>nptr->edad) + { + resultado=1; + } + else + { + resultado=-1; + } + + return resultado; +} + +void leerParaBusqueda(int *_edad) +{ + printf("Introduce la edad que buscas:"); + scanf("%d", _edad); +} + +int totalNodos(AnimalPtr nodo) +{ + int cont=0; + + while (nodo->siguiente!=NULL) + { + cont++; + nodo=nodo->siguiente; + } + return cont; +} + +void imprimirBusqueda(_numNodo, _aux) +{ + if (_aux==0) + { + printf("\nNo existe el dato que buscas"); + } + else + { + printf("\nEl dato esta en el nodo %d", _numNodo); + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA6/Ada6-Racionales.c b/ADAs/Greene/ADA6/Ada6-Racionales.c new file mode 100644 index 0000000..99cad6e --- /dev/null +++ b/ADAs/Greene/ADA6/Ada6-Racionales.c @@ -0,0 +1,198 @@ +#include + +typedef struct racional{ + int numerador; + int denominador; +}racional; + +void leerRacional(racional *, racional *); +racional sumarRacional(racional, racional ); +racional restarRacionales(racional, racional ); +racional multiplicarRacionales(racional, racional); +racional dividirRacionales(racional, racional); +void simplificarRacional(racional *); +void imprimirRacional(racional, racional, racional, racional); + +int main(){ + racional r1, r2, r3, r4, r5, r6; + + leerRacional(&r1, &r2); + r3 = sumarRacional(r1, r2); + r4 = restarRacionales(r1, r2); + r5 = multiplicarRacionales(r1, r2); + r6 = dividirRacionales(r1, r2); + imprimirRacional(r3, r4, r5, r6); + + return 0; +} + +void leerRacional(racional *r1, racional *r2) +{ + int numerador1, denominador1, numerador2, denominador2; + scanf("%d", &numerador1); + scanf("%d", &denominador1); + scanf("%d", &numerador2); + scanf("%d", &denominador2); + + r1->numerador=numerador1; + r1->denominador=denominador1; + r2->numerador=numerador2; + r2->denominador=denominador2; + +} + +racional sumarRacional(racional r1, racional r2) +{ + racional resultados; + int numerador, denominador, d1, d2, mcm; + + d1=r1.denominador; + d2=r2.denominador; + + if (d1%d2==0 || d2%d1==0) + { + if (d1>d2) + { + mcm=d1; + } + else + { + mcm=d2; + } + } + else + { + mcm=d1*d2; + if (mcm%2==0) + { + if ((mcm/2)%d1==0 && (mcm/2)%d2==0) + { + mcm==mcm/2; + } + } + + } + + numerador = (r1.numerador*mcm/r1.denominador)+(r2.numerador*mcm/r2.denominador); + denominador = mcm; + + resultados.numerador = numerador; + resultados.denominador = denominador; + + simplificarRacional(&resultados); + + return resultados; +} + +racional restarRacionales(racional r1, racional r2) +{ + racional resultados; + int numerador, denominador, d1, d2, mcm; + + d1=r1.denominador; + d2=r2.denominador; + + if (d1%d2==0 || d2%d1==0) + { + if (d1>d2) + { + mcm=d1; + } + else + { + mcm=d2; + } + } + else + { + mcm=d1*d2; + if (mcm%2==0) + { + if ((mcm/2)%d1==0 && (mcm/2)%d2==0) + { + mcm==mcm/2; + } + } + + } + + numerador = (r1.numerador*mcm/r1.denominador)-(r2.numerador*mcm/r2.denominador); + denominador = mcm; + + resultados.numerador = numerador; + resultados.denominador = denominador; + + simplificarRacional(&resultados); + + return resultados; +} + +racional multiplicarRacionales(racional r1, racional r2) +{ + racional resultados; + int numerador, denominador; + + numerador = r1.numerador*r2.numerador; + denominador = r1.denominador*r2.denominador; + + resultados.numerador=numerador; + resultados.denominador=denominador; + + simplificarRacional(&resultados); + + return resultados; +} + +racional dividirRacionales(racional r1, racional r2) +{ + racional resultados; + int numerador, denominador; + + numerador = r1.numerador*r2.denominador; + denominador = r1.denominador*r2.numerador; + + resultados.numerador=numerador; + resultados.denominador=denominador; + + simplificarRacional(&resultados); + + return resultados; +} + +void simplificarRacional(racional *r1) +{ + int aux1=0, aux2=2; + + if(r1->numerador<0){ + r1->numerador = r1->numerador*(-1); + aux1++; + } + if(r1->denominador<0){ + r1->denominador = r1->denominador*(-1); + aux1++; + } + while (aux2<=r1->numerador && aux2<=r1->denominador) + { + if (r1->numerador%aux2==0 && r1->denominador%aux2==0) + { + r1->numerador=r1->numerador/aux2; + r1->denominador=r1->denominador/aux2; + } + else + { + aux2++; + } + } + if(aux1==1) + { + r1->numerador=r1->numerador*(-1); + } +} + +void imprimirRacional(racional r3, racional r4, racional r5, racional r6) +{ + printf("%d/%d \n", r3.numerador, r3.denominador); + printf("%d/%d \n", r4.numerador, r4.denominador); + printf("%d/%d \n", r5.numerador, r5.denominador); + printf("%d/%d \n", r6.numerador, r6.denominador); +} \ No newline at end of file diff --git a/ADAs/Greene/ADA6/Ada6-Racionales.exe b/ADAs/Greene/ADA6/Ada6-Racionales.exe new file mode 100644 index 0000000..27fb8e2 Binary files /dev/null and b/ADAs/Greene/ADA6/Ada6-Racionales.exe differ diff --git a/ADAs/Greene/ADA6/Ada6-Sudoku.c b/ADAs/Greene/ADA6/Ada6-Sudoku.c new file mode 100644 index 0000000..766315b --- /dev/null +++ b/ADAs/Greene/ADA6/Ada6-Sudoku.c @@ -0,0 +1,140 @@ +#include +#include +#include +#include + +typedef struct tableroMenor +{ + int matriz[3][3]; +} tableroMenor; + +typedef struct sudoku +{ + tableroMenor tableroCompleto[3][3]; +} sudoku; + +void asignarValores(sudoku *); +bool verificadorMatriz(int, int _matriz[][3], int, int); +bool verificadorLineas(int, int _seudoMatriz[][9], int, int); +bool verificadorColumnas(int, int _seudoMatriz[][9], int, int); +void imprimirSudoku(sudoku); + +int main() +{ + sudoku sudoku; + time_t t; + + srand((unsigned) time(&t)); + + asignarValores(&sudoku); + + imprimirSudoku(sudoku); + + return 0; +} + +void asignarValores(sudoku *_sudoku) +{ + int aux1, seudoSudoku[9][9]; + bool aux2, aux3, aux4; + for(int i=0; i<3; i++) + { + for (int j=0; j<3; j++) + { + for (int x = 0; x < 3; x++) + { + for (int y = 0; y < 3; y++) + { + do + { + aux1=1+rand() %9; + seudoSudoku[x+i*3][y+j*3]=aux1; + _sudoku->tableroCompleto[i][j].matriz[x][y]=aux1; + aux2=verificadorMatriz(aux1, _sudoku->tableroCompleto[i][j].matriz, x, y); + aux3=verificadorLineas(aux1, seudoSudoku, x+i*3, y+j*3); + aux4=verificadorColumnas(aux1, seudoSudoku, x+i*3, y); + } while (aux2==false || aux3==false || aux4==false); + } + } + } + } +} + +bool verificadorMatriz(int num, int _matriz[][3], int x, int y) +{ + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { + if (num==_matriz[i][j]) + { + if (i==x && j==y) + { + return true; + } + else + { + return false; + } + + } + } + } +} + +bool verificadorLineas(int num, int _seudoMatriz[][9], int x, int y) +{ + for (int i = 0; i < 9; i++) + { + if (num==_seudoMatriz[i][y]) + { + if (x==i) + { + return true; + } + else + { + return false; + } + + } + } +} + +bool verificadorColumnas(int num, int _seudoMatriz[][9], int x, int y) +{ + for (int i = 0; i < 9; i++) + { + if (num==_seudoMatriz[x][i]) + { + if (y==i) + { + return true; + } + else + { + return false; + } + + } + } +} + + +void imprimirSudoku(sudoku _sudoku) +{ + for(int i=0; i<3; i++) + { + for (int j=0; j<3; j++) + { + for (int x=0; x<3; x++) + { + for (int y=0; y<3; y++) + { + printf("%d\t", _sudoku.tableroCompleto[i][x].matriz[j][y]); + } + } + printf("\n"); + } + } +} \ No newline at end of file diff --git a/ADAs/Greene/ADA6/Ada6-Sudoku.exe b/ADAs/Greene/ADA6/Ada6-Sudoku.exe new file mode 100644 index 0000000..fbd3950 Binary files /dev/null and b/ADAs/Greene/ADA6/Ada6-Sudoku.exe differ diff --git a/ADAs/Greene/Ejercicio30marzo.c b/ADAs/Greene/Ejercicio30marzo.c new file mode 100644 index 0000000..9c9641f --- /dev/null +++ b/ADAs/Greene/Ejercicio30marzo.c @@ -0,0 +1,191 @@ +#include + +struct racional{ + int numerador; + int denominador; +}; + +void leerRacional(struct racional *r1, struct racional *r2); +struct racional sumarRacional(struct racional r1, struct racional r2); +struct racional restarRacionales(struct racional r1, struct racional r2); +struct racional multiplicarRacionales(struct racional r1, struct racional r2); +struct racional dividirRacionales(struct racional r1, struct racional r2); +void simplificarRacional(struct racional *r1); +void imprimirRacional(struct racional r3, struct racional r4, struct racional r5, struct racional r6); + +main(){ + struct racional r1, r2, r3, r4, r5, r6; + + leerRacional(&r1, &r2); + r3 = sumarRacional(r1, r2); + r4 = restarRacionales(r1, r2); + r5 = multiplicarRacionales(r1, r2); + r6 = dividirRacionales(r1, r2); + imprimirRacional(r3, r4, r5, r6); + + return 0; +} + +void leerRacional(struct racional *r1, struct racional *r2) +{ + int numerador1, denominador1, numerador2, denominador2; + scanf("%d", &numerador1); + scanf("%d", &denominador1); + scanf("%d", &numerador2); + scanf("%d", &denominador2); + + r1->numerador=numerador1; + r1->denominador=denominador1; + r2->numerador=numerador2; + r2->denominador=denominador2; + +} + +struct racional sumarRacional(struct racional r1, struct racional r2) +{ + struct racional resultados; + int numerador, denominador, d1, d2, mcm; + + d1=r1.denominador; + d2=r2.denominador; + + if (d1%d2==0 || d2%d1==0) + { + if (d1>d2) + { + mcm=d1; + } + else + { + mcm=d2; + } + } + else + { + mcm=d1*d2; + if (mcm%2==0) + { + if ((mcm/2)%d1==0 && (mcm/2)%d2==0) + { + mcm==mcm/2; + } + } + } + + numerador = (r1.numerador*mcm/r1.denominador)+(r2.numerador*mcm/r2.denominador); + denominador = mcm; + + resultados.numerador = numerador; + resultados.denominador = denominador; + + simplificarRacional(&resultados); + + return resultados; +} + +struct racional restarRacionales(struct racional r1, struct racional r2) +{ + struct racional resultados; + int numerador, denominador, d1, d2, mcm; + + d1=r1.denominador; + d2=r2.denominador; + + if (d1%d2==0 || d2%d1==0) + { + if (d1>d2) + { + mcm=d1; + } + else + { + mcm=d2; + } + } + else + { + mcm=d1*d2; + if (mcm%2==0) + { + if ((mcm/2)%d1==0 && (mcm/2)%d2==0) + { + mcm==mcm/2; + } + } + + } + + numerador = (r1.numerador*mcm/r1.denominador)-(r2.numerador*mcm/r2.denominador); + denominador = mcm; + + resultados.numerador = numerador; + resultados.denominador = denominador; + + simplificarRacional(&resultados); + + return resultados; +} + +struct racional multiplicarRacionales(struct racional r1, struct racional r2) +{ + struct racional resultados; + int numerador, denominador; + + numerador = r1.numerador*r2.numerador; + denominador = r1.denominador*r2.denominador; + + simplificarRacional(&resultados); + + return resultados; +} + +struct racional dividirRacionales(struct racional r1, struct racional r2) +{ + struct racional resultados; + int numerador, denominador; + + numerador = r1.numerador*r2.denominador; + denominador = r1.denominador*r2.numerador; + + simplificarRacional(&resultados); + + return resultados; +} + +void simplificarRacional(struct racional *r1) +{ + int aux1=0, aux2=2; + + if(r1->numerador<0){ + r1->numerador = r1->numerador*(-1); + aux1++; + } + if(r1->denominador<0){ + r1->denominador = r1->denominador*(-1); + aux1++; + } + while (aux2<=r1->numerador && aux2<=r1->denominador) + { + if (r1->numerador%aux2==0 && r1->denominador%aux2==0) + { + r1->numerador=r1->numerador/aux2; + r1->denominador=r1->denominador/aux2; + } + else + { + aux2++; + } + } + if(aux1==1) + { + r1->numerador=r1->numerador*(-1); + } +} + +void imprimirRacional(struct racional r3, struct racional r4, struct racional r5, struct racional r6) +{ + printf("%d/%d \n", r3.numerador, r3.denominador); + printf("%d/%d \n", r4.numerador, r4.denominador); + printf("%d/%d \n", r5.numerador, r5.denominador); + printf("%d/%d \n", r6.numerador, r6.denominador); +} \ No newline at end of file diff --git a/Unidad 2-Estructuras de Control/Ejercicio04.c b/Unidad 2-Estructuras de Control/Ejercicio04.c new file mode 100644 index 0000000..06c28ed --- /dev/null +++ b/Unidad 2-Estructuras de Control/Ejercicio04.c @@ -0,0 +1,47 @@ +//Equipo4 +//Fecha 10/02/2020 +//Autor: Carlos Greene +//Programa que redondea un número a la centena próxima +//Entrada: Numero entero positivo +//Salida: Número redondeado a la centena próxima +#include + +int main() +{ + + int entrada = 0, r = 0, aux=0, salida = 0; + //entrada: número introducido, d: residuo de módulo 100, salida: número redondeado a la centena próximo, aux: Auxiliar + + scanf("%d", &entrada); //Se lee la entrada + aux = entrada; + + r = entrada%100; //Se hace módulo 100 de la entrada para obtener el residuo + + if(aux<0) + {//Si el auxiliar es negativo, se procede a volver positivo el residuo y la entrada + r = r*-1; + entrada = entrada*-1; + } + + //Proceso + if(r>=50) //Se compara si el residuo es mayor que 50 + { //Si es mayor a 50 entonces + salida = ((entrada/100)+1)*100; //Se divide la entrada entre 100, se suma 1 y se mutiplica por 100 + } //para rendear el número a centena mayor + else + { //Si es menor o igual a 20 + salida = (entrada/100)*100; //Se divide la entrada entre 100 y se divide entre 100 + } //para redondearlo a la centena menor + + + if(aux<0) + { //Si el auxiliar es negativo, se procede volver negativo la salida + salida = salida*-1; + } + + //Salida + printf("%d", salida); //Se imprime el número redondeado + + return 0; + +} \ No newline at end of file diff --git a/Unidad 2-Estructuras de Control/Ejercicio10.c b/Unidad 2-Estructuras de Control/Ejercicio10.c new file mode 100644 index 0000000..5b94425 --- /dev/null +++ b/Unidad 2-Estructuras de Control/Ejercicio10.c @@ -0,0 +1,19 @@ +//Equipo4 +//Autor:Jose Miron +//Programa que reciba un numero N y te de los primeros N multiplos de 7 +//Entrada: Numero entero +//Salida: Multiplos de 7 +#include + +int main() +{ //Entrada + int numMulti; //Entrada + scanf("%d", &numMulti);//Se lee numero de multiplos + + //Proceso + for(int i=7; i <=(7*numMulti); i+=7)//Ciclo para limite N + { //Salida, impresion de N multiplos + printf("%d \n", i); + } +return 0; +} diff --git a/Unidad 2-Estructuras de Control/Ejercicio10.cs b/Unidad 2-Estructuras de Control/Ejercicio10.cs index db4bfa7..69f4e2e 100644 --- a/Unidad 2-Estructuras de Control/Ejercicio10.cs +++ b/Unidad 2-Estructuras de Control/Ejercicio10.cs @@ -4,23 +4,23 @@ //Programa que recibe un numero N y da los primeros N multiplos de 7 //Entrada: Numero entero positivo //Salida: N multiplos enteros positivos de 7 -using system; -namespace Ejercicio10 +using System; + +namespace Contador { class Program { static void Main(string[] args) { + //Entrada int n; - - Console.WriteLine("Imprime numeros del 0 a n, de 7 en 7"); - - Console.WriteLine("Ingrese valor para n"); n =Convert.ToInt32(Console.ReadLine());//valor del numero de multiplos deseados - for (int i = 0; i <= (7*n); i += 7)//inicio en cero, 7 multiplicado por el valor de n, incrementador + //Proceso + for (int i = 7; i <= (7*n); i += 7)//inicio en cero, 7 multiplicado por el valor de n, incrementador { - Console.WriteLine("i= " + i);//Impresion de los multiplos de 7 segun n + //Salida + Console.WriteLine(i);//Impresion de los multiplos de 7 segun n } Console.ReadLine(); } diff --git a/Unidad 2-Estructuras de Control/Ejercicio16.c b/Unidad 2-Estructuras de Control/Ejercicio16.c new file mode 100644 index 0000000..f9c66bc --- /dev/null +++ b/Unidad 2-Estructuras de Control/Ejercicio16.c @@ -0,0 +1,19 @@ +//Equipo 4// +//Fecha: 02/02/2020// +//Un programa que calcule la media de una serie de números pósitivos leidos desde una terminal, donde al ingresar 0 se termina el ciclo de lectura de entradas// +#include + +int main(void) { + //Entrada// + float entrada = 0, salida = 0, cont = 0, sum = 0; + scanf_s("%f", &entrada); + //Proceso// + do { + cont = cont++;//se suma un ciclo al contador// + sum = sum + entrada;//se guarda el valor de la entrada en una variable para usarse mas tarde// + scanf_s("%f", &entrada); + } while (entrada <0|entrada>0); + salida = (sum / cont);//se realiza el calculo de la media// + //Salida// + printf("%f", salida); +} \ No newline at end of file diff --git a/Unidad 2-Estructuras de Control/Ejercicio16.cs b/Unidad 2-Estructuras de Control/Ejercicio16.cs index 82a8f8b..2c9917a 100644 --- a/Unidad 2-Estructuras de Control/Ejercicio16.cs +++ b/Unidad 2-Estructuras de Control/Ejercicio16.cs @@ -11,46 +11,23 @@ class Program static void Main(string[] args) { //Entrada// - double entrada = 0, salida = 0, cont = 0, sum = 0;; + double entrada = 0, salida = 0, cont = 0, sum = 0; //entrada: número pósitivo diferente de 0, salida: media de la serie de números ingresados// //cont: contador de ciclos realizados durante la ejecución del programa, sum: variable para almacenar el valor de la suma de todas las entradas// - Console.WriteLine("Por favor ingrese un número positivo, recuerde que cuando desee terminar la ejecución debera ingresar 0."); double.TryParse(Console.ReadLine(), out entrada);//se lee el número de entrada// //Proceso// while(entrada != 0) { - { - if(entrada > 0)//Se analiza si la entrada es un número pósitivo// - { - cont = cont + 1;//se suma un ciclo al contador// - sum = sum + entrada;//se guarda el valor de la entrada en una variable para usarse mas tarde// - Console.WriteLine("Número guardado, por favor ingrese otro número, recuerde que cuando desee terminar la ejecución debera ingresar 0."); - double.TryParse(Console.ReadLine(), out entrada);//se solicita otra entrada para continuar el ciclo// - } - else - { - Console.WriteLine("Número no valido, ingrese un número pósitivo por favor:");//si la entrada no espositiva, se solicita la entrada adecuada para el ciclo// - double.TryParse(Console.ReadLine(), out entrada); - cont = cont + 1; - sum = sum + entrada; - } - } - + cont = cont + 1;//se suma un ciclo al contador// + sum = sum + entrada;//se guarda el valor de la entrada en una variable para usarse mas tarde// + double.TryParse(Console.ReadLine(), out entrada);//se lee el número de entrada// } salida = (sum / cont);//se realiza el calculo de la media// //salida// - if(salida > 0)//si la salida es mayor a 0 se escribe el resultado obtenido// - { - Console.WriteLine("La media de los números ingresados es:"); - Console.WriteLine(salida); - } - else//en caso de que el ciclo se haya cerrado sin entradas validas, la salida sera menor a 0, por lo tanto:// - { - Console.WriteLine("No hay una media valida para esa entrada"); - } + Console.WriteLine(salida); } } diff --git a/Unidad 2-Estructuras de Control/Ejercicio22.c b/Unidad 2-Estructuras de Control/Ejercicio22.c new file mode 100644 index 0000000..df62003 --- /dev/null +++ b/Unidad 2-Estructuras de Control/Ejercicio22.c @@ -0,0 +1,41 @@ +//Equipo4 +//Fecha 10/02/2020 +//Autor: Carlos Greene +//Programa que hace una suma los factoriales de una serie de n números +//Entrada: Número entero positivo +//Salida: Suma total de la serie de factoriales +#include + +int main() +{ + //Entrada + int entrada = 0, fact = 1, salida = 0; + // entrada: número introducido, fact: factorial, salida: La suma de la serie de factoriales + + scanf("%d", &entrada); //Se lee el número de entrada + + //Proceso + if(entrada == 0) //Se compara si el número introducido es cero + { + salida = 1; //Si el número es cero, entonces su factorial será 1 por conveniencia + } + else + { //Si no es igual a cero entonces + for(int i = 1; i <= entrada; i++) //Se hace un ciclo repetitivo para sumar la serie de factoriales + { + fact=1; //Se inicializa la variable fact + + for(int n = 1; n <= i; n++) //Se hace otro ciclo repetitivo para calcular factoriales + { + fact = fact*n; //Se calcula factorial multiplicando la variable fact por n del ciclo + } + + salida = salida + fact; //Se suma los factoriales + + } + } + + //Salida + printf("%d", salida); //Se imprime la suma de serie de factoriales + return 0; +} \ No newline at end of file diff --git a/Unidad 2-Estructuras de Control/Ejercicio22.cs b/Unidad 2-Estructuras de Control/Ejercicio22.cs index aa296b3..f3d5ff2 100644 --- a/Unidad 2-Estructuras de Control/Ejercicio22.cs +++ b/Unidad 2-Estructuras de Control/Ejercicio22.cs @@ -16,7 +16,6 @@ static void Main(string[] args) int entrada = 0, fact = 1, salida = 0; // entrada: número introducido, fact: factorial, salida: La suma de la serie de factoriales - Console.WriteLine("Introduce el número de serie"); int.TryParse(Console.ReadLine(), out entrada); //Se lee el número de entrada //Proceso @@ -41,7 +40,6 @@ static void Main(string[] args) } //Salida - Console.WriteLine("El total de la serie de factoriales es:"); Console.WriteLine(salida); //Se imprime la suma de serie de factoriales } } diff --git a/Unidad 2-Estructuras de Control/Ejercicio28.c b/Unidad 2-Estructuras de Control/Ejercicio28.c new file mode 100644 index 0000000..af6efc9 --- /dev/null +++ b/Unidad 2-Estructuras de Control/Ejercicio28.c @@ -0,0 +1,47 @@ +//Equipo4 +//Autor:Jose Miron +//Programa que lea una cadena de numeros no determinada y determinar el valor mayor y menor +//terminara cuando el ultimo numero ingresado sea 999 +//Entrada: Numeros enteros +//Salida: Numero mayor y menor de la serie +#include + +int main() +{ + //Entrada + int nmayor; //numero mayor + int nmenor; //numero menor + int numero; //entrada de numero + nmayor = -999;// + nmenor = 999; + + scanf("%d", &numero);//Ingreso de la serie de numeros + + //Proceso + do + { + if(numero > nmayor)//Si numero ingresado es mayor que el actual numero mayor + { + if(numero != 999)//Mientras sea distinto de 999 + { + nmayor = numero;//Se sustituye el antiguo numero mayor por el actual + } + } + + if(numero < nmenor)//Si numero ingresado es menor que el actual numero menor + { + if(numero != 999)//Mientras sea distinto de 999 + { + nmenor = numero;//Se sustituye el antiguo numero menor por el actual + } + } + } + while(numero != 999);//Mientras sea distinto de 999 + + //Salida + printf("%d \n", nmayor);//Impresion del mayor numero de la serie de numeros + printf("%d \n", nmenor);//Impresion del menor numero de la serie de numeros + + return 0; +} + diff --git a/Unidad 2-Estructuras de Control/Ejercicio28.cs b/Unidad 2-Estructuras de Control/Ejercicio28.cs index af04bed..29f332e 100644 --- a/Unidad 2-Estructuras de Control/Ejercicio28.cs +++ b/Unidad 2-Estructuras de Control/Ejercicio28.cs @@ -11,62 +11,46 @@ using System; +/// +/// .Leer una secuencia de números no determinada (finalizará la lectura cuando +/// el último número sea igual a 999) y calcular la media aritmética +/// namespace Ejercicio28 { class Program { static void Main(string[] args) - { - int numero; int numerodos; int mayor; int menor; int numeros; - + { //Entrada + int nmayor; + int nmenor; + int numero; + nmayor = -999; + nmenor = 999; + //Proceso do { - Console.WriteLine("Ingrese numero"); - numero = Convert.ToInt32(Console.ReadLine()); //Ingreso del primer numero + numero = Convert.ToInt32(Console.ReadLine()); //Ingreso de la serie de numeros - Console.WriteLine("Ingrese numeros"); - numerodos = Convert.ToInt32(Console.ReadLine()); //Ingreso del segundo numero - - //Primer caso. //si el primer numero introducido resulta mayor que el segundo - if (numero > numerodos) - menor = numerodos; mayor = numero; menor = numerodos; //Asignacion de valores de mayor y menor - do - { - - { - Console.WriteLine("Ingrese numeros nuevos"); - numeros = Convert.ToInt32(Console.ReadLine()); // Ingreso de la serie de numeros - if (numeros > mayor) { - mayor = numeros; //el numero mayor es reemplazado de cumplirse que el numero introducido sea mayor que el anterior - Console.WriteLine("Numero mayor es: " + mayor); //Impresion del numero mayor - } - else if (numeros < menor) { menor = numeros; //el numero menor es reemplazado de cumplirse que el numero introducido sea menor que el anterior - Console.WriteLine("Numero menor es: " + menor);//Impresion del numero menor - } - } - } while (numeros != 999); //Mientras el numero introducido sea distinto de 999 - - //Segundo caso. //si el segundo numero introducido resulta mayor que el primero - if (numero < numerodos) - menor = numero; mayor = numerodos; menor = numeros; //Asignacion de valores de mayor y menor - do - { - Console.WriteLine("Ingrese numeros nuevos"); - numeros = Convert.ToInt32(Console.ReadLine()); //Ingreso de la serie de numeros - if (numeros > mayor)//Si el numero introducido es mayor que el valor mayor actual + if(numero > nmayor)//Si el numero es mayor que el numero mayor actual + { + if (numero != 999)//Mientras sea distinto de 999 { - mayor = numeros; //el numero mayor es reemplazado de cumplirse que el numero introducido sea mayor que el anterior - Console.WriteLine("Numero mayor es: " + mayor);//Impresion del numero mayor + nmayor = numero;//Se sustituye el anterior numero mayor por el nuevo } - else if (numeros < menor) //Si el numero introducido es menor que el valor menor actual + } + if(numero < nmenor)//Si el numero es menor que el numero menor actual + { + if (numero != 999)//Mientras sea distinto de 999 { - menor = numeros; //el numero menor es reemplazado de cumplirse que el numero introducido sea menor que el anterior - Console.WriteLine("Numero menor es: " + menor);//Impresion del numero menor + nmenor = numero;//Se sustituye el anterior numero menor por el nuevo } + } + } while (numero != 999);//Mientras sea distinto de 999 - } while (numeros != 999); //Mientras el numero introducido sea distinto de 999 + //Salida + Console.WriteLine(nmayor);//Impresion del numero mayor + Console.WriteLine(nmenor);//Impresion del numero menor + } - } while (numeros != 999 ); //Mientras el numero introducido sea distinto de 999 - - } } - } + } +} \ No newline at end of file diff --git a/Unidad 2-Estructuras de Control/Ejercicio34.c b/Unidad 2-Estructuras de Control/Ejercicio34.c new file mode 100644 index 0000000..b490e80 --- /dev/null +++ b/Unidad 2-Estructuras de Control/Ejercicio34.c @@ -0,0 +1,27 @@ +//Equipo 4// +//Fecha: 05/02/2020// +//Un programa que imprima las filas:// +//1// +//1 2// +//1 2 3 // +//...// +//1 2 3 ... n// +#include + +int main(void) { + //Entrada// + int N, X, C = 1,i; + scanf_s("%d", &N);//Se define la entrada// + + //Proceso// + for (i = 0; i < N; i++) { + X = 0; + do { + X = X++; + printf("%d", X); + } while (X50) //Se compara si el residuo es mayor que 50 + if(r>=50) //Se compara si el residuo es mayor que 50 { //Si es mayor a 50 entonces salida = ((entrada/100)+1)*100; //Se divide la entrada entre 100, se suma 1 y se mutiplica por 100 - } //para redondear el número a centena mayor + } //para rendondear el número a centena mayor else { //Si es menor o igual a 20 salida = (entrada/100)*100; //Se divide la entrada entre 100 y se divide entre 100 } //para redondearlo a la centena menor + + if(aux<0){ //Si el auxiliar es negativo, se procede volver negativo la salida + salida = salida*-1; + } //Salida - Console.WriteLine("El número {0} redondeado a centenar es:", entrada); Console.WriteLine(salida); //Se imprime el número redondeado } } -} +} \ No newline at end of file diff --git a/Unidad 2-Estructuras de Control/Ejercicio40.c b/Unidad 2-Estructuras de Control/Ejercicio40.c new file mode 100644 index 0000000..27588d2 --- /dev/null +++ b/Unidad 2-Estructuras de Control/Ejercicio40.c @@ -0,0 +1,35 @@ +//Equipo4 +//Fecha 10/02/2020 +//Autor: Carlos Greene +//Programa que determina si cada n trabajadores debe tener un aumento de 15% si gana menos que $800 +//Entrada: Número de trabajadores y sus sueldos +//Salida: Sueldo de cada trabajador con o sin aumento +#include + +int main() +{ + //Entrada + int numTra = 0; + //numTra: número de trabajadores + float su = 0, aum = 0; + //su: sueldo, aum: aumento + + scanf("%d", &numTra); //Se lee el número de trabajadores + + for(int i = 0; i < numTra; i++) //Se inicia un ciclo para todos los trabajadores + { + scanf("%f", &su); //Se lee el sueldo de cada trabajador + + //Proceso + if(su < 800) //Se compara si el sueldo es menor de 800 + { //Si es menor a 800 entonces + aum = su * 0.15; //Se calcula el aumento multiplicando el sueldo por 0.15 + su = su + aum; //Se suma el sueldo con el aumento + } + + //Salida + printf("%.*f\n", su - (int)su ? 2 : 0, su);; //Se imprime el sueldo con o sin aumento + } + + return 0; +} \ No newline at end of file diff --git a/Unidad 2-Estructuras de Control/Ejercicio40.cs b/Unidad 2-Estructuras de Control/Ejercicio40.cs index db5b71d..ad266ec 100644 --- a/Unidad 2-Estructuras de Control/Ejercicio40.cs +++ b/Unidad 2-Estructuras de Control/Ejercicio40.cs @@ -18,12 +18,10 @@ static void Main(string[] args) double su = 0, aum = 0; //su: sueldo, aum: aumento - Console.WriteLine("¿Cuantos trabajadores hay en la empresa?"); int.TryParse(Console.ReadLine(), out numTra); //Se lee el número de trabajadores for(int i = 0; i < numTra; i++) //Se inicia un ciclo para todos los trabajadores { - Console.WriteLine("¿Cuanto gana el trabajador {0}?", i+1); su = Double.Parse(Console.ReadLine()); //Se lee el sueldo de cada trabajador //Proceso @@ -31,11 +29,6 @@ static void Main(string[] args) { //Si es menor a 800 entonces aum = su * 0.15; //Se calcula el aumento multiplicando el sueldo por 0.15 su = su + aum; //Se suma el sueldo con el aumento - Console.WriteLine("Su sueldo con aumento será:"); - } - else - { - Console.WriteLine("No tiene aumento, por lo tanto, su sueldo será:"); } //Salida diff --git a/Unidad 2-Estructuras de Control/Ejercicio46.c b/Unidad 2-Estructuras de Control/Ejercicio46.c new file mode 100644 index 0000000..5a22993 --- /dev/null +++ b/Unidad 2-Estructuras de Control/Ejercicio46.c @@ -0,0 +1,69 @@ +//Equipo4 +//Autor:Jose Miron +//Programa que imprima el total a pagar y el descuento aplicado para cada uno de los N clientes, +//el total de ganancias en caja y el total de descuentos aplicados. +//Entrada: Total de la compra +//Salida: Ganancias en caja y numero de descuentos aplicados +#include +int main() +{ + //Entrada + double compra, descuento, pago, acumulado = 0; + int cliente, contador = 0; + + scanf("%d", &cliente);//Ingreso del numero de clientes + + //Proceso + for(int i=0; i<=cliente; i++)//Inicia ciclo para N numero de clientes + { + scanf("%lf", &compra); + + if(compra < 500) + { + descuento = compra * 0; pago = compra - descuento;//Compra menor a 500 pesos sin descuentos + printf("%f", compra);//Impresion de la venta con el respectivo descuento + acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados + } + + else if(500 <= compra & compra <= 999) + { + descuento = compra * 0.05; pago = compra - descuento;//Compra entre 500 y 999 pesos con el 5% de descuento + printf("%f", compra);//Impresion de la venta con el respectivo descuento + acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados + contador = contador + 1;//contador de descuentos + } + + else if(1000 <= compra & compra <= 6999) + { + descuento = compra * 0.11; + descuento = compra * 0.11; pago = compra - descuento;//Compra entre 1000 y 6999 pesos con el 11% de descuento + printf("%f", compra);//Impresion de la venta con el respectivo descuento + acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados + contador = contador + 1;//contador de descuentos + } + + else if(7000 <= compra & compra <= 14999) + { + descuento = compra * 0.18; + descuento = compra * 0.18; pago = compra - descuento;//Compra entre 7000 y 14999 pesos con el 18% de descuento + printf("%f", compra);//Impresion de la venta con el respectivo descuento + acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados + contador = contador + 1;//contador de descuentos + } + + else if(15000 <= compra) + { + descuento = compra * 0.25; + descuento = compra * 0.25; pago = compra - descuento;//Compra mayores a 15000 pesos con el 25% de descuento + printf("%f", compra);//Impresion de la venta con el respectivo descuento + acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados + contador = contador + 1;//contador de descuentos + } + + } + + //Salida + printf("%f /n", acumulado);//El total de ganancias acumuladas de las ventas + printf("%d /n", contador);//Salida del numero de descuentos aplicados + return 0; +} diff --git a/Unidad 2-Estructuras de Control/Ejercicio46.cs b/Unidad 2-Estructuras de Control/Ejercicio46.cs index cfd20ca..a707fb0 100644 --- a/Unidad 2-Estructuras de Control/Ejercicio46.cs +++ b/Unidad 2-Estructuras de Control/Ejercicio46.cs @@ -10,63 +10,70 @@ using System; -namespace Ejercicio46 +namespace Ejercicio46for { class Program { static void Main(string[] args) { + //Entrada + double compra; double descuento; double pago; int contador = 0; double acumulado = 0; int continuar; int cliente; - //Escribir el programa que imprima el total a pagar y el descuento aplicado - //para cada uno de lo N clientes que llegan.Después de recibir todos los - //clientes escribir el total en caja y el total de descuentos aplicados. - double compra; double descuento; double pago; int contador=0; double acumulado = 0; int continuar; - - do + cliente = Convert.ToInt32(Console.ReadLine());//Se ingresan el valor de la compra + + //Proceso + for (int i=0; i<=cliente; i++) { - Console.WriteLine("Ingrese valor de la compra"); + compra = Convert.ToDouble(Console.ReadLine());//Se ingresan el valor de la compra - if (compra < 500) { descuento = compra * 0; pago = compra - descuento;//Compra menor a 500 pesos sin descuentos - Console.WriteLine("El pago total es " + pago + "con un descuento aplicado de " + descuento); + if (compra < 500) + { + descuento = compra * 0; pago = compra - descuento;//Compra menor a 500 pesos sin descuentos + Console.WriteLine(pago); acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados } else if (500 <= compra & compra <= 999) - { descuento = compra * 0.05; pago = compra - descuento;//Compra entre 500 y 999 pesos con el 5% de descuento - Console.WriteLine("El pago total es " + pago + "con un descuento aplicado de " + descuento);//Impresion de la venta con el respectivo descuento + { + descuento = compra * 0.05; pago = compra - descuento;//Compra entre 500 y 999 pesos con el 5% de descuento + Console.WriteLine(pago);//Impresion de la venta con el respectivo descuento acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados + contador = contador + 1;//contador de descuentos } - else if (1000 <= compra & compra <= 6999) { descuento = compra * 0.11; + else if (1000 <= compra & compra <= 6999) + { + descuento = compra * 0.11; descuento = compra * 0.11; pago = compra - descuento;//Compra entre 1000 y 6999 pesos con el 11% de descuento - Console.WriteLine("El pago total es " + pago + "con un descuento aplicado de " + descuento);//Impresion de la venta con el respectivo descuento + Console.WriteLine(pago);//Impresion de la venta con el respectivo descuento acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados + contador = contador + 1;//contador de descuentos } - else if (7000 <= compra & compra <= 14999) { descuento = compra * 0.18; + else if (7000 <= compra & compra <= 14999) + { + descuento = compra * 0.18; descuento = compra * 0.18; pago = compra - descuento;//Compra entre 7000 y 14999 pesos con el 18% de descuento - Console.WriteLine("El pago total es " + pago + "con un descuento aplicado de " + descuento);//Impresion de la venta con el respectivo descuento + Console.WriteLine(pago);//Impresion de la venta con el respectivo descuento acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados + contador = contador + 1;//contador de descuentos } - else if (15000 <= compra) { descuento = compra * 0.25; + else if (15000 <= compra) + { + descuento = compra * 0.25; descuento = compra * 0.25; pago = compra - descuento;//Compra mayores a 15000 pesos con el 25% de descuento - Console.WriteLine("El pago total es " + pago + "con un descuento aplicado de " + descuento);//Impresion de la venta con el respectivo descuento + Console.WriteLine(pago);//Impresion de la venta con el respectivo descuento acumulado = acumulado + pago;//acumulador de ventas con descuentos aplicados + contador = contador + 1;//contador de descuentos } - contador = contador + 1;//contador de ventas - - Console.WriteLine("¿Desea continuar registrando compras?"); - continuar = Convert.ToInt32(Console.ReadLine());//Opcion para decidir si continuar o no con las ventas - - - } while (continuar == 1) ; - Console.WriteLine("El acumulado en caja fue de: " + acumulado);//El total de ganancias acumuladas de las ventas - Console.WriteLine("El total de descuentos aplicados fue de: " + contador);//Salida del numero de descuentos aplicados + } + //Salida + Console.WriteLine( acumulado);//El total de ganancias acumuladas de las ventas + Console.WriteLine(contador);//Salida del numero de descuentos aplicados Console.ReadLine(); - } } -} +} \ No newline at end of file diff --git a/Unidad 2-Estructuras de Control/Ejercicio51.c b/Unidad 2-Estructuras de Control/Ejercicio51.c new file mode 100644 index 0000000..780fe81 --- /dev/null +++ b/Unidad 2-Estructuras de Control/Ejercicio51.c @@ -0,0 +1,27 @@ +//Equipo 4// +//Fecha 05/02/2020// +//Un programa que lea la ID numerica, edad y sueldo de 10 personas y que determine cuantos mayores de 35 años tuvieron salarios comprendidos entre $5000 y $7500// + +int main(void) { + //Entrada// + int edad = 0, cont = 0, id = 0, salida = 0; + float sueldo = 0; + + //Proceso// + while (cont < 10)//se incia el ciclo// + { + scanf_s("%d", &id); + scanf_s("%d", &edad); + scanf_s("%f", &sueldo); + cont = cont ++; + if (edad > 35) + { + if (sueldo >= 5000 & sueldo <= 7500)//se valida si el sueldo ingresado cumple los estandares de sueldo requeridos por el problema// + { + salida = salida + 1;//si todos los estandares requeridos se cumplen se cuenta a la persona en la salida final// + } + } + } + //Salida// + printf("%d", salida);//se imprime como salida final, la cantidad de personas que cumplieron los estandares establecidos por el problema// +} \ No newline at end of file diff --git a/Unidad 2-Estructuras de Control/Ejercicio51.cs b/Unidad 2-Estructuras de Control/Ejercicio51.cs index c6bb1a7..671fe16 100644 --- a/Unidad 2-Estructuras de Control/Ejercicio51.cs +++ b/Unidad 2-Estructuras de Control/Ejercicio51.cs @@ -14,67 +14,23 @@ static void Main(string[] args) double sueldo = 0; //id: es la ID numerica de la persona, edad: es la edad de la persona, cont: es el contador de ciclos realizados, salida: es el contador de trabajadores que cumplen los estandares solicitados por el problema// //sueldo: es el sueldo de la persona, adémas al tener la posibilidad de tener centavos es la unica variable double// + //Proceso// while(cont < 10)//se incia el ciclo// { - Console.WriteLine("Porfavor ingrese su ID:");//se pide el ingreso de la variable id// int.TryParse(Console.ReadLine(), out id); - Console.WriteLine("Porfavor ingrese su edad:");//se pide el ingreso de la variable edad// int.TryParse(Console.ReadLine(), out edad); - if(edad > 0)//se validad que si edad ingresada es valida, es decir mayor que 0 tomando los digitos enteros como años// - { - if(edad < 35)//se valida si la edad ingresada cumple con los estandares de edad requeridos por el problema// - { - Console.WriteLine("Porfavor ingrese su sueldo:");//se solicita la variable de sueldo// - double.TryParse(Console.ReadLine(), out sueldo); - if(sueldo > 0)//se valida si el sueldo ingresado es valido, es decir mayor que 0 para que siempre haya ganancia// - { - if(sueldo >= 5000 & sueldo <= 7500)//se valida si el sueldo ingresado cumple los estandares de sueldo requeridos por el problema// - { - salida = salida + 1;//si todos los estandares requeridos se cumplen se cuenta a la persona en la salida final// - } - } - else - { - Console.WriteLine("Ese monto no es valido, por favor intentelo de nuevo:"); - double.TryParse(Console.ReadLine(), out sueldo);//en caso de que el sueldo no sea valido, es decir mayor 0, se solicita de nuevo que se ingrese un monto para sueldo// - if(sueldo >= 5000 & sueldo <= 7500) - { - salida = salida + 1;//si todos los estandares requeridos se cumplen se cuenta a la persona en la salida final// - } - } - } - } - else - { - Console.WriteLine("Esa no es una edad valida, por favor intentelo de nuevo:"); - int.TryParse(Console.ReadLine(), out edad);//en caso de que la edad no sea valida, es decir mayor a 0, se solicita que se ingrese de nuevo una edad// - if(edad > 35) - { - Console.WriteLine("Porfavor ingrese su sueldo:");//se valida si el sueldo ingresado es valido, es decir mayor que 0 para que siempre haya ganancia// - double.TryParse(Console.ReadLine(), out sueldo); - if(sueldo > 0) - { - if(sueldo >= 5000 & sueldo <= 7500)//se valida si el sueldo ingresado cumple los estandares de sueldo requeridos por el problema// - { - salida = salida + 1;//si todos los estandares requeridos se cumplen se cuenta a la persona en la salida final// - } - } - else - { - Console.WriteLine("Ese monto no es valido, por favor intentelo de nuevo:"); - double.TryParse(Console.ReadLine(), out sueldo);//en caso de que el sueldo no sea valido, es decir mayor 0, se solicita de nuevo que se ingrese un monto para sueldo// - if(sueldo >= 5000 & sueldo <= 7500) - { - salida = salida + 1;//si todos los estandares requeridos se cumplen se cuenta a la persona en la salida final// - } - } - } - } - cont = cont + 1;//al final de cada ciclo se suma la realización al contador de ciclos, para poder cerrar el ciclo while al llegar a 10// - Console.WriteLine($"{cont}° registro exitoso");//se imprime el número de ciclo realizado para asi evitar confusiones// - } - Console.WriteLine($"{salida} trabajador(es) cumplieron con los estandares establecidos" );//se imprime como salida final, la cantidad de personas que cumplieron los estandares establecidos por el problema// + double.TryParse(Console.ReadLine(), out sueldo); + cont= cont + 1; + if(edad > 35) + { + if(sueldo >= 5000 & sueldo <= 7500)//se valida si el sueldo ingresado cumple los estandares de sueldo requeridos por el problema// + { + salida = salida + 1;//si todos los estandares requeridos se cumplen se cuenta a la persona en la salida final// + } + } + } + Console.WriteLine(salida);//se imprime como salida final, la cantidad de personas que cumplieron los estandares establecidos por el problema// } } } \ No newline at end of file diff --git a/Unidad 3-Funciones/Ejercicio15.c b/Unidad 3-Funciones/Ejercicio15.c index 0e0f340..4a1314f 100644 --- a/Unidad 3-Funciones/Ejercicio15.c +++ b/Unidad 3-Funciones/Ejercicio15.c @@ -1,84 +1,214 @@ -/* -Autor: Amílcar A. Ramírez Patrón -Entradas: El dia, mes y año de dos fechas distintas -Proceso: Verificar, en orden año, mes, día, qué numero de ambas fechas es mayor y escribir la fecha que es, a la vez -que procurar continuar en orden en caso de empate, hasta que se concluya que ambas fechas son iguales -Salidas: La fecha mayor -*/ +/** + * @file Ejercicio15.c + * @author Carlos Greene + * Entrada: Dos fechas con tres numeros enteros cada una + * Salida: La fecha mayor o un texto con "Son iguales" + * @brief Descripción: Programa que lee dos fechas (día-mes-año) con tres cantidades enteras e imprima la mayor, si son la misma imprima son iguales. + * @version 0.1 + * @date 2020-02-21 + * + * @copyright Copyright (c) 2020 + */ #include -void leerAmbasFechas(int*, int*, int*, int*, int*, int*); -void compararAmbasFechas(int*, int*, int*, int*, int*, int*); +/** + * @brief Se inicializan los prototipos + */ +void leerEntradas(int *, int *, int*, int *, int *, int *); +int determinarDiaMayor(int, int, int, int, int, int); +int determinarMesMayor(int, int, int, int); +int determinarAnioMayor(int, int); +int determinarSiSonIguales(int, int, int, int, int, int); +void imprimirSalidas(int, int, int, int); -/*15.Escribir el programa que lea dos fechas (día-mes-año) con tres cantidades -enteras e imprima la mayor, si son la misma imprima son iguales. -*/ -int main(int argc, char *argv[]) { - //entrada - int diauno, mesuno, anouno, diados, mesdos, anodos; - leerAmbasFechas(&diauno, &mesuno, &anouno, &diados, &mesdos, &anodos); - //proceso - compararAmbasFechas(&diauno, &mesuno, &anouno, &diados, &mesdos, &anodos); - return 0; +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecuta el código, dentro contiene las variables que se utilizaron + * para algoritmo. Tambien contiene las funciones que se encargan de la entrada, procesos y salida. + * @return int + */ +int main() +{ + //Entradas + //Se inicializan las variables + int day=0, month=0, year=0, day2=0, month2=0, year2=0, dayH=0, monthH=0, yearH=0, aux=0; + + //Se lee las entradas + leerEntradas(&day, &month, &year, &day2, &month2, &year2); + + //Proceso + dayH=determinarDiaMayor(day, month, year, day2, month2, year2); + + monthH=determinarMesMayor(month, year, month2, year2); + + yearH=determinarAnioMayor(year, year2); + + aux=determinarSiSonIguales(day, month, year, day2, month2, year2); + + //Salida + imprimirSalidas(dayH, monthH, yearH, aux); + + return 0; +} + +/** + * @brief La función leerEntrada se encarga de que el usuario dé los valores a las variables y luego, a travez de pase por + * referencia, las varieble del Main tengran los mismos valores de los que se introdujeron en la función + * @param _day Dia de la primera fecha + * @param _month Mes de la primera fecha + * @param _year Año de la primera fecha + * @param _day2 Dia de la segunda fecha + * @param _month2 Mes de la segunda fecha + * @param _year2 Año de la segunda fecha + */ +void leerEntradas(int *_day, int *_month, int *_year, int *_day2, int *_month2, int *_year2) +{//Se lee las variables + scanf("%d", _day); + scanf("%d", _month); + scanf("%d", _year); + scanf("%d", _day2); + scanf("%d", _month2); + scanf("%d", _year2); } -void leerAmbasFechas(int *diauno, int *mesuno, int* anouno, int *diados, int *mesdos, int *anodos){ - printf("Escriba el dia uno:"); - scanf("%d", diauno); - printf("Escriba el mes uno:"); - scanf("%d", mesuno); - printf("Escriba el ano uno:"); - scanf("%d", anouno); - printf("Escriba el dia dos:"); - scanf("%d", diados); - printf("Escriba el mes dos:"); - scanf("%d", mesdos); - printf("Escriba el ano dos:"); - scanf("%d", anodos); +/** + * @brief La función determinarDiaMayor determina el dia de la fecha mayor, comparando los años, meses y días. + * @param dia Dia de la primera fecha + * @param mes Mes de la primera fecha + * @param anio Año de la primera fecha + * @param dia2 Dia de la segunda fecha + * @param mes2 Mes de la segunda fecha + * @param anio2 Año de la segunda fecha + * @return int Retorna un valor entero que contiene el dia de la fecha mayor + */ +int determinarDiaMayor(int dia, int mes, int anio, int dia2, int mes2, int anio2) +{//Se determina cual dia es mayor +int diaM=0; + if(anio>anio2)//Se verifica si el primer año es mayor que el segundo + { + diaM=dia; + } + else if(anio2>anio)//Se verifica si el segundo año es mayor que el primero + { + diaM=dia2; + } + else if(anio==anio2)//Se verifica si tienen el mismo año + { + if(mes>mes2)//Se verifica si el primer mes es mayor que el segundo + { + diaM=dia; + } + else if(mes2>mes)//Se verifica si el segundo mes es mayor que el primero + { + diaM=dia2; + } + else if(mes==mes2)//Se verifica si tienen el mismo mes + { + if(dia>dia2)//Se verifica si el primer dia es mayor que el segundo + { + diaM=dia; + } + else if(dia2>dia)//Se verifica si el segundo dia es mayor que el primero + { + diaM=dia2; + } + } + } + return diaM; } +/** + * @brief La función determinarMesMayor determina el mes de la fecha mayor, comparando los años y meses. + * @param mes Mes de la primera fecha + * @param anio Año de la primera fecha + * @param mes2 Mes de la segunda fecha + * @param anio2 Año de la segunda fecha + * @return int Retorna un valor entero que contiene el mes de la fecha mayor + */ +int determinarMesMayor(int mes, int anio, int mes2, int anio2) +{//Se determina cual dia es mayor + int mesM=0; + if(anio>anio2)//Se verifica si el primer año es mayor que el segundo + { + mesM=mes; + } + else if(anio2>anio)//Se verifica si el segundo año es mayor que el primero + { + mesM=mes2; + } + else if(anio==anio2)//Se verifica si tienen el mismo año + { + if(mes>mes2)//Se verifica si el primer mes es mayor que el segundo + { + mesM=mes; + } + else if(mes2>mes)//Se verifica si el segundo mes es mayor que el segundo + { + mesM=mes2; + } + + } + return mesM; +} + +/** + * @brief La función determinarAnioMayor determina el año de la fecha mayor, comparando los años. + * @param anio Año de la primera fecha + * @param anio2 Año de la segunda fecha + * @return int Retorna un valor entero que contiene el año de la fecha mayor + */ +int determinarAnioMayor(int anio, int anio2) +{//Se determina cual año es mayor + int anioM=0; + if(anio>anio2)//Se verifica si el primer año es mayor que el segundo + { + anioM=anio; + } + else if(anio2>anio)//Se verifica si el segundo año es mayor que el primero + { + anio=anio2; + } + return anioM; +} -void compararAmbasFechas(int *diauno, int *mesuno, int* anouno, int *diados, int *mesdos, int *anodos){ - if(*anouno < *anodos){ - printf("La segunda fecha ingresada es mayor: dia %d mes %d año %d\n", *diados, *mesdos, *anodos); - } - if(*anouno > *anodos){ - printf("La primera fecha ingresada es mayor: dia %d mes %d año %d\n", *diauno, *mesuno, *anouno); - } - else if (*anouno = *anodos){ - if(*mesuno < *mesdos){ - printf("La segunda fecha ingresada es mayor: dia %d mes %d año %d\n", *diados, *mesdos, *anodos); - } - if(*mesuno > *mesdos){ - printf("La primera fecha ingresada es mayor: dia %d mes %d año %d\n", *diauno, *mesuno, *anouno); - } - else if(*mesuno = *mesdos){ - if(*diauno < *diados){ - printf("La segunda fecha ingresada es mayor: dia %d mes %d año %d\n", *diados, *mesdos, *anodos); - } - if(*diauno > *diados){ - printf("La primera fecha ingresada es mayor: dia %d mes %d año %d\n", *diauno, *mesuno, *anouno); - } - else if(*diauno = *diados){ - printf("Las fechas son las mismas\n"); - } - } - } +/** + * @brief La función determinarSiSonIguales + * @param dia Dia de la primera fecha + * @param mes Mes de la primera fecha + * @param anio Año de la primera fecha + * @param dia2 Dia de la segunda fecha + * @param mes2 Mes de la segunda fecha + * @param anio2 Año de la segunda fecha + * @return int Retorna un auxiliar que indica que las dos fechas se repiten + */ +int determinarSiSonIguales(int dia, int mes, int anio, int dia2, int mes2, int anio2) +{//Determina si las fechas son iguales + int _aux=0; + if(dia==dia2 && mes==mes2 && anio==anio2) + { + _aux=1; + } + return _aux; } -/* -QA: Hector Abraham V. Cosgalla -Entradas: -Entradas: -10--|24--|10--| -2---|3---|2---| -1998|1995|1995| -24--|10--|10--| -3---|2---|2---| -1995|1998|1995| -Salidas: -La primera fecha ingresada es mayor | la segunda fecha ingresada es mayor | las fechas son las mismas - | La primera fecha ingresada es mayor | -Comentarios: Hay una pequeña falla en el segundo caso, hay que revisarlo, y se necesita un poco mas -de informacion al momento de solicitar los valores. -*/ +/** + * @brief La función imprimirSalida recibe, a travez de pase por valor, una copia del valor que está en el Main que contiene + * la cadena de texto con la fecha mayor o iguales, la función sólo se encargará de imprimirlo. + * @param _dayH Dia de la fecha mayor + * @param _monthH Mes de la fecha mayor + * @param _yearH Año de la fech mayor + * @param auxf auxiliar que indica que las dos fechas se repiten + */ +void imprimirSalidas(int _dayH, int _monthH, int _yearH, int auxf) +{//Se imprime la salida + if(auxf==0)//Si el auxiliar es 0, se imprime las fecha mayor + { + printf("%d\n", _dayH); + printf("%d\n", _monthH); + printf("%d", _yearH); + } + else + {//Si el auxiliar es 1, te envia mesaje que "Son iguales" + printf("Son iguales"); + } + +} \ No newline at end of file diff --git a/Unidad 3-Funciones/Ejercicio15.cs b/Unidad 3-Funciones/Ejercicio15.cs new file mode 100644 index 0000000..a56910e --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio15.cs @@ -0,0 +1,121 @@ +/// +/// Autor:Carlos Greene +/// Entrada: Dos fechas con tres numeros enteros cada una +/// Salida: La fecha mayor o un texto con "Son iguales" +/// Descripción: Programa que lee dos fechas (día-mes-año) con tres cantidades enteras e imprima la mayor, si son la misma imprima son iguales. +/// +using System; + +namespace Ejercicio15 +{ + class Program + { + /// + /// El bloque de abajo es el Main, ahí es donde se ejecuta el código, dentro contiene las variables que se utilizaron + /// para algoritmo. Tambien contiene las funciones que se encargan de la entrada, proceso y salida + /// + /// + static void Main(string[] args) + { + //Entradas + //Se inicializan las variables + int day=0, month=0, year=0, day2=0, month2=0, year2=0; + string fechaMayor=""; + + //Se lee las entradas + leerEntradas(ref day, ref month, ref year, ref day2, ref month2, ref year2); + + //Proceso + fechaMayor=determinarFechaMayor(day, day2, month, month2, year, year2); + + //Salida + imprimirSalida(fechaMayor); + + } + + /// + /// La función leerEntrada se encarga de que el usuario dé los valores a las variables y luego, a traves de pase por + /// referencia, las varieble del Main tengran los mismos valores de los que se introdujeron en la función. + /// + /// Dia de la primera fecha + /// Mes de la primera fecha + /// Año de la primera fecha + /// Dia de la segunda fecha + /// Mes de la segunda fecha + /// Año de la segunda fecha + + static void leerEntradas(ref int _day, ref int _month, ref int _year, ref int _day2, ref int _month2, ref int _year2) + {//Se lee las variables + _day=Convert.ToInt32(Console.ReadLine()); + _month=Convert.ToInt32(Console.ReadLine()); + _year=Convert.ToInt32(Console.ReadLine()); + _day2=Convert.ToInt32(Console.ReadLine()); + _month2=Convert.ToInt32(Console.ReadLine()); + _year2=Convert.ToInt32(Console.ReadLine()); + } + + + /// + /// La función determinarFechaMayor utiliza, a traves de pase por valor, las copias de los valores del estan en el Main, + /// con estos valores, se determina los cual es la fecha mayor o si son iguales. + /// + /// Dia de la primera fecha + /// Dia de la segunda fecha + /// Mes de la primera fecha + /// Mes de la segunda fecha + /// Año de la primera fecha + /// Año de la segunda fecha + /// La función retornará una cadena de texto que contiene el dia, mes y año de la fecha mayor o son iguales + + static string determinarFechaMayor(int dia, int dia2, int mes, int mes2, int anio, int anio2) + {//Se determina cual fecha es mayor o son iguales + string _fechaMayor="";//Se inicializa el valor que va a retornar + if(anio>anio2)//Se verifica si el primer año es mayor que el segundo + { + _fechaMayor=dia + "\n" + mes + "\n" + anio; + } + else if(anio2>anio)//Se verifica si el segundo año es mayor que el primero + { + _fechaMayor=dia2 + "\n" + mes2 + "\n" + anio2; + } + else if(anio==anio2)//Se verifica si tienen el mismo año + { + if(mes>mes2)//Se verifica si el primer mes es mayor que el segundo + { + _fechaMayor=dia + "\n" + mes + "\n" + anio; + } + else if(mes2>mes)//Se verifica si el segundo mes es mayor que el primero + { + _fechaMayor=dia2 + "\n" + mes2 + "\n" + anio2; + } + else if(mes==mes2)//Se verifica si tienen el mismo mes + { + if(dia>dia2)//Se verifica si el primer dia es mayor que el segundo + { + _fechaMayor=dia + "\n" + mes + "\n" + anio; + } + else if(dia2>dia)//Se verifica si el segundo dia es mayor que el primero + { + _fechaMayor=dia2 + "\n" + mes2 + "\n" + anio2; + } + else if(dia==dia2)//Se verifica si tienen el mismo dia + { + _fechaMayor="Son iguales"; + } + } + } + + return _fechaMayor;//Se retorna el valor de la fecha mayor + } + + /// + /// La función imprimirSalida recibe, a traves de pase por valor, una copia del valor que está en el Main que contiene + /// la cadena de texto con la fecha mayor o iguales, la función sólo se encargará de imprimirlo. + /// + /// Variable que contiene la cadena de texto con la fecha mayor o iguales + static void imprimirSalida(string _salida) + {//Se imprime la fecha mayor o si son iguales + Console.WriteLine(_salida); + } + } +} \ No newline at end of file diff --git a/Unidad 3-Funciones/Ejercicio21.c b/Unidad 3-Funciones/Ejercicio21.c new file mode 100644 index 0000000..c9089d3 --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio21.c @@ -0,0 +1,87 @@ +/** + * @file Ejercicio21.c + * @author Jose Miron + * Entrada: Numero entero positivo + * Salida: Factorial de N + * @brief //Programa que dado un número entero n determina su factorial + * @version 0.1 + * @date 2020-02-21 + * @copyright Copyright (c) 2020 + * + */ + +#include + + +/** + * @brief Se inicializan los prototipos de funciones + * + */ +void leerEntrada(int); +int calcularFactorial(int); +void imprimirSalida(int); + + /** + * @brief El bloque de abajo es el Main, ahi es donde se ejecuta el codigo, dentro contiene las variables que se utilizaron + * para el algoritmo. Tambien contiene las funciones que se encargan de la entrada, proceso y salida. + * @return int + */ + int Main() + { + //Declaración de variables + int entrada = 0, fact = 0; + + //Entrada + leerEntrada(&entrada); + + //Proceso + fact = calcularFactorial(entrada); + + //Salida + imprimirSalida(fact); + } + + /** + * @brief La funcion leerEntrada se encarga de que el usuario de los valores a las variables y luego, a traves de pase + * por referencia, las variables del Main tengan los mismos valores de los que se introdujeron en la funcion + * @param _entrada + */ + void leerEntrada( int _entrada) + { + //Se lee la variable + scanf("%d", _entrada); + + } + + /** + * @brief La funcion calcularFactorial recibe a traves de por valor, una copia del valor que esta en el Main, + * se encarga de calcular el factorial de N + * @param numero + * @return int + */ + int calcularFactorial(int numero) + { + int factorial = 1;//Se inicializa la variable de retorno + + if (numero != 0) //Se compara si el número introducido es cero + { + for (int i = 1; i <= numero; i++) //Se hace otro ciclo repetitivo para calcular factoriales + { + factorial = factorial * i; //Se calcula factorial multiplicando la variable fact por n del ciclo + } + + } + + return factorial;//Se retorna la variable + } + + /** + * @brief La funcion imprimirSalida recibe a traves de pase por valor, una copia del valor que esta en el Main + * de la variable que contiene la cantidad de multiplos, la funcion solo imprime dicho valor + * @param _fact + */ + void imprimirSalida(int _fact) + { + ////Se imprime la salida + printf("%d",_fact); + } diff --git a/Unidad 3-Funciones/Ejercicio21.cs b/Unidad 3-Funciones/Ejercicio21.cs new file mode 100644 index 0000000..b9726ec --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio21.cs @@ -0,0 +1,82 @@ +/// +///Autor: Jose Miron +/// Entrada: Numero entero positivo +/// Salida: Factorial del numero entero N +///Descripcion: //Dado un número entero n determina su factorial +/// + +using System; + +namespace Ejercicio21 +{ + class Program + { + /// + /// El bloque de abajo es el Main, ahi es donde se ejecuta el codigo, dentro contiene las variables que se utilizaron + /// para el algoritmo. Tambien contiene las funciones que se encargan de la entrada, proceso y salida. + /// + /// + static void Main(string[] args) + { + //Entrada + //Se inicializan las variables + int entrada = 0, fact = 0; + + //Función que lee la variable + leerEntrada(ref entrada); + + //Proceso + //Funcion que calcula el factorial + fact = calcularFactorial(entrada); + + //Salida + //Funcion que imprime la salida + imprimirSalida(fact); + } + + /// + /// La funcion leerNumero se encarga de que el usuario de los valores a las variables y luego, a traves de pase + /// por referencia, las variables del Main tengan los mismos valores de los que se introdujeron en la funcion + /// + /// + static void leerEntrada(ref int _entrada) + { + //lectura de la variable + _entrada = Convert.ToInt32(Console.ReadLine()); + } + + /// + /// /// La funcion calcularFactorial recibe a traves de por valor, una copia del valor que esta en el Main, + /// se encarga de calcular el factorial de un numero entero positivo N + /// + /// + /// + static int calcularFactorial(int numero) + { + int factorial = 1; + + if (numero != 0) //Se compara si el número introducido es cero + { + for (int i = 1; i <= numero; i++) //Se hace otro ciclo repetitivo para calcular factoriales + { + factorial = factorial * i; //Se calcula factorial multiplicando la variable fact por n del ciclo + } + + } + + return factorial;//Se retorna la variable + } + + + /// + /// /// La funcion imprimirSalida recibe a traves de pase por valor, una copia del valor que esta en el Main + /// de la variable que contiene el factorial de N, la funcion solo imprime dicho valor + /// + /// + static void imprimirSalida(int _fact) + { + //Se imprime la salida + Console.WriteLine(_fact); + } + } +} diff --git a/Unidad 3-Funciones/Ejercicio27.c b/Unidad 3-Funciones/Ejercicio27.c index 534e640..88bcf6b 100644 --- a/Unidad 3-Funciones/Ejercicio27.c +++ b/Unidad 3-Funciones/Ejercicio27.c @@ -1,44 +1,88 @@ -/* - Autor: Carlos Chan Gongora 15/02/2019 - Entradas: Cualquier numero hasta que se ingrese 999. - Salidas: La media aritmetica de los numeros ingresados. - Procedimiento general: Lee y suma los numeros que el usuario ingrese, a la vez - que cuenta el total de numeros ingresados, al ingresar 999 deja de leer y - calcula la media aritmetica. +/** + * @file Ejercicio 27.c + * @author Giovanni Quintal + * Entrada: Un numero real + * Salida: "Promedio" + * @brief Determinara el promedio de los datos dados. + * @version 0.1 + * @date 2020-02-23 + * + * @copyright Copyright (c) 2020 + * + */ +#include + +/** +* @brief Se inicializan los prototipos de las funciones */ -#include -void leerNumeros(); +void leerEntrada(float *); +float promediar(float,float,float); +void imprimirSalida(float); + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + * para el algoritmo. Tambien contiene las funciones de la entrada, proceso y la salida. + * @return float + */ + +int main() +{ + //Entrada + //Se inicializan las varibles + float contador = 0, i = 0, sum = 0, mediaarit=0; -int main(){ + //Función que lee la variable + leerEntrada(&i); + + //Proceso + //Función que saca el promedio + mediaarit = promediar(i, sum, contador); - leerNumeros(); + //Salida + //Función que imprime la salida + imprimirSalida(mediaarit); - return 0; + return 0; } -// Lee los numeros hasta que se ingrese 999 -void leerNumeros(){ - int num = 0, contador = 0; - float media = 0, suma = 0; - - while(num != 999){ - printf("Ingresa un numero: "); - scanf("%d", &num); - if(num != 999){ - suma += num; - contador += 1; - } - } - if(contador > 0){ - media = suma / contador; - printf("La media es: %f", media); - } - else{ - printf("No ingreso ningun numero."); - } +/** + * @brief La función leerEntrada se encarga de de pedir el valor de la variable i y a traves con el pase de refencia, + * la variable del main tendra los mismo valores dado por el usuario + * + * @param i Número entero + */ +void leerEntrada(float *i) +{ + scanf("%i",&i); +} + +/** + * @brief La función promediar sumara todos los numeros y los dividira entre la cantidad dada. + * @param i + * @param sum + * @param contador + * @return float retorna la variable float que contiene el resultado final + */ +float promediar(float i,float sum, float contador) +{ + float mediaarit = 0; + while (i<999) + { + sum = (sum+i); + contador = contador+1; + leerEntrada(&i); + } + mediaarit = sum/contador; + return mediaarit; +} +/** + * @brief La función imprimirSalida, recibe un un pase del valor, una copia del valor cont desde el main + * + * @param mediaarit El promedio de datos dados. + */ +void imprimirSalida(float mediaarit) +{ + printf("%f\n",mediaarit); + } -/*AUTOR QA : RONSSON RAMIRO MAY SANTOS -ENTRADAS:4,5,6,7,8,9,999 -SALIDAS: 6.500000; -OBSERVACIONES: EL PROGRAMA CALCULA LA MEDIA ARICMETICA DE N NUMEROS CORRECTAMENTE*/ diff --git a/Unidad 3-Funciones/Ejercicio27.cs b/Unidad 3-Funciones/Ejercicio27.cs new file mode 100644 index 0000000..0dab520 --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio27.cs @@ -0,0 +1,78 @@ +/// +/// //Autor:Giovanni Quintal +/// Entrada: Un numero real +/// Salida: "Promedio" +/// Descripción: Determinara el promedio de los datos dados. +/// +using System; + +namespace Ejercicio27 +{ + + class Program + { + /// + /// El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + /// para el algoritmo. Tambien contiene las funciones de la entrada, proceso y la salida. + /// + /// + + static void Main(string[] args) + { + //Entrada + //Se inicializan las varibles + float contador = 0, i = 0, sum = 0, mediaarit = 0; + + //Función que lee la variable + leerEntrada(ref i); + + //Proceso + //Función que saca el promedio + mediaarit = promediar(i, sum, contador); + + //Salida + //Función que imprime la salida + imprimirSalida(mediaarit); + } + /// + /// La función leerEntrada se encarga de de pedir el valor de la variable i y a traves con el pase de refencia, + /// la variable del main tendra los mismo valores dado por el usuario + /// + /// Número entero + + static void leerEntrada(ref float i) + { + float.TryParse(Console.ReadLine(), out i); + } + + /// + /// La función promediar sumara todos los numeros y los dividira entre la cantidad dada. + /// + /// + /// + /// + /// retorna la variable float que contiene el resultado final + static float promediar(float i, float sum, float contador) + { + float mediaarit = 0; + while (i < 999) + { + sum = sum + i; + contador = contador + 1; + + leerEntrada(ref i); + } + mediaarit = sum / contador; + + return mediaarit; + } + /// + /// La función imprimirSalida, recibe un un pase del valor, una copia del valor cont desde el main + /// + /// El promedio de datos dados. + static void imprimirSalida(float mediaarit) + { + Console.WriteLine(mediaarit); + } + } +} \ No newline at end of file diff --git a/Unidad 3-Funciones/Ejercicio3.c b/Unidad 3-Funciones/Ejercicio3.c index 9d94bb1..cbc5c0d 100644 --- a/Unidad 3-Funciones/Ejercicio3.c +++ b/Unidad 3-Funciones/Ejercicio3.c @@ -1,71 +1,84 @@ -/* - Autor: Carlos Chan Gongora 15/02/2019 - Entradas: Un numero entero. - Salidas: El dia de la semana correspondiente al numero ingresado. - Procedimiento general: Lee un numero, valida que este en el rango de 1 a 7 e Imprime - el dia correspondiente. -*/ +/** + * @file ejercicio3.c + * @author Manuel Peraza + * @brief Programa que introduzca el número del día de la semana (1-7) y se visualice el nombre del día. + * Entrada: Numeros enteros del 1 a 7 + * Salida: Nombre del dia de la semana + * Ejemplo: + * Entrada: 1 + * Salida: Lunes + * @version 0.1 + * @date 2020-02-22 + * + * @copyright Copyright (c) 2020 + * + */ #include -int entrada(); -int validarNumero(int); -void imprimirDia(int); - -int main(){ - // Entradas - int num; - do{ - num = entrada(); - }while(!validarNumero(num)); - - // Proceso - imprimirDia(num); - - return 0; -} - -// Lee un numero -int entrada(){ - int numero = 1; - printf("Ingrese un numero entre 1 y 7: "); - scanf("%d", &numero); - return numero; +/** + * @brief Se inicializan los prototipos de las funciones + */ +void leerEntrada(int *); +void imprimeSalida(int); +/** + * @brief El bloque e abajo ess el Main, ahi es donde se ejecuta el código, dentro contiene las variables que se utilizaron + * para el algoritmo. Tambien contiene las funciones que se encarguen de la entrada. + * @return int + */ +int main() +{ + //Entrada + //se inicializan las variables + int dia=0; + //Funcion que lee la variable + leerEntrada(&dia); + //Salida + //Funcion que imprime la salida + imprimeSalida(dia); + return 0; } -// Valida que el numero ingresado sea mayor a cero y menor a 8, devuelve 1 si es mayor y 0 si es menor. -int validarNumero(int num){ - int validar = 0; - if(num > 0 && num < 8){ - validar = 1; - } - else{ - validar = 0; - } - return validar; +/** + * @brief La funcion leerEntrada se encarga de que el usuario introdusca los valores y por pase de referencia tenga + * los mismos valores la variable en el bloque main + * @param _dia numero entero del 1 al 7 + */ +void leerEntrada(int *_dia) +{ + scanf("%d", _dia); } -// Recibe un entero e imprime el dia correspondiente -void imprimirDia(int num){ - printf("El dia correspondiente al numero %d es: ", num); - switch (num) { - case 1: printf("Lunes"); - break; - case 2: printf("Martes"); - break; - case 3: printf("Miercoles"); - break; - case 4: printf("Jueves"); - break; - case 5: printf("Viernes"); - break; - case 6: printf("Sabado"); - break; - case 7: printf("Domingo"); - break; - default: printf("El numero no esta en el rango de 1 a 7.\n"); - } +/** + * @brief La funcion imprimeSalida se encarga de imprimir el nombre del dia de la semana de acuerdo al numero de + * ingresado en la variable + * @param num + */ +void imprimeSalida(int num) +{ + if(num==1) + { + printf("Lunes"); + } + else if(num==2) + { + printf("Martes"); + } + else if(num==3) + { + printf("Miercoles"); + } + else if(num==4) + { + printf("Jueves"); + } + else if(num==5) + { + printf("Viernes"); + } + else if(num==6) + { + printf("Sabado"); + } + else if(num==7) + { + printf("Domingo"); + } } -/* -QA: Hector Abraham V. Cosgalla -Entradas: 4, 2, 8 y 7 -Salidas: Jueves, Martes, nada y Domingo (respectivamente) -Comentarios: Todo excelente. -*/ diff --git a/Unidad 3-Funciones/Ejercicio3.cs b/Unidad 3-Funciones/Ejercicio3.cs new file mode 100644 index 0000000..6a1b245 --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio3.cs @@ -0,0 +1,84 @@ +/// +/// Autor: Manuel Peraza +/// Descricion: introduzca el número del día de la semana (1-7) y +/// se visualice el nombre del día. +/// Entrada: Un numero entero de 1 a 7 +/// Salida: Nombre del dia de la semana +/// Ejemplo: +/// Entrada: 1 +/// Salida: Lunes +/// + +using System; + +namespace ejercicio3 +{ + class DiaSemana + { + static void Main() + { + //Declaracion de variables + int dia = 0; String nombreDia; + //Entrada + leerDia(ref dia); + //Proceso + nombreDia = queDiaEs(dia); + //Salida + salida( nombreDia); + } + + static void leerDia(ref int _dia)//Funcion para la entrada del numero + { + + _dia = Convert.ToInt32(Console.ReadLine()); + + + } + static String queDiaEs(int num)//Funcion para asignar el dia de la semana + { + //Declaracion de variable + string nombre = ""; + + //Condicional para asignacion de nombre de los dias de la semana + if (num == 1) + { + nombre = "Lunes"; + } + else if (num == 2) + { + nombre = "Martes"; + } + else if (num == 3) + { + nombre = "Miercoles"; + } + else if (num == 4) + { + nombre = "Jueves"; + } + else if (num == 5) + { + nombre = "Viernes"; + } + else if (num == 6) + { + nombre = "Sabado"; + } + else if (num == 7) + { + nombre = "Domingo"; + } + else if (num > 7)//Si se ingresa un numero mayor a 7 la asignacion es vacia + { + nombre = ""; + } + + return nombre; + + } + static void salida(String nombreDia)//Impresion del dia de la semana + { + Console.WriteLine(nombreDia); + } + } +} diff --git a/Unidad 3-Funciones/Ejercicio33.c b/Unidad 3-Funciones/Ejercicio33.c new file mode 100644 index 0000000..769d04b --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio33.c @@ -0,0 +1,75 @@ +/** + * @file Ejercicio33.c + * @author Manuel peraza + * @brief Imprimir las primeras n tablas de multiplicar que incluyan desde el valor j hasta el valor k. + * Entrada: numeros enteros n, j y k + * Salida: Primeras n tablas de multiplicar de j a K + * Ejemplo: + * Entrada 1 2 3 + * Salida: 2 3 4 6 + * @version 0.1 + * @date 2020-02-22 + * + * @copyright Copyright (c) 2020 + * + */ + + +#include + +// incializador de prototipos de las funciones +void leerNum(int *); +int diferenteCero(int); +void imprimirSalida(int , int , int ); + +int main() +{ + //Entrada + //Se inicializan los valores + int numTabla=0, inicio=0, fin=0; + //funcion para lectura de datos de entrada + leerNum(&numTabla); + leerNum(&inicio); + leerNum(&fin); + //Proceso + //Funcion para verificar que el numTabla se diferente a 0 + numTabla = diferenteCero(numTabla); + //Salida + //Funcion para imprimir los resultados + imprimirSalida(numTabla, inicio, fin); + return 0; +} +void leerNum(int *_num)//Funcion para leer los datos de entrada +{ + scanf("%d", _num); +} + int diferenteCero(int num) //Funcion que verifica si la tabla sea diferente a 0 + { + if (num == 0) //condicional en caso de detectar 0 convierte el valor en 1 + { + num = 1; + } + return num; + } + void imprimirSalida( int num, int j, int k) //funcion de Salida para imprimir n numeros y sus respectivas tablas + { + //se inicializan las variables + int cont=1; int res=0; + //condicional para modificar el contador + if (j>k) + { + cont = -1; + } + + //ciclo para hacer el recorrido y realizar la impresion de los resultados + for (int h = 1; h <= num; h++) + { + for (int i = j; i <= k; i = i + cont) + { + res = h * i; + + printf("%d""\n", res); + } + } + + } diff --git a/Unidad 3-Funciones/Ejercicio39.c b/Unidad 3-Funciones/Ejercicio39.c index b286129..accd3f5 100644 --- a/Unidad 3-Funciones/Ejercicio39.c +++ b/Unidad 3-Funciones/Ejercicio39.c @@ -1,24 +1,90 @@ -/* -Autor: Amílcar A. Ramírez Patrón -Proceso: La suma de los impares del 0 al 10 en una variable -Salida: El resultado de la suma -*/ +/** + * @file Ejercicio39.c + * @author Carlos Greene + * Entrada: Un numero entero impar entre 0 a 10 + * Salida: La suma de los numero impares hasta la entrada + * @brief Programa que suma los números impares del 0 al 10 y muestre el resultado + * @version 0.1 + * @date 2020-02-21 + * @copyright Copyright (c) 2020 + */ #include -void sumaDeImpares(int*); -int main(int argc, char *argv[]) { - int resultado; - sumaDeImpares(&resultado); - return 0; +/** + * @brief Se inicializan los prototipos de las funciones + */ +void leerEntrada(int *); +int sumarNumeros(int); +void imprimirSalida(int); + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecuta el código, dentro contiene las variables que se utilizaron + * para algoritmo. Tambien contiene las funciones que se encargan de la entrada, proceso y salida. + * @return int + */ +int main() +{ + //Entrada + //Se inicializan las variables + int entrada=0, suma=0; + + //Función que lee la variable + leerEntrada(&entrada); + + //Proceso + //Función que suma los numeros impares + suma=sumarNumeros(entrada); + + //Salida + //Función que imprime la salida + imprimirSalida(suma); + + return 0; +} + +/** + * @brief La función leerEntrada se encarga de que el usuario introdusca los valores a las variables y luego, a traves de pase por + * referencia, las varieble del Main tengran los mismos valores de los que se introdujeron en la función. + * @param _entrada Número entero positivo (Preferiblemente del 0 al 10) + */ +void leerEntrada(int *_entrada) +{//Se lee la variable + scanf("%d", _entrada); } -void sumaDeImpares(int *resultado){ - printf("%d", *resultado = (1 + 3 + 5 + 7 + 9)); +/** + * @brief La función sumarNumeros recibe, a traves de pase por valor, una copia del valor que está en el Main, se encarga de + * sumar los números impares del 0 hasta el valor de la variable. + * @param numero Número en que se detendrá de sumar + * @return int Retorna un una variable int que contiene la suma de numeros impares + */ +int sumarNumeros(int numero) +{ + int _suma=0;//Se inicializa la variable de retorno + if(numero>10)//Se verifica que no sea mayor de 10 + { + _suma=25;//Si es mayor de diez, la variable de salida será 25 + } + else + { + for(int i=0; i<=numero; i++)//Se inicia in ciclo for para sumar los numeros impares + { + if(i%2 != 0)//Se verifica que el numero no sea par + { + _suma = _suma+i;//Se suma los numeros impares + } + } + } + + return _suma;//Se retorna la suma } -/* -QA: Realizó: Daniel Delfin -Entradas: None -Salidas: 25 -Funciona Correctamente. -*/ +/** + * @brief La función imprimirSalida recibe, a traves de pase por valor, una copia del valor que está en el Main de la variable que + * contiene la suma de los impares, la función sólo imprime dicho valor. + * @param _salida La copia del valor que contiene la suma de impares + */ +void imprimirSalida(int _salida) +{//Se imprime la salida + printf("%d", _salida); +} \ No newline at end of file diff --git a/Unidad 3-Funciones/Ejercicio39.cs b/Unidad 3-Funciones/Ejercicio39.cs new file mode 100644 index 0000000..47ec996 --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio39.cs @@ -0,0 +1,85 @@ +/// +///Autor:Carlos Greene +//Entrada: Un numero entero impar entre 0 a 10 +//Salida: La suma de los numero impares hasta la entrada +//Descripción: Programa que suma los números impares del 0 al 10 y muestre el resultado +/// +using System; + +namespace Ejercicio39 +{ + class Program + { + /// + /// El bloque de abajo es el Main, ahí es donde se ejecuta el código, dentro contiene las variables que se utilizaron + /// para algoritmo. Tambien contiene las funciones que se encargan de la entrada, proceso y salida. + /// + /// + static void Main(string[] args) + { + //Entrada + //Se inicializan las variables + uint entrada=0, suma=0; + + //Función que lee la variable + leerEntrada(ref entrada); + + //Proceso + //Función que suma los numeros impares + suma=sumarNumeros(entrada); + + //Salida + //Función que imprime la salida + imprimirSalida(suma); + + } + + /// + /// La función leerEntrada se encarga de que el usuario dé los valores a las variables y luego, a traves de pase por + /// referencia, las varieble del Main tengran los mismos valores de los que se introdujeron en la función. + /// + /// Número entero positivo (Preferiblemente del 0 al 10) + static void leerEntrada(ref uint _entrada) + {//Se lee la variable + _entrada=Convert.ToUInt32(Console.ReadLine()); + } + + /// + /// La función sumarNumeros recibe, a traves de pase por valor, una copia del valor que está en el Main, se encarga de + /// sumar los números impares del 0 hasta el valor de la variable. + /// + /// Número en que se detendrá de sumar + /// Retorna un una variable uint que contiene la suma de numeros impares + static uint sumarNumeros(uint numero) + { + uint _suma=0;//Se inicializa la variable de retorno + if(numero>10)//Se verifica que no sea mayor de 10 + { + _suma=25;//Si es mayor de diez, la variable de salida será 25 + } + else + { + for(uint i=0; i<=numero; i++)//Se inicia in ciclo for para sumar los numeros impares + { + if(i%2 != 0)//Se verifica que el numero no sea par + { + _suma = _suma+i;//Se suma los numeros impares + } + } + } + + return _suma;//Se retorna la suma + } + + /// + /// La función imprimirSalida recibe, a traves de pase por valor, una copia del valor que está en el Main de la variable que + /// contiene la suma de los impares, la función sólo imprime dicho valor. + /// + /// La copia del valor que contiene la suma de impares + static void imprimirSalida(uint _salida) + {//Se imprime la salida + Console.WriteLine(_salida); + } + + } +} diff --git a/Unidad 3-Funciones/Ejercicio45.c b/Unidad 3-Funciones/Ejercicio45.c new file mode 100644 index 0000000..1046093 --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio45.c @@ -0,0 +1,92 @@ +/** + * @file Ejercicio 45.c + * @author Giovanni Quintal + * Entrada: Un numero entero + * Salida: "El numero es primo", "El numero no es primo" + * @brief Programa que determina si un numero es primo o no. + * @version 0.1 + * @date 2020-02-23 + * + * @copyright Copyright (c) 2020 + * + */ +#include + +/** +* @brief Se inicializan los prototipos de las funciones +*/ + +void leerEntrada(int *); +int calcularContadores(int); +void imprimirSalida(int); + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + * para el algoritmo. Tambien contiene las funciones de la entrada, proceso y la salida. + * @return int + */ + +int main() +{ + //Entrada + //Se inicializan las variables + int a = 0, cont=0; + //Función que lee la variable + leerEntrada(&a); + + //Proceso + //Funcion que determina los contadores + cont=calcularContadores(a); + + //Salida + //Función que imprime la salida + imprimirSalida(cont); + + return 0; +} + +/** + * @brief La función leerEntrada se encarga de de pedir el valor de la variable a y a traves con el pase de refencia, + * la variable del main tendra los mismo valores dado por el usuario + * + * @param i Número entero + */ + void leerEntrada(int *a) + { + scanf("%d", a); + } + +/** + * @brief La función calcularContadores determinara si calcular la variable mod con i = 0 se determinaran los contadores. + * @param a + * @return int retorna la variable int + */ +int calcularContadores(int a) + { + int conta = 0; + for (int i=1;i<=a;i++) + { + if (a%i==0) + { + conta = conta+1; + } + } + return conta; +} +/** + * @brief La función imprimirSalida, recibe un un pase del valor, una copia del valor cont desde el main y lo pone en la función i para determinar su salida. + * + * @param cont Contadores de la función anterior. + */ +void imprimirSalida(int cont) +{ + if (cont==2) + { + printf("El numero es primo.\n"); + } + else + { + printf("El numero no es primo.\n"); + } +} + diff --git a/Unidad 3-Funciones/Ejercicio45.cs b/Unidad 3-Funciones/Ejercicio45.cs new file mode 100644 index 0000000..d180382 --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio45.cs @@ -0,0 +1,89 @@ +/// +/// /Giovanni Quintal +/// Entrada: Un numero entero +/// Salida: "El numero es primo", "El numero no es primo" +/// Descripción: Programa que determina si un numero es primo o no. +/// +using System; + +namespace Ejercicio45 +{ + class Program + { + /// + /// El bloque de abajo es el Main, ahí es donde se ejecutara el código, dentro contiene la variable que se se utilizaron + /// para el algoritmo. Tambien contiene las funciones de la entrada, proceso y la salida. + /// + /// + + static void Main(string[] args) + { + //Entrada + //Se inicializan las variables + int a = 0, cont=0; + + //Función que lee la variable + leerEntrada(ref a); + + //Proceso + //Funcion que determina los contadores + cont=calcularContadores(a); + + //Salida + //Función que imprime la salida + imprimirSalida(cont); + + } + /// + /// La función leerEntrada se encarga de de pedir el valor de la variable a y a traves con el pase de refencia, + /// la variable del main tendra los mismo valores dado por el usuario + /// + /// Numero entero + + static void leerEntrada(ref int a) + {//Se lee la variable + a=Convert.ToInt32(Console.ReadLine()); + + } + + /// + /// La función calcularContadores determinara si calcular la variable mod con i = 0 se determinaran los contadores. + /// + /// + /// //int retorna la variable int + + static int calcularContadores(int a) + { + int conta = 0; + + for (int i = 1; i <= a; i++) + { + if (a%i == 0) + { + conta = conta + 1; + + } + } + return conta; + } + + /// + /// La función imprimirSalida, recibe un un pase del valor, una copia del valor cont desde el main y lo pone en la función i para determinar su salida. + /// + /// Contadores de la función anterior. + + static void imprimirSalida(int cont) + { + if (cont == 2) + { + Console.WriteLine("El numero es primo"); + } + else + { + Console.WriteLine("El numero no es primo"); + } + } + + } + +} \ No newline at end of file diff --git a/Unidad 3-Funciones/Ejercicio50.c b/Unidad 3-Funciones/Ejercicio50.c new file mode 100644 index 0000000..80396ad --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio50.c @@ -0,0 +1,100 @@ +/** + * @file Ejercicio50.c + * @author Carlos Greene + * Entrada: Un numero entero positivo + * Salidad: Número cercarno al valor Euler + * @brief Programa que que estime el valor de la constante matemática e, el numero introducido es la precisión con la que se quiere obtener el valor de e. + * @version 0.1 + * @date 2020-02-22 + * @copyright Copyright (c) 2020 + * + */ +#include +#include + +/** + * @brief Se inicializan los prototipos + */ +void leerEntrada(int *); +float sumaParaEuler(int); +void imprimirSalida(float); + +/** + * @brief El bloque de abajo es el Main, ahí es donde se ejecuta el código, dentro contiene las variables que se utilizaron + * para algoritmo. Tambien contiene las funciones que se encargan de la entrada, proceso y salida. + * @return int + */ +int main() +{ + //Entrada + //Se inicializan las variables + int entrada=0; + float suma=0; + + //Se lee el la entrada + leerEntrada(&entrada); + + //Proceso + //Con el valor introducido, se obtiene la suma que hacerca a Euler + suma=sumaParaEuler(entrada); + + //Salida + //Se imprime la suma + imprimirSalida(suma); + + return 0; +} + +/** + * @brief La función leerEntrada se encarga de que el usuario dé los valores a las variables y luego, a traves de pase por + * referencia, las varieble del Main tengran los mismos valores de los que se introdujeron en la función. + * @param _entrada Número entero positivo + */ +void leerEntrada(int *_entrada) +{//Funcion que lee la entrada + scanf("%d", _entrada); +} + +/** + * @brief La función sumaParaEule recibe, a traves de pase por valor, una copia del valor de entrada que está en el Main, se encarga + * hacer una sumatoria de una serie de 1 entre factorial de un numero hasta llegar el valor de la variable que se hubica en + * el parámetro de la función, con el fin de acercarse al valor de Euler. + * @param numero Número en que se detendrá la serie + * @return float Una variable de tipo float que contiene la suma que se acerca a Euler + */ +float sumaParaEuler(int numero) +{//Funcion que hacerca a Euler + float euler=0, fact=1; + if(numero == 0) //Se compara si el número introducido es cero + { + euler = 1; //Si el número es cero, entonces su factorial será 1 por conveniencia + } + else + { //Si no es igual a cero entonces + for(int i = 1; i <= numero; i++) //Se hace un ciclo repetitivo para sumar la serie de factoriales + { + fact=1; //Se inicializa la variable fact + + for(float n = 1; n <= i; n++) //Se hace otro ciclo repetitivo para calcular factoriales + { + fact = fact*n; //Se calcula factorial multiplicando la veriable fact por n del ciclo + } + + euler = euler + (1/fact); //Se suma la variable euler con 1 entre la variable facorial + + } + } + return euler;//Retorna el valor de euler +} + +/** + * @brief La función imprimirSalida recibe, a traves de pase por valor, una copia del valor que está en el Main de la variable que + * contiene la suma que acerca al valor de Euler. La función solo imprimerá dicho valor. + * @param _salida La suma que se apróxima a Euler + */ +void imprimirSalida(float _salida) +{//Funcion que imprime la salida + _salida=floorf(_salida*1000000)/1000000; + printf("%f", _salida); +} + diff --git a/Unidad 3-Funciones/Ejercicio50.cs b/Unidad 3-Funciones/Ejercicio50.cs new file mode 100644 index 0000000..164af99 --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio50.cs @@ -0,0 +1,94 @@ +/// +/// Autor:Carlos Greene +/// Entrada: Un numero entero positivo +/// Salida: Número cercarno al valor Euler +/// Descripción: Programa que que estime el valor de la constante matemática e, el numero introducido es la precisión con la que +/// se quiere obtener el valor de e. +/// +using System; + +namespace Ejercicio50 +{ + class Program + { + /// + /// El bloque de abajo es el Main, ahí es donde se ejecuta el código, dentro contiene las variables que se utilizaron + /// para algoritmo. Tambien contiene las funciones que se encargan de la entrada, proceso y salida. + /// + /// + static void Main(string[] args) + { + //Entrada + //Se inicializan las variables + uint entrada=0; + float suma=0; + + //Se lee el la entrada + LeerEntrada(ref entrada); + + //Proceso + //Con el valor introducido, se obtiene la suma que hacerca a Euler + suma=sumaParaEuler(entrada); + + //Salida + //Se imprime la suma + imprimirSalida(suma); + } + + /// + /// La función leerEntrada se encarga de que el usuario dé los valores a las variables y luego, a traves de pase por + /// referencia, las varieble del Main tengran los mismos valores de los que se introdujeron en la función. + /// + /// Número entero positivo + static void LeerEntrada(ref uint _entrada) + {//Funcion que lee la entrada + _entrada=Convert.ToUInt32(Console.ReadLine()); + } + + /// + /// La función sumaParaEule recibe, a traves de pase por valor, una copia del valor de entrada que está en el Main, se encarga + /// hacer una sumatoria de una serie de 1 entre factorial de un numero hasta llegar el valor de la variable que se hubica en + /// en el parámetro de la función, con el fin de acercarse al valor de Euler. + /// + /// Número en que se detendrá la serie + /// Una variable de tipo float que contiene la suma que se acerca a Euler + static float sumaParaEuler(uint numero) + {//Funcion que hacerca a Euler + float euler=0, fact=1; + if(numero == 0) //Se compara si el número introducido es cero + { + euler = 1; //Si el número es cero, entonces su factorial será 1 por conveniencia + } + else + { //Si no es igual a cero entonces + for(int i = 1; i <= numero; i++) //Se hace un ciclo repetitivo para sumar la serie de factoriales + { + fact=1; //Se inicializa la variable fact + + for(float n = 1; n <= i; n++) //Se hace otro ciclo repetitivo para calcular factoriales + { + fact = fact*n; //Se calcula factorial multiplicando la veriable fact por n del ciclo + } + + euler = euler + (1/fact); //Se suma la variable euler con 1 entre la variable facorial + + } + } + return euler;//Retorna el valor de euler + } + + /// + /// La función imprimirSalida recibe, a traves de pase por valor, una copia del valor que está en el Main de la variable que + /// contiene la suma que acerca al valor de Euler. La función solo imprimerá dicho valor. + /// + /// + static void imprimirSalida(float _salida) + {//Funcion que imprime la salida + Console.WriteLine(_salida); + } + + } +} +//Nota del autor: En C# las variables de tipo float imprimimen hasta 7 decimales y elimina los ceros decimales, por ejemplo, una variable +//float tiene un valor de 1.5000000, imprimirá exactamente 1.5, se quitan los 0 decimales. En cambio en C solo imprimimen hasta 6 decimales y +//no elimina los 0. diff --git a/Unidad 3-Funciones/Ejercicio9.c b/Unidad 3-Funciones/Ejercicio9.c new file mode 100644 index 0000000..98fd063 --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio9.c @@ -0,0 +1,99 @@ +/** + * @file Ejercicio9.c + * @author Jose Miron + * Entrada: Numero entero positivo N + * Salida: Cantidad de multiplos de 5 entre 1 y N + * @brief Programa que reciba un numero N y que te + * muestre cuantos múltiplos de 5 hay entre 1 y N + * @version 0.1 + * @date 2020-02-21 + * + * @copyright Copyright (c) 2020 + * + */ + + + +#include + +/** + * @brief Se inicializan los prototipos de funciones + * + */ +void leerNumero( int ); +int sumarNumero(int); +void imprimirSalida(int); + +/** + * @brief El bloque de abajo es el Main, ahi es donde se ejecuta el codigo, dentro contiene las variables que se utilizaron + * para el algoritmo. Tambien contiene las funciones que se encargan de la entrada, proceso y salida. + * @return int + */ + + int main() + { + //Declaración de variables + int numero=0, multiplo=0, salida=0; + + //Entrada + leerNumero(&numero); + + //Proceso + salida=calcularMultiplo(multiplo, numero); + + //Salida + ImprimirSalida(salida); + + return 0; + + } + + /** + * @brief La funcion leerNumero se encarga de que el usuario de los valores a las variables y luego, a traves de pase + * por referencia, las variables del Main tengan los mismos valores de los que se introdujeron en la funcion + * @param _numero + */ + + void leerNumero(int _numero) + { + //Se lee la variable + scanf("%d", _numero); + } + + + /** + * @brief + * La funcion calcularMultiplo recibe a traves de por valor, una copia del valor que esta en el Main, + * se encarga de calcular la cantidad de multiplos a partir de 1 hasta N + * @param multiplo + * @param _numero + * @return int + */ + int calcularMultiplo(int multiplo, int _numero) + { + int aux = 0;//Se inicializa la variable de retorno + for (int i = 0; multiplo <= _numero; i++)//Ciclo for para fijar limite de multiplos + { + multiplo = i * 5;//Multiplicacion por multiplos de 5 + aux = i - 1;//Se resta 1 a la cantidad total de multiplos + } + + + return aux; //Se retorna la variable + } + + + /** + * @brief La funcion imprimirSalida recibe a traves de pase por valor, una copia del valor que esta en el Main + * de la variable que contiene la cantidad de multiplos, la funcion solo imprime dicho valor + * @param multiplo + */ + void ImprimirSalida(int multiplo) + { + ////Se imprime la salida + printf("%d", multiplo); + + } + + + diff --git a/Unidad 3-Funciones/Ejercicio9.cs b/Unidad 3-Funciones/Ejercicio9.cs new file mode 100644 index 0000000..ee057ca --- /dev/null +++ b/Unidad 3-Funciones/Ejercicio9.cs @@ -0,0 +1,86 @@ +/// +///Autor: Jose Miron +/// Entrada: Numero entero positivo +/// Salida: Cantidad de multiplos de 5 entre 1 y N +///Descripcion:Programa para un programa que reciba un numero N y que te muestre cuantos múltiplos de 5 hay entre 1 y N +/// + + +using System; + +namespace Ejercicio9 +{ + class Program + { + /// + /// El bloque de abajo es el Main, ahi es donde se ejecuta el codigo, dentro contiene las variables que se utilizaron + /// para el algoritmo. Tambien contiene las funciones que se encargan de la entrada, proceso y salida. + /// + /// + static void Main(string[] args) + { + //Entrada + //Se inicializan las variables + int numero = 0, multiplo = 0, salida = 0; + + + //Función que lee la variable + leerNumero(ref numero); + + //Proceso + //Funcion que calcula la cantidad de multiplos + salida = calcularMultiplo(multiplo, numero); + + //Salida + //Funcion que imprime la salida + imprimirSalida(salida); + + } + + /// + /// La funcion leerNumero se encarga de que el usuario de los valores a las variables y luego, a traves de pase + /// por referencia, las variables del Main tengan los mismos valores de los que se introdujeron en la funcion + /// + /// + static void leerNumero(ref int _numero) + { + _numero = Convert.ToInt32(Console.ReadLine());//lectura de la variable + } + + + /// + /// La funcion calcularMultiplo recibe a traves de por valor, una copia del valor que esta en el Main, + /// se encarga de calcular la cantidad de multiplos a partir de 1 hasta N + /// + /// + /// + /// + static int calcularMultiplo(int multiplo, int _numero) + { + int aux = 0;//Se inicializa la variable de retorno + for (int i = 0; multiplo <= _numero; i++)//Ciclo for para fijar limite de multiplos + { + multiplo = i * 5;//Multiplicacion por multiplos de 5 + aux = i - 1;//Se resta 1 a la cantidad total de multiplos + } + + + return aux;//Se retorna la variable + } + + /// + /// La funcion imprimirSalida recibe a traves de pase por valor, una copia del valor que esta en el Main + /// de la variable que contiene la cantidad de multiplos, la funcion solo imprime dicho valor + /// + /// + static void imprimirSalida(int multiplo) + { + + //Se imprime la salida + Console.WriteLine(multiplo); + + } + + } + +} diff --git a/Unidad 3-Funciones/ejercicio33.cs b/Unidad 3-Funciones/ejercicio33.cs new file mode 100644 index 0000000..837680a --- /dev/null +++ b/Unidad 3-Funciones/ejercicio33.cs @@ -0,0 +1,56 @@ +using System; + +namespace ejercicio33 +{ + class Program + { + static void Main() + { + //Declaracion de variables + int numTabla = 0, inicio = 0, fin = 0; + //Entrada + leerNum(ref numTabla); + leerNum(ref inicio); + leerNum(ref fin); + + //proceso + numTabla = diferenteCero(numTabla); + + //Salida + salida(ref numTabla, ref inicio, ref fin); + + } + static void leerNum(ref int _num)//Funcion para leer numeros + { + _num = Convert.ToInt32(Console.ReadLine()); + } + static int diferenteCero(int num)//Funcion para evitar que sea cero la tabla + { + if (num == 0) + { + num = 1; + } + return num; + } + static void salida(ref int _num, ref int _j, ref int _k) //funcion de Salida para imprimir n numeros y sus respectivas tablas + { + int cont=1; int res=0; + + if (_j>_k) + { + cont = -1; + } + + for (int h = 1; h <= _num; h++) + { + for (int i = _j; i <= _k; i = i + cont) + { + res = h * i; + + Console.WriteLine(res); + } + } + + } + } +}