Problema programación 1º de DAM.

Vikkktor

Buenas, me han puesto un problema en el instituto y tengo una duda, a ver si me la podéis resolver.
Os escribo el enunciado del ejercicio:

Crea la clase OperacionesMatematicas, que contenga el método "cociente", que calcula el cociente entero del Operador 1 y el Operador 2 por medio de restas sucesivas, se comprobará que los números sean no negativos.

publica clase OperacionesMatematicas;
{
         publica entero Operador1;
         publica entero Operador2;
         publica entero cociente();
	 {
	     entero i;
		 entero acumulador=0;
		 Si(Operador1>=0) y (Operador2>=Operador1);
		 {
		     para (i=0, Operador2-i<Operador1, i=i+Operador1);
			 {
			     acumulador=acumulador+1;
			 }
		 }
		 Si no
		 {
		 Aquí está el problema, no sé que ocurre si los números son negativos.
		 }
		 retornar acumulador;
	 }
}

Os agradecería mucho el aporte, por cierto, el resto del código es de cosecha propia, corregidlo si veis fallos.

Muchas gracias.

BLZKZ

[ code] [/ code] está para usarlo -.-"

Si son negativos es que has terminado

Vikkktor

editado, sorry nunca había posteado código.

si introduzco numero negativos tiene que pasar algo, hay que retornar algo, no sé...

podría ser un:

si no
{
escribir "El número debe ser positivo";
} 
Zapador

Pero comprobar que el número sea no negativo lo harás cuando leas lo introducido por el usuario, hasta que no introduzca un número positivo no invocas al método.

elkaoD

Gñé. Menudo pseudocódigo. Para eso que usen Java...

#1 necesitas también dividir números negativos?

1
eXtreM3

Pone que se comprobará que los números sean no negativos, así pues

publica clase OperacionesMatematicas;
{
         publica entero Operador1;
         publica entero Operador2;
         publica entero cociente();
         {
             entero i;
                 Si(Operador1>0) y (Operador2>0);
                 {
                 //Entramos si ambos numeros son no negativos.
                 entero acumulador=0;
                 Si(Operador1>=0) y (Operador2>=Operador1);
                 {
                     para (i=0, Operador2-i<Operador1, i=i+Operador1);
                         {
                             acumulador=acumulador+1;
                         }
                 }
                 retornar acumulador;
                 }
                 Si No();
                 {
                 //Introduce números positivos please!
                 }
         }
}
1 respuesta
elkaoD

#6 creo que lo tenía mejor hecho él. Tus IFs son redundantes y comprueban de más (el numerador sí puede ser cero.)

#1 si con se comprobará que los números sean no negativos. tu profesor se refiere a que no haya números negativos entonces no entiendo el post xD

1 respuesta
eXtreM3

#7 joder, se me ha ido la pinza ahí de buena mañana xDDD Puto pseudocódigo, bueno lo importante es comprobar que los números sean positivos y que el dividendo sea mayor que 0, después de eso las iteraciones con las restas.

CCiRviNe

En mi caso se hacia que se devuelva un valor que no entre en el rango, como por ejemplo:

 Si No {
retornar -1
}

Y la parte que se encarga de presentar los datos es la que debe procesarlo. Si el resultado es mayor o igual que cero lo muestra, si no, pide que se reintroduzcan los datos o cualquier cosa de esas.

De todas formas el codigo ese si es del profesor...

  • Si pone Operador1 y Operador2 ya no me gusta, no sabe lo que es el dividendo y el divisor? O no le han enseñado que hay que nombrar bien las variables?
  • Compara el dividendo con 0? Le gustan los bucles?
  • Solo va a entrar en el para si el divisor es menor que el dividendo, por lo que siempre va a devolver 0

Usuarios habituales

  • CCiRviNe
  • eXtreM3
  • elkaoD
  • Zapador
  • Vikkktor
  • BLZKZ