Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Objetos/practica2»
De WikiEducator
| (8 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 1: | Línea 1: | ||
<div id="parrafo"> | <div id="parrafo"> | ||
===Calculadora Real/Racional=== | ===Calculadora Real/Racional=== | ||
| − | ;Puedes probar una posible | + | ;Puedes probar una posible solución |
https://web.infenlaces.com/dwes/practicas/calculadora/ | https://web.infenlaces.com/dwes/practicas/calculadora/ | ||
| − | + | *clona el esqueleto (con código implementado) | |
| − | <source lang= | + | <source lang=bash> |
| − | git clone | + | git clone https://github.com/MAlejandroR/DWES_practica_calculadora.git |
</source> | </source> | ||
| + | ============================================================= | ||
| − | |||
| − | |||
| − | |||
| − | |||
;Enunciado | ;Enunciado | ||
*Se pide que realicemos una aplicación web que resuelva cálculos aritméticos con operadores reales o racionales | *Se pide que realicemos una aplicación web que resuelva cálculos aritméticos con operadores reales o racionales | ||
| Línea 23: | Línea 20: | ||
*El tipo de operación, la deberemos obtener según nos indique un método stático de la clase operación según se indica más abajo. | *El tipo de operación, la deberemos obtener según nos indique un método stático de la clase operación según se indica más abajo. | ||
*En la pantalla mostraremos un pequeño texto explicativo y una caja de texto donde el usuario podrá interactuar | *En la pantalla mostraremos un pequeño texto explicativo y una caja de texto donde el usuario podrá interactuar | ||
| − | [[Archivo:PracticaCalculadoraIndex1.png| | + | [[Archivo:PracticaCalculadoraIndex1.png|1024px]] |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| + | <br /> | ||
{{MRM_Ejemplo|Title= Operaciones que se pueden insertar| | {{MRM_Ejemplo|Title= Operaciones que se pueden insertar| | ||
| Línea 41: | Línea 30: | ||
;9/5*5.6 (Éste es un caso de error) | ;9/5*5.6 (Éste es un caso de error) | ||
}} | }} | ||
| + | <br /> | ||
*Al presionar intro aparecerá un texto (en el primer caso 9/8+4/7) | *Al presionar intro aparecerá un texto (en el primer caso 9/8+4/7) | ||
[[Archivo:PracticaCalculadoraUso1.png|500px]] | [[Archivo:PracticaCalculadoraUso1.png|500px]] | ||
| Línea 116: | Línea 106: | ||
*A partir de ahora '''''todos''''' los desarrollos deberán de ser orientados a objetos | *A partir de ahora '''''todos''''' los desarrollos deberán de ser orientados a objetos | ||
*Cualquier duda planteadla en el foro | *Cualquier duda planteadla en el foro | ||
| − | |||
| − | |||
| − | |||
}} | }} | ||
</div> | </div> | ||
Última revisión de 08:38 26 feb 2026
Calculadora Real/Racional
- Puedes probar una posible solución
https://web.infenlaces.com/dwes/practicas/calculadora/
- clona el esqueleto (con código implementado)
git clone https://github.com/MAlejandroR/DWES_practica_calculadora.git
=================================================
- Enunciado
- Se pide que realicemos una aplicación web que resuelva cálculos aritméticos con operadores reales o racionales
- La operación se insertará en una caja de texto
- La operación tendrá el siguiente formato
OP1 operador OP2
- Donde
- OP1 es un operador real o racional
- operador es una operación que puede ser +,-,*,/,:.
- según los operandos sean reales o racionales el operador división será / o : respectivamente
- El tipo de operación, la deberemos obtener según nos indique un método stático de la clase operación según se indica más abajo.
- En la pantalla mostraremos un pequeño texto explicativo y una caja de texto donde el usuario podrá interactuar
- Al presionar intro aparecerá un texto (en el primer caso 9/8+4/7)
- En el segundo caso ( 9.4 / 2)
- En el tercer caso ( 9/6:6)
- En el cuarto caso es erróneo ( 9/5*5.6 )
- Para realizar este ejercicio, tendremos que implementar las siguientes clases según aparece en el dibujo
- Es obligatorio usar esta jerarquía de clase.
- Todos los atributos private o protected (no debe de haber atributos public)
- Los métodos según correspondan serán private protected o public
- A continuación una descripción de las clases.
- Racional (p.e 10/6)
- Propiedades
- Num (p.e 10)
- Den (p.e 6)
- Métodos
- constructor. Hay que sobrecargarlo según se indica, aunque en este caso, solo usemos el constructor con cadena de caracteres
$a = new Racional(); //Crea el racional 1/1 $a= new Racional (10); //Crea el racional 10/1 $a = new Racional(10,6); //Crea el racional 10/6 $a = new Racional("10/6");//Crea el racional 10/6 $a = new Racional("10");//Crea el racional 10/6 No hace falta recoger otras situaciones no deseadas, no obstante si se hace se debería de crear el Racional 1/1
- simplifica() Simplifica si se puede numerador y denominador (Utilizar el método de Euclides (mcd))
- suma
- resta
- multiplica
- divide
- __toString
- Todos estos métodos operan con un argumento racional y retorna un Racional resultado de operarse él mismo con el racional que pasamos como argumento
//En la clase public function suma (Racional $b) { $numResultado = ....; $denResultado = .... $resultado = new Racional...... return $resultado; } ..... //En el programa que use la clase $a = new Racional("5/6"); $b = new Racional (6,4); $c= $a->sumar($b); echo "$a+$b=$c"//Me visualizará 5/6+6/4=56/24, o bien simplificado 7/3
- Operación
- Como vemos en el diagrama va a tener algún método abstracto, por lo que la vamos a considerar abstracta
- Propiedades
- Operando1 es un atributo que podrá ser real o racional, pero como en php no hay que declarar tipos, nos va bien
- Operando2 igual
- Operación será la cadena de caracteres que el usuario inserte en la caja de texto.
- Operador es el carácter que indica el tipo de operación que se quiere realizar.
- Resultado es el resultado de la operación, puede ser real o racional
- Esta clase descompondrá la operación y generará un resultado
- A continuación el código del index.php que he usado yo
- Para hacer este proyecto facilito un esqueleto con partes ya implementadas para facilitar su desarrollo y comprensión
|
