Announcement

Collapse
No announcement yet.

Frage zu and und or

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Frage zu and und or

    Hallo,
    if ((x<>2) and (y<>0)) or ((x<>2) and (y<>1)) then...
    o.g. Anweisung wird nicht ausgeführt, sobald x=2 ist. Unabhängig von y.
    x und y Schleifen gehen von 0 bis 10. Was mache ich falsch?

  • #2
    <pre>

    <code><font size=2 face="Courier New">um es verständlicher zu machen
    <br>
    <b>for </b>X := <font color="#0000FF">0 </font><b>to </b><font color="#0000FF">10 </font><b>do
    for </b>Y := <font color="#0000FF">0 </font><b>to </b><font color="#0000FF">10 </font><b>do
    if </b>X &lt;&gt; <font color="#0000FF">2 </font><b>then
    if </b>(Y &lt;&gt; <font color="#0000FF">0</font>) <b>and </b>(Y &lt;&gt; <font color="#0000FF">1</font>) <b>then
    begin
    <br>
    end</b>;
    <br>
    <br>
    <b>for </b>X := <font color="#0000FF">0 </font><b>to </b><font color="#0000FF">10 </font><b>do
    if </b>X &lt;&gt; <font color="#0000FF">2 </font><b>then
    for </b>Y := <font color="#0000FF">2 </font><b>to </b><font color="#0000FF">10 </font><b>do
    begin
    <br>
    end</b>;
    <br>
    beide erzeugen das gleiche resultat wie Dein Beispiel
    <br>
    Gruß Hagen
    </font>
    </code></pre&gt

    Comment


    • #3
      Hallo Karl-Heinz,

      wenn x = 2 ergibt sich als Ergebnis immer <b> if ((false) and (?) = false) or ((false) and (?) = false) = false</b>.

      Suchst Du vielleicht das (if (x<>2) or (y>1) then ...)?

      Tschüß

      Torste

      Comment


      • #4
        Hallo Hagen,

        da war ich wohl mal wieder zu langsam.

        Tschüß

        Torste

        Comment


        • #5
          <pre>

          <code><font size=2 face="Courier New">es gäbe noch ne dritte version
          <br>
          <b>for </b>X := <font color="#0000FF">0 </font><b>to </b><font color="#0000FF">1 </font><b>do
          for </b>Y := <font color="#0000FF">2 </font><b>to </b><font color="#0000FF">10 </font><b>do
          begin
          <br>
          end</b>;
          <b>for </b>X := <font color="#0000FF">3 </font><b>to </b><font color="#0000FF">10 </font><b>do
          for </b>Y := <font color="#0000FF">2 </font><b>to </b><font color="#0000FF">10 </font><b>do
          begin
          <br>
          end</b>;
          <br>
          Gruß Hagen
          </font>
          </code></pre&gt

          Comment


          • #6
            Hallo,ich glaube das trifft es noch nicht. Ich möchte, dass die Anweisung nicht! ausgeführt wird, wenn x=2 und y=0 bzw. x=2 und y=1 ist

            Comment


            • #7
              Hallo Karl-Heinz,

              Du suchst also das was ich bereits vermutet hatte.
              <b>if (x<>2) or (y>1) then ...</b>.

              Hagen hat nur Deine Anweisung in einen leichter verständlichen Quellcode umgesetzt (in 3 verschiedenen Versionen).

              Tschüß

              Torste

              Comment


              • #8
                <pre>

                <code><font size=2 face="Courier New">Ok, verstanden. Falls X = <font color="#0000FF">2 </font>dann darf Y nicht <font color="#0000FF">0 </font>oder <font color="#0000FF">1 </font>sein. Alle anderen Werte
                m&uuml;ssen also die Abfrage passieren.
                <br>
                <b>for </b>X := <font color="#0000FF">0 </font><b>to </b><font color="#0000FF">10 </font><b>do
                for </b>Y := <font color="#0000FF">0 </font><b>to </b><font color="#0000FF">10 </font><b>do
                if </b>(X &lt;&gt; <font color="#0000FF">2</font>) <b>or </b>(Y &gt; <font color="#0000FF">1</font>) <b>then
                begin
                <br>
                end</b>;
                <br>
                Gruß Hagen
                </font>
                </code></pre&gt

                Comment

                Working...
                X