C++ - for-Schleifen



  • Sascha081088 schrieb:

    hast vielleicht schonmal nen code?

    ja, ich hab schonmal nen code:
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    String Sternchen="";
    String Baum=" ";
    String leer="";
    for (int x=1;x<=11;x++){
    leer=leer+" "+" "+" "+" "+" "+" ";
    for (int a=1;a>=x;a++){
    leer=leer-" ";
    }
    Sternchen="";
    for (int y=1;y<=x;y++){
    Sternchen=Sternchen+Edit1->Text;
    }
    for (int z=1;z>=1;z--){
    Baum=Baum+leer+Sternchen+"\n";
    }
    }
    Label1->Caption=Baum;
    }

    und

    akari schrieb:

    Hallo

    wenn ich das

    Alignemnt=taJustifyLeft

    lese, muß ich an den Borland C++ Builder denken.
    Benutzt du den und die String-Klasse AnsiString?

    In diesem Fall schau dir die Methoden der Klasse an, insbesondere Delete().

    bis bald
    akari

    C++ Builder ja, C++ Builder 5 ist das, allerdings nicht String-Klasse AnsiString denke ich... haben das teil von der schule bekommen und müssen damit programmieren... aber danke für den link, ich werde mal schauen.
    MfG
    der Programmierschüler



  • Hallo

    doch, String == AnsiString. Also schau dir den Link von mir an.

    bis bald
    akari



  • akari schrieb:

    In diesem Fall schau dir die Methoden der Klasse an, insbesondere Delete().

    an und für sich nicht schlecht der link, was ich vergaß zu sagen, wir müssen diesen "Tannenbaum" mit einer oder mehreren for-Schleifen programmieren.



  • Hallo

    ich glaube, du willst so etwas

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      String Sternchen = "*";
      String Zeile;
      String Baum;
      for (int ZN = 0; ZN < 11; ZN++)
      {
        Sternchen += "*";
        Zeile = Sternchen;
        for (int LN = 0; LN < (11-ZN); LN++)
          Zeile = " " + Zeile;
        Baum += Zeile + "\r\n";
        }
      Label1->Caption = Baum;
      }
    

    Bitte benutze die Codetags, um hier im Forum Quellcode kenntlich zu posten.

    bis bald
    akari



  • akari schrieb:

    Hallo

    ich glaube, du willst so etwas

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      String Sternchen = "*";
      String Zeile;
      String Baum;
      for (int ZN = 0; ZN < 11; ZN++)
      {
        Sternchen += "*";
        Zeile = Sternchen;
        for (int LN = 0; LN < (11-ZN); LN++)
          Zeile = " " + Zeile;
        Baum += Zeile + "\r\n";
        }
      Label1->Caption = Baum;
      }
    

    Bitte benutze die Codetags, um hier im Forum Quellcode kenntlich zu posten.

    bis bald
    akari

    vom prinzip her ists soetwas, ja ... nur ist das hier irgendwie rechtsbündig bei mir, aber das bekomm ich vll. noch hin ...
    ok, das nächste mal verwende ich diese funktion um quelltexte zu posten.
    MfG
    der Programmierschüler



  • Hallo

    also... linksbündig ist ja nun kein Akt... dazu bräuchtest du ja nicht mal Leerstellen, weil die ja gar nicht dargestellt werden, nach den Sternchen.

    bis bald
    akari



  • nein, die leerstellen brauch ich, weil es mittig sein soll...
    erste zeile 1 sternchen, zweite Zeile 3 sternchen, dritte zeile 5 sternchen, vierte zeile 7 sternchen, u.s.w. ... bis zu 11 zeilen glaub sollns sein nachher...



  • Wir haben heute auch inne Schule n Tannenbaum gebaut... weiß nich ob das jetzt hier rein passt, aber ich hab die Aufgabe so gelöst:

    #include <iostream.h>
    #include <conio.h>
    
    void main (void)
    {
        int x = 13;
        int y = 1;
        int buchstabe = 1;
        int zeichen;
        int c;
        int a;
    
        cout << "Wie viele Zeilen soll der Tannenbaum gro" << char(225) << " sein? ";
        cin >> x;
        clrscr();
    
        c = x - 1;
        while (x != 0)
        {
    
            gotoxy(x,y);
            zeichen = buchstabe;
            while (zeichen !=0)
            {   
                textcolor(GREEN);
                cprintf("#");
                zeichen--;
            }
            x--;
            y++;
            buchstabe = buchstabe + 2;
        }
        while (a != 5)
        {
            gotoxy(c,y);
            textcolor(BROWN);
            cprintf("###");
            a++;
            y++;
        }
        getch();
    }
    

    MFG Tiger20000



  • mit welcher sprache programmiert ihr denn @ tiger20000 ===



  • Wir Programmieren mit C++.

    Ich benutze nur cprintf("text") weil ich sonst nicht weiß wie ich den Text farbig machen kann. In der Schule haben wir das noch nicht durch genommen aber ein Freund von mir hat mir schon ein paar Sachen gezeigt weil ich mich für Programmierung sehr intressiere und auch 1 in der Schule stehe 🙂



  • Der Quelltext sieht aber nicht nach C++ aus, dachte ich ....
    na ja, ich steh auch 1, nur krieg dieses blöden tannenbaum nicht richtig hin...
    den normalen tannenbaum mit Alignment=taCenter hab ich ohne probleme geschafft,nur den mir Alignment=taLeftJustify schaff ich nich, weil wir das mittig praktisch mit leerzeichen auffüllen sollen und dann halt erste zeile ein sternchen, zweite zeile drei, dritte zeile fünf, u.s.w. ....



  • Genau das sollten wir auch machen, nur während der Lehrer das erklärt hat hab ich schon das ding da gebastelt und weiß deswegen nich was er da erklärt hat, aber er meinte is trotzdem richtig xD



  • Hallo

    nur den mir Alignment=taLeftJustify schaff ich nich

    soll das ein Witz sein?

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      String Sternchen = "*";
      String Zeile;
      String Baum;
      for (int ZN = 0; ZN < 11; ZN++)
      {
        Sternchen += "*";
        Zeile = Sternchen;
        for (int LN = 0; LN < (11-ZN); LN++)
          Zeile = Zeile + " ";
        Baum += Zeile + "\r\n";
        }
      Label1->Caption = Baum;
      }
    

    bis bald
    akari



  • na denn ^^ xD



  • akari schrieb:

    Hallo

    nur den mir Alignment=taLeftJustify schaff ich nich

    soll das ein Witz sein?

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      String Sternchen = "*";
      String Zeile;
      String Baum;
      for (int ZN = 0; ZN < 11; ZN++)
      {
        Sternchen += "*";
        Zeile = Sternchen;
        for (int LN = 0; LN < (11-ZN); LN++)
          Zeile = Zeile + " ";
        Baum += Zeile + "\r\n";
        }
      Label1->Caption = Baum;
      }
    

    bis bald
    akari

    Nein, eigentlich sollte es kein witz sein und es sollte auch nicht so sein ......... es sollte auf Alignment=taLeftJustify stehen und mit leerzeichen mittig geschoben sein, erste zeile sollte ein sternchen haben, zweite zeile drei, dritte zeile fünf, u.s.w. ..... und das bekomm ich nich hin ...
    MfG
    der Programmierschüler



  • Hallo

    String Sternchen = "*";
      String Zeile;
      String Baum;
      for (int ZN = 0; ZN < 11; ZN++)
      {
        Sternchen += "**"; // Ein Leerzeichen weg, dafür aber zwei Sternchen rein
        Zeile = Sternchen;
        for (int LN = 0; LN < (11-ZN); LN++)
          Zeile = " " + Zeile;
        Baum += Zeile + "\r\n";
        }
      Label1->Caption = Baum;
    

    Das erstellt rein rechnerisch den gewünschten Baum von dir, aber da leerzeichen und * auf der grafischen Oberfläche unterschieldich breit sind, wird das nach links verzerrt.

    bis bald
    akari



  • Cool, danke dir, danke euch allen .... und wegen der größe der zeichen:
    unser lehrer hat uns eine schriftart wie "Courier New" empfohlen, weil dort die leerzeichen genauso groß gemacht werden wie jedes andre zeichen/jeder andere buchstabe auch.
    MfG
    der Programmierschüler


Anmelden zum Antworten