Te diste cuenta de que muchas veces hacemos cálculos que son con más de dos valores, quiero que crees el algoritmo para programar una calculadora a la que le puedas agregar tantos números como tú requieras, deberá servir para adiciones y multiplicaciones
Calculadora V2 en Java ☕️ ☕️ 😃
public class CalculadoraV2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);System.out.println("Escribe 1 para suma o 2 para multiplicación");int opcion = scanner.nextInt();int num;int resultado = 0;int resultadoMult = 1;switch (opcion) { case1: //sumado { System.out.println("Escribe un un número para sumar o escribe 0 para salir"); num = scanner.nextInt(); resultado += num; }while (num != 0);System.out.println("El resultado es: " + resultado);break;case2: //multiplicacióndo { System.out.println("Escribe un un número para multiplicar o escribe 0 para salir"); num = scanner.nextInt();if (num == 0) { break; } resultadoMult *= num; }while (true);System.out.println("El resultado es: " + resultadoMult);break;default: System.out.println("opción no válida");break; } } }
Resultado de la ejecución con multiplicación:

Resultado de la ejecución con suma:

Calculadora v2 en JavaScript
//Calculadora v2 en JavaScriptconst add = numbers => numbers.reduce((a, b) => a + b) const multiply = numbers => numbers.reduce((a, b) => a * b) let numeros = [] do { numeros.push(parseFloat(prompt('Introduzca un número'))) }while(prompt('¿Hay más números? (si/no)').toLowerCase() === 'si') const operacion = prompt('¿Que operación quiere hacer? (sumar/multiplicar)').toLowerCase() switch(operacion){ case'sumar': alert(`La suma de los números es ${add(numeros)}`) breakcase'multiplicar': alert(`El producto de los números es ${multiply(numeros)}`) breakdefault: alert('No conozco esa operación') }
En Python:
""" Calculadora para adiciones y multiplicaciones a la que se puede agregar tantos números como se desee. Calculator for additions and multiplications to which you can add as many numbers as you want. """defreceive_numbers(): numbers = [] stop_asking = 0 count = 0while stop_asking == 0: count += 1 number = input(' Please insert number {}: ' .format(count)) if number == '=': stop_asking = 1else: try: numbers.append(float(number)) except: whileTrue: number = input(' Invalid entry. Please insert a number: ') if number == '=': stop_asking = 1breakelse: try: numbers.append(float(number)) breakexcept: pass print(numbers) return numbers if __name__ == "__main__": print('Sum and Multiplication Calculator!!!') print('Select the operation you want to perform:\n [+] Addition.\n [*] Multiplication.') operator = ''whilenot (operator == '+'or operator == '*'): operator = input('Enter + or *: ') if operator == '+': print('Please entry the numbers you want to add (use "." as decimal separator), to stop enter \"=\"') result = sum(receive_numbers()) print('The sum result of your numbers is: {}' .format(result)) else: print('Please entry the numbers you want to multiply (use "." as decimal separator), to stop enter \"=\"') result = 1for x in receive_numbers(): result *= x print('The multiplication result of your numbers is: {}' .format(result))
Javascript
Facil :v
const expresion = prompt('Introduce una suma o multiplicacion con "n" valores:') alert(eval(expresion))
Java
public class CalculatorV2 { public staticvoid start(){ Scanner scan = new Scanner(System.in); StringBuilder numbersDisplay = new StringBuilder(); int option = 0; System.out.println("Enter a number:"); double result = scan.nextDouble(); numbersDisplay.append(result + " "); do { System.out.println("Select an operation: \n 1.Addition(+) \n 2.Multiplication(*) \n 3.Exit"); option = scan.nextInt(); double number = 0; if (option!= 3) { System.out.println("Enter a number:"); number = scan.nextDouble(); } switch (option){ case1: numbersDisplay.append("+ " + number + " "); result += number; System.out.println(numbersDisplay + " = " + result); break; case2: numbersDisplay.append("* " + number + " "); result *= number; System.out.println(numbersDisplay + " = " + result); break; case3: System.out.println(numbersDisplay + " = " + result); break; default: System.out.println("That is not a valid option"); break; } }while (option != 3); } }
Calculadora v2
var op = "10*2*3"//Digite la operación. Utilice un solo tipo de signo.if(validarOpUnico(op)){ var res = 0; if(op.includes('+')){ let nums = op.split('+') for(let n of nums){ res += parseFloat(n); } }elseif(op.includes('-')){ let nums = op.split('-') res = parseFloat(nums[0]); for(let i = 1; i< nums.length; i++){ res -= parseFloat(nums[i]); } }elseif(op.includes('*')){ let nums = op.split('*') res = parseFloat(nums[0],10); for(let i = 1; i< nums.length; i++){ res *= parseFloat(nums[i]); } }elseif(op.includes('/')){ let nums = op.split('/') res = parseFloat(nums[0]); for(let i = 1; i< nums.length; i++){ res /= parseFloat(nums[i]); } } } console.log(`${op} = ${res}`) functionvalidarOpUnico(cad){ res = 'Se permite un solo tipo de operador. Intenta de nuevo!'if(cad.includes('+') && cad.includes('-') || cad.includes('+') && cad.includes('*') || cad.includes('+') && cad.includes('/') ){ returnfalse; }elseif(cad.includes('-') && cad.includes('*') || cad.includes('-') && cad.includes('/') ){ returnfalse; }elseif(cad.includes('*') && cad.includes('/')){ returnfalse; }else{ returntrue; } }
En Python 😃
menu='''CALCULADORA, Si deseas hacer un calculo responde las preguntas y llena los campos como se te indica''' menum='''Ingresa el numero que deseas operar: ''' menuop='''Que desea realizar, presione: 1.- Si desea Sumar el numero ingresado 2.- Si desea Multiplicar el número ingresado'''defsuma(numero,numero2): numero=numero+numero2 continua(numero) defmultiplica(numero,numero2): numero=numero*numero2 continua(numero) defcontinua(numero): print(f'Tu resultado ahora es: {numero}') seguir=input('Quieres agregar más operaciones?[si/no]: ') if seguir=='si': operacion(numero) else: passdefrun():global menu global menum print(menu) numero=int(input(f'{menum} ')) operacion(numero) defoperacion(numero):global menuop global menum opera=int(input(f'{menuop}\n ')) numero2=int(input(f'{menum} ')) if opera==1: suma(numero,numero2) elif opera==2: multiplica(numero,numero2) else: print('Ingresa una opción valida') if __name__ == '__main__': run()
#include<iostream>usingnamespacestd; intmain(){ cout << "Calculadora" << endl << "1. Suma" << endl << "2. Multiplicacion" << endl; int opcion, numero, resultado; cout << "Introduzca el calculo aritmetico que desea: "; cin >> opcion; if(opcion == 1) { cout << "Ingrese un numero (0 para terminar): "; cin >> numero; while (numero != 0) { resultado = resultado + numero; cout << "Ingrese un numero (0 para terminar): "; cin >> numero; } } elseif(opcion == 2) { cout << "Ingrese un numero (0 para terminar): "; cin >> numero; while (numero != 0) { resultado = numero * numero; cout << "Ingrese un numero (0 para terminar): "; cin >> numero; } } else { cout << "No juege por el programa, por favor"; } cout << "El resultado es: " << numero; return0; }
Reto en Python. 🐍🐍🐍
defcalculadora(numeros, operacion):if operacion == '1': resultado = sum(numeros) elif operacion == '2': resultado = 1for numero in numeros: resultado = resultado * numero return resultado defgenerador_lista_numeros(cantidad): list_numeros = [] for i in range(cantidad): numero = float(input(f'Ingresa el número {i+1}: ')) list_numeros.append(numero) return list_numeros defrun(): print("""Calculadora V2.0 Ingresa una cantidad de números y la operación que harás.""") operacion = input(""" 1) Suma 2) Multiplicación Escoge la operación: """) cantidad_numeros = int(input('\nIngresa con cuántos números harás el cálculo: ')) numeros = generador_lista_numeros(cantidad_numeros) resultado = calculadora(numeros, operacion) print(f'\n\nRESULTADO = {resultado}') if __name__ == "__main__": run()
Me costó pero lo logre, por si acaso, esta visto para orden de operadores, o sea la multiplicación sucede primero que las sumas.
Me refiero a que puedes hacer esto:
El resultado te dará:
<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>CalculadoraV2</title></head><style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: monospace; } body { display: flex; flex-direction: column; justify-content: center; align-items: center; } .header { height: 15vh; display: flex; justify-content: center; align-items: center; } .contenedor { display: flex; width: 100%; height: 85vh; justify-content: center; } .calculadora { align-items: center; display: flex; flex-direction: column; justify-content: space-between; border-radius: 25px; background: #646464; min-width: 450px; width: 45%; height: 95%; } .pantalla { display: flex; justify-content: center; width: 100%; height: 20%; } .pantallah2 { margin-top: 45px; width: 80%; font-size: 35px; border-radius: 10px; background-color: lightblue; display: flex; align-items: center; padding-left: 15px; } .botones { display: grid; width: 100%; height: 80%; grid-template-columns: 10%20%20%20%20%10%; grid-template-rows: 10%20%20%20%20%10% ; grid-template-areas: ". clr . . . ."". seven eight nine plus ."". four five six plus ."". one two three mult . "". point cero equal mult ."". . . . . ." ; } .btn { margin: 8px; border-radius: 15px; outline: none; font-size: 40px; border: none; color: #2d3142; text-align: center; } .btn:hover { cursor: pointer; transform: scale(1.1); } #reset { grid-area: clr; font-size: 24px; } #cero { grid-area: cero; } #one { grid-area: one; } #two { grid-area: two; } #three { grid-area: three; } #four { grid-area: four; } #five { grid-area: five; } #six { grid-area: six; } #seven { grid-area: seven; } #eight { grid-area: eight; } #nine{ grid-area: nine; } #suma{ grid-area: plus; } #multiplicacion{ grid-area: mult; } #point{ grid-area: point; } #equal{ grid-area: equal; } </style><body><div></div><divclass='header'><h1>Calculadora</h1></div><divclass="contenedor"><divclass="calculadora"><divclass="pantalla"><h2cols="18"row="1"id="valores"></h2></div><divclass="botones"><inputclass="btn"type="button"value="CE"id="reset"data-numero="clr"><inputclass="btn"type="button"value="0"id="cero"data-numero="0"><inputclass="btn"type="button"value="1"id="one"data-numero="1"><inputclass="btn"type="button"value="2"id="two"data-numero="2"><inputclass="btn"type="button"value="3"id="three"data-numero="3"><inputclass="btn"type="button"value="4"id="four"data-numero="4"><inputclass="btn"type="button"value="5"id="five"data-numero="5"><inputclass="btn"type="button"value="6"id="six"data-numero="6"><inputclass="btn"type="button"value="7"id="seven"data-numero="7"><inputclass="btn"type="button"value="8"id="eight"data-numero="8"><inputclass="btn"type="button"value="9"id="nine"data-numero="9"><inputclass="btn"type="button"value="+"id="suma"data-numero="+"><inputclass="btn"type="button"value="x"id="multiplicacion"data-numero="*"><inputclass="btn"type="button"value="."id="point"data-numero="."><inputclass="btn"type="button"value="="id="equal"data-numero="="></div></div></div><script>const reset = document.getElementById('reset') const cero = document.getElementById('cero') const one = document.getElementById('one') const two = document.getElementById('two') const three = document.getElementById('three') const four = document.getElementById('four') const five = document.getElementById('five') const six = document.getElementById('six') const seven = document.getElementById('seven') const eight = document.getElementById('eight') const nine = document.getElementById('nine') const suma = document.getElementById('suma') const multiplicacion = document.getElementById('multiplicacion') const point = document.getElementById('point') const equal = document.getElementById('equal') const pantalla = document.getElementById('valores') let total = 0let subtotalArray = [] let subtotal = 0let subsubtotal = 1 reset.onclick = () => { subtotal = 0 total = 0 subtotalArray = [] operador = '' pantalla.innerHTML = '' } cero.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '0' } one.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '1' } two.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '2' } three.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '3' } four.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '4' } five.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '5' } six.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '6' } seven.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '7' } eight.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '8' } nine.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '9' } point.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '.' } suma.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '+' } multiplicacion.onclick = () => { pantalla.innerHTML = pantalla.innerHTML + '*' } equal.onclick = () => { subtotalArray = pantalla.innerHTML.split('+') subtotalArray.map( index => { index = index.split('*') subsubtotal = 1if (index.length !== 1){ index.map( num => { subsubtotal = subsubtotal * num }) subtotal = subtotal + subsubtotal } else { subtotal = subtotal + parseFloat(index) } }) pantalla.innerHTML = subtotal } </script></body></html>
Pd: Me acabo de dar cuenta que no puse los casos para que funcione varias veces, solo sirve una vez, hay que darle a CE para poder volverla a usar c:
En Java
import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.println("Bienvenido a la calculadora 2.0"); ArrayList<Float> valores= new ArrayList<Float>();System.out.println("Ingresa la cantidad de valores con los que deseas hacer la operación"); Scanner entradaCantidad= new Scanner(System.in);int cantidadValores= entradaCantidad.nextInt();for(int i=0; i<cantidadValores; i++){System.out.println("Ingresa el valor "+(i+1)); Scanner entradaValor=new Scanner(System.in); Float valor= entradaValor.nextFloat(); valores.add(valor); } System.out.println("Elige la operación que deseas realizar\n1.-Suma\n2.-Multiplicación"); Scanner entradaOpcion= new Scanner(System.in);int opcion= entradaOpcion.nextInt();if(opcion==1){ float total=Operaciones.Suma(valores);System.out.println("El resultado de tu operación suma es "+total); }elseif(opcion==2){ float total=Operaciones.Multiplicacion(valores);System.out.println("El resultado de tu operación multiplicación es "+total); }else{ System.out.println("Opcion no válida"); } } }
import java.util.ArrayList; publicclass Operaciones { publicstaticFloat Suma(ArrayList<Float> valores){ float total=0; for (Float iterador:valores) { total+=iterador; } return total; } publicstaticFloat Multiplicacion(ArrayList<Float> valores){ float total=1; for (Float iterador:valores) { total*=iterador; } return total; } }
En Python con el método eval de los strings.
defejercicio_16():""" Te diste cuenta de que muchas veces hacemos cálculos que son con más de dos valores, quiero que crees el algoritmo para programar una calculadora a la que le puedas agregar tantos números como tú requieras, deberá servir para adiciones y multiplicaciones """ print( """ Ingrese el calculo que quiere hacer en linea, recuerde los parentesis. ====================================================================== """) e = input('Calculo a realizar: ') print(f'¿El calculo a resolver quedo bien realiazado?: {e}') answer = input('Sí lo escribio mal, ingrese (0) para reescribirlo, (1) para resolverlo: ') while answer == '0': e = input('Calculo a realizar: ') print(f'¿El calculo a resolver quedo bien realiazado?: {e}') answer = input('Sií lo escribio mal, ingrese (0) para reescribirlo, (1) para resolverlo: ') print(f'La respuesta al calculo ({e}) es: {round(eval(e),2)} redondeado a 2 decimales.') if __name__ == "__main__": ejercicio_16()
OUTPUT
El método eval deja evaluar un string como toda una expresión matemática, muy útil en esté caso si se escribe correctamente.
Reto 16: Calculadora v2
Repositorio del reto: PlatziCodingChallengeRepo
GitHub pages: PlatziCodingChallengePages
Listo 😁
Este reto lo resolví de la siguiente forma:
lista_numero = [] defsuma_numeros(): print('Suma de los números') print('Presiona 0 para terminar las operaciones') whileTrue: numero = int(input('ingresa los numeros: ')) lista_numero.append(numero) if numero == 0: print('Los numeros ingresados suman: ',sum(lista_numero)) breakdefmultiplica_numeros(): print('Multiplica de los números') print('Presiona 0 para terminar las operaciones') whileTrue: numero = int(input('ingresa los numeros: ')) lista_numero.append(numero) producto = 1for i in lista_numero[0:-1]: producto *= i if numero == 0: print('Los numeros ingresados multiplican: ', producto) breakdefrun():whileTrue: operacion = str(input(''' Qué operación desea realizar: [s] Suma [m] Multiplicación [x] Salir ''')) if operacion == 's': suma_numeros() elif operacion == 'm': multiplica_numeros() elif operacion == 'x': breakelse: print('Operación desconocida.') if __name__ == "__main__": run()