int agregarPelicula(EMovie movie[],FILE *f) { int i; estado(movie); for(i=0;i<M;i++) { if(movie[i].estado == 0) { printf("Titulo de La pelicula: \n"); fflush(stdin); gets(movie[i].titulo); val_tam(movie[i].titulo,21); strlwr(movie[i].titulo); printf("Genero de la pelicula: \n"); fflush(stdin); gets(movie[i].genero); val_tam(movie[i].genero,21); printf("Duracion de la pelicula(min): \n"); scanf("%d",&movie[i].duracion); movie[i].duracion = val_Enteros(movie[i].duracion); printf("Descripcion de la pelicula: \n"); fflush(stdin); gets(movie[i].descripcion); val_tam(movie[i].descripcion,51); printf("Puntaje de la pelicula(del 1 al 10): \n"); scanf("%d",&movie[i].puntaje); movie[i].puntaje = val_Rangoint(movie[i].puntaje,1,10); printf("Portada de la pelicula: \n"); fflush(stdin); gets(movie[i].linkImagen); val_tam(movie[i].linkImagen,51); movie[i].estado = 1; fseek(f,0L,SEEK_END); fwrite(&movie,sizeof(EMovie),1,f); break; } } return 0; }
void Visitados::marcar_visitado(const set<Vertice>& vertices) { set<Vertice>::iterator it; vector<bool> estado(N); no *atual = visitados; for (it = vertices.begin(); it != vertices.end(); it++) estado[*it] = true; for (int i = 0; i < N; i++) { if (estado[i]) { if (!atual->dir) atual->dir = cria_novo_no(); atual = atual->dir; } else { if (!atual->esq) atual->esq = cria_novo_no(); atual = atual->esq; } } }
bool Visitados::foi_visitado(const set<Vertice>& vertices) { set<Vertice>::iterator it; vector<bool> estado(N); no *atual = visitados; for (it = vertices.begin(); it != vertices.end(); it++) estado[*it] = true; for (int i = 0; i < N; i++) { if (estado[i]) { if(!atual->dir) return false; atual = atual->dir; } else { if(!atual->esq) return false; atual = atual->esq; } } return true; }
void JanelaPrincipal::getDadosCPU() { // Registradores Registradores->ClearAll(); Registradores->InsertColumn(0,_("AX")); //Acumulator Registradores->InsertColumn(1,_("BX")); //Base Registradores->InsertColumn(2,_("CX")); //Count Registradores->InsertColumn(3,_("DX")); //Data (Em alguns casos os registradores DX:AX são concatenados formando um registrador de 32bits para ser usado em instruções como MUL e DIV) Registradores->InsertColumn(4,_("IP")); //Instruction Pointer Registradores->InsertColumn(5,_("SP")); //Stack Pointer Registradores->InsertColumn(6,_("BP")); //Base Pointer Registradores->InsertColumn(7,_("SI")); //Souce Index Registradores->InsertColumn(8,_("DI")); //Destination Index Registradores->InsertColumn(9,_("CS")); //Code Segment Registradores->InsertColumn(10,_("DS")); //Data Segment Registradores->InsertColumn(11,_("SS")); //Stack Segment Registradores->InsertColumn(12,_("ES")); //Extra Segment Registradores->InsertItem(0,wxString(cpu->getAX().c_str(), wxConvUTF8)); //AX Registradores->SetItem(0,1,wxString(cpu->getBX().c_str(), wxConvUTF8)); //BX Registradores->SetItem(0,2,wxString(cpu->getCX().c_str(), wxConvUTF8)); //CX Registradores->SetItem(0,3,wxString(cpu->getDX().c_str(), wxConvUTF8)); //DX Registradores->SetItem(0,4,wxString(cpu->getIP().c_str(), wxConvUTF8)); //IP Registradores->SetItem(0,5,wxString(cpu->getSP().c_str(), wxConvUTF8)); //SP Registradores->SetItem(0,6,wxString(cpu->getBP().c_str(), wxConvUTF8)); //BP Registradores->SetItem(0,7,wxString(cpu->getSI().c_str(), wxConvUTF8)); //SI Registradores->SetItem(0,8,wxString(cpu->getDI().c_str(), wxConvUTF8)); //DI Registradores->SetItem(0,9,wxString(cpu->getCS().c_str(), wxConvUTF8)); //CS Registradores->SetItem(0,10,wxString(cpu->getDS().c_str(), wxConvUTF8)); //DS Registradores->SetItem(0,11,wxString(cpu->getSS().c_str(), wxConvUTF8)); //SS Registradores->SetItem(0,12,wxString(cpu->getES().c_str(), wxConvUTF8)); //ES // Flags Flags->ClearAll(); Flags->InsertColumn(0,_("CF")); //Carry Flags->InsertColumn(1,_("ZF")); //Zero Flags->InsertColumn(2,_("SF")); //Sign Flags->InsertColumn(3,_("OF")); //Overflow Flags->InsertColumn(4,_("PF")); //Parity Flags->InsertColumn(5,_("AF")); //Auxiliary Carry Flags->InsertColumn(6,_("IF")); //Interupt Flags->InsertColumn(7,_("DF")); //Direction Flags->InsertItem(0,wxString(cpu->getCF().c_str(), wxConvUTF8)); //CF Flags->SetItem(0,1,wxString(cpu->getZF().c_str(), wxConvUTF8)); //ZF Flags->SetItem(0,2,wxString(cpu->getSF().c_str(), wxConvUTF8)); //SF Flags->SetItem(0,3,wxString(cpu->getOF().c_str(), wxConvUTF8)); //OF Flags->SetItem(0,4,wxString(cpu->getPF().c_str(), wxConvUTF8)); //PF Flags->SetItem(0,5,wxString(cpu->getAF().c_str(), wxConvUTF8)); //AF Flags->SetItem(0,6,wxString(cpu->getIF().c_str(), wxConvUTF8)); //IF Flags->SetItem(0,7,wxString(cpu->getDF().c_str(), wxConvUTF8)); //DF //_("Data") MemView->ClearAll(); MemView->InsertColumn(0,_("Segmento")); MemView->SetColumnWidth(0,80); MemView->InsertColumn(1,_("Conteúdo")); MemView->SetColumnWidth(1,580); MemView->InsertItem(0,_("Data")); MemView->SetItem(0,1,wxString(cpu->getDataMem().c_str(), wxConvUTF8)); MemView->InsertItem(1,_("Code")); MemView->SetItem(1,1,wxString(cpu->getCodeMem().c_str(), wxConvUTF8)); Pipeline->ClearAll(); Pipeline->InsertColumn(0,_("IF")); //Instruction Fetch Pipeline->SetColumnWidth(0,130); Pipeline->InsertColumn(1,_("ID")); //Instruction Decode Pipeline->SetColumnWidth(1,130); Pipeline->InsertColumn(2,_("EX")); //Execute Pipeline->SetColumnWidth(2,130); Pipeline->InsertColumn(3,_("MEM")); //Memory Access Pipeline->SetColumnWidth(3,130); Pipeline->InsertColumn(4,_("WB")); //Register Write Back Pipeline->SetColumnWidth(4,130); Pipeline->InsertItem(0,wxString(cpu->getPIF().c_str(), wxConvUTF8)); Pipeline->SetItem(0,1,wxString(cpu->getPID().c_str(), wxConvUTF8)); Pipeline->SetItem(0,2,wxString(cpu->getPEX().c_str(), wxConvUTF8)); Pipeline->SetItem(0,3,wxString(cpu->getPMEM().c_str(), wxConvUTF8)); Pipeline->SetItem(0,4,wxString(cpu->getPWB().c_str(), wxConvUTF8)); wxString estado(cpu->getOn().c_str(), wxConvUTF8); ligado->SetLabel(estado); }