Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2011
JLMN22 JLMN22 is offline
Miembro
 
Registrado: nov 2008
Posts: 18
Poder: 0
JLMN22 Va por buen camino
Array de dimensiones

Estoy viendo los vectores en delphi, y tengo problemas con los de 2 dimensiones.

El ejercicio es que tengo que poner en un cuadro de 3 por 4 con un array de 2 dimensiones los ingresos de 4 sucursales durante 3 meses.

Despues de eso, tengo que hacer la suma por sucursal y por meses.

Me he quedado en el de insertar, he visto el codigo una y otra vez y sigo sin encontrar el fallo.

os dejo el codigo:
Código Delphi [-]
var
  Form1: TForm1;
  datos: array[1..3,1..4] of integer;
  ren:integer=1;
  col:integer=1;

implementation 
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

procedure TForm1.InsertarClick(Sender: TObject);
var 
  temp:string;
begin
  datos[ren,col]:= strtoint(edit1.Text);
  col:= col+1;
  edit1.Text:= ' ';
  temp:= temp+inttostr(datos[ren,col]);
  listbox1.Items.Add(temp);
  if (col=5) then   
  begin
    ren:=ren+1; 
    col:=1;
  end;
  if (ren=4) then 
  begin
    showmessage('Lista llena');
  end;
  edit1.Visible:=false;
end;

end.

Última edición por ecfisa fecha: 01-02-2011 a las 19:26:40. Razón: ETIQUETAS [DELPHI] - IDENTADO DE CODIGO
Responder Con Cita
  #2  
Antiguo 25-01-2011
Avatar de Aleca
Aleca Aleca is offline
Miembro
 
Registrado: may 2003
Ubicación: Venado Tuerto, Argentina
Posts: 277
Poder: 21
Aleca Va por buen camino
Código Delphi [-]
var
  Form1: TForm1;
  datos: array[1..3,1..4] of integer;
  ren:integer=1;col:integer=1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

procedure TForm1.InsertarClick(Sender: TObject);
var 
  temp:string;
begin
  col := col + 1;
  if (col=5) then   
  begin
     ren:=ren+1; 
     col:=1;
  end;
   
  if (ren=4) then 
  begin
     showmessage('Lista llena'); 
     edit1.Visible:=false;
  end
  else
    datos[ren,col]:=strtoint(edit1.Text);
 
  edit1.Text := ' ';
  temp := temp+inttostr(datos[ren,col]);
  listbox1.Items.Add(temp);
end;

end.
Creo q seria algo asi.
PD: hay q leer la guia de estilo.
__________________
Aleca

Última edición por ecfisa fecha: 01-02-2011 a las 20:52:12.
Responder Con Cita
  #3  
Antiguo 25-01-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Falta información!

Falta información!
Cuál es el error que te da tu código?
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 26-01-2011
JLMN22 JLMN22 is offline
Miembro
 
Registrado: nov 2008
Posts: 18
Poder: 0
JLMN22 Va por buen camino
Cita:
Empezado por Chris Ver Mensaje
Falta información!
Cuál es el error que te da tu código?
Cuando pongo mi codigo, en la lista pone 0 no el valor que le he metido al edit.

He metido el codigo que me ha dejado una persona del foro, y lo que hace es meter en forma de columa datos, es decir, que no lo hace como un cuadro.
Responder Con Cita
  #5  
Antiguo 26-01-2011
Avatar de Aleca
Aleca Aleca is offline
Miembro
 
Registrado: may 2003
Ubicación: Venado Tuerto, Argentina
Posts: 277
Poder: 21
Aleca Va por buen camino
Cita:
Empezado por JLMN22 Ver Mensaje
Cuando pongo mi codigo, en la lista pone 0 no el valor que le he metido al edit.

He metido el codigo que me ha dejado una persona del foro, y lo que hace es meter en forma de columa datos, es decir, que no lo hace como un cuadro.
1) te pone 0 porque lo blanqueas antes de cargarlo a lista.
2) tenes que invertir los if para llenarlo por fila y sumar x col en vez de ren

__________________
Aleca
Responder Con Cita
  #6  
Antiguo 01-02-2011
JLMN22 JLMN22 is offline
Miembro
 
Registrado: nov 2008
Posts: 18
Poder: 0
JLMN22 Va por buen camino
Sigo igual

El programa lo que hace es rellenar por filas y lo hace indefinidamente no por columnas, dejo el codigo nuevamente.

Código Delphi [-]
var
  temp:string;
begin
  datos[ren,col]:=strtoint(edit1.Text);
  edit1.Text:=' ';
  temp:=temp+inttostr(datos[ren,col]);
  listbox1.Items.Add(temp);
  col:=col+1;
  if (col=5) then
  begin
    ren:=ren+1; 
    col:=1;
  end;
  if (ren=4) then
  begin
    showmessage('Lista llena');
    edit1.Visible:=false;
  end;
end;
end.

Última edición por ecfisa fecha: 01-02-2011 a las 20:51:53. Razón: ETIQUETAS [DELPHI] - IDENTADO DE CODIGO
Responder Con Cita
  #7  
Antiguo 01-02-2011
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 JLMN22.

Por favor, encierra el código entre las etiquetas [delphi] y [/delphi] , ya que facilita la lectura del mismo.

Te aconsejo leer el manual de etiquetas vB.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 01-02-2011
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
Me parece que un ListBox no es el componente más adecuado para mostrar una matríz, un StringGrid es más apropiado, es más,
hace innecesaria la declaración del arreglo bidimensional 'datos'.
El código que te adjunto conserva el array por si lo exige el ejercicio. No hace ninguna comprobación en las conversiones.

Código Delphi [-]
...
const
   MESES = 3;
   SUCURSALES = 4;
var
  Form1: TForm1;
  datos: array[1..MESES,1..SUCURSALES] of Double;
  fil: Integer=1;
  col: Integer=1;
 
implementation 

procedure TForm1.FormShow(Sender: TObject);
var
  i: Integer;
begin
  StringGrid1.FixedCols:= 1;
  StringGrid1.FixedRows:= 1;
  StringGrid1.ColCount:= SUCURSALES + 2;
  StringGrid1.RowCount:= MESES + 2;
  for i:= 1 to MESES do
   StringGrid1.Cells[0,i]:= 'Mes '+FloatToStr(i);
  StringGrid1.Cells[0,MESES+1]:= 'Tot mes';
  for i:= 1 to SUCURSALES do
   StringGrid1.Cells[i,0]:= 'Suc '+FloatToStr(i);
  StringGrid1.Cells[SUCURSALES+1,0]:= 'Tot suc';
end;

procedure TForm1.CalcularTotales;
var
  i,j: Integer;
  t: Double;
begin
  for i:= 1 to MESES do
  begin
    t:= 0;
    for j:= 1 to SUCURSALES do
      t:= t + datos[i,j];
    StringGrid1.Cells[SUCURSALES+1,i]:= FloatToStr(t);
  end;
  for i:= 1 to SUCURSALES do
  begin
    t:= 0;
    for j:= 1 to MESES do
      t:= t + datos[j,i];
    StringGrid1.Cells[i,MESES+1]:= FloatToStr(t);
  end;
end;

procedure TForm1.InsertaClick(Sender: TObject);
begin
  if col > SUCURSALES then
  begin
    CalcularTotales;
    showmessage('Ingreso completado');
  end
  else
  begin
    datos[fil,col]:= StrToFloat(Edit1.Text);
    StringGrid1.Cells[col,fil]:= Edit1.Text;
    if (fil = MESES) then
    begin
      fil:= 0;
      Inc(Col);
    end;
    Inc(fil);
  end;
end;
...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 01-02-2011 a las 22:02:50.
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
TImageList con dimensiones mayor a 256x256 KATODO Gráficos 0 06-08-2008 17:10:50
array_key_exists no me funciona con arreglos de dos dimensiones lucasarts_18 PHP 4 27-07-2008 23:35:09
Pantalla que proyecta imágenes en 3 dimensiones Gabo Noticias 4 03-09-2007 17:53:59
Dimensiones de página html lucasarts_18 HTML, Javascript y otros 10 04-05-2007 01:15:28
matriz 3 dimensiones Lidia SQL 2 12-12-2005 18:59:58


La franja horaria es GMT +2. Ahora son las 15:38:59.


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