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ú

Temas - pacman22

#1
Dudas Generales / Access Formulario
29 Noviembre 2014, 21:26 PM
Estoy tratando de armar un formulario para ingresar datos en una tabla que esta relacionada 1 a 1 ,y para eso pido que me traiga los codigos de la tabla principal , y asi saber a quien le estoy cargando. Y tmb  pido que me vaya mostrando el nombre del alumno perteneciente a ese codigo, como lo hace en este video(https://www.youtube.com/watch?v=xqv2L2HUMpE) , realizo todo los paso asi , me aparece los codigos en un combobox, seleciono un codigo pero los nombres de los alumnos no se actualizan solos , tengo que andar apretando actualizar todo ,para que aparezca el nombre correcto del alumno asociado a ese codigo .Mi pregunta es,como hago para que seleccione un codigo y se actualize el nombre automaticamente, asi como hace en el video .
#2
Programación C/C++ / Numeros Aleatorios-Simulacion
17 Noviembre 2014, 01:46 AM
Estoy haciendo una simulación de una inversión de proyectos , y la pregunta es si uso srand(time(null)), corro el riesgo que se ejecute muy rapido y tome el mismo tiempo de sistema y termine usando la misma semilla?, entonces decidi   poner srand(i) y usar el ciclo para generar distinas semillas, pero me genera los mismos numeros aleatorios . Aqui el codigo por las dudas

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
/*Estructura de datos para numeros aleatorios*/
double numAlea[5];
/*Estructura de dato para el flujo de fondos*/
double matFlujos[6][11];
/*Estructura de datos para variables*/
/*a-b-c*/
double vIAF[3]={3500000,4000000,5000000};
double vIAT[3]={300000,400000,500000};
double Ventas[3]={3000000,3800000,4000000};
double costosSA[3]={400000,500000,600000};
double vInf[3]={0.4,0.3,0.25};

/*Variables iniciales*/
double vr;
double impGanancias;

/*Variables auxiliares*/
int i,j;
double IAF,IAT,aux,inf,amort,sFFT;

/*Archivo*/
FILE* ptFichero;

ptFichero = fopen("FFTactualizados.txt", "wt");
vr=0.8;
impGanancias=0.65;
/*10 mil repeticiones, para generar las TIR*/
for (i=0;i<3;i++)
{
printf("\n %i",i);
srand(i);

for (j=0;j<5;j++)
{
numAlea[j]=( (rand()%100000) /100000);
}
/*Cargar valor de inversion activo fijo*/
if (numAlea[0]< (vIAF[1]-vIAF[0])/(vIAF[2]-vIAF[0]))
IAF=vIAF[0]+sqrt(numAlea[0]*(vIAF[1]-vIAF[0])*(vIAF[2]-vIAF[0]));
else
IAF=vIAF[2]-sqrt((1-numAlea[0])*(vIAF[2]-vIAF[0])*(vIAF[2]-vIAF[1]));

/*Cargar valor de inversion en activo de trabajo*/
if (numAlea[1]< (vIAT[1]-vIAT[0])/(vIAT[2]-vIAT[0]))
IAT=vIAT[0]+sqrt(numAlea[1]*(vIAT[1]-vIAT[0])*(vIAT[2]-vIAT[0]));
else
IAT=vIAT[2]-sqrt((1-numAlea[1])*(vIAT[2]-vIAT[0])*(vIAT[2]-vIAT[1]));

/*Calcular la amortizacion*/
amort=((IAF*vr)/10);

/*Cargar valor de la inflacion*/
if (numAlea[4]< (vInf[1]-vInf[0])/(vInf[2]-vInf[0]))
inf=vInf[0]+sqrt(numAlea[4]*(vInf[1]-vInf[0])*(vInf[2]-vInf[0]));
else
inf=vInf[2]-sqrt((1-numAlea[4])*(vInf[2]-vInf[0])*(vInf[2]-vInf[1]));

/*Cargar la fila del ingreso de las ventas*/
if (numAlea[2]<( (Ventas[1]-Ventas[0]/Ventas[2]-Ventas[0])))
aux=Ventas[0]+sqrt(numAlea[2]*(Ventas[1]-Ventas[0])*(Ventas[2]-Ventas[0]));
else
aux=Ventas[2]-sqrt((1-numAlea[2])*(Ventas[2]-Ventas[0])*(Ventas[2]-Ventas[1]));
for (j=1;j<11;j++)
matFlujos[0][j]=aux;

/*Cargar la fila de los costos totales*/
if (numAlea[3]<((costosSA[1]-costosSA[0])/(costosSA[2]-costosSA[0])))
aux=costosSA[0]+sqrt(numAlea[3]*(costosSA[1]-costosSA[0])*((costosSA[2]-costosSA[0])));
else
aux=costosSA[2]-sqrt((1-numAlea[3])*((costosSA[2]-costosSA[0])*((costosSA[2]-costosSA[1]))));
aux=aux+amort;
for (j=1;j<11;j++)
matFlujos[1][j]=aux;

/*Cargar fila de la utilidad neta*/
for (j=1;j<11;j++)
matFlujos[2][j]=(matFlujos[0][j]-matFlujos[1][j])*impGanancias;

/*Cargar fila de FFO*/
for (j=1;j<10;j++)
matFlujos[3][j]=matFlujos[2][j]+amort;
matFlujos[3][10]=((matFlujos[2][10])+(IAT)+(IAF*0.2)+amort);

/*Cargar fila del FFT*/
matFlujos[4][0]=-(IAF+IAT);
for (j=1;j<10;j++)
matFlujos[4][j]=matFlujos[2][j]+amort;
matFlujos[4][10]=(matFlujos[2][10])+(IAF*0.2)+IAT+amort;

/*Cargar el FFT actualizado con la inflacion*/
for (j=0;j<11;j++)
matFlujos[5][j]=matFlujos[4][j]/pow((1+inf),j);

/*Sumar los flujos de fondos operativos
sFFT=0;
for (j=0;j<12;j++)
sFFT=sFFT+matFlujos[5][j];*/
/*Copiar al archivo*/
for (j=0;j<11;j++)
fprintf(ptFichero, "%f ", matFlujos[5][j]);
fprintf(ptFichero, "\n", "");
}
fclose(ptFichero);
return 0;
}
#3
Programación C/C++ / C-Punteros
7 Noviembre 2014, 02:03 AM
Hola, no estoy entendiendo como funcionan los punteros en c, y como funciona definir una variable tipo puntero, sobre todo al trabajar con listas enlazadas .

Esta es la estructura del nodo, según lo que entiendo yo , en tNodo tengo el dato a guardar, y la dirección del siguiente nodo .  Y luego defino un alias tipo puntero (?) de tipo tNodo .
typedef struct Nodo{
tElemento dato;
struct Nodo *sig;
}tNodo;

typedef tNodo *TipoLista;


Luego aca,por ejemplo al crear nodo , lo que hago es definir un puntero(nodo) de TipoLista(tNodo),lo que no entiendo es ahora, para modificar los valores que apunta esa direccion de memoria , no tengo que poner * primero, ejemplo *nodo->dato=carga_uno() ?? . Estoy confundido :S
TipoLista crear_nodo(){
TipoLista nodo = NULL;

nodo = (TipoLista) malloc(sizeof(TipoLista));
nodo->dato = carga_uno();
nodo->sig = NULL;

return nodo;
}
#4
Tengo que hacer una función recursiva en c, para saber si un vector de tamaño n es un monte (siempre n siendo par)
Un vector es un monte, si hasta la mitad es creciente, y la otra mitad es decreciente.

Lo pense dividiendo la lista en la mitad(M). Y recorrerla hasta M , preguntando si el elemento i <i+1 , entonces quedaria la recursion como monte(A[] ,i+1,m).
Y la otra mitad , recorrerla dese tamaño hasta M,monte(A[],tam-1,m) , ya que usaria la misma pregunta logica tam<tam-1 . Pero ahi surge el problema, por la lista de la izquierda pregunto con i+1 y aca con tam-1 . Alguna ayudita? Gracias.

#5
Estoy haciendo un tad , y declare la interfaz

#ifndef CONJUNTOENTERO_INTERFAZ_H
#define CONJUNTOENTERO_INTERFAZ_H
/* Estructura de datos */
typedef struct {
      int elementos[30];
      int cardinalidad;
      int tama;
}   conjuntoEnteros;
      

/*Declaracion de las operaciones */
void Iniciar(conjuntoEnteros *conjuntoA[],int tam);
void Mostrar(conjuntoEnteros *conjuntoA[]);
short int Pertenece(int x, conjuntoEnteros conjuntoA[]);
void Agregar(int x ,conjuntoEnteros *conjuntoA[]);

y la implementacion

#include "ConjuntoEntero_Interfaz.h"
#include <stdio.h>

/*Inicializa el conjunto en vacio*/
void Iniciar(conjuntoEnteros *conjuntoA[], int tam)
   {
       conjuntoA>tama=tam;
       conjuntoA>cardinalidad=0;
   }

/*Muestra los elementos de un conjunto*/
void Mostrar(conjuntoEnteros *conjuntoA[]);
   {
      int i;
      
      for(i=0;i<conjuntoA.cardinalidad;i++)
      {
         printf("n\ Elemento %d",conjuntoA.elementos)
      }
   }

/*Verificar si el elemento ya pertenece al conjunto*/
/*Devuelve 0 si no se encuentra en el conjunto*/
/*Devuelve 1 si se encuentra en el conjunto*/
short int Pertenece(int x, conjuntoEnteros conjuntoA[])
   {
      int i,valor;
      
      i=0;
      while (x != conjuntoA.elementos)
         {
            i++;
         }
      if (i>conjuntoA.cardinalidad)
         valor=0;
      else
         {
            valor=1;
         }
      return valor;
   }
/*Agregar un elemento al conjunto*/   
void Agregar(int x ,conjuntoEnteros *conjuntoA[])      
   {
      int i;
      
      if (pertenece(x , conjuntoA[])=0
         {
            i=conjuntoA.cardinalidad;
            (*conjuntoA).elementos=x;
            (*conjuntoA).cardinalidad++
         }
      else
         {
            printf("n\ El elemento ya se encuentra en el conjunto");
         }
   }


Pero me sale este error :'tama' undeclared (first use in this function) . Cuando a tama ya lo declare en la interfaz. Alguna ayuda gracias :D