Exemple #1
0
//LEER
void MainWindow::leer(){
	QString fileName = QFileDialog::getOpenFileName(this,tr("Save Bolas"), ".",tr("Bolas files (*.txt)"));

	if(fileName.isEmpty()){
		return;
	}else{
		lectura(fileName);
		return;	
	}
}
void run(std::string miDireccion, std::string direccionRemota)
{
	Buffer buffer;
	Envio escritura(direccionRemota, &buffer);
	Recepcion lectura(miDireccion, &buffer);

	std::thread tWrite(escritura);
	std::thread tRead(lectura);

	tWrite.join();
	tRead.join();
}
int32_t hiloEjecucionCPU(t_HiloCPU* paramsCPU)
{
	log_info(MemoriaLog,"Esperando pedidos de Cpu \n");

	int32_t codigoOperacion;
	codigoOperacion = recibirCodigoOperacion(paramsCPU->cpuSocket);
	if(codigoOperacion==-1)	{
		log_error(MemoriaLog, RED"No se recibió correctamente el código de operación\n"RESET);
		return EXIT_FAILURE;
	}
	while(codigoOperacion!=0) 	{

		switch(codigoOperacion)	{
		case codigo_iniciar:
			iniciar(paramsCPU->cpuSocket, paramsCPU->swapSocket);
			break;
		case codigo_finalizar:
			finalizar(paramsCPU->cpuSocket, paramsCPU->swapSocket);
			break;
		case codigo_leer:
			lectura(paramsCPU->cpuSocket, paramsCPU->swapSocket);
			break;
		case codigo_escribir:
			escritura(paramsCPU->cpuSocket, paramsCPU->swapSocket);
			break;
		}

		codigoOperacion = recibirCodigoOperacion(paramsCPU->cpuSocket);
		if(codigoOperacion==-1) {
			log_error(MemoriaLog, RED"No se recibió correctamente el código de operación\n"RESET);
			return EXIT_FAILURE;
		}
	}

	if(codigoOperacion==0){
		log_info(MemoriaLog, "Se desconectó un CPU\n");
		bool PorCerrado(sock_t* socket){
			return socket->fd==0;
		}
		int32_t veces = list_count_satisfying(CPUsConectados,(void*)PorCerrado);
		int32_t it;
		for(it=0; it<veces; it++){
			list_remove_and_destroy_by_condition(CPUsConectados, (void*)PorCerrado, (void*)clean_socket);
		}
	}
Exemple #4
0
//---------------------------------------------------------------------------
void main(void)
{
double  x[Maxec]={0},x0[Maxec]={0},b[Maxec]={0};
double a[Maxec][Maxec+1]={0},s,eps;
int y,i,j,k,n;
Boolean valver=False;
char c,cad[25]={0};

clrscr();
gotoxy(30,1);cout<<"M‚todo de Gauss Seidel";
gotoxy(1,5);cout<<"N£mero de ecuaciones ";
do{
  cin>>n;
  if (n>6)
    cout<<"El sistema debe tener menos de 6 ecuaciones por cuestiones \nde impresion en pantalla\nGracias";
    cout<<"\n\nN£mero de ecuaciones ";
  }while(n>6);
lectura(a,x,b,n);
clrscr();
textcolor(14);
gotoxy(10,12);
cprintf("Si la solucion no converge, presione ESC para terminar");
textcolor(10);
gotoxy(1,24);
cprintf("Presione ENTER para continuar...");
textcolor(7);
enter();
k=0;
y=4;
eps=1e-5;
clrscr();
textcolor(10);
gotoxy(30,1);cout<<"M‚todo de Gauss Seidel";
textcolor(14);
gotoxy(45,24);cprintf("Presione una tecla para continuar...");
textcolor(15);
gotoxy(4,2);printf("k       x1        x2        x3         x4         x5       x6");
do{
   for(i=0;i<n;i++)
     x[i]=x0[i];
   for(i=0; i<n; i++)
     {
      s=0;
      for(j=0; j<n; j++)
	 if((i-j)!=0)
	   s=s+a[i][j]*x0[j];
      x0[i]=(b[i]-s)/a[i][i];
     }
   for(i=0; i<n; i++)
      {
       sprintf(cad,"%.4f",x[i]);
       x[i]=atof(cad);
       sprintf(cad,"%.4f",x0[i]);
       x0[i]=atof(cad);
      }

   for(i=0; i<n; i++)
      {
       if(fabs(x0[i]-x[i]) > eps)
	  valver=False;
       else
	  valver=True;
      }
   k++;
   if (k>ITERA)
     c=27;
   gotoxy(2,y);cout<<k;
   for(i=0; i<n; i++)
      {
       gotoxy(8+i*11,y);printf("%5.4f",x0[i]);
      }
   y++;
   c=getch();
   if(y>22)
     {
      y=4;
      clrscr();
      textcolor(10);
      gotoxy(30,1);cout<<"M‚todo de Gauss Seidel";
      textcolor(14);
      gotoxy(45,24);cprintf("Presione una tecla para continuar...");
      textcolor(15);
      gotoxy(4,2);printf("k       x1        x2        x3         x4         x5       x6");
     }
   if (k>ITERA)
     c=27;
  }while(!(valver==True||c==27));
textcolor(15);
cout<<"\n";
cprintf("DESPUES DE %d ITERACIONES",k);
cout<<"\n";
cprintf("LA SOLUCION DEL SISTEMA ES : \n");   printf("\n");
for(i=0; i<n; i++)
   cprintf(" x(%d) = %10.4f",i+1,x0[i]),cout<<"\n";
getch();
}
Exemple #5
0
int main()
{
    ArrayList* lista = al_newArrayList();
    ArrayList* repetidos = al_newArrayList();
    ArrayList* depurados = al_newArrayList();
    int opcion;
    char string[20];

    do
    {
        printf("MENU:\n");
        printf("1.-Parsear\n");
        printf("2.-Completar\n");
        printf("3.-Listar\n");
        printf("4.-Guardar\n");
        printf("5.-Salir\n");

        scanf("%d", &opcion);

        system("cls");

        switch(opcion)
        {
            case 1:
                lectura(lista);
                imprimirTodos(lista);
                break;

            case 2:
                completarLetra(lista);
                imprimirTodos(lista);
                break;
            case 3:
                printf("Ingrese una palabra: ");
                fflush(stdin);
                fgets(string, 20, stdin);

                filtrarRepetidos(lista, repetidos, string);
                repetidos->sort(repetidos, comparar, 1);
                imprimirTodos(repetidos);

                getchar();

                filtrarDepurados(lista, depurados, string);
                depurados->sort(depurados, comparar, 0);
                imprimirTodos(depurados);
                break;
            case 4:
                escritura(lista, "completo.csv");
                escritura(repetidos, "repetidos.csv");
                escritura(depurados, "depurados.csv");
                break;
            case 5:
                printf("Programa finalizado\n");
                break;
            default:
                printf("Opcion invalida\n");
                break;
        }
    }
    while(opcion != 5);


    return 0;
}
Exemple #6
0
void *threadLectura(void *arg)
{
    struct rusage *usage = (struct rusage *)arg;
    lectura(usage);
    pthread_exit(0);
}
Exemple #7
0
int main()
{
	short numevento = 0, mapactual, numlink, numitems = 0, mov, bat;
	char **map;
	bool updatemap = true; // Usado para determinar cuándo hay que refrescar la pantalla.
	bool update = false; // Usado para determinar cuándo hay que buscar una batalla.
	STRUCTpos VISION, tamMapa = { 0 };
	STRUCTgraph graph;
	STRUCTcontroles controles;
	STRUCTpersonaje personaje;
	STRUCTeventos *evento;
	STRUCTitem *items;
	STRUCTlink *puertas;

	srand(time(0));
	setlocale(LC_CTYPE, "Spanish");
	mapactual = 0; // Mapa a cargar por defecto.
	inicializacion(&numitems, &VISION, &graph, &controles, &personaje, &items, &mapactual); //Inicialización de variables.
	intromenu(&items, controles, &personaje, &mapactual); // Menú de introducción (Nuevo juego, Cargar partida...).
	lectura(&numevento, &mapactual, &numlink, &tamMapa, &map, &evento, &puertas); // Primera lectura del mapa.

	do // Bucle principal.
	{
		bat = rand() % 25;
		if (bat == 0 && update == true)
		{
			batalla(numitems, controles, &personaje, items);
			updatemap = true;
		}
		if (updatemap == true)
			display(evento, VISION, tamMapa, graph, &personaje, map, numevento, mapactual);
		mov = movimiento(numevento, map, &controles, &personaje, evento);
		switch (mov) // El valor devuelto por la función movimiento determina si el personaje se ha movido a un terreno normal, a una puerta o se ha pulsado el menú.
		{
		case 1: // El personaje se ha movido a una puerta.
			if ((busquedaPuerta(&mapactual, &numlink, &personaje, puertas)) == 1) // Se busca la puerta de enlace y se asigna como actual el mapa de destino.
			{
				free(evento);
				updatemap = true;
				lectura(&numevento, &mapactual, &numlink, &tamMapa, &map, &evento, &puertas); // Se lee el mapa al que lleva la puerta.
			}
			else
				error(2, mapactual);
			break;
		case 2: // El personaje ha abierto el menú
			update = false;
			updatemap = true;
			pjmenu(controles, &personaje, items, mapactual, graph, VISION);
			break;
		case 3: // El personaje ha abierto el menú de administrador.
			update = false;
			updatemap = true;
			adminmenu(&VISION, &graph, &controles, &personaje);
			break;
		case 4:
			update = false;
			updatemap = false;
			break;
		case 5:
			update = false;
			updatemap = true;
			break;
		case 6:
			update = true;
			updatemap = true;
			break;
		default: // El personaje se ha movido a un terreno normal.
			break;
		}
	} while (1);
}