SemaphoreSetDistribuido::SemaphoreSetDistribuido(std::vector<unsigned short> & numeros_de_semaforo, const std::string & directorio_de_trabajo, const std::string & nombre_app, const std::string & nombre_grupo, char id, int cantidad_sems, bool create) : nombre_recurso(nombre_grupo), cantidad_de_semaforos(cantidad_sems) { std::string prefijo_archivo; prefijo_archivo = std::string(directorio_de_trabajo).append(PREFIJO_RECURSO).append(nombre_grupo); char numero [5]; unsigned short valor; if (cantidad_de_semaforos > 125) { throw GenericError("Cannot allocate %d semaphores, max 125", cantidad_de_semaforos); } std::vector<unsigned short> valores(2 * cantidad_de_semaforos, 0); create_if_not_exists(std::string(prefijo_archivo).append(POSTFIJO_LCK).c_str()); if (create) { control = ControlTokens::get_instance(directorio_de_trabajo, true); semaforos = new SemaphoreSet(valores, std::string(prefijo_archivo).append(POSTFIJO_LCK).c_str(), id, 0664); } else { control = ControlTokens::get_instance(directorio_de_trabajo); semaforos = new SemaphoreSet(std::string(prefijo_archivo).append(POSTFIJO_LCK).c_str(), id, 0); } for (size_t i = 0 ; i < numeros_de_semaforo.size() ; i++) { valor = numeros_de_semaforo [i]; sprintf(numero, "%d", valor); lanzar_comunicacion(directorio_de_trabajo, nombre_app, std::string(directorio_de_trabajo).append(PATH_LOCAL_BROKER_LIST_FILE).c_str(), std::string(nombre_grupo).append(numero), id, 0, valor); } }
QVector<float> BD::extrairHistograma(QImage imagem) { QVector<float> valores(256, 0); for (int i = 0; i < imagem.width(); i++) for (int j = 0; j < imagem.height(); j++) valores[qGray(imagem.pixel(i,j))]++; return valores; }
int valores(int n){ int r=0; if(valoresInmediatos[n]!=0 && n!=0){ r=valoresInmediatos[n]; }else if(n==0){ r=0; }else if(n==1){ r=1; }else if(n%2==0){ r=valores(n/2); valoresInmediatos[n]=r; }else if(n%2==1){ r=valores(n-1)+valores(n+1); valoresInmediatos[n]=r; } return r; }
void Tamagotchi::on_SaludB_clicked() { if(create_window.granja->getPos(buscar(getNombre()))->enfermedad > 0 && create_window.granja->getPos(buscar(getNombre()))->enfermedad <= 100) { if(enfermedades->getPrimero()) { enfermedades->sacar(); if(enfermedades->getPrimero()) create_window.granja->getPos(buscar(getNombre()))->enfermedad = enfermedades->getPrimero()->valor; else create_window.granja->getPos(buscar(getNombre()))->enfermedad = 0; } } valores(getNombre()); }
int main(){ int n; int i=0; valoresInmediatos[0]=0; valoresInmediatos[1]=1; scanf("%i",&n); while(n!=0){ for(i=2;i<=n;i++){ valoresInmediatos[i]=valores(i); } printf("%i\n",mayores(n)); scanf("%i",&n); } return 0; }
void Histograma::populate(QImage *img) { QwtPlotGrid *grid = new QwtPlotGrid; grid->enableX(false); grid->enableY(true); grid->enableXMin(true); grid->enableYMin(true); grid->setMajorPen(QPen(Qt::black, 0, Qt::DotLine)); grid->setMinorPen(QPen(Qt::gray, 0, Qt::DotLine)); grid->attach(this); int cinza, mQtd = 0; int x, y; // Quantidade de pontos de 0 a 255 const int pts = 256; QVector<float> valores(pts); // inicializa os valores com 0 for (int i = 0; i < pts; i++) valores[i] = 0.0; for (x = 0; x < img->width(); x++) { for (y = 0; y < img->height(); y++) { cinza = qGray(img->pixel(QPoint(x,y))); valores[cinza]++; if (valores[cinza] > mQtd) mQtd = valores[cinza]; } } Histogram *hist = new Histogram("", Qt::black); hist->setValues(pts, &valores); hist->attach(this); this->replot(); }
void Principal::random(){ this->setLog(QString("Embaralhando...")); vector <vector<int> > valores(9); valores.at(0).push_back(4); valores.at(0).push_back(1); valores.at(0).push_back(2); valores.at(0).push_back(5); valores.at(0).push_back(7); valores.at(0).push_back(0); valores.at(0).push_back(6); valores.at(0).push_back(8); valores.at(0).push_back(3); valores.at(1).push_back(5); valores.at(1).push_back(1); valores.at(1).push_back(4); valores.at(1).push_back(0); valores.at(1).push_back(6); valores.at(1).push_back(2); valores.at(1).push_back(7); valores.at(1).push_back(8); valores.at(1).push_back(3); valores.at(2).push_back(8); valores.at(2).push_back(2); valores.at(2).push_back(4); valores.at(2).push_back(6); valores.at(2).push_back(7); valores.at(2).push_back(3); valores.at(2).push_back(5); valores.at(2).push_back(0); valores.at(2).push_back(1); valores.at(3).push_back(2); valores.at(3).push_back(4); valores.at(3).push_back(5); valores.at(3).push_back(7); valores.at(3).push_back(3); valores.at(3).push_back(0); valores.at(3).push_back(6); valores.at(3).push_back(1); valores.at(3).push_back(8); valores.at(4).push_back(0); valores.at(4).push_back(1); valores.at(4).push_back(5); valores.at(4).push_back(3); valores.at(4).push_back(8); valores.at(4).push_back(2); valores.at(4).push_back(4); valores.at(4).push_back(7); valores.at(4).push_back(6); valores.at(5).push_back(6); valores.at(5).push_back(7); valores.at(5).push_back(4); valores.at(5).push_back(3); valores.at(5).push_back(0); valores.at(5).push_back(2); valores.at(5).push_back(5); valores.at(5).push_back(1); valores.at(5).push_back(8); valores.at(6).push_back(5); valores.at(6).push_back(1); valores.at(6).push_back(0); valores.at(6).push_back(7); valores.at(6).push_back(8); valores.at(6).push_back(2); valores.at(6).push_back(4); valores.at(6).push_back(3); valores.at(6).push_back(6); int posicao; int vezes = 8; while(vezes != 0){ vezes--; posicao = rand() % 7; this->setNewDisplayPosition(valores[posicao][0],valores[posicao][1],valores[posicao][2],valores[posicao][3],valores[posicao][4],valores[posicao][5],valores[posicao][6],valores[posicao][7],valores[posicao][8]); this->delay(150); } this->setNewDisplayPosition(3,1,2,4,5,8,6,0,7); }
void Tamagotchi::bajarVida() { int dano = ui->BarraComida->value() + ui->BarraDormir->value() + ui->BarraHigiene->value() + ui->BarraSalud->value(); create_window.granja->getPos(buscar(getNombre()))->vida = 100 - (dano * 0.25); valores(getNombre()); }
void Tamagotchi::pierdeVida() { switch(rand()%4) { case 0: if(create_window.granja->getPos(buscar(getNombre()))->defecar >= 0 && create_window.granja->getPos(buscar(getNombre()))->defecar < 500) { if(desechos->getPrimero()) { if(desechos->getPrimero()->valor >= 0) { NodoT* tempo = new NodoT(desechos->getPrimero()->valor+10); desechos->meter(tempo); } } else if(!desechos->getPrimero()) { defecar = new NodoT(30); desechos->meter(defecar); } create_window.granja->getPosi(buscar(getNombre()))->defecar = desechos->getPrimero()->valor; } valores(getNombre()); break; case 1: if(create_window.granja->getPos(buscar(getNombre()))->comer >= 0 && create_window.granja->getPos(buscar(getNombre()))->comer < 500) { if(hambre->getPrimero()) { if(hambre->getPrimero()->valor >= 0) { NodoT* tempo = new NodoT(hambre->getPrimero()->valor+10); hambre->meter(tempo); } } else if(!hambre->getPrimero()) { comer = new NodoT(30); hambre->meter(comer); } create_window.granja->getPos(buscar(getNombre()))->comer = hambre->getPrimero()->valor; } valores(getNombre()); break; case 2: if(create_window.granja->getPos(buscar(getNombre()))->sanar >= 0 && create_window.granja->getPos(buscar(getNombre()))->sanar < 100) { if(enfermedades->getPrimero()) { if(enfermedades->getPrimero()->valor >= 0) { NodoT* tempo = new NodoT(enfermedades->getPrimero()->valor+10); enfermedades->meter(tempo); } } else if(!enfermedades->getPrimero()) { sanar = new NodoT(10); enfermedades->meter(sanar); } create_window.granja->getPos(buscar(getNombre()))->sanar = enfermedades->getPrimero()->valor; } valores(getNombre()); break; case 3: if(create_window.granja->getPos(buscar(getNombre()))->dormir >= 0 && create_window.granja->getPos(buscar(getNombre()))->dormir < 100) { if(sueno->getPrimero()) { if(sueno->getPrimero()->valor >= 0) { NodoT* tempo = new NodoT(sueno->getPrimero()->valor+10); sueno->meter(tempo); } } else if(!sueno->getPrimero()) { dormir = new NodoT(10); sueno->meter(dormir); } create_window.granja->getPos(buscar(getNombre()))->sueno = sueno->getPrimero()->valor; } valores(getNombre()); break; } }