Arrays AND OR usw.

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
aldicek
Beiträge: 37
Registriert: Do 6. Mär 2008, 12:48
OS, Lazarus, FPC: WinXP/Mint13KDE (Lazarus 1.0.8 FPC 2.6.2)
CPU-Target: 64 Bit
Wohnort: Halle (Saale)

Arrays AND OR usw.

Beitrag von aldicek »

Hallo!

Ich möchte im Rahmen meines Projektes 2 Arrays des gleichen Typs mit der OR-Funktion verknüpfen. Hierbei macht mir der Compiler die Mitteilung, dass das nicht so ohne Weiteres geht (die OR-Funktion ist nicht überladen). Gibt es Tricks, das effektiv zu tun, oder ist hier Handarbeit angesagt? (Array3[1]:=Array1[1] OR Array2[1]?)
Beispiel: Array1{1,2,0,4,0,0,0,0,9} OR Array2{1,2,0,0,5,0,0,8,0} sollte Array3{1,2,0,4,5,0,0,8,9} ergeben.
Bin wie immer sehr interessiert an Euren Hinweisen.

Dank im Voraus
Aldi

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Arrays AND OR usw.

Beitrag von Maik81ftl »

aldicek hat geschrieben:Hallo!

Ich möchte im Rahmen meines Projektes 2 Arrays des gleichen Typs mit der OR-Funktion verknüpfen. Hierbei macht mir der Compiler die Mitteilung, dass das nicht so ohne Weiteres geht (die OR-Funktion ist nicht überladen). Gibt es Tricks, das effektiv zu tun, oder ist hier Handarbeit angesagt? (Array3[1]:=Array1[1] OR Array2[1]?)
Beispiel: Array1{1,2,0,4,0,0,0,0,9} OR Array2{1,2,0,0,5,0,0,8,0} sollte Array3{1,2,0,4,5,0,0,8,9} ergeben.
Bin wie immer sehr interessiert an Euren Hinweisen.

Dank im Voraus
Aldi
Ähmmm willst du an diesem Beispiel beide Addieren? so schaut es für mich aus. Da ich mich nicht gerade festlegen möchte, versuch mal bzw
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Arrays AND OR usw.

Beitrag von carli »

aldicek hat geschrieben:Hallo!

Ich möchte im Rahmen meines Projektes 2 Arrays des gleichen Typs mit der OR-Funktion verknüpfen. Hierbei macht mir der Compiler die Mitteilung, dass das nicht so ohne Weiteres geht (die OR-Funktion ist nicht überladen). Gibt es Tricks, das effektiv zu tun, oder ist hier Handarbeit angesagt? (Array3[1]:=Array1[1] OR Array2[1]?)
Beispiel: Array1{1,2,0,4,0,0,0,0,9} OR Array2{1,2,0,0,5,0,0,8,0} sollte Array3{1,2,0,4,5,0,0,8,9} ergeben.
Bin wie immer sehr interessiert an Euren Hinweisen.

Dank im Voraus
Aldi
Implementiere dir doch die entsprechende Operation als Operator.

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Arrays AND OR usw.

Beitrag von MAC »

ich glaube wenn du mit einem "Set of" arbeiten würdest geht das.
Allerdings hat das ein ganz anderen aufbau...
ein "Set of" kann Speichern welche der Zahlen sich in der Liste befinden...

Code: Alles auswählen

var
 x:set of byte; // zahlen von 0..255
begin
x := [8,4,2,1]; // Die hier angegebene Reihenfolge wird nicht gespeichert !
if 2 in x then Showmessage('Hurra');
Du verzichtest also auf die Reihenfolge der Zahlen und die länge des Arrays

Code: Alles auswählen

Signatur := nil;

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Arrays AND OR usw.

Beitrag von u-boot »

Ich vermute,dass es besser ist, "set of" für diesen speziellen Fall zu vergessen.

"operator overload" ist wohl das gesuchte, wie schon ein Vorredner vorgeschlagen hat. Anleitung dafür müsste zumindest auf englisch im Netz zu finden sein.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Benutzeravatar
theo
Beiträge: 11005
Registriert: Mo 11. Sep 2006, 19:01

Re: Arrays AND OR usw.

Beitrag von theo »

aldicek hat geschrieben:Gibt es Tricks, das effektiv zu tun, oder ist hier Handarbeit angesagt?
Also im Prinzip willst du ja nur das Resultat haben und keine überladenen Operatoren etc., oder?
Schreib doch einfach eine kleine Funktion, die das mit den drei Arrays erledigt. Mehr als ein paar Zeilen Code ist das doch nicht.

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Arrays AND OR usw.

Beitrag von Socke »

theo hat geschrieben:Also im Prinzip willst du ja nur das Resultat haben und keine überladenen Operatoren etc., oder?
Schreib doch einfach eine kleine Funktion, die das mit den drei Arrays erledigt. Mehr als ein paar Zeilen Code ist das doch nicht.
Ob Operator oder Funktion ist doch fast das selbe, nur der Aufruf sieht ein wenig anders aus.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

aldicek
Beiträge: 37
Registriert: Do 6. Mär 2008, 12:48
OS, Lazarus, FPC: WinXP/Mint13KDE (Lazarus 1.0.8 FPC 2.6.2)
CPU-Target: 64 Bit
Wohnort: Halle (Saale)

Re: Arrays AND OR usw.

Beitrag von aldicek »

Hallo und vielen Dank an alle Beitragsschreiber!

Durch eine Redefinition meiner Vorgaben hat sich diese Frage erübrigt. Trotzdem vielen Dank für alle Antworten!
Nur als PS: Das Überladen der Operatoren war auch mein erster Denkansatz, da ich das aber in vielen Klassen tun müsste, wäre der Weg über eine einfache Funktion der ressourcenschonendere.

Grüße
Aldi

Antworten