Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Reconociendo caracteres en un memo (https://www.clubdelphi.com/foros/showthread.php?t=40115)

alastor 07-02-2007 18:05:09

Reconociendo caracteres en un memo
 
Hola Amigos:
----------------
Mi problema es el siguiente: Estoy tratando de hacer un prog que me ayude a descomponer un trinomio en factores. Pero el problema es que quiero hacerlo utilizando un memo y no encuentro la manera de reconocer en todo lo que escriba en el cuales son el termino cuadrático, el termino lineal y el termino independiente. Si alguien pudiera ayudarme se lo agradeceria.
------------------
Saludos.

Albano 07-02-2007 19:14:52

Las lineas de un combo son de tipo strnig, que se le puede definir como arreglo o conjunto de caracteres, entonces, el reconocimiento de caracteres lo puedes manejar de la siquiente manera:
Supongamos que tienes el texto "Memo1" en la primera línea del memo1, puedes buscar un número en esta cadena con el siguiente código:
Código Delphi [-]
for i := 1 to length(memo1.Lines[0]) do
  begin
    if memo1.Lines[0][i] in ['0'..'9'] then     //el "0" nos indica la linea del memo, el primero siempre es 0, la letra i nos indica la posicion de la cadena
    begin
      label1.Caption := memo1.Lines[0][i];
      label2.Caption := inttostr(i);
    end;
  end;
Este código identifica dónde esta el caracter numérico y luego lo muestra en una etiqueta llamada label1 y su posición la muestra en la etiqueta llamada label2.
Creo que esto es lo que necesitas en cuanto a programación se refiere.
Espero haber sido de ayuda.

Lepe 07-02-2007 19:40:52

¿como pretendes escribir el trinomio?

Me explico: Si tienes en el memo:
Código:

3x^2 + 33x + 21
Hay que abordar el problema de una forma.

Si lo tienes como:
Código:

3
+33
+ 21

puede resultar más fácil

Saludos

alastor 07-02-2007 20:05:03

El trinomio lo tengo de la primera manera lo que : X²+x+1 por ejemplo donde el x² sale por char(0178).

alastor 07-02-2007 20:07:03

Albano, muchas gracias por la idea del "in", me ha servido de mucho a la hora de reconocer si es numero o letra.
-------------------
Saludos

Albano 07-02-2007 20:57:37

Cita:

Empezado por alastor
Albano, muchas gracias por la idea del "in", me ha servido de mucho a la hora de reconocer si es numero o letra.

Por nada.
De esa manera puedes identificar cada caracter en la linea del memo que desees y descomponer el trinomio de acuerdo con las caracteristicas de cada término, por ejemplo, si quieres encontrar el cuadrado, solo tienes que buscar el "²" y retroceder en la cadena hasta que te encuentres un "+" o un "-" y ese sería el término cuadrático. Ya que encuentras el cuadrático, puedes buscar el lineal, de acuerdo con la letra que te encuentres dentro del cuadrático y el que te sobre sería el independiente... te voy a poner mi idea a grandes rasgos para encontrar el término cuadrático, debe de haber algunas exepciones en las que no funcionaría, sería cuestión de arreglarlo...
Código Delphi [-]
if memo1.Lines[0][i] = '²' then   
  begin     
    j := i;    //a la variable "j" le asigno la posición del caracter "²" para empezar a formar mi cadena
    aux := '';     
    while not(memo1.Lines[0][j] in ['+', '-']) do  //repetirá este ciclo hasta que se tope con un "+" o un "-"     
    begin        
      aux := memo1.Lines[0][j] + aux;    //se está almacenando el termino en una variable de tipo string llamada aux       
      dec(j);    //decremento el valor de j en 1, para retroceder en la cadena     
    end;   
  end;
end;

alastor 07-02-2007 22:13:41

Muchisimas gracias por sus ideas, espero no tener mas dirficultades.
-----------------
Saludos


La franja horaria es GMT +2. Ahora son las 16:48:31.

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