jueves, 28 de febrero de 2019

Menú de figuras con switch C# (Problema 3)

Se quiere hacer un menú para sacar el área de varias figuras. He aquí el código con switch:


#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main ()
{
 int a;
 cout<<"Ingrese un numero con respecto a las siguientes opciones\n";
 cout<<"\n1-. Triangulo\n";
 cout<<"\n2-. Circulo\n";
    cout<<"\n3-. Cuadrado\n";
 cout<<"\n4-. Rectangulo\n";
    cout<<"\n6-. Cilindro\n";
    cout<<"\n7-. Cubo\n";
    cout<<"\n8-. Salir\n";
 cin>>a;
        switch (a){
        case 1:
         float c, d, b;
            cout<<"\nIngrese la base\n";
            cin>>c;
            cout<<"\nIngrese la altura\n";
            cin>>b;
            d=(c*b)/2;
         cout<<"\nEl area es:\n"<<d;
     break;
      case 2:
       float f, g, e;
            cout<<"\nIngrese el radio\n";
            cin>>e;
            f=(g*g)*3.1416;
         cout<<"\nEl area es:\n"<<f;
     break;
     case 3:
      float s, h;
            cout<<"\nIngrese la base\n";
            cin>>s;
            h=(s*s);
         cout<<"\nEl area es:\n"<<h;
     break;
     case 4:
      float j, k, l;
            cout<<"\nIngrese la base\n";
            cin>>j;
            cout<<"\nIngrese la altura\n";
            cin>>k;
            l=(j*k);
         cout<<"\nEl area es:\n"<<l;
     break;
      case 5:
       float p, n, m;
            cout<<"\nIngrese el radio\n";
            cin>>p;
            cout<<"\nIngrese la altura del cilindro\n";
            cin>>n;
            m=(p*p)*(3.1416*n);
         cout<<"\nEl area es:\n"<<m;
     break;
     case 6:
      float v, x;
            cout<<"\nIngrese la base\n";
            cin>>v;
            x=(v*v)*v;
         cout<<"\nEl area es:\n"<<x;
     break;
     case 7:
  cout<<"\nIngrese 7 para confirmar la operacion\n";   
        break;
     default:
     cout<<"\nLa opcion no pertenece a las mostradas\n";
     break;
  } 
  
return 0; 
}

Número mayor en C# (Problema 2)

¿Saber que número es mayor en un programa de C#?, no hay problema.


#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main (){
 int a, b; 
 cout<< "Ingrese un numero\n";
 cin >> a; 
 cout<< "Ingrese un segundo numero\n";
 cin >> b;
 if (a<b)
 {
   cout<<"\e[A";
   cout<<"\e[A";
   cout<<"El menor es:\n"<< a;
   cout<<"\nY el mayor es:\n"<< b;
    }
    else
 {
   cout<<"\e[A";
   cout<<"\e[A";
   cout<<"El menor es:\n"<< b;
   cout<<"\nY el mayor es:\n"<< a;
    }
 if (b == a){
   cout<< "Ambos numeros son iguales";
 }
    return 0;
}

Suma de dos numeros en C# (Problema 1)

Se quiere realizar la suma de dos números. El codigo en c# quedaría así:


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main ()
{
 float a, b, c;
 printf("Ingrese un numero\n");
 scanf("%f", &a);
 printf("Ingrese un segundo numero\n");
 scanf("%f", &b);
 c=(a+b);
 printf("El resultado es: %f\n", c);
 return 0;
}
 

Constructor y destructor en C++


¿Qué es un constructor?


En C# podemos definir un método que se ejecute inicialmente y en forma automática. Este método se lo llama constructor.
Cada vez que se crea una clase o estructura, se llama a su constructor. Una clase o estructura puede tener varios constructores que toman argumentos diferentes. Los constructores permiten al programador establecer valores predeterminados, limitar la creación de instancias y escribir código flexible y fácil de leer.


El constructor tiene las siguientes características:
Tiene el mismo nombre de la clase.
Es el primer método que se ejecuta.
Se ejecuta en forma automática.
No puede retornar datos.
Se ejecuta una única vez.
Un constructor tiene por objetivo inicializar atributos

Ejemplo



Modificador NombredelaClase (Parámetros)
{
Instrucciones
}


Veamos un Ejemplo de un constructor en C#


using System;


namespace constructores
{
class EjConstructor
{
int a;
int b;
//declaramos el constructor
public EjConstructor(int x, int y)
{
a = x;
b = y;
}
public int Suma()
{
return a + b;
}


public int resta()
{
return a - b;
}


class Principal
{
static void Main(string[] args)
{
//creamos objeto de la clase y le pasamos los parametros al constructor
EjConstructor obj = new EjConstructor(10, 20);
Console.WriteLine("La suma es: "+obj.Suma());
Console.WriteLine("La resta es: "+obj.resta());
Console.ReadKey();
}
}
}
}


Al ejecutar el código muestra el siguiente resultado



El ejemplo es sencillo. Para que pueda comprenderse creamos una clase EjConstructor con 2 variables enteras, luego definimos el constructor con 2 parámetros observen que tiene el mismo nombre de la clase eso tiene que ser así obligatoriamente, también tenemos un método Suma y un método resta que lo único que hace es realizar una suma y la resta sucesivamente.Luego en la clase Principal al momento de crear el objeto de la clase le pasamos los parámetros de una sola vez al constructor, y después solo imprimimos el resultado de la suma y la resta del método Suma y resta.



¿Qué es un destructor?


Es una función miembro especial llamadas automáticamente en la ejecución del programa, y por tanto no tienen por qué ser llamadas explícitamente por el programador. Sus principales cometidos son:
liberar los recursos computacionales que el objeto de dicha clase haya adquirido en su tiempo de ejecución al expirar éste.
quitar los vínculos que pudiesen tener otros recursos u objetos con éste.

Los destructores son invocados automáticamente al alcanzar el flujo del programa el fin del ámbito en el que está declarado el objeto.

El uso de destructores es clave en el concepto de Adquirir Recursos es Inicializar.




Ejemplo





El destructor se nombra con el mismo nombre de la clase precedido de un símbolo de Media:tilde (~). Si la instancia de la clase se creó como una variable automática, el destructor será llamado automáticamente cuando el programa salga fuera del ámbito donde fue creada dicha instancia.


#include <iostream> 
#include <string> 

 class foo { 
    public: 
       foo( void ) 
 { 
 print( "foo()" ); 
 } 
 ~foo( void ) 
 { 
 print( "~foo()" ); 
 } 
 void print
( std::string const& text ) 
 { 
 std::cout << static_cast< void* >( this ) << " : " << text << std::endl; 
 }/* Deshabilitado el contructor de copia y el operador de asignación al hacerlos privados */
 private:
 foo( foo const& ); 
 foo& operator = ( foo const& ); 
}
; int main( void ) 
 foo array[ 3 ]; /* Cuanto la 'main' termina, el destructor es invocado para cada elemento de 'array'. La primera instancia creada es la última en ser destruída. */ 


El constructor de copia y el operador de asignación, deben ser deshabilitados en clases donde no se necesitan explícitamente. (Scott Meyers, Effective C++, Item 6: Explicitly disallow the use of compiler-generated functions you do not want.1​)

Otros usos habituales de los destructores son terminar conexiones con bases de datos y liberar recursos de red.













Fuentes:


http://csharp-facilito.blogspot.com/2013/07/constructores-en-c-sharp.html

https://www.tutorialesprogramacionya.com/csharpya/detalleconcepto.php?codigo=149&inicio=20

https://es.wikipedia.org/wiki/Destructor_(inform%C3%A1tica)