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 19-04-2015
franco_cvm franco_cvm is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 20
Poder: 0
franco_cvm Va por buen camino
[Delphi] Matriz, encontrar el menor de cada fila.

Hola, tengo una matriz de m*n y, como dice el titulo, me pide encontrar el numero menor de cada fila.

Lo intente hacer, use dos botones (por las dudas de que con uno no me deje), al apretar el primero me carga valores en un stringgrid, el segundo boton, es para que en un memo me muestre el valor mas chico de cada fila, pero el segundo boton no anda.

aca el codigo:
Código Delphi [-]
const
n=10;
m=6;
type
Tmatriz= array [1..n, 1..m] of integer;
var
matriz:Tmatriz;

procedure TForm1.Button1Click(Sender: TObject);
var
i,j: integer;
begin

 for i:= 1 to n do
  begin
   for j:= 1 to m do
    begin
     matriz[i,j]:= random(99)+1;
    end;
  end;
 for i:= 1 to n do
  begin
   for j:=1 to m do
    begin
     Stringgrid1.Cells [i,0]:= IntToStr(i);
     Stringgrid1.Cells [0,j]:= IntToStr(j);
     Stringgrid1.Cells [i,j]:= IntToStr(matriz[i,j]);
    end;
  end;

end;

procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
menor:string;
begin
menor:= Stringgrid1.Cells [1,1];
 memo1.clear;
 for j:= 1 to m do
  begin
   for i:= 1 to n do
    begin
     if Stringgrid1.Cells [i,j] < menor then
     menor:=Stringgrid1.Cells [i,j];
    end;
    memo1.Lines.Add(menor);
  end;

end;

Quisiera que me digan por que mi razonamiento en el boton2 esta mal,si se puede hacer todo en un solo boton, y la manera en que funciona un For dentro de otro For.

saludos, MUCHAS GRACIAS!!
Responder Con Cita
  #2  
Antiguo 19-04-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola franco_cvm
Cita:
Empezado por franco_cvm Ver Mensaje
Quisiera que me digan por que mi razonamiento en el boton2 esta mal
Por que tomas un mínimo antes de entrar a los ciclos, cuando tendrías que hacerlo una vez por cada fila. Te hice un código de ejemplo comentado para que puedas analizarlo:
Código Delphi [-]
const
  MAX_COL = 10;
  MAX_ROW =  6;

type
  TMatriz = array [1..MAX_COL, 1..MAX_ROW] of Integer;

var
  Matriz: TMatriz;

procedure TForm1.FormCreate(Sender: TObject);
var
  c, r : Integer;
begin
  // inicializar el generador aleatorio
  Randomize();
  // darle al StringGrid el espacio necesario para visualizar
  StringGrid1.ColCount := MAX_COL;
  StringGrid1.RowCount := MAX_ROW;
  // carga
  for r := 1 to MAX_ROW do
   for c := 1 to MAX_COL do
   begin
     Matriz[c, r] := Random(99) + 1;
     StringGrid1.Cells[c-1, r-1] := IntToStr(Matriz[c, r]); // visualizar
   end;
  Memo1.Clear; // limpiar memo
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  c, r, Minimo: Integer;
begin
  for r := 1 to MAX_ROW do    // recorrer las filas
  begin
    Minimo := Matriz[1, r];   // Minimo es la 1er columna
    for c := 2 to MAX_COL do  // recorrer desde la 2da col. hasta la última
      if Matriz[c, r] < Minimo then   // si Matriz[c, r] menor a Minimo,
        Minimo := Matriz[c, r];       // Matriz[c, r] es ahora el minimo
    Memo1.Lines.Add(IntToStr(Minimo));// mostrar
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 19-04-2015
franco_cvm franco_cvm is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 20
Poder: 0
franco_cvm Va por buen camino
Muchas gracias chee
mi profesor me explico algo de que con f8 te corria el programa linea por linea y te va mostrando lo que pasa, pero no lo puedo hacer...¿tenes alguna idea?
Cita:
Empezado por ecfisa Ver Mensaje
Hola franco_cvm

Por que tomas un mínimo antes de entrar a los ciclos, cuando tendrías que hacerlo una vez por cada fila. Te hice un código de ejemplo comentado para que puedas analizarlo:
Código Delphi [-]
const
  MAX_COL = 10;
  MAX_ROW =  6;

type
  TMatriz = array [1..MAX_COL, 1..MAX_ROW] of Integer;

var
  Matriz: TMatriz;

procedure TForm1.FormCreate(Sender: TObject);
var
  c, r : Integer;
begin
  // inicializar el generador aleatorio
  Randomize();
  // darle al StringGrid el espacio necesario para visualizar
  StringGrid1.ColCount := MAX_COL;
  StringGrid1.RowCount := MAX_ROW;
  // carga
  for r := 1 to MAX_ROW do
   for c := 1 to MAX_COL do
   begin
     Matriz[c, r] := Random(99) + 1;
     StringGrid1.Cells[c-1, r-1] := IntToStr(Matriz[c, r]); // visualizar
   end;
  Memo1.Clear; // limpiar memo
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  c, r, Minimo: Integer;
begin
  for r := 1 to MAX_ROW do    // recorrer las filas
  begin
    Minimo := Matriz[1, r];   // Minimo es la 1er columna
    for c := 2 to MAX_COL do  // recorrer desde la 2da col. hasta la última
      if Matriz[c, r] < Minimo then   // si Matriz[c, r] menor a Minimo,
        Minimo := Matriz[c, r];       // Matriz[c, r] es ahora el minimo
    Memo1.Lines.Add(IntToStr(Minimo));// mostrar
  end;
end;

Saludos
Responder Con Cita
  #4  
Antiguo 19-04-2015
franco_cvm franco_cvm is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 20
Poder: 0
franco_cvm Va por buen camino
Cita:
Empezado por franco_cvm Ver Mensaje
Muchas gracias chee
mi profesor me explico algo de que con f8 te corria el programa linea por linea y te va mostrando lo que pasa, pero no lo puedo hacer...¿tenes alguna idea?
ya pude, ya pude..muchas graciass
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
QRRichText una fila de cada color vivamotos Impresión 2 13-02-2014 05:48:27
Error: No se puede encontrar la fila para su actualizacion ludan508 Conexión con bases de datos 0 16-04-2007 22:12:29
añadir un boton a cada fila de un DBGrid User_baja1 Varios 6 02-06-2006 21:57:11
No se pudo encontrar la fila para su actualización Jorge Taveras MS SQL Server 6 26-06-2005 17:28:36
'nrow' en cada fila de grilla Roy Varios 3 30-01-2004 14:46:51


La franja horaria es GMT +2. Ahora son las 06:05:21.


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