Example #1
0
File: baah.c Project: jagg-ix/src
pline *  linea( point pp1, point pp2 ){ //p1 < p2
	int x=0;
	point p;
	
	point p1 , p2 ;	
	pline *retlinea=NULL;

	int inclinacion=0;
	
	if( pp1.x< pp2.x ){
	 p1= pp1;
	 p2= pp2;
	}else
	if( pp1.x > pp2.x ){
	p1 = pp2 ;
	p2 = pp1 ;
	}

	if( p2.x == p1.x ){ //linea vertical
		printf(" p2.x= p1.x x=%d \n", p1.x);
		p.x = p1.x;
		for(p.y= p1.y+1 ;   ( p.y < p2.y) ; p.y++){
			inserta( p, &retlinea );
		}
		return  ( retlinea );
	}
	else
		inclinacion=m(p2, p1 );
		if ( inclinacion ==0 ){ //linea horizontal
			printf("inclinacion es igual a 0 \n");
			p.y= p1.y ;
			for( p.x = p1.x+1  ; p.x < p2.x ; p.x++ ){
				inserta( p, &retlinea );
			}
			return ( retlinea );	
		}//linea es recta horizontal
		else{ /* inclinacion no es vertical ni horizontal */
			printf("P1(%d,%d)  P2(%d,%d)\n", p1.x, p1.y, p2.x, p2.y );

			for( p.x= p1.x +1;  p.x < p2.x ; p.x++   ){
				 p.y= y(   inclinacion ,  p.x  ,  p1   );
				 inserta( p, &retlinea );
			}
			return ( retlinea );

		}
	

	return ( retlinea );	
	
}
Example #2
0
int main() {
    scanf("%d,",&N);
    inserta(N);
    mezmod(1,N);
    printf("%d\n",r);
    return 0;
}
Example #3
0
int main(int a,char* args[]){
    
	double utime0, stime0, wtime0,utime1, stime1, wtime1; //Variables para medición de tiempos
    int *numeros,n,i;
	Nodo *arbol;
	
	uswtime(&utime0, &stime0, &wtime0);
	
    numeros = (int*)malloc(10000000*sizeof(int));
	arbol = NULL;
	
    
    //Limite de numeros
    n = atoi(args[1]);
    
    //Leer n numeros del archivo
    for(i = 0;i < n;i++){
          scanf("%d",&numeros[i]);
          //printf("%d ",numeros[i]);      
    }
	//putchar('\n');
	//Implementacion del Arbol Binario
	for(i = 0;i < n;i++){
		inserta(&arbol,numeros[i]);
	}//Fin For
	
	printf("====================NUMEROS=================\n");
	//Recorremos el Arbol InOrden para obtener los Numero Ordenados (Imprime)
	inOrden(arbol);
	printf("!===================NUMEROS=================!\n");
	
	uswtime(&utime1, &stime1, &wtime1);
    

	//Cálculo del tiempo de ejecución del programa
	printf("\n");
	printf("real (Tiempo total)  %.10f s\n",  wtime1 - wtime0);
	printf("user (Tiempo de procesamiento en CPU) %.10f s\n",  utime1 - utime0);
	printf("sys (Tiempo en acciónes de E/S)  %.10f s\n",  stime1 - stime0);
	printf("CPU/Wall   %.10f %% \n",100.0 * (utime1 - utime0 + stime1 - stime0) / (wtime1 - wtime0));
	printf("\n");
	
	//Mostrar los tiempos en formato exponecial
	printf("\n");
	printf("real (Tiempo total)  %.10e s\n",  wtime1 - wtime0);
	printf("user (Tiempo de procesamiento en CPU) %.10e s\n",  utime1 - utime0);
	printf("sys (Tiempo en acciónes de E/S)  %.10e s\n",  stime1 - stime0);
	printf("CPU/Wall   %.10f %% \n",100.0 * (utime1 - utime0 + stime1 - stime0) / (wtime1 - wtime0));
	printf("\n");
	//******************************************************************



    return 1;    
}
Example #4
0
/* Copia: */
void copia(PCola destino,PCola origen){ 
	PNodoCola temp;
	if (tamano(origen)==0) /* Origen no debe estar vacio*/
		return;
	while((tamano(destino))>0) /* Borrado de la cola destino */
	{
		extrae(destino);
	}
	temp = origen->iterador; /* Almaceno temporalmente el iterador */
	inicio(origen);
	inserta(destino,examina(origen));
	while (avanza(origen)) /* Recorro la cola origen,y la voy insertando */
	{
		inserta(destino,examina(origen));
		/* Si he llegado al elemento que estaba señalado,fijo el iterador
		 * en el final de destino */
		if (origen->iterador==temp) 
			fin(destino);
	}
	origen->iterador=temp; /* Recolocar el iterador en origen */

}
Example #5
0
int main() {

  Arbol a = NULL; // Se crea un árbol vacío.

  // Ahora se insertan unos cuantos valores

  inserta(100, &a);
  inserta(200, &a);
  inserta(50, &a);
  inserta(150, &a);
  inserta(250, &a);
  inserta(20, &a);
  inserta(75, &a);
  inserta(60, &a);
  inserta(80, &a);
  inserta(170, &a);
  inserta(230, &a);
  inserta(300, &a);
  inserta(30, &a);
  inserta(120, &a);

  // Un recorrido para ver que todo está bien
  printf("\nBusqueda ENORDEN\n");
  enorden(a);

  // Ahora se hacen algunas búquedas

  if (busca(60, a)) printf("\nmuy bien\n");
  else printf("\nmuy mal\n");

  if (busca(85,a)) printf("\nmuy mal\n");
  else printf("\nmuy bien\n");

  // Ahora borramos un elemento del árbol

  elimina(60, &a);

  // Para ver que se haya hecho bien, se hace un recorrido
  printf("\nBusqueda ENORDEN\n");
  enorden(a);

  // Ahora borramos otro elemento.

  elimina(75, &a);

  // De nuevo, revisamos que todo esté bien
  printf("\nBusqueda ENORDEN\n");
  enorden(a);

  // Finalmente, borramos otro elemento

  elimina(200, &a);
  

  // Revisamos
  printf("\nBusqueda ENORDEN\n");
  enorden(a);

  // Ahora los otros recorridos, para que no hayan sido en balde
  printf("\nBusqueda PREORDEN\n");
  preorden(a);
  printf("\nBusqueda POSTORDEN\n");
  postorden(a);

}
Example #6
0
File: baah.c Project: jagg-ix/src
int main()
{
  
  FILE *input;
  
  int  nOvejas=10;

  int  nEsquinas=0;
  
  short i=0;
  
 pline *ovejas=NULL;
  pline *esquinas=NULL;
  
  pline punto;
  pline * conjuntoG=NULL ;
  pline * conjuntoO=NULL;

  pline *p=NULL;
  point p1, p2 ;

   if (  !(input=fopen("bahaa.in" , "r+t")  ) ) {
		perror( " no puedo abrir el archivo \n") ;     	
	}
    
  fscanf( input, "%d %d", &nOvejas, &nEsquinas );

	printf("se leeran %d ovejas \n", nOvejas );
    	printf("se leeran %d esquinas \n", nEsquinas );

	   printf("ovejas \n"); 
 	   for( i=0; i< nOvejas ; i++ ) {
      		fscanf( input, "%d" , &punto.x  ) ;
      		fscanf( input, "%d" , &punto.y  ) ;
    		inserta(punto, &conjuntoO );
		printf("(%d,%d) \n", punto.x , punto.y );	
    		}  
	   printf("esquinas \n");
   	for( i=0 ; i< nEsquinas; i++ ){	
		fscanf( input, "%d", &punto.x ) ;	
		fscanf( input, "%d", &punto.y ) ;
		inserta( punto, &esquinas );
		printf("(%d,%d) \n",punto.x , punto.y);
	}

	p=conjuntoO;

	printf("conjunto de puntos de Ovejas \n");
	while (  p ){
		printf(" (%d,%d) \n", p->x, p->y );
		p=p->sig;
	}    
 
	printf("conjunto de punto de Esquinas \n");
	p=esquinas;
	while( p ){
		printf(" (%d,%d) \n", p->x, p->y );
		p=p->sig;
	}

	p=esquinas ;
	
	p1.x = p->x;
	p1.y = p->y;
	
	p2.x = p->sig->x;
	p2.y = p->sig->y;

	conjuntoG=linea( p1, p2 );	
	printf(" puntos entre el primer y segundo punto \n");
	printf(" p1.x = %d, p1.y= %d | p2.x=%d,p2.y=%d \n ", p1.x, p1.y, p2.x , p2.y);

	printf(" %p direcccion que apunta conjuntoG \n", conjuntoG );
	p=conjuntoG;


	while( p ) {
		printf("(%d,%d)\n", p->x, p->y ); 
	p=p->sig;
	}	
  return 0 ; 
}
int main (){

tipo_elem x;
struct Nodo * pun;
struct encabezado * E;
int n, i,opc;
inicializa (&E);

do{
clrscr();
printf ("...........Menu............\n");
printf ("1-Inserta.....\n");
printf ("2-Suprime.....\n");
printf ("3-Localiza....\n");
printf ("4-Imprime.....\n");
printf ("5-Vacia.......\n");
printf ("6-Anula.......\n");
printf ("7-Salir.......\n");
printf ("Elige una opcion:....\n");
scanf ("%d", &opc);
switch(opc){
	case 1:
		printf ("\nDame numero a insertar.....\n");
		scanf("%d",& x);
		inserta(x,E);
		break;
	case 2:
		printf ("\nDame numero a suprimir.....\n");
		scanf ("%d",& x);
		suprimir(localiza(x,E));
		break;
	case 3:
               printf ("\nDame numero a localizar.....\n");
	       scanf ("%d",& x);
	       pun=localiza(x,E);
	       if(pun==NULL)
			printf("Numero no encontrado");
	       else
			printf("%p\n",pun);
	       getch();
	       break;
	case 4:
		clrscr();
 	    imprime(E);
		getch();
		break;
	case 5:
		if(vacia(E))
			printf("SI");
		else
			printf("NO");
		getch();
		break;
	case 6:
		anula(E);
		printf("La lista fue anulada");
		getch();
		break;
}
} while(opc!=7);
getch();
return 0;
}
Example #8
0
void main()
{

char opcion;
unsigned int sw;
estudiante *Ptr, *Avail,*P,*Q,*T;
float Inf;

//creacion del menú

sw=0;
do{
clrscr();
gotoxy(10,2);
printf("*** M E N U PRINCIPAL ** MANEJO DE LISTAS LINEALES ENLAZADAS ***");
gotoxy(15,4);
printf("1- Definir Listas Lineales Enlazadas");
gotoxy(15,6);
printf("2- Crear Listas Enlazadas");
gotoxy(15,8);
printf("3- Inserta Antes Del Nodo Con INF Dada");
gotoxy(15,10);
printf("4- Cancelar Antes Del Nodo Con INF Dada");
gotoxy(15,12);
printf("5- Mostrar Nodos De Lista");
gotoxy(15,14);
printf("6- SALIR");
gotoxy(15,16);
printf("7- Digite Opción");
do{

	opcion=getchar();
         }while (opcion'0'&& opcion<'6');
         switch (opcion){
	  case '1': if (sw==0){
	  	sw=1;
		clrscr();


		//Definicion de la LLE

		Ptr=0;
		Avail=0;
		printf("LISTA LINEAL ENLAZADA YA DEFINIDA...Digite 0 y <Enter> continua");
		do{
		   opcion=getchar();
		   }while (opcion!= '0');
		   }
		   else {
		   clrscr();
		   printf("LISTA YA DEFINIDA...Digite 0 y <Enter> continua");
		   do {
		   opcion=getchar();
		   } while (opcion != '0');
		   }
	         
		break;

	  case '2': if (sw==1){
	  	crear_nodo_lle(&Ptr);
		}
	  	else{
	  	clrscr();
	  	printf("Lista NO defenida...Digite 0 y <Enter> continua");
	  	do{
	  	opcion getchar();  
		} while (opcion != '0');
		   
	  	}
	  	break;


	  case '3':if (sw==1){
	  	captura_nodo(&Inf,&T,&Avail);
	  	inserta(&Ptr,Inf,T);
	  	}
	  	else{
	  	clrscr();
	  	printf("Lista NO defenida...Digite 0 y <Enter> continua");
	  	do{
	  	opcion getchar(); 
		} while (opcion != '0');
		   
	  	}
	  	break;

	  case '4': if (sw==1){
		clrscr();
		gotoxy(10,2)
		printf("INFORMACION DEL NODO A CANCELAR");
		gotoxy(15,4);
		printf("Codigo    :  ");
		scanf("%f",&Inf);
		Cancelar(&Ptr,&Avail,Inf);
                    
		}
	  	else{
	  	clrscr();
	  	printf("Lista NO defenida...Digite 0 y <Enter> continua");
	  	do{
	  	opcion getchar();  
		} while (opcion != '0');
		   
	  	}
		break;

	  case '5':if (sw==1){
		clrscr();
		escribir_nodos_lle(ptr);
		printf("\n\n Digite 0 y <Enter> Continua");
		do{
	  	opcion getchar();  
		} while (opcion != '0');
		}
		else{
	  	clrscr();
	  	printf("Lista NO defenida...Digite 0 y <Enter> continua");
	  	do{
	  	opcion getchar();  
		} while (opcion != '0');
		   
	  	}
		break;
		default : break;
		}
		}while (opcion != '6');
		clrscr();
		printf("Fin Del Proceso");
}		}
int main (){
tipo_elem x;
posicion E;
posicion pun;
int n, i,opc;
inicializa (&E);

do{
("sys");
printf ("...........Menu............\n");
printf ("1-Inserta.....\n");
printf ("2-Suprime.....\n");
printf ("3-Localiza....\n");
printf ("4-Imprime.....\n");
printf ("5-Vacia.......\n");
printf ("6-Anula.......\n");
printf ("7-Salir.......\n");
printf ("Elige una opcion:....\n");
scanf ("%d", &opc);
switch(opc){
	case 1:
		printf ("\nDame numero a insertar.....\n");
		scanf("%d",& x);
		inserta(x,(&E.cont+1),&E);
		break;
	case 2:
		printf ("\nDame numero a suprimir.....\n");
		scanf ("%d",& x);
		suprimir(localiza(x,E),&E);
		break;
	case 3:
            printf ("\nDame numero a localizar.....\n");
	       scanf ("%d",& x);
	       pun=localiza(x,E);
	       if(pun==NULL)
			printf("Numero no encontrado");
	       else
			printf("%p\n",pun);
	       getch();
	       break;
	case 4:
        	imprimir(E);
		getch();
		break;
	case 5:
		if(vacia(E))
			printf("SI");
		else
			printf("NO");
		getch();
		break;
	case 6:
		anula(&E);
		printf("La lista fue anulada");
		getch();
                break;
	default:
		printf("Opcion No Valida");
}
} while(opc!=7);
return 0;
}
Example #10
0
//Función que devolve ao analizador sintáctico o lexema co seu código, nel fanse as chamadas ao resto das funcións
tipoelem automataPrincipal() 
{
    int erro=0,estado=0,band=0;
    char aux;
    tipoelem elem;
    elem.numID=0;

    lexema = (char *) calloc(2, sizeof (char));//Reservamos memoria para o lexema (un caracter)

    while (!erro) 
    {
        switch (estado) 
        {
            case 0:
                aux=avanzarCaracter();
                if((aux==' ') || (aux== '\t'))//Comprobamos si hai tabulacion ou espacio 
                    estado=0;
                else if(aux=='\n'){ //Comprobamos si hai salto de linea
                     nLinea++;
                     estado=0;
                    }else if(aux=='#')//Si detectamos un # vamos ao estado=1, automata de comentarios 
                              estado=1; 
                          else if(isalpha(aux))//Si detectamos unha letra vamos ao estado=2, automata de identificadores e palabras reservadas 
                                  estado=2;
                               else if(isdigit(aux))//Si encontramos un numero vamos ao estado=3, automata dos numeros
                                        estado=3;
                                    else if((aux=='>') || (aux=='<') || (aux=='=') || (aux=='|') || (aux=='/') || (aux=='+') || (aux=='-'))//Si encontramos os seguintes simbolos accedemos ao estado=4, automata de operadores
                                            estado=4;
                                         else if(aux=='"')//Si encontramos un ", accedemos ao estado=5, automata de cadenas
                                                estado=5;
                                              else  if((aux==',') || (aux=='(') || (aux==')') || (aux=='*') || (aux=='^') || (aux==';')){//Si encontramos algun destes simbolos gardamos o codigo na estructura tipoelem 
                                                        lexema[i]=aux;
                                                        lexema[i+1]=0;
                                                        erro=1;
                                                        elem.numID=aux;
                                                   }else if(aux==EOF){//Si encontramos o final de ficheiro, reservamos memoria e copiamos EOF para detectar o final do arquivo 
                                                           lexema=(char *) realloc(lexema, 4);
                                                           strcpy(lexema, "EOF");
                                                           erro=1;
                                                        }else 
                                                            xestionErros(1,1, nLinea);
                break;  
            case 1://Accedemos ao automata de comentarios
                automataComentarios();
                estado=0;
                break;
            case 2://Accedemos ao automata de palabra reservada e identificadores
                lexema[i]=aux;
                lexema[i+1]=0;
                i++;
                erro=automataID_Reservada(&elem,&band);
                break;
            case 3://Accedemos ao automata para detectar numeros
                lexema[i]=aux;
                lexema[i+1]=0;
                i++;
                erro=automataNumeros(&elem,aux);
                break;
            case 4://Accedemos ao automata dos operadores
                lexema[i]=aux;
                lexema[i+1]=0;
                i++;
                erro=automataOperadores(&elem,aux);
                break;
            case 5://Accedemos automata de cadenas
                lexema[i]=aux;
                lexema[i+1]=0;
                i++;
                erro=automataCadenas(&elem);
                break;
        }//Salimos do bucle, cando error!=0. Cando entramos nun automata retornamos un valor, con este valor salimos
    }
    
    i=0;
    resetearLexema();//Función para volver a colocar o inicio do proximo lexema
    cargarTipoelem(&elem);//Cargar os datos na estructura tipoelem
    if (band==1) 
           inserta(&arbore, elem);//Si e un identificador e non esta na tabla de simbolos, introducimolo  
    return elem;//Devolvemos o lexema co seu numero para que o utilice o analizador sintactico
}