Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Calculadora, muy sencilla para mi gusto

Estas en el tema de Calculadora, muy sencilla para mi gusto en el foro de C/C++ en Foros del Web. Hola, quiero que la calculadora que estoy programando pueda +, -, / y *. En realidad esto es sencillo, pero sólo cuando tengo dos números. ...
  #1 (permalink)  
Antiguo 04/11/2010, 13:46
 
Fecha de Ingreso: enero-2010
Mensajes: 49
Antigüedad: 14 años, 3 meses
Puntos: 2
Calculadora, muy sencilla para mi gusto

Hola, quiero que la calculadora que estoy programando pueda +, -, / y *. En realidad esto es sencillo, pero sólo cuando tengo dos números.

Yo quiero que el programa pregunte cuantos números se desean sumar o lo que sea y que este pueda hacer la operación con la cantidad de numeros que se indiquen.

El problema radica en que necesitaria un número determinaod de variables que el usuaria debe identificar en "cin".

Ej.

Cuantos numeros quieres sumar?
12

num1 + num2 + num3 + ... num12

Como hago para que esto sea algo dinamico, es posible?

Esto es lo que tengo hasta ahora, está incompleto.

Código:
#include <iostream>
using namespace std;

int main () {
	
	char selection;
	int numbers;
	double sum1, sum2, sum_total;
	
	cout << "Press the letter for the operation you wan't to do:\n";
	cout << "A - Addition\n";
	cin >> selection;
	
	switch (selection) {
		case 'A':
			case 'a':
			
			cout << "Insert the quantity of numbers that you want to sum.\n";
			cin >> numbers;
			
			if(numbers == 1)
				cout << "The sum of a number is the same number.\n";
			else {
			
				cout << "Insert the first number you want to sum.\n";
				cin >> sum1; 
				cout << "Now, insert the other number.\n"; 
				cin >> sum2;
		
				sum_total = sum1 + sum2;
				
				cout << sum1 << " + " << sum2 << " = " << sum_total;
				
			}
			
			
				break;
	}

    return 0;
}
Está en inglés, pero creo que se entiende, cualquier duda me avisan.

Última edición por hmps; 04/11/2010 a las 13:47 Razón: Programa esta en inglés.
  #2 (permalink)  
Antiguo 04/11/2010, 15:36
Avatar de Munire  
Fecha de Ingreso: julio-2010
Ubicación: en el ciberdespacio (España)
Mensajes: 150
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: Calculadora, muy sencilla para mi gusto

tienes que declarar un array (matriz) que almacene los numeros con los que quieres operar

Código C:
Ver original
  1. int matrix[100];  //por ejemplo de 100 columnas.
  2. //es decir como maximo puedes operar con 100

para la entrada de datos:

Código C:
Ver original
  1. for(i=0;i<n;i++)
  2. {
  3.     scanf("%d", matrix[i]);
  4.     fflush(stdin);
  5. }
siendo n la cantidad de numeros que quieres sumar. con lo cual el bucle for se repite n veces.

luego pones otro bucle for:

Código C:
Ver original
  1. for(i=0; i<n; i++)  
  2. {
  3.      resultado = resultado + matrix[i];
  4. }
  5. //y despues imprimes el valor de "resultado".

siendo n la cantidad de numeros que quieres sumar.
por ejemplo si quieres sumar 10 numeros, "i" va desde 0 hasta 9 => el bucle se repite 10 veces

"i" tambien va a indicar que numero coger en la matriz. cuando sea 0 cogera el primer numero almacenado, cuando sea 1 cogera el segundo...


yo lo he puesto en C en vez de C++, pero es lo mismo. solo cambiaria el scanf por el cin
  #3 (permalink)  
Antiguo 06/11/2010, 23:19
 
Fecha de Ingreso: enero-2010
Mensajes: 49
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Calculadora, muy sencilla para mi gusto

Muchísimas gracias! evité utilizar los array porque mi profesor aún no lo ha explicado y no quiero que piense que copié... Utilicé el bucle for, aunque al final no pueda decirle al usuario lo que decidió sumar o la operación.
  #4 (permalink)  
Antiguo 06/11/2010, 23:24
 
Fecha de Ingreso: enero-2010
Mensajes: 49
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Calculadora, muy sencilla para mi gusto

Ahora estoy teniendo problemas con calcular las divisiones... esto es lo que llevo:

Código C++:
Ver original
  1. division = 0;
  2.                         cout << "Insert the how many number you want to divide.\n";
  3.             cin >> number;
  4.            
  5.             for (i=1; i<=number; i++) {
  6.                
  7.                 cout << "Insert the number " << i << " you want to divide.\n";
  8.                 cin >> numbers;
  9.                
  10.  
  11.                 division = numbers / division; //Esto no funciona para mas de dos numeros!
  12.  
  13.             }
  14.            
  15.             if (division == 0)
  16.                 cout << "You can't divide by 0\n";
  17.             else
  18.                 cout << "The total is " << division << endl;               
  19.        
  20.     }

Cuando asigno el valor de la variable divide no me funciona para mas de dos números, no se como arreglar esto :(
  #5 (permalink)  
Antiguo 07/11/2010, 07:22
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Calculadora, muy sencilla para mi gusto

No tiene sentido lo que haces. Asignas 0 a division. Luego pides un numero, y luego haces numero / division. Por supuesto que division es cero por lo que va a fallar.
  #6 (permalink)  
Antiguo 07/11/2010, 11:28
 
Fecha de Ingreso: enero-2010
Mensajes: 49
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Calculadora, muy sencilla para mi gusto

Disculpa, en realidad el valor que le asigné es es 1. Lo que paso es que le puse cero en el foro sin queres, pero con 1 no funciona.

Sabes como puedo mejorar esto?
  #7 (permalink)  
Antiguo 07/11/2010, 12:32
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Calculadora, muy sencilla para mi gusto

la division no es una operacion conmutativa. Por lo que seria preciso que definas a que llamas dividir una cierta cantidad de numeros. Cuando tengas esto, contanos a lo que te referis y te ayudamos!

Segun tu algortimo, al ingresar 5 numeros seria la cuenta asi:

x5 / (x4 / (x3/ (x2 / (x1 / 1))))

Etiquetas: calculadora, sencilla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:13.