Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

#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);

}	

Geschrieben

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

Geschrieben

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.

Geschrieben


#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.

Geschrieben
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 1
Der 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>

Geschrieben
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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...