• 06.05.2024, 03:32
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

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?

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

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

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;
?

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.

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

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.

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

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?

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

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.

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.

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.

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.

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

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.

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

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.

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.

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