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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 ... 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 331
391  Programación / Programación C/C++ / Re: como hacer un generador?? en: 13 Julio 2012, 07:30 am
creo que la cague en mi post anterior... te dejo la funcion que hace lo que tu quieres.

Código
  1.  
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. string &AddWord(string &text) {
  6.    string::reverse_iterator it = text.rbegin();
  7.    for (; it != text.rend(); it++) {
  8.        ++(*it);
  9.        if (tolower(*it) >= 'a' && tolower(*it) <= 'z') break;
  10.        (*it) = (islower(*it))? 'a': 'A';
  11.    }
  12.    return text;
  13. }
  14.  
  15. int main() {
  16.    string text = "ZZZx";
  17.    cout << AddWord(text) << endl;
  18.    cout << AddWord(text) << endl;
  19.    cout << AddWord(text) << endl;
  20.    cout << AddWord(text) << endl;
  21.    cout << AddWord(text) << endl;
  22.    cout << AddWord(text) << endl;
  23.    cout << AddWord(text) << endl;
  24.    cout << AddWord(text) << endl;
  25.    cout << AddWord(text) << endl;
  26.    cin.get();
  27.    return 0;
  28. }
  29.  
  30.  

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

Código
  1.  
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. size_t permutaciones (string text, string textFix, void (*callback)(string, bool), bool cancel = false) {
  6.    size_t ret = 0;
  7.    if (cancel) return ret;
  8.    if (text.size()) {
  9.        for (register size_t i = 0; i < text.size(); i++) {
  10.            ret += permutaciones (text.substr(0, i) + text.substr(i + 1), textFix + text.substr(i, 1), callback, cancel);
  11.            if (cancel) return ret;
  12.        }
  13.    } else {
  14.        callback(textFix + text, cancel);
  15.    }
  16.    return ret;
  17. }
  18.  
  19. void showWord(string text, bool cancel) {
  20.    cout << text << endl;
  21. }
  22.  
  23. int main() {
  24.    permutaciones ("hola", "", showWord);
  25.    cin.get();
  26.    return 0;
  27. }
  28.  
  29.  

Dulces Lunas!¡.
392  Programación / Programación C/C++ / Re: como hacer un generador?? en: 13 Julio 2012, 06:37 am
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
  1.  
  2. Private Sub CombinateString(ByRef Str_String As String, Optional ByRef str_Fix As String, Optional ByRef Cancel As Boolean)
  3. Dim Lng_LenStr                                  As Long
  4. Dim Lng_LenStrIndex                             As Long
  5.    If Cancel Then Exit Sub
  6.    Lng_LenStr = Strings.Len(Str_String)
  7.    If Lng_LenStr <> 1 Then
  8.        For Lng_LenStrIndex = 1 To Lng_LenStr
  9.            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)
  10.        Next
  11.    Else
  12.        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)...
  13.    End If
  14. End Sub
  15.  
  16.  

En unos segundos te lo subo en C++.

Duñlces Lunas.
393  Programación / Programación C/C++ / Re: Operacion Suma (Vectores) !Duda! en: 13 Julio 2012, 06:10 am

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!¡.
394  Programación / Programación C/C++ / Re: [Source] Calculadora Calc Don 1.0 en: 13 Julio 2012, 05:48 am
.
Te dejo mi calculadora que hice en la Univ. para mi profesor de Métodos Numéricos, resuelve expresiones complejas como:

+-+-4(5h^sqr(e(ln(4(5/10)))^sqr(2*2)))(cos(h)^2+sin(h)^2)

* Identifica automáticamente las variables.
* Maneja Variables (lo deje para usa sola variable)... en si se pueden usar N Variables y resolver sus valores.


Arrojando el resultado correcto.

SourceCode. ( Deje el ejecutable Funcional dentro de la carpeta Bin/Release ).

Código
  1.  
  2. int main() {
  3.    equation oEquation;
  4.    //equation oGrado;      Clase por si el grado es de alguna manera no procesable como cos(x) o cos(x)^2+sin(x)^2
  5.    string str;
  6.    int iOption = 0, iDivs = 0, iFlags, iOrden = 0;
  7.    int iPresicion = 5;
  8.    bool bNewEquation = false;
  9.    long double ldH = 0.0f, ldArea = 0.0, ldRange[2] = {};
  10.  
  11.    do {
  12.        system("cls");
  13.        cout << endl << "Programa Creado por: Ortega Avila Miguel Angel 4B (Vespertino)." << endl << endl;
  14.  
  15.        cout << "Sintaxis------" << endl;
  16.        cout << "Multiplicacion Divicion suma y resta" << endl << "\ta*b, a/b, a+b, a-b, -a, +b";
  17.        cout << "Trigonometricas:" << endl << "\tcos(x), sin(x), tan(x), csc(x), cot(x), sec(x)" << endl;
  18.        cout << "Valor absoluto:" << endl << "\tabs(x)" << endl;
  19.        cout << "Exponencial logaritmo natural:" << endl << "\te(x), ln(x)" << endl;
  20.        cout << "Potencias y raiz cuadrada:" << endl << "\tx^y, sqr(x)" << endl;
  21.        cout << "--------------" << endl;
  22.        cout << "Nota: Se permite el uso de cuarquier variable (el programa la identifica automaticamente)." << endl;
  23.        cout << "Ejemplo: 4(5h^sqr(e(ln(4(5/10)))^sqr(2*2)))(cos(h)^2+sin(h)^2)" << endl << endl << endl;
  24.  
  25.        cout.precision(2);
  26.        cout.setf(ios::fixed, ios::floatfield);
  27.  
  28.        while (1) {
  29.            if (tolower(str[0]) != 'r') {
  30.                cout << "Ingrese una ecuacion: ";
  31.                getline(cin, str);
  32.                //str = "4(5h^sqr(e(ln(4(5/10)))^sqr(2*2)))(cos(h)^2+sin(h)^2)";
  33.                oEquation.Equation(str);
  34.                if ((oEquation.GetFlags() & FLAG_SINTAX)) {
  35.                    cout << "\tError: Sintaxis de la ecuacion errorea No se permiten dos operados contiguos (inclusive signos)." << endl << endl;
  36.                } else if ((oEquation.GetFlags() & FLAG_INVALIDTYPE)) {
  37.                    cout << "\tError: Caracteres no procesables." << endl << endl;
  38.                } else if (oEquation.Variables.size() > 1) { //  Hay mas de una variable?.
  39.                    cout << "Error: Ingresa una ecuacion con una sola variable." << endl << endl;
  40.                } else {
  41.                    break;  //  while(1)
  42.                }
  43.            } else {
  44.                cout << "Ecuacion: " << oEquation.Equation() << endl << endl;
  45.                break;
  46.            }
  47.        }
  48.  
  49.        system("cls");
  50.        bNewEquation = false;
  51.  
  52.        while(!bNewEquation) {
  53.            cout << "Programa Creado por: Ortega Avila Miguel Angel 4B (Vespertino)." << endl << endl;
  54.            cout << "Leyenda (Posibles resultados):" << endl;
  55.            cout << "nan. = Imposible de calcular (Resulta por ejemplo de raices imaginarias)." << endl;
  56.            cout << "inf. = Numero Infinito (por ejemplo: Una divicion entre 0)." << endl << endl;
  57.            cout << "Ecuacion: " << oEquation.Equation() << endl << endl;
  58.            cout << "[0] Resolver Operacion."<< endl;
  59.            cout << "[1] Calcular derivada."<< endl;
  60.            cout << "[2] Calcular area bajo la curva (Integracion por trapecios)."<< endl;
  61.            cout << "[3] Ingresar otra ecuacion."<< endl;
  62.            cout << "[4] Definir la presicion (cantidad de dcimales a mostrar)." << endl;
  63.            cout << "[5] Terminar aplicacion." << endl << endl;
  64.            cout << "Opcion: ";
  65.  
  66.            if (!getInt(&iOption, true)) {
  67.                cout << "Error: Solo Numeros Decimales." << endl << endl;
  68.  
  69.            } else {
  70.                cout << endl;
  71.                switch (iOption) {
  72. ...
  73. ...
  74. Es un código un tanto largo...
  75. ...
  76.  
  77.  
Dulces Lunas!¡.
395  Programación / Programación Visual Basic / Re: concatenacion de string y se queda pillado en: 13 Julio 2012, 02:18 am

Y no olvides de liberar la memoria de z:
Código:
ReDim z[0]


para liberar se usa erase...

erase z

Aun que si las variables estan declaradas en un proceso estas son automáticas y la llamada a erase se obvia... caso omiso cuando pides memoria...

OJO Mientras mas grande sea el buffer te quedaras sin memoria... tambien ten en consideracion que si lees trozos desde tu HD como dice @AbrahamAraon solo es en cuestión a que sea un archivo PESADO (DEFINICIÓN mas de 100 megas e inclusive hasta 4 Gigas o mas...), mientras no sean archivos super pesados, es mejor CARGAR TODO el archivo en memoria y crear memoria que actué como buffer de esta manera se evita estar leyendo el archivo constantemente y evitamos la latencia que esta representa a su vez aumentamos la velocidad de procesamiento...

* No uses String para leer archivos si es que los vas a procesar,
* Usa array de bytes par procesar archivos un caracter de una string es equivalente a 2 bytes... y en si aun que tu veas 10 caracteres pesaras que pesa en memoria 10 bytes pero la realidad es que pesa 20 bytes...

Dulces Lunas!¡.
396  Programación / Programación Visual Basic / Re: concatenacion de string y se queda pillado en: 13 Julio 2012, 00:46 am
Asi es como yo lo haria... los algoritmos funcionan tan rapido que procesa un archivo de 17 megabytes en unos segundos... con un archivo de salida de casi 190 megabytes...

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Declare Sub RtlMoveMemory Lib "kernel32" (ByVal pDst As Long, ByVal pSrc As Long, ByVal ByteLen As Long)
  5.  
  6. Private Sub Form_Load()
  7. Dim ff          As Long
  8. Dim mapFile()   As Byte
  9.  
  10.    ff = FreeFile
  11.    Open "c:\hola.txt" For Binary As ff
  12.        If Not EOF(ff) Then
  13.            ReDim mapFile(0 To LOF(ff) - 1)
  14.            Seek ff, 1  '  nos posicionamos al inicio del archivo
  15.            Get ff, , mapFile
  16. '                Debug.Print StrConv(mapFile, vbUnicode)
  17.            Seek ff, 1  '  nos posicionamos al inicio del archivo
  18.                mapFile = fisuras(mapFile, StrConv("BlackZeroX", vbFromUnicode))
  19. '                Debug.Print StrConv(mapFile, vbUnicode)
  20.            Put ff, , mapFile
  21.        End If
  22.    Close ff
  23. End Sub
  24.  
  25.  
  26. Private Function fisuras(ByRef arr() As Byte, ByRef words() As Byte) As Byte()
  27. Dim size    As Long
  28. Dim newSize As Long
  29. Dim sizeW   As Long
  30. Dim ret()   As Byte
  31. Dim i       As Long, j  As Long ', k  As Long
  32.  
  33.    size = (UBound(arr) + 1)
  34.    sizeW = (UBound(words) + 1)
  35.    newSize = (size * sizeW + size / 1)
  36.  
  37.    ReDim ret(0 To (newSize - 1))
  38.  
  39.    For i = 0 To (size - 1)
  40.        ret(j) = arr(i): j = (j + 1)
  41.        RtlMoveMemory VarPtr(ret(j)), VarPtr(words(0)), sizeW   '   For k = 0 To (sizeW - 1): ret(j + k) = words(k): Next
  42.        j = (j + sizeW)
  43.    Next
  44.  
  45.    fisuras = ret
  46.  
  47. End Function
  48.  
  49.  

o tambien asi:

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Form_Load()
  5. Dim ff          As Long
  6. Dim mapFile()   As Byte
  7.  
  8.    ff = FreeFile
  9.    Open "c:\hola.txt" For Binary As ff
  10.        If Not EOF(ff) Then
  11.            ReDim mapFile(0 To LOF(ff) - 1)
  12.            Seek ff, 1  '  nos posicionamos al inicio del archivo
  13.            Get ff, , mapFile
  14. '                Debug.Print StrConv(mapFile, vbUnicode)
  15.            Seek ff, 1  '  nos posicionamos al inicio del archivo
  16.                mapFile = fisuras(mapFile)
  17. '                Debug.Print StrConv(mapFile, vbUnicode)
  18.            Put ff, , mapFile
  19.        End If
  20.    Close ff
  21. End Sub
  22.  
  23.  
  24. Private Function fisuras(ByRef arr() As Byte, Optional ByRef text As String = "BlackZeroX") As Byte()
  25. Dim size    As Long
  26. Dim newSize As Long
  27. Dim lenText As Long
  28. Dim ret()   As Byte
  29. Dim i       As Long, j  As Long, k  As Long
  30.  
  31.    size = (UBound(arr) + 1)
  32.    lenText = Len(text)
  33.    newSize = (size * lenText + size / 1)
  34.  
  35.    ReDim ret(0 To (newSize - 1))
  36.  
  37.    For i = 0 To (size - 1)
  38.        ret(j) = arr(i)
  39.        For k = 1 To lenText
  40.            ret(j + k) = Asc(Mid(text, k, 1))
  41.        Next
  42.        j = (j + 1 + lenText)
  43.    Next
  44.  
  45.    fisuras= ret
  46.  
  47. End Function
  48.  
  49.  

Dulces Lunas!¡.
397  Programación / Programación Visual Basic / Re: concatenacion de string y se queda pillado en: 12 Julio 2012, 22:55 pm
Código:
[quote author=lessionone link=topic=359048.msg1737017#msg1737017 date=1334307451]
...
[code]
 Private Function encriptararchivo(ByVal archivooriginal As String) As String
        Dim c As String = ""
        Dim z As String = ""
        Dim y As Integer=0
        For b = 1 To Len(archivooriginal)
            c = Mid(archivooriginal, b, 1)
            y = Asc(c)
            z = z & y & "tallin"
        Next
        Return z
...
[/quote]

para ese algoritmo sencillo se puede calcular facilmente el buffer que utilizara.

bufferSize = (SizeOfFile * lenWord) + (SizeOfFile / NumberOfChars)
es decir:
bufferSize = (len(archivooriginal) * len("tallin")) + (len(archivooriginal) / 1)

Aun que a mi sinceramente no me agrada usar los strings para trabajar con archivos...

Código
  1.  
  2. ...
  3.        z = space((len(archivooriginal) * len("tallin")) + (len(archivooriginal) / 1))
  4.  
  5.        For b = 1 To Len(archivooriginal)
  6.            mid(z, c, 1) = mid(archivooriginal, i, 1) // no recuerdo si en .Net puedo seguir usando el mid() del lado izuierdo del igual...
  7.            mid(z, c + 1, len("tallin")) = "tallin"
  8.            c = c + 1 + len("tallin")
  9.        Next
  10.  
  11.        Return z
  12. ...
  13.  

Me tendré que instalar otra vez el vb6...

Dulces Lunas!¡.[/code]
398  Programación / Programación Visual Basic / Re: Como abrir nuevas ventanas en la misma ventana? en: 10 Julio 2012, 04:08 am
Formularios MDI o también puedes usar el API SetParent...

Dulces Lunas!¡.
399  Programación / Programación Visual Basic / Re: Make Application Unkillable en: 10 Julio 2012, 03:58 am
unClose.zip by Cobein

Dulces Lunas!¡.
400  Seguridad Informática / Análisis y Diseño de Malware / Re: Demonio RAT 3.0 - [OpenSource - GPLv3] - Añadidos ejecutables win32 en: 6 Julio 2012, 10:13 am
Si no mal recuerdo pueden usar el IDE QT Creator o configurar tu IDE con las librerias QT para compilarlo...

http://qt.nokia.com/downloads

Dulces Lunas!¡.
Páginas: 1 ... 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 331
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines