Ergebnis 21 bis 40 von 87
Thema: C++ Kentnisse ?
-
29.01.2015, 21:14 #21aicome99
AW: C++ Kentnisse ?
Code:do { // Code hier } while (Bedingung); //Semikolon nicht vergessen!
-
-
29.01.2015, 21:16 #22medeman
-
30.01.2015, 11:29 #23Xburn
AW: C++ Kentnisse ?
so habe gerade den taschenrechner überarbeitet.
ich habe eig nur 3 varibalen gebraucht und nicht 10.000 wie ich
zudem wollte ich mal versuchen es hinzukriegen bei der division als 2te zahl eine 0 zu nehmen und das programm nicht durch 0 dividieren lassen.
irgendwie geht es nicht ...
also das keine 0 als 2te zahl eingegeben werden darf ...
irgendwie will es nicht ..
[C++] utashenrechner1 - Pastebin.com
auffangen vielleicht ? ging das nicht irgendwie mit "get" oder so ?
-
30.01.2015, 11:36 #24medeman
-
30.01.2015, 11:39 #25Xburn
-
30.01.2015, 12:04 #26medeman
C++ Kentnisse ?
Springen kannst du mit goto, wird aber glaube ich nicht (mehr) gern gesehen.
Benutz lieber eine do-while-Schleife.
-
30.01.2015, 12:12 #27Xburn
AW: C++ Kentnisse ?
warum das ? :/
die do-while werde ich gleich zusammen mit arrays und der for schleife versuchen zu lernen. die while schleife müsste ich auch mal wieder anpacken.
habe hier gerade den getränkeautomat geupdatet. jetzt funtzt das meiste
[C++] getränkeautomat - Pastebin.com
-
30.01.2015, 12:33 #28Teilchen
AW: C++ Kentnisse ?
Das was @medaman schreibt ist richtig. GoTo geht praktisch gar nicht, es sei denn man arbeitet in Assembler, da geht das nicht anders.
Die Problematik an der GoTo Anweisung ist, dass man zu schnell die Übersicht verliert und eine Fehlersuche ab einem gewissen Punkt praktisch nicht mehr möglich ist weil ständig quer durch das Programm "gesprungen wird". Auch verhindert es die allgemeine Verstehbarkeit von Code. Man ist heute als Entwickler auf Code angewiesen, den andere bereits geschrieben haben. Wenn man da was ändern oder erweitern will, ist das praktisch unmöglich.
Generell gilt: Keine Sprunganweisungen, keine Abbruchbedingungen (break außer im switch-case) , maximal eine Return-Anweisung pro Methode. Das gilt auch für Schleifen! Man muss am Schleifenkopf sehen können, wie lange eine Schleife läuft und wann sie beendet wird.
Das heißt in der Praxis: Wenn man z. B. eine Schleife hat die dir irgendetwas berechnet oder sucht, und das ergebnis gefunden wurde, dann wird die Schleife nicht mit "break" unterbrochen sondern mit einem boolschen Wert der im Schleifenkopf vermerkt ist. z. B. so
for (int index = 0; index < zahl && !ergebnis; index++) {
}
und nicht
for (....){
if (ergebnis) {
break;
}
}
-
30.01.2015, 12:35 #29hayate.sama
AW: C++ Kentnisse ?
weil dadurch evtl. die Lesbarkeit und Nachvollziehbarkeit deines Quellcodes leiden kann.
Das sollte nur letztes Mittel sein.
-
30.01.2015, 12:37 #30Teilchen
AW: C++ Kentnisse ?
-
30.01.2015, 12:40 #31Xburn
AW: C++ Kentnisse ?
wie ihr auf das goto abgeht
ich bin kein entwickler, sondern mache die ausbildung zum fisi. will aber dennoch programmieren können, alleine für die schule.
-
30.01.2015, 13:25 #32Xburn
AW: C++ Kentnisse ?
int i = 0;
while(i <= 5)
{
cout << i << endl;
i++;
}
in diesem zustand, aber:
int i = 0;
while(i <= 5)
{
i++;
cout << i << endl;
}
zitat:
thema: while unf if
Und tatsächlich bestehen die Unterschiede nur darin, dass die Schleife die Anweisung wiederholt.
ob ich jetzt :
i = 1;
while (i <= 10) // Schleifenbedingung
{
cout << i << endl; // Aktion
i++; // Ohne diese Erhöhung wird es eine Endlosschleife
}
i = 1;
if (i <=10)
{
cout << i << endl;
i++;
}
ergibt doch das gleiche ?
+-+-+-+-+-+-+--++-+-++-++-+-+-+-+-++--+-+-++
Gerade eben noch einen Geldautomat programmiert. Ich weiß, dass ich da viele Bugs habe.
http://pastebin.com/0x1Q2a3Z
-
30.01.2015, 15:23 #33Teilchen
AW: C++ Kentnisse ?
Weil bei deiner ersten While-Schleife beim letzten cout eben i den Wert 5 hat, dann wird hochgezählt auf 6 und die Schleife durch die Bedingung nicht mehr betreten. Bei der zweiten ist es andersrum. Da hat i den Wert 5, es wird aber erst auf 6 hochgezählt, dann ausgegeben, und dann die Schleife nicht mehr betreten. i hat nach dem Schleifendurchlauf bei beiden Varianten den Wert 6! Nimm dir ein Block und einen Stift und prüfe jeden Durchlauf per Hand.
Achja? Dann kompilier das mal ...
if-schleife.de
-
31.01.2015, 13:39 #34
-
31.01.2015, 14:28 #35
-
31.01.2015, 15:23 #36hayate.sama
AW: C++ Kentnisse ?
Kleiner tipp: weiss nicht ob das deine Entwicklungsumgebung kann, aber bei visual studio kannst du im debugger modus den quellcode zeile für zeile durchgehen und du kannst einsehen, was die variable zu diesem zeitpunkt für einen wert hat.
-
01.02.2015, 15:46 #37
-
01.02.2015, 16:28 #38aicome99
AW: C++ Kentnisse ?
Dafür musst du erst einen Haltepunkt setzten. Dies machst du indem du links neben der Zeilennummer hinklickst, dann sollte ein roter Punkt zu sehen sein.
Wenn du dann das Programm ausführst, hält es bei diesem Punkt und du kannst die Werte überprüfen. Auch kannst du dann Schrittweise (Zeile für Zeile) mit F10 und F11 weiterspringen. Mit F5 springst du zum nächsten Haltepunkt, falls keiner vorhanden wird das Programm weiter ausgeführt.
-
02.02.2015, 15:58 #39Xburn
AW: C++ Kentnisse ?
#include <iostream>
using namespace std;
int main(void)
{
int meinArray[5];
meinArray[0] = 10;
meinArray[1] = 11;
meinArray[2] = 12;
meinArray[3] = 13;
meinArray[4] = 14;
cout << meinArray[0] << endl;
for(int i = 0; i < 5; i++) // i ist also gleich 0, soweit klar. und solange i kleiner ist als 5 also 0-4 ist i immer eine 1 dazuaddiert werden - auch verständlich
{
cout << "Element " << i <<"\n" /* jetzt wird einfach erstmal Element ausgegeben und dann halt 0-4 auch verständlich */ << meinArray[i] << endl ;
/* und genau diesen teil verstehe ich jetzt nicht richtig.
kann man ernsthaft einfach das i in den array reinpacken ? und die zahlen also mit dem i ersetzen ? */
cin.sync();
cin.get();
}
-
02.02.2015, 16:06 #40Teilchen
AW: C++ Kentnisse ?
Ja. die Variable i wird aufgelöst zu einem Wert, der durch den Schleifenkopf bestimmt wird.
Spricht also nichts dagegen, diesen Wert für eine Array-Wertabfrage zu benutzen. Es liegt aber in deiner Verantwortung als Programmierer, dass du nur auf gültige Speicherbereiche des Arrays zugreifft (sprich wenn dein Array über 0-4 indexierbar ist, kannst du keine Speicherstelle 5 aufrufen, die existiert ja nicht). Sonst hagelt es Fehler.
Ähnliche Themen
-
Englisch kentnisse verbessern?: Hi leute, Wie wir alle wissen ist ja Englisch die meist gesprochene sprache der Welt, und ich wollte mich mal erkundigen ob ihr tipps habt um...
Ich erkenne die Ukraine nicht an als einen Staat aus unseren Reihen. Nunja wie weit können wir noch gehen bei der Unterstützung der Ukraine...
Der Ukraine-Konflikt 2022