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

#841
Cita de: rir3760 en 23 Enero 2014, 17:15 PM
Depende del lenguaje.

En C no es necesaria (y no se recomienda) la conversión de un puntero de tipo "void *" al tipo apropiado.

No se recomienda???, yo habia leido justo lo contrario en un libro de johanes aguilar, y ese tipo esta al nivel de Deitel...

Cita de: rir3760 en 23 Enero 2014, 17:15 PM
En C++ es obligatoria la conversión pero en lugar de malloc y calloc se recomienda el uso del operador new ya que este llama al constructor del objeto y resulta en un puntero del tipo correcto.

Un saludo

por supuesto en eso tienes toda la razón, solo que aún no he llegado a ese punto, todavia sigo con C, voy a mi propio ritmo y analizar muy bien esas cosas.
#842
ni idea, eso ya seria la parte del main, puede que el valor de la opción del menú nunca cambia en el switch que realizas, por lo que necesitas un while o un do-while para hacer una correcta comprobación de la opción del menú.
#843
Cita de: sora_ori en 23 Enero 2014, 15:46 PM
int opcion

Si que la he inicializado, pero el error que tengo en lo de antes no viene de ahí ¿verdad?


Saludos

Pues habian varios, pero el relacionado con el tema era que usabas un ciclo en el que recorria todos los valores de la sala desde i=0 y j=0 hasta la columna y fila deseada, por lo que mientras recorria todo el arreglo rellenando los valores, ahora, eso seria a modo general pero tu usaste la siguiente sentencia en el ciclo for:


for (i=0; i<fila; i++) {
    for (j=0; j<columna; j++) {;} // aqui recorre cada fila hasta la columna que digita el usuario
                                  // pero no hace nada
        if (mat[i][j] != 1){  //al primer uso, todos los valores son 0, entonces si son diferentes de 1
            mat[i][j] = 1; // con eso llenas todas las columnas, pues esta recorriendo i=0 hasta la fila...     
         
        }
        else printf("Asiento ocupado");
}


No necesitas usar un ciclo, si solo una sentencia de validación if para comprobar si es un asiento ocupado o no, eso es todo, ya tienes la columna y la fila que necesitas, el usuario la da, solo es comprobar si ya esta ocupada.

En fin, hay varias cosas, dejo el código, suerte con eso, sigue con el empeño.


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define max_columnas 5
#define max_filas    5


int main()
{
    srand(time(NULL));
    int opcion, i, j, fila, columna;
    int mat[max_columnas][max_filas];

    do {
          system("clear");
          printf("1.- Vaciar sala\n");
          printf("2.- Visualizar asientos disponibles\n");
          printf("3.- Reservar asientos\n");
          printf("0.- Salir\n");

          printf("\nEscoge una opcion: ");
          //fflush(stdin);
          scanf("%d", &opcion);

          switch (opcion){
                 case 1: // Vaciar sala
                      system("clear");
                      for (i=0; i < max_columnas; i++) {
                          for (j=0; j < max_filas; j++) {
                              mat[i][j] = 0;
                          }
                      }
                      printf("La sala ha sido vaciada correctamente");
                      getchar();
                      getchar();
                      break;



                 case 2: // Visualizar asientos disponibles
                      system("clear");
                      for (i=0;  i < max_columnas; i++) {
                          printf("\n");
                          for (j=0; j < max_filas; j++) {
                              printf(" %d ", mat[i][j]);
                          }
                          printf("\n");
                      }
                      getchar();
                      getchar();
                      break;



                 case 3: // Reservar asientos
                      system("clear");
                      printf("\tReserva de asientos");
                      printf("\n------------------------------\n");

                      printf("\nEscribe la fila: ");
                      scanf("%d", &fila);
                      printf("\nEscribe la columna: ");
                      scanf("%d", &columna);

                      if(mat[fila][columna] == 0)
                      {
                        mat[fila][columna] = 1;
                        printf("Asiento asignado correctamente");
                      }
                      else
                      {
                        printf("Asiento ocupado");
                      }

                      getchar();
                      getchar();
                      break;

                 case 0:
                      system("clear");
                      printf("Has decidido salir, hasta luego");
                      getchar();
                      return 0;
                      break;

                 default:
                      printf("Opcion no encontrada, hubo un error, esto va a explotar ARGH!!!\n\n");
                      getchar();
                      getchar();
                      break;



                 } // Fin switch

    } while (opcion != 0); // Fin do-while

    getchar();
    return 0;
}

#844
Cita de: jomag en 23 Enero 2014, 00:10 AM
Solucionado, tenia que reservar espacio para el array de punteros:

         probes = malloc((strlen(buf)+1) * sizeof(char));


umm pensaba que tenia que convertirse esa sentencia al tipo de variable al que se le tiene que reservar memoria pues malloc o calloc devuelven un valor tipo void, pero ya lo probe y  funciona, supongo que el mismo compilador realiza la conversión para evitar inconvenientes.

bien por ti, te superas solito  :laugh: :laugh:
#845
Cita de: alvaro22 en 23 Enero 2014, 16:05 PM
Buenas, he estado buscando por internet pero no me queda muy claro, alguien sabria decirme un ejemplo de una clase y su invariante sin codificarlo simplemente describirlo. Y definicion de aserciones en c++?

Gracias. Un saludo

que????? invariantes???? no te referiras a constantes???? un ejemplo de una clase es cualquier cosa: por ejemplo:

Código (cpp) [Seleccionar]

/*
    Desarrollar un programa que permita registrar los datos de una serie
    de productos que se venden en un almacén (código, nombre, marca, precio).
    Se desea listar los productos cuyo precio sea mayor a 5000 Bsf. y aquellos
    cuyo precio sea menor o igual a 5000 Bsf.
*/

#include <iostream>
#include <string>
#include <cstdio>

using namespace std;


class producto {
    public:
        //atributos
        float precio;
        int codigo;
        string marca, nombre;

        //procedimientos
        void leer();
        void imprimir();
        int precios(int precio);
};

int producto::precios(int precio)
{
    if(precio <= 5000)
    {
        return 0;
    }
    else // precio > 5000
    {
        return 1;
    }
}

void producto :: leer(){
    cout<<"introduzca el nombre del producto:  ";
    cin>>nombre;
    //cout<<"introduzca el codigo del producto:  ";
    //cin>>codigo;
    cout<<"introduzca el precio del producto:  ";
    cin>>precio;
    //cout<<"introduzca la marca del producto:  ";
    //cin>>marca;
}

void producto :: imprimir(){

    //cout << "PRECIOS MENORES O IGUALES A 5000" << endl << endl;
    if(precios(precio) == 0) // es menor o igual a 5000
    {
        cout << "Nombre del producto:  " << nombre << endl;
        cout << "Precio del producto:  " << precio << endl;
    }
    else if (precios(precio) == 1) // es mayor a 5000
    {
        cout << "Nombre del producto:  " << nombre << endl;
        cout << "Precio del producto:  " << precio << endl;
        cout << "El precio es mayor a 5000." << endl << endl;
    }
}



int main()

{
    int op;
    producto auto1;
    auto1.leer();
    auto1.imprimir();

    getchar();
    return(0);
}



Es el ejercicio de un chico que posteo hace poco una duda, ahi tienes una clase y su funcionamiento, pero pues no se sabe que es lo que pides, así que no se como ayudarte.
#846

case 4:
    system("cls");
    while (error <= 3)  //suponiendo que error = 1 cuando declaras la variable
    {
        printf("\tJUEGO DE ACERTAR UN NUMERO");
        printf("\n------------------------------\n");
        printf("Escribe un numero: ");
        scanf("%d", &num);
       
        for (i=0; i<5; i++)
        {
            if (num == vector[i])
                encontrado=1;
        }
       
        for (i=0; i<5; i++)
        {
            if (num != vector[i])
                error=error+1;
        }
       
        if (encontrado == 1)
        {
            printf("ENHORABUENA! Has acertado un numero!");
            getch();  // nunca me termino de gustar esta función
            break;
        }// fin if
       
        if (error == 3)
        {
            printf("\nYa has hecho tres intentos");
            getch();  // nuevamente, apesta... yo usaria getchar() pero da igual
            break;
        } // fin if
       
    }//fin while
    break;


Bueno, es una sugerencia.

slds
#847
son números demasiado grandes, una variable tipo int no admite ese tipo de valores, para eso usa long o arreglos o punteros (bueno es lo mismo pero diferente  :laugh: :silbar:) para esos valores tan grandes.

Consulta esta tabla:

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

slds
#848
Redes / Re: Apliar wi-fi lejano
23 Enero 2014, 16:46 PM
Cita de: Platanito Mx en 23 Enero 2014, 16:21 PM
Entonces actualmente te llega el internet a tu casa po run cable desde la casa del vecino?

jeje en mi país a eso se le dice "carreta" o "colombianada"  :laugh: :laugh: ;-) ;-) :xD :xD :silbar: :silbar:
#849
Cita de: Songoku en 23 Enero 2014, 13:45 PM
Yo que tu ni me molestaria, como ya te dije antes tu hd a pasado a mejor vida y no vas a poder instalar ningun sistema operativo si no lo sustituyes por otro.
Saludos...

Songoku


Esto mismo el gparted solo serviria si los sectores sirven, pero deben haber clusters muy jodidos, puedes intentar recuperarlos con HDDRegenerator, y luego un Low Level Format, pero eso es una posibilidad muy pero muy remota, empieza a averiguar otro disco. Suele pasar.
#850
Redes / Re: Apliar wi-fi lejano
23 Enero 2014, 00:21 AM
Honestamente, ese aparato es para interiores, dice que tiene antenas integradas, asi que no seran con más de 8 dBi, con un radio de unos 10 metros, es de uso simple para edificios, para pasar de un piso a otro, no tienen gran alcance, y con un precio así, dudo mucho de su calidad.

Yo hablo de una infraestructura así para transmisión y recepción de tipo exteriores así:

http://articulo.mercadolibre.com.co/MCO-409031572-router-inalambrico-wireless-n-tl-wr941nd-tp-link-_JM

http://articulo.mercadolibre.com.co/MCO-408477790-antena-24ghz-12dbi-omni-nodo-hotspot-wi-fi-qpcom-qpao12o-_JM

Pero la verdad, necesitas es contratar tu propio servicio, claro o une o etb, todos son malos, pero etb es de lejos el peor, y ya la cosa es la economia, pero pues...hay que invertir. Mejor tener un servicio contratado y no coger la del vecino.