elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 [2] 3
11  Programación / Programación C/C++ / Re: Duda con While y con If en: 28 Agosto 2015, 17:40 pm
Creo que quiere decir ((2/N)-1) porque así esta establecido en el ejercicio, y creo que por ley de signos, la división debe ir primero antes que la resta. Sabes, a pesar de que te copie el codigo y le cambie un par de cosas, lo siento si no te pedi permiso antes, es que vi tan bien tu codigo que decidi quedarme con ese  :-[ y ahora no me esta quedando muy claro lo que indicas, le he cambiado asi como indicas pero no sale igual al del programa que tengo de guía. Te dejo las comparaciones:



El izquierdo es mi programa, y el segundo es el programa guia al que mi programa debe ser igual.

Ahora le hice leves modificaciones al código tratando de lograr un ingenio para ver si lograba el resultado, pues a como esta ahorita es como en mi mente tiene que estar el codigo, observa:

Código
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int n;
  5. int i = 1;
  6. float total = 0;
  7. float numerador = 0;
  8. bool bandera = false;
  9.  
  10. void main(){
  11.  
  12.  
  13.   cout << "Calculemos la suma de (1/N) - (2/N-1) + (3/N-2) - (4/N-3) + (5/N-4) + N/1 " << endl << endl;
  14.   cout << "Ingresa un valor para N:" << endl;
  15.   cin >> n;
  16.  
  17.   //HASTA QUE I SEA MENOR O IGUAL QUE N EL CICLO TERMINA
  18.   while(i <= n){
  19.   //DETERMINAMOS LA SUMA DEL TOTAL CON I, NUMERADOR Y SUMANDO EL TOTAL
  20.        if( bandera == false){
  21.            total = total + (i/n);
  22.            i++;
  23.            bandera = true;
  24.        }
  25.   //AL INDICAR QUE BANDERA ES TRUE, SUCESIVAMENTE SE VA A RESTAR EL PROCESO ANTERIOR
  26.        else{
  27.            numerador--;
  28.            total = total - (i/n)-numerador;
  29.            bandera = false;
  30.        }
  31.  
  32.    }
  33.  
  34.    //IMPRIMIMOS EN PANTALLA EL RESULTADO DE LAS DOS OPERACIONES
  35.    cout<<"Total: "<< total <<endl;
  36.    getch();
  37. }

Pero como viste anteriormente no me da el resultado que yo quiero... Podrías presentarme una solucion para el codigo porfavor? Ya no se me ocurre nada :(
12  Programación / Programación C/C++ / Re: Centinela 9999 en: 28 Agosto 2015, 17:08 pm
Solo te funciona con 2 numeros por que está cogiendo el "primer" y "ultimo" dividido entre la cantidad de números.

Si ingresas n1 n2 n3 n4, te va a dar : (n1+n4)/4.

No hay necesidad de usar otra variable para ingresar el nuevo número.

El problema está en la línea 35.



Wow, por algo tan simple el programa falla, tenías mucha razón amigo, solucionado!! Muchísimas gracias como siempre!!  ;-)
13  Programación / Programación C/C++ / Centinela 9999 en: 28 Agosto 2015, 06:39 am
Hola chicos, vengo a molestar de nuevo a ver si alguien me echa la mano con este código. A ver, el problema está en lo de las vueltas del ciclo, hay una parte en que ya no me hace el proceso y no tengo ni idea del porque. Les muestro el código:

Código
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int num;
  5. int numNuevo;
  6. int auxiliar = 0;           //VARIABLES DE TIPO ENTERO
  7. int promedio;
  8. int numAgregado;
  9. int numResta;
  10.  
  11. void main(){
  12.  
  13. cout << "Programado por ;Curso de Algoritmos;Tarea 6" << endl;
  14.   cout << "Carne 1190" << endl << endl;
  15.   cout << "Programa que calcula promedio de enteros impares" << endl;
  16.   cout << "Ingrese 9999 si desea terminar -- Ingrese numeros para el promedio" << endl;
  17.   cin >> num;
  18.   auxiliar++;
  19.  
  20.   //DETERMINAMOS SI EL NUMERO INGRESADO ES 9999
  21.   while(num != 9999){
  22.  
  23.   cout << "Ingrese otro numero: " << endl;
  24.   cin >> numNuevo;
  25.   auxiliar++;
  26.   if (numNuevo == 9999){
  27.   auxiliar--;
  28.   //CALCULAMOS PROMEDIO
  29.   promedio = numAgregado/auxiliar;
  30.   //IMPRIMIMOS RESULTADOS
  31.      cout << "El promedio es: " << promedio << endl;
  32.      break;
  33.      }
  34.   else{
  35.   numAgregado = num+numNuevo;
  36.   }
  37.  
  38.   }
  39.  
  40.   getch();
  41.  
  42. }

Aclarando: Uso Borland, se que hay algunas funciones que no debo de utilizar o estan desfasadas pero son simples ejercicios y solo tengo que presentar el código nada más.

Donde esta el problema? Se puede decir que en la línea 27. Cuando ingreso 1 numero en la 17 aumenta 1 a la variable auxiliar en la linea 18, bien, ahora en el while, si ingreso otro número, automaticamente agrega 1 otra vez a la variable en la linea 25 siempre y cuando no sea 9999. Despues de eso, ingreso 9999 y vuelve a sumar 1 a auxiliar, pero le resto 1 despues dentro del if en la linea 27 para que la division sea exacta (si ingreso 2 numeros, se debe dividir en 2, si ingreso 3, se debe dividir en 3, por eso la variable), lo probe y funcionó con 2 numeros, pero de 3 en adelante, es como si la línea 27 no hiciera efecto porque divide mal, no hace su función. Podrían decirme el porqué? Perdon si no me explico bien, me avisan y vuelvo a explicar, saludos a todos!

Mod: Datos bloqueados para proteger la privacidad
14  Programación / Programación C/C++ / Re: Duda con While y con If en: 27 Agosto 2015, 05:53 am
No hay problema.
Mas bien algo q no me había dado cuenta. Trata de evitar declarar las variables fuera de la función principal. Esto se llama "variables globales".
Y también cuando escribas código dentro de un if,while,etc ponlo "más a la derecha". Esto lo llama identación o sangrado.

Te envié un mensaje privado! Espero me contestes y una vez más, muchísimas gracias por ayudarme!!!  ;-)

Publico el código para que me pudas ayudar nuevamente con otro ejercicio porfavor!

Código
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int n;
  5. int i = 0;
  6. float total = 0;
  7. const float numerador = 1.0;
  8. bool bandera = false;
  9.  
  10. void main(){
  11.  
  12.  
  13.   cout << "Calculemos la suma de (1/N) - (2/N-1) + (3/N-2) - (4/N-3) + (5/N-4) + N/1 " << endl << endl;
  14.   cout << "Ingresa un valor para N:" << endl;
  15.   cin >> n;
  16.  
  17.   //HASTA QUE I SEA MENOR O IGUAL QUE N EL CICLO TERMINA
  18.   while(i <= n){
  19.   //DETERMINAMOS LA SUMA DEL TOTAL CON I, NUMERADOR Y SUMANDO EL TOTAL
  20.        if( bandera == false){
  21.            total = total + (numerador/n)-i;
  22.            bandera = true;
  23.        }
  24.   //AL INDICAR QUE BANDERA ES TRUE, SUCESIVAMENTE SE VA A RESTAR EL PROCESO ANTERIOR
  25.        else{
  26.            total = total - (numerador/n)-i;
  27.            bandera = false;
  28.        }
  29.   //SE INCREMENTA I HASTA QUE CUMPLA LA CONDICION DEL CICLO WHILE
  30.        i--;
  31.  
  32.    }
  33.  
  34.    //IMPRIMIMOS EN PANTALLA EL RESULTADO DE LAS DOS OPERACIONES
  35.    cout<<"Total: "<< total <<endl;
  36.    getch();
  37. }
15  Programación / Programación C/C++ / Re: Duda con While y con If en: 27 Agosto 2015, 03:24 am
La linea 36 y 41 están de más, por que en el "for" con "i++" ya le estás indicando que incremente uno en cada iteración. Por eso te da 3 intentos cuando pones 5, ya que en cada bucle " i " toma el valor de 0,2,4

Un numero puede ser mayor que otro, menor que otro, o igual q el otro, esas son todas las posibilidades. Por eso nunca vas a llegar a la linea 49.

Fuera del "for" puedes usar un "if" para saber con que valor terminó la variable "i". Si terminó con 5 entonces dices que perdió. Es una forma, tal vez se te ocurra otra mejor.

* Si uso "for(int x=0 ; i<=10 ; i++)" eso son 11 vueltas.

Increíble la falta de conocimiento de mi parte jeje, muchísimas gracias mi amigo!! Todo resuelto!
Disculpa las molestias que te provoco, de verdad muchas gracias!  ;-) ;-) ;-)
16  Programación / Programación C/C++ / Re: Duda con While y con If en: 26 Agosto 2015, 22:21 pm
En el while de la linea 13, si ingresas un valor entre 1 y 50 te va a dar "true" y va a hacer ese "cout" en un ciclo infinito. Pero igual si no corre, no es por eso.

Revisa bien tus llaves, tanto de apertura como de cierre. Están mal. Al parecer quieres hacer el "if , else if y else" dentro de ese "while" pero el "else if" está fuera del while.

Creo q tienes una llave de cierre de más.

Si vas a usar "else if", termínalo con "else" para la linea 42.

Trata de usar una llave de cierre en una línea aparte. Por ejemplo el "for" de la linea 25 parece que terminara en la línea 30, pero tienes una llave de cierre al final de la línea 27. Esto complica la lectura de código.

Excelente mi amigo!! Gracias, de la que me salvaste!! Disculpa si no te conteste luego! Ahora tengo otra duda, después de corregir todo eso, el código me quedó así:
Código
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int num1;
  5. int num2;
  6. int i;
  7.  
  8. void main(){
  9.  
  10.   cout << "Jugador 1: Ingresa el numero que se va a adivinar: " << endl;
  11.   cin >> num1;
  12.   cout << endl;
  13.  
  14.   //DETERMINAMOS SI EL NUMERO INGRESADO ES DEL 1 AL 50
  15.   while ((num1 < 0) || (num1 > 50))
  16.   {
  17.   cout << "El numero que ingresaste debe estar entre 1 y 50" << endl;
  18.      cin >> num1;
  19.      cout << endl;
  20.   }
  21.   //LIMPIAMOS PANTALLA PARA QUE EL JUGADOR 2 NO VEA EL NUMERO OCULTO
  22.   clrscr();
  23.  
  24.   //INDICAMOS AL JUGADOR 2 LO QUE DEBE DE HACER
  25.   cout << "Ok" << endl << endl << "Jugador 2: Comienza a adivinar!" << endl << endl;
  26.   cout << "Tienes 5 oportunidades! ";
  27.  
  28.   //DETERMINAMOS SI EL JUGADOR 2 NO ADIVINA EL NUMERO EN 5 INTENTOS, PIERDE
  29.   for (i = 0; i <= 8; i++){
  30.   cout << "Ingresa otro numero:" << endl;
  31.   cin >> num2;
  32.   cout << endl;
  33.   //DETERMINAMOS SI NUM2 ES MAYOR A NUM1 E IMPRIME UN INDICIO
  34.   if (num2 > num1){
  35.   cout << "El numero es mayor que el numero oculto!" << endl << endl;
  36.      i++;
  37.      }
  38. //DETERMINAMOS SI NUM2 ES MENOR A NUM1 E IMPRIME UN INDICIO
  39.   else if (num2 < num1){
  40.   cout << "El numero es menor que el numero oculto!" << endl << endl;
  41.      i++;
  42.      }
  43.   //SI EL JUGADOR 2 ADIVINA EL NUMERO, GANA Y SALE DEL CICLO CON BREAK
  44.   else if (num2 == num1){
  45.   cout << "Sorprendente!!, felicidades, adivinaste, el numero oculto era: " << num1 << endl;
  46.      break;
  47.      }
  48.   //SI EL JUGADOR 2 NO ADIVINA, JUGADOR 1 GANA Y TERMINA EL PROGRAMA
  49.   else{
  50.   cout << "Perdiste!! Jugador 1 Gana!! El numero oculto era: " << num1 << endl;
  51.      break;
  52.      }
  53.   }
  54.  
  55.  getch();
  56. }

Todo correcto, me compila y me ejecuta todito! Pero cuando el jugador 2 falla en los 5 intentos, no imprime el ultimo mensaje del else de la linea 49, no se porque!! Podrías ayudarme? Otra cosa: en la linea 29 del for, coloqué 8 a i porque solo de esa manera me podia ingresar 5 intentos a la hora de ejecutarse, si le colocaba 5 solo me dejaba intentar 3 veces!! Por si acaso me preguntas, saludos mi amigo!!
17  Programación / Programación C/C++ / Duda con While y con If en: 26 Agosto 2015, 00:02 am
Hola! Recientemente me registré en este grandioso foro y pues vengo a molestar a ver si alguien puede aclararme las dudas sobre un código de otro ejercicio que me dejaron hacer de la universidad. Aclaro: Los ejercicios los hago en Borland (si, me han dicho que es viejo, pero es el que utilizamos en clase) y las funciones puede que algunas no tenga que usarlas o son desactualizadas, pero en si no se preocupen que solo son programas pequeños y solamente es presentar el código a nuestro profesor.

El ejercicio  que tengo que programar va así:



Y el código que  hice en Borland C++ está así:
Código
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int num1;
  5. int num2;
  6. int i;
  7.  
  8. int main(){
  9.  
  10.   cout << "Jugador 1: Ingresa el numero que se va a adivinar: " << endl;
  11.   cin >> num1;
  12.  
  13.   while (num1 >= 1 && num1 <= 50){
  14.  
  15.   cout << "El numero que debes ingresar debe estar entre 1 y 50";
  16.   }
  17.  
  18.   cout << "Ok" << endl << endl << "Jugador 2: Comienza a adivinar!" << endl << endl;
  19.   cout << "Tienes 5 oportunidades, ingresa un numero: " << endl;
  20.   cin >> num2;
  21.  
  22.   while (num2 == num1){
  23.  
  24.   if (num2 > num1){
  25.       for (i=0; i<=5; i++){
  26.  
  27.         cout << "El numero que ingresaste es mayor que el del otro jugador";}
  28.         cout << "Ingresa otro numero";
  29.         i++;
  30.         }
  31.      }
  32.      else if(num2 < num1){
  33.      for (i=0; i<=5; i++){
  34.  
  35.         cout << "El numero que ingresaste es menor que el del otro jugador";}
  36.         cout << "Ingresa otro numero";
  37.         i++;
  38.         }
  39.  
  40.      }
  41.  
  42.   else if (num2 == num1){
  43.  
  44.   cout << "Sorprendente, felicidades, adivinaste, el numero era:" << num1;
  45.  
  46.   }
  47.  
  48.   getch();
  49.   return 0;
  50. }

Pues con los conocimientos que tengo todo debería estar bien, pero a la hora de compilarlo, todo va mal, me saltan errores y ya rebusque en todo el codigo y nada. Quisiera saber que errores tengo y si el programa va bien (porque debido a que no puedo compilarlo, no se si funciona de esta manera como yo lo tengo).

Por si surgen las preguntas otra vez: Solo son ejercicios pequeños, me informaron antes de que algunas funciones que utilizo son desactualizadas o no deben usarse, pero solo son ejercicios de la universidad y utilizo Borland. Saludos a todos  ;D
18  Programación / Programación C/C++ / Re: Ejercicios en: 24 Agosto 2015, 22:08 pm
Excelente, gracias por la ayuda!  ;-)
Ahora mismo estoy lidiando con otro ejercicio, no se si puedo compartir mis dudas con ustedes o debo de crear otro tema para eso?

Perdonen la ignorancia  :xD
19  Programación / Programación C/C++ / Re: Ejercicios en: 24 Agosto 2015, 02:47 am
No había pensado incluir el if dentro del while y no sabia que se podía  ;-)

Estoy un poco confundido, en si veo que es un código muchísimo mejor que el mío jeje, pero tengo una duda, ese código que colocaste es para el ejercicio a o es para el ejercicio b? Ya que son casi iguales como lo mencionó el moderador!

De paso, también te agradezco bastante por la ayuda!  ;-)
20  Programación / Programación C/C++ / Re: Ejercicios en: 24 Agosto 2015, 00:34 am
Excelente, gracias a los dos! Ya lo único que encuentra mal el compilador es que sigo usando "using namespace std", y el error que indica es: "Namespace name expected"

Tengo que remover esa función para que siga funcionando, y si me ejecuta el programa cuando lo remuevo, no habrá ningun problema? Ya que el moderador me indicó eso mismo de que tengo que insertar esa función pero me indica el error que ya mencioné y que aparece en la imagen de antes que subí. También debo dar las gracias por tomarse el tiempo para contestar, enserio se los agradezco!  :xD
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines