[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Einsteigen mit C oder Pascal?



Hallo allerseits!

Zu diesem Thema ist ja inzwischen eine recht muntere Diskussion
entstanden, die ich natuerlich sehr schoen finde. Fuer diejenigen unter
uns, die noch keine Programmierkenntnisse besitzen, duerften allerdings
die bisherigen Beitraege nicht sehr verstaendlich gewesen sein.

On Sat, 17 Oct 1998, Ilsabe Ewald wrote:

> EH> Falls genuegend Interesse besteht, kann ich ja gelegentlich
> EH> etwas mehr ueber die Unterschiede zwischen C und Pascal
> EH> schreiben.
> Das waere eine feine Sache! Hoffentlich bin ich nicht die
> einzige, die sich dafuer interessiert.

Dankeschoen, Ilsabe! Ich nehme jetzt einfach einmal an, dass es noch
weitere Schnupperwillige unter uns gibt, und versuche mich deshalb an
einem (hoffentlich!) verstaendlicheren Sprachvergleich.

Stellen wir uns einmal folgende einfache Programmieraufgabe: Zwei (ganze)
Zahlen sollen eingelesen und zusammen mit ihrer Summe ausgegeben werden.
Hierzu folgendes Dialogschema:

   Programm: 1. Summand?
   Anwender: 25
   Programm: 2. Summand?
   Anwender: 33
   Programm: Die Summe von 25 und 33 ist 58

Hier eine Loesung in Pascal (in Turbo Pascal darf die erste Zeile fehlen): 

   program test;
   var
      a, b, c: integer;
   begin
      write ('1. Summand? ');
      read (a);
      write ('2. Summand? ');
      read (b);
      c := a+b;
      writeln ('Die Summe von ', a, ' und ', b, ' ist ', c);
   end.

Und dasselbe in C:

   #include <stdio.h>
   main ()
   {
      int a, b, c;
      printf ("1. Summand? ");
      scanf ("%d", &a);
      printf ("2. Summand? ");
      scanf ("%d", &b);
      c = a+b;
      printf ("Die Summe von %d und %d ist %d\n", a, b, c);
      return 0;
   }

So, und weil's so schoen war, noch eine Loesung in C++:

   #include <iostream.h>
   main (void)
   {
      int a, b, c;
      cout << "1. Summand? ";
      cin >> a;
      cout << "2. Summand? ";
      cin >> b;
      c = a+b;
      cout << "Die Summe von " << a << " und " << b
         << " ist " << c << endl;
      return 0;
   }

Zunaechst duerfte auffallen, dass die Formulierung in C kompakter ist als
in Pascal. Wo in Pascal "begin" und "end" stehen, hat C die geschweiften
Klammern; Das Symbol fuer die Wertzuweisung ist in Pascal ":=", in C nur
"="; der ganzzahlige Datentyp heisst in Pascal "integer", in C "int" usw.

Dem "chemisch reinen Leser" duerfte jedoch etwas anderes staerker
auffallen: Die C- und C++-Versionen enthalten mehr Dinge, deren Bedeutung
sich nicht von selbst erschliesst, insbesondere die #include-Direktiven
und die return-Anweisungen. In C ist auch die Bedeutung der Formatstrings
bei printf und scanf nicht so einfach zu erraten, und die Verwendung der
Schreibweise "&a" bzw. "&b" unter scanf stellt oft auch fuer Leute mit
etwas Programmiererfahrung eine gedankliche Huerde dar. Wer schliesslich
noch nie ein C++-Programm gesehen hat, wird ueber die praegnante
Formulierung der Ein-Ausgabeanweisungen zwar staunen, aber sich kaum
vorstellen koennen, was da tatsaechlich passiert.

Genug! Die Mail soll nicht zu lang werden. Ich wollte ja auch keinen
Programmierkurs veranstalten. Es ging hier wirklich nur um einen
bescheidenen Sprachvergleich, der dem absoluten Neuling vielleicht helfen
koennte bei der Entscheidung fuer C oder Pascal als Einstiegssprache.
Fragen zu Einzelheiten beantworte ich natuerlich gern.

Im uebrigen ist fuer die Frage, ob man eine Sprache "mag" oder "nicht
mag", auch das paedagogische Geschick des Lehrers sehr ausschlaggebend.
Das gilt ja bekanntermassen nicht nur fuers Programmieren.

Beste Gruesse
Eberhard