Quersumme und Farbe?
-
Hallo,
ich bin neu und werd so wies aussieht jetzt öfters hier her kommen. Ich lerne von der Schule aus Programmieren und mir geht das alles etwas zu langsam und ich wollt ma so nach fragen was man soo machen kann... Wir haben bis jetzt nur While schleifen und If abfragen durch genommne.... was wäre noch interessant kennen zu lernen?
Außerdem hab ich noch 2 Fragen:
Erstens sollten wir letztens die Quersumme aus einer Zahl errechnen per Programm. Wir haben das wie folgt gemacht:
#include<iostream.h> #include<conio.h> void main(void) { int zahl; int x; int quersumme; cout << "Bitte geben sie eine Zahl ein. "; cin >> zahl; quersumme = 0; while (zahl > 0) { x = zahl % 10; zahl = zahl /10; quersumme = quersumme + x; } cout << "Die Quersumme betraegt " << quersumme << "."; getch(); }Kann mir aber nich ganz vorstellen das es nicht einfacher geht, vor allem weil ich vohin hier ein wenig rum geschnüffelt hab und die Funktion von Arrays kennen gelernt hab
wär für Tipp sehr dankbar...Ich bin von der Klasse so jetzt der beste da mir ein bekannter schon ein wenig bei gebracht hat, aber wenn ich ein fabigen Text dar stellen will mach ich das wie folgt:
textcolor(BLUE);
cprintf("test");das find ich aber n bisschen blöd weil ich bei cprintf nich wirklich weiß wie ich Variablen ausgeben kann usw. geht das nich noch einfacher?
Naja danke schon mal für eure Hilfe

-
Also noch interessant zu lernen wäre zum Beispiel: Verwendung von Namensräumen, Verwendung der neueren Header, for-Schleifen, Klassen, Vererbung, Templates, GUI-Programmierung ...
Das Programm ist von der Kürze her ja schon in Ordnung, die Zahl in ein Array zu schreiben und danach jeden Arrayindex zu durchlaufen und die jeweiligen Zahlen zusammenzuzählen dürfte nicht wirklich kürzer sein. Ich hab dir mal kurz meinen Vorschlag gebastelt. Da kannst du dir auch gleich die Verwendung einer for-Schleife ansehen.
#include<iostream> //die Header mit .h sind veraltet #include <cstdlib> //für system("pause"); using namespace std; int main() //main hat als Rückgabetyp nicht void sondern int { int zahl; int x; int quersumme; cout << "Bitte geben sie eine Zahl ein. "; cin >> zahl; quersumme = 0; for (zahl; zahl>0; zahl=zahl/10) { quersumme = quersumme + zahl%10; } cout << "Die Quersumme betraegt " << quersumme << "." << endl; system("pause"); //nur unter Windows nutzbar }MfG
-
do quersumme+=zahl%10; while(quersumme/=10);aber darum geht's gar nicht.
verkneif' dir die farben. lerne erstmal ganz gründlich das farblose programmieren. so mit allen sprachmitteln halt. das dauert normalerweise schon ein jährchen oder zwei.
danach kannste dann leckere grafik-bibliotheken benutzen (diese benutzen voll viele sprachmittel) und wirst dran wachsen. wenn du zu früh fette große bibliotheken benutzt, wirste nur frustriert, gewöhnst dir einen schrecklichen stil an (weil du voll experimentierst, wie was gehen könnte und jedesmal die erstbeste lösung nimmst, statt von den fünf für den profi offensichtlichen lösungen die beste) und das wirf dich um jahre zurück. viele, die zu früh games coden, schaffen es nie mehr, mit den modernen programmiertechniken schritt zu halten. tu mir bitte den gefallen und absolviere die grundausbildung einfarbig und ohne besondere anstrengungen, der größte spielprogrammierer sofort zu sein. es wird sich für dich auszahlen; du wirst mal normale game-coderz, die genausolange gelernt haben, wie du, im wettbewerb plattmachen, weil du die grundlagen besser verinnerlicht hast und sagen wir mal ab dem zweiten jahr wegen der besseren grundlagen auch die ganzen höheren konzepte besser gerafft hast. nur so als tip von mir. aber ich weiß ja gar nicht, warum du programierst. isses nur zur belustigung, dann mach halt immer das, was dir gerade in den sinn kommt. und mit möglichst viel farbe und sound. biste noch jung und willst mal als entwickler deinen lebensunterhalt verdienen, wäre es nicht ungeschickt, anzustreben, mal echt gut zu werden, dann ist der staubige weg besser.
-
Schon spät heute, was?

do quersumme+=zahl%10; while (zahl/=10);
-
@ volkard
Ich lerne C++ in der Schule. Bis jetzt machen wir einfache Rechenaufgaben und Kleinigkeiten. Seid dem wir angefangen haben intressiert es mich sehr und macht mir auch ne menge Spaß weswegen ich noch viiiieel lernen will. Aber in der Schule kommen wir so schleppend vorran weil die anderern nich wirklich aufpassen und dann lieber CS im Netzwerk spieln und der Lehrer sich nich durchsetzen kann....
Hier ma n etwas aufwändiges Programm von mir was Hausaufgabe war...
Beschreibung was das Programm machen soll:
http://www.freewebs.com/tiger20000/bla.txt
Mein Programm:
http://www.freewebs.com/tiger20000/Fahrkartenautomat.cppSo damit du mal siehst was ich so in C++ mache.
MFG Tiger20000
-
nichts für ungut, aber ich finde deinen Programmierstil sehr unübersichtlich.
-
Ist es normal, das der Quellcode von Tiger2000 (1er Post) nicht funktioniert?
Ich habe meinen Quellcode, aus dem Post von Jaschi mal abgekupfert.
#include <iostream> int main() { int a, q = 0; std::cout << "Geben sie eine vier stellige Zahl ein:\n"; std::cin >> a; for (a; a > 0;a = a/10) { q = q + a%10; } std::cout << "Die Quersumme ist " << q << "!!!\n"; }Aber warum geht er Maximal, mit 10Stelligen Zahlen? Ich brauchs zwar nur, aber ich kapiere nicht wieso das nicht bis 4.294.967.296 (Soviel stellen sind doch mit int möglich?)?
q = 2 (1234567891)
q = 3 (123456789)
q = 12 (12345678)
q = 20 (1234567)
q = 27 (123456)
q = 32 (12345)
q = 37 (1234)
q = 41 (123)
q = 44 (12)
q = 47 (1)
q = 48Sehe da keinen Fehler bzw. Abweichung zu ner 10er Zahl. :|
-
Anfänger1 schrieb:
aber ich kapiere nicht wieso das nicht bis 4.294.967.296 (Soviel stellen sind doch mit int möglich?)?
Nein, du verwechselst was.
Ein Integer hat normalerweise 4Byte = 32 bit.
Das macht 2^32 verschiedene Werte: 4 294 967 296.
Darum kann ein Integer ohne Vorzeichen nur so groß werden. Mit Vorzeichen hast du dann nur 2^31.Achja, deswegen kannst du mit 32bit Architektur auch nur 4GB Ram addressieren.
4294967296 Byte = 4194304 KB = 4096 MB = 4 GB
-
Diese Zahlen waren für mich schon immer ein Rätsel.
Wenn ein 1Byte = 8Bits sind und ein char 1Byte hat, warum kann er dann 256Ziffern speichern, anstatt nur 8? :|Hast du eventuell n
-
Dann überleg doch mal wieviele Kombinationen es gibt an 8 Stellen jeweils eine 0 oder eine 1 zu platzieren.
Für die erste Stelle 2.
Für die erste und die zweite Stelle 2 * 2.
usw...Also 2^8 und das ist 256...