Verchiedene Bücher, GRUNDLEGEND andere Aussagen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
corado
Beiträge: 48
Registriert: Mi 7. Aug 2013, 17:00

Verchiedene Bücher, GRUNDLEGEND andere Aussagen

Beitrag von corado »

Ich lese gerade
Borland Delphi 7 Grundlagen, Profiwissen, Kochbuch

Hier steht das vor dem letzten end kein Semikolon stehen sollte, da es nur eine extra Leeranweisung produziert...
Ich meine das schon mal irgendwo gelesen zu haben, aber etliche meiner anderen Bücher machen das.....

In einem Tutorial hatte ich über die Variablendeklaration gelsenen, das es vermieden werden sollte, mehrere VAriablen des gleichen Typs zusammenzufassen....
Genau das wir din diesem Buch mit 1100Seiten aber gemacht...und gleichzeitig wirbt es mit Tips für ordentliche Programmierung...
Irgendwie ist das wie in C....da gibt es auach zu jedem Kleinkram 1000 Meinungen :-(

Und sowas finde ich auch nicht hitverdächtig..

Code: Alles auswählen

VAR kurs, euro: Real; s: Char;

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Verchiedene Bücher, GRUNDLEGEND andere Aussagen

Beitrag von af0815 »

Ich gehe davon aus das Dobernz und Kowalsky keine aktuelle Buch aufgelegt haben. Damit kann sich auch die Meinung und der Usus über die Jahrzehnte (!) geändert haben.

Du kannst für deine Projekte auch den ehemaligen Borland Style Guide heranziehen oder dir einen eigenen 'Coding'-Guide schaffen. Was du siehst und zusammenzählst sind die Meinung von fast 2 Jahrzehnten, berücksichtige diesen Kontext. Ausserdem kommt noch dazu das Lazarus/FPC nicht Delphi ist. Somit kommen da noch einmal Unterschiede in den Konzepten dazu.

Problematisch wird das nur dann wenn man sich damit beschäftigt und keine persöhnlichen Filter anlegt und durch das hängen in den Kleinigkeiten die wirklichen Probleme in der Programmierung vergisst. Vor allen Korithenkacker gibt es immer und andere Meinungen auch, also wozu das Thematisieren :-)

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Verchiedene Bücher, GRUNDLEGEND andere Aussagen

Beitrag von m.fuchs »

corado hat geschrieben:Hier steht das vor dem letzten end kein Semikolon stehen sollte, da es nur eine extra Leeranweisung produziert...
Ich meine das schon mal irgendwo gelesen zu haben, aber etliche meiner anderen Bücher machen das.....


Das kann man schön einfach ausprobiere. Mit

Code: Alles auswählen

fpc -a test.pas

erhält man eine Datei mit dem Assemblercode des Pascalprogramms. Nehmen wir mal folgendes Beispielprogramm:

Code: Alles auswählen

program Test;
begin
  WriteLn('Test');
end.

Und dann compilieren wir es auf die oben angegebene Weise. Einmal mit und einmal ohne Semikolon nach dem WriteLn.

Heraus kommt exakt der gleiche Assembler-Code. Der Compiler fügt also keine Leeranweisung ein (oder optimiert sie weg). Vielleicht war das zu Delphi 7 Zeiten anders, kann ich mir aber nicht vorstellen. Bei Borland haben die ja damals sicher auch gewusst wie man optimiert.

corado hat geschrieben:In einem Tutorial hatte ich über die Variablendeklaration gelsenen, das es vermieden werden sollte, mehrere VAriablen des gleichen Typs zusammenzufassen....

Die Frage ist ja: warum soll das vermieden werden?

corado hat geschrieben:Irgendwie ist das wie in C....da gibt es auach zu jedem Kleinkram 1000 Meinungen :-(

Nun das ist doch überall so wo Menschen beteiligt sind. Auch dieses Forum hier ist da keine Ausnahme. Ich finde zum Beispiel, dass Prozeduren und Funktionen nicht länger als sieben Zeilen sein sollten. Da gibt es auch ganz andere Meinungen zu. :mrgreen:

corado hat geschrieben:Und sowas finde ich auch nicht hitverdächtig..

Code: Alles auswählen

VAR kurs, euro: Real; s: Char;

Jepp, ist unleserlich.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Verchiedene Bücher, GRUNDLEGEND andere Aussagen

Beitrag von Timm Thaler »

corado hat geschrieben:Hier steht das vor dem letzten end kein Semikolon stehen sollte, da es nur eine extra Leeranweisung produziert...


Eine bescheuerte Idee, weil Dich der Compiler dann jedesmal anmeckert, wenn Du doch noch eine Anweisung dazufügst - und natürlich vergisst, dass Semikolon in der vorigen Zeile zu ergänzen.

Aber ich kann mich ja nicht mal mit mir selber einigen, wie es am besten ist:

Code: Alles auswählen

for ... do begin
  ...
end;
 
for ... do
begin
  ...
end;
 
if ... then begin
  ...
end else if ... then begin
  ...
end;
 
if ... then
begin
  ...
end
else if ... then
begin
  ...
end;
 
ganz böse ist Sowas:
 
if ... then
  if ... then
    if ... then
      WriteLn('Dreimal wahr');
      WriteLn('Immer da');
 

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Verchiedene Bücher, GRUNDLEGEND andere Aussagen

Beitrag von wp_xyz »

Ich glaube, ob man das "begin" nach "if", "while", "for" etc in eine neue Zeile nimmt, ist nicht so wichtig. Viel wichtiger ist, dass man überhaupt sauber einrückt. Die aktuelle IDE ist mit der Hervorhebung der Einrückungsebenen da eine große Hilfe.
Dateianhänge
indentation.png
indentation.png (6.01 KiB) 1266 mal betrachtet

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Verchiedene Bücher, GRUNDLEGEND andere Aussagen

Beitrag von Mathias »

Hier steht das vor dem letzten end kein Semikolon stehen sollte, da es nur eine extra Leeranweisung produziert...

Ich mache immer ein ";" ausser ich vergesse es mal. :wink:
Bei C/C++ ist man sogar gezwungen eines zu machen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten