void Tabla::AsignarValor (const char *Id, Token * UnToken, unsigned *Indices, int Dim) { Variable *Aux = Buscar (Id); if (!Aux) Crear (Id, UnToken, 0 /*VengoDe */ , Indices, Dim); else Aux->AsignarValor (UnToken, Indices, Dim); return; }
int mainLink () { LProc list; Crear(&list); MostrarLista(list); AnadirProceso(&list, 3); AnadirProceso(&list, 8); AnadirProceso(&list, 1); AnadirProceso(&list, 14); AnadirProceso(&list, 0); printf("Despues de introducir: 3, 8, 1, 14, 0 la lista es es \n"); MostrarLista(list); system("PAUSE"); AnadirProceso(&list, 7); AnadirProceso(&list, 15); AnadirProceso(&list, 19); AnadirProceso(&list, 20); AnadirProceso(&list, 50); printf("Despues de introducir: 3, 8, 1, 14, 0, 7, 15, 19, 20, 50 la lista es es \n"); MostrarLista(list); system("PAUSE"); printf("Tras ejecutar 3 procesos"); EjecutarProceso(&list); EjecutarProceso(&list); EjecutarProceso(&list); MostrarLista(list); system("PAUSE"); printf("Fin Programa\n"); fflush(stdout); system("PAUSE"); return 0; }
void main() { int Opcion = 1, Tecla; do { do { clrscr(); textcolor(14); gotoxy(38, 1); printf("Pila", 162); textcolor(12); gotoxy(59, 25); printf("Ariel D%caz (2012-0134)", 161); gotoxy(1, 1); textcolor(15); gotoxy(1, 3); printf(Mensaje1); gotoxy(1, 4); printf(Mensaje2 "%co", 164); gotoxy(1, 5); printf(Mensaje3); gotoxy(1, 6); printf(Mensaje4); gotoxy(1, 7); printf(Mensaje5); gotoxy(1, 8); printf(Mensaje6 "%ca", 161); gotoxy(1, 9); printf(Mensaje7); gotoxy(1, 10); printf(Mensaje8); switch(Opcion) { case 1: textbackground(15); textcolor(0); gotoxy(1, 3); printf(Mensaje1); textbackground(0); textcolor(15); break; case 2: textbackground(15); textcolor(0); gotoxy(1, 4); printf(Mensaje2 "%co", 164); textbackground(0); textcolor(15); break; case 3: textbackground(15); textcolor(0); gotoxy(1, 5); printf(Mensaje3); textbackground(0); textcolor(15); break; case 4: textbackground(15); textcolor(0); gotoxy(1, 6); printf(Mensaje4); textbackground(0); textcolor(15); break; case 5: textbackground(15); textcolor(0); gotoxy(1, 7); printf(Mensaje5); textbackground(0); textcolor(15); break; case 6: textbackground(15); textcolor(0); gotoxy(1, 8); printf(Mensaje6 "%ca", 161); textbackground(0); textcolor(15); break; case 7: textbackground(15); textcolor(0); gotoxy(1, 9); printf(Mensaje7); textbackground(0); textcolor(15); break; case 8: textbackground(15); textcolor(0); gotoxy(1, 10); printf(Mensaje8); textbackground(0); textcolor(15); } do Tecla = getch(); while(Tecla != 13 && Tecla != 72 && Tecla != 80); if(Tecla == 72) { if(Opcion == 1) Opcion = 8; else if(Opcion > 1) Opcion--; } else if(Tecla == 80) if(Opcion == 8) Opcion = 1; else if(Opcion < 8) Opcion++; }while(Tecla != 13); switch(Opcion) { case 1: Crear(); break; case 2: Tamagnio(); break; case 3: Apilar(); break; case 4: Desapilar(); break; case 5: Cima(); break; case 6: Vacia(); break; case 7: Mostrar(); break; } }while(Opcion != 8); Salir(); }
/*Lee el archivo y almacena todas las familias y personas contenidas */ void open_file(Persona *personas, Familia *familias){ //~ Se define un archivo para trabajarlo FILE *archivo; //~ Creamos dos variables de Persona Ref tiene la estructura inicial del problema y Pers indica el elemento actual Persona *pers,*ref=(Persona*)malloc (sizeof(Persona)); Familia *ref_fam=(Familia*)malloc(sizeof(Familia)),*fami; int empieza=0,empieza_fam=0; char caracteres[50],aux[50],papa[50]="",hijo[50]="",mama[50]="",apellido[50],famil_nomb[50]; //~ creo las variables de nombre que ayudaran en el proceso archivo = fopen("Test.txt","r"); //~ reviso si el arhivo fue cargado o salgo del programa if (archivo == NULL) exit(1); //~ en caso de entrar al programa empieza a leer el archivo while (feof(archivo) ==0) { fgets(caracteres,50,archivo); //~ Revisa si la linea corresponde al padre if(strncmp(caracteres,"Nombre de la familia",10)==0){ fgets(caracteres,50,archivo); strcpy(famil_nomb,caracteres); } else if (strncmp(caracteres,"Padre: ",7)==0) { //~ Corta la cadena solo con el nombre Recortar(caracteres,papa,7,strlen(caracteres)); //~ Imprime el nombre para corroborar printf("%s ",papa); //~ Busca en la lista si el nombre ya fue ingresado if(Buscar(papa,ref)!=NULL) { printf("\nFue ingresado\n"); } else if(empieza==0){ ref=Crear(NULL,papa,"",""); printf(" Creando.....\n"); //~ Le indico a pers la posicion actual de ref para empezar a trabajar con el pers=ref; empieza++; } else{ pers->sig=Crear(ref,papa,"",""); pers=pers->sig; printf(" Creando.....\n"); } int i=0; while(papa[i]!=' ') i++; i++; Recortar(papa,apellido,i,strlen(papa)); } else if (strncmp(caracteres,"Madre: ",7)==0) { Recortar(caracteres,mama,7,strlen(caracteres)); printf("%s",mama); if(Buscar(mama,ref)!=NULL) { printf(" Fue ingresado\n"); } else{ pers->sig=Crear(ref,mama,"",""); pers=pers->sig; printf(" Creando.....\n"); } if(empieza_fam==0){ ref_fam=Crear_familia(ref,famil_nomb,papa,mama); fami=ref_fam; empieza_fam++; } else{ fami->sig=Crear_familia(ref,famil_nomb,papa,mama); fami=fami->sig; } } else if (strncmp(caracteres,"Hijos: ",7)==0) { Recortar(caracteres,hijo,7,strlen(caracteres)); if(strncmp(caracteres,"Hijos: sin hijos",16)==0) { int x=0; for(x=0;x<50;x++){ apellido[x]='\0'; papa[x]='\0'; caracteres[x]='\0'; aux[x]='\0'; hijo[x]='\0'; mama[x]='\0'; famil_nomb[x]='\0'; } } else { int len=0,num=0,verificador=0,num_hijo=0; while(verificador==0){ num=0; while(hijo[len]!=',' && hijo[len]!='\n'&& hijo[len]!='\r'&& hijo[len]!=' ' ){ aux[num]=hijo[len]; len++; num++; } aux[num]=' '; aux[num+1]='\0'; len+=2; printf("%s%s",aux,apellido); if(aux[strlen(aux)-1]!=' '){ strcat(aux," "); } strcat(aux,apellido); if(Buscar(aux,ref)!=NULL) { printf(" Fue ingresado\n"); Reemplazar(ref,aux,papa,mama); fami->Hijos[num_hijo]=Buscar(aux,ref); num_hijo++; } else{ pers->sig=Crear(ref,aux,papa,mama); pers=pers->sig; printf(" Creando.....\n"); fami->Hijos[num_hijo]=Buscar(aux,ref); num_hijo++; } if(hijo[len-2]=='\n'|| hijo[len-2]=='\r'|| hijo[len-2]==' ' ){ verificador=1; int x=0; for(x=0;x<50;x++){ apellido[x]='\0'; papa[x]='\0'; caracteres[x]='\0'; aux[x]='\0'; hijo[x]='\0'; mama[x]='\0'; famil_nomb[x]='\0'; } } } } } else{ printf("%s",caracteres); } } *personas = *ref; *familias = *ref_fam; fclose(archivo); }