universidades de las fuerzas armadas2

13
Departamento: Ciencias de la Computación Carrera: Ingeniería en Sistemas Materia: Computación Grafica Fecha de entrega: 30 de Abril del 2015 Tema: Deber 2 Objetivo: Fortalecer los conocimientos adquiridos en la clase, sobre los inicios de C#. Marco Teórico: Al usar las variables damos un paso mas en lo que es programación grafica, podremos usar para hacer cálculos o dar condiciones, lo fundamental de este programa será centrarnos en lo que es el calculo del área de un triangulo cualquiera, para eso usaremos las formulas matemáticas que son Área: Altura:

Upload: archangelo-atrum

Post on 14-Apr-2016

18 views

Category:

Documents


0 download

DESCRIPTION

programa de calculo del área de un triangulo en C#

TRANSCRIPT

Page 1: Universidades de Las Fuerzas Armadas2

Departamento: Ciencias de la Computación

Carrera: Ingeniería en Sistemas

Materia: Computación Grafica

Fecha de entrega: 30 de Abril del 2015

Tema: Deber 2

Objetivo:

Fortalecer los conocimientos adquiridos en la clase, sobre los inicios de C#.

Marco Teórico:

Al usar las variables damos un paso mas en lo que es programación grafica, podremos usar para hacer cálculos o dar condiciones, lo fundamental de este programa será centrarnos en lo que es el calculo del área de un triangulo cualquiera, para eso usaremos las formulas matemáticas que son

Área:

Altura:

En el programa se usaran textbox, label, botones, gruopbox y picturebox.

En el textbox estará para el ingreso de coordenadas y su validación para que solo acepte numero, dando un mejor funcionamiento al código.

Page 2: Universidades de Las Fuerzas Armadas2

El label se usara para mostrar las respuestas de los cálculos y descripciones del resultado.

Botones para salir, graficar y calcular cada uno con su programación correspondida.

Picturebox es graficar, claro en esta parte del programa tendremos que hacer que nos grafique para esto usaremos un código donde se mostrara en el código.

Anuncio:

Realizar un programa donde se pueda sacar el área de un triángulo por medio de coordenadas.

Explicación:

El programa se ejecutara dando un mensaje luego de esto será la ventana donde podemos ingresar las coordenadas de cada punto para cada punto será el valor de 0 a 600, después de ingresar las coordenadas se dará click en el botón de graficar el cual se mostrara en el cuadro donde sale la gráfica y se desplegara el botón de calcular, en el caso hipotético donde uno de los puntos este fuera de rango saldrá un error dando señal cual se tiene que cambiar, corregido este valor se vuelve a mostrar el botón de calcular al ejecutar este botón se desplegara los resultados, existe un tercer botón donde nos da la opción de salir del programa.

Código del programa:

Código principal:

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.Speech.Synthesis;

namespace area_de_un_triangulo

{

public partial class Form1 : Form

Page 3: Universidades de Las Fuerzas Armadas2

{

validar val = new validar();

private int p1x, p1y, p2x, p2y, p3x, p3y;

private double ladoa, ladob, ladoc, resa, resb, resc, speri, ha, hb, hc;

SpeechSynthesizer voz = new SpeechSynthesizer();

public Form1()

{

InitializeComponent();

}

private void button1_Paint(object sender, PaintEventArgs e)

{

}

private void pictureBox1_Paint(object sender, PaintEventArgs e)

{

}

private void graficar()

{

Bitmap plano;

plano = new Bitmap(pictureBox1.Width, pictureBox1.Height);

pictureBox1.Image = (Image)plano;

Graphics grafico = Graphics.FromImage(plano);

grafico.DrawLine(Pens.Black, new Point(0, 300), new Point(610, 300));

grafico.DrawLine(Pens.Black, new Point(300, 0), new Point(300, 610));

p1x = int.Parse(txtp1x.Text);

Page 4: Universidades de Las Fuerzas Armadas2

p1y = int.Parse(txtp1y.Text);

p2x = int.Parse(txtp2x.Text);

p2y = int.Parse(txtp2y.Text);

p3x = int.Parse(txtp3x.Text);

p3y = int.Parse(txtp3y.Text);

if (p1x > 600 )

{

MessageBox.Show("punto uno de X, no valido vuelva a ingresar los valores", "mal ingreso de datos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

txtp1x.Text = "0";

}

if ( p1y > 600 )

{

MessageBox.Show("punto uno de Y, no valido vuelva a ingresar los valores", "mal ingreso de datos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

txtp1y.Text = "0";

}

if ( p2x > 600 )

{

MessageBox.Show("punto dos de X, no valido vuelva a ingresar los valores", "mal ingreso de datos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

txtp2x.Text = "0";

}

if (p2y > 600 )

{

MessageBox.Show("punto dos de Y, no valido vuelva a ingresar los valores", "mal ingreso de datos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

txtp2y.Text = "0";

Page 5: Universidades de Las Fuerzas Armadas2

}

if (p3x > 600)

{

MessageBox.Show("punto tres de X, no valido vuelva a ingresar los valores", "mal ingreso de datos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

txtp3x.Text = "0";

}

if ( p3y > 600)

{

MessageBox.Show("punto tres de Y, no valido vuelva a ingresar los valores", "mal ingreso de datos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

txtp3y.Text = "0";

}

if (p1x <= 600 && p1y <= 600 && p2x <= 600 && p2y <= 600 && p3x <= 600 && p3y <= 600)

{

grafico.DrawLine(Pens.DarkRed, new Point(p1x, p1y), new Point(p2x, p2y));

grafico.DrawLine(Pens.DarkRed, new Point(p2x, p2y), new Point(p3x, p3y));

grafico.DrawLine(Pens.DarkRed, new Point(p3x, p3y), new Point(p1x, p1y));

btcalcular.Visible = true;

}

else

{

voz.Speak("un dato esta fuera de rango de los valores predeterminados corríjalo por favor");

btcalcular.Visible = false;

gbdatos.Visible = false;

Page 6: Universidades de Las Fuerzas Armadas2

}

}

private void button1_Click(object sender, EventArgs e)

{

graficar();

}

private void txtp1x_KeyPress(object sender, KeyPressEventArgs e)

{

val.soloNumeros(e);

}

private void txtp1y_KeyPress(object sender, KeyPressEventArgs e)

{

val.soloNumeros(e);

}

private void txtp2x_KeyPress(object sender, KeyPressEventArgs e)

{

val.soloNumeros(e);

}

private void txtp2y_KeyPress(object sender, KeyPressEventArgs e)

{

val.soloNumeros(e);

}

private void txtp3x_KeyPress(object sender, KeyPressEventArgs e)

Page 7: Universidades de Las Fuerzas Armadas2

{

val.soloNumeros(e);

}

private void txtp3y_KeyPress(object sender, KeyPressEventArgs e)

{

val.soloNumeros(e);

}

private void calcular()

{

ladoa = Math.Sqrt((Math.Pow((p2x - p1x), 2) + Math.Pow((p2y - p1y), 2)));

ladob = Math.Sqrt((Math.Pow((p3x - p2x), 2) + Math.Pow((p3y - p2y), 2)));

ladoc = Math.Sqrt((Math.Pow((p1x - p3x), 2) + Math.Pow((p1y - p3y), 2)));

speri = (ladoa + ladob + ladoc) / 2;

ha = (2 / ladoa) * (Math.Sqrt((speri * (speri - ladoa) * (speri - ladob) * (speri - ladoc))));

hb = (2 / ladob) * (Math.Sqrt((speri * (speri - ladoa) * (speri - ladob) * (speri - ladoc))));

hc = (2 / ladoc) * (Math.Sqrt((speri * (speri - ladoa) * (speri - ladob) * (speri - ladoc))));

resa = (ha * ladoa) / 2;

resb = (hb * ladob) / 2;

resc = (hc * ladoc) / 2;

}

private void btcalcular_Click(object sender, EventArgs e)

{

calcular();

gbdatos.Visible = true;

label16.Text = "= "+ladoa.ToString();

Page 8: Universidades de Las Fuerzas Armadas2

label12.Text = "= " + ladoc.ToString();

label13.Text = "= " + ladob.ToString();

label7.Text = "= " + ha.ToString();

label10.Text = "= " + hb.ToString();

label11.Text = "= " + hc.ToString();

label22.Text = "= " + resa.ToString();

label19.Text = "= " + resb.ToString();

label18.Text = "= " + resc.ToString();

label24.Text = "= " + speri.ToString();

}

private void Form1_Load(object sender, EventArgs e)

{

MessageBox.Show("programa para saber el area de cualquier triangulo","Bienvenido",MessageBoxButtons.OK,MessageBoxIcon.Information);

voz.Speak("Bienvenido, este programa le ayudara a saber el area de un triangulo, esperemos que le sea util.");

}

private void bsalir_Click(object sender, EventArgs e)

{

voz.Speak("gracias por su visita");

Close();

}

}

}

Validacion:

using System;

using System.Collections.Generic;

Page 9: Universidades de Las Fuerzas Armadas2

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms; // para el evento de validad cada vez que se aplasta la tecla

namespace area_de_un_triangulo

{

class validar

{

public void soloNumeros(KeyPressEventArgs e)

{

try

{

if (Char.IsNumber(e.KeyChar))

{

e.Handled = false;

}

else if (Char.IsControl(e.KeyChar))

{

e.Handled = false;

}

else

{

e.Handled = true;

}

}

catch (Exception ex)

{

Page 10: Universidades de Las Fuerzas Armadas2

}

}

}

}

Diseño visualizado:

Corrida del programa:

Page 11: Universidades de Las Fuerzas Armadas2

Conclusiones:

Las amplias posibilidades que puede dar vida a un programa de forma gráfica son más cuestión de ingenio, dando una personalidad a cada programa.

La programación está divida de forma más dinámica pero las validaciones, pueden ser donde toca aplicar mas razonamiento.