• 22.08.2025, 21:38
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Chris_Schm

Full Member

WICHTIG!!  Programm in C++

Donnerstag, 23. Juni 2005, 19:01

Muß in C++ folgendes programmieren:

Der Benutzer soll eine postitve ganze Zahl n eingeben. Es wird dann ein Karo aus 2n-1 Zeilen ausgegeben. Für n=4 ergibt sich zb folgende Ausgabe:


               *
            * * *
         * * * * *
      * * * * * * *
         * * * * *
            * * *
               *


Hat da jemand eine Idee?

Lev

God

Re: WICHTIG!! Programm in C++

Donnerstag, 23. Juni 2005, 19:11

mhm, ne schleife die bis n immer einen stern mehr schreibt

dann ne schleife die immer einen weniger schreibt?
"When mountains speak, wise men listen" - John Muir

Chris_Schm

Full Member

Re: WICHTIG!!  Programm in C++

Donnerstag, 23. Juni 2005, 19:40

Ja, habe mich ja bei einer Schleife probiert, aber irgendwie will das nicht so wie ich will.

Egal welche Zahl ich eingebe, es kommen immer 11 zeilen.

int main ()
{
int i;
int j; j == 2*i -1;
cin >> i;

for (i = 0; i <= 10; i++)
{
for
(j = 0; j <=i; j++)
{
cout << setw (3) << '*';
}
cout << endl;
}

return 0;
}


Habe erstmal die erste Hälfte vom Pfeil gemacht

Y0Gi

God

Re: WICHTIG!! Programm in C++

Donnerstag, 23. Juni 2005, 19:50

Zitat von »Chris_Schm«

int j; j == 2*i -1;

du meinst sicher == und nicht =, richtig?
und warum schreibst du das nicht als
int j = 2 * i - 1;
?

Chris_Schm

Full Member

Re: WICHTIG!!  Programm in C++

Donnerstag, 23. Juni 2005, 20:06

Zitat

und warum schreibst du das nicht als
int j = 2 * i - 1;


Jo, das ist ja nur Formsache, löst aber mein eigentliches Problem nicht.

sebastian

Administrator

Re: WICHTIG!!  Programm in C++

Donnerstag, 23. Juni 2005, 20:14

du erzeugst doch mit i deine zeilen, dann must du , da i ja immer bis von 0-10 durchlaufen wird auch deine schleife richtig schreiben

NICHT for (i = 0; i <= 10; i++)  <- 11mal schleifenrumpf
SONDERN for (i = 0; i < 10; i++) <- 10 mal schleifenrumpf

Sebastian

Edit:
Wenn du deine Schleife n mal durchlaufen willst musst du die reihenfolge deiner eingaben schon beachten, da es ja keine Objektreferenzen sind.

int count;
int i;
int j;


cin >> count;

j = 2*count-1;

for (i = 0; i < count; i++)

Y0Gi

God

Re: WICHTIG!! Programm in C++

Donnerstag, 23. Juni 2005, 20:56

Zitat von »Chris_Schm«

int j; j == 2*i -1;

oh, habe mich versehen, das wird ja in der vereinfachten variante noch gar nicht benutzt. wenn du es aber tust, wird das == zum problem werden.

sebastian

Administrator

Re: WICHTIG!!  Programm in C++

Donnerstag, 23. Juni 2005, 21:04

@yogi
int j; j == 2*i -1; dieser code/ initialisierung ist in dieser form falsch aber auch so:int j; j = 2*i -1;

da i nach dem definieren 0 ist; -> = 2*0 -1; ???

ausserdem wird j in der schleife mit 0 initialisiert. somit reicht es wenn man "int j;" schreibt for(j = 0; j <=i; j++)


Sebastian

Chris_Schm

Full Member

Re: WICHTIG!!  Programm in C++

Donnerstag, 23. Juni 2005, 21:15

Mh, okay, soweit ist das dann glaub ich klar.
Wie erreichere ich jetzt aber, daß der feil auch zum Anfang hinkommt, wie oben gezeichnet.
Müßte dann ja wieder ne Schleife mit j-- machen. Aber wie verknüpfe ich das?

Y0Gi

God

Re: WICHTIG!! Programm in C++

Donnerstag, 23. Juni 2005, 21:43

du könntest etwa die ganze aktion zweimal machen. beim ersten mal zählst du rauf bis n, beim zweiten mal runter von n-1 an. oder du vereinst das in einem durchgang und setzt beim hochzählen bis auf n einen wert (etwa einen boolean), der - wenn gesetzt - ein runter- statt raufzählen vollführt. das ist ob der vielen if-abfragen aber nicht unbedingt performant, dürfte hier aber nicht ansatzweise ins gewicht fallen ;)

Chris_Schm

Full Member

Re: WICHTIG!!  Programm in C++

Donnerstag, 23. Juni 2005, 22:09

Okay, da blicke ich jetzt gar nicht mehr durch ???

Kriege bis jetzt auch nur das hin:

*
* *
* * *
* * * *


Sorry, das programmieren ist nicht so meine Stärke.

pharao

Moderator

Re: WICHTIG!! Programm in C++

Freitag, 24. Juni 2005, 11:12

du musst halt vor jede Zeile (n-1) - i mal ein Leerzeichen voranstellen.
Gute work-live-balance ist, wenn man von seinem Privatleben erschöpfter ist als von der Arbeit.

Eumel

God

Re: WICHTIG!! Programm in C++

Freitag, 24. Juni 2005, 13:06

Eure Ansätze sind alle iterativ. Aber dieses Problem lässt sich sehr schön rekursiv lösen.

MfG :)
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

pharao

Moderator

Re: WICHTIG!! Programm in C++

Freitag, 24. Juni 2005, 13:30

Zitat von »Saiya«

Eure Ansätze sind alle iterativ. Aber dieses Problem lässt sich sehr schön rekursiv lösen.

MfG :)


richtig, das hab ich mir auch schon gedacht.
ist ja bald Wochenende und dann hab ich vielleicht Zeit für sowas ;)
Gute work-live-balance ist, wenn man von seinem Privatleben erschöpfter ist als von der Arbeit.

Y0Gi

God

Re: WICHTIG!! Programm in C++

Freitag, 24. Juni 2005, 14:12

wenn wir ihm die lösung präsentieren, ist ja der lerneffekt für ihn weg. auch wenn im topictitel "WICHTIG!!" (relativ) steht ;)

Clark

God

Re: WICHTIG!!  Programm in C++

Freitag, 24. Juni 2005, 14:24

Zitat von »Sebastian«

@yogi
int j; j == 2*i -1;  dieser code/ initialisierung ist in dieser form falsch aber auch so:int j; j = 2*i -1;

da i nach dem definieren 0 ist; -> = 2*0 -1; ???

nein, das stimmt nicht.

I ist nach definieren undefiniert solange ihm kein Wert explizit zugewiesen wurde.
Genauer: i hat den Wert der an der aktuellen Speicherstelle drin steht

Clark
c++: The power, elegance and simplicity of a hand grenade.

sebastian

Administrator

Re: WICHTIG!!  Programm in C++

Freitag, 24. Juni 2005, 14:33

ja, das meinte ich doch, aber nahezu alle compiler initalisieren atomare typen wie int, byte, bool , long float mit 0.
Verlassen sollte man sich aber darauf auf keinen fall.
Ich gehe meist sogar immer soweit und vermeide impizite definitionen.
statt: int i= 126 * 7+4;
so:
int i;
i= 126 * 7+4;

aber das ist halt ne andere sache, wie halt jeder programmierstil auslegt.

Sebastian

Clark

God

Re: WICHTIG!!  Programm in C++

Freitag, 24. Juni 2005, 14:41

Naja, die meisten Compiler warnen ja zumindest, wenn man uninitialisierte Variablen benutzt, also wenn man die nicht alle ausgeschaltet hat... ;)
c++: The power, elegance and simplicity of a hand grenade.

Chris_Schm

Full Member

Re: WICHTIG!!  Programm in C++

Samstag, 25. Juni 2005, 01:49

Vielen Dank für eure Hilfe.
Habe das Problem endlich können lösen. Habe zu guter Letzt ein komplett neuen Ansatz gewählt, mit dem ging es dann.

-Xan-

Senior Member

Re: WICHTIG!! Programm in C++

Samstag, 25. Juni 2005, 01:55

Zitat von »Chris_Schm«


Habe das Problem endlich können lösen.



Dann gut ja ist
;D ;D ;D