• Viernes 3 de Mayo de 2024, 11:10

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Zholo

Páginas: [1]
1
C/C++ / Re: Ayuda Uso De Matriz Tridimensional En C
« en: Miércoles 9 de Junio de 2004, 19:55 »
Citar
float ***M;

**M=(float *)malloc(sizeof(float)*i);

for(j=0;j<i;j++)
{
 *M[j]=(float *)malloc(sizeof(float)*3);
 for(k=0;k<d[j].numero_anyo;k++)
  M[j][k]=(float*)malloc(sizeof(float)*5);
}

i es la cantidad de alumnos

asi obtendrias una una matriz de M[3][5]

si fuesen 10 alumnos la matriz seria M[10][3][5]

espero que me entiendas, pones los * donde estan los que te mando yo....

espero que te sirva

2
C/C++ / Re: Curiosidad Con Turbo C++
« en: Miércoles 9 de Junio de 2004, 19:31 »
Hola

Sucede que tu declaras la variable como
Código: Text
  1. unsigned long int
  2.  
y tan solo necesitas declararla
Código: Text
  1. unsigned long
  2.  
eso era todo.

 :kicking:

3
C/C++ / Re: Como Funcia El Eliminar Nodos De Una Lista
« en: Miércoles 9 de Junio de 2004, 19:03 »
manda el codigo, porque lo que te puede estar pasando es que estas borrando la cabezera o el puntero a ella lo dejas en el nodo que eliminaste

4
C/C++ / Re: Como Realizar Un Menu Con Scroll
« en: Viernes 4 de Junio de 2004, 23:27 »
Hola

aqui te mando un ejemplo de un menu manejado con las flechas arriba y abajo

Código: Text
  1. #include &#60;stdio.h&#62;
  2. #include &#60;conio.h&#62;
  3. void menu(void)
  4. {
  5.      textbackground(BLUE);
  6.      textcolor(WHITE);
  7.      clrscr();
  8.      gotoxy(20,10);printf(&#34;ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»&#092;n&#34;);
  9.      gotoxy(20,11);printf(&#34;º                    º&#092;n&#34;);
  10.      gotoxy(20,12);printf(&#34;º  opcion 1          º&#092;n&#34;);
  11.      gotoxy(20,13);printf(&#34;º  opcion 2          º&#092;n&#34;);
  12.      gotoxy(20,14);printf(&#34;º  opcion 3          º&#092;n&#34;);
  13.      gotoxy(20,15);printf(&#34;º  opcion 4          º&#092;n&#34;);
  14.      gotoxy(20,16);printf(&#34;º  opcion 5          º&#092;n&#34;);
  15.      gotoxy(20,17);printf(&#34;º  opcion 6          º&#092;n&#34;);
  16.      gotoxy(20,18);printf(&#34;º  opcion 7          º&#092;n&#34;);
  17.      gotoxy(20,19);printf(&#34;º  opcion 8          º&#092;n&#34;);
  18.      gotoxy(20,20);printf(&#34;º                    º&#092;n&#34;);
  19.      gotoxy(20,21);printf(&#34;ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ&#092;n&#34;);
  20. }
  21. void main(void)
  22. {
  23.   int pos=0;
  24.   char t;
  25.   _setcursortype(_NOCURSOR);
  26.   while(1)
  27.    {
  28.   menu();
  29.   textcolor(RED);
  30.   gotoxy(23,12+pos);
  31.   switch(pos)
  32.    {
  33.      case 0 : cprintf(&#34;opcion 1&#34;);
  34.         break;
  35.      case 1 : cprintf(&#34;opcion 2&#34;);
  36.         break;
  37.      case 2 : cprintf(&#34;opcion 3&#34;);
  38.         break;
  39.      case 3 : cprintf(&#34;opcion 4&#34;);
  40.         break;
  41.      case 4 : cprintf(&#34;opcion 5&#34;);
  42.         break;
  43.      case 5 : cprintf(&#34;opcion 6&#34;);
  44.         break;
  45.      case 6 : cprintf(&#34;opcion 7&#34;);
  46.         break;
  47.      case 7 : cprintf(&#34;opcion 8&#34;);
  48.         break;
  49.    }//switch()
  50.      t=getch();
  51.      if(t==0)
  52.       {
  53.   t=getch();
  54.   switch(t)
  55.    {
  56.      case 80 : pos++;
  57.          if(pos==8)
  58.           pos=0;
  59.          break;
  60.      case 72 : pos--;
  61.          if(pos==-1)
  62.           pos=7;
  63.          break;
  64.    }//break
  65.       }//if
  66.      else if(t==27)
  67.       break;
  68.    }//while
  69.   _setcursortype(_NORMALCURSOR);
  70. }
  71.  

ten en cuenta que las flechas tienen dos codigos ascii, por asi decirlo en cero (0) y otro codigo por eso hay un if y un switch en el ejemplo

espero que te sirva....

5
C/C++ / Re: Ayuda Uso De Matriz Tridimensional En C
« en: Viernes 4 de Junio de 2004, 22:22 »
Hola


float ***M;
int i, j, k;
int tamaño;

la forma de pedir memoria seria asi

Código: Text
  1. **M=(int *)malloc(sizeof(float)*i);
  2.  
  3. for(j=0;j&#60;i;j++)
  4.  {
  5.   *M[j]=(int *)malloc(sizeof(int)*d[j].numero_anyo);
  6.   for(k=0;k&#60;d[j].numero_anyo;k++)
  7.    M[j][k]=(int*)malloc(sizeof(int)*5);
  8.  }
  9.  


donde i es la cantidad de alumnos

y para liberar la memoria seria

Código: Text
  1. for(j=0;j&#60;i;j++)
  2.  {
  3.   for(k=0;k&#60;d[j].numero_anyo;k++)
  4.    free(M[j][k]);
  5.   free(*M[j]);
  6.  }
  7. free(**M);
  8.  

y para ver la nota de algun alumno

seria algo asi:

M[0][0][0]//la nota de la primera asignatura del primer periodo del primer alumno

M[5][2][3]//la nota de la cuarta asignatura del tercer periodo del sexto alumno


espero que esto te aclara algunas dudas

cualquier cosa estoy para servirte........

6
C/C++ / Re: Alguien Puede Ayudarme Con El Codigo
« en: Viernes 4 de Junio de 2004, 22:08 »
Hola

disculpa la tardanza

lo de la matriz es algo asi

M[a][c]

donde a es por el numero del alumno
donde b es por el numero de periodo(1 a 3 o sea para los indices de 0 a 2)
donde c es la nota de uno de los 5

ejemplo

M[0][0][0] //es la nota de la primera asignatura, del primer alumno, en el primer periodo
M[0][0][1]//es la nota de la segunda asignatura, del primer alumno, en el primer periodo

espero que me entiendas.


lo que podrias hacer para validar que el periodo sea de 1 a 3 es cuando te ingresen algo diferente lo pides de nuevo o quiebras el ciclo con un break

7
C/C++ / Re: Ayuda Uso De Matriz Tridimensional En C
« en: Lunes 31 de Mayo de 2004, 23:45 »
Hola la forma de hacr la matriz de 3 dimensiones seria algo asi

Citar
int ***M;
int i, j;
int tamaño;

M=(int ***) malloc (tamaño);

for(i=0; i< tamaño; i++)
  M=(int **) malloc(tamaño);

for(i=0; i< tamaño; i++)
 for(j=0; j< tamaño; j++)
   M[j]= (int *) malloc(tamaño);


y asi obtienes una matriz de tres dimensiones de tipo entero.

espero que te sirva.

8
C/C++ / Re: Alguien Puede Ayudarme Con El Codigo
« en: Lunes 31 de Mayo de 2004, 22:11 »
Yo siempre utilizo fprintf para escribir en los archivos ya que asi les doy el formato que yo desee

Lo otro que deseaba preguntarte es que datos eran los que guardas en la matriz de tres dimensiones y si se podria utilizar nodos en vez de matrices.

Espero tu respuesta gracias.....

9
C/C++ / Re: Hola, Necesito Ayuda Con El Devcpp
« en: Lunes 31 de Mayo de 2004, 21:54 »
Hola prueva en esta pag aunque es la misma version del q tenias

http://www.softonic.com/ie/8765

espero que te sirva....

10
C/C++ / Re: Alguien Puede Ayudarme Con El Codigo
« en: Lunes 31 de Mayo de 2004, 21:32 »
Hola mira el .cpp o .c son cosas de uso de intrucciones, pero el que te envie es en C.

te lo explico a continuacion:
Esta es tu estructura que la utilize como la tenias tu

Citar
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>
#include<malloc.h>

struct alumno
{

char DNI[11];
char nombre[25];
char apellidos[50];
int numero_anyo;

};
typedef struct alumno DATOSALUMNO;



Aqui pregunto si el Archivo Alumnos.txt existe

Citar
void main(void)
{

FILE *fp;
FILE *ficbin;
DATOSALUMNO *d;
char dni[10];
int i,j;

textcolor(WHITE);
textbackground(BLUE);
clrscr();
if((fp=fopen("alumnos.txt", "r"))== NULL)//abrir fichero
{
  printf("El fichero alumnos.txt no existe\n");
  getch();
  return ;
}

Si existe lo leeo y se guarda en la estructura que definimos arriba, y en la linea del malloc creo el arreglo dinamico. y si no entiendes lo del fseek es una funcion para posicionarce dentro del archivo y lo utilizo para ponerlo al comienzo despues de recorrerlo

Citar
else
{
  i=0;
  while(!feof(fp))//cuenta cuantos alumnos hay en el archivo
   {
    fscanf(fp, "%d %s", &j, dni);
    i++;
   }
  d=(DATOSALUMNO*)malloc(sizeof(DATOSALUMNO)*i);//crea un areglo para guardar a los alumnos
  fseek(fp, 0L, SEEK_SET);
  for(j=0;j<i; j++)//limpia ese arreglo
   {
     d[j].DNI[0]='\0';
     d[j].nombre[0]='\0';
     d[j].apellidos[0]='\0';
     d[j].numero_anyo=0;
   }
  i=0;
  while(!feof(fp))//coloca los datos del archivo en el arreglo
   {
    fscanf(fp, "%d %s", &j, d.DNI);
    i++;
   }
}
fclose(fp);

y aca se comienza a pedir los datos de los alumnos y se van guardando en el archivo Alumnos.bin, y el fflush se utiliza para limpiar el cache del sistema en este caso el de ingreso por eso lleva el (stdin), ya que al utilizar gets y scanf se tienden a saltar ingresos por eso hay que limpiarlo con el fflush.

Citar
ficbin=fopen("Alumnos.bin", "wb");
for(j=0;j<i;j++)//pide los datos restantes
 {
   clrscr();
   fflush(stdin);
   printf("Datos del alumno con DNI    : %s\n\n", d[j].DNI);
   printf("Introduzca los Apellidos    : ");
   gets(d[j].apellidos);
   printf("\n");
   printf("Introduzca el Nombre        : ");
   gets(d[j].nombre);
   printf("\n");
   printf("Introduzca el Numero de a¤os: ");
   scanf("%d",&d[j].numero_anyo);
   fprintf(ficbin,"%s %s %s %d \n",d[j].DNI,d[j].apellidos,d[j].nombre,d[j].numero_anyo);//guarda los datos en archivo binario
 }
fclose(ficbin);
free(d);
return;
}


Cualquier duda que tengas dimelo no mas, tratare de responderte lo mas claro posible.

Gracias....

11
C++ Builder / Re: Como Hacer Q No Se Pueda Cerrar Un Formulario
« en: Lunes 31 de Mayo de 2004, 03:22 »
Hola

Prueba este codigo, desabilita el cerrar del form aunque igual deja funcionando el alt + F4.

 
Citar
HMENU hMenu = GetSystemMenu(this->Handle, FALSE);
  EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
  DrawMenuBar(this->Handle);

12
C++ Builder / Re: Duda Muy Simple
« en: Lunes 31 de Mayo de 2004, 03:07 »
Hola

El mismo codigo tienes que ponerlo en el evento OnClick del boton, al igual vas a tener q agregar al Form1 el Form2.h.

y lo de Form2->Label1->Caption=Form1->Edit1->Text; lo tienes q borrar del form2.

espero q entiendas y te sirva....

13
C/C++ / Re: Alguien Puede Ayudarme Con El Codigo
« en: Domingo 30 de Mayo de 2004, 03:37 »
:comp: Hola otra vez

Ahi te mando un codigo que te servira para abrir el archivo y guardar los datos que necesitas, solo faltan las notas, espero que te sirva.

14
C/C++ / Re: Alguien Puede Ayudarme Con El Codigo
« en: Sábado 29 de Mayo de 2004, 19:43 »
Hola

lo que lei me dio a entender mucho mejor tu situacion, lo que puedo hacer por ahora es darte como los pasos ya que no tengo donde dessarrollarlo para darte con ejemplos.

Primero ver si existe el archivo si no, mandas mensaje de que no encontro el archivo., pero si existe lo comienzas a leer y guardar los datos en la matriz.
luego comienzas con todo el ingreso de nombres y demas segun lo que te piden. Y aqui recien creas el archivo Bin.

Luego realizas las consultas y estadisticas que te piden y vas guardando en el archivo resultados.

espero que te sirva pero para el codigo necesito un poco de tiempo......

trata con la idea y yo lo hago en mi casa esta tarde y veo si te lo puedo enviar en la tarde.

15
C/C++ / Re: Ayuda! Necesito Metodos De Ordenacion
« en: Sábado 29 de Mayo de 2004, 19:34 »
el burbuja es el mas facil y es asi

ejemplo

Citar
int Arreglo[10];
int aux;

for(int i=0; i<10; i++)
 {
    for(int j=i+1; j< 10; j++)
     {
         if(Arreglo>Arreglo[j])
          {
             aux=Arreglo;
             Arreglo=Arreglo[j];
             Arreglo[j]=aux;
          }

     }
 }

16
C/C++ / Re: Alguien Puede Ayudarme Con El Codigo
« en: Sábado 29 de Mayo de 2004, 00:35 »
Código: Text
  1. Hola
  2.  
  3. Segun lo que estuve revisando, si no esta el fichero no hace nada, (por los return -1, que hacen que se salga solo), por eso queria ver si tienes un archivo de ejemplo.
  4.  
  5. lo otro es que si no existe el fichero trata igual de ller desde el, por lo tanto pondria esos ciclos dentro del if que pregunta si existe o no el archivo o como un else.
  6.  
  7. tb, preguntas por un .txt para abrir y luego creas un .bin.
  8.  
  9. si puedes explicarme mejor tu idea te ayudaria mas.
  10.  

Páginas: [1]