<?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[[Aufgabe] Messwerte einlesen und verarbeiten]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>Ich möchte folgende Aufgabe gerne Lösen, es wäre nett wenn ihr mir dabei etwas behilflich sein könntet.<br />
Ich möchte allerdings keine Komplettlösung haben denn sonst lerne ich dabei ja nichts.<br />
Es wäre nett wenn ihr mir hin und wieder einfach etwas auf die Sprünge helfen könntet.</p>
<blockquote>
<p><strong>Aufgabe : Lesen einer Datei und Bestimmung des Minimalwertes</strong></p>
<p>Eine Datei MESSWERTE.TXT enthält eine unbekannte Anzahl n von float-Messwerten.<br />
a) Bestimmen Sie die Anzahl n der Messwerte in der Datei. Schließen Sie dann die Datei wieder.<br />
b) Definieren Sie (mit dem new-Operator) eine Reihung messwerte für die n Messwerte.<br />
c) Öffnen Sie die Datei erneut und lesen Sie die Messwerte der Datei in messwerte ein.<br />
d) Geben Sie die Messwerte zur Kontrolle aus. Sollten es mehr als 20 Messwerte sein, geben Sie nur die ersten 10 und die letzten 3 Messwerte aus.<br />
e) Bestimmen Sie das minimum der Messwertreihe.<br />
f) Geben Sie die Anzahl n und den Werte von minimum aus.</p>
</blockquote>
<p><strong>Lösungsansatz:</strong></p>
<p><strong>a)</strong> // ich hab das jetzt erstmal mit Ganzzahl messwerte gemacht, ich weis leider nicht wie man das mit gleitkommazahlen machen könnte ( wegen dem einlesen von Datei)</p>
<pre><code class="language-cpp">//Aufgabe 5 a)
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

using namespace std;

int main()
{
	string dateiname = &quot;MESSWERTE.TXT&quot;; 
	ifstream input;

	input.open(dateiname.c_str(), ios_base::in);

	if (!input)
	{
	cout &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot;;
	return -1;
	}

int i;
char zeichen;

for (i=0; !input.eof(); i++)
	{
	input.get(zeichen);
	}

cout &lt;&lt; &quot;Die Datei enthaelt &quot; &lt;&lt; i/2 &lt;&lt; &quot; Zeichen&quot; &lt;&lt; endl;

input.close();

system(&quot;pause&quot;);

return 0;

}
</code></pre>
<p>MESSWERTE.TXT sieht so aus:</p>
<blockquote>
<p>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10</p>
</blockquote>
<p><strong>b)</strong><br />
Hier hab ich schon meine Probleme das mit dem new Operator hatten wir noch nicht so genau.<br />
Ich weis zwar das man mit diesem Operator dynamischen Speicher im Heap reservieren kann aber wie ich das genau mache weis ich nicht.</p>
<p>Warum kann man das denn nicht nur mit einem normalen float Array machen?</p>
<p>An dieser Stelle komme ich momentan nicht mehr weiter, ich weis halt nicht was ich nun machen soll.</p>
<p>Könnt ihr mir da etwas auf die Sprünge helfen?</p>
<p>dankeschön im voraus</p>
<p>mfg fraggelfragger</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201477/aufgabe-messwerte-einlesen-und-verarbeiten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 02:28:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201477.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 30 Dec 2007 16:28:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Sun, 30 Dec 2007 16:54:30 GMT]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>Ich möchte folgende Aufgabe gerne Lösen, es wäre nett wenn ihr mir dabei etwas behilflich sein könntet.<br />
Ich möchte allerdings keine Komplettlösung haben denn sonst lerne ich dabei ja nichts.<br />
Es wäre nett wenn ihr mir hin und wieder einfach etwas auf die Sprünge helfen könntet.</p>
<blockquote>
<p><strong>Aufgabe : Lesen einer Datei und Bestimmung des Minimalwertes</strong></p>
<p>Eine Datei MESSWERTE.TXT enthält eine unbekannte Anzahl n von float-Messwerten.<br />
a) Bestimmen Sie die Anzahl n der Messwerte in der Datei. Schließen Sie dann die Datei wieder.<br />
b) Definieren Sie (mit dem new-Operator) eine Reihung messwerte für die n Messwerte.<br />
c) Öffnen Sie die Datei erneut und lesen Sie die Messwerte der Datei in messwerte ein.<br />
d) Geben Sie die Messwerte zur Kontrolle aus. Sollten es mehr als 20 Messwerte sein, geben Sie nur die ersten 10 und die letzten 3 Messwerte aus.<br />
e) Bestimmen Sie das minimum der Messwertreihe.<br />
f) Geben Sie die Anzahl n und den Werte von minimum aus.</p>
</blockquote>
<p><strong>Lösungsansatz:</strong></p>
<p><strong>a)</strong> // ich hab das jetzt erstmal mit Ganzzahl messwerte gemacht, ich weis leider nicht wie man das mit gleitkommazahlen machen könnte ( wegen dem einlesen von Datei)</p>
<pre><code class="language-cpp">//Aufgabe 5 a)
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

using namespace std;

int main()
{
	string dateiname = &quot;MESSWERTE.TXT&quot;; 
	ifstream input;

	input.open(dateiname.c_str(), ios_base::in);

	if (!input)
	{
	cout &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot;;
	return -1;
	}

int i;
char zeichen;

for (i=0; !input.eof(); i++)
	{
	input.get(zeichen);
	}

cout &lt;&lt; &quot;Die Datei enthaelt &quot; &lt;&lt; i/2 &lt;&lt; &quot; Zeichen&quot; &lt;&lt; endl;

input.close();

system(&quot;pause&quot;);

return 0;

}
</code></pre>
<p>MESSWERTE.TXT sieht so aus:</p>
<blockquote>
<p>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10</p>
</blockquote>
<p><strong>b)</strong><br />
Hier hab ich schon meine Probleme das mit dem new Operator hatten wir noch nicht so genau.<br />
Ich weis zwar das man mit diesem Operator dynamischen Speicher im Heap reservieren kann aber wie ich das genau mache weis ich nicht.</p>
<p>Warum kann man das denn nicht nur mit einem normalen float Array machen?</p>
<p>An dieser Stelle komme ich momentan nicht mehr weiter, ich weis halt nicht was ich nun machen soll.</p>
<p>Könnt ihr mir da etwas auf die Sprünge helfen?</p>
<p>dankeschön im voraus</p>
<p>mfg fraggelfragger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428113</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Sun, 30 Dec 2007 16:54:30 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Sun, 30 Dec 2007 16:54:35 GMT]]></title><description><![CDATA[<p>zu a: falsch<br />
Mittels cin.get() liest du nur ein einzelnes Zeichen aus und die Formel i/2 ist ja wohl auch nicht akzeptabel.<br />
Versuch es mal mit</p>
<pre><code class="language-cpp">float f;
int nAnzahl = 0;
while(true)
{
    if(!(input &lt;&lt; f))
      break;

    nAnzahl++;
}
</code></pre>
<p>Ich habe extra nicht auf input.eof() abgefragt, sondern nur, ob der Stream noch in Ordnung ist. Bei Buchstaben in der Datei gäbe es sonst eine Endlosschleife.</p>
<p>zu b:<br />
Da du ja nicht weißt, wieviele Werte in der Datei stehen, kannst du ja nicht ein statisches Array benutzen.</p>
<p>Du mußt also dann 'nAnzahl' float-Werte allokieren:</p>
<pre><code class="language-cpp">float *pValues = new float[nAnzahl];

// Zugriff auf die einzelnen Werte analog zu einem statischen Array
for(int i=0; i&lt;nAnzahl; i++)
  pValues[i] = 0;

// bzw. aus der Datei lesen
input &lt;&lt; pValues[i];

// und am Ende nach allen Berechnungen wieder freigeben
delete [] pValues;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1428132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428132</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Sun, 30 Dec 2007 16:54:35 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Sun, 30 Dec 2007 17:11:40 GMT]]></title><description><![CDATA[<p>Okey, ich hab nun deinen Vorschlag übernommen bei mir kommen da aber nun en haufen Compiler fehler</p>
<blockquote>
<p>(25) : error C2784: &quot;std::basic_ostream&lt;_Elem,_Traits&gt; &amp;std::operator &lt;&lt;(std::basic_ostream&lt;_Elem,_Traits&gt; &amp;,const std::basic_string&lt;_Elem,_Traits,_Alloc&gt; &amp;)&quot;: template-Argument für &quot;std::basic_ostream&lt;_Elem,_Traits&gt; &amp;&quot; konnte nicht von &quot;std::ifstream&quot; hergeleitet werden</p>
</blockquote>
<p>//edit muss dazu evtl. noch ne andere Bibiothek includieren? wegen input &lt;&lt; f</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

using namespace std;

int main()
{
	string dateiname = &quot;MESSWERTE.TXT&quot;; 
	ifstream input;

	input.open(dateiname.c_str(), ios_base::in);

	if (!input)
	{
	cout &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot;;
	return -1;
	}

float f;
int nAnzahl = 0;

while(true)
{
    if(!(input &lt;&lt; f))
      break;

    nAnzahl++;
}
cout &lt;&lt; &quot;Anzahl der Werte lautet: &quot; &lt;&lt; nAnzahl &lt;&lt; endl;

input.close();

system(&quot;pause&quot;);

return 0;

}
</code></pre>
<p>was ist da nun falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428140</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Sun, 30 Dec 2007 17:11:40 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Sun, 30 Dec 2007 17:26:30 GMT]]></title><description><![CDATA[<p>Sorry, hab mal wieder den Eingabe-Operator mit dem Ausgabe-Operator verwechselt.</p>
<p>Richtig ist es so:</p>
<pre><code class="language-cpp">input &gt;&gt; f;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1428157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428157</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Sun, 30 Dec 2007 17:26:30 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Sun, 30 Dec 2007 18:01:17 GMT]]></title><description><![CDATA[<p>macht nix <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="🙂"
    /> passiert mir auch manchmal</p>
<p>so ich habs nun soweit:</p>
<pre><code class="language-cpp">//b) Definieren von einer Reihung Messwerte
float *pmesswerte = new float[nAnzahl];

//c) lesen der Datei in messwerte
ifstream input2;
input2.open(dateiname.c_str(), ios_base::in)
if (!input2)
		{
		cout &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot;;
		return -1;
		}

for(int i=0; i &lt; nAnzahl; i++)
input2 &gt;&gt; pmesswerte[i];
input2.close(); // edit hatte ich vergessen
</code></pre>
<p>somit wäre ja dann c) abgehackt oder?<br />
Eine Frage habe ich allerdings dazu noch, hab ich das nun richtig verstanden das er mit dem befehl input immer eine komplette Zeile einliest? Wie müsste ich es machen wenn die Messwerte.txt so aussehen würde:</p>
<blockquote>
<p>1 2 3 4 5 6 7 8 ...</p>
</blockquote>
<p>so in der Art --&gt; lese alles ein bis zum nächsten Leerzeichen?!</p>
<p>mfg fraggelfragger</p>
<p>//edit deklaration von input in input2 umgeändert wegen Namensdoppelbelegung<br />
//edit2 habe das Program c) mal in Einzelschritt ausgeführt leider schreibt der nun in den Pointer messwerte nur den ersten Wert von der Text Datei rein. Alle anderen Werte gehen unter ( es scheint so das die Schleife immer wieder bei der ersten Zeile anfängt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428174</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Sun, 30 Dec 2007 18:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Sun, 30 Dec 2007 18:49:51 GMT]]></title><description><![CDATA[<p>Ja, so wie du es geschrieben hast, ist es richtig.</p>
<p>Laß dir doch danach einfach mal die Meßwerte ausgeben:</p>
<pre><code class="language-cpp">for(int i=0; i &lt; nAnzahl; i++)
{
  input2 &gt;&gt; pmesswerte[i];
  cout &lt;&lt; pmesswerte[i] &lt;&lt; endl;
}
</code></pre>
<p>Bei der Datei ist es egal, ob zwischen den Zahlenwerten Leerzeichen, Zeilenenden oder sonstige sog. Whitespaces stehen, diese werden alle überlesen.</p>
<p>Hast du evtl. beim Debuggen immer nur den Wert von 'pmesswerte' dir angeschaut, dieser entspricht ja einfach dem ersten Wert des Arrays.<br />
Du mußt schon explizit 'pmesswerte[i]' dir anschauen (watch).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428204</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Sun, 30 Dec 2007 18:49:51 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Sun, 30 Dec 2007 19:22:34 GMT]]></title><description><![CDATA[<p>stimmt du hattest recht, musste das per Hand in die Überwachung eintragen.</p>
<p>Ich werd mich nun mal an den nächsten Aufgabenteil ranmachen.</p>
<p>An dieser Stelle möchte ich mich aber erstma noch bedanken für deine Hilfe.</p>
<p>mfg fraggelfragger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428233</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Sun, 30 Dec 2007 19:22:34 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Mon, 31 Dec 2007 00:01:30 GMT]]></title><description><![CDATA[<p>Gern geschehen -)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428363</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 31 Dec 2007 00:01:30 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Mon, 31 Dec 2007 07:18:53 GMT]]></title><description><![CDATA[<p>So also das ist erstma d)</p>
<pre><code class="language-cpp">//b) Definieren von einer Reihung Messwerte
float *pmesswerte = new float[nAnzahl];

//c) messwerte einlesen
ifstream input2;
input2.open(dateiname.c_str(), ios_base::in);
if (!input2)
		{
		cout &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot;;
		return -1;
		}

for(int i=0; i &lt; nAnzahl; i++)
	{
	input2 &gt;&gt; pmesswerte[i];

		if (nAnzahl &lt;= 20)
			{
			cout &lt;&lt; pmesswerte[i]&lt;&lt; endl;
			}
		else;
	}

input2.close();

//d) Bei mehr als 20 Werte --&gt; nur ersten 10 und letzte 3 ausgeben
if (nAnzahl &gt; 20) 
{
	for(int j=0; j &lt; 10 ; j++)
		{
		cout &lt;&lt; pmesswerte[j]&lt;&lt; endl;
		}

	for(int k=nAnzahl-3; k &lt; nAnzahl ; k++)
		{
		cout &lt;&lt; pmesswerte[k]&lt;&lt; endl;
		}
}
</code></pre>
<p>bei der e) hab ich noch etwas Probleme, kann man das mit der getExtremes() Funktion machen?<br />
oder doch eher mit Schleife und einzelne Werte vergleichen und vertauschen?</p>
<p>mfg<br />
fraggelfragger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428413</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Mon, 31 Dec 2007 07:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Mon, 31 Dec 2007 10:50:03 GMT]]></title><description><![CDATA[<p>zu d:</p>
<p>Du solltest die zwei Ausgabe-Schleifen am besten einfach als if ... else ... realisieren (die Ausgabe aus der Einleseschleife wieder entfernen):</p>
<pre><code class="language-cpp">if(anzahl &lt;= 20)
{
  for(int i=0; i &lt; nAnzahl; i++)
    cout &lt;&lt; pmesswerte[i]&lt;&lt; endl;
}
else
{
  // Schleife mit ersten 10
  // Schleife mit letzten 3
}
</code></pre>
<p>Tipp: Du solltest dir für jede Teilaufgabe eine eigene Funktion implementieren<br />
(Idealerweise sogar eine Klasse dafür definieren, falls du schon weißt, was das ist?)</p>
<p>zu e:<br />
im Header &lt;algorithm&gt; gibt es die Funktionen std::min_element() und std::max_element.<br />
Die Funktion 'getExtremes()' kenne ich nicht.</p>
<p>und f sollte dann ja auch einfach für dich sein...</p>
<p>P.S. Anhand welches Tutorials oder welchen Buchs lernst du denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428457</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 31 Dec 2007 10:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Mon, 31 Dec 2007 14:29:31 GMT]]></title><description><![CDATA[<p>Th schrieb:</p>
<blockquote>
<p>Tipp: Du solltest dir für jede Teilaufgabe eine eigene Funktion implementieren<br />
(Idealerweise sogar eine Klasse dafür definieren, falls du schon weißt, was das ist?)</p>
</blockquote>
<p>okey ich werde das mal ändern, Klassen habe ich auch schon gehört aber praktisch in der Programierung angewend habe ich diese leider noch nicht.<br />
Ist dir evtl. ein Buch bekannt in dem Übungen mit Lösungen vorhanden sind? Denke so könnte ich am besten lernen.</p>
<p>Th schrieb:</p>
<blockquote>
<p>P.S. Anhand welches Tutorials oder welchen Buchs lernst du denn?</p>
</blockquote>
<p>Ich lerne nach einem Skript, dabei musste ich mich allerdings einem Skript von einem anderen Professor bedienen, da mein eigener Prof kein Skript hat ( der gute Mann ist schon etwas älter und war schon im Ruhestand --&gt; er wurde zurückbeordert)</p>
<p>Deshalb muss ich mich halt da etwas durchbeisen, hast du irgendwelche Tips für mich ? Buchtips?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428592</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Mon, 31 Dec 2007 14:29:31 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Mon, 31 Dec 2007 15:42:38 GMT]]></title><description><![CDATA[<p>Schau dich mal hier im Forum unter dem Link 'Tutorials' oder 'Bücher' bei C++ um, dort sind einige hinterlegt.<br />
Es ist immer gut, wenn man mehrere zur Auswahl hat. Nicht alle C++ Tuts bzw. Bücher sind didaktisch gut bzw. häufig auch noch etwas veraltet.<br />
Wenn die Standard-Header-Dateien z.B. noch &lt;iostream.h&gt; heißen, dann ist dies ein Anzeichen für einen Wechsel (insbesondere wenn der Compiler dann nur Fehler wirft -).<br />
Ich weiß ja nicht, auf welchem Stand dein Script ist?</p>
<p>Aber gerade Funktionen sollten schon am Anfang erklärt werden, bevor man z.B. komplexe Ein- und Ausgaben macht.</p>
<p>Je größer die Programme werden, desto mehr Wert muß man auf eine gute Struktur legen (und dies wird durch gut benannte Funktionen bzw. Klassen unterstützt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428628</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 31 Dec 2007 15:42:38 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Mon, 31 Dec 2007 16:11:54 GMT]]></title><description><![CDATA[<p>vielen dank für die tips das werd ich mir mal anschauen.</p>
<p>Und dann das Programm mit Unterfunktionen realisieren.</p>
<p>mfg<br />
fraggelfragger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428653</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Mon, 31 Dec 2007 16:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Mon, 31 Dec 2007 18:32:49 GMT]]></title><description><![CDATA[<p>okey so sieht das ganze nun mit Funktionen aus:</p>
<p>was könnte ich da noch besser machen? ist das alles so korrekt?</p>
<p>Mit Klassen würd ichs glaube ich auch gerne versuchen. Weil es ja noch Professioneller dann ist.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt;

using namespace std;

//Prototypen
long Werte_Anzahl(string name);
int einlesen(string name,int b,float *pmesswerte);
void ausgabe(int b, float *pmesswerte); 
float minimum(int b, float *pmesswerte);

int main()
{
string dateiname = &quot;MESSWERTE.TXT&quot;; 

//a) Anzahl der Messwerte bestimmen
int nAnzahl = Werte_Anzahl(dateiname);

//b) Definieren von einer Reihung Messwerte
float *pmesswerte = new float[nAnzahl];

//c) Messwerte einlesen
einlesen(dateiname,nAnzahl,pmesswerte);

//d) 20 Werte --&gt; ersten 10 und letzten 3 ausgeben ansonsten alle
ausgabe(nAnzahl,pmesswerte);

//e)Minimum suchen
float min = minimum(nAnzahl,pmesswerte);

//f) nAnzahl ausgeben und minmum ausgeben
cout &lt;&lt; &quot;Anzahl der Werte: &quot; &lt;&lt; Werte_Anzahl(dateiname) &lt;&lt; endl;
cout &lt;&lt; &quot;Minimum: &quot; &lt;&lt; min &lt;&lt; endl;

delete [nAnzahl] pmesswerte;

return 0;
}
</code></pre>
<p>//Unterfunktionen</p>
<pre><code class="language-cpp">long Werte_Anzahl(string name)
{
	//Datei öffnen
	ifstream input;
	input.open(name.c_str(), ios_base::in);

	//Wenn Datei nicht vorhanden
	if (!input)
		{
			cout &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot;;
			return -1;
		}

float f;
int nAnzahl = 0;

//Werte-Anzahl bestimmen
while(true)
	{
    		if(!(input &gt;&gt; f))
    			break;

    		nAnzahl++;
	}

//Datei schließen
input.close();

//Rückgabe von Anzahl der Werte in Datei
return nAnzahl;
}
</code></pre>
<pre><code class="language-cpp">int einlesen(string name,int b,float *pmesswerte)
{
ifstream input2;
input2.open(name.c_str(), ios_base::in);
if (!input2)
        {
        	cout &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot;;
        	return -1;
        }

for(int i=0; i &lt; b; i++)
    {
    	input2 &gt;&gt; pmesswerte[i];
    }

input2.close();
}
</code></pre>
<pre><code class="language-cpp">void ausgabe(int b, float *pmesswerte)
{
if (b &gt; 20) 
	{
		for(int j=0; j &lt; 10 ; j++)
			{
				cout &lt;&lt; pmesswerte[j]&lt;&lt; endl;
			}

		for(int k=b-3; k &lt; b ; k++)
			{
				cout &lt;&lt; pmesswerte[k]&lt;&lt; endl;
			}
	}
else
	{
		for(int l=0; l &lt; b ; l++)
			{
				cout &lt;&lt; pmesswerte[l]&lt;&lt; endl;
			}
	}
}
</code></pre>
<pre><code class="language-cpp">float minimum(int b, float *pmesswerte)
{
float minimum = *min_element(pmesswerte, pmesswerte+b);

return minimum;
}
</code></pre>
<p>∞</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428673</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Mon, 31 Dec 2007 18:32:49 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Mon, 31 Dec 2007 17:40:15 GMT]]></title><description><![CDATA[<p>Deine &quot;Einrückung&quot; ist katastrophal bzw. gar nicht vorhanden! Ändern das!!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428682</guid><dc:creator><![CDATA[AnonymerTipp]]></dc:creator><pubDate>Mon, 31 Dec 2007 17:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Mon, 31 Dec 2007 18:33:19 GMT]]></title><description><![CDATA[<p>Habs oben editiert, nun besser so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428693</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Mon, 31 Dec 2007 18:33:19 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Tue, 01 Jan 2008 23:22:06 GMT]]></title><description><![CDATA[<p>Deine Code-Formatierung ist gewöhnungsbedürftig. Normalerweise rückt man alle Teile innerhalb der Blockklammern um einen Tabulator (oder wahlweise Leerzeichen) ein:</p>
<pre><code class="language-cpp">int main()
{
    while(true)
    {
         if(flag)
         {
            f();
         }
         else
         {
            g();
         }
    }
}
</code></pre>
<p>Aber inhaltlich ist dein Code schon sehr gut aufgeteilt auf die Funktionen (du könntest höchstens noch einige Variablen noch besser benennen, z.B. 'b').</p>
<p>Und wenn du dich in Klassen eingelesen hast, dann wirst du merken, daß du dann nicht mehr bei jeder Funktion die Parameter 'pmesswerte' angeben mußt.</p>
<p>Aber du bist auf jeden Fall auf einen guten Weg zum erfolgreichen C++ Programmierer -)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429020</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Tue, 01 Jan 2008 23:22:06 GMT</pubDate></item><item><title><![CDATA[Reply to [Aufgabe] Messwerte einlesen und verarbeiten on Wed, 02 Jan 2008 10:45:59 GMT]]></title><description><![CDATA[<p>Th schrieb:</p>
<blockquote>
<p>Deine Code-Formatierung ist gewöhnungsbedürftig. Normalerweise rückt man alle Teile innerhalb der Blockklammern um einen Tabulator (oder wahlweise Leerzeichen) ein</p>
</blockquote>
<p>okey, ich werde das nächste mal versuchen, es komplett so zu machen, und das mir so anzugewöhnen.</p>
<p>Th schrieb:</p>
<blockquote>
<p>du könntest höchstens noch einige Variablen noch besser benennen, z.B. 'b').</p>
</blockquote>
<p>Da hast du recht, habe das etwas einfallslos benannt.<br />
Ich wollte hauptsächlich das bei den Funktionsdefinitionen, nicht unbedingt die Variablen stehen die auch übergeben werden.</p>
<p>Th schrieb:</p>
<blockquote>
<p>Aber du bist auf jeden Fall auf einen guten Weg zum erfolgreichen C++ Programmierer -)</p>
</blockquote>
<p>freut mich zu hören <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>Vielen dank das du nochmal über den Code drüber geschaut hast und mir etwas Feedback zukommen gelassen hast.<br />
Es hilft wirklich viel wenn man von einem erfahrenen Programmierer Tips bekommt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1429159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429159</guid><dc:creator><![CDATA[fraggelfragger]]></dc:creator><pubDate>Wed, 02 Jan 2008 10:45:59 GMT</pubDate></item></channel></rss>