www.mikrocontroller.net

Forum: PC-Programmierung C++ für den Laien erklärt!


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle zusammen!

Ich habe ein Problem: Ich soll für einen Laien die Programmiersprache 
C++ erklären und das übersteigt meine Grenzen!
Ich selbst kenn mich mit der Sprache nicht so wirklich aus und muss mich 
dann schon an Definitionen im Internet halten, nur leider finde ich dort 
keine simple erklärte Definition!

Ich hoffe mir kann jemand bei dem Problem helfen und in ein paar Zeilen 
C++ erklären!

Danke im Voraus!

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also im Sinn von, der Einäugige erklärt dem Blinden die Welt?

Vielleicht hilft dieser Podcast:

Die Programmiersprache C++
Der Versuch einer Annäherung an ein komplexes System
http://chaosradio.ccc.de/cre063.html

Autor: Ein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt Laie? Hat er nur von C++ keine Ahnung, oder von Programmierung 
im allgemeinen, oder meint er bei Notepad schon, der ganze Computerkram 
ist ihm viel zu technisch?

Was heißt erklären? Soll er nachher ein größeres Programm schreiben 
können, soll er wissen, daß das etwas mit Computern und embedded systems 
zu tun hat, ...

Was ist Ziel des Ganzen?

Ansonsten aus der wikipedia:
"C++ ist eine von der ISO standardisierte höhere Programmiersprache."
"C++ ermöglicht sowohl die effiziente und maschinennahe Programmierung, 
als auch eine Programmierung auf hohem Abstraktionsniveau."

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, jemandem eine Programmiersprache erklären, das Problem kenne ich 
umfassendst, da ich zwei Jahre lang eine Informatik-AG an meiner Schule 
geleitet habe.

Meine Erfahrungen:

'Programmieren' vermittelt man am einfachsten anhand von C, am liebsten 
noch unter Dos oder Linux, und nicht etwa mit Delphi, wie es im Lehrplan 
steht.
Den Kurs habe ich mehr oder weniger gezwungenermaßen trotzdem mit Delphi 
gestartet, im zweiten Jahr mit einigen Neulingen war PHP dran. 
Entsprechend wurde nochmal an der Basis gearbeitet, wobei ich nach 
Möglichkeit versucht habe, die Probleme, die sich im ersten Kurs gezeigt 
haben, zu umgehen oder besser zu handhaben.


Klingt blöde, is aber so, zur Begründung:

Um ein Programm zu verstehen, muss man verstehen, was ein 'Programm' 
überhaupt ist, wo es herkommt und wo es hingeht. Benutzt man von Anfang 
an Klickibunti, dann gibt es spätestens dann Probleme, wenn die 
Projektdatei verschwunden ist oder andere versehentliche Verstümmelungen 
eintreten (Datei gelöscht, ohne aus dem Projekt zu entfernen usw.), das 
dann wieder aufzuklären lenkt ab und hält den Unterricht unnötig auf.

Mit C auf einer Konsole (natürlich ist ein graphischer Editor OK, aber 
bitte keine IDE!) kann dahingehend erstmal nichts schiefgehen, das zeigt 
meine bescheidene Erfahrung.
Es lässt sich so anhand einer einzigen Quelltext-Datei ('Hello world!', 
zuerst vom 'Lehrer' zum [stupiden] Abtippen gestellt, und als 
Hauptroutine die Kurzform 'int main()') das Prinzip vom Compiler (bei 
Bedarf auch noch der Zwischenschritt über den Assembler) erklären, die 
Schüler bemerken, dass es keinen Hokuspokus unter der Motorhaube gibt 
und bekommen Sicherheit, und vorallem - das ist das Wichtigste - 
Vertrauen in die Sache und schließlich ins eigene Können, es kann 
nämlich nichts kaputtgehen.

Ist das erste Programm übersetzt und ausgeführt, ist der richtige Moment 
für eine Pause oder einen kleinen Exkurs sonstwohin (Computergeschichte, 
was weiß ich, Hauptsache, das Erfolgserlebnis kann sich einstellen und 
der Stoff kann versacken... klingt auch blöde, ist aber wichtig).


Weiter gehts dann mit etwas Philosophie: Von wegen 'Computer sind doof' 
und 'es gibt keine Fehler' (s.u.). Ersteres soll erneut Vertrauen 
schaffen, und zwar, das nichts von alleine anbrennt oder wegläuft, 
zweiteres schafft selbstvertrauen und Ruhe: Entweder man hat sich 
vertippt oder man hat nicht klar im Kopf, was man erreichen möchte. 
Pasta :-)

Entsprechend ist als nächstes etwas Syntax dran ('es gibt keine 
Fehler...'): Ein bisschen printf(), dazu ein bisschen exit(), indem man 
solches nebeneinanderstellt und ausprobieren lässt, gibt man den 
Zuhörern Gelegenheit, selbst Gemeinsamkeiten zu entdecken und einfache 
Regeln aufzustellen:
- Namen?
- Argumente?
- Programmstruktur! Semikolons etc.

Indem man danach auf die main()-Routine verweist und erklärt, was eine 
Funktion ist (Vergleich mit printf() usw.) schafft man ein Aha- und 
Oho-Erlebnis, denn erfahrungsgemäß ahnen die meisten Neulinge garnicht, 
dass sie bereits unbemerkt solch eine programmiert haben. Auch das 
schafft wieder (Selbst-)vertrauen.

Nach dieser Einheit habe ich wieder eine Pause eingelegt.


Danach kommt wieder eine kurze Theorieeinlage, die sich allerdings 
erheblich verkürzen lässt, wenn die Zuhörer bereits fit in Mathe sind: 
Variablen. Hier erstmal auf int und float beschränken, das reicht für 
erste Annäherungen.

Wie gehabt: Einige Beispiele anbringen und vergleichen lassen, dabei 
einen Vergleich zur Hauptroutine (INT main()) nicht vergessen, denn die 
Syntax ist ähnlich: 'Datentyp Variable, Variable2, Variablen;' bzw. 
'Datentyp Funktionsname'.

Jetzt brauchts nur noch '%i' und '%f' für printf() und schon kann die 
Rechnerei losgehen, auch hier wieder vergleichen und ausprobieren.


Ist man hier angekommen, und blieb der Kurs wirklich an der Stange 
(ehrlich nachfragen, sonst blenden manche unbewusst), ist die Sprache an 
sich verstanden. Alles, was noch fehlt (klar, eigentlich der Hauptteil: 
Kontrollkonstruktionen/if, while, for...), lässt sich locker in den 
Unterricht einstreuen, denn eine solide Basis ist vorhanden.

---

Das klingt vermutlich alles esoterisch und seltsam und die 
Erziehungsapostel werden mich jetzt fressen, aber das Verfahren hat sich 
bewährt.

Autor: Patrick Weinberger (seennoob)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenn die Problematik, wenn man jemanden versucht das Programmieren 
näher zu bringen !!

Was ich gelernt hab ist, dass man erstens wie schon von Sven gesagt für 
Motivation sorgen muss. (erster schreck so leicht sind ned Spiele zu 
programmieren)
Danach wenn man die interesse etwas geweckt hat, fragen sich die Leute 
das geht so und so aber was kann ich mir darunter vorstellen jetzt 
genau. Also Skizzen machen (klingt blöd von einem Programm Skizzen zu 
machen aber Bilder sagen mehr als 1000 Worte).

Etwas von den Abstrakten Codeschnippsel weg gehen.


MFG Patrick

Autor: psychodirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Sven P and All.

Glücklich sind die , die mit Windoofs aufgewachsen sind.....
Ich meine die "Kommando-Zeilen-Eingabe...

Nicht lachen.

Dann unter dem Programm.. konnte man mit "ECHO usw." einiges angezeigt 
bekommen...und kleine Progämmchen erzeugen...
Das ALTE DOS konnte das mit weingen Befehlen!?!

Dann kam C, C+, C++, Perl, CSS, PHP, Visuel Basic, und viele mehr,
ach was auch immer (die Reihenfolge ist frei gewählt)

Wann hat das ein Ende?

Ich möchte nur in meinem Restleben... einfach eine Prog.Sprache
haben, die wirklich für alle begreiflich ist.... ohne Mathe o.ä.
studiert zu haben...

Dirk

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
psychodirk wrote:

> Ich möchte nur in meinem Restleben... einfach eine Prog.Sprache
> haben, die wirklich für alle begreiflich ist.... ohne Mathe o.ä.
> studiert zu haben...

Schau dir Python an.

Übersicht: http://www.way2python.de/
Onlinekurse:
  (Einsteiger) http://ada.rg16.asn-wien.ac.at/~python/how2think/
  (Einsteiger) http://www.wspiegel.de/pykurs/kurs_index.htm
Dokumentation: 
http://starship.python.net/crew/gherman/publicatio...
Openbook deutsch: http://openbook.galileocomputing.de/python/

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
psychodirk wrote:
> Dann unter dem Programm.. konnte man mit "ECHO usw." einiges angezeigt
> bekommen...und kleine Progämmchen erzeugen...
> Das ALTE DOS konnte das mit weingen Befehlen!?!
Das sind keine Programme, das sind Stapeldateien. Mach doch damit mal 
ein paar Schleifen, Verzweigungen usw. Oder rechne mal.

> Dann kam C, C+, C++, Perl, CSS, PHP, Visuel Basic, und viele mehr,
> ach was auch immer (die Reihenfolge ist frei gewählt)
Gerade C war aber z.B. schon vorher da. Dann kam erstmal Basic -- und 
zwar für Dos von Microsoft.
CSS ist im Übrigen auch in keinster Weise eine Programmiersprache.

> Ich möchte nur in meinem Restleben... einfach eine Prog.Sprache
> haben, die wirklich für alle begreiflich ist.... ohne Mathe o.ä.
> studiert zu haben...
Ich hab auch kein Mathe studiert. Aber ohne Variablen kann man irgendwie 
schlecht programmieren, also kann man schon, aber es wird dadurch nicht 
einfacher O_o

Wenn dich das alles so sehr stört, empfehle ich dir mal eine ordentliche 
Konsole, die BASH oder SH oder sowas, die kann man im Gegensatz zu Dos 
bequem programmieren und du hast auch dein ECHO.

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven P. wrote:

> Das sind keine Programme, das sind Stapeldateien. Mach doch damit mal
> ein paar Schleifen, Verzweigungen usw. Oder rechne mal.

Geht alles.

> Gerade C war aber z.B. schon vorher da. Dann kam erstmal Basic -- und
> zwar für Dos von Microsoft.

BASIC gab es lange vor DOS.

> Wenn dich das alles so sehr stört, empfehle ich dir mal eine ordentliche
> Konsole, die BASH oder SH oder sowas, die kann man im Gegensatz zu Dos
> bequem programmieren und du hast auch dein ECHO.

Auch die bash wird erst durch die externen Programme wirklich brauchbar.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sag dazu nix mehr, wird ja doch nur falsch verstanden.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liebe Leute!

Ich bin zufällig auf diese Seite und dieses Forum gestossen und als ich 
begonnen habe das durch zu lesen hab ich aufeinmal gecheckt das ihr alle 
mich damit ansprichts:-). Ich hab zwar das minimale Grundwissen in C++ 
aber ich bräuchte eure Hilfe.
Es ist nämlich so: Ich muss eine Programm schreiben welches wie folgt 
funktionieren soll: Der Mikrocontroller wartet ab was auf Port1 Pin 1 
passiert, erst wenn eine steigende Flanke zu erkennen ist soll er Port 1 
Pin 2 auf High schalten (halt invertieren) dann soll eine Wartezeit 
abgewartet werden und nun folgt das selbe schema nur das pin 2 diesmal 
auf Low gehen soll(invertieren) usw...
Kann mir vorstellen dass das für euch sich lächerlich anhört aber 
trotzdem bedanke ich mich im Voraus für jede einzelne Hilfestellung:-)

Dankeschön liebe grüße Thomas

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest mindestens angeben, um welchen Mikrocontroller es geht.

Und eher wenige Mikrocontroller werden in C++ programmiert, da zu 
umfangreiche Programme rauskommen. Jedenfalls wenn Sprachteile von C++ 
im Spiel sind, die über C hinausgehen.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Außerdem keine Fremden Threads für eigene Fragen kapern.

Und dann außerdem im richtigen Bereich fragen. Hier gehts um 
PC-Programmierung!!

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.