Hilfe

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Gegeben sind folgende Variablen:

int intZahl1 = 8;

int intZahl2 = 4;

int intZahl3 = 6;

Geben Sie intZahl1, intZahl2 und intZahl3 untereinander auf dem Bildschirm aus. Sortieren Sie die Ausgabe dabei so, dass die kleinste Zahl oben und die größte Zahl unten steht.


Das ganze will ich mit einer If-Abfrage machen wie geht das???
 
S

SlaterB

Gast
fange auf jeden Fall mit 2 Variablen an, das ist leichter,

und Vergleiche sehen allgemein so aus:
if (x < y) {
..
} else {
..
}
 

DaKo

Bekanntes Mitglied
Deine Aussage uns auch nicht ;)

Wenn du eine klare Frage stellst, bekommst du auch eine klare Antwort
 

Leroy42

Top Contributor
Also für zwei Variablen gilt:

Code:
if (intZahl1 < intZahl2) {
  System.out.println(intZahl1);
  System.out.println(intZahl2);
} else {
  System.out.println(intZahl2);
  System.out.println(intZahl1);
}

Jetzt mußt du dir überlegen welche zusätzlichen
Fallunterscheidungen du bei 3 Zahlen machen mußt
und diese entsprechend coden.

Falls du nicht weiterkommst, poste das was du bis dahin hast.
 
G

Guest

Gast
Code:
		//Deklaration der Variablen
		int intZahl1 = 8; 
		int intZahl2 = 4; 
		int intZahl3 = 6; 
		

		//Einleitung der IF Abfrage
		if ( intZahl1 < intZahl2 )
		{
		  if ( intZahl2 < intZahl3 )
		  {
			  System.out.println(intZahl1); 
			  System.out.println(intZahl3);
			  System.out.println(intZahl2);
			  
		  }
		}
		else
		{
			  System.out.println(intZahl2);
			  System.out.println(intZahl3); 
			  System.out.println(intZahl1);
		}

		
	}

}

Der macht das trozdem noch nich richt :(
Ich muss des ja trozdem selber sotieren
 

DaKo

Bekanntes Mitglied
1. Zeile 10
Zahl2 < Zahl3 und trotzdem gibst du zuerst Zahl3 aus

2.
hast du nicht alle Fälle abgedeckt ;)
 

Desch

Mitglied
Code:
if ((zahl1<=zahl2) && (zahl2<=zahl3))
{
  System.out.println(zahl1);
  System.out.println(zahl2);
  System.out.println(zahl3);
}

// Hier entsprechend ergänzen

Den Rest kann man sich doch eigentlich mit ein bisschen Nachdenken selber erschließen ...
 
S

SlaterB

Gast
> Ich muss des ja trozdem selber sotieren

tja, mit if alleine passiert nicht viel,
du baust nur unterschiedliche Abarbeitungsfälle auf,
was in den einzelnen Bereichen passiert musst du immer noch einzeln angeben,
also in jedem der 4 möglichen Fälle die korrekte Reihenfolge per Hand

anderes höheres Vorgehen, dann aber ohne if:
Werte in ein Array, dieses Array sortieren und einmalig ausgeben,
ohne Verzweigungen
 
G

Gast

Gast
toll dann geht des garnet mit ner einfachen if abfrage
des mit dem array versteh ich noch net ganz
 
S

SlaterB

Gast
soso,
und was du daran nicht so ganz verstehst, das verstehe ich nicht so ganz ;)



(= stelle konkrete Fragen (falls du noch Fragen hast), dann bekommst du konkrete Antworten)
 

Desch

Mitglied
Hmm, was kann man denn da nicht verstehen?

Natürlich geht das mit if-Abfragen ... du brauchst nur genug davon. Daher ist das zwar bei größeren Mengen von Zahlen unpraktisch, aber möglich.

Beim Array musst du einfach die Zahlen hinein schreiben und dann mit einem Sortieralgorithmus sortieren. Hier ein Beispiel (Bubble-Sort heisst das Sortierverfahren ^^):


Code:
public class test
{
  public static void main(String[] args)
  {
    int zahl1 = 3;
    int zahl2 = 2;
    int zahl3 = 1;
    
    int[] feld = {zahl1,zahl2,zahl3};
    
    // Sortieralgorithmus.
    for ( int i=0; i<feld.length; i++ )
    {
      for ( int j=0; j<feld.length-1; j++ )
      {
        if (feld[j+1]!= 0 && feld[j]!= 0)
        {
          if ( feld[j] > feld[j+1] )
          {
            int temp = feld[j+1];
            feld[j+1] = feld[j];
            feld[j] = temp;
          }
        }
      }
    }
    
    // Ausgabe
    for(int i=0;i<feld.length;i++)
    {
      System.out.println(feld[i]);
    }
  }
}
 
G

Gast

Gast
Ja mich würd interresieren wie ich des mit if-Abrfagen hin bekomm?
 
G

Guest

Gast
Code:
		//Deklaration der Variablen
		int intzahl1 = 8; 
		int intzahl2 = 4; 
		int intzahl3 = 6; 
		

		//Einleitung der IF Abfrage
		if ((intzahl1<=intzahl2) && (intzahl2<=intzahl3)) 
		{ 
		  System.out.println(intzahl1); 
		  System.out.println(intzahl2); 
		  System.out.println(intzahl3); 
		} 
		
	}

}

Hab das jetzt so versucht jetzt macht er nix mehr :D
 
G

Gelöschtes Mitglied 6946

Gast
er schrieb dazu, dass die if-abfrage nicht alles ist und du dir deinen teil dazudenken musst. es hilft also nix, du wirst wohl oder übel selber deinen kopf benutzen müssen, wenn du vorrankommen willst und wenn dir hier jemand die fertige lösung präsentiert, dann hilft dir das auch nicht weiter, da das ja vermutlich nicht die einzige aufgabe bleiben wird, oder?

dein problem ist im moment auch nicht java, sondern das logische denken. schau dir halt mal den if-teil an, den du jetzt da stehen hast und vollziehe nach, was genau das ding macht. wenn du dahinter steigst, wird dir klar sein, wieso das programm jetzt nichts macht und wenn du noch mehr nachdenkst, kommst du hoffentlich auch darauf, was du noch einbauen musst, damit alles läuft. viel spaß :p
 
G

Gast

Gast
Ja das mir schon klar das des so nich geht
der sotiert ja die ausgabe nicht ja ich überleg nochmal hab halt auch nich so viel zeit mach des so neben her zum schaffen ;)

Aber es geht nichts dran vorbei das ich die ausgaben sotieren muss oder ???
Also ich muss qasi 3 if teile machen und die ausgaben da jeweils anderst sotieren .
Also en tipp wär nich schlecht ob ich des auch ohne des sotieren geht.
 
G

Guest

Gast
Code:
	public static void main(String[] args) {
	
		
		 //Deklaration der Variablen 
	      int intzahl1 = 8; 
	      int intzahl2 = 4; 
	      int intzahl3 = 6; 
	       

	      //Einleitung der IF Abfragen 
	      if ((intzahl1<=intzahl2) && (intzahl2<=intzahl3)) 
	      { 
	    	  	System.out.println(intzahl1); 
	        	System.out.println(intzahl2); 
	        	System.out.println(intzahl3); 
	      } 
	       
	      if ((intzahl2<=intzahl1) && (intzahl1<=intzahl3))
	      { 
	    	    System.out.println(intzahl2); 
	    	    System.out.println(intzahl1);
	    	    System.out.println(intzahl3); 
		         		      
		  } 
	      if ((intzahl3<=intzahl1) && (intzahl1<=intzahl2))
	      { 
	    	    System.out.println(intzahl3);
	    	    System.out.println(intzahl1);
		        System.out.println(intzahl2); 
	      }     
		         
		 if ((intzahl1<=intzahl3) && (intzahl3<=intzahl2))
		 {
			    System.out.println(intzahl1);
			    System.out.println(intzahl3);
	    	    System.out.println(intzahl2);
		 }
	    if ((intzahl2<=intzahl3) && (intzahl3<=intzahl1))
	    {
	    		System.out.println(intzahl2);
	    		System.out.println(intzahl3);
	    		System.out.println(intzahl1);
	    }
	    if ((intzahl3<=intzahl2) && (intzahl2<=intzahl1))
	    {
		    	System.out.println(intzahl3);
		    	System.out.println(intzahl2);
		    	System.out.println(intzahl1);
	    }
	     
	    
	   } 

	}

So wars gemeint oder???
denk ich doch jetzt mal.
Des hätte ich vorher auch noch hin bekommen^^

Meine Frage is jetzt noch geht des auch also ohne das ich die Ausgabe jedesmal richtig hin sotier aber damir ja schon selber klar is das das so nicht geht wär meine frage ob des überhaupt mit ner If-Abfrage gehen kann.
Wenn ja wie oder vielleicht wieder en kleinen tipp das ich selber probieren kann.
 
G

Gast

Gast
ja ich brauch des ganze aber mit ner if abfrage
is des jetzt so wies gemeint war???
 

DaKo

Bekanntes Mitglied
Dein Post von 09:20 ist so wie es gemeint war.

Mit einer einzigen if-Anweisung wirds schwierig ;)
 
S

SlaterB

Gast
das ganze hat noch den Schönheitsfehler,
dass bei gleichen Zahlen diese mehrfach ausgegeben werden,

z.B. werden alle ifs durchlaufen, wenn alle drei Zahlen gleich sind,
das ist entweder nicht schlimm, tritt von Natur aus nicht auf oder du musst es abfangen,
z.B. mit
if (..) {
...
} else if (..) {
...
} else ..

dann kommt immer maximal eine Ausgabe
 
G

Gast

Gast
ja an dem gleich tüfftel ich grad noch rum aber des bekomm ich auch noch hin ;) hoff ich aber der tipp war schon mal gut
 
G

Gast

Gast
ins els kann ich ja keine bedingung einfügen oder???
da müsste ja aber noch eine rein weil
es gibt einmal
das 2 zaheln gleich sind die andere kleiner
das 2 zaheln gleich sind die andere größer
oder kann ich dann die bedingung einfach weglassen und nur die ausgabe hin amchen???
 
G

Gast

Gast
ok danke es geht :)
hey ihr seit echt ne super hilfe danke hier mal an alle
 
G

Guest

Gast
Ok ich nehms zurück es geht wieder nich mehr jetzt gibt er alles 5 mal aus oder so

Code:
	 //Deklaration der Variablen 
	      int intzahl1 = 8; 
	      int intzahl2 = 8; 
	      int intzahl3 = 9; 
	       

	      //Einleitung der IF Abfragen + (der jeweiligen Bedingung)
	      //Und Ausgabe der jeweils richtigen reihenfolge
	      if ((intzahl1<intzahl2) && (intzahl2<intzahl3)) 
	      { 
	    	System.out.println(intzahl1); 
	        	System.out.println(intzahl2); 
	        	System.out.println(intzahl3); 
	      } 
	      else if ((intzahl1==intzahl2) && (intzahl2<intzahl3)) 
	      { 
	    	System.out.println(intzahl1); 
	        	System.out.println(intzahl2); 
	        	System.out.println(intzahl3); 
	      } 
	      else
	      { 
	    	System.out.println(intzahl3); 
	        	System.out.println(intzahl1); 
	        	System.out.println(intzahl2); 
	      } 
	    	  
	  
	      if ((intzahl2<intzahl1) && (intzahl1<intzahl3))
	      { 
	    	System.out.println(intzahl2); 
	    	System.out.println(intzahl1);
	    	System.out.println(intzahl3); 
                      } 
	      else if ((intzahl2==intzahl1) && (intzahl1<intzahl3))
	      { 
	                System.out.println(intzahl2); 
	    	System.out.println(intzahl1);
	    	System.out.println(intzahl3); 
	      } 
	      else
	      { 
	    	System.out.println(intzahl3); 
	    	System.out.println(intzahl2);
	                System.out.println(intzahl1); 
                      } 
		
	    		
	      if ((intzahl3<intzahl1) && (intzahl1<intzahl2))
	      { 
	    	System.out.println(intzahl3);
	    	System.out.println(intzahl1);
	                System.out.println(intzahl2); 
	      }     
	      else if ((intzahl3==intzahl1) && (intzahl1<intzahl2))
	      { 
	                 System.out.println(intzahl3);
	    	 System.out.println(intzahl1);
		 System.out.println(intzahl2); 
	      }     
	      else
	      { 
	    	 System.out.println(intzahl2);
	    	 System.out.println(intzahl3);
		 System.out.println(intzahl1); 
	      }     	  
	    		  
		  
	      if ((intzahl1<intzahl3) && (intzahl3<intzahl2))
	      }
                                System.out.println(intzahl1);
	                System.out.println(intzahl3);
	    	System.out.println(intzahl2);
	      }
	      else if ((intzahl1==intzahl3) && (intzahl3<intzahl2))
                      {
	        	System.out.println(intzahl1);
		System.out.println(intzahl3);
	    	System.out.println(intzahl2);
	      }	 
	     else 
	     {
		System.out.println(intzahl2);
		System.out.println(intzahl1);
	    	System.out.println(intzahl3);
	     }
	    		  
	    		  
		  
	    if ((intzahl2<intzahl3) && (intzahl3<intzahl1))
	    {
	    	System.out.println(intzahl2);
	    	System.out.println(intzahl3);
	    	System.out.println(intzahl1);
	    }
	    else if ((intzahl2==intzahl3) && (intzahl3<intzahl1))
	    {
    		System.out.println(intzahl2);
    		System.out.println(intzahl3);
    		System.out.println(intzahl1);
	    }
    	   else
    	    {
    		System.out.println(intzahl1);
    		System.out.println(intzahl2);
    		System.out.println(intzahl3);
    	     }	  
		  
	    		  
	    if ((intzahl3<intzahl2) && (intzahl2<intzahl1))
	    {
		 System.out.println(intzahl3);
		 System.out.println(intzahl2);
		 System.out.println(intzahl1);
	    }
	    else if ((intzahl3==intzahl2) && (intzahl2<intzahl1))
	    {
	    	System.out.println(intzahl3);
	    	System.out.println(intzahl2);
	    	System.out.println(intzahl1);
	    }
    	   else
    	   {
	    	System.out.println(intzahl1);
	    	System.out.println(intzahl3);
	    	System.out.println(intzahl2);
    	    }
	    
	 } 
            }
 

DaKo

Bekanntes Mitglied
Jetzt hast du alles verschlimmbessert ;)

Du musst in deinem vorherigen Code nur die 'else' einfügen
 

DaKo

Bekanntes Mitglied
Code:
public static void main(String[] args) {
   
      
       //Deklaration der Variablen
         int intzahl1 = 8;
         int intzahl2 = 4;
         int intzahl3 = 6;
          

         //Einleitung der IF Abfragen
         if ((intzahl1<=intzahl2) && (intzahl2<=intzahl3))
         {
               System.out.println(intzahl1);
              System.out.println(intzahl2);
              System.out.println(intzahl3);
         }
          
         if ((intzahl2<=intzahl1) && (intzahl1<=intzahl3))
         {
              System.out.println(intzahl2);
              System.out.println(intzahl1);
              System.out.println(intzahl3);
                          
        }
         if ((intzahl3<=intzahl1) && (intzahl1<=intzahl2))
         {
              System.out.println(intzahl3);
              System.out.println(intzahl1);
              System.out.println(intzahl2);
         }     
               
       if ((intzahl1<=intzahl3) && (intzahl3<=intzahl2))
       {
             System.out.println(intzahl1);
             System.out.println(intzahl3);
              System.out.println(intzahl2);
       }
       if ((intzahl2<=intzahl3) && (intzahl3<=intzahl1))
       {
             System.out.println(intzahl2);
             System.out.println(intzahl3);
             System.out.println(intzahl1);
       }
       if ((intzahl3<=intzahl2) && (intzahl2<=intzahl1))
       {
             System.out.println(intzahl3);
             System.out.println(intzahl2);
             System.out.println(intzahl1);
       }
        
      
      }

   }

Das ist das, was du bereits hattest.

Wenn du jetzt einfach vor jedes (außer dem ersten) 'if' ein 'else' schreibst, funktioniert alles.

Außerdem kannst du dann das letzte if weglassen ;)[/code][/quote]
 
G

Guest

Gast
Code:
	public static void main(String[] args) { 
	    
	      
	       //Deklaration der Variablen 
	         int intzahl1 = 8; 
	         int intzahl2 = 4; 
	         int intzahl3 = 6; 
	          

	         //Einleitung der IF Abfragen 
	         if ((intzahl1<=intzahl2) && (intzahl2<=intzahl3)) 
	         { 
	              System.out.println(intzahl1); 
	              System.out.println(intzahl2); 
	              System.out.println(intzahl3); 
	         }         
	          
	         if ((intzahl2<=intzahl1) && (intzahl1<=intzahl3)) 
	         { 
	              System.out.println(intzahl2); 
	              System.out.println(intzahl1); 
	              System.out.println(intzahl3); 
	                          
	        } 
	         else
	         { 
	              System.out.println(intzahl3); 
	              System.out.println(intzahl2); 
	              System.out.println(intzahl1); 
	                          
	        } 
	        	 
	        	 
	        	 
	         if ((intzahl3<=intzahl1) && (intzahl1<=intzahl2)) 
	         { 
	              System.out.println(intzahl3); 
	              System.out.println(intzahl1); 
	              System.out.println(intzahl2); 
	         }      
	         else    
	         { 
	              System.out.println(intzahl3); 
	              System.out.println(intzahl1); 
	              System.out.println(intzahl2); 
	                          
	        } 
	        	 
	        	 
	        	 
	       if ((intzahl1<=intzahl3) && (intzahl3<=intzahl2)) 
	       { 
	             System.out.println(intzahl1); 
	             System.out.println(intzahl3); 
	              System.out.println(intzahl2); 
	       } 
	       else
	       { 
	              System.out.println(intzahl2); 
	              System.out.println(intzahl1); 
	              System.out.println(intzahl3); 
	                          
	        } 
	    	   
	    	   
	    	   
	       if ((intzahl2<=intzahl3) && (intzahl3<=intzahl1)) 
	       { 
	             System.out.println(intzahl2); 
	             System.out.println(intzahl3); 
	             System.out.println(intzahl1); 
	       } 
	       else
	       { 
	              System.out.println(intzahl1); 
	              System.out.println(intzahl2); 
	              System.out.println(intzahl3); 
	                          
	        } 
	    	   
	    	   
	    	   
	       if ((intzahl3<=intzahl2) && (intzahl2<=intzahl1)) 
	       { 
	             System.out.println(intzahl3); 
	             System.out.println(intzahl2); 
	             System.out.println(intzahl1); 
	       } 
	       else 
	       { 
	              System.out.println(intzahl1); 
	              System.out.println(intzahl3); 
	              System.out.println(intzahl2); 
	                          
	        } 
	      
	      } 

	   }

dann gibt mir der penner alles 6 mal aus
 
S

SlaterB

Gast
Code:
public static void main(String[] args) {
   
     
       //Deklaration der Variablen
         int intzahl1 = 8;
         int intzahl2 = 4;
         int intzahl3 = 6;
         

         //Einleitung der IF Abfragen
         if ((intzahl1<=intzahl2) && (intzahl2<=intzahl3))
         {
               System.out.println(intzahl1);
              System.out.println(intzahl2);
              System.out.println(intzahl3);
         }
         
         else if ((intzahl2<=intzahl1) && (intzahl1<=intzahl3))
         {
              System.out.println(intzahl2);
              System.out.println(intzahl1);
              System.out.println(intzahl3);
                         
        }
         else if ((intzahl3<=intzahl1) && (intzahl1<=intzahl2))
         {
              System.out.println(intzahl3);
              System.out.println(intzahl1);
              System.out.println(intzahl2);
         }     
               
       else if ((intzahl1<=intzahl3) && (intzahl3<=intzahl2))
       {
             System.out.println(intzahl1);
             System.out.println(intzahl3);
              System.out.println(intzahl2);
       }
       else if ((intzahl2<=intzahl3) && (intzahl3<=intzahl1))
       {
             System.out.println(intzahl2);
             System.out.println(intzahl3);
             System.out.println(intzahl1);
       }
       else if ((intzahl3<=intzahl2) && (intzahl2<=intzahl1))
       {
             System.out.println(intzahl3);
             System.out.println(intzahl2);
             System.out.println(intzahl1);
       }
       
     
      }

   }
 
G

Gast

Gast
achso
mann bin ich en simpel jetzt geht glaub alles :) danke an alle
 
S

SlaterB

Gast
@DaKo:
nicht das wackelige Verständnis-Türmchen gleich wieder zum Einsturz bringen ;)
 
G

Gast

Gast
jetzt noch eine frage wo bekomm ich en gutes Struktogramme Programm her
wir benutzen Str32 oder so weis aber nich wo ich des her bekomme also bei google find ich da nix
 

hupfdule

Top Contributor
Gast hat gesagt.:
jetzt noch eine frage wo bekomm ich en gutes Struktogramme Programm her

Wieso zum Teufel werden heutzutage eigentlich immer noch Struktogramme gelehrt? Die Dinger sind doch vollkommen überflüssig. Tierisch aufwändig zu erstellen und quasi gar nicht zu lesen. Dass man Schülern nicht gleich UML beibringen muss, ist klar, aber mit so nem Unfug wie Struktogrammen macht man es den Schülern wirklich nicht einfacher...
 

WieselAc

Top Contributor
Mit nem Struktogramm lernt man zumindest sich mal gedanken über den "algotithums zu machen" ist am anfang garnicht übel. Da hat man schon genung damit zu tun die Syntax richtig hinzubekommen. Wenn man dann zumindest schonmal weiß, as man will geht das proggen leichter.

ich behaupte mal mit dem Struktogramm wär zB die Sache mit dem "sortieren" der drei zahlen besser von der hand gegangen.

Aber was wirklcih absolut blödsinnig ist, nach dem ein programm fertig ist ein Struktogramm zu machen. das ist wie nach dem Einkaufen den Einkaufzettel schreiben!!
 
H

HHSGast

Gast
Irgendwie sieht mir das verdammt nach meiner Hausaufgabe aus, auf was man so alles stößt, wenn man mal ein bissel googelt...
 
Status
Nicht offen für weitere Antworten.

Oben