Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2007
Avatar de gerupc
gerupc gerupc is offline
Miembro
 
Registrado: jul 2007
Ubicación: Universidad de Deusto
Posts: 61
Poder: 17
gerupc Va por buen camino
Exclamation Problema con ejercicio en Delphi

Hola,

estoy haciendo unos ejercicios en Delphi para la Universidad, y tengo algún problema con ellos. Es uno que ya comenté en un post hace una semana o así, pero repasando, me he dado cuenta de que me falla una cosa...

Os comento; tengo que realizar una división sin dividir ;-), es decir, haciendo la operación mediante restas sucesivas. Como ya he dicho, escribí sobre una duda que tenía y me ayudaron a resolverla. Pero ahora, me he dado cuenta de que tengo un problema con una variable. Con la variable dividendo, fijaos, hallo el cociente y el resto de la división, de la siguiente manera:
Código Delphi [-]
 if opcion = 2 then
          Begin
              Write('Introduce el dividendo: ');
              readln(dividendo);
              Write('Introduce el divisor: ');
              readln(divisor);
                  cociente := 0;
                  while divisor <= dividendo do
                    Begin
                       dividendo := dividendo - divisor; //Resto porque se detiene cuando la condicion no se cumpla
                       cociente := cociente + 1 //Va a repetirse tantas veces como vueltas dé el Bucle
                    end;
              writeln('El cociente de ',dividendo,' entre ',divisor,' es igual a ',cociente,' y el resto ',dividendo);
              readln;
          end;

Y claro, a la hora de presentar el resultado, me surje un conflicto con la variable dividendo, ya que presenta el resto cuando la uso para el cociente (antes del último end). No me permiten hacer este ejercicio con funciones, asi que ha de ser de esta manera.

He intentado el declarar alguna especie de variable dentro del bucle...pero nada no lo he conseguido, asi que si alguien me pudiese echar una mano, se lo agradecería mucho.

Un saludo,

Geru.
__________________
Mi Blog
---------------------
Universidad de Deusto
ESIDE-Escuela Superior de Ingenieros Deusto
Responder Con Cita
  #2  
Antiguo 11-08-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Mmm... veamos... si mal no te entendi... tu problema es q estas dividiendo por ejemplo 31 en 5 y te presenta este mensaje:

"El cociente de 1 entre 5 es igual a 6 y el resto 1"

Bueno si te pones a ver es logico q eso suceda ya q estas usando una misma variable... por ello te recomiendo hacerlo de la siguiente manera:
Código Delphi [-]
if opcion = 2 then
          Begin
              Write('Introduce el dividendo: ');
              readln(dividendo);
              Write('Introduce el divisor: ');
              readln(divisor);
                  resto := dividendo; //Declaras una variable "resto" q guarda el valor
                  cociente := 0;
                  while divisor <= resto do //Corrijo Aqui... y perdon por el error
                    Begin
                       resto := resto - divisor; //Resto porque se detiene cuando la condicion no se cumpla
                       cociente := cociente + 1 //Va a repetirse tantas veces como vueltas dé el Bucle
                    end;
              writeln('El cociente de ',dividendo,' entre ',divisor,' es igual a ',cociente,' y el resto ',resto);
              readln;
          end;

Y con eso cuando presentes el mensaje te saldrá bien... si no es eso lo q te sucede pues entonces corrigeme y veo como puedo ayudarte...

{Saludos}

Última edición por b3nshi fecha: 11-08-2007 a las 21:29:07. Razón: Por correccion de Delphius... muchas gracias!
Responder Con Cita
  #3  
Antiguo 11-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
b3nshi, tu código tiene un error, formaste un bucle infinito. Fijate bien...

Aunque el problema se resuelve como dices: Empleando una variable auxiliar que tome el valor del dividendo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 11-08-2007
Avatar de gerupc
gerupc gerupc is offline
Miembro
 
Registrado: jul 2007
Ubicación: Universidad de Deusto
Posts: 61
Poder: 17
gerupc Va por buen camino
Exclamation

Hola,

muchas gracias por vuestra ayuda!!! Pero eso ya lo había intentado, me deja compilarlo, pero en el momento en el que introduzco el divisor, se detiene, ahí se queda sin seguir adelante, ¿porqué puede ser?

Un saludo y gracias otra vez!

Geru.
__________________
Mi Blog
---------------------
Universidad de Deusto
ESIDE-Escuela Superior de Ingenieros Deusto
Responder Con Cita
  #5  
Antiguo 11-08-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Listo! Ahora si no me di cuenta de cambiar tambien la variable en la condicion del while...

Gracias delphius por la correcion...

Y al momento de ingresar el divisor no es q se detenga... en el codigo q habia escrito anteriormente no cambiaba la condicion, por lo q como dijo delphius quedaba un bucle infinito.

Prueba cambiando la condicion como la puse en la correcion y dime q sucede... si no funciona te sigo ayudando... pero no deberia haber ningun problema...

{Saludos}

Última edición por b3nshi fecha: 11-08-2007 a las 21:33:24.
Responder Con Cita
  #6  
Antiguo 11-08-2007
Avatar de gerupc
gerupc gerupc is offline
Miembro
 
Registrado: jul 2007
Ubicación: Universidad de Deusto
Posts: 61
Poder: 17
gerupc Va por buen camino
Smile

Hola,

perfecto, muchísimas gracias por tu ayuda!! ahora si que si...menudo fallo, claro!!

Un saludo,

Geru.
__________________
Mi Blog
---------------------
Universidad de Deusto
ESIDE-Escuela Superior de Ingenieros Deusto
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ayuda con un ejercicio por favor! Albert0 JAVA 1 19-06-2007 18:29:00
Ejercicio Solarintg Varios 1 02-12-2006 15:48:07
Ejercicio:hacer El Árbol GenealÓgico De Esta Familia FunBit Humor 0 01-12-2005 17:49:51
Cómo repercute el ejercicio en el trabajo Al González Debates 11 15-03-2005 12:35:22
Razones para hacer (o no hacer) ejercicio Nuria Humor 1 02-09-2004 13:05:43


La franja horaria es GMT +2. Ahora son las 19:11:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi