AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Position im 2D-Array

Ein Thema von Borti · begonnen am 19. Jun 2006 · letzter Beitrag vom 20. Jun 2006
Antwort Antwort
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#1

Position im 2D-Array

  Alt 19. Jun 2006, 10:03
Morgen!

Wie kann ich in einem zweidimensionalen array die Position eines Wertes ohne die beiden Indizes angeben?

Gruß,
Borti
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Position im 2D-Array

  Alt 19. Jun 2006, 10:08
Meines Erachtens kannst du das in Delphi nur auf diese eine Art und Weise, wie du schon gesagt hast.

Was für eine Lösung hättest du denn gerne? Man kann sicherlich für jedes Problem eine andere Art der Programmierung verwenden!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#3

Re: Position im 2D-Array

  Alt 19. Jun 2006, 10:40
Ich hätte da an so was wie einen Pointer gedacht, den man auf die entsprechende Position im Array richtet.
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Position im 2D-Array

  Alt 19. Jun 2006, 10:58
Zitat von Borti:
Ich hätte da an so was wie einen Pointer gedacht, den man auf die entsprechende Position im Array richtet.
Was hindert dich daran P := @Array[0,0]; zu nehmen und die Position entsprechend zu ändern ( zBsp: durch ausprobieren)? Wenn P: PChar kannst Du sogar den Offset addieren!
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Borti

Registriert seit: 11. Okt 2003
151 Beiträge
 
#5

Re: Position im 2D-Array

  Alt 19. Jun 2006, 20:27
Wahrscheinlich liegt's daran, dass ich bisher nie mit Pointern gearbeitet habe. Daher muss ich mich hier entschuldigen.

Was mach ich, wenn ich einen Zeiger auf eine Position errichtet habe, ich aber auch noch die nächste höhere position auslesen will? Kann ich dann zum Zeiger einfach was dazu addieren?
Code:
var
  a:array[1..2] of array[1..2] of real;
  P:^real;
  Ergebnis1,Ergebnis2:real;
begin
  a[1][1]:=50.1;
  a[1][2]:=50.2;
  a[2][1]:=50.3;
  a[2][2]:=50.4;
  P:=@a[2][1];
  Ergebnis1:=P^;
  Ergenbnis2:=?????
end;
Gruß,
Pollux
Ich hab's versucht
(auch wenn's nicht so aus sieht)
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Position im 2D-Array

  Alt 20. Jun 2006, 08:17
(a) Tipp: beginne die Indize bei 0, spart viel Ärger bei dynamischen Array's
(b)
Delphi-Quellcode:
type
  TMyArray= array[0..1,0..1] of real;
  PReal = ^Real;
var
  A: TMyArray;
  Pr: ^real;
  I: Integer;
begin
  A[0,0]:=50.1;
  A[0,1]:=50.2;
  A[1,0]:=50.3;
  A[1,1]:=50.4;
  Pr := @A[0,0];
  for I := 0 to 3 do
  begin
    Memo1.Lines.Add (FloatToStr(Pr^));
    Inc (Pr);
  end;

end;
(c) Wozu soll dies gut sein, der Compiler macht das mit den Array's eigentlich recht effektiv?
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz