Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Gerade Zahl oder Ungerade Zahl? (https://www.delphipraxis.net/159618-gerade-zahl-oder-ungerade-zahl.html)

alzaimar 5. Apr 2011 19:07

AW: Gerade Zahl oder Ungerade Zahl?
 
Zitat:

Zitat von himitsu (Beitrag 1093227)
Wobei aber die AND-Version zu bezuzugen wäre

Um Gottes Willen, nein! Programme sollen lesbar sein und nicht durch kryptographischen Spezialcode das Insiderwissen des Autors belegen.

Du musst doch sogar einen Kommentar zu dem Code schreiben, damit man weiss, was er machen soll, und das bei 5 Zeichen.

Versteck deine Bittüdelei wenigstens in einer Funktion. Aber nenn die bloß nicht AND_1 :-D

Namenloser 5. Apr 2011 20:16

AW: Gerade Zahl oder Ungerade Zahl?
 
Zitat:

Zitat von jfheins (Beitrag 1093259)
Zitat:

Zitat von DeddyH (Beitrag 1093251)
Wenn andere schon mit Assembler kommen, sei mir zumindest eine kleine Kürzung erlaubt (ohne Fehlerbehandlung):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const Ausgabe: array[Boolean] of string = ('gerade!', 'ungerade!');
begin
  Label1.Caption := Ausgabe[Odd(StrToInt(Edit1.Text))];
end;

Wenn du den Code schon so rabiat kürzt: Ich glaube du kannst das begin/end weglassen. (Da die Prozedur nur aus einer Zeile besteht)

Seit wann geht das? :gruebel:

himitsu 5. Apr 2011 20:23

AW: Gerade Zahl oder Ungerade Zahl?
 
Delphi-Quellcode:
uses StrUtils;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := IfThen(Odd(StrToInt(Edit1.Text)), 'ungleich', 'gleich');
end;
Oder wie wäre es mit
Delphi-Quellcode:
if Edit1.Text[Length(Edit1.Text)] in ['1', '3', '5', '7', '9'] then {ungerade};
.
(eine Prüfung, ob überhaupt eine gültige Zahl in Edit liegt, überlaß ich Anderen)

Rakash 5. Apr 2011 21:23

AW: Gerade Zahl oder Ungerade Zahl?
 
Zitat:

Zitat von himitsu (Beitrag 1093299)
Delphi-Quellcode:
uses StrUtils;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := IfThen(Odd(StrToInt(Edit1.Text)), 'ungleich', 'gleich');
end;
Oder wie wäre es mit
Delphi-Quellcode:
if Edit1.Text[Length(Edit1.Text)] in ['1', '3', '5', '7', '9'] then {ungerade};
.
(eine Prüfung, ob überhaupt eine gültige Zahl in Edit liegt, überlaß ich Anderen)

das wäre zu viel des guten xD
wobei es ja eine allgemein gültige form sein soll für den integer brecih. ich meien gut. man kann so auch den gesamten bereich angeben ... xD

Aphton 5. Apr 2011 21:41

AW: Gerade Zahl oder Ungerade Zahl?
 
Zitat:

Zitat von alzaimar (Beitrag 1093268)
Zitat:

Zitat von himitsu (Beitrag 1093227)
Wobei aber die AND-Version zu bezuzugen wäre

Um Gottes Willen, nein! Programme sollen lesbar sein und nicht durch kryptographischen Spezialcode das Insiderwissen des Autors belegen.

Du musst doch sogar einen Kommentar zu dem Code schreiben, damit man weiss, was er machen soll, und das bei 5 Zeichen.

Versteck deine Bittüdelei wenigstens in einer Funktion. Aber nenn die bloß nicht AND_1 :-D

Ach quatsch. Ich bin zwar kein professioneller Entwickler, aber ich schätze schon, dass in der Industrie Wert auf perfomanten Code gelegt wird, oder?
Also ich find die Version mit der logischen Verknüpfung einfach am optimalsten und auch sehr leserlich. Man muss ja nur kurz überlegen und schon weiß man, was geschieht.
Außerdem ist es in diesem Fall ja nur ein Einzeiler, daher würde schon die richtige Bennenung der Funktion den Code leserlich machen!

:P

p80286 6. Apr 2011 12:51

AW: Gerade Zahl oder Ungerade Zahl?
 
Delphi-Quellcode:
function Ungerade(const ein:integer):boolean;
begin
result:=boolean(ein and 1);
end;
Auf begin end können wir wohl doch nicht verzichten.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr.
Seite 3 von 3     123   

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