Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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();
}
Ejemplo n.º 4
0
/*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);
	}