<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[arrays, strings und matrix-darstellung]]></title><description><![CDATA[<p>So mein kleines Programm macht erstmal folgendes :&gt; es ließt eine Zahl bestehend aus den ziffern 0-9 von der Tastatur ein und gibt es auf der Console wieder in form der matrix aus. das klappt erstmal.</p>
<p>Nun soll ich ich einen neuen Datentyp erstellen der die 5 Pixelzeilen der Zeile einer Zahlendarstellung als Zeichenkette aufnehmen kann. Die einzelnen Pixel bestehen halt aus ' ' oder einem *chen ^^.</p>
<p>die zahl 12 liefere dann halt folgende 5 zeichenketten?</p>
<pre><code>..*.|.**.   // Zeichenkette 1
.**.|*..*   // Zeichenkette 2
*.*.|..*.   // Zeichenkette 3
..*.|.*..   // Zeichenkette 4
..*.|****   // Zeichenkette 5
</code></pre>
<p>Die leeren Felder sind immoment durch einen &quot;.&quot; ersetzt.</p>
<p>Berücksichtigungen:<br />
- der neue Typ soll genug Platz bieten um die Pixeldarstellung aller Zahlen aus <em>int</em> (die max. anzahl darzustellender Ziffern/zeichen ergibt sich aus dem Wertebereich des typs int)<br />
In dieser Berechnung soll berücksichtigt werden das zwischen den Ziffern eine Spalte '|' die jeweiligen Zeichen trennen. Demnach sind als breite 5 Spalten einzuplanen.</p>
<p>Zur Lösung hab ich mir da folgendes Überlegt:</p>
<p>bei mir ist in vc++ int mit long gleich gesetzt. Demnach ist die größt mögliche zahl mit die mit int darstellbar ist 2147483647 um eins erhöht würde er in den minus bereich springen.</p>
<p>um diese zahl darzustellen benötige ich 10*5 Spalten.</p>
<p>Könnte mein neuer Datentyp so aussehen?</p>
<pre><code class="language-cpp">struct new_array{
char c_array[50][5];
}

new_array = matrix;
</code></pre>
<p>Als nächstes benötige ich dazu noch eine Funktion die eine Int Zahl als ersten Parameter und einen zeiger auf die leere struktur enthält.</p>
<p>Als Rückgabewert soll die Anzahl der dargestellten Ziffern incl. '-' übergeben werden.</p>
<pre><code class="language-cpp">int fill_array(int zahl, *matrix)
{
    int counter;

   // Die Funktion soll den Speicher entsprechend füllen. 
   // Achtung: Nach der letzten darzustellenden Ziffer sollen die Zeichenketten 
   // der 5 enthaltenen Pixwlzeilen logisch enden.
   // damit die ausgabe nur bis '\0' gelesen wird...
   // sollte die vorhergehende zahl 6666 sein und die nächste nur 12, soll die
   //  ausgabe 1266 vermieden werden

    return counter;
}
</code></pre>
<p>Für Ideen die mich hier weiterbringen bin ich sehr dankbar^^</p>
<p>das bisherige Programm</p>
<pre><code class="language-cpp"># include &lt;stdio.h&gt;
# include &lt;stdlib.h&gt;

# define WAIT for(;;)

char dots[11][5][4] = {
                            {
                                {' ', '*', '*', ' '},
                                {'*', ' ', ' ', '*'},
                                {'*', ' ', ' ', '*'},
                                {'*', ' ', ' ', '*'},
                                {' ', '*', '*', ' '}
                            },
                            {
                                {' ', ' ', '*', ' '},
                                {' ', '*', '*', ' '},
                                {'*', ' ', '*', ' '},
                                {' ', ' ', '*', ' '},
                                {' ', ' ', '*', ' '}
                            },
                            {
                                {' ', '*', '*', ' '},
                                {'*', ' ', ' ', '*'},
                                {' ', ' ', '*', ' '},
                                {' ', '*', ' ', ' '},
                                {'*', '*', '*', '*'}
                            },
                            {
                                {'*', '*', '*', ' '},
                                {' ', ' ', ' ', '*'},
                                {' ', '*', '*', ' '},
                                {' ', ' ', ' ', '*'},
                                {'*', '*', '*', ' '}
                            },
                            {
                                {' ', ' ', '*', ' '},
                                {' ', '*', ' ', ' '},
                                {'*', ' ', '*', ' '},
                                {'*', '*', '*', '*'},
                                {' ', ' ', '*', ' '}
                            },
                            {
                                {'*', '*', '*', '*'},
                                {'*', ' ', ' ', ' '},
                                {'*', '*', '*', ' '},
                                {' ', ' ', ' ', '*'},
                                {'*', '*', '*', ' '}
                            },
                            {
                                {' ', ' ', '*', '*'},
                                {' ', '*', ' ', ' '},
                                {' ', '*', '*', '*'},
                                {' ', '*', ' ', '*'},
                                {' ', '*', '*', '*'}
                            },
                            {
                                {'*', '*', '*', '*'},
                                {' ', ' ', ' ', '*'},
                                {' ', ' ', '*', ' '},
                                {' ', '*', ' ', ' '},
                                {' ', '*', ' ', ' '}
                            },
                            {
                                {' ', '*', '*', ' '},
                                {'*', ' ', ' ', '*'},
                                {' ', '*', '*', ' '},
                                {'*', ' ', ' ', '*'},
                                {' ', '*', '*', ' '}
                            },
                            {
                                {' ', '*', '*', '*'},
                                {' ', '*', ' ', '*'},
                                {' ', '*', '*', '*'},
                                {' ', ' ', ' ', '*'},
                                {' ', '*', '*', ' '}
                            },
{
                                {' ', ' ', ' ', ' '},
                                {' ', ' ', ' ', ' '},
                                {'*', '*', '*', '*'},
                                {' ', ' ', ' ', ' '},
                                {' ', ' ', ' ', ' '}
                            }
                        };

main()
    {
    unsigned char zahl[20];
    int zeile;
    int spalte;
    int index;

    printf( &quot;Bitte Zahl eingeben: &quot;);
    scanf( &quot;%s&quot;, zahl);
    printf( &quot;\n&quot;);

    for( zeile = 0; zeile &lt; 5; zeile = zeile + 1)
        {
        for( index = 0; zahl[index] != 0; index = index + 1)
            {
            for( spalte = 0; spalte &lt; 4; spalte = spalte + 1)
                 // hier entsteht gerade die Abfrage, 
                 // WENN zahl[index] das &quot;-&quot;, dann  springe zu  
                 // dots[11][zeile][spalte]
                 printf( &quot;%c&quot;, dots[zahl[index]-'0'][zeile][spalte]);

            printf( &quot;  &quot;);
            }
        printf( &quot;\n&quot;);
        }
    WAIT;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/197449/arrays-strings-und-matrix-darstellung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 05:34:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197449.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Nov 2007 15:58:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to arrays, strings und matrix-darstellung on Sat, 10 Nov 2007 16:02:21 GMT]]></title><description><![CDATA[<p>So mein kleines Programm macht erstmal folgendes :&gt; es ließt eine Zahl bestehend aus den ziffern 0-9 von der Tastatur ein und gibt es auf der Console wieder in form der matrix aus. das klappt erstmal.</p>
<p>Nun soll ich ich einen neuen Datentyp erstellen der die 5 Pixelzeilen der Zeile einer Zahlendarstellung als Zeichenkette aufnehmen kann. Die einzelnen Pixel bestehen halt aus ' ' oder einem *chen ^^.</p>
<p>die zahl 12 liefere dann halt folgende 5 zeichenketten?</p>
<pre><code>..*.|.**.   // Zeichenkette 1
.**.|*..*   // Zeichenkette 2
*.*.|..*.   // Zeichenkette 3
..*.|.*..   // Zeichenkette 4
..*.|****   // Zeichenkette 5
</code></pre>
<p>Die leeren Felder sind immoment durch einen &quot;.&quot; ersetzt.</p>
<p>Berücksichtigungen:<br />
- der neue Typ soll genug Platz bieten um die Pixeldarstellung aller Zahlen aus <em>int</em> (die max. anzahl darzustellender Ziffern/zeichen ergibt sich aus dem Wertebereich des typs int)<br />
In dieser Berechnung soll berücksichtigt werden das zwischen den Ziffern eine Spalte '|' die jeweiligen Zeichen trennen. Demnach sind als breite 5 Spalten einzuplanen.</p>
<p>Zur Lösung hab ich mir da folgendes Überlegt:</p>
<p>bei mir ist in vc++ int mit long gleich gesetzt. Demnach ist die größt mögliche zahl mit die mit int darstellbar ist 2147483647 um eins erhöht würde er in den minus bereich springen.</p>
<p>um diese zahl darzustellen benötige ich 10*5 Spalten.</p>
<p>Könnte mein neuer Datentyp so aussehen?</p>
<pre><code class="language-cpp">struct new_array{
char c_array[50][5];
}

new_array = matrix;
</code></pre>
<p>Als nächstes benötige ich dazu noch eine Funktion die eine Int Zahl als ersten Parameter und einen zeiger auf die leere struktur enthält.</p>
<p>Als Rückgabewert soll die Anzahl der dargestellten Ziffern incl. '-' übergeben werden.</p>
<pre><code class="language-cpp">int fill_array(int zahl, *matrix)
{
    int counter;

   // Die Funktion soll den Speicher entsprechend füllen. 
   // Achtung: Nach der letzten darzustellenden Ziffer sollen die Zeichenketten 
   // der 5 enthaltenen Pixwlzeilen logisch enden.
   // damit die ausgabe nur bis '\0' gelesen wird...
   // sollte die vorhergehende zahl 6666 sein und die nächste nur 12, soll die
   //  ausgabe 1266 vermieden werden

    return counter;
}
</code></pre>
<p>Für Ideen die mich hier weiterbringen bin ich sehr dankbar^^</p>
<p>das bisherige Programm</p>
<pre><code class="language-cpp"># include &lt;stdio.h&gt;
# include &lt;stdlib.h&gt;

# define WAIT for(;;)

char dots[11][5][4] = {
                            {
                                {' ', '*', '*', ' '},
                                {'*', ' ', ' ', '*'},
                                {'*', ' ', ' ', '*'},
                                {'*', ' ', ' ', '*'},
                                {' ', '*', '*', ' '}
                            },
                            {
                                {' ', ' ', '*', ' '},
                                {' ', '*', '*', ' '},
                                {'*', ' ', '*', ' '},
                                {' ', ' ', '*', ' '},
                                {' ', ' ', '*', ' '}
                            },
                            {
                                {' ', '*', '*', ' '},
                                {'*', ' ', ' ', '*'},
                                {' ', ' ', '*', ' '},
                                {' ', '*', ' ', ' '},
                                {'*', '*', '*', '*'}
                            },
                            {
                                {'*', '*', '*', ' '},
                                {' ', ' ', ' ', '*'},
                                {' ', '*', '*', ' '},
                                {' ', ' ', ' ', '*'},
                                {'*', '*', '*', ' '}
                            },
                            {
                                {' ', ' ', '*', ' '},
                                {' ', '*', ' ', ' '},
                                {'*', ' ', '*', ' '},
                                {'*', '*', '*', '*'},
                                {' ', ' ', '*', ' '}
                            },
                            {
                                {'*', '*', '*', '*'},
                                {'*', ' ', ' ', ' '},
                                {'*', '*', '*', ' '},
                                {' ', ' ', ' ', '*'},
                                {'*', '*', '*', ' '}
                            },
                            {
                                {' ', ' ', '*', '*'},
                                {' ', '*', ' ', ' '},
                                {' ', '*', '*', '*'},
                                {' ', '*', ' ', '*'},
                                {' ', '*', '*', '*'}
                            },
                            {
                                {'*', '*', '*', '*'},
                                {' ', ' ', ' ', '*'},
                                {' ', ' ', '*', ' '},
                                {' ', '*', ' ', ' '},
                                {' ', '*', ' ', ' '}
                            },
                            {
                                {' ', '*', '*', ' '},
                                {'*', ' ', ' ', '*'},
                                {' ', '*', '*', ' '},
                                {'*', ' ', ' ', '*'},
                                {' ', '*', '*', ' '}
                            },
                            {
                                {' ', '*', '*', '*'},
                                {' ', '*', ' ', '*'},
                                {' ', '*', '*', '*'},
                                {' ', ' ', ' ', '*'},
                                {' ', '*', '*', ' '}
                            },
{
                                {' ', ' ', ' ', ' '},
                                {' ', ' ', ' ', ' '},
                                {'*', '*', '*', '*'},
                                {' ', ' ', ' ', ' '},
                                {' ', ' ', ' ', ' '}
                            }
                        };

main()
    {
    unsigned char zahl[20];
    int zeile;
    int spalte;
    int index;

    printf( &quot;Bitte Zahl eingeben: &quot;);
    scanf( &quot;%s&quot;, zahl);
    printf( &quot;\n&quot;);

    for( zeile = 0; zeile &lt; 5; zeile = zeile + 1)
        {
        for( index = 0; zahl[index] != 0; index = index + 1)
            {
            for( spalte = 0; spalte &lt; 4; spalte = spalte + 1)
                 // hier entsteht gerade die Abfrage, 
                 // WENN zahl[index] das &quot;-&quot;, dann  springe zu  
                 // dots[11][zeile][spalte]
                 printf( &quot;%c&quot;, dots[zahl[index]-'0'][zeile][spalte]);

            printf( &quot;  &quot;);
            }
        printf( &quot;\n&quot;);
        }
    WAIT;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1400987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400987</guid><dc:creator><![CDATA[Keydo]]></dc:creator><pubDate>Sat, 10 Nov 2007 16:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to arrays, strings und matrix-darstellung on Sun, 11 Nov 2007 11:01:02 GMT]]></title><description><![CDATA[<p>hmm ganz schön tricky...</p>
<p>Hallo, das sieht übersichtlicher aus, das stimmt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--smiling_face_with_sunglasses"
      title="8)"
      alt="😎"
    /> ...</p>
<p>Immoment habe ich ein 3d - Array, welches die ganzen Zahlen beinhaltet.</p>
<p>Nun soll folgendes passieren. Jede Zeile 0-4 soll in einen String gespeichert werden.<br />
Wir gehen davon aus, der Benutzer hat eine 0 eingegeben so sehe der Inhalt wie folgt aus:</p>
<pre><code>string strg0,strg1,strg2,strg3,strg4;

&quot; ** &quot;     // &lt;- Inhalt von strg0
&quot;*  *&quot;     // &lt;- Inhalt von strg1
&quot;*  *&quot;     // &lt;- Inhalt von strg2
&quot;*  *&quot;     // &lt;- Inhalt von strg3
&quot; ** &quot;     // &lt;- Inhalt von strg4
</code></pre>
<p>Gibt nun der Benutzer die zahlen 10 ein soll der Inhalt anders aussehen:</p>
<pre><code>&quot;  * &quot; &quot; ** &quot;    // &lt;- Inhalt von strg0
&quot; ** &quot; &quot;*  *&quot;    // &lt;- Inhalt von strg1
&quot;* * &quot; &quot;*  *&quot;    // &lt;- Inhalt von strg2
&quot;  * &quot; &quot;*  *&quot;    // &lt;- Inhalt von strg3
&quot;  * &quot; &quot; ** &quot;    // &lt;- Inhalt von strg4
[code]

So wäre erstmal mein Ansatz. Jedoch wenn ich an der Stelle der Ausgabe
es in einen string einlesen will, klappt es noch nciht so ganz.

[code]
 if(zeile == 0)
   strg0[spalte] += dots[zahl[index]-'0'][zeile][spalte]);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1401254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401254</guid><dc:creator><![CDATA[Keydo]]></dc:creator><pubDate>Sun, 11 Nov 2007 11:01:02 GMT</pubDate></item></channel></rss>