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 - PiroskY

#51
Programación C/C++ / Re: juego de cartas
8 Julio 2011, 17:20 PM
SDL
#52
cierto, pero entonces me parece que no contaría uno de mas
#53
int c;
unsigned contador = 0;

while((c = getchar()) != EOF && c != '\n')
   if(c != '\n')
      contador++;


ahí quedaría, creo yo
#54
Supongo que con el EOF funciona, pero yo lo compararía contra '\n'
#55
Yo creo que el ejercicio apunta a que hagas algo mas o menos asi:

Pedir el numero una sola vez
Guardar en un entero auxiliar ese mismo numero
A ese auxiliar dividirlo por 10
Al numero que te da multiplicarlo por 10
Calcular la diferencia entre el numero que guardaste y el que obtuviste

Así estarías obteniendo la ultima cifra de tu numero binario
Si entendés que es lo que esta pasando ahí ya tenes un punto de partida
Suerte
#56
Programación C/C++ / Re: Una pregunta
7 Julio 2011, 04:55 AM
Vos queres que el usuario ingrese 101010, le de al enter, y al lado de ese numero aparezca el decimal?
#57
Explica mejor el ejercicio
Que tiene que hacer exactamente?
A medida que apretás una tecla mostrarla? y también ir mostrando el numero de teclas presionadas?
o simplemente ingresar algo, y al final mostrar cuantos caracteres introdujiste?
#58
Te doy unos consejos:
No confíes en donde debería estar el puntero

Si solo vas a leer información, abrí como rb
si vas a necesitar escribir, abrí como rb+

si queres leer desde el principio
fseek(puntero,0,seek_set)

si queres agregar algo
fseek(puntero,0,seek_end)

Por ultimo, yo me iría acostumbrando a la programación estructurada (no usar goto)

Btw: se escribe "vez"
#59
el problema es que no se de memoria dinamica aun, intento hacerlo con mis pequeños conocimientos, se que peudo ahcerlo de una u otra forma, pero no em sale :P

y lo que pedis que vuelva a explicar es asi:

Llamo a la funcion que me crea una convinacion, por ser la primera, la cargo en la matriz sin comparar contra ninguna
despues la llamo de nuevo, y voy recorriendo las filas de la matriz, viendo, si el primer elemento es algo distinto a un 0 es porque ahi ya hay una convinacion (porque previamente la inicialice toda con ceros)
si ya hay una convinacion, va a comparar contra esa, si pasa todas las comparaciones de todas las combinaciones, viendo que la convinacion que tengo actualmente en el vectorsito auxiliar es distinta a todas las guardadas, la guarda en la siguiente fila

no se si me explique mejor ahora
#60
Programación C/C++ / [C++] Especie de Fuerza Bruta
6 Noviembre 2010, 02:59 AM
Basicamente el programa funciona(deberia hacerlo) asi:
Se ingresa la cantidad de digitos
segun eso, se calcula el factorial para saber cuantas distintas combinaciones hay, y se crea una matriz de esas dimensiones
la matriz se inicia en 0
Se carga la primer convinacion en la matriz
mientras el primer elemento de la fila sea distinto a 0, va a ir comparando numero a numero, para ver si la combinacion es la misma
si es la misma la descarta y crea una nueva, si no es la misma acumula
si la cantidad de acumulaciones -1 es igual al indice de fila, significa que eran todas distintas, y guarda esa convinacion es esa fila
y asi hasta terminar
pero bueno, eso es lo que deberia hacer, no lo que hace :P


aca les tiro mi codigo:

Código (cpp) [Seleccionar]
#include <iostream>
#include <Time.h>
#include <cstdlib>
using namespace std;


void CargaVector(int vec[],int digitos)
{
    int z=0,error,N;
    while (vec[digitos-1] == 0)
    {
        error=1;
        while (error == 1)
        {
            error=0;
            N = (rand() % digitos) + 1;
            for (int a=0;a<z;a++)
                if (N == vec[a])
                    error=1;
            if (error == 0)
            vec[z]=N;
        }
        z++;
    }
}


int main()
{
    int N,x,y,digitos,aux,fact,error,bien=1,ban;

    cout << "Digitos: ";
    cin >> digitos;
    aux = digitos;
    fact = digitos;

    while (aux-1 > 1)
    {
        fact = fact*(aux-1);
        aux--;
    }

    int mat[fact][digitos],vec[digitos];

    for (x=0;x<fact;x++)
        for (y=0;y<digitos;y++)
            mat[x][y] = 0;

    for (x=0;x<digitos;x++)
        vec[x]=0;

    CargaVector(vec,digitos);
//
    x=0;
    for (y=0;y<digitos;y++)
        mat[x][y] = vec[y];

    CargaVector(vec,digitos);

    while (mat[fact-1][digitos-1] == 0) //mientras el ultimo elemento de la matriz siga siendo 0
    {
        x=0;
--->    while (mat[x][0] != 0) //mientras el primer elemento de la fila sea distinto de 0 (aca va a estar comparando, para no repetir combinaciones)
        {
            bien=0;
            ban=0;
            for (y=0;y<digitos;y++)
                if (mat[x][y] != vec[y] && ban == 0)
                {
                    bien++;
                    ban++;
                }
            if (bien == 0) //si bien sigue siendo 0 es porque hubo una combinacion coincidente, vuelvo a generar una combinacion en mi vector auxiliar y mando al final del ciclo
            {
                CargaVector(vec,digitos);
                continue;
            }
            x++;
--->    }
       
        if (bien-1 == x)
            for (y=0;y<digitos;y++)
                mat[x][y] = vec[y];
    }

return 0;
}



Al parecer nunca llega a salir del ciclo que marque con flechitas
Una ayudilla, dato, consejo?