AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Gerade Zahl oder Ungerade Zahl?

Ein Thema von Rakash · begonnen am 5. Apr 2011 · letzter Beitrag vom 6. Apr 2011
Antwort Antwort
Seite 3 von 3     123
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#21

AW: Gerade Zahl oder Ungerade Zahl?

  Alt 5. Apr 2011, 20:07
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
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#22

AW: Gerade Zahl oder Ungerade Zahl?

  Alt 5. Apr 2011, 21:16
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.983 Beiträge
 
Delphi 10.4 Sydney
 
#23

AW: Gerade Zahl oder Ungerade Zahl?

  Alt 5. Apr 2011, 21:23
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 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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Rakash

Registriert seit: 5. Apr 2011
13 Beiträge
 
#24

AW: Gerade Zahl oder Ungerade Zahl?

  Alt 5. Apr 2011, 22:23
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 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
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#25

AW: Gerade Zahl oder Ungerade Zahl?

  Alt 5. Apr 2011, 22:41
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
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!

das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.658 Beiträge
 
Delphi 7 Personal
 
#26

AW: Gerade Zahl oder Ungerade Zahl?

  Alt 6. Apr 2011, 13:51
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
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 07:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf