Anfänger; if - beding.& rücksprung+++
-
the_alien schrieb:
Keine Ahnung was du ausrechnen willst, aber so gehts def. nicht.
ich weiß es langsam auch nicht mehr....
-
5er1al schrieb:
weiß solangsam nicht mehr was dein problem ist
ja, vielen dank, mein problem ist einfach, dass wenn das ganze einmal durchlaufen ist, ich ja zurück zum anfang der funktion springe und die eingebeben werte dort durch int array[3]={0,0,0} wieder überschrieben werden...
vielen dank, mit der balkenausgabe, aber wie gesagt, da bin ich noch gar nicht, weil entweder die werte überschrieben werden, oder ich initialisiere eben nicht mit ...{0,0,0} und es funktioniert nicht...-ist ja klar.
es tut mir leid, wenn ich deine geduld so strapaziere.
antworte doch am besten nicht so schnell
fühl mich schon ganz klein
-
Nimm dir nen Stück papier und überleg nochmal genau was du machen willst und dann überleg dir Klassen und oder Funktionen dafür. Falls du mit dem Begriff nichts anfangen kannst solltest du nochmal ein Buch deiner Wahl zur Hand nehmen
-
the_alien schrieb:
Nimm dir nen Stück papier und überleg nochmal genau was du machen willst und dann überleg dir Klassen und oder Funktionen dafür. Falls du mit dem Begriff nichts anfangen kannst solltest du nochmal ein Buch deiner Wahl zur Hand nehmen
ahhhh ich glaube nciht das er schon so weit ist....
@ Funk, zeig einfach mal deinen bisherigen code (bitte gut fomatiert und mit nen paar schönen kommentaren)
-
Nicht?
Als wir in der Schule Pascal gelernt haben, war mit das erste was wir gelernt haben, wie man oft benötigtes in funktionen auslagert.
-
the_alien schrieb:
Nicht?
Als wir in der Schule Pascal gelernt haben, war mit das erste was wir gelernt haben, wie man oft benötigtes in funktionen auslagert.oops sorry, habe nur bis klassen gelesen....
Hast natürlich recht, funktionen klar
-
... danke für die blumen...
grundsätzlich lese und lese und lese ich ja die ganze zeit; vllt mach ich mir auch zuviel stress dabei...
#include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; void umfrage0(); //void umfrage1(); //erstmal weggelassen, um anhand einer umfrage zum ziel zu kommen //void umfrage2(); //void umfrage3(); int main(int argc, char* argv[]) { int eingabe; cout <<"*************\n"; cout <<"** Umfrage **\n"; cout <<"*************\n\n\n\n"; cout <<"--------------------------------------------------------------------\n"; cout <<"Waehlen Sie eine Person aus, an deren Umfrage Sie teilnehmen wollen:\n"; cout <<"--------------------------------------------------------------------\n\n"; cout <<"-------------------------------------------------------\n"; cout <<"Von folgenden Personen stehen Umfragen zur Verfuegung: \n\n (0) Ich\n\n"; //(1) Du\n\n (2) Er\n\n (3) Sie cout <<"waehlen Sie durch druecken der entsprechenden Nummer...\n"; cout <<"-------------------------------------------------------\n\n"; do { cout <<"Ihre Eingabe:", cin >>eingabe; switch (eingabe) { case 0: cout<<"Umfrage Null, ok\n"<<endl; //hier das menue um nachher auf versch. umfragen zu gelangen umfrage0(); break; //case 1: cout<<"Umfrage Eins, ok\n"<<endl; //umfrage1(); //break; //case 2: cout<<"Umfrage Zwei, ok\n"<<endl; //umfrage2(); //break; //case 3: cout<<"Umfrage Drei, ok\n"<<endl; //umfrage3(); //break; default: cout<<"Falsche Eingabe, bitte nochmal"<<endl; break; } } while(eingabe<0 || eingabe>3); return 0; } void umfrage0() // die erste umfrage { int frage1[3]={0}; //wenn mit "0" initialisiert, dann werden abgegebene stimmen überschrieben => nicht gut !!! int frage2[3]; // so gehts natürlich auch nicht :( int frage3[3]={0}; int antwort; //antworten zu frage1 int aja=frage1[0]; //erstmal so benannt, um zwischen den ja's nein's etc. der versch. fragen unterscheiden zu können int anein=frage1[1]; int avielleicht=frage1[2]; //antworten zu frage2 int bja=frage2[0]; int bnein=frage2[1]; int bvielleicht=frage2[2]; //antworten zu frage3 int cja=frage3[0]; int cnein=frage3[1]; int cvielleicht=frage3[2]; cout<<"------------------------------"<<endl; cout<<"Dies ist Umfrage Nr.0, von XXX"<<endl; cout<<"------------------------------\n\n"<<endl; //frage 1 cout<<"Frage1:...?\n\n"<<endl; cout<<"(0)Ja (1)Nein (2)Vielleicht\n\n"<<endl; cin>> antwort; switch (antwort) // antworten für frage 1 { case 0: cout <<"Ja gespeichert\n\n"<<endl; frage1[0]++;break; // frage 1 , stelle 0 um eins erhöhen case 1: cout <<"Nein gespeichert\n\n"<<endl; frage1[1]++;break; case 2: cout <<"Vielleicht gespeichert\n\n"<<endl; frage1[2]++;break; default: cout<<"Falsche Eingabe, bitte nochmal"<<endl; break; } //frage 2 cout<<"Frage2:...?\n\n"<<endl; cout<<"(0)Ja (1)Nein (2)Vielleicht\n\n"<<endl; cin>> antwort; switch (antwort) //antworten für frage 2 { case 0: cout <<"Ja gespeichert\n\n"<<endl; frage2[0]++;break; case 1: cout <<"Nein gespeichert\n\n"<<endl; frage2[1]++;break; case 2: cout <<"Vielleicht gespeichert\n\n"<<endl; frage2[2]++;break; default: cout<<"Falsche Eingabe, bitte nochmal"<<endl; break; } //frage 3 cout<<"Frage3:...?\n\n"<<endl; cout<<"(0)Ja (1)Nein (2)Vielleicht\n\n"<<endl; cin>> antwort; switch (antwort) //antworten für frage 3 { case 0: cout <<"Ja gespeichert\n\n"<<endl; frage3[0]++;break; case 1: cout <<"Nein gespeichert\n\n"<<endl; frage3[1]++;break; case 2: cout <<"Vielleicht gespeichert\n\n"<<endl; frage3[2]++;break; default: cout<<"Falsche Eingabe, bitte nochmal"<<endl; break; } // auch aufgaben-stellung: es soll noch jemand seine stimmen abgeben können cout<<"Eine weitere Person teilnehmen? (0)Ja (1)Nein"<<endl, cin>>antwort; switch (antwort) // umfrage nochmal? (z.b. durch eine andere person - ist aufgabenstellung) { case 0: cout <<"Beginn der Umfrage"<<endl; umfrage0(); // hier wird wieder zum anfang gesprungen und damit leider auch bestehende werte überschrieben break; case 1: cout <<"Ende der Umfrage"<<endl; break; default: cout<<"Falsche Eingabe, bitte nochmal"<<endl; break; } // zur auswertung - funktioniert soweit, aber leider eben immer nur für die letzte person // es sollen aber ALLE abgegebenen stimmen angezeigt werden cout<<"Statistik/Auswertung anzeigen? (0)Ja (1)Zurueck zum Hauptmenue"<<endl; cin>>antwort; switch (antwort) { case 0: cout <<"Statistik"<<endl; //frage 1 cout <<"Auswertung Frage1\n"<<endl; cout <<"Ja: "<<aja<<endl; cout <<"Nein: "<<anein<<endl; cout <<"Vielleicht:"<<avielleicht<<endl; //frage 2 cout <<"Auswertung Frage2\n"<<endl; cout <<"Ja: "<<bja<<endl; cout <<"Nein: "<<bnein<<endl; cout <<"Vielleicht:"<<bvielleicht<<endl; //frage 3 cout <<"Auswertung Frage3\n"<<endl; cout <<"Ja: "<<cja<<endl; cout <<"Nein: "<<cnein<<endl; cout <<"Vielleicht:"<<cvielleicht<<endl; break; case 1: cout <<"Zurueck zum Hauptmenue"<<endl; break; default: cout<<"Falsche Eingabe, bitte nochmal"<<endl; break; } getchar(); }
... hmmmm... ist das so in ordnung dokumentiert?
die wichtigsten stellen sind diese hier:
int frage1[3]={0}; //wenn mit "0" initialisiert, dann werden abgegebene stimmen überschrieben => nicht gut !!! int frage2[3]; // so gehts natürlich auch nicht :( int frage3[3]={0}; ... ... ... umfrage0(); // hier wird wieder zum anfang gesprungen und damit leider auch bestehende werte überschrieben
weiss gar nicht, wie ich eure hilfe wieder gut machen kann !
-
#include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; int frage1[3]={0,0,0}; //global, damit du deine Werte nicht immer überschreibst int frage2[3]={0,0,0}; int frage3[3]={0,0,0}; void umfrage0(); int frage(string fragestellung); //void umfrage1(); //erstmal weggelassen, um anhand einer umfrage zum ziel zu kommen //void umfrage2(); //void umfrage3(); int main(int argc, char* argv[]) { int eingabe; cout <<"*************\n"; cout <<"** Umfrage **\n"; cout <<"*************\n\n\n\n"; cout <<"--------------------------------------------------------------------\n"; cout <<"Waehlen Sie eine Person aus, an deren Umfrage Sie teilnehmen wollen:\n"; cout <<"--------------------------------------------------------------------\n\n"; cout <<"-------------------------------------------------------\n"; cout <<"Von folgenden Personen stehen Umfragen zur Verfuegung: \n\n (0) Ich\n\n"; //(1) Du\n\n (2) Er\n\n (3) Sie cout <<"waehlen Sie durch druecken der entsprechenden Nummer...\n"; cout <<"-------------------------------------------------------\n\n"; do { cout <<"Ihre Eingabe:", cin >>eingabe; switch (eingabe) { case 0: cout<<"Umfrage Null, ok\n"<<endl; //hier das menue um nachher auf versch. umfragen zu gelangen umfrage0(); break; //case 1: cout<<"Umfrage Eins, ok\n"<<endl; //umfrage1(); //break; //case 2: cout<<"Umfrage Zwei, ok\n"<<endl; //umfrage2(); //break; //case 3: cout<<"Umfrage Drei, ok\n"<<endl; //umfrage3(); //break; default: cout<<"Falsche Eingabe, bitte nochmal"<<endl; break; } } while(eingabe<0 || eingabe>3); return 0; } int frage(string fragestellung){ int antwort; cout<< fragestellung << "\n\n"<<endl; cout<<"(0)Ja (1)Nein (2)Vielleicht\n\n"<<endl; do{ cin>> antwort; }while(antwort < 0 && antwort >2); switch (antwort){ case 0: cout <<"Ja gespeichert\n\n"<<endl; break; case 1: cout <<"Nein gespeichert\n\n"<<endl; break; case 2: cout <<"Vielleicht gespeichert\n\n"<<endl; break; } return antwort; } void umfrage0() // die erste umfrage { int antwort; cout<<"------------------------------"<<endl; cout<<"Dies ist Umfrage Nr.0, von XXX"<<endl; cout<<"------------------------------\n\n"<<endl; //frage 1 antwort = frage("Frage1:...?"); frage1[antwort]++; //frage 2 antwort = frage("Frage2:...?"); frage1[antwort]++; //frage 3 antwort = frage("Frage3:...?"); frage1[antwort]++; } void statistik(){ cout<<"Statistik/Auswertung anzeigen? (0)Ja (1)Zurueck zum Hauptmenue"<<endl; cin>>antwort; switch (antwort) { case 0: cout <<"Statistik"<<endl; //frage 1 cout <<"Auswertung Frage1\n"<<endl; cout <<"Ja: "<<frage1[0]<<endl; cout <<"Nein: "<<frage1[1]<<endl; cout <<"Vielleicht:"<<frage1[2]<<endl; //frage 2 cout <<"Auswertung Frage2\n"<<endl; cout <<"Ja: "<<frage2[0]<<endl; cout <<"Nein: "<<frage2[1]<<endl; cout <<"Vielleicht:"<<frage2[2]<<endl; //frage 3 cout <<"Auswertung Frage3\n"<<endl; cout <<"Ja: "<<frage3[0]<<endl; cout <<"Nein: "<<frage3[1]<<endl; cout <<"Vielleicht:"<<frage3[2]<<endl; break; case 1: cout <<"Zurueck zum Hauptmenue"<<endl; break; default: cout<<"Falsche Eingabe, bitte nochmal"<<endl; break; } getchar(); }
Ohne Gewähr auf Vollständigkeit
-
ich würde auf global verzcihten und das array an funktion übergeben!
so ein Beispiel mal noch:
Mach doch array in main, und lass es einfach deine Funktionen verändern:
void Func1(int *a) //hier bekommt funktion dein array { a[0]++; a[1]++; //hier macht es was mit array(funktion musst dann eben anpassen) a[2]++; } int main(int argc, char* argv[]) { int zahl[3]={0,0,0}; //dein array int eingabe=1; do { cin>>eingabe; switch(eingabe) { case 1: Func1(zahl);break; //funktionsaufruf } } while(eingabe!=0); int a=zahl[0]; int b=zahl[1]; int c=zahl[2]; for(int i=0;i<a;i++) //ausgabe der sternchenbalken cout<<"*"; cout<<endl; for(int i=0;i<b;i++) cout<<"*"; cout<<endl; for(int i=0;i<c;i++) cout<<"*"; getch(); return 0; }
so und da hast dann deine werte so wie du sie willst, da wird dann nix mehr zurückgesetzt!
-
Am elegantesten wäre natürlich ein Array mit allen Fragen, equivalent dazu dann ein 2 dimensionales Array mit Dimension 1 gleich der Anzahl der Fragen und Dimension 2 gleich der Anzahl der Anwortmöglichkeiten (hier 3). Dann über Funktionsaufrufe jede Frage durchgehen und die Antworten eingeben lassen.
Und soll ich noch was sagen? Der Quellcode wäre max halb so groß wie deiner. Du müsstest dich ganz dringend mal mit Funktionen, Über und Rückgabewerten und Schleifen beschäftigen...
-
Es ist ja nett, dass ihr dem armen Burschen so unter die Arme greift. Aber: Ob er das wirklich lernt? In drei Wochen ist er wieder da mit der nächsten Frage. Ausserdem: Ich hab' schon mitgekriegt, dass auch die Profs hier reinschauen. Einer hat mal genau gesagt, an welcher FH die aufgabe gestellt wurde.
Viel besser wäre es doch, Funk würde es gleich richtig machen. Hab mal bei Amazon nachgeschaut und gefunden:
Dietrich May: Grundlagen der Software-Entwicklung mit C++. Soll für Einsteiger sein. Is dort wirklich gut weggekommen bei der Bewertung.
Viel Spass und Schweiss
Jerry
-
the_alien schrieb:
[cpp]int frage1[3]={0,0,0}; //global, damit du deine Werte nicht immer überschreibst
- achso! goil !
jerry schrieb:
Es ist ja nett, dass ihr dem armen Burschen so unter die Arme greift.
- DEFINITIV ! grosses THX !
jerry schrieb:
Aber: Ob er das wirklich lernt?
- ja
jerry schrieb:
Ausserdem: Ich hab' schon mitgekriegt, dass auch die Profs hier reinschauen. Einer hat mal genau gesagt, an welcher FH die aufgabe gestellt wurde.
- das ist in meinen augen kein problem; dankbarkeitshalber werde ich eine verlinkung zu diesem thread in meiner abgabe mit einfügen - es findet keine benotung statt und soweit, wie das programm im moment steht kann ich es auch erklären... sinn und zweck ist doch zu lernen; das mache ich ja auch und seit vier tagen mache ich nichts anderes. aufgabe ist vom 2. semester (datenverarbeitung 2) der fh emden. - grundsätzlich stell ich meinen kommilitonen meine gesammelten infos auch zur verfügung, denn letztendlich muss jeder selbst wissen, ob er sich selbst ransetzt und oder wie er es macht.
die hilfe, die mir hier erbracht wird/wurde ist enorm, dass weiss ich auch - genauso weiss ich, dass ich ohne diese hilfe noch viel weiter am anfang stehen würde. da ich aber nun die ersten schritte unternehme und im gegensatz zu vielen meiner kommilitonen vorhabe auch zukünftig kleine programme zu erstellen (eben nicht nur aufgaben, sondern auch für den eigengebrauch), sehe ich keine probleme, mich dem medium internet zu bedienen.
jerry schrieb:
In drei Wochen ist er wieder da mit der nächsten Frage.
- ich dachte, dafür ist ein solches forum da?
bei aller höflichkeit: wenn jemand glaubt, das meine fragen unnötig/unverschämt u.ä. sind, dann soll er doch einfach nicht antworten, ok? -ich gehöre bestimmt nicht zu denen, die sowas dann nicht verstehen !jerry schrieb:
Viel besser wäre es doch, Funk würde es gleich richtig machen.
Dietrich May: Grundlagen der Software-Entwicklung mit C++. Soll für Einsteiger sein. Is dort wirklich gut weggekommen bei der Bewertung.- danke für den buch-tip; da ich aber z.zt. richtig pleite bin, ist bücherkauf z.zt. für mich gestrichen. später, wenn es mir besser geht.
was "gleich richtig machen" angeht: das ist sehr relativ und auf jeden fall auch subjektiv.jerry schrieb:
Viel Spass und Schweiss
- den habe ich mit allen höhen und tiefen
- thx!
the_alien schrieb:
Am elegantesten wäre natürlich ein Array mit allen Fragen, equivalent dazu dann ein 2 dimensionales Array
- ja, hatte ich glaube ich auch mit angefangen, machte es aber erstmal zu kompliziert, für jemanden, der noch nie mit arrays gearbeitet hat
the_alien schrieb:
Und soll ich noch was sagen? Der Quellcode wäre max halb so groß wie deiner. Du müsstest dich ganz dringend mal mit Funktionen, Über und Rückgabewerten und Schleifen beschäftigen...
- glaub ich dir und: bitte!
- ich beschäftige mich doch damit...
... (nicht böse auffassen bitte)... - mach ich doch ! - bitte erwartet nicht gleich wunder des verständnisses von mir, das kommt schon noch.
- vieles kann man eben nicht als anfänger so einfach nachlesen und gleich verstehen. ist mir schon ein paar mal passiert, das ich eine lösung meines problems überlesen habe. einem tutorial(oder auch buch) kann man eben keine fragen stellen.Der Dankbare und Wehmütige schrieb:
VIELEN DANK EUCH ALLEN
- ich werde mich nun ein wenig zurückziehen und all eure informationen/anregungen/code-beispiele anschauen/bedenken/verstehen lernen.
-ausserdem werde ich das gefühl nicht los, dass das hier in die falsche richtung driftet und ich mich hier rechtfertigen muss - vielleicht fasse ich es auch falsch auf (?)
-
jerry schrieb:
Es ist ja nett, dass ihr dem armen Burschen so unter die Arme greift. Aber: Ob er das wirklich lernt? In drei Wochen ist er wieder da mit der nächsten Frage. Ausserdem: Ich hab' schon mitgekriegt, dass auch die Profs hier reinschauen. Einer hat mal genau gesagt, an welcher FH die aufgabe gestellt wurde.
Viel besser wäre es doch, Funk würde es gleich richtig machen. Hab mal bei Amazon nachgeschaut und gefunden:
Dietrich May: Grundlagen der Software-Entwicklung mit C++. Soll für Einsteiger sein. Is dort wirklich gut weggekommen bei der Bewertung.
Viel Spass und Schweiss
Jerry
Ich glaube ich habe auf der 1ten oder 2ten Seite schon gesagt, das er sich das mal anschauen soll.....
@Funk: bitte nix globales....;)
-
5er1al schrieb:
Ich glaube ich habe auf der 1ten oder 2ten Seite schon gesagt, das er sich das mal anschauen soll.....
Hat ihr auch shcon jemand auf Volkards Tutorial hingewiesen? Immerhin kann man das auch lesen wenn man pleite ist
-
the_alien schrieb:
5er1al schrieb:
Ich glaube ich habe auf der 1ten oder 2ten Seite schon gesagt, das er sich das mal anschauen soll.....
Hat ihr auch shcon jemand auf Volkards Tutorial hingewiesen? Immerhin kann man das auch lesen wenn man pleite ist
ich verweise eigentlich sonst immer auf volkis tutorial, nur dieses eine mal nicht, und da wirds gleich bemerkt ...
-
Der Dankbare und Wehmütige schrieb:
vielleicht fasse ich es auch falsch auf (?)
Scheint so. Niemand hat hier rumgemosert.
Der ganze Thread scheint mir etwas konfus.
Ich glaube meine beim Lesen gesammelten Ratschläge würden auch eher Verwirrung stiften...
Einen habe ich trotzdem: Eine Funktion sollte immer genau *eine* Sache machen. Die frage-Funktion von the_alien war schon ein guter Anfang -> man braucht sie mehrmals wodurch der Vorteil einer eigenen Funktion deutlicher wird. Man muss es halt nur einmal schreiben. Aber auch wenn Du's nur einmal brauchst ist es besser eine eigene Funktion zu machen, weil es übersichtlicher ist.
-
ursel schrieb:
Der Dankbare und Wehmütige schrieb:
vielleicht fasse ich es auch falsch auf (?)
Scheint so. Niemand hat hier rumgemosert.
Der ganze Thread scheint mir etwas konfus.
Ich glaube meine beim Lesen gesammelten Ratschläge würden auch eher Verwirrung stiften...
Einen habe ich trotzdem: Eine Funktion sollte immer genau *eine* Sache machen. Die frage-Funktion von the_alien war schon ein guter Anfang -> man braucht sie mehrmals wodurch der Vorteil einer eigenen Funktion deutlicher wird. Man muss es halt nur einmal schreiben. Aber auch wenn Du's nur einmal brauchst ist es besser eine eigene Funktion zu machen, weil es übersichtlicher ist.
wenn er sich alle beiträge richtig durchliest, und mal bisschen probiert, is nix mit verwirrung!
-
das beruhigt mich ja...
also, an sich funktioniert schon fast alles und wenn ich es ganz fertig habe, mache ich mich daran, alles kürzer zu fassen und "professioneller" zu gestalten.
zu den tutorials:
ich war auf der suche nach welchen, was mich überhaupt erst hierher führte, sprich die angebotenen von dieser seite habe ich auch gedownloaded.zusätzlich habe ich im netz noch ein paar gefunden, sprich tutorials hab ich auf jeden fall genug
- das ist ja mitunter das feine am internet !*und hand aufs herz* - hätte ich nicht diese ganzen tutorials gefunden, hätte ich mir auch sicher ein paar ebooks runtergeladen (man beachte den konjunktiv!
).
grundsätzlich habe ich natürlich lieber bücher in meinem schrank stehen, als in pdf-form, von daher werde ich mir auch noch ein oder zwei kaufen, bloss eben nicht z.zt. ... leider...
die meisten bücher fürs studium musste ich mir schon günstig ersteigern; krank, wieviel die alle kosten, echt !
so, heute setze ich mich nicht mehr ran, da ich arbeiten muss und in zukunft werd ich euch bestimmt noch fragen, ob ich dieses oder jenes so oder so machen kann; alles was noch geändert werden muss an dem code ist letztendlich reine konformität, bzw. eine stil-frage
liebe grüsse, funk