nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: Problem read

Von: Sieghard Schicktanz (sieghard@schicktanz.schs.de) [Profil]
Datum: 19.02.2007 21:03
Message-ID: <20070219210322.b84e87af.Sieghard@Schicktanz.SchS.de>
Newsgroup: de.comp.lang.pascal
Hallo Dirk,

Du schriebst am 18 Feb 2007 18:02:00 +0000:

> >> n1,n2:integer;
>
> > _Sehr_ sprechende Variablennamen, muß ich schon sagen... :->
>
> Die Variablen habe ich wg. der besseren Übersichtlichkeit für mich aus
> dem Buch entnommen, aber was soll daran nicht "sprechend" sein?

Davon bin ich (wie auch für das gesamte Programm) eigentlich ausgegangen.
Bei einem Buch, insbesondere für Anfänger, sollte man eigentlich etwas
aussagefähigere Angaben erwarten können.

> Im übrigen habe ich das Programm aus dem Buch (in hier aber nicht
> weiter relevanter Weise, z. B. mit der Unit crt) leicht modifiziert.
> Soll ja mal vorkommen.

Hab' ich was dagegen geschrieben?

> >> z1:=' ';
> >> z2:=' ';
> >> n1:=0;
> >> n2:=0;
>
> > Wenigstens initialisieren die ihre Variablen anständig (aber
> > umständlich).
>
> Bitte kläre mich auf: Was bitteschön ist daran umständlich?

CONST
n1: integer = 0;
n2: integer = 0;

- wenn das Buch anscheinend schon einen Borland-Dialekt voraussetzt, dann
könnte man sowas erwarten.
Oder _tut_ es das garnicht, sondern - weil Du schriebst, daß Du das
Programm "mit der Unit crt" modifiziert hättest - bespricht es ein
_generisches_ Pascal?
Dann war das (leider) ein dadurch erweckter falscher Eindruck.

> > Ein paar Punkte zur Illustration:
> > Völlig unstrukturierte Schreibweise ohne Einrückungen entsprechend
> > der Verarbeitungsstruktur,
> > Verwendung völlig aussagefreier Variablenbezeichnungen,
> > Schreibweise der Statements ohne strukturierende und das Lesen
> > unterstützende Leerzeichen,
> > völlig unmotivierte Wechsel zwischen Groß- und Kleinschreibung usw.
>
> So ganz kann ich Deiner vernichtenden Kritik nicht folgen. Sicher, es
> handelt sich jetzt nicht um ein bahnbrechendes Werk der Pascal-
> Programmierung, es ist ein eher unbedeutendes Werk eines Anfängers,
> der aber gerne verstehen möchte, was da abgeht.

Es handelt sich - Deinen Worten zufolge - um ein Beispiel aus einem
redigierten Werk eines Verlages, bei dem man heute davon ausgehen _muß_,
daß diese Daten in maschinenlesbarer Form vorhanden sind und von den
Lesern / Lernenden direkt übernommen werden können.
Wenn da so ein - mit Verlaub gesagt - Programm-Matsch veröffentlicht wird,
dann ist das durchaus als ein relevantes Zeichen schlechter Qualität zu
werten.
Was anderes wär's, wenn Du das Programm komlett _selbst_ geschrieben
hättest - ich gehe allerdings davon aus, daß Du dann die Zeile
writeln('Cooper/Clancy, Pascal, Braunschweig 1991, p. 25, Selbsttest');
eher _nicht_ hingeschrieben hättest.
Was eben impliziert, daß das aus dem Buch übernommen wurde, und dzf. eine
Kritik des Buches rechtfertigt.

> Wohlgemerkt, wir sprechen hier von etwas zwischen 10 und 20 Zeilen
> Pascal-Code, ein IMHO eher übersichtlicher Umfang.

28 Zeilen, um genau zu sein. Inklusive der Reklameeinblendung.

> Die Einrückungen habe ich mir einfach geklemmt, das Programm ist doch
> wirklich einfach strukturiert, außerdem ist es fokussiert auf das
> eigentliche Problem.

Sicher ist das Programm einfach, trotzdem sollte man sich auch dabei
angewöhnen, eine allfällige Struktur deutlich darzustellen, damit man sich
das nicht auch bei umfangreicheren Projekten mal "klemmt" - dann klemmt's
leicht später, wenn man wieder auf das vorherige zurückkommen muß und zu
verstehen versucht, was da eigentlich abläuft. Das kann sogar dann schwierig
werden, wenn man das selber geschrieben hat.

> Die Variablenbezeichner sind keineswegs aussagefrei. n(ummer) für eine
> Integer- und z(eichen) für eine Char-Variable, scheint mir da
> aussagekräftig genug. Bitte belehre mich eines besseren.

Was Du Dir dabei gedacht hast, weißt _Du_ - und _nur_ Du. Zumindest bisher.
_Ich_ wußte das eben nicht - ich war im Gedankenlesen eben leider schon
immer recht schlecht...
(Und wußte deswegen eben nicht, daß das von _Dir_ stammte. Du hast es eben
leider auch nicht dazugeschrieben.)

> Der Wechsel zwischen Groß- und Kleinschreibung ist schon etwas von
> Motivation getragen, ist aber für das angesprochene Problem "read"
> eher uninteressant.

Er macht die Verständlichkeit nicht besser - zumindest nicht, wenn der
prospektive Leser die dahinterstehenden Stil-Leitlinien nicht kennt.

> Was also möchtest Du mit Deiner Kritik aussagen?

Daß ich nach diesem Beispiel (vorausgesetzt, es steht so in dem Buch)
dieses _Buch_ keinesfalls als empfehlenswert ansehen kann.
Das hatte ich doch - in Form einer kleinen "Bewertung" - auch
dazugeschrieben?
(Warum fühlst Du eigentlich Dich selber betroffen?)

> > Falsch - erstens hast Du nur zwei Alternativen präsentiert, und
> > zweitens sind beide keine Lösungen.
>
> Das ist leider nicht so ganz richtig. Ich habe die Lösung von Cooper/

Das ist keine _Lösung_, sondern allenfalls eine Darstellung. Der
Ausgangspunkt der Problematik, sozusagen.

> Clancy angeführt sowie meinen eigenen Versuch. Drittens hatte ich

Ein _Versuch_, der keinen Erfolg hat (Du hast deshalb nachgefragt) ist auch
keine _Lösung_.

> erwähnt, dass das kompilierte Programm einen Runtime Error erzeugt,
> das wäre dann Lösung Nummer drei.

Und ein Programm, das einen Runtime-Error erzeugt, ist auch keine Lösung,
sondern ein Problem.

> Ich habe inzwischen gesagt bekommen, dass mein Progrämmchen - mit GNU
> Pascal kompiliert - sehr wohl genauso funktioniert, wie Cooper/Clancy
> es beschrieben haben.

Das ist durchaus möglich - ich hatte ja geschrieben, daß die Behandlung der
Eingabedaten durch die Prozedur "read" noch ein(ig)e Feinheit(en)
beinhalten kann, die in der Beschreibung des Buches überhaupt nicht erwähnt
zu werden scheint, z.B. nämlich die Behandlung des Falles, daß das Zeichen,
das einen Zahlenwert abschließt, _kein_ Leerzeichen oder Zeilenende ist.
Aber _genau der_ Fall wird von dem Programm provoziert - und kann dann eben
durchaus anders behandelt werden, als die Beschreibung der Autoren implizit
nahezulegen scheint. (Da drücke ich mich jetzt deswegen so vorsichtig aus,
weil eine evtle. Angabe dazu nicht aus Deinem Posting zu ersehen ist -
jedenfalls scheinst Du daraus geschlossen zu haben, daß ein solcher Fall
dem beschriebenen äquivalent behandelt werden sollte - aber das ist
durchaus _nicht_ gesichert.)

> Es könnte sein, dass Du Deine Herangehensweise an Postings von
> Anfängern überdenken solltest.

Ooch, nimm's nicht tragisch. Zum einen habe ich ja eh nicht _Dich_
kritisiert, sondern das von Dir erwähnte Buch (und da gibt's wirklich jede
Menge Schrott), und zum anderen habe ich "nur" versuchen wollen, Dir einige
Gedankengänge zur Analyse solcher Situationen nahezulegen. Vielleicht habe
ich mich dazu etwas zu sehr von der Darstellung Deines Beispiels als ein
Element des Buches verleiten lassen, dieses zum Hauptgegenstand der Kritik
zu machen. Wenn Dich das von Durchlesen meiner Antwort abgehalten haben
sollte, wäre das allerdings schade, weil die wesentlichen Informationen
eben erst am Ende stehen.
Ich hoffe, daß Du trotzdem bisserl Nutzen draus ziehen kannst.

(Und sei vorsichtig, wenn Du weitere Schritte im Usenet machst -
insbesondere wenn's um die Programmiersprahce C und allem, was damit
zusammenhängt, gehen sollte - dort "fliegen die Fetzen", wenn's um
Stilfragen geht... ;)

----
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------

[ Auf dieses Posting antworten ]

Antworten