|
1221
|
Programación / Programación C/C++ / Re: RETOS C++
|
en: 24 Octubre 2012, 21:59 pm
|
Actualizado
como paso tanto tiempo nose si a todos sume los que tocan,si me deje alguien que me lo diga.
Si te gusto mi solución al diccionario por fuerza bruta que está en esta página, a mí no me habrías sumado los puntos. Anímate y pon nuevos retos y si se puede te podemos sugerir algunos. Saludos!.
|
|
|
1222
|
Programación / Programación C/C++ / Re: Ejercicios para practicar en C
|
en: 24 Octubre 2012, 21:52 pm
|
¡Guau! voy a postear bastante mas porque he leido algunos y posiblemente sepa hacerlos, pero voy a tener que pedir ayuda y pensar mucho Si te parece, habre un hilo nuevo y cuelga aquellos que vayas a "atacar", como se hizo en los retos de C++, pero estos serán retos en C, y me tendrás a tu disposición. Te puedo incluso recomendar algunos ejercicios interesantes, como el que se puso en un tema anterior denominado "centros numéricos". A pesar de su "pomposo" nombre es relativamente sencillo con diversas opciones. La respuesta que puse no tiene explicación alguna porque el que colgo el tema no había hecho nada y no era plan de dárselo todo hecho. ¡ÄNIMO! Saludos.
|
|
|
1223
|
Programación / Programación C/C++ / Re: Leer un char como float
|
en: 24 Octubre 2012, 13:57 pm
|
Pero no quiero tener que escribirlo así, porque de esta manera no puedo calcular el radio de un AN de 1 kg, que puedo querer hacerlo. Además, quiero hacer esto para las masas de un protón, un átomo, la Tierra, Júpiter y el Sol, y tendría que reservar demasiadas variables. Lo que quiero es escribir Mt y que lea 5.98e24 (la masa de la Tierra) sin que tenga que reservar valores concretos que me podría interesar calcular.
El ordenador no es "adivino", en el sentido de que al introducir Ms él interprete que es la masa del Sol. Tienes que implementarlo, bien a lo sencillo como hice yo o a lo profesional como hizo rir. En cualquier caso, en el código tienes que introducir previamente los valores de las variables más comunes que uses; masad del Sol, de júpiter, de la Tierra, del protón, etc. Una vez introducidas en el código dichas masas está la forma de acceder a ellas. Una forma sencilla sería crear un índice donde a cada masa se le va asignando un valor: Ms=0,Mt=1,Mj=2 .... y luego crear un array donde "estén" los valores numéricos: masas[3]={1.9891e30, 5.98e24, 5.98e24}. Lo anterior lo he hecho para el caso de las masa del Sol, Tierra y Júpiter, y tú lo amplias según tus necesidades. Al corrrer el program tienes una opción para entrar la masa en Kg, si así lo deseas, o con la "chuletilla" de las masas según el índice. Repito lo primero, el ordenador "no sabe" lo que es Ms, lo tienes que declarar tú.#include <iostream> #include <cstdio> using namespace std; int main () { double masa=0,r=0,G=6.67e-11,c=3e8,Ms=0,Mt=1,Mj=2; double masas[3]={1.9891e30, 5.98e24, 5.98e24}; int indice; cout << "Indique la masa (negativo si va e entrar la masa en Kg)="; cin >> indice; if (indice<0) { cout <<"m=";cin >>masa; r=2*G*masa/(c*c); } else r=2*G*masas[indice]/(c*c); cout <<r; return 0; }
|
|
|
1224
|
Programación / Programación C/C++ / Re: Leer un char como float
|
en: 23 Octubre 2012, 23:07 pm
|
quiero poder escribir Ms (por ejemplo) para no tener que escribir la masa del Sol y que al leer lo lea como float 1.9891e30. Alguien podría explicarme como hacerlo? Puedes escribir incluso menos:#include <iostream> #include <cstdio> using namespace std; int main() { const float G=6.67e-11,c=3e8,Ms=1.9891e30; float m,r,a=0; cout << "a(1 para Ms )=" ; cin >> a; if (a==1) m=Ms; else {cout << "m=" ;cin >> m;} r=2*G*m/(c*c); cout << r << endl; return 0; }
Saludos!.
|
|
|
1225
|
Programación / Programación C/C++ / Re: ¿Cómo determinar que sólo acepte 8 dígitos?
|
en: 23 Octubre 2012, 06:19 am
|
Muchas gracias leosansan, me funcionó perfecto ya que si convertía el int a char me traería problemas con otras cosas en mi código y sin convertirlo de int a otro tipo me pareció perfecto, sólo una pregunta, ¿para qué se usa el n=n/10;? Todo lo entendí pero eso no muy bien, necesito comprenderlo bien ya que soy algo nuevo en el c++.
Cada vez que haces n/10 divides entre 10 de forma entera, con lo que te "comes" un dígito del número inicial, al tiempo que "contador" se incrementa contando así los dígitos. Saludos!.
|
|
|
1226
|
Programación / Programación C/C++ / Re: AYUDA URGENTE EN C, calcular centros numericos
|
en: 22 Octubre 2012, 21:22 pm
|
hola, necesito hacer un programa que me calcule centros numericos y no tengo ni idea de como comenzar , se tiene que meter el orden del centro numerico y nos tiene que decir cuanto vale, por ejemple el centro numerico 1 es igual a 6, y asi con todos
Mira si te vale lo que te paso, aunque comprueba algunos valores conocidos, yo no tengo tiempo:#include<stdio.h> #include<stdlib.h> #include<math.h> #define n 1000000 int main() { float centro=0; int i,orden=1,orden_1; printf(" \n Ingrese el orden del centro: "); scanf("%d", &orden_1);/**/ for (i=2;i<=n;i++) { centro =sqrt ((i*i+i)/2); if (centro == (int)centro ) { if (orden_1==orden) printf(" \n El centro es: %g de orden %d\n", centro,orden); orden++; } } return 0; }
|
|
|
1227
|
Programación / Programación C/C++ / Re: Error al imprimir cadena de carácteres en C
|
en: 21 Octubre 2012, 14:54 pm
|
Vayamos paso por paso: Una imagen vale más que mil palabras:#include <stdio.h> main () { char nombre_apellido [100]; char lugar [100]; printf ("Como te llamas\?"); scanf ("%100[^\n]", nombre_apellido); printf ("Hola %s, por favor, introduce lo siguiente:\n", nombre_apellido); printf ("Donde vives\n?"); fflush (stdin); scanf ("%100[^\n]", lugar); printf ("Ahora sé que te llamas %s y vives en %s.\nEsto fue una prueba de C.\n", nombre_apellido, lugar); return 0; }
Ahora ya introduce nombre y apellidos y lugar con los espacios que quiera y sin que se salte ninguna sentencia. ...Si, ya sé que fflush no es muy querida, pero hace su labor; otra opción es la apuntada por Caster.
|
|
|
1229
|
Programación / Programación C/C++ / Re: mostrar por pantalla los residuos de un número
|
en: 21 Octubre 2012, 14:30 pm
|
Muchas gracias leosansan ahora ya lo comprendo, lo único que al calcular los residuos de un entero imprime por pantalla todos y aparece como último el Dividendo que es menor que 10, en lugar de 1, pero es correcto ¿no? No se si me he explicado bien, por ejemplo de 324 324/10=32 324%10=4 32/10=3 32%10=2 3/10=0 3%10=1 <=== el resultado es 3, no 1:es el restoNo muestra 4 2 1 sino 4 2 3 <==== como debe serSaludos!.
|
|
|
1230
|
Programación / Programación C/C++ / Re: Error al imprimir cadena de carácteres en C
|
en: 21 Octubre 2012, 14:25 pm
|
He hecho un programa de prueba para testear la impresión de cadenas de carácteres, pero me da el siguiente error: Difícil que te de ese error cuando no tienes ni declarada la variable apellido ni aparece dicho nombre en los printf, además de asignar el símbolo %S de cadenas a caracteres a,b,c. Supongo que esto es lo que querías hacer:#include <stdio.h> main () { char nombre [100]; char apellido [100]; char lugar [100]; printf ("Como te llamas\?"); scanf ("%s", nombre); printf ("Hola %s, por favor, introduce lo siguiente: apellido\n",nombre ); scanf ("%s", apellido); printf ("\nDonde vives\n"); scanf ("%s", lugar); printf ("\nAhora se que te llamas %s %s y vives en %s.\nEsto fue una prueba de C.\n", nombre, apellido, lugar); getchar(); return 0; }
PD:no hay que limpiar buffer porque todos los printf llevan \n.
|
|
|
|
|
|
|