int escogerAlgoritmo(){ char str[10]; int opcion = 0; while(opcion < 1 || opcion > 3){ imprimirMenu(); scanf("%s", str); opcion = atoi(str); } return opcion; }
int main(){ //system("clear"); //system("cls"); int opcion, tipoDeVideo, diasDeAtraso = 0; float tarifa = 0; imprimirMenu(&opcion); if (opcionValida(opcion)) { tipoDeVideo = opcion; printf("¿Cuantos días tiene de atraso?(-1 devolución en termino)\n"); scanf("%d", &diasDeAtraso); tarifa = devolucion(tipoDeVideo, diasDeAtraso); printf("El costo a pagar es: $%.2f\n", tarifa); }else if (opcion != 0) { printf("La opción seleccionada es invalida\n"); }else{ printf("\nFin del programa"); printf("\n================\n"); } return 0; }
int main(int argc, char *argv[]) { int acao; char chave[50]; int chaveI; printf("\n-----------------------------\n"); printf("Sistema de Gerenciamento de Sessoes\n"); do { imprimirMenu(); acao = pedirAcao(); switch(acao) { case 0: printf("\n-----------------------------\n"); printf("Fim de execucao.\n"); break; case 1: inserirFilme(); break; case 2: criarSessao(); break; case 3: listarFilmes(); break; case 4: alterarStatus(); break; case 5: printf("\n-----------------------------\n"); printf("Busca por filme por genero:\n"); printf("Genero: "); fgets(chave, 30, stdin); buscarFilmesPorGenero(chave); break; case 6: printf("\n-----------------------------\n"); printf("Busca por filme por nome:\n"); printf("Nome: "); fgets(chave, 50, stdin); buscarFilmesPorNome(chave); break; case 7: printf("\n-----------------------------\n"); printf("Busca por filme por status:\n"); printf("Status (0. em breve / 1. em exibicao / 2. fora de exibicao): "); scanf("%d", &chaveI); buscarFilmesPorStatus(chaveI); break; default: printf("Opcao Invalida.\n"); break; } } while (acao != 0); printf("\n-----------------------------\n"); printf("Fim de execucao.\n"); return 0; }
/** \brief Menu de funciones para informar datos en pantalla. 1= Mostrar cantidad de usuarios 2= Mostrar a los usuarios 3= Mostrar usuarios y sus comentarios 4= Cosas nuevas de la sesion 5= los primeros usuarios dados de alta * \param usuarios: arraylist donde se guardan los usuarios * \param comentarios: arraylist donde se guardan los comentarios * \param usuariosOriginales: arraylist donde se guardan los usuarios que se tenian al iniciar el programa * \param comentariosOriginales: arraylist donde se guardan los comentarios que se tenian al iniciar el programa */ int informar(ArrayList *usuarios,ArrayList *usuariosOriginales,ArrayList *comentarios,ArrayList *comentariosOriginales) { int i,j, opcion; EComments* comment; EComments *commentAux; User *usuario; User *userAux; int usuariosAMostrar=5; ArrayList* pArray; opcion=imprimirMenu("1- Mostrar cantidad de usuarios\n2- Mostrar a los usuarios\n3- Mostrar usuarios y sus comentarios\n4- Cosas nuevas de la sesion\n5- los primeros usuarios dados de alta\n"); fflush(stdin); printf("\n-------------------------------------------\n"); switch(opcion) { case 1: if(usuarios->isEmpty(usuarios)==1) printf("No hay usuarios dados de alta!\n\n"); if(usuarios->isEmpty(usuarios)==0) printf("Existen %d usuarios dados de alta.\n\n",usuarios->len(usuarios)); break; case 2: for(i=0; i<usuarios->size; i++) { printUser(usuarios->get(usuarios,i)); } printf("\n"); break; case 3: for(i=0; i<usuarios->size; i++) { usuario= usuarios->get(usuarios,i); printUser(usuarios->get(usuarios,i)); for(j=0; j<comentarios->size; j++) { comment = (comentarios->get(comentarios,j)); if(usuario->id == comment->idComentador) { printf("Indice: %d. Comentario: %s Nick:%s Cantidad de likes:%d\r\n\n",comentarios->indexOf(comentarios,*(comentarios->pElements+j)),comment->comments,usuario->name,comment->likes); } } } printf("\n"); break; { case 4: if((al_containsAll(usuarios, usuariosOriginales)) && (al_containsAll(comentarios, comentariosOriginales)) && usuarios->size == usuariosOriginales->size && comentarios->size == comentariosOriginales->size) { printf("No se realizaron modificaciones en la sesion actual.\n\n"); } else { for(i=0; i<usuarios->size; i++) { userAux=usuarios->get(usuarios,i); if(usuarios->contains(usuariosOriginales,userAux)==0) { printf("\n-----NUEVOS USUARIOS-----\nNombre= %s\nNick= %s\n",userAux->name, userAux->nick); } } for(i=0; i<comentarios->size; i++) { commentAux=comentarios->get(comentarios,i); if(comentarios->contains(comentariosOriginales,commentAux)==0) { printf("\n-----NUEVOS COMENTARIOS-----\nCOMENTARIO= %s\nLikes= %d\n",commentAux->comments, commentAux->likes); } } } printf("\n"); break; case 5: if(usuarios->size < usuariosAMostrar) usuariosAMostrar =usuarios->size; pArray = usuarios->subList(usuarios,0,usuariosAMostrar); printf("Los primeros usuarios fueron:"); for(i=0; i<usuariosAMostrar; i++) { userAux=pArray->get(pArray,i); printf("\n%d = %s (Nick= %s)",i+1,userAux->name,userAux->nick); } printf("\n\n\n"); break; default: printf("No existe esa opcion... Reintente\n\n"); system("pause"); system("cls"); break; } } return 0; }
/** \brief Menu para borrado de usuarios. 1= borra el usuario 2= borra a todos los usuarios 3= borra y muestra en pantalla al usuario borrado * \param usuarios: arraylist donde se guardan los usuarios */ void borrado(ArrayList * usuarios) { char nickAux[51]; char nickAux2[51]; int opcion,i; User *usuario; User *usuario2; if(usuarios->size==0) { printf("NO HAY USUARIOS!!!\n\n"); } else { printf("Ingrese su nick: "); gets(nickAux); fflush(stdin); for(i=0; i<usuarios->size; i++) { usuario = usuarios->get(usuarios,i); if(strcmp(nickAux,usuario->nick) == 0) { printf("BORRADO DE USUARIO\n=============================\n"); opcion=imprimirMenu("1- Borrar un usuario\n2- Borrar y mostrar\n3- Borrar todos los usuarios\n\n"); fflush(stdin); printf("\n-------------------------------------------\n"); switch(opcion) { case 1: printf("Ingrese el nick a borrar: "); gets(nickAux2); fflush(stdin); for(i=0; i<usuarios->size; i++) { usuario = usuarios->get(usuarios,i); if(strcmp(nickAux2,usuario->nick) == 0) { printf("Usuario borrado o.O!!!!\n\n"); usuarios->remove(usuarios,i); } } break; case 2: printf("Ingrese el nick a borrar: "); gets(nickAux2); fflush(stdin); for(i=0; i<usuarios->size; i++) { usuario = usuarios->get(usuarios,i); if(strcmp(nickAux2,usuario->nick) == 0) { usuario2 = usuarios->pop(usuarios,i); printf("El usuario %s fue borrado o.O!!!!\n\n",usuario2); } } break; case 3: usuarios->clear(usuarios); printf("ACABA DE BORRAR A TODOS LOS USUARIOS o.O!!!!\n\n"); break; default: printf("No existe esa opcion... Reintente\n\n"); system("pause"); system("cls"); break; } } else { printf("Ese usuario no existe =(\n\n"); } } } }
int main(int argc, char **argv){ int myid; // Indica o rank do processo int numprocs; //Utilizada para indicar o numero de processos disponíveis int mymax=0, max; // Variáveis utilizadas para calcular o Maximo contido no vetor principal data int *dataA; // Vetor principal contendo todos os valores do obtidos no arquivo int *sendBufA, *recBuf; // Vetor auxiliar com tamanho definido por x, utilizado para segmentar int myresult=0, result; // Variávei utilizadas para calcular a soma de parciais e totais int i,j, x, low, high; // Variáveis auxiliares para laço e segmentação double tempoI, tempoF; //Variáveis para calcular o tempo de processamento int LIMIAR; // Efetua a validação dos parametros de entrada da linha de comando if(!(argc < 4)){ if((SIZE=atoi(argv[4]))==1 || (LIMIAR=atoi(argv[2])) ==1){ // O valor informado é inválido clear(); printf("ERRO - Informe um numero válido para quantidade !\n"); return 1; } }else{ //Faltam parametros de entrada para o programa clear(); printf("ERRO - Informe o caminho do arquivo de entrada e a quantidade de elementos a serem computados !\n"); return 1; } // Calcula tamanho para cada partição do vetor principal x = SIZE*SIZE/(numprocs); // Aloca vetor com tamanho informado por linha de comando dataA = (int*) malloc(sizeof(int)*SIZE*SIZE); sendBufA = (int*) malloc(sizeof(int)*x); // Inicia ambiente MPI para a aplicação MPI_Status Stat; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Bcast( &LIMIAR, 1, MPI_FLOAT, 0, MPI_COMM_WORLD); // Processo MASTER, efetua a distriuição de tarefas e calcula valores resultantes que não puderam // ser dividos entre os processos. if(myid == 0){ imprimirMenu(); tempoI=MPI_Wtime(); //Coleta o tempo de inicio do processamento printf("Métodos--------------------------------------------------------------------------------\n\n"); load(argv[1],dataA); printf("O vetor original foi divido em Segmentos de %d elementos distribuídos para %d processos\n",x,(numprocs -1)); printf(" %d foi escolhido como LIMIAR\n",LIMIAR); printf("--------------------------------------------------------------------------------------------\n\n"); int j,k; } MPI_Scatter(dataA, x, MPI_INT, sendBufA, x, MPI_INT, 0, MPI_COMM_WORLD); for(i=0;i<x;i++){ if(LIMIAR > sendBufA[i]) sendBufA[i]=0; else sendBufA[i]=1; } MPI_Gather(sendBufA, x, MPI_INT, dataA, x, MPI_INT, 0, MPI_COMM_WORLD); if(0 == myid) { for(i=(SIZE*SIZE)%(numprocs);i>0;i--){ if(LIMIAR > dataA[SIZE*SIZE-1-i]){ printf("Processando posicao: [%d]\n",(SIZE*SIZE)-i); dataA[-i]=0; }else dataA[SIZE*SIZE-1-i]=1; } save(dataA,argv[3]); // Informa o resultado final na tela do console printf("Resultados----------------------------------------------------------------------------------\n\n"); printf("A Matriz resultante foi salva no arquivo: : %s .\n ", argv[3]); printf("--------------------------------------------------------------------------------------------\n"); tempoF = MPI_Wtime(); printf("Tempo gasto: %lf\n", tempoF - tempoI ); printf("--------------------------------------------------------------------------------------------\n"); } MPI_Finalize(); //Finaliza o Ambiente MPI return 0; // Finaliza a aplição }