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

#1
Cita de: naderST en  9 Noviembre 2012, 01:54 AM
Si estas programando en "C++" por qué no usas la clase String? Otra cosa, no puedes comparar dos strings de C de esta manera:

buscar != estudiante[k]

Debes usar strcmp() de la librería string.h. No se que otros errores puedas tener, pero soluciona eso primero.

Hice el cambio y utilice la función que me indicaste pero ahora siempre me evalua a 0.





/*
    PROBLEMAS Y ERRORES:

    1.- El ciclo FOR,para almacenar nombre y apellidos, me tira un numero mas
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int main()
{

    const int MAX = 100;        //Tamaños maximos para filas y columnas del arreglo
    const int TAM = 50;

    //Variables iniciadas para evitar valores basura

    char estudiante[MAX][TAM] = {" "};
    char buscar[TAM] = {" "};
    int tamFila = 0;

    cout << "Este programa le permite capturar el nombre y apellido."
         << "\nde estudiantes esperando en fila, y tambien verifica si un \n"
         << "nombre introducido por teclado esta en la lista."
         << "\n_______________________________________________________\n\n\n";
    cout << "\t\t::Caja No. 511::\n";

    cout << "\nIntroduzca tamano de la fila:";
    cin >> tamFila;

    cout << "\nNombre y apellido estudiantes en fila.\n";
    for ( int j = 0; j <= tamFila; j++)
    {
        gets(estudiante[j]);

    }

    cout << "\n\n\n\t<BUSQUEDA>\n "
         << "\tPara resultados positivos introduzca\n el nombre tal como lo escribio.\n\n"
         << "Nombre y apellido estudiante: ";

    cin.getline(buscar, sizeof(buscar));

    for(int k = 0; k <= tamFila; k++)
    {
        int valorCmp = strcmp(estudiante[k], buscar);

       if ( valorCmp == 0)
        {

            cout << "=> El que se fue de la fila pierde su silla, " << buscar;
            break;

        }else{

            cout << "=> "<< buscar << " por favor pase a pagar.";
            break;

        }
    }


    cout <<"\n\n Personas en fila\n";

    for ( int j = 0; j <= tamFila; j++)
    {
        if (j != 0)
        {
            cout << j << ".- " <<estudiante[j] << endl;
        }

    }


return 0;
}

#2
Programación C/C++ / Re: Error en malloc()
9 Noviembre 2012, 14:38 PM
Si lo que intentas es asignar dinamicamente memoria y estas en C++ puedes usar new y delete, no¿?
#3
1. Para que te borre la pantalla, te recomiendo que leas este enlace    http://www.cplusplus.com/articles/4z18T05o/

2. Para que vuelva al inicio puedes hacer una llamada a la función main(), de esta manera: main();  ya que esta es la función principal.

#4
Esto es parte de una tarea y me pedían que utilizara arreglos estáticos, siempre me paso por la mente utilizar string pero me atuve a lo que me pedían en la tarea.

Gracias amigo por la respuesta corregiré esto y luego posteo los resultados.

Un saludo.
#5
Programación C/C++ / Re: ayuda con vectores c++
8 Noviembre 2012, 20:07 PM

Este hace lo que quieres que haga.

Observaciones:
1. Escribe de manera clara los bloques de código, es decir, da a cada bloque su separación para que se pueda apreciar la lógica del mismo.

2. El problema de tu código era la ubicación de ciertas sentencias y una que otra que simplemente estaba demás, por favor estudia el código que aquí corregí para que veas esto por ti mismo.


#include<iostream>
#include<vector>
using namespace std;

int main(){
    vector<int>lista;
    int numero;


    while(numero!=-1)
    {
        cin>>numero;
        lista.push_back(numero);
    }



    int p=0;

    while(p<lista.size())
    {
       cout<<lista[p]<<endl;
       p = p+1;
    }

return 0;
}
#6
Saludos amigos!

Les pido que por favor le den una mirada a este código, el mismo tiene como fin almacenar en un array estático los nombres y apellidos de estudiantes esperando en una fila para pagar luego pedir un nombre y un apellido buscarlos y dar una salida en caso de encontrar o no.

Mi problema es que el bloque de codigo encargado de realizar la busqueda del nombre y apellido siempre evalúa a FALSE.

Encantado de estar entre ustedes, este es mi primer post en el foro y espero seguir activo en el mismo, desde ya gracias!


#include <iostream>
#include <cstdio>
using namespace std;

int main()
{

    const int MAX = 100;        //Tamaños maximos para filas y columnas del arreglo
    const int TAM = 50;

    //Variables iniciadas para evitar valores basura

    char estudiante[MAX][TAM] = {" "};
    char buscar[TAM];
    int tamFila = 0;

    cout << "Este programa le permite capturar el nombre y apellido."
         << "\nde estudiantes esperando en fila, y tambien verifica si un \n"
         << "nombre introducido por teclado esta en la lista."
         << "\n_______________________________________________________\n\n\n";
    cout << "\t\t::Caja No. 511::\n";

    cout << "\nIntroduzca tamano de la fila:";
    cin >> tamFila;

    cout << "\nNombre y apellido estudiantes en fila.\n";
    for ( int j = 0; j <= tamFila; j++)
    {
        gets(estudiante[j]);
    }

   
cout << "\n\n\n\t<BUSQUEDA>\n "
         << "\tPara resultados positivos introduzca\n el nombre tal como lo escribio.\n\n"
         << "Nombre y apellido estudiante: ";

    cin.getline(buscar, sizeof(buscar));

//Esta es la parte que evalua si la entrada esta almacenada.   
for(int k = 0; k <= tamFila; k++)
    {
        if (buscar != estudiante[k])
        {

            cout << "El que se fue de la fila pierde su silla, " << buscar;
            break;

        }else{

            cout << "Pase a pagar.";
            break;

        }
    }

    cout <<"\n\n Personas en fila\n";

    for ( int j = 0; j <= tamFila; j++)
    {
        if (j != 0)
        {
            cout << j << ".- " <<estudiante[j] << endl;
        }

    }


return 0;
}



#7
Programación C/C++ / Re: [Libros/Papers] C/C++
8 Noviembre 2012, 15:19 PM
Muy buenos libros tienes aquí, gracias.