|
Mostrar Temas
|
Páginas: [1]
|
1
|
Foros Generales / Dudas Generales / Access Formulario
|
en: 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 / Programación C/C++ / Numeros Aleatorios-Simulacion
|
en: 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 / Programación C/C++ / C-Punteros
|
en: 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
|
Programación / Programación C/C++ / Ver si un vector es un monte
|
en: 31 Octubre 2014, 04:12 am
|
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
|
Programación / Programación C/C++ / C - Error undeclared (first use in this function)
|
en: 26 Octubre 2014, 04:17 am
|
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
|
|
|
|
|
|
|