Delphi - Ayuda con Combinacion de Matriz

 
Vista:
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar (10 intervenciones) el 13/04/2019 04:16:31
Hola buen dia saludos a tod@s en la comunidad Lwp solicito ayuda en un arreglo de Matriz 3x3 con digitos al azar del 0 al 9 combinandolos entre ellos formando trios para obtener un total de 504 trios, ademas mostrar este resultado con los trios con mayor aparicion de manera descendente el numero de veces q aparecen. gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con Combinacion de Matriz

Publicado por E.T. (1199 intervenciones) el 13/04/2019 19:45:48
Es un algoritmo relativamente sencillo, aqui te dejo el codigo (necesitas 10 edits en tu form ademas de 2 listbox, para que se muestre el resultado):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
procedure TForm1.Button1Click(Sender: TObject);
var matriz: array[1..3] of array[1..3] of integer;
    matriz2: array[1..9] of integer;
    i, i2, i3, j, j2, j3, k, iCount: integer;
    sAux: string;
    Lista: TStringList;
begin
  ListBox1.Clear;
  Randomize;
 
  for i := 1 to 3 do begin
    for j := 1 to 3 do begin
      matriz[i, j] := Random(10);
    end;
  end;
 
  k := 1;
  for i := 1 to 3 do begin
    for j := 1 to 3 do begin
      TEdit(FindComponent('Edit' + IntToStr(k))).Text := IntToStr(matriz[i, j]);
      matriz2[k] := matriz[i, j];
      inc(k);
    end;
  end;
 
  for i := 1 to 9 do begin
    for j := {i + }1 to 9 do begin
      for k := {j + }1 to 9 do begin
        if (k <> i) and (k <> j) and (i <> j) then begin
          sAux := IntToStr(matriz2[i]) + ' - ' + IntToStr(matriz2[j]) + ' - ' + IntToStr(matriz2[k]);
          ListBox1.Items.Add(sAux);
        end;
      end;
    end;
  end;
  ListBox2.Items.Clear;
  Lista := TStringList.Create;
  ListBox2.Items.AddStrings(ListBox1.Items);
 
  ListBox2.Sorted := true;
  try
    while ListBox2.Items.Count > 0 do begin
      iCount := 1;
      sAux := ListBox2.Items[0];
      ListBox2.Items.Delete(0);
      while (ListBox2.Items.Count > 0) and (sAux = ListBox2.Items[0]) do begin
        ListBox2.Items.Delete(0);
        inc(iCount);
      end;
      Lista.Add(format('%.3d', [iCount]) + ': ' + sAux);
    end;
  except
    ShowMessage(IntToStr(i) + ' - ' + IntToStr(j));
  end;
  Lista.Sort;
  ListBox2.Items.Clear;
  ListBox2.Items.AddStrings(Lista);
  Lista.Free;
 
  Edit10.Text := IntToStr(ListBox1.Items.Count);
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar (10 intervenciones) el 14/04/2019 15:47:11
Gracias E.T saludos desde Venezuela.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar (10 intervenciones) el 25/04/2019 19:22:43
Hola saludos te digo que no hace nada no informa de error te muestro que coloco en el compilador

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
unit Unit1;
 
interface
 
uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs;
 
type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.DFM}
 
end.
procedure TForm1.Button1Click(Sender: TObject);
 
var matriz: array[1..3] of array[1..3] of integer;
 
    matriz2: array[1..9] of integer;
 
    i, i2, i3, j, j2, j3, k, iCount: integer;
 
    sAux: string;
 
    Lista: TStringList;
 
begin
 
  ListBox1.Clear;
 
  Randomize;
 
 
 
  for i := 1 to 3 do begin
 
    for j := 1 to 3 do begin
 
      matriz[i, j] := Random(10);
 
    end;
 
  end;
 
 
 
  k := 1;
 
  for i := 1 to 3 do begin
 
    for j := 1 to 3 do begin
 
      TEdit(FindComponent('Edit' + IntToStr(k))).Text := IntToStr(matriz[i, j]);
 
      matriz2[k] := matriz[i, j];
 
      inc(k);
 
    end;
 
  end;
 
 
 
  for i := 1 to 9 do begin
 
    for j := {i + }1 to 9 do begin
 
      for k := {j + }1 to 9 do begin
 
        if (k <> i) and (k <> j) and (i <> j) then begin
 
          sAux := IntToStr(matriz2[i]) + ' - ' + IntToStr(matriz2[j]) + ' - ' + IntToStr(matriz2[k]);
 
          ListBox1.Items.Add(sAux);
 
        end;
 
      end;
 
    end;
 
  end;
 
  ListBox2.Items.Clear;
 
  Lista := TStringList.Create;
 
  ListBox2.Items.AddStrings(ListBox1.Items);
 
 
 
  ListBox2.Sorted := true;
 
  try
 
    while ListBox2.Items.Count > 0 do begin
 
      iCount := 1;
 
      sAux := ListBox2.Items[0];
 
      ListBox2.Items.Delete(0);
 
      while (ListBox2.Items.Count > 0) and (sAux = ListBox2.Items[0]) do begin
 
        ListBox2.Items.Delete(0);
 
        inc(iCount);
 
      end;
 
      Lista.Add(format('%.3d', [iCount]) + ': ' + sAux);
 
    end;
 
  except
 
    ShowMessage(IntToStr(i) + ' - ' + IntToStr(j));
 
  end;
 
  Lista.Sort;
 
  ListBox2.Items.Clear;
 
  ListBox2.Items.AddStrings(Lista);
 
  Lista.Free;
 
 
 
  Edit10.Text := IntToStr(ListBox1.Items.Count);
 
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar (10 intervenciones) el 11/05/2019 16:33:52
Hola buen dia Amigo E.T. saludos oye te molesto para pedir que al cosigo que me enviastes le hagas una modificacion porfa la aplicacion me genera trios de manera aleatoria y no toma en cuenta los digitos que se le introducen en las casillas correspondientes, debe generar trios con los numeros indicados por el usuario no de forma aleatoria por la aplicacion, he tratado de hacer cambio pero me indica error al tratar de correrla aplicacion

begin

ListBox1.Clear;

Randomize;

for i := 1 to 3 do begin

for j := 1 to 3 do begin

matriz[i, j] := Random(10); aca he tratado de hacer los cambios. te agradezco este favor que es el que me soluciona loque solicite al abrir este post gracias de antemano.



end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar (10 intervenciones) el 25/04/2019 14:04:09
Hola buen dia E.T. utilizo tu algoritmo con mi compilador Borland Delphi y no hay resultado, algo no estoy haciendo correctamente o no se ejecutar esa informacion. Puedes revisar porfa?? gcias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con Combinacion de Matriz

Publicado por E.T. (1199 intervenciones) el 25/04/2019 17:46:35
Yo uso delphi 7 sin problema, te marca algun error en especifico?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con Combinacion de Matriz

Publicado por E.T. (1199 intervenciones) el 25/04/2019 19:49:36
Veo que eres nuevo con delphi. No basta con solo agregar el codigo. Aqui te dejo el proyecto completo
https://ufile.io/17hmggsk
Usa el boton que dice "Slow download" para descargarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar (10 intervenciones) el 25/04/2019 20:47:20
gracias man a ver si puedo hacerlo ahora y utilizar el resultado. Saludos desde Venazuela.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar Requena (10 intervenciones) el 08/05/2019 20:52:19
Hola E.T saludos compa, te comento que logre complilar el codigo que me enviastes y si trabaja como lo necesitaba eres un vergatario nan ahora me interesa agregar a esa aplicacion el poder imprimir los resultados, guardar los resultados y limpiar las casillas para nueva matriz. Ese favor mi estimado amigo y estare agradecido eternamente, Desde Venezuela un amigo incondicional.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar Requena (10 intervenciones) el 08/05/2019 22:06:36
Epale compa en el mensaje anterior manifestaba satisfaccion por el codigo que me enviases y asi es pero al usarlo me aparece el siguiente error que la aplicacion me genera trios de manera aleatoria y no toma en cuenta los digitos que se le introducen en las casillas correspondientes, debe generar trios con los numeros indicados por el usuario no de forma aleatoria por la aplicacion eso es lo que me gustaria corregir man y agregar lo que te indicaba en el otro comentario. Saludos.........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar (10 intervenciones) el 11/05/2019 16:41:29
Hola buen dia Amigo E.T. saludos oye te molesto para pedir que al codigo que me enviastes le hagas una modificacion porfa la aplicacion me genera trios de manera aleatoria y no toma en cuenta los digitos que se le introducen en las casillas correspondientes, debe generar trios con los numeros indicados por el usuario no de forma aleatoria por la aplicacion, he tratado de hacer cambio pero me indica error al tratar de correrla aplicacion

begin

ListBox1.Clear;

Randomize;

for i := 1 to 3 do begin

for j := 1 to 3 do begin

matriz[i, j] := Random(10); aca he tratado de hacer los cambios. te agradezco este favor que es el que me soluciona loque solicite al abrir este post gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con Combinacion de Matriz

Publicado por E.T. (1199 intervenciones) el 11/05/2019 18:24:19
Aqui te dejo corregido a que tome lo que el usuario ingrese, y ademas guardar las combinaciones y el resultado en un archivo de texto
https://ufile.io/l3rxwsdt
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 25
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

Ayuda con Combinacion de Matriz

Publicado por Edgar (10 intervenciones) el 11/05/2019 21:07:04
Gracias hermano eternamente agradecido un amigo x 100pre en Venezuela............
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar