|
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 - mabrev
101
« en: Miércoles 3 de Diciembre de 2003, 14:15 »
Hola:
Otra función muy útil (al menos para mí), es fscanf, qué es muy similar al scanf, funcionando igual que ésta en cuanto a parámetros, sólo que en vez de leer de la entrada estándar, lee de un fichero.
int fscanf(FILE *fichero, const char *formato, ...);
Saludos.
102
« en: Miércoles 3 de Diciembre de 2003, 14:01 »
Hola:
A ver si puedo aclarar tus dudas:
1.- UML no es un lenguaje como tal, sino que te proporciona un conjunto de técnicas para modelar la información. Propone modelos gráficos sobretodo para realizar el análisis y diseño de sistemas de información.
2.- Supongo que podrás encontrar algún ejemplillo por internet, de todas formas creo recordar que en los libros que mencionas vienen algunos, aunque muy simples. De todas formas, esto es como todo, la práctica hace maestros, así que empieza por sistemas pequeños y vete avanzando poco a poco.
Saludos.
103
« en: Lunes 1 de Diciembre de 2003, 13:30 »
Hola:
Al final no sé si te ha servido de algo lo que te he contado, si tienes alguna duda o si no has tenido tiempo de mirarlo. Cuál de todas las opciones es la correcta??
Saludos.
104
« en: Viernes 28 de Noviembre de 2003, 13:20 »
Hola:
Se declara como cualquier otra función, lo único que la distingue de otras es que se llama a sí misma.
Saludos
105
« en: Jueves 27 de Noviembre de 2003, 20:44 »
Hola:
No puede crearse una variable booleana como tal, pero puedes declararla de tipo entero y asignarle únicamente los valores 0 y 1.
También puedes utilizar la sentencia typedef, para definirte tu propio tipo booleano.
Saludos
106
« en: Martes 25 de Noviembre de 2003, 11:24 »
Hola:
Además del fichero en C que tienes, debes tener otro que implemente las funciones definidas en la librería. Así tendrás, "cabeza.h", "cabeza.c" y el programa que has posteado aquí.
La librería .h únicamente contiene las definiciones de tipos y los prototipos de las funciones, aquí puedes definir el tipo alumno: typedef struct { char nombre[20]; char apellidos[40]; float nota; int dni[8]; } alumno; Al hacer esto, puedes declarar una variable de tipo alumno en cualquier programa al que le hayas incluido tu librería, unicamente poniendo: alumno miVariable;
Lo otro que debe contener la librería, son los prototipos, pero no es necesario poner el nombre de los parámetros, sólo su tipo, por ejemplo para la función: void visualizar(struct alumno *datos) { printf("Nombre: %s",datos->nombre); printf("nApellidos: %s",datos->apellidos); printf("nNota: %f",datos->nota); printf("nDNI: %d",datos->dni); }
En el .h deberás poner: void visualizar(alumno *);
Lo último que debes añadir en el .h son unas directivas para el preprocesador, la primera línea de tu .h debe ser: #if_not_define CABEZA_H y la última: #end_if Estas líneas son únicamente para no definir más de una vez la librería y que te dé un error.
En el fichero cabeza.c, debes incluir la librería "cabeza.h", y en él escribes la implementación de las funciones definidas en el .h.
Después de esto ya puedes utilizar tu librería en cualquier programa en c, únicamente con incluir "cabeza.h", posibilitando la utilización de todas las funciones que contenga.
No sé si me he explicado bien, si tienes alguna duda dímelo para intentar ayudarte.
Saludos
107
« en: Lunes 24 de Noviembre de 2003, 14:34 »
Hola de nuevo:
Ya está solucionado, todo era por el orden en que añadía los elementos. Menos mal que al final me he dado cuenta.
Saludos
108
« en: Lunes 24 de Noviembre de 2003, 13:08 »
Hola:
Según creo los TAD son Tipos Abstractos de Datos, son muy sencillos. La idea es crear tus propios tipos, tales como una lista doblemente enlazada, o cosas por el estilo. Para ello se utilizan "struct" y "typedef" en C. Sabes cómo se utilizan?? Tienes que estructurarlo en librerias *.h?? En cuanto me digas eso te cuento más cosas, porque no es cuestión de agobiarte con cosas que ya sabes ni con cosas que no necesitas saber.
Espero que te sirva de ayuda.
Saludos
109
« en: Lunes 24 de Noviembre de 2003, 12:58 »
Hola:
No sé muy bien cuál es tu problema, pero voy a intentar ayudarte. Lo que puedes hacer es utilizar una función para cada una de las opciones del menú. Así si el usuario escoge "calculadora" llamas a la función "calcular" (o como quieras llamarla), si elige "hacer llamada" a la función "llamar". Así dentro de cada función tratas sólo una opción. La estructura de las funciones es la siguiente:
void nombreFuncion(parametrosFuncion) { ... Sentencias de la función }
Espero que te sirva de ayuda. Si tienes alguna otra duda pregunta sin miedo.
Saludos
110
« en: Lunes 24 de Noviembre de 2003, 08:49 »
Hola:
Tengo una clase que extiende a JPanel, que crea un panel que a su vez contiene otros 3 paneles, organizados mediante una BorderLayout (uno arriba, otro abajo y otro en el centro).
Desde otra clase, también un panel con Border Layout, se crea una instancia de la anterior y se añade en el centro de la actual.
Pues bien, el problema es que al añadirlo y mostrarlo por pantalla, no aparece el panel superior de la primera clase. ¿Podría alguien decirme a qué puede ser debido?
Muchas Gracias por adelantado.
Saludos.
111
« en: Lunes 17 de Noviembre de 2003, 09:33 »
Hola: Pues sí, los arrays se utilizan exactamente igual en C que en C++. Así que si buscabas algo más sencillo, me temo que no has tenido suerte.
Saludos.
112
« en: Jueves 13 de Noviembre de 2003, 17:13 »
Anda! Pues yo juraría que he puesto los índices al acceder al array. Bueno, perdón por el despiste. Saludos
113
« en: Jueves 13 de Noviembre de 2003, 14:59 »
Hola de nuevo, es que me explico fatal. Con el malloc, el programa que pusiste al principio quedaría así:
#include<stdlib.h> #include <conio.h> #include <iostream.h> int main() { char *array; //Declaras el array int i; int tam; clrscr();
cout<<"Introduce el numero de elementos del array"; cin>>tam; //Se lee el tamaño del array //Se le asigna al array la memoria necesaria array=(char*)malloc(tam*sizeof(char));
for(i=0;i<tam;i++) { cout<<"Ingresa un numero a la matriz: "; cin>>array; //Guardas cada valor en una posición del array } for(i=tam-1;i>=0;i--) //Vas en reversa { cout<<"n"<<array; //Muestras los valores del array, uno por uno } getch(); }
Espero que lo veas mejor ahora.
Saludos
114
« en: Miércoles 12 de Noviembre de 2003, 09:30 »
Hola:
Creo que para ello puedes hacer una llamada a la aplicación al final del fichero .profile. Antes de modificarlo no se te olvide hacer una copia de seguridad del mismo por si las moscas.
Espero que te sea de ayuda.
Saludos
115
« en: Miércoles 12 de Noviembre de 2003, 09:21 »
Hola:
Para crear un array de un tamaño definido por el usuario, es necesario jugar con los punteros y la asignación dinámica de memoria. Para ello, en vez de declarar la variable "array" como: char array[4]; debe declararse como char *array;
Después, una vez que el usuario haya introducido el número de elementos, y lo hayas almacenado en la variable "tam", haces lo siguiente:
array = (char *) malloc(tam*sizeof(char));
Y después ya puedes acceder a los elementos del array de la forma habitual, es decir array[0], array[1]......array[tam-1]
Espero que te sea de ayuda.
Saludos.
116
« en: Miércoles 12 de Noviembre de 2003, 09:14 »
Hola:
En caso de que no te funcione con getchar(), puedes probar con getc().
Saludos.
117
« en: Lunes 10 de Noviembre de 2003, 14:35 »
Hola:
Yo también tuve problemas al utilizar scanf y gets en un mismo programa. Creo que el problema reside en que el scanf deja el caracter de retorno de carro en el buffer, con lo que al llamar a gets lo lee y continua, sin dar oportunidad de introducir lo que se desea realmente. Así que el problema se soluciona poniendo un getc o un gets detrás del scanf para que consuma el retorno de carro que queda pendiente.
Saludos
118
« en: Viernes 31 de Octubre de 2003, 17:25 »
Hola:
A mi me interesaría muchísimo esa Web, he trabajado mucho con C/C++, pero no tengo ni idea de programar en win32.
Espero que al final te animes a hacerlo y en cuanto lo tengas listo me lo haces saber, porfa. Gracias
Saludos
119
« en: Jueves 30 de Octubre de 2003, 14:53 »
Hola, no hace falta que desistas, para pasar una cadena a entero puedes utilizar la función "atoi" de la libreria "string.h".
entero = atoi(cadena);
Para que el resultado de una división no te de entero, tienes que cambiar el tipo del resultado, poniendo el nuevo tipo delante y entre paréntesis:
Float resul;
resul = (float) numero1/numero2;
Espero que te sea útil.
Saludos
120
« en: Jueves 30 de Octubre de 2003, 08:30 »
Hola:
Creo que el problema está en los límites de los for, los for correctos son:
for (int f = 0; f < 5; f ++) for (int c = 0; c < 5; c ++)
Saludos
121
« en: Miércoles 29 de Octubre de 2003, 19:10 »
Hola:
Para cambiar de tipo, lo único que tienes que hacer es poner entre paréntesis el tipo al que quieres cambiar antes del nombre de la variable cuyo tipo quieres cambiar. Por ejemplo:
char variable; int otraVariable;
otraVariable = (int)variable;
Espero que te sea de ayuda.
Saludos.
122
« en: Jueves 16 de Octubre de 2003, 18:25 »
Hola:
Hace un tiempecillo que no trato con ésto, pero creo recordar que cualquier clase puede enviar una señal, pero ésta solo puede ser recibida por una clase activa, con lo que toda clase que recibe una señal es activa, así que las señales sólo pueden ser tratadas por clases activas.
Espero que te sirva de algo.
P.D. No era mi intención que esto pareciera un trabalenguas.
Saludos
123
« en: Jueves 16 de Octubre de 2003, 18:14 »
Hola:
La función malloc() sirve para asignar memoria dinámicamente, como por ejemplo para crear un vector para almacenar un número de elementos determinado en tiempo de ejecución.
La función devuelve un puntero, y se le pasa como parámetro el tamaño (en bytes) de la memoria que desea reservarse.
Por ejemplo, para crear un vector de 100 enteros:
int *p; p = (int *)malloc(100*sizeof(int));
No sé cómo me habré explicado (mal supongo), pero espero que te sirva de algo, de todas formas si tienes alguna pregunta estaré por aquí.
Saludos
124
« en: Jueves 16 de Octubre de 2003, 18:00 »
Bueno, ya está solucionado.
125
« en: Jueves 16 de Octubre de 2003, 09:26 »
Hola:
Creo que para leer un dato por consola desde java, se utiliza:
variable = System.in.readln();
Lo malo es que sólo lee un carácter por cada llamada y retorna un int, además lanza una excepcíón, con lo que para leer un caracter debes hacer:
try { variable = (char)System.in.read(); } catch(java.io.IOException e) { // Lo que quieras hacer si ocurre la excepción }
Espero que te sirva de ayuda.
Saludos
|
|
|