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

#1021
Esperen, es posible tener dropbox en servidor local??? WOWOWOWOWOWO gracias gracias gracias!!!!!!!!!!!!!
#1022
Bueno viejo, mirandolo con detenimiento era algo simple, te dejo una plantilla que puede que funcione, aunque es extraño no me esta funcionando bien cuando se digita solo una letra, debe ser porque el scanf espera un string completo en lugar de un char unico.

Pero creo que por lo demás funciono bien, lo del char pronostico y la estructura, la deje como dos simples arreglos.


#include <stdio.h>
#define simple 3
#define multiple 12

void copiarQuinielas(char* quinielaBasica, char* quinielaAvanzada);

int main()
{
    char quinielaSimple[simple];
    char quinielaMultiple[multiple];

    printf("--------QUINIELAS!!--------\n\n");
    printf("Digite la quiniela (Maximo 3 caracteres):  ");
    fflush(stdout);
    scanf("%s", quinielaSimple);


    copiarQuinielas(quinielaSimple, quinielaMultiple);

    //printf("Su Quiniela Multiple es:  ");


    return 0;
}

void copiarQuinielas(char* quinielaBasica, char* quinielaAvanzada)
{
    int i, j;

    i=0;
    printf("Su quiniela Simple es:  ");
    while( i<3 )
    {
        fflush(stdout);
        printf("%c", quinielaBasica[i]);
        i++;
    }

    // Comprobando simbolos
    // Caso 1 ---> TRES SIMBOLOS
    if( quinielaBasica[0] != '\0' &&
        quinielaBasica[1] != '\0' &&
        quinielaBasica[2] != '\0')
    {
        for(i=0; i<3; i++)
        {
            quinielaAvanzada[i] = quinielaBasica[i];
            quinielaAvanzada[i+3] = quinielaBasica[i];
            quinielaAvanzada[i+6] = quinielaBasica[i];
            quinielaAvanzada[i+9] = quinielaBasica[i];
        }
    }

    // Caso 2 ---> DOS SIMBOLOS
    // En el ejemplo se piden dos escenarios:
    // 1. Partido 2: 1X ---> 1 1 1 1 1 1 X X X X X X
    // 2. Partido 4: 12 ---> 1 1 1 2 2 2 1 1 1 2 2 2
    // Pero como carajos decides que linea debe ir, yo opte por el escenario 1.
    else if( quinielaBasica[0] != '\0' &&
             quinielaBasica[1] != '\0' &&
             quinielaBasica[2] == '\0')
    {
        for(i=0; i<6; i++)
        {
            quinielaAvanzada[i] = quinielaBasica[0];
            quinielaAvanzada[i+6] = quinielaBasica[1];
        }
    }

    // Caso 3 ---> UNICO SIMBOLO
    // Todos los elementos son iguales
    else if( quinielaBasica[0] != '\0' &&
             quinielaBasica[1] == '\0' &&
             quinielaBasica[2] == '\0')
    {
        for(i=0; i<12; i++)
        {
            quinielaAvanzada[i] = quinielaBasica[0];
        }
    }



    // Imprimiendo la quiniela final
    i=0;
    printf("\n\nSu quiniela Multiple es:  ");
    while( i<12 )
    {
        printf("%c", quinielaAvanzada[i]);
        i++;
    }

}


Alguien sabe como solucionar este pequeño detalle?
#1023
Programación C/C++ / Re: basura en mi programa
7 Diciembre 2013, 23:36 PM
ah vale no me acordaba de eso, gracias
#1024
Viejo, no entendi  :silbar: :silbar: :xD :xD :laugh: :laugh:

Pero tal como lo veo solo necesitas poner esa información en pantalla, por lo que lo almacenas en un buffer temporal y lo imprimes inmediatamente cierto??

te recomiendo usar un char pronostico[30]  para acumular tanto 1X2 como vayas necesitando. y que si necesitas hacer un conteo, puedes usar un contador en ese arreglo de carateres o usar un strlen igual para ese arreglo.

De verdad si quiero ayudar, pero no entiendo como funciona el paradigma así que me quedare pendiente de que algún español pueda dejar algo.

#1025
Vaya, bueno ya deje arreglado el enunciado, la parte C era el del ejercicio que queria convertir en C++, efectivamente solo encontre ejemplos con "Cadenas a la C", no cai en cuenta de lo del delimitador "\0" tienes toda la razón.

Funciona perfectamente pero tengo unas dudas, ayudame a aclararlas maese:

Código (cpp) [Seleccionar]

double (*p_array)[M];
double *p_double;


Que significa particularmente el (*p_array)[M], hay que indireccionar por separado las columnas y las filas???


Código (cpp) [Seleccionar]

for (p_array = mt; p_array < mt + N; p_array++)
{
        for (p_double = *p_array; p_double < *p_array + M; p_double++)
        {
            *(p_double) = 2.00;
        }
}

p_array = mt;


Entiendo entiendo entiendo, dime entonces, o confirmame, siempre es necesario indicar al puntero que retorne a la posición inicial de la matriz, eso es lo que provoca el error de "segmentation fault", es así cierto??

Que significaria entonces si se hace esto:

Código (cpp) [Seleccionar]

**(p_double) = 2.00;
*(*(p_double) = 2.00;


#1026
Programación C/C++ / Re: basura en mi programa
7 Diciembre 2013, 19:04 PM
Bueno, creo ya tienen cubierto todas las opciones, no?? pero yo me pregunto porque no separas las opciones de cada menu en otras funciones, se veria bueno, mejor no??


void ingresarDato(char *ch , int *dato)
{
    printf("%s ",ch);
    fflush (stdout);
    scanf ("%d",dato);
}


Me parece una buena opción usar parametros por referencia, así puede sobrecargarse sin mayor inconveniente cada variable, yo iba a decir que solo se usara para el valor númerico, pero puede que funcione bien para el caracter.

Lo que me pregunto es por el fflush(stdout), no seria necesario realizar uno para el scanf?? es decir, fflush(stdin) para limpiar el buffer de entrada del teclado??
#1027
Cita de: amchacon en  6 Diciembre 2013, 23:12 PM
A diferencia de SDL, está hecho en C++. Aunque también tiene versiones para C, Pyhton, Ruby...

Pero la mayor ventaja esque triplica las funciones de SDL. Tiene funciones para casi todo. No mucho tiempo pero el código que tú pides no es díficil.



allegroboy detected  :laugh: :laugh: :laugh:

SDL2.0 es mucho más incompleto que SDL1.2.
#1028
Ok ok, pero no termino de entender, que es una quiniela, no soy español así que pues  :silbar: :silbar:

Lo que no entiendo es porque estas usando una matriz muldimensional, ya que solo estas solicitando un dato que es la cantidad de partidos, el ejercicio lo exige así??? o solo tiene que presentarse a modo de tabla??

Y no entiendo tampoco los pronosticos, hablas de un partido de futbol?? es de la forma:

Citar
Equipo A:  Goles    -      Equipo B:  Goles

O como va la cosa, porque francamente no entendi, además, no estas usando ninguna variable para guardar el pronostico.

#1029
Programación C/C++ / Re: dudas
7 Diciembre 2013, 18:28 PM
Esta dificil, sin saber como debe ir organizado.

En un ejercicio de esos normalmente piden esto:

1. Codigo
2. Nombre del articulo
3. Valor o Costo del articulo
4. Cantidad de articulos a vender

eso es algo muy básico, podria incluirse datos generales que sean externos a la tienda en si misma, como el proveedor, el cliente o fechas de inventario.

Pero para empezar podrias utilizar una estructura en la que guardes estos elementos y puedas acceder facilmente a estos, y estableces un tipo de definición para la variable que contiene a la estructura y la puedas instanciar o declarar rapidamente.


struct articulo_tienda
{
       int codigo;
       char nombre[30];
       float costo;
       int cantidad; 
};

typedef struct articulo_tienda articulo;


Digamos esa seria una forma rapida de declarar esa estructura, ahora para usarlo en el main o una funcion que quieras usar en el programa de tu tienda podrias hacer algo como esto, usando punteros y todo para que quede elegante, es algo muy facil de entender (no es como si fuera una fucking matriz multidimensional que me esta rompiendo las bolas con esto de la aritmetica de punteros)


...
void mostrarArticulos(articulo *ptr_articulo)

int main()
{
     articulo nuevoArticulo[] = { {111, "Manzana", 100.00, 5}, //  { Codigo, Nombre, Costo, Cantidad }
                                    {222, "Banano", 50.00, 3},
                                    {333, "Naranja", 80.00, 1},
                                    {444, "Lulo", 120.00, 2},
                                    {555, "Mora", 150.00, 4},
 
    articulo *punteroArticulo; /* puntero a estructura */
    punteroArticulo = nuevoArticulo;
    for(int i=0; i<5; i++, punteroArticulo++)
              mostrarArticulos(punteroArticulo);

   return 0;
   
}


eso para el main, omito los detalles simples como las librerias estandar de C y eso.

Ahora puedes ver que hay una función llamada mostrarArticulos, esa función imprime los articulos  que estan en la estructura.


void mostrarArticulos(articulo *ptr_articulo)
{
        printf("\nCodigo:  %d ", ptr_articulo -> codigo);
        printf("\nNombre:  %s ", ptr_articulo -> nombre);
        printf("\nCosto:  %d ", ptr_articulo -> costo);
        printf("\nCantidad:  %d ", ptr_articulo -> cantidad);
}


Eso es más o menos lo podria ir en una tienda, ya si quieres que sea el usuario quien digite lo que necesites, pues dejare que te tomes la molestia de al menos intentar extender el código y pensar por ti mismo en como solucionarlo.

No estoy seguro de que funcione, no lo probare, dejare que seas tú quien se haga la idea, y de eso se trata, de una simple guia para que seas tú quien pueda dar con la solución, si tienes problemas, nos comentas que has hecho y aquí te ayudamos
#1030
Que tal gente como estan, estoy retomando el tema de punteros, y estoy en problemas, no he podido hacer el siguiente ejercicio, por favor, echenme una mano, porque no he entendido porque me da errores de segmentation fault, y pues no me imprime la matriz por medio de aritmetica de punteros.

El enunciado del ejercicio es este:

------------------------------------------------------------------------------------------------------------------


En el siguiente código se accede a los elementos de una matriz. Acceder a los mismos elementos con aritmética de apuntadores.


#define N 4
#define M 5
int f, c;
double mt [N][M]
...
for(f=0; f<N; f++)
{
    for(c=0; c<M; c++)
             printf("%1f ", mt[f][c]);
    printf("\n");
}


------------------------------------------------------------------------------------------------------------------

Se que esta en C, pero quise hacer el C++ porque estoy avanzando en todo el tema y quiero pasar rapidamente de punteros, luego memoria dinamica, luego archivos, luego clases y luego hacer cosas en serio.


Código (cpp) [Seleccionar]

#include <iostream>

#define N 4
#define M 5



using namespace std;

int main()
{
   int f, c;
   double mt[N][M];

   double **mt_puntero;

   *(mt_puntero) = &mt[0][0];
   while(*mt_puntero)
   {
       *(*(mt_puntero)) = 2.00;
       mt_puntero++;
   }


   for(f=0; f<N; f++)
   {
       for(c=0; c<M; c++, mt_puntero++)
       {
           //cout << mt[f][c] << " ";
           // Aritmetica de punteros
           cout << *(*(mt_puntero + f) + c) << "--> ";
           cout << &mt_puntero[f][c] << endl;
       }
       cout << endl;
   }

   while(*mt_puntero)
   {
       cout << *(*(mt_puntero ) );
       mt_puntero++;
   }

   return 0;
}


Se que hay varias cosas mal, pero esto es debido a que probe de muchas formas y no he podido dar con el tema, ya he leido varios documentos y no he podido atinarle, agradeceria más allá de que me resuelvan el ejercicio, el que puedan explicarme como es el correcto uso de la aritmetica de punteros enfocado a matrices/arrays multidimensionales

slds