Forum > Spanish

iteradoras en pascal

<< < (3/3)

zelda16bit:

--- Quote from: TRon on February 22, 2023, 08:57:41 am ---@KodeZwerg: Thank you !

@zelda16bit:
your question translates for me to

--- Quote ---As it would be with a class.

--- End quote ---
In combination with your code the remark that you made does not make any sense to me so I have no idea what exactly you are asking for or are referring to.

Translated with an online translator to Spanish:

--- Quote ---En combinación con su código, el comentario que hizo no tiene ningún sentido para mí, así que no tengo idea de qué es exactamente lo que está pidiendo o a lo que se refiere.

--- End quote ---

--- End quote ---

Lo que estaba preguntando es que en vez de crear una lista de enteros,para añadir datos enteros se creara una lista de objetos,y ver como añadir esos objetos a la lista, y luego ver como se itera sobre esa lista de objetos.
Por eso mostraba una clase hipotetica para añadir a esa lista,pero mi respuesta del principio a quedado respondida ya que veo que en pascal no hace falta ningun iterador especial para recorrer la lista,con el bucle "for in" es suficiente,al menos es la conclusion que saco al ver los ejemplos mostrados.Gracias  :)

zelda16bit:

--- Quote from: KodeZwerg on February 22, 2023, 11:45:04 am ---
--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---program Project1;{$IFDEF MSWINDOWS}{$APPTYPE CONSOLE}{$ENDIF} {$mode objfpc} uses  Generics.Collections; type   { TCustomList }  TIntegerList = specialize TList<integer>;  TCustomList = class(TObject)    strict private      FCount: Integer;      FIndex: Integer;      FCurrent: Integer;      FList: TIntegerList;    private      procedure SetCount(const AValue: Integer);      procedure SetIndex(const AValue: Integer);      function GetCurrent: Integer;      procedure SetCurrent(const AValue: Integer);    public      constructor Create;      destructor Destroy; override;      procedure Add(const AValue: Integer);      procedure Show;      procedure Remove(const AIndex: Integer);    published      property Count: Integer read FCount write SetCount default 0;      property Index: Integer read FIndex write SetIndex default -1;      property Current: Integer read GetCurrent write SetCurrent default -1;  end; { begin TCustomList }constructor TCustomList.Create;begin  inherited Create;  FList := TIntegerList.Create;  FCount := 0;  FIndex := -1;  FCurrent := -1;end; destructor TCustomList.Destroy;begin  FList.Free;  FList := nil;  inherited Destroy;end; procedure TCustomList.SetIndex(const AValue: Integer);begin  if ((AValue >= 0) and (AValue < FCount)) then    FIndex := AValue    else    FIndex := -1;end; function TCustomList.GetCurrent: Integer;begin  if ((FIndex >= 0) and (FIndex < FCount)) then    Result := FList.Items[FIndex]    else    Result := -1;end; procedure TCustomList.SetCurrent(const AValue: Integer);begin  if ((FIndex >= 0) and (FIndex < FCount)) then    FList.Items[FIndex] := AValue;end; procedure TCustomList.SetCount(const AValue: Integer);var  i: Integer;begin  if (FCount = 0) then    Exit;  if (AValue < FCount) then    for i := Pred(FCount) downto AValue do      FList.Delete(i);  FCount := FList.Count;  FIndex := Pred(FCount);end; procedure TCustomList.Add(const AValue: Integer);begin  FList.Add(AValue);  FCount := FList.Count;  FIndex := Pred(FCount);end; procedure TCustomList.Remove(const AIndex: Integer);begin  if (FCount = 0) then    Exit;  if ((AIndex >= 0) and (AIndex < FCount)) then    FList.Delete(AIndex);  FCount := FList.Count;  FIndex := Pred(FCount);end; procedure TCustomList.Show;var  i: Integer;begin  if (FCount = 0) then    Exit;  for i in FList    do WriteLn(i);end;{ end TCustomList } var  List: TCustomList;  i: integer;begin  List := TCustomList.Create;  try    WriteLn('Add 10 elements');    for i := 0 to 9 do      List.Add(i);    WriteLn('Show all elements');    List.Show;    WriteLn('Remove last 5 elements');    List.Count := List.Count - 5;    WriteLn('Show all elements');    List.Show;    WriteLn('Change value of element 3 to 99');    List.Index := 2;    List.Current := 99;    WriteLn('Show all elements');    List.Show;  finally    List.Free;  end;  {$IFDEF MSWINDOWS}ReadLn; {$ENDIF}end.¿Supongo que querías esta lista en una clase?

--- Quote ---I assume you wanted this list in a class?
--- End quote ---

--- End quote ---

No es exactamente lo que estaba preguntando y nunca habia hecho este tipo de codigo pero me sirve para aprender algo nuevo,no pregunto mas porque se esta liando mucho este hilo y se esta alejando de la pregunta inicial.Gracias por la ayuda  :)

Navigation

[0] Message Index

[*] Previous page

Go to full version