www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

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.vorhilfe.de