Striggel Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 Hi, hab folgendes Problem. Wir sollen ein Programm mit Unterprogramm erstellen welches die Höhe und Breite in ein beliebiges Zeichen als Rechteck ausgibt. Bin bisher soweit. Quellcode: #include <iostream.h> #include <stdio.h> void Linie (int Laenge, int Hoehe, char Zeichen) {//Unterprogramm for (int i=1; i<=Laenge; i=i+1) cout<< Zeichen; for (int j=1; j<=Hoehe; j=j+1) cout<< Zeichen <<endl; for (int k=1; k<=Laenge; k=k+1) cout<< Zeichen; cout<<'\n'; } int main() {//Hauptprogramm char Z; int L; int H; cout<<"Bitte Zeichen angeben"; cin>>Z; cout<<"Bitte Laenge angeben"; cin>>L; cout<<"Bitte Hoehe angeben"; cin>>H; Linie(L, H, Z); } Das gibt die Linux Konsole aus: linux:~/Desktop # ./a.out Bitte Zeichen angeben+ Bitte Laenge angeben4 Bitte Hoehe angeben4 +++++ + + + ++++ Wie man sieht fehlt der rechte Teil jedoch weiß ich nicht wie ich das angeben soll. Währe net wenn mir einer weiter helfen könnte Danke schonmal im Vorraus.:uli MfG Striggel
Melkor Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 #include <iostream.h> #include <stdio.h> void Linie (int Laenge, int Hoehe, char Zeichen) {//Unterprogramm [COLOR="Red"]/*for (int i=1; i<=Laenge; i=i+1) cout<< Zeichen; for (int j=1; j<=Hoehe; j=j+1) cout<< Zeichen <<endl; for (int k=1; k<=Laenge; k=k+1) cout<< Zeichen; Das klammer ich mal aus! */[/COLOR] // Ich hätte es so gelöst: [COLOR="Red"] for (int i = 1; i<=Hoehe, i++) { for (int j = 1; j<=Laenge; j++) { cout<<Zeichen; } cout << "\n"; }[/COLOR] cout<<[COLOR="Red"]"[/COLOR]\n[COLOR="Red"]"[/COLOR]; } int main() {//Hauptprogramm char Z; int L; int H; cout<<"Bitte Zeichen angeben"; cin>>Z; cout<<"Bitte Laenge angeben"; cin>>L; cout<<"Bitte Hoehe angeben"; cin>>H; Linie(L, H, Z); }
baba007 Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 for (int i = 1; i<=Hoehe, i++) da muss ein semikolon hin und bei der mainfunktion kommt noch ein rückgabewert hin. return 1; oder wie auch immer frage : soll das quadrat innen leer sein ? oder ganz gefüllt ? oder soll sogar das zeichen was man eingibt in diesem quadrat, mit hilfe des zeichens, dargestellt werden
Melkor Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 Stimmt gar nicht gesehen. Also so würde mein Programm dann aussehen. #include <iostream.h> #include <stdio.h> void Linie (int Laenge, int Hoehe, char Zeichen) {//Unterprogramm for (int i = 1; i<=Hoehe; i++) { for (int j = 1; j<=Laenge; j++) { cout<<Zeichen; } cout << "\n"; } cout<<"\n"; } int main() {//Hauptprogramm char Z; int L; int H; cout<<"Bitte Zeichen angeben"; cin>>Z; cout<<"Bitte Laenge angeben"; cin>>L; cout<<"Bitte Hoehe angeben"; cin>>H; Linie(L, H, Z); [COLOR="RED"]getch();[/COLOR] return 1; } @Striggel: Kannst du das so nachvollziehen? Edit: Hab auch noch mal ein get char eingefügt. das programm wird so lange ausgeführt bis eine Taste ausgeführt wird. Sonst sieht man gar nicht was er ausgibt.
Striggel Geschrieben 25. Januar 2006 Autor Geschrieben 25. Januar 2006 Nachvollziehen kann ich das schon jedoch sollte das Rechteck in der Mitte leer sein.
Striggel Geschrieben 25. Januar 2006 Autor Geschrieben 25. Januar 2006 und noch was zu dem getchar. ich hab es nur nicht hin geschrieben weil man es in meinem fall nicht brauchte da ich es über die linux konsole eingeben hatte.
Melkor Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 #include <iostream.h> #include <stdio.h> void Linie (int Laenge, int Hoehe, char Zeichen) {//Unterprogramm for (int i = 1; i<=Hoehe; i++) { for (int j = 1; j<=Laenge; j++) { [color="RED"]if (i == 1 || i == Hoehe || j == 1 || j == Laenge)[/color] cout<<Zeichen; [color="RED"]else cout << " ";[/color] } cout << "\n"; } cout<<"\n"; } int main() {//Hauptprogramm char Z; int L; int H; cout<<"Bitte Zeichen angeben"; cin>>Z; cout<<"Bitte Laenge angeben"; cin>>L; cout<<"Bitte Hoehe angeben"; cin>>H; Linie(L, H, Z); getch(); return 1; } Hatte ich falsch verstanden. Jetzt nur Rand aus Zeichen.
Striggel Geschrieben 25. Januar 2006 Autor Geschrieben 25. Januar 2006 Danke genau das meinte ich. Eine frage noch wo für steht das || und warum return 1
Klotzkopp Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 wo für steht das || Das ist der logische oder-Operator. Der verknüpft zwei Ausdrücke und hat den Wert true, wenn mindestens einer der Operanden true ist. Übrigens wird der zweite Operand nicht mehr ausgewertet, wenn der erste schon true war. und warum return 1Der Rückgabewert von main wird an das System zurückgegeben. Der Wert wird dabei üblicherweise dafür genutzt, um einen Fehlerfall anzuzeigen. Eine return-Anweisung ist hier übrigens nicht zwingend notwendig, wenn man sie weglässt, wird implizit "return 0;" angenommen. Das gilt aber nur für main! #include <iostream.h> #include <stdio.h>[/code] Das entspricht nicht dem C++-Standard. [code] #include <iostream> #include <cstdio>
baba007 Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 #include <iostream> #include <cstdio> wieso meckert dann mein Visual c++ 6.0 Compiler ? bei cstdio 7 fehler und 4 warnungen .... bei stdio.h geht alles wunderbar
Klotzkopp Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 wieso meckert dann mein Visual c++ 6.0 Compiler ? Weil der älter ist als der aktuelle C++-Standard. Da sollte man entweder nachsichtig sein oder auf ein aktuelles Modell umsteigen. Man muss auch bedenken, dass mit den aktuellen Headerdateien alle Funktionen, Klassen und Objekte im Namensraum std stehen. Also entweder std:: davor schreiben oder using-Direktiven benutzen.
baba007 Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 danke gut zu wissen. mensch habe ich hier schlechte arbeitsverhältnisse
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden