El 30 está bien pero el 17 no. Una pista, tienes que usar solo un bucle, no 3. Cuando una de las 3 variables sea mayor que 500 ya no aumentará ninguna de las 3, simplemente terminará. Usa && al poner la condición del for
Hawkings (@Hawkings)
Information about Hawkings
Publicados por Hawkings
-
-
@freak7z: tienes bine hechos los 3, pero no me gusta mucho cómo has hecho el 20. La variable i hubiera preferido que la crearas al principio, pero todavía me podrías decir que si el número no es negativo no hace falta crearla. La que no me gusta ni un pelo es numInicial. Si declaras una variable dentro de un bucle que se repita 10 veces crearás 10 variables. La primera vez que entre en el bucle se creará una, y al terminar esa vez se destruirá. Volverá a repetirse y se creará otra, y al terminar esa repetición se destruye otra vez. Así se va repitiendo hasta salir del bucle. Si se repite solo 15 veces como en tu caso no se nota demasiado, pero si hicieras un programa en el que algo tiene que repetirse 1.000.000 de veces, hacer esto sería tremendamente ineficiente. Además, aunque esto ya es completamente secundario, en C se suelen poner los nombres de variables en vez de cuando quieras poner espacio poner la siguiente mayuscula, poniendo enmedio _ con lo que quedaria num_inicial. Esto ya me da un poco igual, pero es para que lo sepas.
-
Yo entré antes de saber que se podían hacer servers privados, fue cuando echaron a aelita del foro de metin2, tuve curiosidad por ver cómo era el foro por culpa del cual expulsaron a aelita, y resultó que me gustó más y ya no me meto al foro de metin2 xD
-
@Salvatore said:
y por qué se supone que va lento? ancho de banda? procesador?
Supongo que será una mezcla de ambas, pero sobre todo ancho de banda puesto que los smart phones actuales ya tienen alrededor de 1 GHz de velocidad de reloj en el procesador. Se me ocurre que podrías poner una opción para cambiar el "tema" del foro por uno más ligero y más fácil de procesar, con menos elementos dinámicos, menos imágenes y todo eso. Por el momento lo que podéis hacer los que naveguéis desde móviles es desactivar la visualización de firmas y avatares en vuestro perfil.
-
Estaría bien hacer una lista con los gamertags de todos los que tengamos xbox live gold. Por si la quieres empezar el mío es "Hawkings ESP" (sin las comillas). PD: ¿Alguien tiene el CoD Black Ops?
-
Este es uno de los juegos a los que más me he viciado en la DS. Recuerdo cuando me ponía a hacer manuals durante 10 minutos y me hacía millones de puntos. Al final dolían los dedos XD, juegazo, se lo recomiendo a todo el mundo.
-
@PiRaTaX: El enunciado dice: si su suma es menor que su producto mostrará por pantalla el doble del primer número y terminará. En tu programa, si la suma es menor que el producto lo que hace es pedir otro número, ver si es el 4, etc. Lo has hecho al revés. ¿Lo ves ahora?
@danibonilla1: sin problemas. Cuando pulsas la tecla TAB es como si pusieras varios espacios. En programación es importante que el texto tenga bien puestos los espacios para poder leerlo mucho más rápido, es muchísimo más difícil leer un programa que esté entero en una línea que uno con sus espacios y bien organizado. Si te fijas, en Dev-C++ cuando pones { y luego pulsas ENTER la siguiente línea te la pone más hacia la izquierda. Es para distinguir que eso está dentro de otro bloque. Cuando llegas a la otra llave } vuelve todo a estar más hacia la izquierda.
-
@Aguilaz said:
Aelita con esta norma eso tambien quiere decir que tendras que cambiar la tuya, ya que supera el limite. Sobraria 1 linea de texto si cambias lo de '' Mi blog '' al lado de '' Aprende sobre phtoshop ''.
Aelita es muy astuta y se puso la fuente más pequeña de lo normal
Mikikiller, comprendo que no quieras deshacerte de tu contador y tu userbar, pero hay que admitir que no todos tenemos monitores grandes. No es algo que me moleste en exceso pero mi portátil tiene 800 px de alto, y tu firma me ocupa casi un tercio, más la barra de tareas más la parte de arriba del navegador más tu mensaje ya me ocupa la pantalla entera o casi. Como ya he dicho no es algo que me moleste en exceso, estoy acostumbrado a hacer scroll pero si el administrador del foro no lo soporta pues buéh, hay foros más restrictivos. Siempre puedes redimensionar tu firma para que sea un poco más pequeña. Me he tomado la libertad de hacerlo yo para que veas cómo queda xD. No es lo mismo, pero es un paso intermedio entre perder tu firma por que te la quite salva y perder el contador para que no te la quite salva.
[attachment=0]PD: miki, ¿tienes espacios en blanco sin nada al final de la firma?
-
@danibonilla1: el 16 ya lo tienes bien :wiii: aunque mal tabulado. Cuando cierras una llave, todas las líneas a partir de ahí incluyendo la línea en la que está la llave de cierre, tienen una tabulación menos. El 20 también está mal tabulado, pero funciona. Además cuando te pido que pongas hola 15 veces lo suyo es hacerlo con un bucle for, como ves con un while también funciona pero el for se usa cuando conocemos el número de repeticiones normalmente.
@Anghios: el 17 está mal. Tú lo que haces es un bucle que empieza con el contador valiendo "n1 + n2 + (n3*4)" (recuerda que las multiplicaciones tienen prioridad sobre las sumas, también en programación) y le va sumando uno cada vez. Lo que tienes que hacer, es que el valor de cada una de las tres variables, sea 4 veces el valor anterior hasta que uno de los valores sea mayor que 500 (ojo tu pones 200). Lee el enunciado detenidamente y piensa bien cómo hacerlo. Necestiarás varios ifs encadenados o usar el operador && (te recomiendo que uses este último).
@Anghios said:a i le puse 1, para que empiece a contar desde 1, y le puse que sea menor que 11, hasta que llegue a 10, para que se quede bien en pantalla, y salga del 1 al 10 perfecto, no de 0 a 9 xD
Gracias, se leer _xD_ Sí, se hace así, el 19 lo tienes bien.
Todos los ejercicios hasta ahora estaban bien tabulados menos el 20, que lo tienes MUY parecido a como lo hizo danibonilla1
[attachment=0]
Está bien, pero te digo lo mismo que a dani, no me gusta mucho que uses un bucle while para mostrar hola un numero determinado de veces, ahí vendría al pelo un for.@dantox: el 15 bien, el 16 bien, el 17 mal, el 19 bien y el doblepost mal _xD_ No hagas doblepost. En el 17 tienes mal exactamente lo mismo que anghios, lee lo que le digo a él sobre el 17.
-
Post #9
En el post de hoy vamos a aprender a hacer bucles, pero antes voy a resolver el ejercicio 16, que en general ha salido bastante mal. No os preocupéis, miradlo aunque no lo hayáis resuelto bien, después vienen más ejercicios y me interesa que aprendáis a tabular bien el código porque es mucho más cómodo de corregir.
Ejercicio 16:
#include //para poder usar printf y scanf int main() { //Ahora abrimos una llave, a partir de aquí con una tabulación int num1, num2, num3; //creo todas las variables que voy a usar al principio del programa printf("Introduce un numero: "); scanf("%i",&num1); fflush(stdin); //Como después voy a usar otra vez scanf pues pongo esto printf("Introduce otro numero: "); scanf("%i",&num2); fflush(stdin); /* Lo que voy a hacer a continuación también se puede hacer con dos variables en una se guarda la suma y en la otra el producto */ if( (num1+num2) < (num1*num2) ) { //Abrimos una llave, a partir de ahora una tabulación más /* Aquí también podemos hacerlo creando una variable antes */ printf("%i\n", (num1*2)); } //CIERRO una llave, a partir de esta línea incluyéndola una tabulación menos /* Así se puede ver perfectamente donde empieza el if y donde termina, además se ve de un tirón todo lo que hay dentro */ else { //Vuelvo a abrir llaves, una tabulación más printf("Introduce otro numero mas: "); scanf("%i",&num3); if(num3 != 4) { //Otra llave abierta, ya sabéis lo que significa printf("Hasta luego.\n"); } //Cierro una llave, así que quito una tabulación } //Ahora cierro la llave del último else, ¿verdad que se ve más claro así? system("pause > null"); //Para que el programa se pare antes de terminar return 0; //Con esto termina. } //Ahora como cierro main quito la tabulación que quedaba
A continuación vamos a ver bucles, repeticiones o iteraciones, como queráis llamarlos. Al igual que en DF hay de dos tipos. De los que conocemos el número de repeticiones y de los que no. Vamos a empezar a ver los que no, son los bucles "while":
while(condición) { acción }
Eso se leería "mientras que condición sea verdadero, repetir acción". Vamos a ver un ejemplo para que quede más claro:
Ejemplo 7: Diseña un programa que pida al usuario un número, y lo vaya multiplicando por dos y mostrando su valor hasta que sea mayor que 250.
#include int main() { int numero; printf("Introduce un numero: "); scanf("%i",&numero); while(numero < 250) { numero *= 2; printf("%i\n",numero); } system("pause > null"); return 0; }
Lo único que os habrá extrañado del programa es donde pone numero *= 2. Esto significa lo mismo que numero = numero * 2 pero no es el único que hay, vamos a ver varios:
variable += n es lo mismo que variable = variable + n
variable -= n es lo mismo que variable = variable - n
variable /= n es lo mismo que variable = variable / n
variable *= n es lo mismo que variable = variable * n
variable++ es lo mismo que variable += 1
++variable es lo mismo que variable++
variable-- es lo mismo que variable -= 1
--variable es lo mismo que variable--En realidad hay una pequeña diferencia entre variable++ y ++variable, y entre variable-- y --variable; pero aún no la vamos a ver.
Ahora veamos bucles pero cuando conocemos el número de repeticiones. Se usa el bucle "for". Se escribe así:
for(asignación;condición;operación) { acción }
Este es más difícil de entender, vamos a ir paso a paso. Este bucle necesita de una variable que se use como contador. A las variables que se usan como contador en los bucles for todo el mundo las llama i, pero como son variables podrían tener cualquier nombre. Así que antes creamos una variable. En el bucle for, en la parte de asignación le damos un valor a esa variable. El 99.9% de las ocasiones pondréis i = 0. Después viene la parte de condición, ahí se pone una condición. Mientras esa condición se cumpla el bucle se seguirá repitiendo. Ahí casi siempre pondréis i < (otro_numero), pero podéis poner cualquier condición. La útima parte se deja para poner operaciones como i = i * 2. Ahí también pondréis el 99.9% de las veces i++.
Sé que es bastante difícil de coger al principio vamos a ver un ejemplo para comprenderlo mejor:
Ejemplo 8: Diseña un programa que cuente del 0 al 9.#include int main() { int i; for(i = 0; i < 10; i++) { printf("%i\n",i); } system("pause > null"); return 0; }
Primero creamos la variable i (podría llamarse de otra forma pero a las variables contador en un for todo el mundo las llama i). Ahora en el bucle for ponemos primero a i el valor 0. Se repetirá mientras que valga menos que 10 (cuando valga 10 ya no se cumple la condición y no se repite). Después de cada repetición lo que hará es i++ (aumentar en 1 el valor de la variable). Dentro del bucle ponemos lo que queremos que se repita, en este caso mostrar el valor de i. Este bucle se podría leer algo así como "para i = 0 mientras que sea menor que 10, aumentamos i en 1 y mostramos el valor de i".
Bueno, enhorabuena a todos, ya hemos llegado a donde llegamos con DF pero en C, lo que significa que a partir de ahora todo lo que veremos será nuevo completamente. Próximamente veremos lo que son arrays y estructuras, crearemos nuestras propias funciones y aprenderemos a trabajar con strings, pero antes unos cuantos ejercicios:
Ejercicio 17 (B): Crea un programa que pida al usuario tres números y vaya multiplicando los tres números por 4 hasta que uno de ellos sea mayor que 500.
Ejercicio 18 (A): Crea un programa que pida al usuario dos números. Después creará una variable y le asignará el valor 0. Mientras que esa tercera variable no sea mayor de 50 irá sumandole alternativamente el primer número y el segundo. Al terminar mostrará por pantalla 1 si la última variable que sumaste a la tercera fue la primera, y mostrará 2 si la útima que sumaste a la tercera variable fue la segunda.
El 18 es el más difícil que os he mandado hasta ahora, no os desesperéis si no os sale, es normal.Ejercicio 19 (B): Crea un programa que cuente del 1 al 10 de uno en uno.
Ejercicio 20 (M): Crea un programa que pida al usuario un número. Si el número es negativo dirá hola 15 veces y terminará. Si el número es positivo el programa contará de 4 a -8 de uno en uno.