• 22.08.2025, 20:33
  • Register
  • Login
  • You are not logged in.

 

Chris_Schm

Full Member

WICHTIG!!  Programm in C++

Thursday, June 23rd 2005, 7:01pm

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++

Thursday, June 23rd 2005, 7:11pm

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++

Thursday, June 23rd 2005, 7:40pm

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++

Thursday, June 23rd 2005, 7:50pm

Quoted from "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++

Thursday, June 23rd 2005, 8:06pm

Quoted

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++

Thursday, June 23rd 2005, 8:14pm

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++

Thursday, June 23rd 2005, 8:56pm

Quoted from "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++

Thursday, June 23rd 2005, 9:04pm

@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++

Thursday, June 23rd 2005, 9:15pm

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++

Thursday, June 23rd 2005, 9:43pm

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++

Thursday, June 23rd 2005, 10:09pm

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++

Friday, June 24th 2005, 11:12am

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++

Friday, June 24th 2005, 1:06pm

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++

Friday, June 24th 2005, 1:30pm

Quoted from "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++

Friday, June 24th 2005, 2:12pm

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++

Friday, June 24th 2005, 2:24pm

Quoted from "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++

Friday, June 24th 2005, 2:33pm

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++

Friday, June 24th 2005, 2:41pm

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++

Saturday, June 25th 2005, 1:49am

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++

Saturday, June 25th 2005, 1:55am

Quoted from "Chris_Schm"


Habe das Problem endlich können lösen.



Dann gut ja ist
;D ;D ;D