<?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 und andere Datentypen]]></title><description><![CDATA[<p>Hallo,</p>
<p>und war ist es zumindestens was für mich das Thema angeht etwas komplizierter. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich schicke einfach mal die Aufgabe durch und schreib die Stelle an der ich nicht weiter komme.</p>
<p>Und zwar geht es erst einmal darum die Ziffern als &quot;Pixelblöcke&quot; also in einer Matrix von 5x8 Zeichen darzustellen.<br />
Bsp:</p>
<pre><code>111
1   1
1  11
1 1 1
1 1 1
11  1
1   1
 111
</code></pre>
<p>So jetzt die eigentliche Aufgabenstellung:</p>
<p>Definieren Sie in der Datei pixel_font.h einen Datentyp pixel_font_t, der<br />
jeweils eine 5×8-Pixel-Matrix für die Anzeige einer Ziffer aufnehmen<br />
kann (siehe Bild oben). Legen Sie dann in pixel_font.cpp ein globales<br />
Array an, in der die oben dargestellten Pixelmatrizen für die Ziffern<br />
'0'…'9' für einen bequemen Indexzugriff konstant gespeichert sind. Wie<br />
Sie mit den Pixel-Darstellungen des Schrägstrichs und des Minuszeichens<br />
verfahren, mögen Sie selbst entscheiden. Diese könnten wahlweise mit in<br />
das Array aufgenommen oder in Einzelvariablen des Typs pixel_font_t<br />
abgelegt werden. Beziehen Sie in die Entscheidung vor allem die<br />
Arbeitsweise der nachfolgend geforderten Funktion ein.<br />
Erstellen Sie dann in der Datei pixel_font.cpp eine Funktion<br />
getPixelsForChar(char aChar), die für ein als Parameter übergebenes<br />
Zeichen aChar einen Zeiger auf das zugehörige Pixelmuster zurückgibt,<br />
wenn aChar eines der Zeichen '0', …, '9', '/', '-' ist, anderenfalls<br />
den Zeiger NULL. Warum ist pixel_font_t* dafür der geeignete<br />
Rückgabetyp?</p>
<p>So mein problem ist nun 1. wie ich erstmal überhaupt diesen Datentyp darstelle,<br />
ich hatte ja gedacht über ein struct welches ein 2D Array enthält, und dann das ganze damit es für jede zahl gültig ist wieder in ein Array gepackt.<br />
Allerdings kenne ich mich noch nicht sogut mit Arrays aus.<br />
Also die das man es mit array[5][8] definiert ist mir klar.<br />
aber wenn ich es infolgenden Code packen würde:</p>
<pre><code>//pixel_font.h:

struct arr{
bool number[5][8];
};

//pixel_font.cpp

// die frage ist wie kann ich das jetzt aufrufen?
// also die zahlen für jedes arr vordefinieren. Konstant definiern!
// also ich würde es so machen, aber funktioniert ja nicht...

arr numberarray[9]; // 9 mal das struct in einem Array

numberarray[0].number = {{...},{...}...};

// oder müsste ich number über einen pointer ansteuern?
// das oben sozusagen &quot; bool number** &quot; steht?
</code></pre>
<p>Also wie ihr wahrscheinlich seht bin ich doch ziemlich verwirrt was die Aufgabe angeht und würde mich über jegliche hilfe freuen.<br />
Außerdem soll das ganze noch ne Konstante sein und Global gültig, muss ich das dann über #define machen, wenn ja wie schreibe ich das überhaupt?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/228487/arrays-und-andere-datentypen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 10:24:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228487.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 Nov 2008 21:34:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arrays und andere Datentypen on Fri, 28 Nov 2008 21:34:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>und war ist es zumindestens was für mich das Thema angeht etwas komplizierter. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich schicke einfach mal die Aufgabe durch und schreib die Stelle an der ich nicht weiter komme.</p>
<p>Und zwar geht es erst einmal darum die Ziffern als &quot;Pixelblöcke&quot; also in einer Matrix von 5x8 Zeichen darzustellen.<br />
Bsp:</p>
<pre><code>111
1   1
1  11
1 1 1
1 1 1
11  1
1   1
 111
</code></pre>
<p>So jetzt die eigentliche Aufgabenstellung:</p>
<p>Definieren Sie in der Datei pixel_font.h einen Datentyp pixel_font_t, der<br />
jeweils eine 5×8-Pixel-Matrix für die Anzeige einer Ziffer aufnehmen<br />
kann (siehe Bild oben). Legen Sie dann in pixel_font.cpp ein globales<br />
Array an, in der die oben dargestellten Pixelmatrizen für die Ziffern<br />
'0'…'9' für einen bequemen Indexzugriff konstant gespeichert sind. Wie<br />
Sie mit den Pixel-Darstellungen des Schrägstrichs und des Minuszeichens<br />
verfahren, mögen Sie selbst entscheiden. Diese könnten wahlweise mit in<br />
das Array aufgenommen oder in Einzelvariablen des Typs pixel_font_t<br />
abgelegt werden. Beziehen Sie in die Entscheidung vor allem die<br />
Arbeitsweise der nachfolgend geforderten Funktion ein.<br />
Erstellen Sie dann in der Datei pixel_font.cpp eine Funktion<br />
getPixelsForChar(char aChar), die für ein als Parameter übergebenes<br />
Zeichen aChar einen Zeiger auf das zugehörige Pixelmuster zurückgibt,<br />
wenn aChar eines der Zeichen '0', …, '9', '/', '-' ist, anderenfalls<br />
den Zeiger NULL. Warum ist pixel_font_t* dafür der geeignete<br />
Rückgabetyp?</p>
<p>So mein problem ist nun 1. wie ich erstmal überhaupt diesen Datentyp darstelle,<br />
ich hatte ja gedacht über ein struct welches ein 2D Array enthält, und dann das ganze damit es für jede zahl gültig ist wieder in ein Array gepackt.<br />
Allerdings kenne ich mich noch nicht sogut mit Arrays aus.<br />
Also die das man es mit array[5][8] definiert ist mir klar.<br />
aber wenn ich es infolgenden Code packen würde:</p>
<pre><code>//pixel_font.h:

struct arr{
bool number[5][8];
};

//pixel_font.cpp

// die frage ist wie kann ich das jetzt aufrufen?
// also die zahlen für jedes arr vordefinieren. Konstant definiern!
// also ich würde es so machen, aber funktioniert ja nicht...

arr numberarray[9]; // 9 mal das struct in einem Array

numberarray[0].number = {{...},{...}...};

// oder müsste ich number über einen pointer ansteuern?
// das oben sozusagen &quot; bool number** &quot; steht?
</code></pre>
<p>Also wie ihr wahrscheinlich seht bin ich doch ziemlich verwirrt was die Aufgabe angeht und würde mich über jegliche hilfe freuen.<br />
Außerdem soll das ganze noch ne Konstante sein und Global gültig, muss ich das dann über #define machen, wenn ja wie schreibe ich das überhaupt?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622658</guid><dc:creator><![CDATA[HerzogDeXtEr]]></dc:creator><pubDate>Fri, 28 Nov 2008 21:34:47 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und andere Datentypen on Fri, 28 Nov 2008 22:49:29 GMT]]></title><description><![CDATA[<p>Wenn du konstant definieren willst, musst du initialisieren. Momentan machst du nichts anderes als zuzuweisen.</p>
<p>Nehmen wir mal ein Array der Länge N mit Elementen vom Typ T, dann sieht eine Initialisierung wie folgt aus:</p>
<pre><code class="language-cpp">T anyarray[N] = {...};
</code></pre>
<p>Innerhalb der geschweiften Klammern stehen dann die Ausdrücke für die Werte der einzelnen Elemente. Es ist praktisch das, was du bereits in deinem Code stehen hast. Nur gehört das direkt zur Definition. Übrigens, wenn du die Ziffern von 0 bis 9 speichern willst, muss das Array 10 Elemente haben, nicht 9. Du kannst die Grössenangabe auch weglassen. Dann wird sie vom Compiler anhand der Initialisierung automatisch ermittelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622681</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 28 Nov 2008 22:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und andere Datentypen on Fri, 28 Nov 2008 23:57:48 GMT]]></title><description><![CDATA[<p>ich würd anstatt der x-dimension an bools ein unsigned char nehmen, das ist um einiges platz sparender.</p>
<pre><code class="language-cpp">struct arr{  // &lt;- hat das einen grund, dass das nochmal in eine structur verpackt ist, die zudem einen dummen namen hat?
unsigned char number[8];
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1622700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622700</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Fri, 28 Nov 2008 23:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und andere Datentypen on Sat, 29 Nov 2008 00:21:19 GMT]]></title><description><![CDATA[<p>Hallo Studienkollege ^^</p>
<p>Die Konstanten hab ich im folgenden so definiert:</p>
<pre><code class="language-cpp">typedef char pixel_font_t[8][5];
const pixel_font_t number1={	
			{' ',' ',' ','#',' '},
			{' ',' ','#','#',' '},
			{' ','#',' ','#',' '},
			{' ',' ',' ','#',' '},
			{' ',' ',' ','#',' '},
			{' ',' ',' ','#',' '},
			{' ',' ',' ','#',' '},
			{' ',' ',' ','#',' '}};

//usw...
</code></pre>
<p>Dann geht es ja darum es in die Funktion:</p>
<pre><code class="language-cpp">const pixel_font_t* getPixelsForChar(char aChar);
</code></pre>
<p>zu schreiben.</p>
<p>Also die Ausgabe von einer Zahl stellt jetzt noch nicht das Problem dar.<br />
Ich glaube so war es gewesen:</p>
<pre><code class="language-cpp">const pixel_font_t* getPixelsForChar(char aChar)
{
    for(int i=0;i&lt;8;i++)
    {
      for(int j=0;j&lt;5;j++)
      {
         switch(aChar)
         {
             case '1':
                cout&lt;&lt;number1[i][j];
                break;
         };
       if(j==4)
       cout&lt;&lt;endl;
       }
    }

    return NULL;
}
</code></pre>
<p>Mir ist so als war das so gewesen. Später änderst du die Funktion so ab dass für den benötigten Parameter die richtige Konstante zurückgegeben wird. Das NULL soll am Ende nur zur Sicherheit übertragen werden um im späteren Verlauf eventuelle Fehler abzudecken. Später ändert sich die Sache nämlich ein wenig ab wenn es darum geht die Zahlen hintereinander auszugeben.</p>
<p>Hoffe ich konnte dir ein wenig helfen.</p>
<p>mfg frock. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622703</guid><dc:creator><![CDATA[frock]]></dc:creator><pubDate>Sat, 29 Nov 2008 00:21:19 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und andere Datentypen on Sat, 29 Nov 2008 00:44:09 GMT]]></title><description><![CDATA[<p>danke an groovemaster und frock, ps schreib mal mal durch wer du bist ^^, kann deinen nick nich zuordnen,<br />
also die ausgabe war nich so mein problem und die zuordnung, allein das schreiben der constanten und arrays, wie auch immer, war mein problem, trotzdem danke :), jetzt hab ich zumindestens einen ansatz.<br />
werd mir das morgen nochma genauer anschauen und bei frauen nochma rückmelden.</p>
<p>an vlad_tepesch:<br />
ja ich fand es auch nicht reichlich sinnvoll das ganze nochma in ein struct einzupacken aber irgendwie hab ich es so aus der aufgabe herausgelesen du kannst sie dir gerne noch zu gemühte führen bevor du nicht wirklich brauchbare kommentare dazu ablässt, und der name mag dumm sein ich hab ihn mir in dem augenblick auch nur aus dem ärmel geschüttelt (arr für array, soll zeigen das da ein array reingepackt ist)</p>
<p>//edit<br />
ohh entschuldigung jetzt hab ich doch tatsächlich nicht den hinweis über dem &quot;code&quot; gelesen, auch danke dafür!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622707</guid><dc:creator><![CDATA[HerzogDeXtEr]]></dc:creator><pubDate>Sat, 29 Nov 2008 00:44:09 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und andere Datentypen on Mon, 01 Dec 2008 22:40:07 GMT]]></title><description><![CDATA[<p>vlad_tepesch schrieb:</p>
<blockquote>
<p>ich würd anstatt der x-dimension an bools ein unsigned char nehmen, das ist um einiges platz sparender.</p>
</blockquote>
<p>Implementationsspezifisch. Wenn bool lediglich 1 Byte gross ist, wird auch nicht mehr Platz benötigt. Ob bool oder direkt char sollte man besser entsprechend der Aufgabenstellung entscheiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1624035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1624035</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 01 Dec 2008 22:40:07 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays und andere Datentypen on Tue, 02 Dec 2008 14:51:24 GMT]]></title><description><![CDATA[<p>Wenn man Platz sparen will, ist die spezialisierte Templateklasse <code>std::vector&lt;bool&gt;</code> zu empfehlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1624393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1624393</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 02 Dec 2008 14:51:24 GMT</pubDate></item></channel></rss>