Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - BlackZeroX

#381
.
La cantidad de combinaciones desde A-Z (sin contar la Ñ) en una cadena de 10 segun este algoritmo es de (26 ^ 10) = 141167095653376 combinaciones posibles desde AAAAAAAAAA hasta ZZZZZZZZZZ.

Dulces Lunas!¡.
#382
(Hablando de VB.NET)
Amm no me acuerdo muy bien pero la clase string tiene la funcion split...

TextBox2.Text.Split(",")[0]
TextBox2.Text.Split(",")[1]
TextBox2.Text.Split(",")[2]


* si estas en VB .NET en lugar de usar CInt() usa Convert.ToInt32() o Convert.ToInt64() para transformar una string en un integer (32/64)
* si vas a redondear usa Math.Round() mas no las funciones anteriores...

Dulces Lunas!¡.
#383
Yo aprendí aquí:

http://www.zator.com/Cpp/E_Ce.htm

P.D.: No es que sean poco comunes es que solo mezclamos C con C++ en si static_cast, reinterpret_cast, const_cast, etc  son simples Cast de C pero especialmente para C++...

Dulces Lunas!¡.
#384
.
En C++ se usa...

Código (cpp) [Seleccionar]


class hola
{
   public:
       //hola();
       //virtual ~hola() = 0;
   protected:
   private:
};

int main() {
   hola clase;
   void *ptr = static_cast<void*>(&clase); // caso Normal (cuando marque error usar el caso extremo).
   //void *ptr = reinterpret_cast<void*>(&clase); // caso Extremo (Tener cuidado al usar).
   return 0;
}



Dulces Lunas!¡.
#385
.
ammm sabes que latencia ofrece una memoria primaria a una secundaria?, es demasiada la diferencia... jamas dije que es malo leer de trozos en trozos, es bueno en algunos casos, pero para saber cuanto buffer debemos establecer hay que hacer algunos cálculos entre el tiempo de procesamiento y la carga de los datos... un ejemplo de esto es por ejemplo Nero, Alcohol, etc... crear un buffer de por lo menos 256 megas o arriba de 100 megas no recuerdo cual es el mínimo, para no interrumpir la escritura de un datos en un disco, mientras en segundo plano se cargan los datos...

*En el tema de la PC, tengo dos PC es "Intel Pentium 4 + 256 megas con un HDD de 80 Gigas a 7200 RPM" y la otra es una "AMD Phenom II X4 965 Black Edition + 16 Gigas de RAM DDR3 con un HDD de 1 Tera a 7200 RPM", y la verdad NO noto diferencia entre aplicaciones creadas en VB6 (por el tema de los hilos), en pocas palabras no veo la forma en que vb6 tenga un gran impacto en la velocidad entre ambas PC'S, lo que si te puedo asegurar es que para leer trozos a trozos los datos y a su vez procesarlos si el proceso es muy rapido con es este el caso es mejor cargar el archivo prácticamente con buffers de 50 a 100 megas o lo que se requiera (considerando la pequeña latencia perjudicial de lectura), en caso contrario si el procesamiento es LEEENTO y complejo seria bueno cargar entre 1 a 10 megas o lo que se requiera.

Dulces Lunas!¡.
#386
.
Intenta con esto...

Código (cpp) [Seleccionar]


#include <iostream>
#include <cstdio>

using namespace std;

inline int lenNum(unsigned int num) {
   char buff[20];
   return sprintf(buff, "%d", num);
}

inline unsigned long long joinVector(unsigned int *vector, size_t size) {
   register int mul = 1;
   register unsigned long long ret = 0;
   while(size--) {
       ret += (vector[size] * mul);
       if (size)
           for (register unsigned int i = 1, ln = lenNum(vector[size]); i <= ln; i++)
               mul *= 10;
   }
   return ret;
}

int main() {
   unsigned int vector1[5] = {5, 978, 6, 4, 9}, vector2[5] = {65, 9, 12, 66, 45};
   cout << joinVector(vector1, 5) + joinVector(vector2, 5) << endl;
   cin.get();
   return 0;
}



  005978649
+ 659126645
______________
665105294


Dulces Lunas!¡.
#387
aaaaa ya entendí... es simple... dame unos minutos...

Dulces Lunas!¡.

#388
creo que la cague en mi post anterior... te dejo la funcion que hace lo que tu quieres.

Código (cpp) [Seleccionar]


#include <iostream>
using namespace std;

string &AddWord(string &text) {
    string::reverse_iterator it = text.rbegin();
    for (; it != text.rend(); it++) {
        ++(*it);
        if (tolower(*it) >= 'a' && tolower(*it) <= 'z') break;
        (*it) = (islower(*it))? 'a': 'A';
    }
    return text;
}

int main() {
    string text = "ZZZx";
    cout << AddWord(text) << endl;
    cout << AddWord(text) << endl;
    cout << AddWord(text) << endl;
    cout << AddWord(text) << endl;
    cout << AddWord(text) << endl;
    cout << AddWord(text) << endl;
    cout << AddWord(text) << endl;
    cout << AddWord(text) << endl;
    cout << AddWord(text) << endl;
    cin.get();
    return 0;
}



y aquí el de las permutaciones del post anterior...

Código (cpp) [Seleccionar]


#include <iostream>
using namespace std;

size_t permutaciones (string text, string textFix, void (*callback)(string, bool), bool cancel = false) {
    size_t ret = 0;
    if (cancel) return ret;
    if (text.size()) {
        for (register size_t i = 0; i < text.size(); i++) {
            ret += permutaciones (text.substr(0, i) + text.substr(i + 1), textFix + text.substr(i, 1), callback, cancel);
            if (cancel) return ret;
        }
    } else {
        callback(textFix + text, cancel);
    }
    return ret;
}

void showWord(string text, bool cancel) {
    cout << text << endl;
}

int main() {
    permutaciones ("hola", "", showWord);
    cin.get();
    return 0;
}



Dulces Lunas!¡.
#389
te dejo este codigo en vb6...

http://foro.elhacker.net/programacion_visual_basic/palabras_aleatorias_sin_repeticion_ayuda-t296715.0.html

en si la parte que genera las combinaciones es este... muy simple y corto verdad?...

Código (vb) [Seleccionar]


Private Sub CombinateString(ByRef Str_String As String, Optional ByRef str_Fix As String, Optional ByRef Cancel As Boolean)
Dim Lng_LenStr                                  As Long
Dim Lng_LenStrIndex                             As Long
    If Cancel Then Exit Sub
    Lng_LenStr = Strings.Len(Str_String)
    If Lng_LenStr <> 1 Then
        For Lng_LenStrIndex = 1 To Lng_LenStr
            Call CombinateString(Strings.Left$(Str_String, Lng_LenStrIndex - 1) & Strings.Mid$(Str_String, Lng_LenStrIndex + 1), str_Fix & Strings.Mid$(Str_String, Lng_LenStrIndex, 1), Cancel)
        Next
    Else
        RaiseEvent StrOuput(str_Fix & Str_String, Cancel) ' <--- este en C++ seria un callback a un proceso X el cual otendria por un parametro la cadena combinada, se ejecutaria N veces... el segundo parametro seria una variable booleana para cancelar el generador de cadenas (combinaciones)...
    End If
End Sub



En unos segundos te lo subo en C++.

Duñlces Lunas.
#390
Cita de: Fire544 en 11 Julio 2012, 19:25 PM

vector_1[1]=5 + vector_2[1]=65 esto seria igual a 70, y a si sucecivamente, no quiero esto lo que quiero es:


   5   978 6   4   9
+ 65 9    12 66 45
______________
665105294



No entiendo la forma en la que los sumaste... puedes explicar el método paso a paso?... de lo contrario sera imposible ayudarte.

Dulces Lunas!¡.