|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - gandalfelgris
26
« en: Domingo 8 de Mayo de 2005, 01:32 »
Hola Jose Manuel, Aqui te adjuto los ficheros sin errores
Comienzo por el .ads de especificacion
Aitor Fernández
27
« en: Sábado 23 de Abril de 2005, 20:44 »
3º fichero: Programa principal
Ha sido un placer tratar de ayudarte. Lamento no poder serte de más ayuda
28
« en: Sábado 23 de Abril de 2005, 20:42 »
2º fichero: Cuerpo del paquete
29
« en: Sábado 23 de Abril de 2005, 20:40 »
Si señor tiene razon gneuroamante. Ya he solucionado ese problema, pero tienes otro, que no consigo ver. En algun sitio urraca, tienes un Constraint Error que no consigo ver. Te paso el codigo como queda despues de declarar los procedimientos necesarios en la especificacion del paquete.
Primer fichero. Especificacion del paquete
30
« en: Sábado 16 de Abril de 2005, 10:22 »
3º Procedimiento principal Aitor
31
« en: Sábado 16 de Abril de 2005, 10:20 »
2º Cuerpo del paquete
Aitor
32
« en: Sábado 16 de Abril de 2005, 10:19 »
Hola Jose Manuel
No se lo que te pasará con tu codigo, pero yo he cogido tu codigo, le he añadido un par de cosas y funciona correctamente. Te adjunto a este mensaje y a los sucesivos dos los ficheros tal y como a mi me funcionan
Si otro particular Atentamente
Aitor
1º Declaracion del paquete.
33
« en: Jueves 27 de Enero de 2005, 01:19 »
Hola Chicos, Tengo un problema, porque tengo que leer unos datos del tipo double de un fichero de texto y no los consigo leer correctamente. Debo tener algun fallo en el código pero no lo veo. Aqui teneis el codigo de como leo los datos:
for (i=0;i<numCiudades;i++) { fscanf(fEntrada,"%g",&car2); if (car2!=EOF) { listaCiudades.coordenada_x=car2; } else {fprintf(fSalida,"Fallo en estructura (leer valoresObjetos) \n");} fscanf (fEntrada,"%f",&car2); if (car2!=EOF) { listaCiudades.coordenada_Y=car2; } else {fprintf(fSalida,"Fallo en estructura (leer valoresObjetos) \n");} } La variable car2 esta declarada como double *car2, aunque he probado a declararla como double car2 y tampoco funciona.
Quisiera saber si alguno de vosotros me podria ayudar. Le estaría muy agradecido
Atentamente
34
« en: Domingo 9 de Enero de 2005, 00:30 »
Gracias a todos. Finalmente consegui solucionar el problema
35
« en: Domingo 9 de Enero de 2005, 00:26 »
Hola a todos, me preguntaba si alguien me podria ayudar a descubrir el error que tengo en esta parte de codigo para que en el resultado que salga de la lectura sea basura
double car2; double pc; double pm; printf ("\n\n Introduzca la probabilidad de cruce => "); scanf ("%g",&car2); if (car2!=EOF) { pc=car2; fprintf(fError,"\n PROBABILIDAD DE CRUCE: = %g \n",pc); printf("\n PROBABILIDAD DE CRUCE: = %g \n",pc); }
printf ("\n\n Introduzca la probabilidad de mutacion => "); scanf ("%g",&car2); if (car2!=EOF) { pm=car2; fprintf(fError,"\n PROBABILIDAD DE MUTACION: = %g \n",pm); printf("\n PROBABILIDAD DE MUTACION: = %g \n",pm); }
Le estaría muy agradecido al que pudiera ayudarme, pues es una practica muy importante para mi
36
« en: Domingo 19 de Diciembre de 2004, 20:03 »
Hola a todos, Estoy haciendo una practica para la facultad y tengo un problemilla. La practica es sobre busqueda local pero con el algoritmo no tengo ningun problema. Mi problema viene al leer los datos del fichero de datos. Los datos que tengo que leer son numeros enteros seperados por 1 o varios espacios. Yo tengo hecho ya un codigo, pero ese codigo solo funciona cuando hay un unico espacio de separacion. Quisiera saber si me podeis ayudar a programar un codigo que lea de un fichero numeros enteros que pueden ser de varias cifras, normalmente cuatro o mas, y los guarde en un Array de Structs de c con campos de tipo entero (coordenada_x y coordenada_Y). Os mando un fichero de datos de mi problema para que os hagais una idea de lo que quiero. El pimer componente de cada fila del fichero es un identificador que no me importa para nada.
37
« en: Domingo 19 de Diciembre de 2004, 19:45 »
Hola Tiki, Hace un par de dias intenté responderte mediante mail a tu cuenta con un codigo Ada de conversion Euros Pesetas (1º ejercicio), pero me lo acaban de devolver. Por eso te lo adjunto a esta respuesta
38
« en: Lunes 6 de Septiembre de 2004, 12:56 »
Hola Keseki, Aqui te envio un codigo para leer un fichero de texto caracter a caracter y guardarlo en un vector.
with Ada.Text_Io; use Ada.Text_Io; procedure Leer_fichero is f:File_Type; C:Character; i:integer:=0; begin Open (f,In_File,"nombre_Fichero.txt"); while not End_Of_File(f) loop while not End_Of_LIne(f) loop get (f,C); i:=i+1; end loop; end loop; declare type Vector_Numeros is array (1..i) of integer; Vect:Vector_Enteros; i:=1; while not End_Of_File loop while not End_Of_Line loop get(f,C); vect(i)=Character'Pos©-Character'Pos(0); i:=i+1; end loop; end loop;
Deberia funcionar esto
Atentamente
39
« en: Domingo 13 de Junio de 2004, 00:52 »
Hola Seath, Hasta donde me puedo acordar, no existe en Ada ningun gotoxy. Si lo que quieres es realizar saltos a otras funciones o procedimientos dadas ciertas condiciones, coloca sus llamadas en sentencias condicionales.
Con respecto a lo de el put ese que mencionas, debes hacer dos put separados puesto que se trata de un string y una variable de tipo entero, que no son del mismo tipo, y Ada es un lenguaje fuertemente tipado (esto es, no permite mezclar dos objetos de distinto tipo en una misma instruccion). Uno de los put lo hariamos utilizando el paquete Ada.Text_Io y el otro con el paquete Ada.Integer_Text_Io, asi que tienes que incluir estos dos paquetes en la clausula with de tu programa.
Espero haberte servido de ayuda para resolver alguna de tus dudas
Atentamente
40
« en: Lunes 19 de Abril de 2004, 01:32 »
Hola amigo, Aqui te va el segundo fichero
41
« en: Lunes 19 de Abril de 2004, 01:30 »
Hola amigo, Aqui te envio unos ficheros que contienen informacion sobre lo que andas buscando y que espero que te puedan servir de ayuda. Son dos ficheros PostScript comprimidos en dos Zip separados, y te los envio en dos respuestas pues la suma supera la capacidad de adjuntar ficheros de este foro. Espero que te sean de utilidad. Hasta la proxima
Primer fichero
42
« en: Miércoles 31 de Marzo de 2004, 22:36 »
Puedes instalarte el compilador de Ada y mirar en la ayuda en la que viene muy detallado todos los metodos de cada paquete. El compilador de Ada se llama gnat y la version que te menciono tiene el entorno ADAGuide, a traves del cual tu podras encotrar toda la ayuda que necesitas.
Espero haberte servido de ayuda
43
« en: Sábado 6 de Marzo de 2004, 09:30 »
Hola amigo, para solucionar ese error simplemente debes asignarle a una variable booleana el resultado de la llamada a la funcion (haciendo lo siguente) Comprobacion:boolean; Comprobacion:=Comprobar (parametros); si sigues este consejo con las dos funciones se te solucionará el error. Este error te ha dado porque esa manera de llamar solo se utiliza para los procedimientos, en los que en lugar de tener un return, cuentas con pàrametros de tipo out.
44
« en: Viernes 23 de Enero de 2004, 12:14 »
Hola Tronk. Aqui te adjunto unos ficheros donde puedes encontrar tu problema resuelto.
Tienes que escribir esto en otro fichero llamado tipos.ads
package tipos is
type Nodo; type A_Nodo is access Nodo; type Nodo is record Num:Natural; sig:A_Nodo; end record;
A continuacion escribe un fichero llamado Operaciones_Lista.ads donde pongas
with Tipos; use Tipos; Package Operaciones_lista is
Procedure Insertar_Elemento (L:in out A_Nodo;E:in Natural);
end Operaciones_Lista;
Si haces esto todo irá bien y el código del fichero adjunto se encargará de insertar el elemento al final de la lista.
Si quieres te envio tambien el codigo de un fichero de prueba por si quieres probar el programa (Yo ya lo he probado y funciona, creeme). El codigo es el que sigue.
with Ada.text_Io,Ada.Integer_Text_Io,Tipos,Operaciones_Lista; use Ada.text_Io,Ada.Integer_Text_Io,Tipos,Operaciones_Lista; Procedure prueba is
L:A_Nodo:=New Nodo; Aux:A_Nodo; Elem:natural:=5; begin L.Num:=4; L.Sig:=NUll; for i in reverse 1..3 loop Aux:=New Nodo; Aux.Num:=i; Aux.sig:=L; L:=Aux; end loop;
Insertar_Elemento(L,Elem);
Put (" La lista resultado es: ");
Aux:=L;
While Aux/=Null loop
Put (Aux.Num,width=>0); Put (","); Aux:=Aux.sig;
end loop;
end Prueba;
La salida correcta de este programa es: La lista resultado es:1,2,3,4,5, Asi podras comprobar que efectivamente el fichero adjunto ha cumplido con su cometido.
Ha sido un placer ayudarte
Atentamente
45
« en: Miércoles 21 de Enero de 2004, 18:46 »
Hola Marks: Este es codigo correcto.
package Prueba2 is type Nodo; -- Nodo de la lista type Pnodo is access Nodo; -- Puntero a los nodos de la lista type Nodo is record Info : Integer; Anterior, Siguiente: Pnodo; end record; -- Nodo
type Lista is record -- Tipo para representar una lista Inicio, -- Acceso a la lista (por ambos extremos) Fin : Pnodo; Numelem: Natural := 0; -- Nº de elementos end record; -- Lista end Prueba2;
Asimismo tambien te adjunto un fichero .ads con este codigo que esta probado compila perfectamente.
46
« en: Miércoles 14 de Enero de 2004, 10:40 »
Dime de que va tu practica y te intentare echar una mano. aitorfer@tefonica.net
47
« en: Martes 13 de Enero de 2004, 17:29 »
Hola Marks, por lo que yo se el paquete que se encarga de Tratar con ficheros secuenciales es el Ada.Sequential_Io. Es un paquete generico, lo cual quiere decir que sirve para almacenar ficheros secuenciales de cualquier tipo de datos. Por esa razon a la hora de utilizarlo es necesaria una instanciacion en la que le indiques el tipo de datos que almacenas en el fichero. Sin mas paso a exponerte un ejemplo para el caso de un fichero secuencial de enteros with Ada.Sequential IO; Procedure is VARIABLES DEL PROCEDIMIENTO package Lectura_Enteros is new Ada.Sequential_Io (integer); use Lectura enteros MAS VARIABLES QUE QUIERAS. TIENES QUE DECLARAR UNA VARIABLE QUE SEA Lectura_enteros.File_Type (aunque el Lectura_Enteros no hace falta al incluir la clausula use) begin Una vez hecho esto aplica lo siguiente Lectura_enteros.Read (parametros); Lectura_enteros.Write (parametros); Otra vez el nombre del paquete no hace falta por lo de arriba CUERPO DEL PROCEDIMIENTO. MAS SENTENCIA QUE DEBAS AÑADIR end ; Si sigues este esquema no tendras ningun problema para leer de ningun fichero secuencial. No obstante si tienes problemas no dudes en consultarme. aitorfer@telefonica.netAtentamente
48
« en: Jueves 8 de Enero de 2004, 18:16 »
Hola Compis de foro, Estoy haciendo una practica que implementa en Ada el algoritmo de busqueda local aplicado al problema de la planificacion de tareas en una maquina.
En esta practica, para saber la factibilidad de una solucion (una solucion es una organizacion concreta de las tareas en las maquinas, siendo la optima la que minimice el tiempo de ejecucion de la ultima tarea) hay que tener en cuenta que se pueden producir interbloqueos entre las tareas que se ejecutan en diferentes maquinas. Mi representacion del problema es la siguiente
type opTarea is record
tiempo: natural; maquina:natural;
end record;
type Datos1 is array (1..Maxoperaciones) of opTarea; type Datosp is array (1..Maxtareas) of Datos1;
type Solucion is array (1..Maxoperaciones)(1..Maxtareas) of integer;
Me gustaria saber si alguien podria ser tan amable como para proporcionarme un codigo fuente con el que pudiera llevar a cabo en Ada la labor de control de interbloqueos que se me requiere.
Atentamente
49
« en: Lunes 29 de Diciembre de 2003, 12:29 »
Hola Gildus, tiene razon avalon en que representaria un fallo de seguridad bastante fuerte. No obstante si habria una manera. Pero para ello te tendrias que informar de cuales son los troyanos mas potentes, que todavia no son detectados ni por los antivirus ni estan cubiertos por los parches y enviarlo a alguien. Si la persona que lo recibe ejecuta ese troyano, entonces podrias controlar su ordenador.
gandalfelgris
50
« en: Domingo 28 de Diciembre de 2003, 01:48 »
Hola Gelete
Una forma de borrar la pantalla aunque es un poco chapucera es realizar tantos new_line como filas podemos encontrar en la pantalla+1
gandalelgris
|
|
|