Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - d91

#81
Programación C/C++ / Re: problema con if
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 C/C++ / Re: problema con if
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 C/C++ / problema con if
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
Código (cpp) [Seleccionar]

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


#84
la solucion fue trabajar con una copia de la lista, aunque me quedo con la duda, porque use una lista doblemente enlazada para poder ir de derecha a izquierda y viceversa y en esta ocasion no fue asi
#85
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
Código (cpp) [Seleccionar]

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
ya encontre el error, y queda asi
Código (cpp) [Seleccionar]


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 C/C++ / lista doblemente enlazada
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
Código (cpp) [Seleccionar]


#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
.NET (C#, VB.NET, ASP) / habilitar menustrip
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
Código (csharp) [Seleccionar]

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
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
Código (sql) [Seleccionar]

CREATE SEQUENCE NUEVASEQUENCIA
START WITH 1
INCREMENT BY 1
MINVALUE 1
NOMAXVALUE;

de una vez les dejo el trigger que la hace funcionar
Código (oracle8) [Seleccionar]

CREATE OR REPLACE TRIGGER T_INCREMENTAR
BEFORE INSERT ON TAB_RANGO
FOR EACH ROW
SELECT NUEVASEQUENCIA.NEXTVAL INTO :NEW.IDRANGO FROM DUAL;
END;

#90
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
Código (vbnet) [Seleccionar]

Private Sub cargarprod()
        Dim prod As New productoBS
        lstprod.DataSource = prod.cargaComboProd
        lstprod.DataValueField = "CODE"
        lstprod.DataTextField = "NOMBRE"
        lstprod.DataBind()

    End Sub