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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Problema con funciones desde menu en: 30 Julio 2012, 23:18 pm
Tengo q hacer un menu donde el item 1 sea la carga de datos y los demas las respuestas al resultado. El problema es que no me toma los valores correspondientes de los lotes. Aver si alguien me puede decir en que me equivoque.
El codigo copila bien pero a la hora de usar las respuestas tira cualquier cosa, más que nada en el punto 1 y en el punto 2 que es con cadena de caracteres.

Código:
#include<conio.h>
#include<stdio.h>
#include<iostream>


 void menu(int*);
 void carga(int, int , int , int , int , int , int , int , float [][40], float [][40], int , int , int , char []);
 void pto1(int);
 void pto2(char []);
 void pto3(float [], float [][40], float [][40]);
 void pto4(float []);
 
 int main()
 {
     //Datos registrados
    char s1[]="asd";
    char s2[]= "asd2";
 
 
    //Verificacion de datos
    char usuario[32];
    char contrasena[32];
 
    //Enteros
    int i,k,j,opcion,cont,f,c,e,np,nc,ll,ct,nr,x;
    float mll[10][40]={0},mct[10][40]={0},vp[10]={0};
    cont=0;
    char nom[32];
 
 
    //Comienzo para los intentos de contraseña, maximo 3
    for(i=1; i<=3; i++)
    {
 
        printf("\nIngrese usuario: ");
        scanf("%s",usuario);
        k = strcmp( s1, usuario );
 
 
        if (k != 0)
        {
            printf("\nUsuario incorrecto\n");
 
 
        }
 
 
        if(k == 0)
        {
            printf("\nIngrese contrasena: ");
            scanf("%s",contrasena);
            j = strcmp( s2, contrasena);
 
            if (j == 0)
            {
                system("cls");
                printf("\nDatos correctos\n");
                printf("\nBienvenido al programa del servicio penintenciario\n");
                printf("\n");
                printf("\n");
                menu(&opcion);
                while(opcion !=9)
                  {
                      switch(opcion)
                      {
                                    case 1 :
                                             carga(i,f,c,e,np,nc,ll,ct,mll,mct,nr,cont,x,nom);
                                             break;
                                             
                                    case 2 :
                                             pto1(cont);
                                             break;
                                             
                                    case 3 :
                                             pto2(nom);
                                             break;
                                             
                                    case 4 :
                                             pto3(vp, mll, mct);
                                             break;
                                   
                                    case 5 :
                                             pto4(vp);
                                             break;
                                            }
                                            getch();
                                            system("cls");
                      menu(&opcion);
                      }
                      return 0;
                      }

 
                getch();
 
 
            }
 
            if(j != 0)
            {
                printf("\ncontrasena incorrecta\n");
 
 
            }
        }
 
 
 
 
    }

     
                     
     void menu(int * a)
     {
          printf("1-Cargar datos\n");
          printf("2-Respuesta 1\n");
          printf("3-Respuesta 2\n");
          printf("4-Respuesta 3\n");
          printf("5-Respuesta 4\n");
          printf("9-Salir\n");
          printf("\nOpcion: ");
          scanf("%d",a);
     }
     
     void carga(int a, int b, int c, int d, int e, int f, int g, int h, float i[][40], float l[][40], int m, int n, int p, char z[])
     {
         
          for(a=1;a<=2;a++)
          {
                           for(b=1;b<=2;b++)
                           {
                                             printf("\nIngrese numero de piso: ");
                                             scanf("%d",&e);
                                             printf("\nIngrese numero de celda: ");
                                             scanf("%d",&f);
                                             printf("\nIngrese numero de lugares libres: ");
                                             scanf("%d",&g);
                                             printf("\nIngrese capacidad total: ");
                                             scanf("%d",&h);
                                             i[e][f]=g;
                                             l[e][f]=h;
                                             }
                                             }
                                             printf("\nIngrese numero de recluso: ");
                                             scanf("%d",&m);
                                             
                                             while(m!=0)
                                             {
                                                         printf("\nIngrese nombre del recluso: ");
                                                         scanf("%s",z);
                                                         p=0;
                                                         
                                                         for(c=1;c<=2;c++)
                                                         {
                                                                           for(d=1;d<=2;d++)
                                                                           {
                                                                                             if(i[c][d]>0 && p==0)
                                                                                             {
                                                                                                            p=1;
                                                                                                            i[c][d]=i[c][d]-1;
                                                                                                            }
                                                                           }
                                                         }
                                                         
                                                         if(p==0)
                                                         {
                                                            n=n+1;   
                                                            printf("\nRechazado\n");
                                                           
                                                         }
                                                         printf("\nIngrese numero de recluso ");
                                                         scanf("%d",&m);
                                                         p=0;
                                             }
                           
                                             
                                             
     }
     
     //Punto 1
     
     void pto1(int a)
     {
          printf("%d no pudieron se alojados por falta de lugar",a);
     }
     
     //Punto 2
     
     void pto2(char * a)
     {
          printf("Los rechazados son: \n%d\n",a);
     }
     
//Punto 3
 
void pto3(float d[10],float e[][40], float g[][40])
{
    int f;
    for(f=1; f<=10; f++)
    {
        int c;
        for(c=1; c<=40; c++)
        {
                     d[f]=(d[f]+(e[f][c]))-(g[f][c]);
       
            if(d[f] > 0)
            {
                printf("Para el piso %d, la celda %d tiene aun disponibilidad\n",f,c);
            }
        }
    }
}
 
//Punto 4
 
void pto4(float d[10])
{
   
    float Max=d[1];
    int aux=1;
 
    int i;
    for(i=1; i<=10; i++)
    {
        if(d[i] > Max)
        {
            Max=d[i];
            aux=i;
        }
    }
 
 
    for(i=aux; i<=aux; i++)
    {
        if(d[i]==Max)
        {
            printf("El piso mas lleno es el piso %d\n",i);
        }
    }
}
2  Programación / Programación C/C++ / Ayuda en: 30 Julio 2012, 17:07 pm
Como hago para que la funcion sea llamada del menu y del ciclo?

Dejo codigo:

Código:
#include<conio.h>
#include<stdio.h>
#include<iostream>


 void menu(int*);
 void carga(int*);
 void pto1(int*);
 void pto2(char*);
 void pto3();
 void pto4();
 
 int main()
 {
     //Datos registrados
    char s1[]="asd";
    char s2[]= "asd2";
 
 
    //Verificacion de datos
    char usuario[32];
    char contrasena[32];
 
    //Enteros
    int i,k,j,opcion;
 
 
    //Comienzo para los intentos de contraseña, maximo 3
    for(i=1; i<=3; i++)
    {
 
        printf("\nIngrese usuario: ");
        scanf("%s",usuario);
        k = strcmp( s1, usuario );
 
 
        if (k != 0)
        {
            printf("\nUsuario incorrecto\n");
 
 
        }
 
 
        if(k == 0)
        {
            printf("\nIngrese contrasena: ");
            scanf("%s",contrasena);
            j = strcmp( s2, contrasena);
 
            if (j == 0)
            {
                system("cls");
                printf("\nDatos correctos\n");
                printf("\nBienvenido al programa del servicio penintenciario\n");
                printf("\n");
                printf("\n");
                menu(&opcion);
                while(opcion !=9)
                  {
                      switch(opcion)
                      {
                                    case 1 : printf("Cargad de datos");
                                             carga(&opcion);
                                             break;
                                             
                                    case 2 : printf("entro a la rta 1");
                                             pto1(&opcion);
                                             break;
                                             
                                    case 3 : printf("entro a la rta 2");
                                             pto2(&nom);
                                             break;
                                             
                                    case 4 : printf("Entro a la rta 3");
                                             break;
                                   
                                    case 5 : printf("Entro a la rta 4");
                                             break;
                                            }
                                            getch();
                                            system("cls");
                      menu(&opcion);
                      }
                      return 0;
                      }

 
                getch();
 
 
            }
 
            if(j != 0)
            {
                printf("\ncontrasena incorrecta\n");
 
 
            }
        }
 
 
 
 
    }

     
                     
     void menu(int * a)
     {
          printf("1-Cargar datos\n");
          printf("2-Respuesta 1\n");
          printf("3-Respuesta 2\n");
          printf("4-Respuesta 3\n");
          printf("5-Respuesta 4\n");
          printf("9-Salir\n");
          printf("\nOpcion: ");
          scanf("%d",a);
     }
     
     void carga(int * a)
     {
         
         
          int i,f,c,e,np,nc,ll,ct,mll[11][41]={0},mct[11][41]={0},nr,cont,x;
          char nom[32];
         
          for(i=1;i<2;i++)
          {
                           for(f=1;f<=2;f++)
                           {
                                             printf("\nIngrese numero de piso: ");
                                             scanf("%d",&np);
                                             printf("\nIngrese numero de celda: ");
                                             scanf("%d",&nc);
                                             printf("\nIngrese numero de lugares libres: ");
                                             scanf("%d",&ll);
                                             printf("\nIngrese capacidad total: ");
                                             scanf("%d",&ct);
                                             mll[np][nc]=ll;
                                             mct[np][nc]=ct;
                                             }
                                             }
                                             printf("\nIngrese numero de recluso: ");
                                             scanf("%d",&nr);
                                             
                                             while(nr!=0)
                                             {
                                                         printf("\nIngrese nombre del recluso: ");
                                                         scanf("%s",nom);
                                                         x=0;
                                                         
                                                         for(c=1;c<=10;c++)
                                                         {
                                                                           for(e=1;e<=40;e++)
                                                                           {
                                                                                             if(mll[c][e]>0 && x==0)
                                                                                             {
                                                                                                            x=1;
                                                                                             }
                                                                                             else
                                                                                             {
                                                                                                 mll[c][e]=mll[c][e]-1;
                                                                                             }
                                                                           }
                                                         }
                                                         
                                                         if(x==0)
                                                         {
                                                              pto2(&nom);   
                                                         }
                                                         else
                                                         {
                                                             cont=cont+1;
                                                             pto1(&cont);
                                                         }
                                                         printf("\nIngrese numero de recluso ");
                                                         scanf("%d",&nr);
                                             }
                           
                                             
                                             
     }
     
     //Punto 1
     
     void pto1(int * a)
     {
          printf("%d no pudieron se alojados por falta de lugar",a);
     }
     
     //Punto 2
     
     void pto2(char * a)
     {
          printf("Los rechazados son: \n%d\n",a);
     }
                                                                 
     //Punto 3
 
void pto3()
{
    int f;
    for(f=1; f<=10; f++)
    {
        int c;
        for(c=1; c<=40; c++)
        {
                     d[f]=(d[f]+(e[f][c]))-(g[f][c]);
        }
            if(d[f] > 0)
            {
                printf("Para el piso %d, la celda %d tiene aun disponibilidad\n",f,c);
            }
        }
    }
 
//Punto 4
 
void pto4()
{
   
    int Max=d[1];
    int aux=1;
 
    int i;
    for(i=1; i<=10; i++)
    {
        if(d[i] > Max)
        {
            Max=d[i];
            aux=i;
        }
    }
 
 
    for(i=aux; i<=aux; i++)
    {
        if(d[i]==Max)
        {
            printf("El piso mas lleno es el piso %d\n",i);
        }
    }
}
3  Foros Generales / Dudas Generales / Dudas en: 19 Julio 2012, 01:29 am
Tengo examen de Sistemas de computacion I y tengo tres dudas que no las puedo encontrar en ninguna parte. Ave si alguno las sabe.

Limite de representacion entre numeros enteros y binarios signados?
Limite de representacion entre numeros naturales y binarios signados?
Que es el operando y la operancion en codigo?

Gracias.
4  Programación / Programación C/C++ / Re: Ayuda ejercicio en: 17 Julio 2012, 01:41 am
Bueno, muchas gracias a todos por la ayuda. Con el tiempo espero mejorar y que no tengan que ver esto otra vez :/
Abrazo
5  Programación / Programación C/C++ / Re: Ayuda ejercicio en: 17 Julio 2012, 01:32 am
Si yase, la verdad es que no vimos un choto de codigo, casi todo el cuatrimestre viendo diagramacion Jackson y ahora tngo q hacer este tp, mas un menu y un usuario y contraseña. Se q es un horror pero bueno, con el tiempo espero aprender.
6  Programación / Programación C/C++ / Re: Ayuda ejercicio en: 17 Julio 2012, 01:27 am
Tengo errores en la funciones, me parecia raro que no aparescan.

Código:
void pto3(int a)
{
     int f;
     for(f=1;f<=10;f++)
     {
                      int c;
                      for(c=1;c<=40;c++)
                      {
                                        if(a[f][c] > 0)
                                        {
                                                     printf("\nPara el piso %d, la celda %d tiene aun disponibilidad\n",a,c);
                                                     }
                                                     }
                                                     }
                     
}
 
 void pto4(int a, int b, int c)
{
      int f;
      for(f=1;f<=10;f++)
      {
                        int c;
                        for(c=1;c<=40;c++)
                        {
                                          a[f]=a[f]+b[f][c]-c[f][c];
                                          }
                                          }
Max=a[f];
aux=f;

int i;
for(i=1;i<=10;i++)
{
                  if(a[i] > Max)
                  {
                           Max=a[i];
                           aux=i;
                           }
                           }
                           
                           
                           for(i=aux;i<=aux;i++)
                           {
                                                if(a[i]==Max)
                                                {
                                                              printf("\nEl piso mas lleno es el piso %d",i)
                                                              }
                                                              }
                                                              }
                                                              }



 C:\Users\Luciano\Desktop\Sin Nombre1.cpp In function `void pto3(int, int, int)':
227 C:\Users\Luciano\Desktop\Sin Nombre1.cpp invalid types `int[int]' for array subscript
 C:\Users\Luciano\Desktop\Sin Nombre1.cpp In function `void pto4(int, int, int)':
244 C:\Users\Luciano\Desktop\Sin Nombre1.cpp invalid types `int[int]' for array subscript
y un par más todo del void 4, lo tengo echo para la ***** yase. Esta bien haber declado como A a la matriz?
7  Programación / Programación C/C++ / Re: Ayuda ejercicio en: 17 Julio 2012, 01:03 am
Sisi, estaba contando justo las llaves. Estoy desde las 2 de la tarde con este trabajo practico lo cambie tantas veces ya que nose las orrores que pueden haber. Si me surge algo más lo pongo, mil gracias a todos.
8  Programación / Programación C/C++ / Re: Ayuda ejercicio en: 17 Julio 2012, 00:56 am
Pongo el codigo otra vez como lo tengo ahora, le saqe el ultimo menu:

Código:
#include <stdio.h>
#include <conio.h>
#include <string.h>

void menu1(int);
void idatos(int);
void menu2(int);
void pto1(int);
void pto2(char*);
void pto3(int);
void pto4(int, int, int);


int main ()
{
   
    //Datos registrados
    char s1[]="asd";
    char s2[]= "asd2";
   
   
    //Verificacion de datos
    char usuario[32];
    char contrasena[32];
   
    //Enteros
    int i,k,j,menu;

   
    //Comienzo para los intentos de contraseña, maximo 3
    for(i=1;i<=3;i++)
    {
                           
                            printf("\nIngrese usuario: ");
                            scanf("%s",&usuario);                           
                            k = strcmp( s1, usuario );
                           
                           
                            if (k != 0)
                             {
                                 printf("\nUsuario incorrecto\n");
                                 
                             
                             }
                           
                           
                            if(k == 0)
                            {     
                                                printf("\nIngrese contrasena: ");
                                                scanf("%s",&contrasena);
                                                j = strcmp( s2, contrasena);
                                               
                                                if (j == 0)
                                                {
                                                                           
                                                                           printf("\nDatos correctos\n");
                                                                           printf("\nBienvenido al programa del servicio penintenciario\n");
                                                                           printf("\n");
                                                                           printf("\n");
                                                                           menu1(menu);
                                                                           
                                                                           
                                                                           //Comienzo de Switch Menu
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           getch();
                                                                                       
                                               
                                                }
                                               
                                                if(j != 0)
                                                {
                                                    printf("\ncontrasena incorrecta\n");
                                                   
                                               
                                                }
                            }
   
   
   
 
}
}

void menu1(int a)
{
     
                                                                           printf("*********Menu**********\n");
                                                                           printf("\n1-Cargar datos\n2-Resultado punto A\n3-Resultado punto B\n4-Resultado punto C\n5-Resultado punto D\n6-Salir del sistema\n");
                                                                           printf("\nPor favor elija una opcion: ");
                                                                           scanf("%d",&a);
                                                                           
                                                                           while (a!=1)
                                                                           {
                                                                                printf("Elija otra opcion");
                                                                                scanf("%d",&a);
                                                                           }     
                                                                           
                                                                           switch (a)
                                                                           {
                                                                                 
                                                                                 
                                                                                  case 1:printf("Por favor ingrese los datos\n");
                                                                                  int b;
                                                                                  idatos(b);
                                                                                  break;
                                                                                 
                                                                                  case 2:printf("Opcion no disponible sin la carga de datos");
                                                                                  break;
                                                                                 
                                                                                  case 3:printf("Opcion no disponible sin la carga de datos");
                                                                                  break;
                                                                           
                                                                                  case 4:printf("Opcion no disponible sin la carga de datos");
                                                                                  break;
                                                                                 
                                                                                  case 5:printf("Opcion no disponible sin la carga de datos");
                                                                                  break;
   
                                                                                  case 6:getch();
                                                                                  break;
                                                                           
                                                                           }
                                                                           }

void idatos()
{
char nombre[32];
     int i;
      int j;
     for(i=1;i<=10;i++)
     {
 
                       for(j=1;j<=40;j++)
                       {
                                         int nr,np,nc,ll,cp,c,cont;
                                         nr=np=nc=ll=cp=cont=0;
                                         int Mll[10][40]={0};
                                         int Mct[10][40]={0};
                                         int VP[10]={0};
                                         printf("Ingrese numero de recluso");
                                         scanf("%d",&nr);
                                         printf("Ingrese numero de piso\n");
                                         scanf("%d",&np);
                                         printf("Ingrese numero de celda\n");
                                         scanf("%d",&nc);
                                         printf("Ingrese numero de lugares libres\n");
                                         scanf("%d",&ll);
                                         printf("Ingrese numero de capacidad total\n");
                                         scanf("%d",&cp);
 
                                         while(nr!=0)
                                         {
     
     printf("Ingrese nombre y apellido: ");
     fflush(stdin);
gets(nombre);
     int x,f,c;
     x=0;
     for(f=1;f<=10;f++)
     {
                       for(c=1;c<=40;c++)
                       {
                                          if(Mll[f][c] > 0 && x==0)
                                          {
                                                       x=1;
                                                       Mll[f][c]=Mll[f][c]-1;
                                          }
 
                       }
                       if(x==0)
                       {
                              cont=cont+1;
                             
 
                       }
}
 
}
 

pto1(cont);
pto2(nombre);
pto3(Mll[10][40]);
pto4(VP[10], Mll[10][40], Mct[10][40]);

}
void pto1(int cont)
{
     printf("%d no pudieron ser alojados por falta de lugar",cont);
}

void pto2(char* nombre)
{
  printf("Los rechazados son:\n", nombre);

}
 
void pto3(int a)
{
     int f;
     for(f=1;f<=10;f++)
     {
                      int c;
                      for(c=1;c<=40;c++)
                      {
                                        if(a[f][c] > 0)
                                        {
                                                     printf("Para el piso %d, la celda %d tiene aun disponibilidad",a,c);
                                                     }
                                                     }
                                                     }
                     
}
 
 void pto4(int a, int b, int c)
{
      int f;
      for(f=1;f<=10;f++)
      {
                        int c;
                        for(c=1;c<=40;c++)
                        {
                                          a[f]=a[f]+b[f][c]-c[f][c];
                                          }
                                          }
Max=a[f];
aux=f;

int i;
for(i=1;i<=10;i++)
{
                  if(a[i] > Max)
                  {
                           Max=a[i];
                           aux=i;
                           }
                           }
                           
                           
                           for(i=aux;i<=aux;i++)
                           {
                                                if(a[i]==Max)
                                                {
                                                              printf("El piso mas lleno es el piso %d",i)
                                                              }
                                                              }
                                                              }
                                                              }
                                                              }

Y la linea q me tira error:

Código:
pto1(cont);
pto2(nombre);
pto3(Mll[10][40]);
pto4(VP[10], Mll[10][40], Mct[10][40]);

}
void pto1(int cont)
{
     printf("%d no pudieron ser alojados por falta de lugar",cont);
}
9  Programación / Programación C/C++ / Re: Ayuda ejercicio en: 17 Julio 2012, 00:49 am
SIsi, ya los cambie esos pero ahora me tira errores boludos q no los encuentro como..

195 C:\Users\Luciano\Desktop\Sin Nombre1.cpp a function-definition is not allowed here before '{' token

Nose q me pide ahi abjao del void pto1.
10  Programación / Programación C/C++ / Re: Ayuda ejercicio en: 17 Julio 2012, 00:28 am
Gracias capo, ahi no me tiro más error.
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines