Programmierung ADHOC-Beispiele
Ad-Hoc Beispiel Gruppe 7: Lesen Sie eine Zeichenkette und eine Zahl ein und geben sie die restliche Zeichenkette ab der Stelle des Buchstaben in einem zweiten Array aus: #include
using namespace std; int main() { char arr[81]; char arr2[81]; int a=0; int n; int j=0; cout << "Geben Sie eine Zeichenkette ein: "; cin >> arr; cout << "Geben Sie eine natürliche Zahl ein: "; cin >> n; for (int i=0;arr[i]!='\0';i++) { a=a+1; } if (a>n) { for (int i=n;arr[i]!='\0';i++) { arr2[j]=arr[i]; j=j+1; } } else { cout << "Fehler"; } arr2[j]='\0'; cout < using namespace std; int main() { const int maxz = 10;
const int maxs = 10; int a,b,xin,yin,z1=0,z2=0,z3=0,z4=0; char spielfeld [maxs][maxz]; char cx,cy, i='j'; char *schiff1=0,*schiff12=0,*schiff13=0,*schiff14=0,*schiff15=0,*schiff21=0,*schiff22=0,*schiff23=0,*schi ff31=0,*schiff32=0,*schiff4=0; while (i=='j'){ while(z1==1&&z2==1&&z3==1&&z4==1){ z1=0; z2=0; z3=0; z4=0; } for (a=0; a> cy>> cx; xin = cx -'1'; // Die Koordinaten werden vom Sichtbaren ins Arraytechnische umgerechnet, also aus A1 ,wird A0 yin= cy - 'A'; spielfeld [xin][yin] = 'x'; // Die Nachliegenden Felder werden zusätzlich mit einem x markiert spielfeld [xin+1][yin] = 'x'; spielfeld [xin+2][yin] = 'x'; spielfeld [xin+3][yin] = 'x'; spielfeld [xin+4][yin] = 'x'; schiff1=&spielfeld[xin][yin]; //Die Pointer zeigen auf die Startkoordinate und auf die Folgekoordianten schiff12=&spielfeld[xin+1][yin]; schiff13=&spielfeld[xin+2][yin]; schiff14=&spielfeld[xin+3][yin]; schiff15=&spielfeld[xin+4][yin]; cout << " 1 2 3 4 5 6 7 8 9 10" << endl; for (a=0; a
cout << " " << spielfeld[b][a]; } cout << endl; } cout << "Bitte geben sie die Startkoordinate vom Kreuzer ein" << endl << "Das Schiff wird Horizontal von der eingegebenen Koordinate an gesetzt" << endl; cin >>cy >>cx; xin=cx- '1'; yin=cy - 'A'; spielfeld [xin][yin]='x'; spielfeld [xin+1][yin]='x'; spielfeld [xin+2][yin]='x'; schiff21=&spielfeld[xin][yin]; schiff22=&spielfeld[xin+1][yin]; schiff23=&spielfeld[xin+2][yin]; cout << " 1 2 3 4 5 6 7 8 9 10" << endl; for (a=0; a>cy >>cx; xin =cx -'1'; yin= cy - 'A'; spielfeld [xin][yin]='x'; spielfeld [xin+1][yin]='x'; schiff31=&spielfeld[xin][yin]; schiff32=&spielfeld[xin+1][yin]; cout << " 1 2 3 4 5 6 7 8 9 10" << endl; for (a=0; a> cy >> cx; xin = cx -'1'; yin = cy - 'A'; spielfeld [xin][yin]= 'x' ; schiff4=&spielfeld[xin][yin] ; for (a=0; a
while ((z1&&z2&&z3&&z4)!=1) { //Während die Zähler nicht 1 sind wird die Spielschleife ausgeführt cout << " 1 2 3 4 5 6 7 8 9 10" << endl; for (a=0; a> cy >> cx; xin = cx -'1'; yin =cy - 'A'; if ((&spielfeld[xin][yin]==schiff1) ||(&spielfeld[xin][yin]==schiff12)||(&spielfeld[xin][yin]==schiff13) || (&spielfeld[xin][yin]==schiff14) || (&spielfeld[xin][yin]==schiff15) ||(&spielfeld[xin] [yin]==schiff21)|| (&spielfeld[xin][yin]==schiff22) ||(&spielfeld[xin][yin]==schiff23)||(&spielfeld[xin] [yin]==schiff31)||(&spielfeld[xin][yin]==schiff32)||(&spielfeld[xin][yin]==schiff4)) spielfeld[xin][yin]='x'; //Solange die Koordinatenaddresse mit der Addresse eines Pointer übereinstimmt wird das Feld auf x gesetzt else spielfeld[xin][yin]='0'; if (spielfeld[xin][yin]=='x'){ if (*schiff1 && *schiff12 && *schiff13 && *schiff14 && *schiff15 =='x' && z1!=1){ cout << "Versenkt!" << endl; z1=1;} // Sobald alle zugehörigen Schiffspointer auf x stehen, wird die meldung "Versenkt" ausgegeben und ein zähler geht auf 1, damit diese Meldung nicht mehr ausgeführt wird else if (*schiff21 && *schiff22 && *schiff23 =='x' && z2!=1){ cout << "Versenkt!" << endl; z2=1;} else if (*schiff31 && *schiff32 =='x' && z3!=1){ cout << "Versenkt!" << endl; z3=1;} else if (*schiff4=='x' &&z4!=1){ cout << "Versenkt!" << endl; z4=1;} else cout << "Treffer!" <
cout << "Gewonnen!" << endl; // Spielsieg, Programmende cout << "Programm wiederholen? (j/n)" << endl; cin >> i; }
return 0; } H4-A3.C #include #include using namespace std; int main () { char j; cout << "Schreiben Sie ein Programm, das zunächst eine Zeichenkette (max. 80 Zeichen) einliest und dann immer wieder ein einzelnes Zeichen einliest und die Zeichenkette ausgibt, die entsteht wenn man das zuletzt eingegebene Zeichen aus der ursprünglichen Zeichenkette entfernt. (Das Programm soll durch Eingabe eines ! beendet werden.) " << endl; cout << endl; do { char kette[80], zeichen; int i; cout << "Bitte eine Zeichenkette (max. 80 Zeichen und ohne Leerzeichen) eingeben: " << endl; cin >> kette; cout << endl; do { cout << "Bitte geben Sie ein Zeichen ein, '!' bricht das Programm ab: "; cin >> zeichen; cout << endl; if (zeichen == '!') { break; } else { cout << "Die Zeichenkette sieht ohne das gewählte Zeichen so aus: ";
}
for (int i = 0; i < strlen(kette); i++) { if (kette[i] == zeichen) { cout << ""; } else { cout << kette[i]; } } cout << endl << endl;
} while (zeichen != '!'); cout << endl; cout << endl; cout << "Wenn Sie das Programm nochmal starten wollen, drücken Sie bitte 'j' und dann Enter. Wenn nicht, dann bitte 'n' und Enter. "; cin >> j; cout << endl;
} while (j == 'j'); return 0; } H4-A11.C #include #include using namespace std; int main () { char j; cout << "Lesen Sie eine Zeichenkette ein und geben Sie, je nach Benutzerwunsch eine kodierte, bzw. dekodierte Version der Eingabe aus. Verwenden Sie dazu eine einfache Cäsar-Kodierung. " << endl; cout << endl; do { int i; char kette[50], code, out; cout << "Bitte eine Zeichenkette (max. 50 Zeichen und ohne Leerzeichen) eingeben: "; cin >> kette; cout << endl << "Wollen Sie die Kette kodieren oder dekodieren? (k/d) "; cin >> code; cout << endl; if (code == 'k') { cout << "Die kodierte Version lautet: "; for (int i = 0; i<=strlen(kette); i++) { if (kette[i] == 'z') { out = 'a'; } else if (kette[i] == 'Z') { out = 'A'; } else { out = kette[i]+1; } cout << out; } } else if (code == 'd') { cout << "Die dekodierte Version lautet: "; for (int i = 0; i> j; cout << endl; } while (j == 'j');
}
return 0;
H4a-4 #include using namespace std; int main () { const int Breite = 5; const int Hoehe = 5; bool belegt[Breite][Hoehe]; bool frei[Breite][Hoehe]; void felder_leeren(); void felder_anzeigen(); void felder_besetzen(); void felder_suchen(); void felder_gewinner(); void felder_legende(); int zaehler = 0; cout << " ### Willkomen zu Schiffe versenken. Mit einem garantiertem ultimativem Spieleerlebnis und Spaßfaktor ### " << endl; cout << endl; cout << " Der Spielmodus ist: Single Player; Man kann Felder auswaehlen und dann beschießen " << endl; felder_leeren(); felder_besetzen(); felder_anzeigen(); felder_legende(); do{ felder_suchen(); felder_anzeigen(); }while(zaehler < 5); felder_gewinner(); cin.get(); cin.get(); void felder_leeren() { for(int x=0; x
} } } void felder_anzeigen() { zaehler=0; cout << " Das Spielfeld: \n" << endl; cout << " 1 2 3 4 5" << endl; for(int y=0; y
}
if(frei[x][y]==false) { cout << "[ ]"; }
} cout << endl; } } void felder_besetzen()
{
cout << "Bitte 3 Felder belegen: " << endl; for(int i=0; i<5; i++) { cout << " Feld " << i+1 << " x-Achse: "; int x, y; cin >> x; cout << " Feld " << i+1 << " y-Achse: "; cin >> y; if(belegt[x-1][y-1]==true) { i--; } if(belegt[x-1][y-1]==false) { if(x>3) i--; else if(x<1) i--; else if(y>3) i--; else if(y<1) i--; else { belegt[x-1][y-1]=true; } } cin.get();
}
}
void felder_suchen() { int los=0; do{ int xp, yp; cout << "\nPostion absuchen (x): "; cin >> xp; cout << "Position absuchen (y): "; cin >> yp; if(frei[xp-1][yp-1] == true) { if(xp>3) los=0; else if(xp<1) los=0; else if(yp>3) los=0; else if(yp<1) los=0; else { frei[xp-1][yp-1] = true; los=1;
}
}
cin.get(); }while(los!=1); } void felder_gewinner() { if(zaehler==3) { cout << "\nGewonnen! " endl; } } void felder_legende() { cout << "\n\n [ ] = noch nicht abgesucht " << endl; cout << " [X] = Treffer " << endl; cout << " [-] = kein Treffer " << endl; } } return 0; }
Ad-Hoc-BSP 4a Gr.:7 #include #include using namespace std; int main() { char a[81]; char b[81]; int pa=0,pb=0, pc=0; int length; cout << "1.Feld: "; cin >> a; cout << "2.Feld: "; cin >> b; length=strlen(a)+strlen(b); char *c=new char[length]; while (a[pa]!='\0' && a[pb]!='\0') { if (a[pa]>b[pb]) { c[pc]=b[pb]; pc=pc+1; pb=pb+1; } else
{ c[pc]=a[pa]; pc=pc+1; pa=pa+1; }
} for (int i=pa;i!=0;i++) { c[pc]=a[pa]; pa=pa+1; pc=pc+1; } for (int i=pb;i!=0;i++) { c[pc]=b[pb]; pb=pb+1; pc=pc+1; } c[pc]='\0'; pc=pc+1; cout << c; delete [] c; return 0; } ist nur ne kleinigkeit, aber das hat wanek bei mir noch dazugetan: length=strlen(a)+strlen(b) +1 (wegen dem \0 am ende) habe mal mein eigene Version erstellt. #include #include using namespace std; int main () { char zKette1[81], zKette2[81]; int pa=0, pb=0, pc=0; cout<<"Bitte geben Sie die erste Zeichenkette sortiert ein: "; cin>>zKette1; cout<<"Bitte geben Sie die zwiete Zeichenkette sortiert ein: "; cin>>zKette2;
int groesse=strlen(zKette1)+strlen(zKette2)+1; char *newzKette=new char[groesse]; //groesse ist die Größe der Zeichenkette while (zKette1[pa]!='\0' && zKette1[pb]!='\0'){ // speichert die einzelnen Buchstaben alphabetisch in die newzKette bis einer bei '\0' ist. if (zKette1[pa]>zKette2[pb]){ newzKette[pc]=zKette2[pb]; pc=pc+1; pb=pb+1; }else newzKette[pc]=zKette1[pa]; pc=pc+1; pa=pa+1; } if (zKette1[pa]!='\0'){ for (;zKette1[pa]!='\0';pa=pa+1){ newzKette[pc]=zKette1[pa]; pc=pc+1; } } if (zKette2[pb]!='\0'){ for (;zKette2[pb]!='\0';pb=pb+1){ newzKette[pc]=zKette2[pb]; pc=pc+1; } } newzKette[pc]='\0'; cout << newzKette; delete[] newzKette; return 0; }
15.11 Adhoc4a Gruppe 4
// Eingegebenen String nach Groß, Klein und Sonderbuchstaben ordnen. // Zusatzbeispiel: Buchstaben jedes String nacheinander ausgeben. #include using namespace std; int main() { char in[81]; cin >> in; int nklein=0, ngross=0,nsonder=0; for (int i=0; in[i]!='\0'; i++) { // Feststellen der Anzahl von Groß, Klein, Sonderbuchstaben if (in[i]>='A' && in[i]<='Z') ngross++; else if (in[i]>='a' && in[i] <= 'z') nklein++; else nsonder++; } char *eklein=new char[nklein+1]; // Platz für Nullzeichen nicht vergessen! char *egross=new char[ngross+1]; char *esonder=new char[nsonder+1]; int pklein=0, pgross=0, psonder=0; for (int i=0; in[i]!='\0';i++) { // Eintragen der Chars in die Arrays if(in[i]>='A' && in[i]<='Z') egross[pgross++]= in[i]; // heißt Wert nach Rechnung erhöhen else if (in[i]>='a' && in[i] <= 'z') eklein[pklein++]=in[i]; else esonder[psonder++] = in[i]; egross[pgross++]= '\0'; // Nullzeichen setzen egross[pgross++]= '\0'; egross[pgross++]= '\0'; } cout << egross << " " << eklein << " " << esonder << endl; char *erg=new char[nklein+ngross+nsonder+1]; // Zusatzbeispiel int max = nklein; // Max ermitteln, damit For-Schleife genau so lange läuft, bis auch der längste String /0 erreicht hat. if(ngross>max) max=ngross; if(nsonder>max) max=nsonder; pklein = 0, pgross= 0, psonder= 0; int zaehler=0; for(int i=0;i
cout << erg << endl; delete[]erg; delete[]eklein; delete[]egross; delete[]esonder; }
return 0;
15.11 Adhoc4a Gruppe 3 // Schreiben Sie ein PRogramm, das eine Zeichenkette (maximal 80 Zeichen) einliest und ein dynamisches Array von ganzen Zahlen (in exakt der erforderlichen Größe) erstellt. Das an jeder Indexposition die Anzahl enthält, wie oft das Zeichen an der korrespondierenden Indexposition in der eingegebenen Zeichenkette vorkommt. #include #include using namespace std; int main() { char arr[80]; cout << "Geben Sie eine Zeichenkette ein: "; cin >> arr; int length; length=strlen(arr); int *arrzahl= new int[length]; int zaehler; for (int i=0;i<=length;i++) { zaehler=0; for (int j=0;j<=length;j++) if (arr[i]==arr[j]) zaehler=zaehler+1; arrzahl[i]=zaehler; } for (int a=0;a
Hü- Bsp 5.3 #include using namespace std; int ggt(int a, int b) {
a = a%b; if (a == 0) { return(b); } else if (b == 0) { return(a); } else { return(ggt(b,a)); } } int main () { char restart; do { int zahl1, zahl2; cout << "Dieses Programm rechnet den groessten gemeinsamen Teiler zweier natuerlicher Zahlen aus. " << endl << endl; cout << "Bitte geben Sie die erste Zahl ein: "; cin >> zahl1; cout << "Bitte geben Sie die zweite Zahl ein: "; cin >> zahl2; cout << endl << "Der groesste gemeinsame Teiler ist " << ggt(zahl1, zahl2) << endl << endl; cout << "Wollen Sie das Programm nochmal starten? (y/n) "; cin >> restart; cout << endl << endl; } while (restart == 'y'); cout << "Bis zum naechsten Mal :)" << endl; return 0; } es sollen aber keine Schleifen verwendet werden! ...hab dazu eine tolle Lösung gefunden: int ggt(int a,int b){ if (b==0) return a; else return ggt(b, a%b); //Vertauscht durch return ggt(b, ergebnis a) zu ggt(a,b) }
noch eine lösung: #include using namespace std; int f(int a,int b){ int var=0; if (a>b){ var=a%b;return(a-var)/b;} else if (a>a>>b; cout< using namespace std; int dif(int * arr1, int * arr2, int size) // von rechts nach links { if(size != 0) { int sum = arr1[size-1] - arr2[size-1]; return sum + dif(arr1, arr2, size-1); } else return 0; } int main() { int anzahl=0; cout << "Geben Sie eine Anzahl ein: "; cin >> anzahl;
int *ein1 = new int[anzahl]; int *ein2 = new int[anzahl]; for(int i=0; i> ein1[i]; cout << endl; } for(int i=0; i> ein2[i]; cout << endl; } cout << "Ergebnis: " << dif(ein1, ein2, anzahl) << endl;
return 0; }
Adhoc6 Gruppe 7 21.11 man liest zwei zahlen-felder ein und in einer neuen funktion soll kontrolliert werden ob an einer stelle die beiden zahlen gleich sind #include using namespace std; int cnt(int *arr1, int *arr2, int size) { if (size==0) { return 0; } if (arr1[0]==arr2[0]) { return 1+cnt(arr1+1,arr2+1,size-1); } else return 0+cnt(arr1+1,arr2+1,size-1); }
int main () { int arr1[]={0,1,2}; int arr2[]={0,1,3}; int size=sizeof(arr1)/sizeof(int); cout << cnt(arr1,arr2,size) << endl; return 0; }
Ad-Hoc 5 - Gruppe 3 #include using namespace std; int mix(char* str1, char* str2) { if(str1[0] == str2[0] && str1[0] == '\0') { return 0; } if(str1[0] == str2[0]) { return 1 + mix(str1+1, str2+1); } else { return 0 + mix(str1+1, str2+1); } } int main() { char str1[80], str2[80]; cout << "Str1: "; cin >> str1; cout << "Str2: "; cin >> str2; cout << mix(str1, str2) << endl; return 0; }
Man sollte zwei Strings Zeichen für Zeichen auf Gleichheit prüfen und ausgeben, wieviele Zeichen gleich sind. Beispiel: Für "Hallo" und "Holla" sollte 3 heraus kommen du warst so wie beim Programm selber schneller wie ich! :P - Hier meine Lösung // Aufgabe war zu vergleichen, wie oft Str1 und Str2 an der selben Stelle gleich groß sind. #include using namespace std; int mix(char *str1, char *str2) { if (str1[0]=='\0' || str2[0]=='\0') return 0; if (str1[0]==str2[0]) return (str1[0]==str2[0])+mix(str1+1,str2+1); // anstatt der beiden if's kann man return (str1[0]==str2[0])+mix(...) schreiben. Da true +1 und false +0 ergibt. if (str1[0]!=str2[0]) return 0+mix(str1+1,str2+1); }
int main() { char str1[80]; char str2[80]; cout << "Geben Sie String1 ein "; cin >> str1; cout << "Geben Sie String2 ein "; cin >> str2; cout << mix(str1,str2); return 0; } /* Aufgabe 6.1 (+) Ein Tischler hat ein Lager mit Brettern in drei Holzsorten (Buche, Eiche u. Mahagoni). Alle Bretter haben den selben Querschnitt, sind aber unterschiedlich lang. Wird ein Brett einer bestimmten Länge verkauft, so wird, falls die entsprechende Länge nicht vorrätig ist, einfach das passende Stück von einem der vorhandenen Bretter abgeschnitten. Um den Verschnitt nicht allzu groß werden zu lassen, soll dabei immer das kürzest mögliche Brett zersägt werden. Schreiben Sie ein Programm, das dem Tischler hilft, sein Lager zu verwalten. Folgende Funktionen sind unabdingbar: Erfassung des aktuellen Bestandes, Einkauf von Brettern beliebiger Länge, Verkauf von Brettern beliebiger Länge (das Programm soll das kürzest mögliche Brett automatisch vorschlagen), Aufräumen des Lagers (dabei werden alle Bretter, die eine vom Benutzer festzulegende Länge unterschreiten, aus dem Lager entfernt). */ #include using namespace std;
void lager(int *plager, int &i, int max) { // Pointer auf Array + Referenz von Size... man könnte auch Adresse &size übergeben und mit int *i arbeiten. int n; for(;i> n; // Umweg über Variable n für Abbruch mit 0. if (n!=0) plager[i]=n; else return; } cout << "Lager voll!" << endl; // Funktion Lager wird auch für den Einkauf benutzt! return; // Funktion beendet Lager mit (i)Index+1! }
void verkauf(int *plager, int &size) { if (size==0) { cout << "Lager leer"; return; } int laenge; cout << endl << "Laenge? "; cin >> laenge; for (int i=0;ilaenge) { // Wenn Brett größer als das gesuchte Brett ist, if(plager[i]-laenge
}
return;
void aufraeumen(int *plager, int &size) { int minlaenge; cout << endl << "Mindestlaenge der Bretter: "; cin >> minlaenge; if (size==0) { cout << endl << "Lager leer"; return; } int zaehler=0; for (int i=0;iminlaenge) { // Wenns größer ist soll der Wert an die aktuelle Stelle (Zaehler) kopiert werden. plager[zaehler]=plager[i]; zaehler++; } else plager[i]=0; // Müsst ma jetz ned umbedingt machen, da die Werte sowieso außerhalb unseres Size-Bereich liegen nach der Funktion. } size=zaehler+1; // müssma evtl. nu ändern auf +1 falls wir wieder einkaufen oder lager ändern cout << "Aufgeraeumt!" << endl; return; }
int main() { for (char w='j';w=='j';w) { int maxBu; int maxEi; int maxMa; int sizeBu=0; // Wert 0 hier zuweisen, falls wir "Lagerbestand eingeben" überspringen. int sizeEi=0; int sizeMa=0; cout << "Geben Sie an wieviele Bretter Buchenholz maximal gelagert werden koennen: "; cin >> maxBu; cout << "Geben Sie an wieviele Bretter Eichenholz maximal gelagert werden koennen: "; cin >> maxEi; cout << "Geben Sie an wieviele Bretter Mahagoniholz maximal gelagert werden koenen: "; cin >> maxMa; int *buche= new int[maxBu]; int *eiche= new int[maxEi]; int *mahagoni= new int[maxMa];
for (char w1='j';w1=='j';w1) { cout << "Was wollen sie tun? (l=Lagerstaende eingeben, e=Einkauf, v=Verkauf, a=Lager aufraeumen)"; char waehlen; cin >> waehlen; if (waehlen=='l') for (char a='a';a;a) { cout << endl << "Lagerbestand fuer welche Holzart eingeben? (b=Buche, e=Eiche,m=Mahagoni,s=Stop) "; cin >> a; if (a=='s') break; if (a=='b') { cout << "Buche!" << endl; lager(buche,sizeBu=0,maxBu); // Wert 0 hier zuweisen, falls Lagerbestand } if (a=='e') { cout << "Eiche!" << endl; lager(eiche,sizeEi=0,maxEi); } if (a=='m') { cout << "Mahagoni!" << endl; lager(mahagoni,sizeMa=0,maxMa); } } if (waehlen=='e') for (char a='a';a;a) { cout << endl << "Einkauf fuer welche Holzart eingeben? (b=Buche, e=Eiche,m=Mahagoni,s=Stop) "; cin >> a; if (a=='s') break; if (a=='b') { cout << "Buche!" << endl; lager(buche,sizeBu,maxBu); } if (a=='e') { cout << "Eiche!" << endl; lager(eiche,sizeEi,maxEi); } if (a=='m') { cout << "Mahagoni!" << endl; lager(mahagoni,sizeMa,maxMa); } } if (waehlen=='v') for (char a='a';a;a) { cout << endl << "Verkauf fuer welche Holzart eingeben? (b=Buche, e=Eiche,m=Mahagoni,s=Stop) "; cin >> a; if (a=='s') break; if (a=='b') { cout << "Buche!" << endl; verkauf(buche,sizeBu); }
if (a=='e') { verkauf(eiche,sizeEi); cout << "Eiche!" << endl; } if (a=='m') { verkauf(mahagoni,sizeMa); cout << "Mahagoni!" << endl; } } if (waehlen=='a') for (char a='a';a;a) { cout << endl << "Welches Lager aufraeumen? (b=Buche, e=Eiche,m=Mahagoni,s=Stop) ";
cin >> a; if (a=='s') break; if (a=='b') { cout << "Buche!" << endl; aufraeumen(buche,sizeBu); } if (a=='e') { aufraeumen(eiche,sizeEi); cout << "Eiche!" << endl; } if (a=='m') { aufraeumen(mahagoni,sizeMa); cout << "Mahagoni!" << endl; }
} cout << endl << "Zurueck zum Hauptmenue? (j/n) "; cin >> w1;
} }
} cout << endl << "Programm neu starten? (j/n) "; cin >> w; return 0;
/*--> Aktueller Bestand, Int Arrays für alle 3 Sorten + lagerfkt + Size Speichern --- done --> Einkauf --> Arrays erweitern (evtl. über eine Einkaufsfunktion) --- done --> Verkauf --> Wenn eines genau passt das nehmen --> wenns nicht genau vorhanden ist, das kürzeste das länger ist. --> Aufräumen des Lagers */ Aufgabe 6.3 #include using namespace std; const int index=300; const int len=40;
char interpret[index][len]; char album[index][len]; char stil[index][len]; bool belegt[index]={false}; void neu() { char neuinterpret[len]; char neualbum[len]; char neustil[len]; cout << "Geben Sie den Interpreten ein: "; cin >> neuinterpret; cout << "Geben Sie das Album ein: "; cin >> neualbum; cout << "Geben Sie den Stil ein: "; cin >> neustil; for (int i=0;i
bool a=true; cout << "Welchen Eintrag wollen Sie bearbeiten (Indexnummer eingeben)? "; cin >> edit; cout <> select; switch(select) { case 1: cout << "Geben Sie den neuen Interpreten ein: "; cin >> interpret[edit];break; case 2: cout << "Geben Sie das neue Album ein: "; cin >> album[edit];break; case 3: cout << "Geben Sie den neuen Stil ein: "; cin >> stil[edit];break; case 4: a=false; break; default: cout << "Falsche Eingabe!"; break; } }while (a); } } void loeschen() { int edit; cout << "Welchen Eintrag wollen Sie loeschen (Indexnummer eingeben) ? "; cin >> edit; for (int i=0;i> suchen; for (int i=0;belegt[i];i++) {
for (int j=0;interpret[j]!='\0' && suchen[j]!='\0';j++) { if (interpret[i][j]==suchen[j]) b=true; else b=false; break; } if (b) { cout << "Ihre Suche ergab folgendes Ergebnisse: "<> suchen; for (int i=0;belegt[i];i++) { for (int j=0;album[j]!='\0' && suchen[j]!='\0';j++) { if (album[i][j]==suchen[j]) b=true; else b=false; break; } if (b) { cout << "Ihre Suche ergab folgendes Ergebnisse: "<> suchen; for (int i=0;belegt[i];i++) { for (int j=0;stil[j]!='\0' && suchen[j]!='\0';j++) { if (stil[i][j]==suchen[j]) b=true; else b=false; break; } if (b) { cout << "Ihre Suche ergab folgendes Ergebnisse: "<
else cout << "Ihre Suche ergab keine Ergebnisse"<>select;
}
switch(select) { case 1: sucheni();break; case 2: suchena();break; case 3: suchens();break; default: cout << "Falsche Eingabe"<
int main() { bool a=true; while(a) { int wahl; cout << "------------------------------------------------"<> wahl; switch (wahl) { case 1: neu(); break; case 2: anzeigen(); break; case 3: bearbeiten(); break; case 4: loeschen(); break; case 5: suchen();break; case 6: a=false; break; default: cout << "Falsche Eingabe "<
(funktioniert noch nicht 100%) Adhoc 6 Gruppe 7 /*Zahl einlesen, zwei nebeneinander stehende Ziffern multiplizieren und die Summe der Produkte ausgeben. z.B: Eingabe: 1234 - Ausgabe: 14 (da 1*2=2 + 3*4=12) Erweiterung(hier nicht enthalten): das ganze mit einer Schleife in der Funktion schreiben.*/ #include using namespace std; int f(int z) { if (z==0) { return 0; } else { return f(z/100)+(z%10)*(z/10%10); } } int main () { int z; cin >> z; cout << f(z); return 0; }