Ausgabe Zeichen



  • Hallo,

    wir haben in der Schule folgende Aufgaben bekommen:

    Ausgabe Zeichen:

    und

    **
    ***
    **
    *

    wir sollen die Aufgaben nicht direkt programmieren, sondern erstmal nur das Struktogramm dazu schreiben. Da dies hier ja nicht so einfach ist, würde mir auch der Code reichen, ich denke daraus könnte ich das Struktogramm schon schreiben. Als Hilfe steht beim ersten "zeilenzahl" und beim zweiten "breite". ich weiss aber ehrlich gesagt nicht wie ich die zeichen ausgeben soll.

    Vielen Dank schonmal im Vorraus

    didi



  • Huhu,

    Es wird sich sicher irgendeiner finden, der dir einen fertigen Code liefert...
    Jedoch, finde ich es immer wieder spannend und motivierend, wenn man es aus eigener Hand schafft.

    Hier ein Tipp zu deinem Problem:
    Stichwort: Schleifen.

    Lg



  • mh ja da hast du natürlich recht, nur schreiben wir morgen eine arbeit darüber und ich würd mir das gerne angucken und versuchen zu verstehen.

    ja das mit den schleifen dacht ich mir auch schon, Zb eine zählschleife, aber ich weiss nicht wie ich da über eine variable die länge der auszugebenen zeichen bestimme. mal abgesehen davon, dass ich nicht weiss, wie man ein "#" ausgibt ohne es vorher mit getchar oder so eingegeben zu haben.



  • Hi!

    dididid schrieb:

    ich weiss aber ehrlich gesagt nicht wie ich die zeichen ausgeben soll.

    Dafür gibt es mehrere Möglichkeiten, z.B. putchar oder du lässt eine Zeichenkette wachsen und gibst sie mit puts aus, usw.

    Gruß,
    B.B.



  • ok das mit dem ausgeben der zeichen habe ich verstanden und auspobiert, ist ja eigentlich auch ganz leicht, hab da als ich das vorhin versucht habe nur n blöden fehler eingebaut.

    jedoch komm ich leider bei meinem problem immer noch nciht weiter 😕



  • dididid schrieb:

    jedoch komm ich leider bei meinem problem immer noch nciht weiter 😕

    Welches Prob.?

    Vllt. hilft das:

    int az; // Anzahl Zeilen
    int n; // Zählvariable
    
    /*
    	Struktogramm:
    
    	Anzahl der Zeilen festlegen, Zählvariable mit 1 initialisieren.
    
    	Schleifenbeginn:
    	Ist n <= az ?
    		Ja:	Anzahl Zeichen = n mit Zeilenumbruch ausgeben.	Nein: Ende.
    			n um eins erhöhen.
    			Zurueck zum Schleifenbeginn.
    */
    


  • ja das hilft, aber:

    mal angenommen n ist beim zweiten schleifendurchlauf 2, wie sage ich denn, dass die zwei "#" ausgegeben werden soll?



  • Z.B. kann man die Ausgabe in eine Funktion auslagern:

    void zeichen_ausgeben ( char c, int n )
    {
    	int i = 0;
    	for ( i=0; i<n; i++ )
    		putchar(c);
    	putchar('\n');
    }
    
    int main() 
    { 
    	char zeichen = '#';
    	int anzahl = 4;
    	zeichen_ausgeben ( zeichen, anzahl );
    	return 0;
    }
    


  • Mentras schrieb:

    Es wird sich sicher irgendeiner finden, der dir einen fertigen Code liefert...

    stimmt,

    puts ("#\n##\n###\n####");  // 1
    puts ("*\n**\n***\n**\n*"); // 2
    

    ^^aber er soll ja ein struktogramm daraus machen. wie das aussieht, verrate ich natürlich nicht.
    🙂


Log in to reply