|
81
|
Programación / Programación C/C++ / Re: problema con if
|
en: 23 Octubre 2015, 18:36 pm
|
hacer uso del turbo debugger quiere un poco de paciencia, pero al fin encontré el error, teniendo if anidados si en algún momento no entra en ninguno de los dos debe haber un else para adelantar la lista, o sea en teoría en el segundo recorrido estaba comparando el mismo nodo todas las veces y por eso quedaba enciclado
|
|
|
82
|
Programación / Programación C/C++ / Re: problema con if
|
en: 23 Octubre 2015, 17:45 pm
|
la salida de ese bucle esta asegurado en la línea 67, el problema lo tengo que al salir y la bandera vale 1 debe volver a recorrer la lista para ese entonces el nodo valdra menos que el quantum y debería traer un 1 en la variable verificado y entrar en el siguiente if pero no lo hace y entonces se queda enciclado.
|
|
|
83
|
Programación / Programación C/C++ / problema con if
|
en: 23 Octubre 2015, 03:26 am
|
hola a todos, tengo una lista doblemente enlazada con nodos con una variable llamado "verificado" y siempre que sea su valor sea 1 de esta variable deberá entrar al if hasta que en algún momento sea 0, en un momento dado tengo un proceso mayor al quantum y la variable se pone en 1 y aumenta la bandera, el bucle se queda infinito al hacer una segunda comprobación de la lista porque todos aparecen con verificado = 0, y ya no puedo entrar a restar la bandera, no se si el error esta al poner la lista nuevamente al primer nodo void SchedulerRoundRobin(Tlista &lista){ OrdenarTiempoLlegada(lista); Tlista aux, tempLista; cont = 0; aux = lista; bandera = 0; do{ while(lista != NULL){ if(lista->CPUaux > quantum ){ cont = cont + quantum; bandera = bandera + 1; lista->verificado = 1; tempLista = lista->anterior; //adjudicando listatemporal lista->espera = lista->espera + tempLista->enEjecutarse; lista->CPUaux = lista->CPUaux - quantum;//aqui resto y al segundo recorrido lista = lista->sgte;//el proceso ya no entrara }//if del quantum//aqui porque sera menor al quantum; else if(lista->verificado != 0){ if(lista->espera != 0){ bandera = bandera - 1; }//if aux->espera cont = cont + lista->CPUaux; lista->verificado = 0; lista->enEjecutarse = cont; if(lista->anterior != NULL){ tempLista = lista->anterior; //adjudicando listaTemporal lista->espera = lista->espera + tempLista->enEjecutarse; }//if != NULL else{ lista->espera = 0; }//else lista = lista->sgte; }//else if }//while secundario lista = aux;//reiniciando la lista al primer nodo }while(bandera > 0);//while principal }//calendarizacion turno circular
|
|
|
85
|
Programación / Programación C/C++ / regresar al primer nodo de lista
|
en: 19 Octubre 2015, 04:16 am
|
hola, tengo una lista doblemente enlazada, y estoy simulando el primer ajuste estatico de memoria, pero al realizar las asignaciones, la lista queda en el ultimo nodo y a pesar que tengo un nodo que referencia al anterior no puedo regresar, cosa que si puedo hacer con la lista donde tengo los procesos, el error me lo da exactamente en el ultimo while void primerAjuste(Tlista &lista, Tlista &memoria){ while(lista != NULL){ if(memoria->estado != 0 && lista->nro < memoria->nro){ lista->asignado = memoria->nro; memoria->estado = 0; lista = lista->sgte; while(memoria->anterior != NULL){ memoria = memoria->anterior; //regresamos al principio por //si hay bloques libres intermedios }//while }//if else{ memoria = memoria->sgte; //si proceso muy grande o bloque esta ocupado }//else }//while lista while(lista->anterior != NULL){ /*aqui me da error de violacion de direccion*/ lista = lista->anterior; /*intento regresar la lista al primer nodo*/ }//regresamos al principio a la lista /*porque si la dejo asi cuando intento verla*/ /*no se puede porque queda en el ultimo nodo*/ }
|
|
|
86
|
Programación / Programación C/C++ / Re: lista doblemente enlazada
|
en: 19 Octubre 2015, 04:06 am
|
ya encontre el error, y queda asi void insertarFinal(Tlista &lista, int valor) { Tlista t, q = new(struct nodo); q->nro = valor; q->estado = 1; q->sgte = NULL; if(lista==NULL) { q->anterior = lista; lista = q; } else { t = lista; while(t->sgte!=NULL) { t = t->sgte; } t->sgte = q; q->anterior = t; } }
|
|
|
87
|
Programación / Programación C/C++ / lista doblemente enlazada
|
en: 19 Octubre 2015, 01:29 am
|
hola a todos, estoy tratando de hacer una insercion en una lista enlazada doble pero tengo error en la asignacion del puntero del nodo hacia el anterior, alguien me podria ayudar #include <iostream> #include <stdlib.h> #include <conio.h> struct nodo{ int nro; struct nodo *sgte; struct nodo *anterior; }; typedef struct nodo *Tlista; /* ---------------------------------------------- */ void insertarFinal(Tlista &lista, int valor) { Tlista t, q = new(struct nodo); q->nro = valor; if(lista==NULL) { q->sgte = NULL; q->anterior = lista; lista = q; } else { t = lista; while(t->sgte!=NULL) { t = t->sgte; } t->sgte = q; q->anterior = t; } }
|
|
|
88
|
Programación / .NET (C#, VB.NET, ASP) / habilitar menustrip
|
en: 16 Octubre 2015, 00:13 am
|
hola a todos estoy haciendo una pequeña aplicación Windows forms, en un panel cargo los usercontrol de que tienen formularios, grid, etc. lo único es que quiero forzar al usuario a que cierre el usercontrol para poder abrir otro, pensé en deshabilitar el menú al abrir el usercontrol, pero no se en que evento habilitarlo para cuando se cierre el usercontrol using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace SAF { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void nuevoClienteToolStripMenuItem_Click_1(object sender, EventArgs e) { if (!panel3.Controls.Contains(InsercionClientes.Instance)) { panel3.Controls.Add(InsercionClientes.Instance); InsercionClientes.Instance.Dock = DockStyle.Fill; InsercionClientes.Instance.BringToFront(); }//if de estado de UC else { InsercionClientes.Instance.BringToFront(); }//else menuStrip1.Enabled = false; } } }
|
|
|
89
|
Programación / Bases de Datos / orden de incremento en secuencia Oracle
|
en: 11 Octubre 2015, 13:53 pm
|
alguien me podría decir que le hace falta a esta secuencia de Oracle para que siempre mantenga el orden de incremento, puesto que al cerrar la base de datos y volverla a abrir me aparece incrementada hasta 10 valores arriba de donde se había quedado antes de cerrar la base de datos CREATE SEQUENCE NUEVASEQUENCIA START WITH 1 INCREMENT BY 1 MINVALUE 1 NOMAXVALUE;
de una vez les dejo el trigger que la hace funcionar CREATE OR REPLACE TRIGGER T_INCREMENTAR BEFORE INSERT ON TAB_RANGO FOR EACH ROW SELECT NUEVASEQUENCIA.NEXTVAL INTO :NEW.IDRANGO FROM DUAL; END;
|
|
|
90
|
Programación / .NET (C#, VB.NET, ASP) / agregas items a dropdownlist
|
en: 9 Octubre 2015, 19:34 pm
|
hola solo queria preguntar si es posible tener en un dropdownlist el codigo, nombre y precio de cierto producto con el cual la lleno, porque hasta ahorita solo he llenado el datavaluefield con el codigo y el datatextfield con el nombre pero al seleccionarla necesitaria tambien el precio pero no se donde ponerla Private Sub cargarprod() Dim prod As New productoBS lstprod.DataSource = prod.cargaComboProd lstprod.DataValueField = "CODE" lstprod.DataTextField = "NOMBRE" lstprod.DataBind() End Sub
|
|
|
|
|
|
|