<?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[Versehe Programiercode nicht]]></title><description><![CDATA[<p>Mein Problem ist das ich den Algorithmus der hinter den 2 For-Schleifen steckt nicht verstehe. Hoffe ich konnte mich besser ausdrücken</p>
<p>Zur Definition</p>
<pre><code class="language-cpp">struct EINGAENGE
{
	char	Pin[5];
	char	Bezeichnung[10];
	int		Anzahl;
	bool	TextDarstellen;

};
</code></pre>
<pre><code class="language-cpp">EINGAENGE *PosZeiger;
				PosZeiger = (EINGAENGE *) GlobalLock(Beschriftung.Eingaenge);

			// Minimum bestimmen
			for (int i = 1; i &lt;= (*(PosZeiger)).Anzahl; i++)
				if ((*(PosZeiger + i)).Anzahl &lt; min)
					min = (*(PosZeiger + i)).Anzahl;			

			//Wert zwischen min  finden
			for (int i = 1; i &lt;= (*(PosZeiger)).Anzahl; i++)							
				if ((*(PosZeiger + i)).Anzahl == min)
					break;						

			if (i &gt; (*(PosZeiger)).Anzahl)
				i = (*(PosZeiger)).Anzahl;
</code></pre>
<p>Verstehe die beiden For schleifen nicht ist mir unklar was die machen.<br />
Wenn ich ein einer for Schleife mehrere if ohne klammern deklariere wie werden diese im Programmablauf berücksichtigt.</p>
<p>Benutze zur Programierung Visual c++ 6.0</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174392/versehe-programiercode-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 01:31:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174392.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Feb 2007 12:54:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Versehe Programiercode nicht on Tue, 27 Feb 2007 14:13:28 GMT]]></title><description><![CDATA[<p>Mein Problem ist das ich den Algorithmus der hinter den 2 For-Schleifen steckt nicht verstehe. Hoffe ich konnte mich besser ausdrücken</p>
<p>Zur Definition</p>
<pre><code class="language-cpp">struct EINGAENGE
{
	char	Pin[5];
	char	Bezeichnung[10];
	int		Anzahl;
	bool	TextDarstellen;

};
</code></pre>
<pre><code class="language-cpp">EINGAENGE *PosZeiger;
				PosZeiger = (EINGAENGE *) GlobalLock(Beschriftung.Eingaenge);

			// Minimum bestimmen
			for (int i = 1; i &lt;= (*(PosZeiger)).Anzahl; i++)
				if ((*(PosZeiger + i)).Anzahl &lt; min)
					min = (*(PosZeiger + i)).Anzahl;			

			//Wert zwischen min  finden
			for (int i = 1; i &lt;= (*(PosZeiger)).Anzahl; i++)							
				if ((*(PosZeiger + i)).Anzahl == min)
					break;						

			if (i &gt; (*(PosZeiger)).Anzahl)
				i = (*(PosZeiger)).Anzahl;
</code></pre>
<p>Verstehe die beiden For schleifen nicht ist mir unklar was die machen.<br />
Wenn ich ein einer for Schleife mehrere if ohne klammern deklariere wie werden diese im Programmablauf berücksichtigt.</p>
<p>Benutze zur Programierung Visual c++ 6.0</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235703</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Tue, 27 Feb 2007 14:13:28 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Mon, 26 Feb 2007 14:15:49 GMT]]></title><description><![CDATA[<p>Das kannst du ruhig machen:</p>
<pre><code class="language-cpp">for(int x = 0; x &lt; 10; x++)
	if(a == 10)
		;
	else if(b == 10)
		;
	else if(c == 10)
		;
	else
		;
</code></pre>
<p>Aber was verstehst du nicht? Steht doch schon da, was die Schleifen machen. Das letzte IF gehört nicht mehr zum Schleifenblock.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235779</guid><dc:creator><![CDATA[ceplusplus]]></dc:creator><pubDate>Mon, 26 Feb 2007 14:15:49 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Mon, 26 Feb 2007 18:49:51 GMT]]></title><description><![CDATA[<p>Bard00 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">EINGAENGE *PosZeiger;
				PosZeiger = (EINGAENGE *) GlobalLock(Beschriftung.Eingaenge);

			// Minimum bestimmen
			for (int i = 1; i &lt;= (*(PosZeiger)).Anzahl/*entspricht PosZeiger-&gt;Anzahl*/; i++)
				if ((*(PosZeiger + i)).Anzahl &lt; min) //Zeigerarithmetik, entspricht PostZeiger[i]-&gt;Anzahl
					min = (*(PosZeiger + i)).Anzahl;			
			//Der rest halt
			//Wert zwischen min  finden
			for (int i = 1; i &lt;= (*(PosZeiger)).Anzahl; i++)							
				if ((*(PosZeiger + i)).Anzahl == min)
					break;						

			if (i &gt; (*(PosZeiger)).Anzahl)
				i = (*(PosZeiger)).Anzahl;
</code></pre>
<p>Verstehe die beiden For schleifen nicht ist mir unklar was die machen.<br />
Wenn ich ein einer for Schleife mehrere if ohne klammern deklariere wie werden diese im Programmablauf berücksichtigt.</p>
<p>Benutze zur Programierung Visual c++ 6.0</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1235960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235960</guid><dc:creator><![CDATA[Stelfer]]></dc:creator><pubDate>Mon, 26 Feb 2007 18:49:51 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Tue, 27 Feb 2007 06:11:50 GMT]]></title><description><![CDATA[<p>Also, ich glaube das Problem lag woanders: wenn du keinen Block (also {}) hast, dann beziehen sich die Schleifen (for, while, do) und das if immer auf den direkt danach stehenden Befehl.</p>
<p>Hier also mi {}:</p>
<pre><code class="language-cpp">for (int i = 1; i &lt;= (*(PosZeiger)).Anzahl; i++){
     if ((*(PosZeiger + i)).Anzahl &lt; min){
          min = (*(PosZeiger + i)).Anzahl; 
     }           
}
            //Wert zwischen min  finden
for (int i = 1; i &lt;= (*(PosZeiger)).Anzahl; i++){
     if ((*(PosZeiger + i)).Anzahl == min){
          break;                        
     }
}

if (i &gt; (*(PosZeiger)).Anzahl){
    i = (*(PosZeiger)).Anzahl;
}
</code></pre>
<p>So besser verstaendlich? Lag das Problem darin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236125</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Tue, 27 Feb 2007 06:11:50 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Tue, 27 Feb 2007 14:14:31 GMT]]></title><description><![CDATA[<p>,l</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236200</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Tue, 27 Feb 2007 14:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Tue, 27 Feb 2007 14:12:42 GMT]]></title><description><![CDATA[<p>Mein Problem ist das ich den Algorithmus der hinter den 2 For-Schleifen steckt nicht verstehe. Hoffe ich konnte mich besser ausdrücken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236213</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Tue, 27 Feb 2007 14:12:42 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Wed, 28 Feb 2007 07:31:31 GMT]]></title><description><![CDATA[<p>Wenn du das nicht verstehst, hast du aber massive Probleme - if() ist eine Abfrage: WENN i größer ist als die vorgegebene Anzahl DANN setze i = diese Anzahl.</p>
<p>(übrigens könntest du die Zugriffe etwas leserlicher gestalten: <code>PosZeiger-&gt;Anzahl</code> anstelle von &quot;(<em>(PosZeiger)).Anzahl&quot; bzw. <code>PosZeiger[i].Anzahl</code> anstelle von &quot;(</em>(posZeiger+i)).Anzahl&quot; - vielleicht hilft das auch beim Verständnis ;))</p>
<p>Edit: Sorry, hab' dich jetzt falsch verstanden <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>
<p>Die erste Schleife bestimmt den Wert des kleinsten Elements in deinem Array und speichert ihn in der Variablen 'min', die zweite Schleife durchläuft nochmal das Array und sucht den Index, an dem das kleinste Element steht. Aber eigentlich könnte man beides auch zu einer Schleife zusammenfassen:</p>
<pre><code class="language-cpp">int imin=0;
for(int i=1;i&lt;PosZeiger-&gt;Anzahl;++i)
  if(PosZeiger[i].Anzahl&lt;PosZeiger[imin].Anzahl)
    imin=i;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1236570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236570</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Feb 2007 07:31:31 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Fri, 02 Mar 2007 09:44:59 GMT]]></title><description><![CDATA[<p>Danke für eure Hilfe, aber ich habe immer novh Probleme den Algorithmus zu verstehen. Ich habe mal die Werte die der Debugger anzeigt aufgeschrieben (siehe Bild). Bis zu 16 Bausteinen werden die Werte in der roten Umrandung angezeigt. Beim 17. Baustein werden die Werte in grün angezeigt und die Bezeichnung wird wieder auf 1 gesetzt. Nur warum? Wie erkennt er das? Das ist der Knackpunkt, den ich bei seinen 2 Schleifen nicht erkenne.</p>
<p><a href="http://www.bilder-hosting.de/show/3QSHM.html" rel="nofollow"></a><a href="http://s6.bilder-hosting.de/img/3QSHM.png" rel="nofollow">http://s6.bilder-hosting.de/img/3QSHM.png</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237929</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Fri, 02 Mar 2007 09:44:59 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Fri, 02 Mar 2007 09:52:54 GMT]]></title><description><![CDATA[<p>Wie schaut 'min' aus?</p>
<p>gruss<br />
v R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237937</guid><dc:creator><![CDATA[virtuell Realisticer]]></dc:creator><pubDate>Fri, 02 Mar 2007 09:52:54 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Fri, 02 Mar 2007 10:29:49 GMT]]></title><description><![CDATA[<p>virtuell Realisticer schrieb:</p>
<blockquote>
<p>Wie schaut 'min' aus?</p>
<p>gruss<br />
v R</p>
</blockquote>
<p>min ist imer der zweite Wert in der Tabelle. Die erste Spalte ist i, dann kommt min, dann PosZeiger.Anzahl und dann PosZeiger[i].Anzahl. Die anzeige ist im Bild etwas verrutscht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Hilft dir das weiter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237953</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Fri, 02 Mar 2007 10:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Fri, 02 Mar 2007 12:50:42 GMT]]></title><description><![CDATA[<p>habe nochmal die Anlage erneut hochgeladen jetzt erkennt man die Variablen besser</p>
<p><a href="http://img160.imagevenue.com/img.php?image=39796_frage2_122_222lo.JPG" rel="nofollow">http://img160.imagevenue.com/img.php?image=39796_frage2_122_222lo.JPG</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238051</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Fri, 02 Mar 2007 12:50:42 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Fri, 02 Mar 2007 12:55:18 GMT]]></title><description><![CDATA[<p>Wenn du 17 Objekte hast, solltest du den Anzahl-Wert auch auf 17 setzen <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/1238054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238054</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 02 Mar 2007 12:55:18 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Sat, 03 Mar 2007 10:25:54 GMT]]></title><description><![CDATA[<p>wie kann ich sie denn zb dies realisieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238430</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Sat, 03 Mar 2007 10:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Mon, 05 Mar 2007 07:39:32 GMT]]></title><description><![CDATA[<p>Am besten indem du vor der Schleife den korrekten Wert in posZeiger-&gt;Anzahl einträgst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1239323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1239323</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 05 Mar 2007 07:39:32 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Thu, 08 Mar 2007 07:58:59 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Am besten indem du vor der Schleife den korrekten Wert in posZeiger-&gt;Anzahl einträgst.</p>
</blockquote>
<p>Dieser Wert wird vorher schon eingetragen. Mann muss ganz am Anfang den SPS-Typ auswählen und danach wird der Wert eingetragen, in dem Beispiel hier 16. Nun dürfen ja nicht 17 Baustein drauf gezogen werden. Und das will ich verhindern. Dazu muss ich ja wissen wie er die Nummerierung ermittelt, damit ich bei Überschreiten der max. Anzahl abbrechen kann. Nur leider ist der Urheber nicht mehr auffindbar und so komme ich nicht weiter. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241413</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Thu, 08 Mar 2007 07:58:59 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Thu, 08 Mar 2007 09:25:44 GMT]]></title><description><![CDATA[<p>Das liegt wohl an dem &lt;= in deiner for-schleife. Die zweite Schleife ist hier auch unnötig. Für mich sieht das so aus, dass du ein Array von EINGAENGE hast in dessen ersten Element die Größe des Arrays steht.<br />
Dann müßte auch das hier reichen.</p>
<pre><code class="language-cpp">EINGAENGE *PosZeiger = (EINGAENGE *) GlobalLock(Beschriftung.Eingaenge);

// Minimum bestimmen
int pos(0);
for (int i = 1; i &lt; PosZeiger[0].Anzahl; i++)
{
    if (PosZeiger[i].Anzahl &lt; min)
    {
        min = PosZeiger[i].Anzahl;
        pos = i;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1241472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241472</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 08 Mar 2007 09:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to Versehe Programiercode nicht on Thu, 08 Mar 2007 14:05:22 GMT]]></title><description><![CDATA[<p>ich danke allen habe endlich die Lösung gefunden wennes interesiert so habe ich es endlich gelöst.</p>
<pre><code class="language-cpp">bool SucheFreieBezeichnung(BlockSpeicherFeld *LokZeiger,PINS Beschriftung,ProgrammInformation *info)
{
	int //i,
		max = 0,min = 100, temp = 0;
	bool freieStelle = false;

	char buffer[20];

	switch ((*(LokZeiger)).Bausteintyp)
	{
	case Eingang :
		{
			EINGAENGE *PosZeiger;
				PosZeiger = (EINGAENGE *) GlobalLock(Beschriftung.Eingaenge);

			// finde freie Bausteinziffer
			for (int i = 1; i &lt;= PosZeiger-&gt;Anzahl; i++)
			{
//				freieStelle = false;
				if (PosZeiger[i].Anzahl &lt; min)
					min = PosZeiger[i].Anzahl;

				if ((i &lt;= PosZeiger-&gt;Anzahl) &amp;&amp; (0 == min))
				{
					freieStelle = true;
					break;
				}

			}

			//finde das i wo PosZeiger[i].Anzahl 0 ist, denn dann ist das eine freie Nummer
			for ( i = 1; i &lt;= PosZeiger-&gt;Anzahl; i++)
			{
				if (PosZeiger[i].Anzahl == min)
				{						
					break;						
				}
			}

			if (freieStelle)
			{

				// Beschriftung umkopieren
				strcpy((*(LokZeiger)).Pin,(*(PosZeiger + i)).Pin);
				strcpy((*(LokZeiger)).Bezeichnung,(*(PosZeiger + i)).Bezeichnung);	
				(*(LokZeiger)).TextDarstellen = (*(PosZeiger + i)).TextDarstellen;
				(*(PosZeiger + i)).Anzahl += 1;
				GlobalUnlock(Beschriftung.Eingaenge);
				return TRUE;			
			}
			else
			{
				GlobalUnlock(Beschriftung.Eingaenge);
				return false;
			}			
		};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1241690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241690</guid><dc:creator><![CDATA[Bard00]]></dc:creator><pubDate>Thu, 08 Mar 2007 14:05:22 GMT</pubDate></item></channel></rss>