• Sábado 20 de Abril de 2024, 08:43

Mostrar Mensajes

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 - carmamezo

Páginas: 1 ... 8 9 [10]
226
C/C++ / CODIGO ASCII EN C
« en: Viernes 21 de Noviembre de 2003, 17:16 »
Los símbolos de las cartas en ASCII corresponden a lo valores 3 (corazones), 4 (diamantes), 5 (tréboles) y 6 (picas).  La manera de mostrarlos es como se muestra en el ejemplo anterior (aunque con ese ejemplo muestras todos los carácteres ASCII).  Mejorando un poco el anterior:

printf("n%c, %c, %c y %c",3,4,5,6);

Un saludo

227
C/C++ / Arrays
« en: Viernes 21 de Noviembre de 2003, 00:34 »
Bueno.... en C el uso de arrays es igual que en C++ como ya te han indicado, en cuanto a hacer un array de tamaño vble no hay ningún secreto... existe una función en C que se llama malloc (stdlib.h) que te permite hacer una asignación dinámica de memoria, esto es, te permite definir el espacio en memoria que vas necesitar dependiendo de los requerimientos de tu programa una vez que éste esté en ejecución....  Una vez que hayas terminado con esa memoria se vacía con la función free.
Estas dos finciones tienen sus hermanos en C++, new y delete.
Bien, como veo que andas un poco perdido te voy a entregar el ejemplo que propones realizado para que entiendas su uso:

#include<stdio.h>
#include<stdlib.h>

void main()
{
   int *a,i,n_elem;

   printf("Introduce numero de elementos del array: ");
   scanf("%d",&n_elem);
   a=malloc(n_elem*sizeof(int));   //asignamos memoria para n_elem de tipo int
   for(i=0;i<n_elem;i++)
   {   
      printf("nIntroduce dato %d: ",i+1);
      scanf("%d",a+i);
   }
   for(i=n_elem;i>0;i--)
      printf("n%d",a[i-1]);
}

Como verás he utilizado punteros, que son como los arrays (los arrays no son más que punteros que se manejan de otra manera), en fin como verás el código funciona, es corto y te proporciona un gran abanico de posibilidades, pues a partir de ahora no necesitas saber el tamaño de un dato o un array antes de realizar el programa.  Según vayas ahondando el el mundo de la programación verás que la asignación dinámica de memoria se hace indispensable en ciertos campos (manejo de ficheros, listas, pilas y colas...)
Un saludo.

228
C/C++ / Random entre 0 y 1 con 5 decimales
« en: Viernes 21 de Noviembre de 2003, 00:12 »
existe la funcion random o randomize o algo así en la librería dos.h creo... la verdad es que ya no me acuerdo, pero generaba numeros aleatorios entre 0 y 1.  Puede que te sirva de punto de partida para buscar funciones... lo de los 5 decimales es cosa de usar las matemáticas (divides, multiplicas...)

229
C/C++ / Re: Leer un numero ( scanf )
« en: Viernes 21 de Noviembre de 2003, 00:00 »
Aqui te expongo una solución:

void main()
{
int num;
char num2;

do{
printf("nIntroduce numero: ");
scanf("%d",&num);
scanf("%c",&num2);
}while(num2>='a' && num2 <='z');
printf("%d",num+10);
}

Como verás al declarar un char eres capaz de saber si se ha introducido una letra o palabra o no, por tanto solucionarías el problema.  Un saludo.
:adios:

230
C/C++ / Re: SOCORRO AYUDA URGENTE CON UN PROGRAMA DE MEDICION DE TEM
« en: Lunes 17 de Noviembre de 2003, 22:58 »
Aqui tienes una posibilidad de como hacerlo:
#include <stdio.h>
#include<windows.h>

void main()
{
   int temp[41],aux,i,j,cont;

   for (i=0;i<41;i++)
   {
      system("Cls");   //borrar pantalla
      printf("Introduce Temperatura %d: ",i+1);
      scanf("%d", &aux);
      if(aux<0)
         aux=0;
      if(aux>40)
         aux=40;
      temp=aux;
   }
   cont=0;
   for(i=0;i<41;i++)
   {
      for(j=0;j<41;j++)
         if(temp[j]==i)
            cont++;
      printf("n%d grados %d veces",i,cont);
      cont=0;
   }
}

Espero que te sirva de ayuda, un saludo.

231
C/C++ / Re: funciones
« en: Domingo 16 de Noviembre de 2003, 21:44 »
Aki tienes un ejemplo... espero que te ayude a entender el uso de las funciones:
Ten en cuenta que sobre las funciones hay mucho más de lo que aqui te expongo... Intenta buscar un manual donde encontrarás todas las posibilidades que se le pueden dar:

void main()
{
int num, resultado;
int calcula_cuadrado(int);  //(*)
printf("Introduce un numero");
scanf("%d",&num);
resultado=calcula_cuadrado(num);
printf("nEl resultado es: %d",resultado);
}

int calcula_cuadrado(int a)
{
int devolver;
devolver=pow(a,2); //math.h
return(devolver);
}

(*)Como la función se encuentra debajo de la  main, he tenido que definir un prototipo de la funcion dentro de la main para que el compilador no diga nada. Una opción válida es crear las funciones antes de la main o de aquellos sitios desde los que haces referencia a ellas... de tal manera que cuando el compilador encuentre una llamada a esa función ya sepa que esa función existe:

int calcula_cuadrado(int a)
{
int devolver;
devolver=pow(a,2);
return(devolver);
}

void main()
{
int num,resultado;
printf("Introduce un numero");
scanf("%d",&num);
resultado=calcula_cuadrado(num);
printf("nEl resultado es: %d",resultado);
}

También se pueden realizar las funciones para que reciban las variables por referencia y no por valor, esto es, enviar la direccion de la variable a manipular y  no una copia de ella, además de ahorrar espacio en memoria, nos permitirá modificar tantas variables como queramos desde la función, no hay que olvidar que una función sólo puede devolver una variable:

void calcula_cuadrado(int *a) //recibimos la direccion de un entero
{           // y no devolvemosnada
*a=pow(*a,2); //guardamos en lo apuntado por a (num) a al cuadrado
}

void main()
{
int num,resultado;
printf("Introduce...");
scanf("%d", &num);
calcula_cuadrado(&num); //pasamos la direccion de num
resultado=num;
printf("%d",resultado);
}

Espero que te sirva de ejemplo para empezar, Un saludo

232
C/C++ / Re: gets(cadena) de otra manera
« en: Domingo 9 de Noviembre de 2003, 16:23 »
¿Has probado a vaciar el buffer de entrada de datos?
A veces uno introduce algo que no es leido, se queda en el buffer de entrada de datos y cuando se desea leer algo distinto se introduce lo que había quedado en el buffer.
Solución: vaciar el buffer de entrada de datos estandard cada vez que leas con scanf:

scanf("%s",&atos);
fflush(stdin);

de la librería conio.h o stdin.h (no recuerdo en cual)
Espero que te funcione ahora...

233
C/C++ / ayuda ..programa de las monedas
« en: Domingo 9 de Noviembre de 2003, 16:01 »
Calcular el nº mínimo de monedas a devolver es un programa sencillo:
basta con ir dividiendo el dinero entre las ditintas monedas desde la mayor a la menor, recalculando con el resto...
Ahora bien calcular todas las posibilidades de cambio puede ser además de poco lógico un trabajo largo.  Hay que tener en cuenta que una vez calculado el primer caso que he expuesto habría que hacer todas las posibilidades:
->En una moneda de 500 hay 5 de cien.
->En una de 100 hay 2 de 50.
->En una de 50 hay 2 de 25 y 5 de 10.
->En una de 25 hay 5 de 5.
->En una de 5 hay 5 de 1.
Resumiendo hay un montón de posibilidades a estudiar, pues las anteriormente expuestas se combinan unas con otras...
Al inicio he dicho que era poco lógico el programa pues en el caso de introducir una cantidad suficientemente grande sin ser exccesiva generaría un número enorme de posibilidades de cambio, saturando de información al usuario que sin duda terminaría eligiendo la que menos monedas le ofreciera (la posibilidad que mencioné al inicio).  
En fin... sé que no te he dado ninguna solución pero es que no se trata de un programa muy lógico...
Si deseas la solución para el cálculo del mínimo nº de monedas no dudes en indicarlo posteando otro mensaje...
Un saludo.

234
C/C++ / Hber si alguien puede...
« en: Domingo 9 de Noviembre de 2003, 14:13 »
Bueno... aqui tienes una manera de hacerlo... creo que está todo bien pero puede haber algún que otro fallo debido al "copy" y al "paste":oops:
Aunque pueda parecer largo en sí no es nada complicado, pensarlo me ha llevado 1 min y realizarlo 30min.  La mayor parte del codigo ha sido copiada y pegada una y otra vez (modificando ciertas cosas).  Esta es la manera larga y sencilla de realizarlo... pero dudo que no haya una manera más rápida de hacerlo (bucles, funciones...) eso te lo dejo para tí, si es que estás interesado.
En fin saludos y espero que te haya servido.:suerte:

235
C/C++ / problemas usando las MFC
« en: Miércoles 2 de Julio de 2003, 11:51 »
Hola a todos, tengo un pequeño problema... He realizado una pequeña aplicación con listas doblemente enlazadas, una agenda electrónica, por supuesto he utilizado una aplicación de consola como interfaz entre usuario y programa.
En este campo no he tenido problemas, pero cuando intento introducir las distintas funciones que he creado en una aplicación visual con las MFC no consigo resultados, me explico:
He realizado una función que lee de un archivo del disco los distintos contactos que tenemos en la agenda, los carga en una lista doblemente enlazada de tal forma que luego se pueden añadir, quitar o editar los contactos de manera rápida.  El problema surge con las MFC pq funcionan con eventos, cuando se pulsa tal botón, cuando se hace doble click en tal sitio...
Lo que no se cómo hacer es utilizar una única lista en cada una de esos eventos, pues no puedo estar creando una nueva lista en cada evento.
Acaso no tienen una función principal que vaya llamando a todos esos eventos y desde la cual yo pueda manejar mi lista???
En fin no se si ha quedado muy claro pero bueno... Agradecería si conocierais algún manual de uso de las MFC gratuito por internet :gracias:
En fin un saludo y gracias

236
C/C++ / Obtener el numero mayor entre varios
« en: Sábado 21 de Junio de 2003, 12:53 »
A ver que te parece la modificación que he realizado sobre tu programa... (no hay grandes cambios...)
Si admites un consejo deberías empezar a reducir el número de variables que utilizas (por ejemplo el contador en los bucles "for" puede ser el mismo siempre y cuando no estén anidados), en este tipo de programas no tendrás problemas pero cuando empiezes a utilizar listas, pilas o colas (deberás tener en cuenta el uso de la memoria).
Te felicito porque como primer programa lo has luchado tú sólo y eso vale mucho.:good:

Páginas: 1 ... 8 9 [10]