FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
ayuda con busqueda de palabra en una matriz
me podrian ayudar a buscar una palabra en una matriz ya echa
Código:
unit fvector; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Grids, ExtCtrls, uvector; type { TForm1 } TForm1 = class(TForm) Bcrear: TButton; Bsetdim: TButton; Bgetdim: TButton; Bsetelem: TButton; Bgetelem: TButton; Bsalir: TButton; Button1: TButton; ponerletras: TButton; Notebook1: TNotebook; Titulo: TLabel; ele: TStringGrid; procedure BcrearClick(Sender: TObject); procedure BgetdimClick(Sender: TObject); procedure BsetdimClick(Sender: TObject); procedure BsetelemClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ponerletrasClick(Sender: TObject); procedure DrawGrid1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Notebook1ChangeBounds(Sender: TObject); private { private declarations } V:Vector; public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.BcrearClick(Sender: TObject); begin v:=Vector.Crear(); ele.ColCount:=13; ele.RowCount:=13; ShowMessage('Sopa de letras Creada...!!!'); end; procedure TForm1.BgetdimClick(Sender: TObject); begin // ShowMessage('La dimension es : '+IntToStr(v.getDim())); end; procedure TForm1.BsetdimClick(Sender: TObject); var s:string; n:integer; begin s:=InputBox('Sopa de letras','Dimension :','0'); n:=StrToInt(s); // v.setDim(n); v.set_fila(n); v.set_col(n); //v.setDim(StrToInt(InputBox('Vector','Dimension :','0'))); ele.ColCount:=v.get_col(); ele.RowCount:=v.get_fila(); //ele.FilaCount:=v.get.fila(); //ele. //v.setElem(1,d); end; procedure TForm1.BsetelemClick(Sender: TObject); var pos,pos2, elem :integer; elem1: string; elem2:string; begin pos:=StrToInt(InputBox('Sopa de letras','Columna :','0')); ///elem1:=InputBox('Sopa de letraS','Elemento :','0'); pos2:=StrToInt(InputBox('Sopa de letras','Fila :','0')); elem1:=InputBox('Sopa de LeTRAS','Elemento :','0'); //elem:=StrToInt(elem1); //v.setElem(pos,elem1); //ele.Cells[pos-1,0]:=IntToStr(elem1); ele.Cells[pos-1,pos2-1]:=(elem1); end; procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin end; procedure TForm1.ponerletrasClick(Sender: TObject); begin ele.Cells[0,0]:='e'; ele.Cells[1,0]:='a';ele.Cells[2,0]:='m'; ele.Cells[3,0]:='a'; ele.Cells[4,0]:='a'; ele.Cells[5,0]:='a';ele.Cells[6,0]:='m'; ele.Cells[7,0]:='a';ele.Cells[8,0]:='n'; ele.Cells[9,0]:='a';ele.Cells[10,0]:='x'; ele.Cells[11,0]:='z';ele.Cells[12,0]:='f'; ele.Cells[0,1]:='n'; ele.Cells[1,1]:='b';ele.Cells[2,1]:='a'; ele.Cells[3,1]:='a'; ele.Cells[4,1]:='l'; ele.Cells[5,1]:='a';ele.Cells[6,1]:='a'; ele.Cells[7,1]:='g';ele.Cells[8,1]:='a'; ele.Cells[9,1]:='ñ';ele.Cells[10,1]:='a'; ele.Cells[11,1]:='a';ele.Cells[12,1]:='a'; ele.Cells[0,2]:='e'; ele.Cells[1,2]:='o';ele.Cells[2,2]:='r'; ele.Cells[3,2]:='a'; ele.Cells[4,2]:='i'; ele.Cells[5,2]:='a';ele.Cells[6,2]:='y'; ele.Cells[7,2]:='a';ele.Cells[8,2]:='j'; ele.Cells[9,2]:='a';ele.Cells[10,2]:='a'; ele.Cells[11,2]:='a';ele.Cells[12,2]:='a'; ele.Cells[0,3]:='r'; ele.Cells[1,3]:='f';ele.Cells[2,3]:='z'; ele.Cells[3,3]:='a'; ele.Cells[4,3]:='r'; ele.Cells[5,3]:='a';ele.Cells[6,3]:='o'; ele.Cells[7,3]:='j';ele.Cells[8,3]:='u'; ele.Cells[9,3]:='n';ele.Cells[10,3]:='i'; ele.Cells[11,3]:='o';ele.Cells[12,3]:='g'; ele.Cells[0,4]:='a'; ele.Cells[1,4]:='g';ele.Cells[2,4]:='o'; ele.Cells[3,4]:='a'; ele.Cells[4,4]:='b'; ele.Cells[5,4]:='a';ele.Cells[6,4]:='a'; ele.Cells[7,4]:='a';ele.Cells[8,4]:='l'; ele.Cells[9,4]:='a';ele.Cells[10,4]:='a'; ele.Cells[11,4]:='a';ele.Cells[12,4]:='a'; ele.Cells[0,5]:='o'; ele.Cells[1,5]:='o';ele.Cells[2,5]:='a'; ele.Cells[3,5]:='a'; ele.Cells[4,5]:='a'; ele.Cells[5,5]:='a';ele.Cells[6,5]:='a'; ele.Cells[7,5]:='g';ele.Cells[8,5]:='i'; ele.Cells[9,5]:='a';ele.Cells[10,5]:='a'; ele.Cells[11,5]:='a';ele.Cells[12,5]:='a'; ele.Cells[0,6]:='f'; ele.Cells[1,6]:='o';ele.Cells[2,6]:='a'; ele.Cells[3,6]:='a'; ele.Cells[4,6]:='a'; ele.Cells[5,6]:='a';ele.Cells[6,6]:='f'; ele.Cells[7,6]:='o';ele.Cells[8,6]:='o'; ele.Cells[9,6]:='f';ele.Cells[10,6]:='a'; ele.Cells[11,6]:='a';ele.Cells[12,6]:='h'; ele.Cells[0,7]:='g'; ele.Cells[1,7]:='e';ele.Cells[2,7]:='a'; ele.Cells[3,7]:='a'; ele.Cells[4,7]:='a'; ele.Cells[5,7]:='a';ele.Cells[6,7]:='g'; ele.Cells[7,7]:='s';ele.Cells[8,7]:='a'; ele.Cells[9,7]:='a';ele.Cells[10,7]:='a'; ele.Cells[11,7]:='a';ele.Cells[12,7]:='a'; ele.Cells[0,8]:='m'; ele.Cells[1,8]:='o';ele.Cells[2,8]:='b'; ele.Cells[3,8]:='a'; ele.Cells[4,8]:='a'; ele.Cells[5,8]:='a';ele.Cells[6,8]:='a'; ele.Cells[7,8]:='t';ele.Cells[8,8]:='a'; ele.Cells[9,8]:='a';ele.Cells[10,8]:='a'; ele.Cells[11,8]:='a';ele.Cells[12,8]:='a'; ele.Cells[0,9]:='q'; ele.Cells[1,9]:='o';ele.Cells[2,9]:='a'; ele.Cells[3,9]:='r'; ele.Cells[4,9]:='a'; ele.Cells[5,9]:='a';ele.Cells[6,9]:='m'; ele.Cells[7,9]:='o';ele.Cells[8,9]:='o'; ele.Cells[9,9]:='a';ele.Cells[10,9]:='a'; ele.Cells[11,9]:='a';ele.Cells[12,9]:='k'; ele.Cells[0,10]:='s';ele.Cells[1,10]:='o';ele.Cells[2,10]:='a';ele.Cells[3,10]:='a'; ele.Cells[4,10]:='e'; ele.Cells[5,10]:='a';ele.Cells[6,10]:='a'; ele.Cells[7,10]:='a';ele.Cells[8,10]:='q'; ele.Cells[9,10]:='v';ele.Cells[10,10]:='u'; ele.Cells[11,10]:='a';ele.Cells[12,10]:='a'; ele.Cells[0,11]:='d';ele.Cells[1,11]:='o';ele.Cells[2,11]:='a';ele.Cells[3,11]:='a'; ele.Cells[4,11]:='a'; ele.Cells[5,11]:='r';ele.Cells[6,11]:='a'; ele.Cells[7,11]:='a';ele.Cells[8,11]:='a'; ele.Cells[9,11]:='a';ele.Cells[10,11]:='a'; ele.Cells[11,11]:='a';ele.Cells[12,11]:='b'; ele.Cells[0,12]:='m';ele.Cells[1,12]:='o';ele.Cells[2,12]:='a';ele.Cells[3,12]:='a'; ele.Cells[4,12]:='a'; ele.Cells[5,12]:='a';ele.Cells[6,12]:='o'; ele.Cells[7,12]:='a';ele.Cells[8,12]:='w'; ele.Cells[9,12]:='a';ele.Cells[10,12]:='s'; ele.Cells[11,12]:='e';ele.Cells[12,12]:='a'; end; procedure TForm1.DrawGrid1Click(Sender: TObject); begin end; procedure TForm1.FormCreate(Sender: TObject); begin end; procedure TForm1.Notebook1ChangeBounds(Sender: TObject); begin end; end. Código:
unit uvector; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Dialogs; Const MAX_E=1000; MAX_F=1000; MAX_C=1000; type Vector=Class private //elem:array[1..MAX_E]of string; elem:array[1..MAX_F, 1..MAX_C] of string; dim:integer; cant:Integer; nfils, ncols:integer; public constructor crear(); // procedure setDim(num:integer); // function getDim():integer; // procedure setElem(pos:integer;ele:string); // function getElem(pos:integer):string; procedure set_ele(f,c:integer;ele:string); function get_ele(f,c:integer):string; procedure set_fila(fils:integer); function get_fila():integer; procedure set_col(cols:integer); function get_col():integer; // function busquedarecto():integer; //function Pos( Substr: string; S: string ): Integer; end; implementation //constructor Vector.crear(); //var // i:integer; //begin // i:=1; // while(i<=MAX_E)do // begin // elem[i]:=' '; // i:=i+1; //end; // dim:=0; //end; constructor Vector.Crear(); var f,c:integer; begin nfils:=0; ncols:=0; cant:=nfils*ncols; for f:=1 to MAX_F-1 do begin for c:=1 to MAX_C-1 do begin elem[f,c]:=' '; end; end; end; //procedure Vector.setDim(num:integer); //begin // if(num>=0) AND (num<=MAX_E)then // dim:=num // else // ShowMessage('Vector::setDim:Fuera de Rango'); //end; //function Vector.getDim():integer; //begin // result := dim; //end; //procedure Vector.setElem(pos:integer;ele:string); //begin // if(pos>0) AND (pos<=dim)then // elem[pos]:=ele // else // ShowMessage('Vector::SetElem:Fuera de Rango...'); //end; //function Vector.getElem(pos:integer):string; //begin // if(pos>0) AND (pos<=dim)then // result:=elem[pos] // else // result:=' '; //end; procedure Vector.set_ele(f, c:integer; ele: string); begin if ((f>0) and (f<=nfils))then begin if (c>0) and (c<=ncols) then begin elem[f,c]:=' '; end else begin showmessage('Col fuera de rango'); end; end else showmessage('fila fuera de rango'); end; function Vector.get_ele(f, c: integer): string; begin if (f>0)and(f<=nfils)then begin if (c>0)and(c<=ncols)then begin result:=elem[f,c]; end else begin result:='fuera de rango '; end; end else begin result:='fuera de rango '; end; end; procedure Vector.set_fila(fils:integer); begin if ((fils>=0)and(fils<=MAX_F))then begin nfils:=fils; end else begin showmessage('fuera de rango'); end; end; function Vector.get_fila():integer; begin result:=nfils; end; procedure Vector.set_col(cols: integer); begin if (cols>=0)and(cols<=MAX_C)then ncols:=cols else showmessage('fuera de rango'); end; function Vector.get_col():integer; begin result:=ncols; end; end. |
#2
|
||||
|
||||
¿Cual es el problema?
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
gracias bro, quiero crear una funcion que me busque una palabra cualquiera dentro de esa matriz que he creado, ya estan las palabras en la matriz
|
#4
|
||||
|
||||
Bien, ¿cómo tienes pensado hacerlo? ¿qué duda tienes? ¿qué código estás usando para ello?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
no bro, tengo muy poco conocimiento y lo tengo que presentar en estos dias ayudamee , me falta solo ese algoritmo, tengo que buscar la palabra "enero" por ejemplo de izquiera a derecha arriba abajo, y de costado
|
#6
|
||||
|
||||
No revise tu codigo detenidamente pero segun tu primera pregunta "'me podrian ayudar a buscar una palabra en una matriz ya echa"
estoy suponiendo que es una matriz de dos dimensiones asi que arme un pequeno codigo donde busco una palabra dentro dentro de un array dinamico de dos dimensiones, espero sea lo que buscas o sirva para resolver tu duda
|
#7
|
||||
|
||||
Bueno, si todavía tienes varios días de plazo entonces estás a tiempo, eso es algo que lo haces en un rato.
Aquí estamos para ayudarnos entre todos, pero no hacemos el trabajo de los demás, y mucho menos porque no aprenderás. Piensa un poco y haz una propuesta de cómo se puede hacer, nosotros te iremos corrigiendo y ayudando a solucionarlo.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
||||
|
||||
Cita:
Ahora bien, como se resuelve esto (y todo lo demas)? 1- Hasta que llegue el dia en que tengas la fluidez de hacerlo en tu cabeza de forma natural: Coje lapiz y papel (o una hoja de excel), haz un dibujo de los datos y haz un paso a paso de como es el proceso de encontrar el datos. Cuando tengas claro eso: 2- Pasa a codigo lo que hiciste. Cada vez que encuentres un bloqueo (ej: Y como dimensiono esta matriz?) Busca eso en google. Es contra-producente que copies-pegues el codigo de otro.... eso solo funciona cuando alcanzas la habilidad de, en tu mente, saber exactamente que hace cada linea de codigo y porque. Hasta que llegue ese dia, es MIL VECES MEJOR que siempre escribas cada linea, de tu propio esfuerzo, a conciencia de lo que haces. Ej: "Ok, ya tengo los datos en la matriz, ahora debo recorrerla. Para eso, arranco colocando un FOR. MMM... hasta que posicion debo ir? A, hasta la ultima... Cual es la ultima?" osea = esto hazlo en tu mente, como si conversaras contigo mismo. O usa un peluche pa hablarle. O coje a un amigo, un familiar y le vas contando. No creas que digo lo anterior como broma: MUY EN SERIO. Cuando uno esta pegado, de lo mejor que se puede hacer es empezar a hablar con otro peluche/amigo/conocido/la mente... Si solo copias y no conversas, sera un esfuerzo inutil y eternamente quedaras con la impresion de "y esto porque fue asi"? 3- Luego da un paso a paso del codigo con el depurador de Delphi y confirma si concuerda lo que escribiste con lo que quisiste escribir. 4- Una vez que hayas echo esto, comparte lo que lograste (o fallaste!) y de forma concreta, pregunta en donde quedaste bloqueado.
__________________
El malabarista. Última edición por mamcx fecha: 01-11-2015 a las 01:21:00. |
#9
|
||||
|
||||
Vaya decepcion, creia que era el unico trastornado que habla consigo mismo
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda con una busqueda | servicomp | Conexión con bases de datos | 6 | 17-11-2009 17:02:47 |
Ayuda en busqueda con SQL! | rod203 | SQL | 3 | 28-04-2008 21:25:30 |
Leer fichero texto palabra por palabra... | Lester | Varios | 2 | 03-04-2007 16:28:27 |
Leer palabra por palabra en Word | solecito | Servers | 0 | 12-03-2007 21:58:13 |
|