www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Softwaretechnik und Programmierung" - Java Zahl finden
Java Zahl finden < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Softwaretechnik und Programmierung"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Java Zahl finden: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:37 So 28.10.2012
Autor: martin_vie

Aufgabe
JAVA: Finde eine Methode zu auffinde der größten Zahl auf einer Reihe (nicht näher definiert ob aus Array oder anderen Quellen).

Hallo!

Hab irgendwie einen falschen Ansatz. Benötige einen Java-Code um aus einer Reihe von Zahlen die Größe herauszufinden. Hätte sie gerne von der Tastatur eingelesen und bei 0 die Schleife beendet und das Max ausgegeben. (bin für alle Infos dankbar - auch für stilistische Korrekturen) ;-)

Danke im Voraus

LG

import java.util.Scanner;

public class main {

public static int maxfinder (int a)
{     
    int max;
    
    if (a > max)
    {
     max = a;
    }
    
return max;
}


public static void main(String[] args) {

int zahl = 0;
int max = 0;


Scanner sc = new Scanner(System.in);
    System.out.print("Bitte gib eine Zahl ein");
    zahl = sc.nextInt();
  
    max = maxfinder (zahl);
    
    Scanner sc = new Scanner(System.in);
    System.out.print("Bitte gib eine Zahl ein oder 0 für Ende");
    zahl = sc.nextInt();
    
    if (zahl != 0 && zahl > max)
    {
     max = maxfinder (zahl);
    }  
    System.out.println (max);   
}
}


        
Bezug
Java Zahl finden: Antwort
Status: (Antwort) fertig Status 
Datum: 18:06 So 28.10.2012
Autor: MathePower

Hallo martin_vie,

> JAVA: Finde eine Methode zu auffinde der größten Zahl auf
> einer Reihe (nicht näher definiert ob aus Array oder
> anderen Quellen).
>  Hallo!
>  
> Hab irgendwie einen falschen Ansatz. Benötige einen
> Java-Code um aus einer Reihe von Zahlen die Größe
> herauszufinden. Hätte sie gerne von der Tastatur
> eingelesen und bei 0 die Schleife beendet und das Max
> ausgegeben. (bin für alle Infos dankbar - auch für
> stilistische Korrekturen) ;-)
>  
> Danke im Voraus
>  
> LG
>  
> import java.util.Scanner;
>  
> public class main {
>  
> public static int maxfinder (int a)
>   {     
> int max;
>  
> if (a > max)
>   {
>   max = a;
>   }
>  
> return max;
>   }
>  
>
> public static void main(String[] args) {
>  
> int zahl = 0;
>   int max = 0;
>  
>
> Scanner sc = new Scanner(System.in);
>   System.out.print("Bitte gib eine Zahl ein");


Hier kann das Einlesen, solange wiederholt werden,
bis ein Integer ermittelt werden kann.


>   zahl = sc.nextInt();
>  
> max = maxfinder (zahl);
>  
> Scanner sc = new Scanner(System.in);
>   System.out.print("Bitte gib eine Zahl ein oder 0 für
> Ende");


Besser ist hier eine Abfrage mit sc.hasNextInt().
Falls das true ergibt, dann weiter im Code.

>   zahl = sc.nextInt();
>  
> if (zahl != 0 && zahl > max)
>   {
>   max = maxfinder (zahl);


Da die Variable "max" auch eine Variable in maxfinder ist,
wird hier nicht die Variable max von "main" verwendet.

Ausweg ist, "maxfinder" zwei Parameter zu übergeben,
oder eben die Variable max als global zu deklarieren.


>   }  
> System.out.println (max);   
> }
>  }
>  


Gruss
MathePower

Bezug
                
Bezug
Java Zahl finden: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:02 So 28.10.2012
Autor: martin_vie

Danke MathePower!

Hab es jetzt verändert und läuft auch, muss aber jetzt zu Beginn zwei Zahlen eingeben. Kann mir jemand sagen wieso?

Danke! LG

import java.util.Scanner;

public class main {

    static int max = 0;
    
public static int maxfinder (int a)
{          
    if (a > max)
    {
     max = a;
    }
    return max;
}


public static void main(String[] args) {

int zahl = 0;

Scanner sc = new Scanner(System.in);
    System.out.print("Bitte gib eine Zahl [mm] ein\n"); [/mm]
    zahl = sc.nextInt();
  
    max = maxfinder (zahl);

    while (sc.hasNextInt())
    {
    System.out.print("Bitte gib eine weiter Zahl [mm] ein\n"); [/mm]
    zahl = sc.nextInt();
    
    if (zahl > max)
    {
     max = maxfinder (zahl);
    }
    }
    System.out.println (max);
}
}


Bezug
                        
Bezug
Java Zahl finden: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 01:52 Mo 29.10.2012
Autor: martin_vie

Aufgabe 1
Finde größte Zahl

Aufgabe 2
Methode zur Auffindung der zweitgrößten Zahl.

Habe einen Code zu Auffindung der zweitgrößten Zahl geschrieben.

Leider gibt er mir für die größte (big) und zweitgrößte (sec) Zahl Null zurück.



static int big;
static int sec;

public static int findersec (int a)
{
    if (a > sec && a < big)
    {
    sec = a;
    }
    if (a > big)
    {
     a = big;
     }
    return sec;
    }
    
public static void main(String[] args) {

int zahl;

Scanner sc = new Scanner(System.in);
    System.out.println("Bitte gib eine Zahl [mm] ein\n"); [/mm]

    while (sc.hasNextInt())
    {
    System.out.println("Bitte gib eine weiter Zahl [mm] ein\n"); [/mm]
    zahl = sc.nextInt();
    sec = findersec (zahl);
    }
    System.out.println(sec);
}

Danke!
LG

Bezug
                                
Bezug
Java Zahl finden: Antwort
Status: (Antwort) fertig Status 
Datum: 09:36 Mo 29.10.2012
Autor: Event_Horizon

Hallo!

Welchen Wert haben die beiden Variablen sec und big denn am Anfang? Wenn beide =0 sind, können deine IF-Abfragen niemals feuern.
Ich würde vorerst für beide Werte sehr große, negative Zahlen benutzen.



Außerdem ist
a = big;  
falsch, du willst es umgekehrt. In der anderen if-Abfrage ebenso.

Und: Wenn a>big ist, wird big=a. Soweit korrekt, aber dabei geht der bisherige Wert von big verloren. Dabei ist der doch danach der neue zweitgrößte Wert. Da fehlt also noch was.

Bezug
                        
Bezug
Java Zahl finden: Antwort
Status: (Antwort) fertig Status 
Datum: 09:25 Mo 29.10.2012
Autor: Event_Horizon

Hallo!

Du hast die erste "Bitte geben sie eine Zahl ein"-Anweisung, und dann nocheine zweite in der while-Schleife.


Statt

while(){
}

könntest du

do{
}while()

verwenden. Das erste überprüft zuerst, ob die Schleife (erstmals/nochmal) abgearbeitet werden soll, das zweite überprüft das erst nach dem Durchlauf, d.h. die Schleife wird mindestens 1x durchlaufen.


und:

    if (zahl > max)
    {
     max = maxfinder (zahl);
    }

Wozu die if-Abfrage? Das macht der maxfinder doch selbst!

Bezug
                                
Bezug
Java Zahl finden: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 23:25 Do 01.11.2012
Autor: martin_vie

Hallo!

Danke für die Hinweise, hab ihn jetzt so verändert.

Trotzdem verlangt er nach dem ersten "Bitte gib eine weitere Zahl ein" zwei Zahlen. Kann mir das vielleicht jemand erklären wieso? Kann es leider nicht nachvollziehen.

Zweites Problem: Wenn ich als Abbruchbedingung nur die Enter-Taste ohne Zahl eingebe funktioniert es nicht. Wie kann ich es dahingehen optimieren
?

Nebenfrage: Kann man sich in Eclipse beim Compilen den Wert der Variabeln auch anzeigen lassen (so wie bei Xcode oder Visual Studio)?

Danke!

LG


import java.util.Scanner;

public class main {

    static int max = 0;
    
public static int maxfinder (int a)
{          
    if (a > max)
    {
     max = a;
    }
    return max;
}


public static void main (String[] args) {

int zahl = 0;

Scanner sc = new Scanner(System.in);
    
    System.out.print("Bitte gib eine Zahl [mm] ein\n"); [/mm]
    zahl = sc.nextInt();

    do
    {   
    System.out.print("Bitte gib eine weitere Zahl [mm] ein\n"); [/mm]
    zahl = sc.nextInt();
    max = maxfinder (zahl);
    }
    while (sc.hasNextInt());
    
System.out.println (max);
}
}

Bezug
                                        
Bezug
Java Zahl finden: Antwort
Status: (Antwort) fertig Status 
Datum: 13:56 Fr 02.11.2012
Autor: Event_Horizon

Hallo!


Du hast die Abfrage immernoch zwei mal drin: zunächst in Zeile 24/25, und danach springt der Computer in die Schleife, und führt zunächst Zeile 29/30 aus. Du solltest die Zeilen  24/25 löschen, dann ist das Problem behoben.

Das andere Problem ist, daß du zwingend versuchst, mit nextInt() eine Zahl einzulesen. Wenn es keine weitere Zahl gibt, wird der Computer sich beschweren. Hier solltest du nach der Eingabe mit hasInt() testen, ob da überhaupt ne Zahl kommt.


1:
2: import java.util.Scanner;
3:
4: public class main {
5:
6:     static int max = 0;
7:     
8: public static int maxfinder (int a)
9: {          
10:     if (a > max)
11:     {
12:      max = a;
13:     }
14:     return max;
15: }
16:
17:
18: public static void main (String[] args) {
19:
20: int zahl = 0;
21:
22: Scanner sc = new Scanner(System.in);
23:     
24:     System.out.print("Bitte gib eine Zahl  ein\n"); 
25:     zahl = sc.nextInt();
26:
27:     do
28:     {   
29:     System.out.print("Bitte gib eine weitere Zahl  ein\n"); 
30:     zahl = sc.nextInt();
31:     max = maxfinder (zahl);
32:     }
33:     while (sc.hasNextInt());
34:     
35: System.out.println (max);
36: }
37:


Bezug
                                                
Bezug
Java Zahl finden: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:39 Mo 05.11.2012
Autor: martin_vie

Hallo!

Hätte den Code jetzt auch noch gerne so verändert, dass man die Zahlen aus einem Array einliest. Steck leider noch ein bisschen fest. Das die Passagen mit maxfinder (zahl); und while (zahl.length); nicht stimmen ist mir klar, weiß aber nicht was an an dieser Stelle schreiben soll.

Danke!

LG

import java.util.Scanner;

public class main {

    static int max = 0;
    
public static int maxfinder (int a)
{          
    if (a > max)
    {
     max = a;
    }
    return max;
}


public static void main (String[] args) {

int [] zahl = {1,2,3,4,5} ;

    do
    {   
    maxfinder (zahl);
    }
    while (zahl.length);
    
System.out.println (max);
}
}

Bezug
                                                        
Bezug
Java Zahl finden: Antwort
Status: (Antwort) fertig Status 
Datum: 10:03 Di 06.11.2012
Autor: Event_Horizon

Hi!

Für sowas verwendet man eine For-Schleife:

for(int i=0; i<zahl.length; i++){
  // das i. Element von zahl bekommst du hier nun mit zahl[i]
}

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Softwaretechnik und Programmierung"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]