Mostrando entradas con la etiqueta Herramientas de programacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta Herramientas de programacion. Mostrar todas las entradas

martes, 8 de noviembre de 2022

Creando formularios en C#

 

Dificultades en la creación de formularios en Visual Studio


+ El cambio de apps en consola a un archivo completamente dedicado a crear forms resultó muy confuso al inicio.

+ Nuevas funciones, características, clases, etc. a aplicar.

+ Asignar funciones a los botones del form.




Reflexión:
El paso de apps en consola a la aplicación de elementos gráficos nos permite tener una prueba del Front-End de la programación en C# que resultará muy útil en futuros ejercicios.

Manipulación de archivos de texto

 

Código necesario que permite abrir un archivo de texto ubicado en el escritorio, muestra su contenido y permite agregar una nueva línea de texto con su nombre completo
El método File.ReadLines() es el mejor método encontrado para leer un archivo de texto línea por línea eficientemente. Este método devuelve un Enumerable para archivos de texto grandes, por eso hemos creado un objeto Enumerable string para almacenar el fichero de texto.
La sintaxis correcta para usar este método es la siguiente:

File.ReadLines(FileName);
Código de ejemplo:
using System;
using System.Collections.Generic;
using System.IO;
public class ReadFile
{
public static void Main()
{
string FileToRead = @"D:\New folder\textfile.txt";
// Crear un objeto numerable
IEnumerable<string> line = File.ReadLines(FileToRead);
Console.WriteLine(String.Join(Environment.NewLine, line));
}
}
Resultado:
// Todo el texto que contenga el archivo aparecera aca 

El método File.ReadLines() lanza una IOException si hay un problema al abrir el archivo y FileNotFoundException si el archivo solicitado no existe. 
Escribir en el archivo:
La clase StreamWriter se utiliza para escribir texto en una secuencia o un archivo en C#. El método SreamWriter.WriteLine() escribe una línea completa en C#. Podemos inicializar un objeto de la clase StreamWriter con el método File.AppendText() para inicializar una instancia de la clase StreamWriter que agregaría los datos al archivo. 

using System;
using System.IO;
namespace write_to_a_file
{
class Program
{
static void Main(string[] args)
{
string path = "C:\\File\\file.txt";
string Text = "Juan Felipe Aristizabal Diaz";
using (StreamWriter writetext = new StreamWriter(path))
{
writetext.WriteLine(Text);
}
}
}
}
Contenido del archivo.txt:
Juan Felipe Aristizabal Diaz

En el código anterior, creamos un objeto de la clase StreamWriter y escribimos la variable de cadena Text en el archivo file.txt dentro del directorio C:\File con el writetext.WriteLine(Text) función en C#.

Modelo clase

 

Conceptos de agregación y composición                                                      

Composición: La Composición, es una relación más fuerte que la Agregación. La Composición se suele representar en UML con un rombo de color negro en un extremo de las clases.        

Ejemplo: 

Aquí, estaríamos diciendo que un objeto Car está compuesto por uno o varios objetos de tipo Wheel. Por otro lado, también estamos diciendo que la clase Wheel es parte de la clase Car.

También diremos que al eliminar la clase Car, eliminaremos por lo tanto, la clase Wheel, ya que la relación entre ambas clases, es estrecha.


Agregaciónes una relación que define que un objeto es parte de otro objeto. Cuando definimos que un objeto tiene como atributo otro objeto decimos que es una agregación. A través de la agregación se definen objetos compuestos.

 Se suele representar en UML con un rombo de color transparente en un extremo de las clases.

Ejemplo:


La Agregación tiene una relación más débil que la Composición. Tanto es así, que cuando eliminamos la clase Customer, no tenemos porqué eliminar la clase Order, de manera tal que la clase Order podría continuar existiendo.

Aquí, un Customer agrupa 0, 1 o muchas Orders.

jueves, 20 de octubre de 2022

arreglos en lenguaje de programación

 

Reflexión sobre el arreglo multidimensional

Las matrices o arreglos multidimensionales resultan muy útiles en una gran cantidad de casos; al seuna estructura que almacena una o más variables del mismo tipo de dato que el array al momento de crearlo, podemos usarlo cómo un cofre de datos que nos permite acceder a cualquiera de estos en el momento que lo necesitemos. 



Estructura:
Para manejar un arreglo, las operaciones a efectuarse son:

  • Declaración del arreglo, 
  • Creación del arreglo,
  • Inicialización de los elementos del arreglo, 
  •  Acceso a los elementos del arreglo. 


Manejan una estructura bastante intuitiva que permite a programadores menos experimentados (Nosotros los estudiantes) usar las matrices con facilidad en ejercicios varios a través de los cursos.  


Fuentes:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays/multidimensional-arrays


http://csharp-facilito.blogspot.com/2013/07/matrices-o-arreglos-multidimensionales-en-c-sharp.html

Práctica sobre funciones

 

Concepto de funciones recursivas 

Es una técnica de programación que nos permite que un bloque de instrucciones se ejecute n veces. Remplaza en ocasiones a estructuras repetitivas.

Una función es recursiva cuando el cuerpo de la función utiliza a la propia función. Dentro de una función recursiva suelen distinguirse dos partes:
 -   Los casos base: Son aquellos que para su solución no requieren utilizar la función que se está definiendo.
 -   Los casos recursivos: Son aquellos que sí que requieren utilizar la función que se está definiendo.


Las definiciones recursivas funcionan siempre y cuando las llamadas recursivas se realicen de forma que en algún momento se lleguen a los casos base.

Una función es recursiva final cuando tras la llamada recursiva no hay que realizar ningún cómputo adicional. Es decir, el valor devuelto en la llamada recursiva es igual al valor que debe devolver la función.
 

Ejemplos

1. Para calcular el factorial de un número se distinguen dos casos: si el número es cero o si es mayor. El primer caso es un caso base, pues sabemos que la solución es 1, mientras que para el resto de los casos utilizaremos una llamada recursiva. 

La distinción de casos puede realizarse por cualquiera de los 4 métodos que conocemos.  Por ejemplo con el uso de patrones:

    fact 0 = 1
    fact n = n * fact (n-1)

La recursión terminará para cualquier valor de entrada positivo, pues en cada llamada recursiva el parámetro se va decrementando, hasta que en algún momento llegue a valer 0. 

La recursión no es final, pues tras la llamada recursiva es necesario multiplicar el valor obtenido por el parámetro de entrada.

La función anterior puede convertirse en final si se añade un parámetro acumulador:

    fact n = fact' n 1
    fact' 0 acum = acum
    fact' n acum = fact' (n-1) (n*acum)


2. La recursión es una estrategia muy potente cuando se utilizan listas. Veamos por ejemplo cómo calcular la longitud de una lista:

    long [] = 0
    long (x:xs) = 1 + long xs

Nótese que la distinción de casos se hace en base a si la lista es vacía o no. Sabemos que la definición termina porque en cada llamada recursiva se reduce en una unidad la longitud de la lista, por lo que en algún momento llegará a estar vacía.

3. Imprimir los números de 1 a 5 en pantalla utilizando recursividad.

Programa:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Recursividad4
{
    public class Recursividad
    {

        void Imprimir(int x)
        {
            if (x > 0)
            {
                Imprimir(x - 1);
                Console.WriteLine(x);
            }
        }

        static void Main(string[] args)
        {
            Recursividad re = new Recursividad();
            re.Imprimir(5);
            Console.ReadKey();
        }
    }
}




Aplicando el manejo de vectores, matrices en el desarrollo de aplicaciones

 Código fuente ejercicio:

using System;


namespace TallerItert_Juan_Felipe_Aristizabal_Diaz

{

    class Program

    {


        static void Main(string[] args)

        {

float noota1, noota2, noota3, noota4;

            int n = 0;

            //   int ins, suf, sob, exc;

            Console.WriteLine("Digite el número de estudiantes: ");

            n = int.Parse(Console.ReadLine());

            for (int i = 1; i <= n; i++)

            {

                Console.WriteLine("Ingrese su nombre: ");

                string nombre = Console.ReadLine();

                Console.WriteLine("Ingrese su nota 1: ");

                string lineaa = Console.ReadLine();

                noota1 = 0;

                noota1 = float.Parse(lineaa);

                Console.WriteLine("Ingrese su nota 2: ");

                string lineaa1 = Console.ReadLine();

                noota2 = float.Parse(lineaa1);

                Console.WriteLine("Ingrese su nota 3: ");

                string lineaa2 = Console.ReadLine();

                noota3 = float.Parse(lineaa2);

                Console.WriteLine("Ingrese su nota 4: ");

                string lineaa3 = Console.ReadLine();

                noota4 = float.Parse(lineaa3);

                float promm2;

                float promm1 = (noota1 + noota2 + noota3 + noota4);

                promm2 = promm1 / 4;

                Console.WriteLine($"{nombre} tu promedio es de {prom2}");


                // Esta sección me saca error porque no reconoce las variables (ins,suf,sob,exc) aunque las declaré            

                //              {   



                //              if (prom2 < 2.94)

                //              {

                //                  ins = ins + 1;


                //              }

                //              if (prom2 == 2.95 && prom2 <= 3.94)

                //     {

                //       suf = suf + 1;


                //        }

                //          if (prom2 == 3.95 && prom2 <= 4.44)

                //           {

                //           sob = sob + 1;


                //       }

                //           if (prom2 > 4.44)

                //            {

                //            exc = exc + 1;


                //         }

                //         }

                //         }

                //              Console.WriteLine($"{ins} estudiantes en insuficiente");

                //               Console.WriteLine($"{suf} estudiantes en suficiente");

                //               Console.WriteLine($"{sob} estudiantes en sobresaliente");

                //               Console.WriteLine($"{exc} estudiantes en excelente");




            }

        }




    }

}


domingo, 11 de septiembre de 2022

“Aplicando instrucciones condicionales e iterativas” e indique cuáles son las diferencias entre los ciclos para y mientras.

 Ciclos While

Un ciclo While es una estructura que se utiliza para ejecutar un bloque de código repetidamente hasta que se cumple una condición determinada. Al ejecutar el VI, se ejecuta el código dentro del ciclo While y luego se evalúa la condición de la terminal.


Ciclos For

Un ciclo For es una estructura que se utiliza para ejecutar un bloque de código un número determinado de veces. Al ejecutar el VI, se evalúa la cantidad de iteraciones y luego se ejecuta el código.

martes, 2 de agosto de 2022

Herramientas de programación



Las herramientas de programación, o herramienta de desarrollo de software, son programas informáticos que los desarrolladores de software utilizan para crear, depurar, mantener, encontrar solución de errores, o apoyar programas y aplicaciones.



El término se refiere a la implementación de programas relativamente sencillos, que se pueden combinar para realizar una tarea, así como cuando una persona utiliza varias herramientas de mano para arreglar un objeto físico. La capacidad de utilizar una variedad de herramientas de forma productiva y sin que presente problemas es una característica de un buen ingeniero de software.

Mapa mental-informe final de auditoría