Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   hola! necesito 1 codigo :P (https://www.clubdelphi.com/foros/showthread.php?t=50150)

egostar 09-11-2007 20:50:56

Cita:

Empezado por kbaby (Mensaje 245007)
Cambie INTTOSTR por FLOATTOSTR y funciona... no me acorde que X e Y son Reales ... lo siento ! ^^ Pero ahora sigue lo del error del semicolon T.T

Missing operator or semicolon

Muy bien, te felicito, solo te falta un ; al final de cada una de las operaciones.

Salud OS

kbaby 09-11-2007 20:54:00

Hola de nuevo, ya vi el fallo los ; dichosos ! Bueno, para probarla puse:

A=1
B=1
C=1

y me dio error, tal que... SE CERRO EL PROGRAMA XD Y PERDI TODO (menos mal que guarde el codigo antes xD).
¿Por qué? Pruébalo porfavor:

VAR a,b,c,d:integer;
x,y:real;
begin
a:=STRTOINT(edit1.text);
b:=STRTOINT(edit2.text);
c:=STRTOINT(edit3.text);
x:=(-b + (SQRT(SQR(b) - 4*a*c))/(2*a));
y:=(-b - (SQRT(SQR(b) - 4*a*c))/(2*a));
edit4.text:=floattostr(x);
edit5.text:=floattostr(y);
end;


Muchas gracias de verdad.

Caral 09-11-2007 20:57:43

Hola
Muy impresionante, te felicito.
El problema lo tienes aqui:
Código Delphi [-]
x:=(-b + (SQRT(SQR(b) - 4*a*c))/(2*a));
y:=(-b - (SQRT(SQR(b) - 4*a*c))/(2*a));
saludos

kbaby 09-11-2007 21:02:33

Es el mismo codigo o.O creo que no viste el ultimo POST, lo habia corregido ya antes ^^ pero gracias. O alomejor me equivoco, te refieres a los ;

egostar 09-11-2007 21:05:25

Cita:

Empezado por kbaby (Mensaje 245018)
Hola de nuevo, ya vi el fallo los ; dichosos ! Bueno, para probarla puse:

A=1
B=1
C=1

y me dio error, tal que... SE CERRO EL PROGRAMA XD Y PERDI TODO (menos mal que guarde el codigo antes xD).
¿Por qué? Pruébalo porfavor:

Es que el ahora vienen las complicaciones, hay que validar el resultado del elemento dentro de la raiz cuadrada, si regresas a mensajes anteriores roberto01 te puso un link a esto que estamos tratando y valida eso precisamente. Estudialo detenidamente porque esta un poco complejo, pero ahi esta la respuesta.

Intenta con estos valores que no te darán error

a=1
b=-5
b=6

El resultado debera ser

x=3
y=2

Salud OS

kbaby 09-11-2007 21:09:05

¿Por qué Señor, por qué yo :eek:?

X=5,5
Y=4,5

¿Por qué soy tan... tonto...?

Nada.. supongo que es un error de calculo en: x:=(-b + (SQRT(SQR(b) - 4*a*c))/(2*a));

¿No?

egostar 09-11-2007 21:19:05

Cita:

Empezado por kbaby (Mensaje 245028)
¿Por qué Señor, por qué yo :eek:?

X=5,5
Y=4,5

¿Por qué soy tan... tonto...?

Nada.. supongo que es un error de calculo en: x:=(-b + (SQRT(SQR(b) - 4*a*c))/(2*a));

¿No?

Ahh ya veo el error,

x:=(-b + (SQRT(SQR(b) - 4*a*c))/(2*a));

cambia por esto

x:=(-b + (SQRT(SQR(b) - (4*a*c)))/(2*a));

Salud OS

kbaby 09-11-2007 21:31:52

Muahaha sigue igual, maldita calculadora xD sigue igual jaja no se que le pasara. Siento darte dolor de CABEZA :p

PD: Hice el post despues de ver el edit ok? :P
PD2: Eso ya lo habia visto yo, lo del ) ... :P estoy aqui con la ecuacion en un papel, viendo en que falla el asunto xD, si me vieras, tengo todo con goma de borrar xD.

egostar 09-11-2007 21:38:06

Cita:

Empezado por kbaby (Mensaje 245046)
Muahaha sigue igual, maldita calculadora xD sigue igual jaja no se que le pasara. Siento darte dolor de CABEZA :p

PD: Hice el post despues de ver el edit ok? :P
PD2: Eso ya lo habia visto yo, lo del ) ... :P estoy aqui con la ecuacion en un papel, viendo en que falla el asunto xD, si me vieras, tengo todo con goma de borrar xD.

Pues mira, he ido probando lo que haces y tengo esto en mi código. Checa si hay alguna diferencia.

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  a,b,c : integer;
  Resultado: Real;
begin
  a := strtoint(Edit1.Text);
  b := strtoint(Edit2.Text);
  c := strtoint(Edit3.Text);
  Resultado := (-b + (sqrt(sqr(b)-(4*a*c)))) / (2*a);
  ShowMessage(FloattoStr(Resultado));
  Resultado := (-b - (sqrt(sqr(b)-(4*a*c)))) / (2*a);
  ShowMessage(FloattoStr(Resultado));
end;

Salud OS

Edito:

:D:D:D, veo que te está faltando un ) eso es un error común, no te aflijas, para cada ( debes tener un ).

kbaby 09-11-2007 21:42:35

Cita:

Empezado por egostar (Mensaje 245054)
Pues mira, he ido probando lo que haces y tengo esto en mi código. Checa si hay alguna diferencia.


Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
var
a,b,c : integer;
Resultado: Real;
begin
a := strtoint(Edit1.Text);
b := strtoint(Edit2.Text);
c := strtoint(Edit3.Text);
Resultado := (-b + (sqrt(sqr(b)-(4*a*c)))) / (2*a);
ShowMessage(FloattoStr(Resultado));
Resultado := (-b - (sqrt(sqr(b)-(4*a*c)))) / (2*a);
ShowMessage(FloattoStr(Resultado));
end;





Salud OS

Edito:

:D:D:D, veo que te está faltando un ) eso es un error común, no te aflijas, para cada ( debes tener un ).

Pregunta 1: ¿de dónde sale y para que es: ShowMessage(FloattoStr(Resultado));? se lo tengo luego que explicar al profesor xD.
Pregunta 2: ¿No usas la X ni la Y?

Voy a probarlo, ahora te cuento ^^

egostar 09-11-2007 21:46:53

Cita:

Empezado por kbaby (Mensaje 245058)
Pregunta 1: ¿de dónde sale y para que es: ShowMessage(FloattoStr(Resultado));? se lo tengo luego que explicar al profesor xD.
Pregunta 2: ¿No usas la X ni la Y?

Voy a probarlo, ahora te cuento ^^

Bueno, no uso la X ni la Y porque no quise usar otros edit's, tu cambia Resultado por X y Y donde corresponda.

El ShowMessage lo uso para mostrar en una pantalla el resultado, no lo uses ahora, mejor dale una leida a la ayuda para que veas de que se trata, después lo usaras mucho.

Salud OS

kbaby 09-11-2007 21:49:11

Diferencias que encuentro:

1-> En procedure yo tengo puesto: procedure TForm1.Button1Click(Sender: TObject);

2-> Modifique mi código y puse este:
VAR a,b,c:integer;
x,y:real;
begin
a := strtoint(Edit1.Text);
b := strtoint(Edit2.Text);
c := strtoint(Edit3.Text);
x:= (-b + (sqrt(sqr(b)-(4*a*c)))) / (2*a);
y:= (-b - (sqrt(sqr(b)-(4*a*c)))) / (2*a);
edit4.text:=floattostr(x);
edit5.text:=floattostr(y)



*Copiandome del tuyo :P*

Me saleeee ^^ xD Dios muchas gracias ^^

PD: Explicame eso del procedure plz !! ^^

egostar 09-11-2007 21:55:05

Cita:

Empezado por kbaby (Mensaje 245067)
Diferencias que encuentro:

1-> En procedure yo tengo puesto: procedure TForm1.Button1Click(Sender: TObject);

2-> Modifique mi código y puse este:
VAR a,b,c:integer;
x,y:real;
begin
a := strtoint(Edit1.Text);
b := strtoint(Edit2.Text);
c := strtoint(Edit3.Text);
x:= (-b + (sqrt(sqr(b)-(4*a*c)))) / (2*a);
y:= (-b - (sqrt(sqr(b)-(4*a*c)))) / (2*a);
edit4.text:=floattostr(x);
edit5.text:=floattostr(y)



*Copiandome del tuyo :P*

Me saleeee ^^ xD Dios muchas gracias ^^

PD: Explicame eso del procedure plz !! ^^

Bueno, tú estas usando un botón que está en la carpeta STANDARD y yo estoy usando el botón que está en la carpeta ADDITIONAL, es solo eso.

Salud OS

PD. Para que tu código se vea bien usa la etiqueta de delphi que verás en el menu de opciones cuando estas escribiendo un mensaje con el icono tipico de Delphi.

Código Delphi [-]
VAR 
   a,b,c:integer;
   x,y:real;
begin
   a := strtoint(Edit1.Text);   
   b := strtoint(Edit2.Text);
   c := strtoint(Edit3.Text);
   x:= (-b + (sqrt(sqr(b)-(4*a*c)))) / (2*a);
   y:= (-b - (sqrt(sqr(b)-(4*a*c)))) / (2*a);
   edit4.text:=floattostr(x);
   edit5.text:=floattostr(y)
end;

Ves la diferencia ?

kbaby 09-11-2007 22:12:07

Vale, antes lo estaba buscando y no lo veia, pero ya si. Gracias ! Continuare comentando dudas, asi que de mi no te libras :cool:;):p.


Muchas gracias, aunque lo del procedure, lo entendi a medias. Abro otro tema para otro problema diferente a esto :P ^^

Gracias !

kbaby 09-11-2007 22:14:44

Entendido lo del boton, ya vi :P gracias xD fue tocando, como aprendi ^^

maco2007 09-11-2007 22:20:56

Cita:

Empezado por egostar (Mensaje 244963)
Muy buena, :rolleyes: pero dificilmente la entendi yo, recuerda que es un muchacho de 14 años :D:D:D

Salud OS


Hola soy maximiliano y tengo 14 años igual y entendi muy bien esa instrucción yo programo hace 5 años atras con DELPHI 7 ahora toy aprendiendo usar DELPHI for NET y C# voy avanzado jejejjee........:D:D:D:D:D:D y hasta cree mi propio programa de codigo de barra
barcodemx08.blogspot.com jejejje

maco2007 09-11-2007 22:24:15

.........

xD

ixMike 10-11-2007 14:31:54

Hola. Veréis, quisiera comentar un par de cosillas.

• La primera es que pienso que habéis tratado al chaval (kbaby) de forma un tanto.... desagradable. Desde un principio ha dejado claro que el problema era la programación, y no las mates. Además, ha dicho que era novato, no que sea idiota o no que no quisiera aprender (también ha dicho que se tiró un par de horas intentando dar con la solución). Quizás su mayor error ha sido no leerse la guía de estilo (o leerla y no hacerle caso).

• ¿De verdad que das programación en Delphi en el colegio (supongo que instituto) a las 14 años? No sé, me parece extraño. ¿De dónde eres?

• Aquí son los adultos los que han cometido los mayores errores (matemáticos), de los que quizás su profesionalidad los ha salvado. ¿Cómo que nadie sabía hacer ecuaciones de segundo grado? ¿Todos de verdad la han buscado en Google? ¿Nadie tenía clase de matemáticas en la carrera?

Por ejemplo, no recuerdo quién ha dicho que las ecuaciones de 2º grado tienen esta forma: a*x^a + b*x + c = 0. Supongo que ahí hay error tipográfico, pues "de segundo grado" equivale a decir "grado 2", que es el mayor exponente de la variable, es decir a*x^2 + b*x + c = 0.

Luego también se ha dicho:
"Creo que aqui hay un pequeño error

La ecuación sería así no Delphius

x = (-b +- (Raiz(b^2 - 4*a*c))/(2*a))

x1 = (-b + (Raiz(b^2 - 4*a*c))/(2*a))
x2 = (-b - (Raiz(b^2 - 4*a*c))/(2*a))"

Primero, "no Delphius" vendría entre signos de interrogación, ¿no?, y segundo, la ecuación de Delphius y la que ahí está escrita son exactamente iguales. Pero claro, para saberlo hay que saber un mínimo de matemáticas (el que tienen los de 6º de primaria es España, pues para darse cuenta sólo hay que hacer una suma de fracciones con el mismo denominador).

• Tranquilo, kbaby, yo también empecé jovencito con Delphi (a los trece, ahora tengo 18), aunque no por que me obligaran en el cole, sino por afición. También cometía errores que ahora me parecen ridículos, pero poco a poco (en realidad mucho más rápido de lo que parece o se imagina) vas aprendiendo programación, hasta que te conviertes sin darte cuenta en el que está ayudando a un chaval a resolver un pequeño problemilla con ecuaciones de 2º grado. ;)

• maco2007, ¿de verdad llevas 5 años con Delphi 7? ¿Tan vieja es ya esa versión? Y yo utilizando la 3 standar.... ¡Mamma mía! Sin TActionList, ni componentes de internet, ni Anchors, ni Int64, ni un montón de cosas más... :( ... Ahora en serio, sigue así ;)

Bueno, espero que nadie se sienta ofendido con este post.


Saludos.


Edito: Acabo de recordar otro fallo que he visto, donde se pedía que kbaby cambiara "- 4*a*c" por " - (4*a*c)"... ¿Por qué a kbaby le daba el mismo resultado?. Porque:
- Matemáticamente: Las multiplicaciones se deben realizar antes que la resta.
- Informáticamente: El compilador se encargará de que el programa efectúe primero la multiplicación, y después la resta (es decir, tiene en cuenta una prioridad de operadores).

Delphius 10-11-2007 16:57:03

Cita:

Empezado por ixMike (Mensaje 245204)
Hola. Veréis, quisiera comentar un par de cosillas.

• La primera es que pienso que habéis tratado al chaval (kbaby) de forma un tanto.... desagradable. Desde un principio ha dejado claro que el problema era la programación, y no las mates. Además, ha dicho que era novato, no que sea idiota o no que no quisiera aprender (también ha dicho que se tiró un par de horas intentando dar con la solución). Quizás su mayor error ha sido no leerse la guía de estilo (o leerla y no hacerle caso).

Reconozco que estuve cortante. Y si se ha sentido ofendido kbaby, mis más sinceras disculpas.
Admito que mis palabras fueron subidas de tono. Fue un error y no supe canalizar correctamente las ideas.

Si fuí así se debió a que me ha costado aceptar la idea y percepción del problema. Es natural que haya conocido ecuaciones de segundo grado, a los 14 años el tema debió haberse visto. Por simple que sea problema, lo natural es que si se aprende a realizar sumas, el procedimiento para conseguir una ecuación resulte análogo.

El código que venía trabajando kbaby es sencillo, obtenía los valores mediante IntTostr() y luego realizaba la operación. De igual manera se consigue con la fórmula de la ecuación de segundo grado, unicamente habría que cambiar IntToStr por FloatToStr.

No hay demasiada ciencia. Y ya kbaby contaba con el conocimiento de como obtener la raiz cuadrada. El mismo ya lo había dicho. Por tanto considero que si se aprende a realizar las operaciones elementales, se puede escribir las fórmulas para ello. Solo sería cuestión de "concatenar" las operaciones en la forma correcta.


Cita:

Empezado por ixMike (Mensaje 245204)
• Aquí son los adultos los que han cometido los mayores errores (matemáticos), de los que quizás su profesionalidad los ha salvado. ¿Cómo que nadie sabía hacer ecuaciones de segundo grado? ¿Todos de verdad la han buscado en Google? ¿Nadie tenía clase de matemáticas en la carrera?

Por ejemplo, no recuerdo quién ha dicho que las ecuaciones de 2º grado tienen esta forma: a*x^a + b*x + c = 0. Supongo que ahí hay error tipográfico, pues "de segundo grado" equivale a decir "grado 2", que es el mayor exponente de la variable, es decir a*x^2 + b*x + c = 0.

Luego también se ha dicho:
"Creo que aqui hay un pequeño error

La ecuación sería así no Delphius

x = (-b +- (Raiz(b^2 - 4*a*c))/(2*a))

x1 = (-b + (Raiz(b^2 - 4*a*c))/(2*a))
x2 = (-b - (Raiz(b^2 - 4*a*c))/(2*a))"

Primero, "no Delphius" vendría entre signos de interrogación, ¿no?, y segundo, la ecuación de Delphius y la que ahí está escrita son exactamente iguales. Pero claro, para saberlo hay que saber un mínimo de matemáticas (el que tienen los de 6º de primaria es España, pues para darse cuenta sólo hay que hacer una suma de fracciones con el mismo denominador).

Es cierto, y no me he dado cuenta. Se trata de un error tipográfico y sabiendo que soy disléxico debí prestar mayor atención, lo escribí al vuelo... de memoria. La intención es que kbaby pudiera percibir lo simple de su problema, no darle clases de mátemáticas. Y además considero que si se dudaba de la ecuación tenía a su disposición un enlace hacia una fuente que dentro de todo es fiable.


Cita:

Empezado por ixMike (Mensaje 245204)
Bueno, espero que nadie se sienta ofendido con este post.

A mi no me molesta mucho. He reconocido mis errores, pero como ya he dicho no han sido realizados con intención. Un error lo puede cometer cualquiera, pero considero que tampoco la maneras en que me "atacas" tampoco está bien.

Bueno, ya lo dicho. Si es necesario disculparme por esto, y sobre todo por este post, bueno... me disculpo. No me molesta reconocer que tuve errores, lo comete cualquiera pero no es adecuado venir a decir que lo que me salvó fué "profesionalismo" y con ello quedo eximido de culpa. Me señalaste el error, listo... pero no me ataques de ese modo. Es lo único que me ha molestado. ¿No te ha bastado con decirme "disculpa... veo un error"? ¿Era necesario venir a promulgar que "por profesionalismo lo dejamos pasar"?

Mike, no tengo problemas contigo, no te conozco demasiado en estos foros. De hecho, considero que ha sido noble de tu parte el querer hacer lo posible para despejar las dudas y aclarecer el panorama que le acomplejaba a kbaby. No pretendo atacarte, sólo hacerte notar que tampoco tu estuviste demasiado bien.

Saludos,

kbaby 10-11-2007 18:57:49

Hola ^^ Bueno... IxMikel gracias por escribir la cantidad de palabras para explicar todo, porque eso se agradece, porque yo tardaría siglos y centenarios. Y respondiendo a tus preguntas, tengo 14 años, pero estoy en 1º de Bachiller de cientifico-tecnico porque en primaria me adelantaron 2 cursos. Soy de granada y estudiare Astrología o Ciencias exactas, aunque no lo tengo definido aún. Gracias por resaltar como fue la realidad, y te lo agradezco. Tambien agradezgo a egostar todo lo que se comio la cabeza conmigo que soy un ... noob en eso :rolleyes:.

Voy a subir a internet mi programa, para que veais mas o menso como me quedo, y sera lo que presentaré en el colegio. Un saludo :)


La franja horaria es GMT +2. Ahora son las 06:45:37.

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