# Hilfe



## Gast (6. Dez 2006)

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???


----------



## meez (6. Dez 2006)

WIR MACHEN KEINE HAUSAUFGABEN...
Zudem ist das Problem nicht lösbar..


----------



## SlaterB (6. Dez 2006)

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

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


----------



## Gast (6. Dez 2006)

des hilft mir auch nich wikrlich weiter


----------



## para_ (6. Dez 2006)

http://www.galileocomputing.de/open...sel02_004.htm#Rxx747java02004040000AB1F0281C2


----------



## DaKo (6. Dez 2006)

Deine Aussage uns auch nicht 

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


----------



## Leroy42 (6. Dez 2006)

Also für zwei Variablen gilt:


```
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.


----------



## Guest (6. Dez 2006)

```
//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 (6. Dez 2006)

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

2.
hast du nicht alle Fälle abgedeckt


----------



## Desch (6. Dez 2006)

```
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 ...


----------



## SlaterB (6. Dez 2006)

> 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


----------



## bummerland (6. Dez 2006)

*verschoben*


----------



## Gast (6. Dez 2006)

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


----------



## SlaterB (6. Dez 2006)

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 (6. Dez 2006)

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 ^^):



```
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]);
    }
  }
}
```


----------



## Gast (7. Dez 2006)

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


----------



## Guest (7. Dez 2006)

```
//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


----------



## Gelöschtes Mitglied 6946 (7. Dez 2006)

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ß


----------



## Gast (7. Dez 2006)

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.


----------



## DaKo (7. Dez 2006)

> Also en tipp wär nich schlecht ob ich des auch ohne des sotieren geht.



Sortiert ausgeben ohne zu sortieren  ???:L


----------



## Guest (7. Dez 2006)

```
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.


----------



## DaKo (7. Dez 2006)

Es gab doch schon den Vorschlag, das über ein Array zu machen


----------



## Gast (7. Dez 2006)

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


----------



## DaKo (7. Dez 2006)

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

Mit *einer einzigen* if-Anweisung wirds schwierig


----------



## SlaterB (7. Dez 2006)

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


----------



## Gast (7. Dez 2006)

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


----------



## Gast (7. Dez 2006)

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???


----------



## Gast (7. Dez 2006)

ok danke es geht 
hey ihr seit echt ne super hilfe danke hier mal an alle


----------



## Guest (7. Dez 2006)

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


```
//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 (7. Dez 2006)

Jetzt hast du alles verschlimmbessert 

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


----------



## Gast (7. Dez 2006)

also die if else einfach weg


----------



## DaKo (7. Dez 2006)

> ```
> public static void main(String[] args) {
> 
> 
> ...



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]


----------



## Guest (7. Dez 2006)

```
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


----------



## SlaterB (7. Dez 2006)

```
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);
       }
       
     
      }

   }
```


----------



## DaKo (7. Dez 2006)

Das letzte 'if' ist überflüssig


----------



## Gast (7. Dez 2006)

achso
mann bin ich en simpel jetzt geht glaub alles  danke an alle


----------



## SlaterB (7. Dez 2006)

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


----------



## Gast (7. Dez 2006)

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


----------



## DaKo (7. Dez 2006)

StructEd

Aber wirklich toll ist das auch nicht


----------



## hupfdule (7. Dez 2006)

SlaterB hat gesagt.:
			
		

> @DaKo:
> nicht das wackelige Verständnis-Türmchen gleich wieder zum Einsturz bringen



Süß


----------



## hupfdule (7. Dez 2006)

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 (7. Dez 2006)

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!!


----------



## HHSGast (22. Dez 2006)

Irgendwie sieht mir das verdammt nach meiner Hausaufgabe aus, auf was man so alles stößt, wenn man mal ein bissel googelt...


----------



## unknown_member (1. Jan 2007)

Also erstmal würde ich dem Thread einen gescheiten Namen geben!


_____
MfG, unknown_member


----------

