int main(){	
	//LEE LINEA X LINEA EL ARCHIVO E INSERTA
	dirArchivo = "C:/Users/Natthaliee/Desktop/texto.txt";
	archivo=fopen(dirArchivo, "r");
			
	if (archivo==NULL){
   		perror ("Error al abrir fichero.txt");
   		return -1;
	}else{
		printf("Insertando datos al árbol: \n");
		t1 = clock();
		while(fgets(cad,1000000,archivo)!=NULL){
			printf("%s",cad);
			Inserta(&arbol,atoi(cad));
			add(atoi(cad));
			cont=cont+1;
			arreglo[k]	= atoi(cad);
			k++;
		}
		fclose(archivo);
		t2 = clock();
		duracionInserta = tiemp(t1, t2);
		printf("\nTiempo Insercion: %ld milisegundos\n",duracionInserta);
	}
	//RECORRIDO	
	printf("\n\nRecorrido enOrden:\n");
	t1 = clock();
	//recorrido(arbol);
	if(arbol!=NULL){
		recorrido(arbol->left);
		recorrido(arbol->rig);
	}
	t2 = clock();
	duracionRecorrido = tiemp(t1, t2);
	printf("\nTiempo Recorrido: %ld milisegundos\n",duracionRecorrido);
	
	//ORDENAMIENTO
	ordenamiento(arbol,k);
	
	//GRAFICA
	printf("Presione cualquier tecla para continuar..");
	getchar();
	graficar(cont);
	
	//SALIR
	system("PAUSE");
	return 0;
}
예제 #2
0
int RenderArea::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QWidget::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: graficarEasy((*reinterpret_cast< QVector<QPointF>(*)>(_a[1]))); break;
        case 1: graficar((*reinterpret_cast< QVector<QPointF>(*)>(_a[1])),(*reinterpret_cast< QPainter(*)>(_a[2]))); break;
        case 2: crearEjes((*reinterpret_cast< QPainter(*)>(_a[1]))); break;
        case 3: setScale((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
        default: ;
        }
        _id -= 4;
    }
    return _id;
}
void Interfaz::on_bt_graficar_clicked()
{


    calularPuntosAEvaluar(ui->sb_salto->value());
    lagrange.calcularPuntosConLagrange(puntosXarchivo,
                                       funcionExacta.resultadosFuncionExacta,
                                       puntosAEvaluar);

    funcionExacta.evaluarFuncionVariosPuntos(ui->tb_funcion->text(),
                                             puntosAEvaluar);
    graficar(puntosAEvaluar,lagrange.resultadoLagrange,
             funcionExacta.resultadosFuncionExacta);



}
예제 #4
0
int main()
{
    EPersona personas[C];
    char salir = 'n';
    int opcion = 0;

    inicializar(personas);

    while(salir == 'n')
    {
        printf("\n\n  Bienvenido al menu de opciones! \n");
        printf("  1- Agregar persona.\n");
        printf("  2- Borrar persona.\n");
        printf("  3- Imprimir lista ordenada por nombre.\n");
        printf("  4- Imprimir grafico de edades.\n");
        printf("  5- Salir.\n");


        printf("\n  Ingrese una de las opciones: ");

        opcion = validaMax(1, 5);
        printf("\n\n");

        switch(opcion)
        {
            case 1://alta
                altas(personas);

                break;

            case 2://baja
                borrar(personas);
                system("pause");
                system("cls");

                break;

            case 3://lista
                listar(personas);
                system("pause");

                break;

            case 4://grafico
                graficar(personas);

                break;

            case 5://salir
                printf("  Esta seguro que desea salir? (s/n): ");
                salir = validaRta(salir);

                if(salir == 's')
                {
                    printf("\n\n  Adios, vuelva pronto!\n\n");
                }

                break;
        }

    }

    return 0;
}
예제 #5
0
//---------------------------------------------------------------------------
void __fastcall TfrmRectas::actNuevaExecute(TObject *Sender)
{
	TfrmNuevaRecta *nr = new TfrmNuevaRecta(this);
    if(nr->ShowModal() == mrOk)
    {
    	TRecta::TPunto p;
        TRecta::TVectorDirector a;
    	TRecta::TPunto p1, p2;
        TRecta::TVectorNormal n;
        double A, B, C;
        double sa, sb;
    	TRecta *r;
    	switch(nr->cboEcuacion->ItemIndex)
        {
        	case 0: //canonica
                p.x = nr->edtP0x->Text.ToDouble();
                p.y = nr->edtP0y->Text.ToDouble();
                a.x = nr->edtax->Text.ToDouble();
                a.y = nr->edtay->Text.ToDouble();
            	r = new TRecta(p,a);
            break;
            case 1: //Ecuación dos puntos
                p1.x = nr->edtP0x->Text.ToDouble();
                p1.y = nr->edtP0y->Text.ToDouble();
                p2.x = nr->edtP1x->Text.ToDouble();
                p2.y = nr->edtP1y->Text.ToDouble();
            	r = new TRecta(p1,p2);
            break;
            case 2: //Ecuación general de la recta
                A = nr->edtA->Text.ToDouble();
                B = nr->edtB->Text.ToDouble();
                C = nr->edtC->Text.ToDouble();
            	r = new TRecta(A, B, C);
            break;
            case 3: //Ecuación normalizada de la recta
            break;
            case 4: //Ecuación paramétrica
                p.x = nr->edtP0x->Text.ToDouble();
                p.y = nr->edtP0y->Text.ToDouble();
                a.x = nr->edtax->Text.ToDouble();
                a.y = nr->edtay->Text.ToDouble();
            	r = new TRecta(p,a);
            break;
            case 5: //Ecuación punto y pendiente
                p.x = nr->edtP0x->Text.ToDouble();
                p.y = nr->edtP0y->Text.ToDouble();
            	r = new TRecta(p,nr->edtm->Text.ToDouble());
            break;
            case 6: //Ecuación punto y vector normal
                p.x = nr->edtP0x->Text.ToDouble();
                p.y = nr->edtP0y->Text.ToDouble();
                n.x = nr->edtA->Text.ToDouble();
                n.y = nr->edtB->Text.ToDouble();
            	r = new TRecta(p,n);
            break;
            case 7: //Ecuación segmentaria
                sa = nr->edtsa->Text.ToDouble();
                sb = nr->edtsb->Text.ToDouble();
                r = new TRecta(sa,sb);
            break;
            case 8: //Ecuación vectorial paramétrica
                p.x = nr->edtP0x->Text.ToDouble();
                p.y = nr->edtP0y->Text.ToDouble();
                a.x = nr->edtax->Text.ToDouble();
                a.y = nr->edtay->Text.ToDouble();
            	r = new TRecta(p,a);
            break;
        }
		strcpy(r->name, AnsiString(nr->edtName->Text).c_str());
        r->paint = nr->chkshow->Checked;
        r->vnormal = nr->chkvnormal->Checked;
        r->vdirector = nr->chkvdirector->Checked;
        r->style->Color = nr->cboColor->Selected;
        r->style->Width = nr->cboGrosor->ItemIndex + 1;
        r->style->Style = (TPenStyle)(nr->cboTrazo->ItemIndex);
    	rectas->Add(r);
        graficar();
    }
    delete nr;
}
예제 #6
0
void __fastcall TfrmRectas::FormShow(TObject *Sender)
{
	graficar();
}
예제 #7
0
//METODO CONSTRUCTOR
int main()
{
    cabeza = NULL;
    cabeza1 = NULL;
    raiz = NULL;
    int seleccion;
    clock_t t1,t2;
    float t_ordenarBurbuja, t_ordenarQuicksort, t_insercion, t_recorido;
    //MENU DE LA APLICACION
    do{
        system("clear");
        if(seleccion==CARGAR){//CARGA LOS ARCHIVOS
            cabeza = leerArchivo(cabeza);
            t1=clock();
            raiz = insertaArbol(cabeza, raiz);
            t2=clock();
            t_insercion = (float)(t2-t1)/(float)(CLOCKS_PER_SEC);
            cabeza1 = insertarLista(cabeza, cabeza1);
            printf("El tiempo que tardo la inseccion = %f\n", (float)(t2-t1)/(float)(CLOCKS_PER_SEC));
        }
        if(seleccion==IMPRIMIR){//IMPRIME AMBOS DATOS
            printf("Quicksort\n");
            Imprimir(cabeza1);
            printf("Burbuja\n");
            Imprimir(cabeza);
            printf("Los datos del arbol son: \n");
            t1=clock();
            inOrden(raiz);
            t2=clock();
            t_recorido = (float)(t2-t1)/(float)(CLOCKS_PER_SEC);
            printf("\nEl tiempo que tardo en realizar el recorrido = %f\n", (float)(t2-t1)/(float)(CLOCKS_PER_SEC));
        }
        if(seleccion==ORDENAR){
            t1=clock();
            quicksirt(cabeza1, cantidad(cabeza1));
            t2=clock();
            t_ordenarBurbuja = (float)(t2-t1)/(float)(CLOCKS_PER_SEC);
            t1=clock();
            cabeza = ordenar(cabeza);
            t2=clock();
            t_ordenarQuicksort = (float)(t2-t1)/(float)(CLOCKS_PER_SEC);
        }
        if(seleccion==REPORTE){
            printf("REPORTE DE TIEMPOS \n\n");
            printf("Ingresar al arbol: %f\n", t_insercion);
            printf("Recorrido del arbol: %f\n", t_recorido);
            printf("Ordenado burbuja: %f\n", t_ordenarBurbuja);
            printf("Ordenado quicksort: %f\n", t_ordenarQuicksort);
        }
        if(seleccion==DIAGRAMA){
            graficar(t_insercion, t_recorido, t_ordenarBurbuja, t_ordenarQuicksort, cantidad(cabeza));
        }
        if(seleccion == 9){
            int n;
            scanf("%d", &n);
            printf("dato = %d\n", getNodo(cabeza1, n)->dato);
        }
        printf("\n------------------------- MENU ---------------------------\n");
        printf("0. Salir \n");
        printf("1. Leer Archivo \n");
        printf("2. Imprimir \n");
        printf("3. Ordenar Listas \n");
        printf("4. Reporte \n");
        printf("5. Diagrama \n");
        printf("6. Limpiar Consola \n");
        printf("-------------- Selecione una de las opciones ---------------\n");
        scanf("%d", &seleccion);
    }while(seleccion!=0);
    system("clear");
    printf("LA APLICACION TERMINO SU PROCESO \n");
    return 0;
}