Jump to content

C++ Grundkenntnisse


Gast Best-Of-Me

Empfohlene Beiträge

HI LEUTZ,

 

da ich ja jetzt bei der Deutschen Telekom eine Ausbildung als IT-Systemelektroniker angefangen habe, muss ich auch zur Berufsschule gehen! wir haben ein fach das heist AE=Anwendungsentwicklung!!! Nur leider hatte ich bis jetzt keinen kontakt zu C++ und der Lehrer ist der reinste trottel!!!! er hat uns ein qudratwurzel programm programmieren bzw. "abschreiben lassen" und wir werden morgen eine klausur über C++ schreiben und sollen alle begriffe die da drin enthalten sind und wofür die stehen auswendig können... meine frage war jetzt ob mir jemand eine website nennen kann, dass sowas wie ein nachschlagwerk aufgebaut ist, also das ich die begriffe nachlesen kann wofür sie gut sind... oder vielleicht sich die zeit nimmt und mir die funktionen etc. erklärt...

 

vielen dank schon mal im vorraus

 

mfg: The-Hacker

 

hier der quelltext:

 

#include <iostream.h>

#include <conio.h>

#include <math.h>

 

double quadrat (double);

 

void main()

{

double x, y;

 

cout << "Bitte geben Sie eine Zahl ein: ";

cin >> x;

y = sqrt (x);

cout << "Die Quadratwurzel von " << x << " betraegt " << y;

y = quadrat (x);

cout << "\nDas Quadrat von " << x << " betraegt " << y;

gecht();

 

return;

}

 

 

double quadrat (double a)

{

double b;

 

b = a * a;

return b;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

 

Schau mal darein :

 

http://www.cpp-entwicklung.de/cpplinux/cpp...n/cpp_main.html

 

Ist steht zwar für Linux drüber ist aber für Deine Zwecke egal.

 

Da sollte alles drinstehen, ist aber ein ganz schön grosses Werk.

 

Schau Dir´s mal an und wenn Du was nicht findest, dann frag ruhig,

bei dem Programm kann ich Dir schon helfen.

 

Gruß!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

 

Schau mal darein :

 

http://www.cpp-entwicklung.de/cpplinux/cpp...n/cpp_main.html

 

Ist steht zwar für Linux drüber ist aber für Deine Zwecke egal.

 

Da sollte alles drinstehen, ist aber ein ganz schön grosses Werk.

 

Schau Dir´s mal an und wenn Du was nicht findest, dann frag ruhig,

bei dem Programm kann ich Dir schon helfen.

 

Gruß!

:o ich wollte es eigentlich bis morgen früh "drauf" haben :D gibt es da nicht etwas kürzer und knapperes?!?!?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

also kurz gesagt muss ich nur wissen was diese begriffe bedeuten z.B. "void main()" wofür steht void was macht es und warum sind die klammern so wichtig etc. und dann müsste ich noch wissen wie dieses programm arbeitet!! aber das kann ich ja dann selber erlernen wenn ich die bedeutungen der begriffe kenne...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

 

ist schon lange her, das ich mit C++ was gemacht habe. Aber dafür sollte es reichen:

Also

void main()

ist das Hauptprogramm. VOID ist ein leerer Datantyp, wenn ich das so salopp sagen kann. Ist zwar nicht ganz korrekt, aber das kann man sich so vorstellen. Die Klammern sind von Programmiersprache zu Programmiersprache anders zu setzten. Normalerweise steht in der Klammer noch ein paar Argumente, aber die müssen in main nicht unbedingt gefüllt werden. Auch ist bei der main das weglassen der Argumente erlaubt, was aber eine Ausnahme ist.

Die Befehle cout und cin stehen für Ausgabe und Eingabe. SQRT ist eine mathematische Funktion welche über die include math.h eingebunden wird. Hoffe konnte dir bisschen helfen. Noch was: Das Programm ist nicht vollständig.

 

Boutch

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

 

ist schon lange her, das ich mit C++ was gemacht habe. Aber dafür sollte es reichen:

Also

void main()

ist das Hauptprogramm. VOID ist ein leerer Datantyp, wenn ich das so salopp sagen kann. Ist zwar nicht ganz korrekt, aber das kann man sich so vorstellen. Die Klammern sind von Programmiersprache zu Programmiersprache anders zu setzten. Normalerweise steht in der Klammer noch ein paar Argumente, aber die müssen in main nicht unbedingt gefüllt werden. Auch ist bei der main das weglassen der Argumente erlaubt, was aber eine Ausnahme ist.

Die Befehle cout und cin stehen für Ausgabe und Eingabe. SQRT ist eine mathematische Funktion welche über die include math.h eingebunden wird. Hoffe konnte dir bisschen helfen. Noch was: Das Programm ist nicht vollständig.

 

Boutch

ja so'n bisschen hast du mich schon angeschubst!!! THANX!!! bin für jede hilfe dankbar!!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

also

 

Ein Programm besteht aus Funktionen.

Es gibt immer eine Hauptfunktion "main" und evtl. Unterfuntionen wie "double quadrat (double a)"

 

vor dem Funktionsnahmen steht immer die Art des Rückgabeewertes der Funktion.

void = keine Rückgabe

double = Rückgabe eines Wertes im Varaiblenformat double.

 

dann folgt der Name der Funktion. In der Klammer stehen Werte die an die Funktion

übergeben werden. "double quadrat (double a)" bedeutet daß beim Aufruf der Funktion

ein double Wert übergeben wird der dann in der Funktion mit dem Variablennamen "a"

zur Verfügung steh und mit dem dann in der Funktion gerechnet werden kann.

Eine Funktion muss immer mit den Klammern aufgerufen werden, So ist die Syntax von C oder C++ festgelegt.

 

Nun zur Funktion:

 

double x, y; Variablen x,y werden deklariert .

 

 

 

cout

cin >> x; ein Wert wird von der Tastatur eingelesen und in x geschrieben

 

y = sqrt (x);

sqrt ist eine funktion die die Quadratwurzel von x berechnet

"y = " das Ergebnis der Quadratwurzelberechnung wird in y geschrieben

 

cout

es wird erst der text, dann die Variable x, dann text, dann y (Ergebnis) ausgegeben

 

y = quadrat (x);

die Funktion quadrat wird aufgerufen, ihr wird der Wert x übergeben und das Ergebnbis wird in y geschrieben

 

cout

Ausgabe des ergebnisses

 

gecht();

kann das sein, daß das getc oder getch heissen soll? bedeuten würde das

auf eine Eingabe warten.

 

das return kommt mir da komisch vor, ob das hinhaut, da mit void main keine Rückgabe angtegeben ist?

 

 

double quadrat (double a)

{

double b;

 

b = a * a;

return b;

}

 

Funktion quadrat liefert einen double wert zurück und erhält eine Variable übergeben

 

double b : Hilfsvariable wird deklariert.

 

b = a mal a

 

return b : das ergebnis von a*a wird zurückgegeben, steht danach in y

 

 

double quadrat (double); am Anfang net sich Prototypendeklaration.

ist wichtig da der compiler von oben nach unten liest. würde das nicht dastehen

würde er im Hauptprogramm an der stelle

 

y = quadrat (x);

 

abbrechen, da ihm die Funktion nicht bekannt ist.

 

 

#include

mit include werden fertige Librarys mit z.B. Standartfunktionen eingebunden.

diese stehen dann im Programm zur verfügung.

C oder C++ kennt ansich nur die vier Grundrechenarten. sqrt ist eine Funktion aus der Library math.h

 

 

 

Soweit klar???

 

Gruß!

Link zu diesem Kommentar
Auf anderen Seiten teilen

#include <iostream.h> // Bibliothek einbinden

#include <conio.h>

#include <math.h>

 

double quadrat (double); // Funktionsprototyp

 

void main() // main Methode einsprungspunkt für Programm

{

double x, y; // Variablen definiert aber nicht initialisiert

 

cout << "Bitte geben Sie eine Zahl ein: "; // Ausgabe Befehl auf die Konsole(console output)

cin >> x; // Einlesen von der Konsole

y = sqrt (x); // Quadratwurzel von x Ziehen

cout << "Die Quadratwurzel von " << x << " betraegt " << y;

y = quadrat (x);

cout << "\nDas Quadrat von " << x << " betraegt " << y;

gecht();

 

return; // Kann da nicht stehen da die main Methode vom Typ void ist und keinen

Rückgabe wert liefert

}

 

 

double quadrat (double a) // hier fängt die Methode quadrat an

{

double b;

 

b = a * a;

return b; // b wird an das Aufrufende Programm zurück gegeben

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo, bist du dir sicher, dass das programm so läuft??? ich bin ziemlich sicher dass das mit void main nicht stimmt. muss das nicht int main heissen? und weiter unten muss return 0 stehen. das main steht übrigens für das hauptprogramm. ich weiss ja nicht wie tief ihr da noch reingeht, aber später besteht ein programm aus mehreren teilen, und dieses main darf bzw. muss nur einmal vorkommen. und dieses gecht(); oder getc(); hmmm kenn ich nicht. und die funktion double quadrat(double a) kann auch nicht stimmen. double ist keine beschreibung für eine funktion. da müsste es void quadrat(double a) heissen. den rest hat ja worschter ja ganz gut erklärt. habt ihr denn kein skript von der schule bekommen? ein gut gemeinter rat von mir: das was ihr jetzt gerade macht ist wirklich nicht schwer. wenn du jetzt den faden verlierst, dann gute nacht wenn pointer & co. kommen.

 

Rayden, der Mann

Link zu diesem Kommentar
Auf anderen Seiten teilen

@stefanie

 

das mit dem Return steht steht in meiner Anleitung drin :D

Ich bin mir nicht sicher ob es sinvoll ist hiier schon mit Methoden anzufangen.

 

Der Quelltext ist mit Ausnahme der Header Dateien noch kein OOP

sondern C.

Das könnte evtl. verwirren.

 

@Rayden

 

glaub mir das void main haut hin, das heißt einzig und alleine daß die main Funktion keinen Wert zurück gibt.

Ist nicht unbedingt gängig, da ansich immer ein Errorcode zurückgegeben wird, aber es geht.

Es beißt sich auf jeden Fall mit dem Return unten.

Es muss auch nicht unbedingt return 0; heissen, sondern es kann ein beliebiger Wert

auch über eine Variable zurückgegeben werden.

Einzig Strings oder char arrays sind etwas problematisch.

 

alles was vor dem Funktionsnamen steht hat nichts mit ner beschreibung der Funktion zu tun

sondern definiert den Typ des Rückgabewertes.

Das kann nahezu jeder Grundvariablentyp sein wie

int

double

float

char

usw.

 

Das haut auf jeden Fall hin so.

 

 

 

Gruß!

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ Worschter

 

Ja stimmt das mit dem Return steht in deiner Anleitung drinn.

Aber ich bin der Überzeugung wenn man direkt mit OOP anfängt hat man später

keine schwierigkeiten umzudenken. Außerdem lernt man so direkt die Richtigen begriffe.

 

Aber ich habe ja ganz oben beim erstellen des Prototypen Funktion geschreiben nur unten ist mir leider Methode rausgerutscht.

Eigentlich um es genau zu nehmen ist die Bezeichnug Methode hir in dem Beispiel total falsch das sich die """Methode""" nicht in einer klasse befindet.

Es ist halt wirklich nur eine Funktion

 

@ Raiden

Wenn es int main heist braucht man das return 0

Wenn es void main heist muß das return weg

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo, bist du dir sicher, dass das programm so läuft??? ich bin ziemlich sicher dass das mit void main nicht stimmt. muss das nicht int main heissen? und weiter unten muss return 0 stehen. das main steht übrigens für das hauptprogramm. ich weiss ja nicht wie tief ihr da noch reingeht, aber später besteht ein programm aus mehreren teilen, und dieses main darf bzw. muss nur einmal vorkommen. und dieses gecht(); oder getc(); hmmm kenn ich nicht. und die funktion double quadrat(double a) kann auch nicht stimmen. double ist keine beschreibung für eine funktion. da müsste es void quadrat(double a) heissen. den rest hat ja worschter ja ganz gut erklärt. habt ihr denn kein skript von der schule bekommen? ein gut gemeinter rat von mir: das was ihr jetzt gerade macht ist wirklich nicht schwer. wenn du jetzt den faden verlierst, dann gute nacht wenn pointer & co. kommen.

 

Rayden, der Mann

den faden kann ich ja garnicht verlieren wenn ich den noch nie gefunden hatte.... der lehrer ist einfach nur zu dämlich es vernünftig rüber zu bringen!!! denn niemand versteht das was er versucht uns zu erklären!!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

is ja übel, der typ bringt euch nichts bei, lässt aber eine klausur schreiben...

 

ist echt schlimm wenn lehrer sachen unterrichten müssen, von denen sie nichts verstehen bzw. nur techniker ohne pädagogische fähigkeiten sind.

 

hab so was ähnliches auf meiner berufschule. bin angehender IT-System-Kaufmann, wir haben ein fach, das nennt sich IUT (was das heissen soll hab ich vergessen, sowas wie "IT grundlagen für noobs"). dem herrn "fachlehrer" müssen wir fast jeden block irgendwas erklären oder wir streiten mit ihm (stur ist der depp auch noch!!), bis einer infos ausm netz zieht, die seine haarstreubenden "thesen" widerlegen.

sein vorgänger wusste schon wovon er redet, aber hatte das gleiche prob wie dein lehrer - keiner hat ihn verstanden.

 

//ontopic mode on

 

zum thema c/c++ kann ich dir nur empfehlen dich selbst damit zu beschäftigen. ganz gut sind zB bücher des Sams' verlages (englisch). ich habe mal mit Teach Yourself C in 21 Days angefangen, danach kam Teach Yourself C++ in 21 Days. geniale bücher, leicht verständlich, gute beispiele - genau richtig für ein anfänger und fortgeschrittenere werden auch nicht enttäuscht. nebenbei lernt man noch etwas englisch.

informatik unterricht in der schule ist zwar schön und gut(wie du schon bemerkt hast, leider sehr abhängig vom lehrkörper), wenn du es aber ordentlich lernen willst, ist selbststudium angesagt.

 

cu

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

 

habe ganz vergessen, das man Funktionen vordeklarieren kann. :D

Na dann iost es OK.

Aber bzgl. den Lehrer muß ich sagen, das auch kein Lehrer einem das Programmieren beibringen kann. Er kann Hilfestellungen geben, aber das Programmieren liegt bei einem selbst, d.h. man muß sich damit beschäfitigen. Ein guter Coder ist der viel Erfahrung damit hat.

Ich bin zwar kein Lehrer, aber dafür Coder. :o

 

Boutch

Link zu diesem Kommentar
Auf anderen Seiten teilen

@boutch: richtig programmieren lernt man durch programmieren.

 

ich hab mir vorhin nochmal die übungen angeschaut, die wir in der schule gemacht hatten :o:D:D

ich finde trotzdem dass java leichter zu lernen ist wie c++ (kam mir jedenfalls so vor). aber jedem das seine.

ich bin bestimmt zu spät dran aber ich wünsch dir viel glück bei der klausur.

 

Rayden, der Mann

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ rayden: stimmt, nur duch programmieren lernt man wirklich programmieren. Ein Lehrer kann dich nur unterstützen.

 

Ich finde auch, das JAVA einfacher zu lernen ist, da es dort keine Zeigeroperationen wie in C++ gibt. Abhesehen davon ist es übersichtlicher, wenn es um Vererbung geht, da es dort nur einfache Vererbung gibt.

 

Butch

Link zu diesem Kommentar
Auf anderen Seiten teilen

also dann erklär mir mal eins: warum lernen dann alle C++??? für mich ist diese sprache so komplex (ich sage nicht dass sie schlecht ist) dass wirklich nur programmierer da ran sollten. was bringt es, wenn leute in ihrer ausbildung das lernen, nur schwierigkeiten haben und danach sowieso fast nichts mehr damit zu tun haben. ich finde er sollte als elektroniker assembler lernen. aber die schulen haben sowieso ein merkwürdiges system. ich hab als anwendungsentwickler sage und schreibe 2 monate programmieren gehabt, musste mich aber monatelang mit servern, benutzerrechte, domänen,....rumschlagen. meine ganzen programmierkenntnisse hab ich mir alle selber beigebracht. probieren..probieren...probieren...

 

so und jetzt wünsche ich allen noch einen schönen arbeitstag.

 

Rayden,....

Link zu diesem Kommentar
Auf anderen Seiten teilen

... liegt doch fast auf der Hand, warum in Schulen noch C++ unterrichtet wird. Es ist halt das Personal, das C++ kann. Java können die wenigsten älteren Lehrer. Abgesehen davon ist es eine gute Übung.

So, nun frohes schaffe.

 

Boutch

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dafür gibt es nen simplen Grund, C ist auf Hardwareebene einfach wesentlich schneller als Java.

Soweit mir bekannt ist schlägt C oder C++ in der Richtung nix oder nur wenig, abgesehen von Assembler.

C/C++ kann Assemblercode einbinden kann das Java auch, ich denke nicht oder täusch ich mich?

Ich kenne Java nicht, aber in der hinsicht hat Java, da es sehr auf Portabilität ausgelegt ist, in meinen Augen seine Schwachstellen.

 

Gruß!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Java wird in der VirtualMachine ausgeführt, diese ist von System zu System verschieden (also unterschiedliche VM´s für Win, LINUX, MacOS, etc...).

Weil Java also nur auf einem "simulierten Rechner" läuft kann es natürlich nicht echten Assemblercode einbinden (Ausnahmen bestätigen die Regel, Thema Sicherheitslücken).

Das ist in erster Linie der Grund, warum auch ein java 5-Zeiler schnarchlangsam anläuft (die VM muß erst mal gestartet werden), wenn es den läuft ist es gar nicht so langsam, siehe z.B. ProjectX.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...