AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Array mit Subeigenschaften der Elemente?

Array mit Subeigenschaften der Elemente?

Ein Thema von disso · begonnen am 3. Jul 2014 · letzter Beitrag vom 3. Jul 2014
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Array mit Subeigenschaften der Elemente?

  Alt 3. Jul 2014, 18:11
Die Überprüfung mache ich schon mit einer Matrix, ich vergleiche also Soll und Ist.
Die Idee mit ner Klasse hatte ich auch schon, allerdings habe ich das noch nie gemacht und da fehlt mir ein bisschen die Herangehensweise und wie ich die Elemente dann verwende ..
Du solltest dir ein paar grundlegende Gedanken zu dem Thema machen, sonst kann man auch keine solche Klasse aufbauen, bzw. beschreiben.

Hier mal eine schematische Darstellung:
-x--1--2--3--4--5-
Aab ac 
Bdabdc
C    d
D   c 
E  b  
Eingezeichnet sind 4 Klötze (a=[A1:B5], b=[A2:E3], c=[A4:E5], d=[B1:C5])

a und b können so liegen, b und c auch (die berühren sich gar nicht) aber a und c geht so nicht (Überschneidung auf A4), a und d, b und d, c und d sind wieder ok

Jetzt stellen wir fest, dass sich 2 Klötze immer nur an 4 Punkten (gekreuzt) oder an 5 Punkten (parallel) überlappen, somit ist die Prüfung selber nicht wirklich dramatisch. Eine globale Prüfung muss noch rein, damit das Loch in der Mitte bleibt.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 3. Jul 2014 um 18:15 Uhr)
  Mit Zitat antworten Zitat
disso

Registriert seit: 3. Jul 2014
9 Beiträge
 
#2

AW: Array mit Subeigenschaften der Elemente?

  Alt 3. Jul 2014, 18:23
Hm ich glaube, du hast das falsch verstanden (Oder ich verstehe dich nicht)
- Ich erstelle eine Nullmatrix (mein 5x5 Feld).
- Ich lasse eine Schleife durchlaufen, die alle Kombinationen durchgeht, 8 aus 8 mit Variation ohne Zurücklegen.
n!/(n-k)!=40320
und das in 256 Varianten (wenn ich jeweils den Klotz rotiere), also 10.321.920 Möglichkeiten.
- Diese Kombination weise ich den beiden Arrays zu. S[1..], W[1..4]. Dabei ist der Eintrag im einen Array automatisch "transponiert", um das Wenden drin zu haben (sonst kann man die Zinnen ja nicht ineinander stecken).
- dann folgt in etwa das (wird nach Zuweisung von S, W aufgerufen):
Delphi-Quellcode:
M_reset();         //Matrix resetten
     for k:=0 to 3 do begin   //S und W durchgehen
   for i:=1 to 5 do begin //Senkrechte auf das Feld addieren
       for j:=1 to 2 do begin
      M[i,j+k] := S[k].[i,j]; //<--funktioniert so nicht
       end;
   end;

   for i:=1 to 2 do begin    //Waagerechte auf das Feld addieren
       for j:=1 to 5 do begin //durch Drehung i/j -> Transponierte
      M[i+k, j] := W[k].[i,j]; //<--funktioniert so nicht
       end;
   end;
     end;

     if comparemem(@M,@SollM,SizeOf(M)) then begin
        result := true;
     end
     else begin
         result:=false;
     end;
   end;
- Das Problem ist also das oben gekennzeichnete.

Geändert von disso ( 3. Jul 2014 um 18:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Array mit Subeigenschaften der Elemente?

  Alt 3. Jul 2014, 18:36
Und statt diesem umständlichen Array-Verhau möchte ich eine Klotz-Klasse fragen, ob es ihr an der Position auf dem 5x5 Feld gefällt.
Delphi-Quellcode:
// Klotz fragen, ob es ihm in der 3. Reihe waagerecht auf dem Feld gefällt
if Klotz.SatisfiedWith( Feld, 2, horizontal ) then
  ...
Mit diesen Informationen kann der Klotz die Position seiner Würfel im Feld bestimmen und jeder Würfel kann schauen, ob auf dem Feld an seiner Stelle noch ein Plätzchen frei ist.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
disso

Registriert seit: 3. Jul 2014
9 Beiträge
 
#4

AW: Array mit Subeigenschaften der Elemente?

  Alt 3. Jul 2014, 18:40
Ah, ich glaube ich weiß, was du meinst. Dann fehlen mir also nur noch die Grundkenntnisse zu einer Klasse. Hast du da einen guten Tipp zu ner verständlichen Dokumentation?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Array mit Subeigenschaften der Elemente?

  Alt 3. Jul 2014, 18:46
Ah, ich glaube ich weiß, was du meinst. Dann fehlen mir also nur noch die Grundkenntnisse zu einer Klasse. Hast du da einen guten Tipp zu ner verständlichen Dokumentation?
Ja, das Leben

Beschreibe doch mal grob ein Fahrrad, so wie es von aussen dir erscheint.
PS Ich meine das tatsächlich ernst
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
disso

Registriert seit: 3. Jul 2014
9 Beiträge
 
#6

AW: Array mit Subeigenschaften der Elemente?

  Alt 3. Jul 2014, 18:57
Ich glaube, ich denke zu kompliziert.
Ich weiß schon, dass eine eigene Klasse quasi ein "Datentyp" ist, den es sonst noch nicht gibt. Die hat nen Namen und dann ihre Untereigenschaften, hier also TKlotz = class [Fahrrad]. Und dann im private und/oder public die Eigenschaften. Bei mir sind das also die Klötze [Reifen], die dazugehören, und dazu geordnet die Würfel [Speichen]. In deinem Beispiel ist jetzt zusätzlich satisfiedwith [Katzenauge Platz] eine Funktion der Klasse, ja? Die ruf ich also nach der Kombinationsfindung mit den entsprechenden Parametern 8 Mal auf und warte auf ein "ja, geht".
  Mit Zitat antworten Zitat
disso

Registriert seit: 3. Jul 2014
9 Beiträge
 
#7

AW: Array mit Subeigenschaften der Elemente?

  Alt 3. Jul 2014, 18:59
Mir ist klar, dass die Syntax so nicht funktioniert, das ist nur prinzipiell das, was ich da an der Stelle tun möchte.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#8

AW: Array mit Subeigenschaften der Elemente?

  Alt 3. Jul 2014, 18:56
Also den Code kann so kein Schwein lesen.
Ich würde dich bitten deine Codes mal in [delphi]...[/delphi] zu schreiben.

Zitat:
M[i,j+k] := S[k].[i,j]; // funktioniert so nicht
Ja, da diese Syntax eben falsch ist.

Ich hab jetzt nichtgesehn was das ist, aber wenn das ein Array of Array sein sollte, denn ohne Punkt, also S[k][i,j] .

PS:
Zitat:
Delphi-Quellcode:
if comparemem(@M,@SollM,SizeOf(M)) then begin
  result := true;
end
else begin
  result:=false;
end;
result:= comparemem(@M,@SollM,SizeOf(M));
Und wenn nur ein Befehl dazwischen steht, dann kann man das Begin-End (= Befehle gruppieren) auch weglassen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 3. Jul 2014 um 18:59 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz