www.mikrocontroller.net

Forum: PC-Programmierung Vorlesung Programmieren - Musterlösung


Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab hier mal zwei Ausschnitte aus den Musterlösungen unserer Prog. 
Professorin, und möchte mal dazu eure Meinung hören. Die Formatierung 
ist übrigens nicht verändert:

#include<iostream.h>
void paritaet_entf(char & z)
{z = z&127;}
...

....
double x1=1.2, y1=2.3, x2=1.0, y2=2.5;
double w1,r1,w2,r2;
if(polar(x1,y1,w1,r1)) cout<<"Winkel: "<<w1<<" Radius: "<<r1<<endl;
else cout<<"Fehler";<<endl;
if(polar(x1,y1,w2,r2)) cout<<"Winkel: "<<w2<<" Radius: "<<r2<<endl;
else cout<<"Fehler";<<endl;
...

Meiner Meinung nach ist das schon allein wegen der Formatierung 
schlichtweg Schrott

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das ist kein Beispiel fuer guten Code.

Die Zeile
else cout<<"Fehler";<<endl;
ist uebrigens ein Syntax-Fehler wegen des Semikolons hinter dem string. 
Das spricht nicht dafuer, dass du unveraendert copy&paste gemacht hast.


Ich koennte noch viele weitere Punkte aufzaehlen, aber was erwartest du 
dir davon? Sinnvoller waere es vielleicht der Professorin eine E-Mail zu 
schreiben, wo du ihr sagst dass der Code sich bei dir nicht kompilieren 
laesst aus den und den Gruenden (iostream.h, etc.). Vielleicht bekommst 
du dann naechstes Mal besseren Code.

Aber einfach hier im Forum fremden Code kritisieren zu lassen halte ich 
fuer ueberfluessig, denn davon hat niemand was.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> möchte mal dazu eure Meinung hören. Die Formatierung
> ist übrigens nicht verändert:

Grauenvoll. Unleserlich. Leider aber nicht ungewöhnlich für Leute, die 
C++ lehren. Außerdem wird ein Header benutzt, der veraltet ist, und zwar 
seit C++ vor nunmehr rund 9 Jahren zur ISO-Norm wurde. Er war nie Teil 
von ISO C++.

> Ich koennte noch viele weitere Punkte aufzaehlen, aber was erwartest du
> dir davon?

Ich schätze, daß er sich nicht sicher ist und deshalb mal nachfragt. 
Immerhin ist er der Student, und Professoren sollten eigentlich mehr 
Ahnung von dem haben, was sie lehren, als ihre Studenten.

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja ich wollt einfach mal ein paar Meinungen provozieren.

Ich selber kann denk ich schon ganz gut programmieren.
Da das was ich bissher von ihr bekommen und gehört hab einfach komplett 
meinen Vorstellungen von "gutem" Programmiren wiederspricht wollt ich 
einfach mal ein paar andere Meinungen bekommen um mir sicher zu sein 
dass ich das ganze nicht mit den "falschen" Vorstellungen betrachte.

Aber ich denke die oberen zwei Beiträge beschreiben genau das was ich 
auch von dem Ganzen halte.

Die Frau ist leider nicht zu überzeugen, deshalb bleib ich einfach der 
Vorlesung fern und lern das Zeug selber...

Viele Grüße
 Der Student

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich selber kann denk ich schon ganz gut programmieren.

Obacht ;-) Zeig' mal was von dir...

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ja nicht behauptet dass ich gut bin, aber immerhin hab ich gemerkt 
dass das Müll is....
;-)

Aber warum nicht, zum meckern findet man ja immer was also hier mal ein 
beliebiger Ausschnitt aus dem aktuellen Projekt
//------------------------------------------------------------------------------------------------//
//Kopiert den RAM Buffer in den LCD-Speicher
void LCD_Update(void){

  unsigned char x;
  unsigned char Line;
  unsigned char *RAMptr = (unsigned char*)LCD_RAM_Buffer;
  
  //Alle Pages durchlaufen
  for(Line = 0; Line < LCD_Lines; Line++){

    //Set Page Address
    LCD_WriteCMD(CMD_Set_Page | Line);

    //Set Column Address to 0
    LCD_WriteCMD(CMD_Set_Col_Lo | 0);
    LCD_WriteCMD(CMD_Set_Col_Hi | 0);

    for(x = 0; x < LCD_Width; x++){
       LCD_WriteData(*RAMptr++);
    }
  }
}

jetzt kann ja jeder für sich entscheiden was ihm besser gefällt...

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur eine Kleinigkeit: Ich gehe davon aus, dass das C-Dateien sind, denn 
bei C++ wuerde ich versuchen die Variablen so lokal wie moeglich zu 
deklarieren.

Ich poste das nur, weil der Code im Originalpost anscheinend C++-Code 
darstellen sollte und die coding styles sich je nach Sprache schon 
unterscheiden.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nur eine Kleinigkeit: Ich gehe davon aus, dass das C-Dateien sind, denn
> bei C++ wuerde ich versuchen die Variablen so lokal wie moeglich zu
> deklarieren.

Dieses Feature wurde bereits im letzten Jahrtausend auch in C eingeführt 
;-)

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das is C Code für ein AVR, das find ich is C auch ganz gut aufgehoben. 
In der Vorlesung lernen wir C(++) am Rechner. C++ mag ja irgendwie schon 
seine Berechtigung haben, aber ich find die Sprache für "normale" 
Anwendungen unter Windows (DOS) etwas überholt...

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Außerdem sind außer LCD_RAM_Buffer alles defines, und LCD_RAM_Buffer is 
ein ziemlich großes Array das im Stack nichts verloren hat und von 
verschiedenen Funktionen manipuliert werden können muss..

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu muss ich auch noch etwas klarstellen:

>ist uebrigens ein Syntax-Fehler wegen des Semikolons hinter dem string.
>Das spricht nicht dafuer, dass du unveraendert copy&paste gemacht hast.

Ich hab WIRKLICH nur Copy&Paste gemacht, der Code wimmelt nur so von 
Syntaxfehlern, mich wundert dass da nur einer (zwei) drin ist...

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Student wrote:
> jetzt kann ja jeder für sich entscheiden was ihm besser gefällt...

Keine ungarische Notation, schonmal gut.
Coding-Style nicht in Richtung BSD oder GNU mutiert, noch besser.
Wenn jetzt noch die Groß/Kleinschreibung für lokale/globale Variablen 
und Defines und die Einrückungen konsistent wären...

Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Coding Styles haben ja unter anderem die Eigenschaft,
dass sie dem Compiler egal sind, sogar sein müssen.
Also warum darüber diskutieren ?
Hilfsmittel zur P2P-Kommunikation, mag sein.

Wer hier ein Dogma kreiert (blos nicht GNU etc), der
bringt nicht mehr als seine persönliche Meinung rüber.

Mein Rat:
Baue korrekten Code, den Du auch noch nach einem Jahr
selber nachvollziehen kannst! Das kann dann ein anderer
auch, denn Du hast passende Kommentare dort platziert,
wo es nötig ist...

Autor: Bernhard Walle (bwalle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht aber nicht nur darum, dass du den Code verstehen kannst (wie du 
schon
selber bemerkt hast), sondern auch dass andere den Code einfach erfassen
können. Deshalb ist es sinnvoll, dass zumindest in einem Projekt ein
einheitlicher Coding-Style verwendet wird. Das kann der K&R-Stil sein, 
das
kann der ISO-C-Stil sein, das kann der GNU-Stil sein, aber bitte 
wenigstens
einheitlich.

Ein einheitlicher GNU-Stil ist mir immer noch tausendmal lieber (obwohl 
ich
ihn nicht besonders mag) als ein Kraut-und-Rüben-Stil Marke Eigenbau ...

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wer hier ein Dogma kreiert (blos nicht GNU etc), der
> bringt nicht mehr als seine persönliche Meinung rüber.

Hier sind Dogmen durchaus angebracht, weil die Althergebrachten sinnlos 
sind.
1. Man soll sich z.B. (GNU) an Emacs orientieren:
"Insert extra parentheses so that Emacs will indent the code properly"
Die Tools müssen das tun was der Programmierer will und nicht umgekehrt.
2. Klammern in einer neuen Zeile reduzieren den 
erfassbaren/überblickbaren Code und verringern damit letztendlich die 
Produktivität.
3. Einrückungen ala Tab = 8 damit keine Zusammenhänge mehr erkennbar 
sind und die uralt Apps damit klarkommen u.v.a.m.

Autor: Outi Outlaw (outlaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte in den letzten Monaten mit mehreren "Profis" (Lehreren und 
Lehrerinnen) zu tun, die viel Kohle für das Lehren von diversen Dingen 
bekamen (viel Kohle, weil "spezialisiert" und extern mit öffentlichn 
Geldern finanziert).

Mein Fazit möchte ich hier aber nicht Preis geben, denn das würde 
sicherlich gelöscht.

Daher wundern mich solche Codeausschnitte wie im EP nicht im Geringsten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.