Software Library: MS-DOS Games






4.083 títulos que podemos jugar directamente en nuestro ordenador sin necesidad de instalar nada. Vale la pena echarle un vistazo. Te recordara otros tiempos dependiendo de la edad que tengas.

https://archive.org/details/softwarelibrary_msdos_games

Día del Año




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace OrdinalFecha_Forms
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int dia, mes, año;

            dia = int.Parse(textBox1.Text);
            mes = int.Parse(textBox2.Text);
            año = int.Parse(textBox3.Text);

            if (fechacorrecta(dia, mes, año) == 1)
                MostrarOrdinal(diadelaño(dia, mes, año));
            else
                MessageBox.Show("Fecha Incorrecta");
        }

        int bisiesto(int año)
        {
            if ((año % 4 == 0) && (año % 100 != 0) || (año % 400 == 0))
                return 1;
            else
                return 0;
        }
        int diasdelmes(int mes, int a)
        {
            int Numerodias = 0;
            switch (mes)
            {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12: Numerodias = 31; break;
                case 2:
                    if (bisiesto(a) == 1)
                        Numerodias = 29;
                    else
                        Numerodias = 28;
                    break;
                case 4:
                case 6:
                case 9:
                case 11: Numerodias = 30; break;

            }
            return Numerodias;
        }


Convertir a Números Romanos




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace NumerosRomanos_Forms
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int numeroentrada;


        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            int Miles, Centenas, Decenas, Unidades, RestoMiles, RestoCentenas, RestoDecenas, N;

            N = numeroentrada;
            Miles = N / 1000;
            RestoMiles = N % 1000;
            Centenas = RestoMiles / 100;
            RestoCentenas = RestoMiles % 100;
            Decenas = RestoCentenas / 10;
            RestoDecenas = RestoCentenas % 10;
            Unidades = RestoDecenas;


            switch (Miles)
            {
                case 1: textBox2.Text += "M"; break;
                case 2: textBox2.Text += "MM"; break;
                case 3: textBox2.Text += "MMM"; break;
            }
            switch (Centenas)
            {
                case 1: textBox2.Text += "C"; break;
                case 2: textBox2.Text += "CC"; break;
                case 3: textBox2.Text += "CCC"; break;
                case 4: textBox2.Text += "CD"; break;
                case 5: textBox2.Text += "D"; break;
                case 6: textBox2.Text += "DC"; break;
                case 7: textBox2.Text += "DCC"; break;
                case 8: textBox2.Text += "DCCC"; break;
                case 9: textBox2.Text += "CM"; break;
            }


GeeksQuiz







Una pagina para aprender a programar, en distintos lenguajes y varios niveles de aprendizaje, con su compilador en linea.

Vale la pena echarle un vistazo.














http://ide.geeksforgeeks.org/index.php
http://quiz.geeksforgeeks.org/


Números Catalan




En combinatoria, los números de Catalan forman una secuencia de números naturales que aparece en varios problemas de conteo que habitualmente son recursivos. Obtienen su nombre del matemático belga Eugène Charles Catalan (1814–1894).

El n-ésimo número de Catalan se obtiene, aplicando coeficientes binomiales, a partir de la siguiente fórmula:





Los números de Catalan satisfacen la siguiente relación de recurrencia:



Y también satisfacen:




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace NumerosCatalan_Forms_II
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int numero;

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            GeneradorNumerosCatalanes generator = new GeneradorNumerosCatalanes();

            for (int i = 0; i <= numero; i++)
            {
                textBox1.Text += "Numero Catalan 1ª Opción: " + " " + (i.ToString() + "-> " + (generator.PrimeraOpcion((i)) + "\r\n"));
                textBox1.Text += "Numero Catalan 2ª Opción: " + " " + (i.ToString() + "-> " + (generator.SegundaOpcion((i)) + "\r\n"));
                textBox1.Text += "Numero Catalan 3ª Opción: " + " " + (i.ToString() + "-> " + (generator.TerceraOpcionn((i)) + "\r\n"));
            }
        }

Background Worker




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;


namespace BarraProgreso_I
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            {
                for (int i = 1; i <= 100; i++)
                {
                    // Realizar una operación que consuma tiempo.
                    Thread.Sleep(50);
                    backgroundWorker1.ReportProgress(i);
                }
            }
        }


PerformanceCounter: Categories and Counters




El programa descrito te llevará a través del proceso de creación y configuración de PerformanceCounter instancias de componentes y su utilización para recuperar las listas de categorías de contador y contadores de rendimiento en el sistema. Un contador de rendimiento es el medio por el cual Windows recopila datos de rendimiento en diferentes recursos del sistema. Windows contiene un conjunto de contadores predefinidos, organizados en categorías, con el que se puede interactuar. Cada categoría y el contador está relacionada con un área específica de la funcionalidad del sistema.



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;

namespace CPU_II
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void btnGetCategories_Click_1(object sender, EventArgs e)
        {
            System.Diagnostics.PerformanceCounterCategory[] myCat2;
            // Remove the current contents of the list.
            this.lstCategories.Items.Clear();
            // Retrieve the categories.
            myCat2 =
               System.Diagnostics.PerformanceCounterCategory.GetCategories();
            // Add the retrieved categories to the list.
            for (int i = 0; i < myCat2.Length; i++)
            {
                this.lstCategories.Items.Add(myCat2[i].CategoryName);
            }
        }

        private void btnGetCounters_Click_1(object sender, EventArgs e)
        {
            string[] instanceNames;
            System.Collections.ArrayList counters = new
               System.Collections.ArrayList();
            if (this.lstCategories.SelectedIndex != -1)
            {
                System.Diagnostics.PerformanceCounterCategory mycat = new
                   System.Diagnostics.PerformanceCounterCategory(
                   this.lstCategories.SelectedItem.ToString());
                // Remove the current contents of the list.
                this.lstCounters.Items.Clear();
                // Retrieve the counters.
                try
                {
                    instanceNames = mycat.GetInstanceNames();
                    if (instanceNames.Length == 0)
                    {
                        counters.AddRange(mycat.GetCounters());
                    }
                    else
                    {
                        for (int i = 0; i < instanceNames.Length; i++)
                        {
                            counters.AddRange(mycat.GetCounters(instanceNames[i]));
                        }
                    }

Día de la Semana - II



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DisSemana_III_Forms
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int year, month, day;
        string dia, mes, año;

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            year = int.Parse(año);
            month = int.Parse(mes);
            day = int.Parse(dia);

            DateTime fecha = new DateTime(year, month, day);
            textBox4.Text = (fecha.ToString("dddd"));
        }

Día de la Semana




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Globalization;


namespace DiaSemana_Forms
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        string fechaentrada;

        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            textBox2.Clear();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            fechaentrada = textBox1.Text;
        }

Figura - XIX




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Figura_XIX_Forms
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int numero;

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            numero = int.Parse(textBox2.Text);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 1; i <= numero; i++)
            {
                for (int j = i; j <= numero; j++)
                {
                    textBox1.Text += "   ";

Asteriscos - VIII




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Asteriscos_VIII
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int n;
        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            n = int.Parse(textBox2.Text);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            for (int r = 1; r <= 10; r++, n--)
            {
                for (int c = 1; c <= n; c++)
                {
                    textBox1.Text += " C";
                }
                for (int c = 1; c <= r; c++)
                {
                    if (c == 1)
                    {
                        textBox1.Text += " *";
                    }
                    else
                    {
                        textBox1.Text += " C";
                    }
                }

Asteriscos - IX



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Asteriscos_IX
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int numero;
        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            numero = int.Parse(textBox2.Text);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            for (int r = 1; r <= numero; r++)
            {
                for (int c = 1; c <= numero; c++)
                {
                    if ((c == 1 && r == 1) || (c == 2 && r == 2) || (c == 3 && r == 3) || (c == 4 && r == 4) || (c == 5 && r == 5) ||
                        (c == 6 && r == 6) || (c == 7 && r == 7) || (c == 8 && r == 8) || (c == 9 && r == 9) || (c == 10 && r == 10))

Asteriscos - VII



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Asteriscos_VII
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int numero;

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            numero = int.Parse(textBox2.Text);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int r = 1; r <= numero; r++)
            {
                if (r % 2 == 0)
                {
                    textBox1.Text += "*";
                }
                else
                    if (r % 3 == 0)
                {
                    for (int c = 1; c <= r; c++)
                    {
                        textBox1.Text += "*";
                    }
                }
                else

Asteriscos - VI



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Asteriscos_VI
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int numero, r = 1;

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (; numero >= 1; numero--, r++)
            {
                for (int c = 1; c <= numero; c++)
                {
                    textBox1.Text += "*";
                }
                for (int sp = r; sp > 1; sp--)
                {
                    textBox1.Text += " ";
                }
                for (int sp = r; sp > 1; sp--)
                {
                    textBox1.Text += " ";
                }

Asteriscos - V




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Asteriscos_V
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int numero;

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            numero = int.Parse(textBox2.Text);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text += "*" + "\r\n";

            for (int r = 1; r <= numero; r++)
            {
                textBox1.Text += "*";

                for (int sp = 1; sp < r; sp++)
                {
                    textBox1.Text += " ";
                }
                textBox1.Text += "*" + "\r\n";

Asteriscos - IV



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Asteriscos_IV
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int numero, n;
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            n = numero;
            for (int r = 1; r <= numero; r++)
            {
                for (int sp = 1; sp <= r; sp++)
                {
                    textBox1.Text += " ";
                }
                for (int c = 1; c <= n; c++)
                {
                    textBox1.Text += "*";
                }
                for (int c = numero - r; c >= 1; c--)
                {
                    textBox1.Text += " *";
                }
                n--;
                textBox1.Text += "\r\n";
            }

Asteriscos - II




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Asteriscos_II
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        string entrada;

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < entrada.Length; i++)
            {
                for (int j = 0; j < i + 1; j++)
                {
                    textBox1.Text += (entrada[j]);
                }
                textBox1.Text += "\r\n";
            }
        }

Asteriscos - III





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Asteriscos_III
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int numero, espacio;

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            numero = int.Parse(textBox2.Text);
        }

        private void button1_Click(object sender, EventArgs e)
        {              
                espacio = numero - 1;

                for (int i = 1; i <= numero; i++)
                {
                    for (espacio = 1; espacio <= (numero - i); espacio++)
                    {
                        textBox1.Text += "   ";
                    }
                    for (int j = 1; j <= i; j++)
                    {
                        textBox1.Text += "  *";
                    }

Asteriscos - I





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Asteriscos_I
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        int numerodelineas;

        private void button1_Click(object sender, EventArgs e)
        {

            int contar = 1;

            for (int lineas = numerodelineas; lineas >= 1; lineas--)
            {

                for (int espacios = lineas; espacios >= 0; espacios--)
                {
                    textBox1.Text += "  ";
                }
                for (int asterisco = 1; asterisco <= contar; asterisco++)
                {
                    textBox1.Text += "   *";
                }
                contar++;
                textBox1.Text += "\r\n";
            }

Generador de Contraseñas - I




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GeneradorContraseñas
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int longitud;

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        static string generarpassword(int longitud)
        {
            const string caracteres = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!$%&/()=?¿*";
            StringBuilder respuesta = new StringBuilder();
            Random aleatorio = new Random();
            while (0 < longitud--)
            {
                respuesta.Append(caracteres[aleatorio.Next(caracteres.Length)]);
            }
            return respuesta.ToString();
        }

APPLE ][ - Emulador



Con este Ordenador fue con el que mas he disfrutado, o al menos así lo recuerdo yo. 
Este emulador es tan autentico que te llega a desesperar, dado que la velocidad de ejecución es la misma que tenia en su momento.




Se me hace raro jugar con un emulador de este ordenador con pantalla de color. Yo solo tuve monitores de fósforo verde. Y nunca conocí a nadie que tuviera un monitor de color. Que pobres eramos.




https://www.scullinsteel.com/apple2/

https://www.scullinsteel.com/apple2/about.html




JSSpeccy



Con un montón de juegos, para cargar y jugar. Permite elegir entre 48Kb y 128 KB
Que buenos recuerdos me trae el ZX Spectrum.
Vale la pena probarlo.




http://jsspeccy.zxdemo.org/

Abrir Buscador




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;

namespace AbrirBuscador
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string textobusqueda = textBox1.Text;
            BuscarGoogle(textobusqueda);
        }

        public static void BuscarGoogle(string pregunta)
        {
            Process.Start("https://google.com/search?q=" + pregunta);
        }
    }
}

Conjetura de los Números Primos Gemelos





Dos números primos se denominan gemelos si uno de ellos es igual al otro más dos unidades. Así pues, los números primos 3 y 5 forman una pareja de primos gemelos. Otros ejemplos de pares de primos gemelos son 11 y 13 ó 41 y 43.

La conjetura de los primos gemelos postula la existencia de infinitos pares de primos gemelos. Dado que es una conjetura, está todavía sin demostrar.

Existe un número infinito de primos p tales que p + 2 también es primo.

La conjetura ha sido investigada por muchos teóricos de números. La mayoría de matemáticos cree que la conjetura es cierta, y se basan en evidencias numéricas y razonamientos heurísticos sobre la distribución probabilística de los números primos.

En 1849, Alphonse de Polignac formuló una conjetura más general según la cual, para todo número natural k existen infinitos pares de primos cuya diferencia es 2·k. El caso k=1 es la conjetura de los números primos gemelos.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PrimosGemelos_Forms
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int n;
            int p, q, encontrados;
            int contar;

            p = 1;
            encontrados = 0;
            contar = 1;

            n = int.Parse(textBox2.Text);
            while (encontrados < n)
            {
                q = p + 2;
                if (es_primo(p) != 1 && es_primo(q) != 1)
                {
                    listBox1.Items.Add(p.ToString() + " - " + q.ToString() + " -> Son Primos Gemelos.   -  " + contar++.ToString());
                    encontrados++;
                }
                p++;
            }

        }

Formula de Herón




En geometría plana elemental la fórmula de Herón, cuya invención se atribuye al matemático griego Herón de Alejandría, da el área de un triángulo conociendo las longitudes de sus tres lados a, b y c:



donde s es el semiperímetro del triángulo:


Cualquier polígono simple puede ser separado en triángulos que a lo más tienen un lado común o un vértice común, mediante diagonales que parten de un único vértice apropiado. Esta subdivisión y la aplicación de la norma herodiana para el área triangular, facilita el cálculo del área de la región plana encerrada por el polígono simple, con solo medir longitudes, allí radica su importancia.

La fórmula también puede expresarse de estas otras formas:


La fórmula de Herón se distingue de otras fórmulas para hallar el área de un triángulo, como la de la mitad de la base por la altura o la de la mitad del módulo de un producto cruz de dos lados, por no requerir ninguna elección arbitraria de un lado como base o un vértice como origen.El hallazgo de la fórmula se ha atribuido a Herón de Alejandría, y se puede encontrar una prueba en su libro, Métrica, escrito en el año 60 dC. Se ha presumido que el físico matemático griego, Arquímedes, haya conocido la fórmula, dos siglos antes; y que lo puesto en Métrica es una colección de los conocimientos matemáticos disponibles en el mundo antiguo, es posible que la norma areal preceda a la referencia que figura en el tratado heroniano.
Herón de Alejandria
Una regla de área triangular equivalente a la de Herón fue conseguida por matemáticos chinos, independientemente de los griegos. Fue publicada en Shushu Jiuzhang ("Tratado matemático en nueve secciones"), escrito por Qin Jiushao y publicado en el año 1247.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Formula_de_Heron
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        int a, b, c;
        double s;
        double area;

        private void button1_Click(object sender, EventArgs e)
        {
            a = int.Parse(textBox1.Text);
            b = int.Parse(textBox2.Text);
            c = int.Parse(textBox3.Text);
            s = (a + b + c) / 2;
            area = Math.Sqrt(s * (s - a) * (s - b) * (s - c));
            textBox5.Text = s.ToString();
            textBox4.Text = area.ToString();
        }
    }
}

Estimacion / Calculo de PI - Método Monte Carlo





Consiste en estimar el valor del número irracional π usando números (pseudo) aleatorios. Consideremos pues un círculo de radio 1/2 inscrito en un cuadrado de lado 1, y supongamos que generamos un conjunto de N pares de coordenadas (x, y) ∈ [0, 1]2 aleatorias, con una distribución homogénea en el cuadrado unidad. Es sencillo convencerse de que el cociente entre el número de puntos n que caen dentro del círculo inscrito y el número de puntos totales N converge al cociente del área del círculo y la del cuadrado cuando N es grande. Esto es:
Esto nos permite estimar el valor de π mediante números aleatorios.

El Escriba Matemático (c)



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace PI_MetodoMonteCarlo_I
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double MonteCarloPi(int n)
            {
                int inside = 0;
                Random r = new Random();

                for (int i = 0; i < n; i++)
                {
                    if (Math.Pow(r.NextDouble(), 2) + Math.Pow(r.NextDouble(), 2) <= 1)
                    {
                        inside++;
                    }
                }