elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 [2] 3
11  Programación / Ejercicios / Re: Retos .Net en: 9 Septiembre 2010, 06:31 am
Esta forma es mas eficiente ya que solo calcula los factoriales 10 veces,
faltaria implementar factorial de manera no recursiva...

Tambien le falta agragar un poco de elegancia al codigo, no me gusta tanto el hecho de que Program.Fact sea static, deberia inclurilo dentro de una clase curious como el codigo anterior, pero eso ya no lo hago yo :P

El codigo esta en c#:

Código
  1. using System;
  2.  
  3. namespace Problema2Mejorado
  4. {
  5.    class Program
  6.    {
  7.        static Factorial fact = new Factorial(10);
  8.        static void Main(string[] args)
  9.        {
  10.            int inicio, final;
  11.            Console.WriteLine("Introduzca el primer numero del intervalo");
  12.            inicio = int.Parse(Console.ReadLine());
  13.            Console.WriteLine("Introduzca el ultimo numero del intervalo");
  14.            final = int.Parse(Console.ReadLine());
  15.            for (int probar = inicio; probar <= final; probar++)
  16.            {
  17.                if (EsCurioso(probar))
  18.                    Console.WriteLine("{0}, ", probar);
  19.            }
  20.            Console.ReadKey();
  21.        }
  22.        //Para omitir conversiones inutiles recibo el numero como string ya q necesito analizar sus digitos
  23.        static bool EsCurioso(int Numero)
  24.        {
  25.            string Num = Numero.ToString();
  26.            int sumador = 0;
  27.            foreach (char digito in Num)
  28.            {
  29.                //Con esto me ahorro todo el switch case del otro codigo :p
  30.                int ValorDigito = int.Parse(digito.ToString());
  31.                sumador += fact[ValorDigito];
  32.            }
  33.            if (sumador == int.Parse(Num))
  34.                return true;
  35.            else
  36.                return false;
  37.        }
  38.    }
  39.  
  40.    class Factorial
  41.    {
  42.        //En este arreglo guardaremos los factoriales de 0 hasta 9, para q solo tengan q ser calculados una vez :)
  43.        private int[] factoriales;
  44.        public Factorial(int rango)
  45.        {
  46.            factoriales = new int[rango];
  47.            for (int i = 0; i < rango; i++)
  48.            {
  49.                factoriales[i] = CalcularFactorial(i);
  50.            }
  51.        }
  52.        int CalcularFactorial(int n)
  53.        {
  54.            if (n <= 1)
  55.                return 1;
  56.            else
  57.                return n * CalcularFactorial(n - 1);
  58.        }
  59.        //Y de manera muy limpia obtenemos el factorial de un numero con el operador []
  60.        public int this[int i]
  61.        {
  62.            get
  63.            {
  64.                return factoriales[i];
  65.            }
  66.        }
  67.    }
  68. }
  69.  
  70.  



Reto 3:

El usuario proporcionara un numero de pruebas p, y un numero de intervalos n

El programa debera generar p numeros aleatorios entre 1 y q (tal que q sea el menor numero divisible por n, pero mayor o igual a 100), y elaborar un reporte sobre que porcentaje de los numeros cayo en cada intervalo.

Si por ejemplo el numero de intervalos n es 4, se consideraran los intervalos 1-25, 26-50, 51-75 y 75-100.


No se si me deje entender, si no lo hice avisenme...
12  Foros Generales / Noticias / Re: La mujer más odiada en Internet en: 3 Septiembre 2010, 16:29 pm
Citar
se estan pasando de la ralla defendiendo animales

Podríamos decir lo mismo de vosotros...

Y no me vayas a decir que un animal no tiene sentimientos, por favor. A lo mejor no puede expresarlos igual que tú, pero ya lo creo que los tienen ¬¬ .

Salu2


Ya lo crees o ya lo sabes????
13  Foros Generales / Noticias / Re: La mujer más odiada en Internet en: 3 Septiembre 2010, 07:24 am
Bueno, el gato esta bien, me alegro por el...


Y ahora es el turno de q la señora pague. Imaginemos que el gato equivale en dignidad a un humano, eso implica que a la señora se le deberia juzgar por privacion de libertad o como maximo intento de homicidio, desagravado por el obvio transtorno de personalidadñ es decir 2'3 años de prision como maximo

Eso es lo que recibira la persona mas odiada del internet y del Reino Unido???????

NO

Ella será acosada dia y noche, recibira llamadas, seravictima de un odio incontenible e irracional, la gente la condenará a la muerte civil y terminara como la niña... Que castigo tan justo!!!! QUE VIVA EL INTERNET!!!!
14  Programación / Programación C/C++ / Re: Sugerencias en: 3 Septiembre 2010, 06:37 am
Veo unas cuantas fugas de memoria por ahi... Deberias buscar un poco acerca del operador new y el operador delete.


Podrias hacer que el metodo promedio realice la suma, y que no necesites usar directamente el metodo suma desde main, eso le daria a tu programa un sabor mas orientado a objetos :p

Lo mismo para varianza y desviacion estandar.


Y al menos que tu profesor(a) explicitamente te lo pida, no es recomendable usar las extensiones (no estandar) de Borland c en tus programas, es decir getch()/conio, usar main y procedimientos sin tipo de retorno


Se nota que entiendes bien la idea :D el codigo esta bien, funciona


Un ultimo consejo:  Declara los arreglos un poco mas grandes porque estan muy pequenos, es muy facil hacer que la memoria se corrompa en ese programa
15  Programación / Programación C/C++ / Re: Pido Corrección: Conversor Informática en: 31 Agosto 2010, 05:07 am
Una forma mas sencilla de hacerlo es  usando macros...


Despues de los includes, colocas esto
Código
  1. #ifdef WINDOWS
  2.     #define CLEAR_COMMAND "cls"
  3. #elif defined(UNIX)
  4.     #define CLEAR_COMMAND "clear"
  5. #else
  6.     #error "No programas ni en Windows ni en Linux?? Eres raro!!!"
  7. #endif
  8.  

Las macros WINDOWS y UNIX las define normalmente tu compilador de preferencia, no necesariamente con esos nombres, pero averigua q nombres usa

Luego, a la hora de hacer la llamada al sistema para limpiar pantalla:
Código
  1. system(CLEAR_COMMAND);
  2.  

Y tienes codigo limpio portable y elegante :D




16  Programación / Programación C/C++ / Re: Crear Variable en runtime con nombre propio en: 6 Agosto 2010, 08:55 am
Puede que este codigo sea demasiado avanzado, pero es la unica forma que conozco para crear variables de usuario, lo comente lo mejor q pude, pero pregunta no mas si no entendiste aslgo

Tendras que averiguar por el contenedor map de la libreria c++, que te permite crear "tablas" de datos
Código
  1. #include <iostream>
  2. #include <map> //el contenedor map, investiga sobre el
  3. #include <string>
  4. using namespace std;
  5.  
  6. typedef map<string, int> TablaVariables;
  7.  
  8. void mostrar_menu();
  9.  
  10. /*Un par es un tipo que contiene 2 valores
  11. En este caso una cadena y un entero
  12. que es lo q necesita una variable: nombre y valor
  13. */
  14. typedef pair<string, int> variable;
  15.  
  16. int main()
  17. {
  18. TablaVariables variables_del_usuario;
  19.    char opcion_elegida = 0;
  20.  
  21.    while(opcion_elegida != 4)
  22.    {
  23.        mostrar_menu();
  24.        cin >> opcion_elegida;
  25.        cin.get();
  26.        switch(opcion_elegida)
  27.        {
  28.            case '1':
  29.            {
  30.                     string nombre;
  31.  
  32.                     /*Creamos un par con informacion sobre el elemento que agregaremos,
  33.                      y un valor bool que indica si la variable era nueva o repetida
  34.                      */
  35.                     pair<TablaVariables::iterator, bool> resultado;
  36.                     cout << "Introduzca el nombre de la nueva variable" << endl;
  37.                     getline(cin, nombre);
  38.  
  39.                     /*Usamos el metodo insert de map, con una variable con el nombre especificado
  40.                      y el valor por defecto de los enteros: 0
  41.                      el resultado nos dira si la variable ya existia o no
  42.                      */
  43.                     resultado = variables_del_usuario.insert(variable(nombre, 0));
  44.                     if(resultado.second == true)
  45.                     {
  46.                         cout << "Variable agregada ;)" << endl;
  47.                     }
  48.                     else
  49.                     {
  50.                         cout << "ERROR!! Ya existe una variable con ese nombre" << endl;
  51.                     }
  52.                     break;
  53.            }
  54.            case '2':
  55.            {
  56.                     string nombre;
  57.  
  58.                     /*Contendra el valor de la variable buscada
  59.                      si esa variable no existe, sera igual a variables_del_usuario.end()
  60.                      */
  61.                     TablaVariables::iterator resultado;
  62.                     cout << "Introduzca el nombre de la variable que quiere ver" << endl;
  63.                     getline(cin, nombre);
  64.                     resultado = variables_del_usuario.find(nombre);
  65.  
  66.                     if(resultado == variables_del_usuario.end())
  67.                     {
  68.                         cout << "ERROR!!! Esa variable no existe" << endl;
  69.                     }
  70.                     else
  71.                     {
  72.                         /*resultado es un iterador (algo asi comop un puntero) al tipo variable*/
  73.                         cout << "El valor de la variable " << nombre << " es " << resultado->second << endl;
  74.                         cout << "desea modificarlo??? (y/n)" << endl;
  75.                         char yn;
  76.                         cin >> yn;
  77.                         if(yn == 'y')
  78.                         {
  79.                             int nuevovalor;
  80.                             cout << "Introduzca nuevo valor para " << nombre << endl;
  81.                             cin >> nuevovalor;
  82.                             variables_del_usuario[nombre] = nuevovalor;
  83.                         }
  84.                     }
  85.            }
  86.        }
  87.    }
  88.  
  89.  
  90. }
  91.  
  92.  
  93. void mostrar_menu()
  94. {
  95.    cout << "\n\n\n";
  96. cout << "-----MENU-----" << endl;
  97. cout << "Presione 1 para agregar una variable" << endl;
  98. cout << "Presione 2 para ver el valor de una variable" << endl;
  99. cout << "Presione 3 para salir :) " << endl;
  100. cout << "introduzca su opcion " << endl;
  101. }
  102.  
  103.  



Espero que te sirva :D
17  Programación / Programación C/C++ / Re: como puedo aplicar esto en: 4 Agosto 2010, 07:43 am
para ver si cin esta corrupto.

por ejemplo si tienes la linea
Código
  1. int a;
  2. cin >> a;
  3.  
y tu ejecutas como entrada

Código:
Letras!!!

entonces cuando ejecute cin.fail() te devolvera true indicandote que algo salio mal en la ultima operacion de cin (en este caso cin >> a)



Hay 3 flags de error para cin

fail: error en la ultima operacion efectuada
bad: error por perdida de integridad en el stream (es decir q quedo inutilizado)
eos: se llego al fin del archivo



Estos flags sirven para comprobar si las operaciones con cin, cout, cerr o cualquier otro stream fueron o no correctas
18  Programación / .NET (C#, VB.NET, ASP) / Re: Ecuaciones con MS ecuation u OOO math en: 12 Julio 2010, 06:09 am
Me es bastante util en realidad. Muchas gracias :D
19  Sistemas Operativos / Windows / Re: dejar fuera de combate a windows vista en: 11 Julio 2010, 08:52 am
MALusarlo??? Y como hago para usarlo bien  :o

Yo tengo windows vista, y si dejo mi laptop encendida por mas de 2 dias, tengo un pantallazo azul garantizado :/

Encender mi maquina es toda una proeza. Normalmente la enciendo, me voy a almorzar y cuando vuelvo ya esta terminando de cargar

Mas de una vez perdi tiempo y trabajo porque a la maquina le dio la gana de actualizarse y se reinicio sin preguntar nada.

A veces cuando trato de ponerla en modo sleep, en vez de eso simplemente suena como un tono desafinado y aparece la pantalla de inicio

Asi que no se como lo maluse, pero estoy seguro que me falta poco para dejar fuera de combate a windows vista con solo usarlo
20  Programación / .NET (C#, VB.NET, ASP) / Ecuaciones con MS ecuation u OOO math en: 11 Julio 2010, 07:18 am
Holas quisiera saber si alguien me quiere ayudar con esto...

Me gustaria saber si hay alguna forma de incluir en un formulario de C# un control donde pueda mostrar una ecuacion, ya sea como de Microsoft Ecuation o de OpenOffice.org.

La idea es que el usuario pueda manipularla de forma automatizada, como agregarle una raiz cuadrada, o encerrar todo dentro de una fraccion y dividirlo por otra cosa, y cosas por el estilo

Alguiensabe como hacerlo? O donde puedo buscar al respecto porque san google no me esta ayudando...

Muchaas gracias y saludos :)
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines