|
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
« en: Miércoles 9 de Junio de 2004, 19:55 »
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
« en: Miércoles 9 de Junio de 2004, 19:31 »
Hola Sucede que tu declaras la variable como y tan solo necesitas declararla eso era todo.
3
« 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
« 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 #include <stdio.h> #include <conio.h> void menu(void) { textbackground(BLUE); textcolor(WHITE); clrscr(); gotoxy(20,10);printf("ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\n"); gotoxy(20,11);printf("º º\n"); gotoxy(20,12);printf("º opcion 1 º\n"); gotoxy(20,13);printf("º opcion 2 º\n"); gotoxy(20,14);printf("º opcion 3 º\n"); gotoxy(20,15);printf("º opcion 4 º\n"); gotoxy(20,16);printf("º opcion 5 º\n"); gotoxy(20,17);printf("º opcion 6 º\n"); gotoxy(20,18);printf("º opcion 7 º\n"); gotoxy(20,19);printf("º opcion 8 º\n"); gotoxy(20,20);printf("º º\n"); gotoxy(20,21);printf("ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n"); } void main(void) { int pos=0; char t; _setcursortype(_NOCURSOR); while(1) { menu(); textcolor(RED); gotoxy(23,12+pos); switch(pos) { case 0 : cprintf("opcion 1"); break; case 1 : cprintf("opcion 2"); break; case 2 : cprintf("opcion 3"); break; case 3 : cprintf("opcion 4"); break; case 4 : cprintf("opcion 5"); break; case 5 : cprintf("opcion 6"); break; case 6 : cprintf("opcion 7"); break; case 7 : cprintf("opcion 8"); break; }//switch() t=getch(); if(t==0) { t=getch(); switch(t) { case 80 : pos++; if(pos==8) pos=0; break; case 72 : pos--; if(pos==-1) pos=7; break; }//break }//if else if(t==27) break; }//while _setcursortype(_NORMALCURSOR); }
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
« 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 **M=(int *)malloc(sizeof(float)*i); for(j=0;j<i;j++) { *M[j]=(int *)malloc(sizeof(int)*d[j].numero_anyo); for(k=0;k<d[j].numero_anyo;k++) M[j][k]=(int*)malloc(sizeof(int)*5); }
donde i es la cantidad de alumnos y para liberar la memoria seria for(j=0;j<i;j++) { for(k=0;k<d[j].numero_anyo;k++) free(M[j][k]); free(*M[j]); } free(**M);
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
« 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
« en: Lunes 31 de Mayo de 2004, 23:45 »
Hola la forma de hacr la matriz de 3 dimensiones seria algo asi 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
« 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
« 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/8765espero que te sirva....
10
« 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 #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 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 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. 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
« 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. HMENU hMenu = GetSystemMenu(this->Handle, FALSE); EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED); DrawMenuBar(this->Handle);
12
« 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
« en: Domingo 30 de Mayo de 2004, 03:37 »
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
« 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
« en: Sábado 29 de Mayo de 2004, 19:34 »
el burbuja es el mas facil y es asi ejemplo 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
« en: Sábado 29 de Mayo de 2004, 00:35 »
Hola 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. 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. tb, preguntas por un .txt para abrir y luego creas un .bin. si puedes explicarme mejor tu idea te ayudaria mas.
Páginas: [1]
|
|
|