|
Mostrar Mensajes
|
Páginas: [1] 2 3
|
1
|
Programación / Programación C/C++ / error en cola prioritaria c++
|
en: 18 Febrero 2023, 20:18 pm
|
muestra la primera lista_t con solo en primer nodo, luego la segunda igual y la tercera tambien igual y ahi el programa no continua y se cierra solo, no encuentro donde esta el problema void SistemaInscripcion::insertarPrioridad_2(Alumno* alumno){ Alumno *actual = cabeza_a, *anterior = nullptr; while(actual && compararPorNivelPromedio(alumno, actual)){ anterior = actual; actual = actual->siguiente; } alumno->siguiente = actual; if(anterior) anterior->siguiente = alumno; else cabeza_a = alumno; } void SistemaInscripcion::insertarPrioridad_3(Alumno* alumno){ Alumno *actual = cabeza_a, *anterior = nullptr; while(actual && compararPorCreditosPromedio(alumno, actual)){ anterior = actual; actual = actual->siguiente; } alumno->siguiente = actual; if(anterior) anterior->siguiente = alumno; else cabeza_a = alumno; } void SistemaInscripcion::eliminarLista(){ while(cabeza_a){ Alumno* eliminar = cabeza_a; cabeza_a = cabeza_a->siguiente; delete eliminar; } } void SistemaInscripcion::asignarCupos(SistemaInscripcion* lista_a){ for(Materia* m = cabeza_m; m != nullptr; m = m->siguiente){ SistemaInscripcion lista_t; for(Alumno* a = lista_a->cabeza_a; a != nullptr; a = a->siguiente){ for(auto it : a->materias){ if(it == m->codigo_materia){ if(m->prioridad == 1){ lista_t.insertarPrioridad_1(a); } if(m->prioridad == 2){ lista_t.insertarPrioridad_2(a); } if(m->prioridad == 3){ lista_t.insertarPrioridad_3(a); } } } } lista_t.imprimirListaAlumnos(); lista_t.eliminarLista(); } }
|
|
|
2
|
Programación / Programación C/C++ / Re: Como reemplazar una cadena c++
|
en: 9 Febrero 2023, 02:53 am
|
Ya esta solucionado, gracias for(auto& it : puntero->alumno.materias){ if(it[0] == _materia && i < _cupos){ it[1] = "INSCRITO"; std::cout << "INSCRITO" << std::endl; }else if(it[0] == _materia && i >= _cupos){ it[1] = "SIN CUPO"; } }
|
|
|
3
|
Programación / Programación C/C++ / Como reemplazar una cadena c++
|
en: 8 Febrero 2023, 23:32 pm
|
Quiero hacer esto struct Alumno{ std::string nombre; std::string cedula; float indice; int nivel; int creditos; std::vector<std::vector<std::string>> materias; }; // Aqui guardo los datos en el vector while(stream){ materia = {_materia, ""}; nodo->alumno.materias.push_back(materia); getline(stream, _materia, ','); } for(auto it : puntero->alumno.materias){ if(it[0] == _materia && i < _cupos){ it[1] = "INSCRITO"; std::cout << "INSCRITO" << std::endl; }else if(it[0] == _materia && i >= _cupos){ it[1] = "SIN CUPO"; } }
pero ya intente de varias fomas y no reemplaza la cadena, no se si es por el it
|
|
|
4
|
Programación / Programación C/C++ / quick sort descendente
|
en: 27 Enero 2023, 02:06 am
|
tengo un error en el quick sort descendente pero no lo encuentro void swap(int &a,int &b){ int aux = a; a = b; b = aux; } int particion(std::vector<int>& array, int inicio, int final){ int piv = array[inicio]; int i = inicio + 1; for(int j = i; j <= final; j++){ if(array[j] > piv){ swap(array[i], array[j]); i++; } } swap(array[inicio], array[i - 1]); return i - 1; } void quickSort(std::vector<int>& array, int inicio, int final){ if(inicio < final){ int piv = particion(array, inicio, final); quickSort(array, inicio, piv - 1); quickSort(array, piv + 1, final); } }
esto es ejemplo d lo que aparece en pantalla arreglo desordenado 10 3 4 9 7 1 5 8 2 6 ordenado 1066696018 10 9 8 7 6 5 4 3 2
|
|
|
6
|
Programación / Programación C/C++ / Modificar busqueda binaria
|
en: 12 Abril 2022, 23:51 pm
|
modifique la búsqueda binaria de manera que la función devuelva el índice del primer elemento mayor al que se está buscando y -1 en caso de que no exista ningún elemento mayor si elijo cualquier otro numero q no sea el 144 funciona el programa, no se q estoy haciendo mal o hay una mejor forma de hacerlo #include <iostream> int busquedaBinaria(int clave, int array[], int size); int main(){ int numero; int size = 15; int array[size] = {0, 1, 1, 2, 3, 5, 8, 13, 13, 21, 34, 55, 89, 144, 144}; std::cout << "Buscar numero: "; std::cin >> numero; if(busquedaBinaria(numero, array, size) > 0) std::cout << "Array[" << busquedaBinaria(numero, array, size) << "] = " << array[busquedaBinaria(numero, array, size)] << std::endl; else std::cout << "No hay elemento mayor a " << numero << std::endl; return 0; } int busquedaBinaria(int clave, int array[], int size){ int centro; int bajo = 0; int alto = size - 1; while(bajo <= alto){ centro = (bajo + alto) / 2; if(clave == array[centro]){ while(centro < (size - 1)){ if(clave < array[centro]) return centro; centro++; } }else if(clave < array[centro]) alto = centro - 1; else bajo = centro + 1; } return -1; }
|
|
|
7
|
Programación / Programación C/C++ / Ordenar lista doblemente enlazada con insertion sort
|
en: 26 Marzo 2022, 18:53 pm
|
Cuando esta ordenando el programa se queda pegado sin hacer nada, me podrian decir q estoy haciendo mal al ordenar void Curso::InsertionSort(){ // Nodo puntero sera igual al siguinte de primer Curso* puntero = primer->ptrSig; // Nodo siguiente sera igual al siguiente de puntero Curso* siguiente = puntero->ptrSig; Curso* auxiliar; // Mistras puntero sea distinto de nullptr ordena la lista while(puntero != nullptr){ while(puntero->ptrAnt->t_prioridad > puntero->t_prioridad && puntero->ptrAnt != nullptr){ if(puntero->ptrAnt == primer){ // El siguiente de primer sera el siguiente de puntero primer->ptrSig = puntero->ptrSig; // El anterior del siguinte de puntero sera primer puntero->ptrSig->ptrAnt = primer; // El siguiente de puntero sera primer puntero->ptrSig = primer; // El anterior de primer sera puntero primer->ptrAnt = puntero; // primer sera igual a puntero primer = puntero; }else if(puntero == ultimo){ // ultimo sera igual al anterior de puntero ultimo = puntero->ptrAnt; // El anterior de puntero sera el anterior del ultimo puntero->ptrAnt = ultimo->ptrAnt; // El siguiente del anterior del ultimo sera puntero ultimo->ptrAnt->ptrSig = puntero; // El siguiente de puntero sera el ultimo puntero->ptrSig = ultimo; // El anterior del ultimo sera puntero ultimo->ptrAnt = puntero; }else{ auxiliar = puntero->ptrAnt; auxiliar->ptrSig = puntero->ptrSig; puntero->ptrSig->ptrAnt = auxiliar; auxiliar->ptrAnt->ptrSig = puntero; puntero->ptrAnt = puntero->ptrAnt; puntero->ptrSig = auxiliar; auxiliar->ptrSig = puntero; } } puntero = siguiente; siguiente = siguiente->ptrSig; } }
|
|
|
8
|
Programación / Programación C/C++ / Lectura de fichero de texto en c++ el programa no ejecuta
|
en: 16 Marzo 2022, 04:48 am
|
lo que quiero hacer es leer estas 2 variables de un fichero de texto Proceso1 6 Proceso2 7 Proceso3 2 Proceso4 10 pero el programa no se ejecuta, y no se que estoy haciendo mal, la cola si funciona ya la probé sin datos del fichero std::ifstream archivoProcesos("Procesos.txt"); NodoProceso* Cola; std::string linea; std::string nombreProceso; int tiempoCPU; for(std::string proceso; std::getline(archivoProcesos, linea); ){ std::istringstream datosProceso(linea); for(int columna = 0; std::getline(datosProceso, proceso, ' '); columna++){ switch(columna){ case 0: nombreProceso = proceso; break; case 1: tiempoCPU = std::stoi(proceso); break; } } Cola->encolar(nombreProceso, tiempoCPU); }
|
|
|
9
|
Programación / Java / Re: AYUDA URGENTE
|
en: 30 Abril 2021, 01:12 am
|
estaba utilizando applet.AudioClip pero los audios pequeños de 1 2 o 3 segundos los lee pero no se escuchan hay algun otro metodo porque es algo urgente porq esta forma no importa como lo haga me da un error exception
|
|
|
|
|
|
|