1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Befehl wird nicht ausgeführt

  • cookies
  • 1. Oktober 2011 um 18:12
  • Unerledigt
  • cookies
    2
    cookies
    Mitglied
    Punkte
    20
    Beiträge
    3
    • 1. Oktober 2011 um 18:12
    • #1

    Gerade hab ich einen Quelltext, den der Hr. Prof. auf die Seite http://tosca.inflab.tuwien.ac.at/eprip/news.do?menu=personal gestellt hat, in einen Editor kopiert und wollte schauen, ob das auch funktioniert...Im Kommandozeileninterpreter konnte der Befehl aber nicht ausgeführt werden, und ich weiß nicht warum?! Am Schluss werd ich dann immer in die nächste Zeile geleitet, aber nichts passiert!

    Der Quelltext sieht so aus:

    Java
    import java.util.Scanner;
    
    
    /**
    * Übung des Umgangs mit Kontrollstrukturen und mit Scanner.
    * Liest eine Folge von Ganzzahlen ein und erzeugt eine Ausgabe,
    * mit der gefilterten Zahlenfolge: Negative Werte werden nicht 
    * ausgegeben, Folgen von 0 werden als eine einzige 0 ausgegeben.
    * -1 -1 -1 ist die Folge, die das Ende der Eingabe markiert.
    */
    public class FilterSamples {
        public static void main (String [] args) {
            Scanner sc = new Scanner (System.in);
    
            //zählt mit, wieviele -1 hintereinander aufgetreten sind.
            int stoppers = 0;
    
            //war die letzte Zahl > 0
            boolean nonZero = true;
    
            // Wiederholen, solange nicht -1 -1 -1 aufgetreten ist
            while (stoppers < 3) {
                // Ist die folgende Zeichenkette ein Numeral?
                if (sc.hasNextInt()) {
    
                    //laut Angabe
                    int input = sc.nextInt(); 
                    if (input > 0) {
                        System.out.print(input+" ");
                        stoppers = 0;
                        nonZero = true;
                    } else if (input == 0) {
                        stoppers = 0;
                        if (nonZero) { 
                            System.out.print("0 ");
                        }
                        nonZero = false;
                    } else {
                        if (input == -1) {
                            stoppers++;
                        } else {
                            stoppers = 0;
                        }
                    }
    
                } else {
                    /* nicht numerisch interpretierbare 
                     * Zeichenkette konsumieren.
                     */
                    String dummy = sc.next();
                }
            }
    
            //Abschießender Zeilenvorschub
            System.out.println();
        }
    }
    Alles anzeigen

    Diesen hab ich in den Editor kopiert und die Datei als "FilterSamples.java" gespeichert etc.,also eh wie es sich gehört...

    danke für eure hilfe :)

    Einmal editiert, zuletzt von cookies (1. Oktober 2011 um 20:09)

  • S3th
    3
    S3th
    Mitglied
    Punkte
    45
    Beiträge
    8
    • 1. Oktober 2011 um 19:15
    • #2

    Wurde fehlerfrei kompiliert
    mit "java FilterSamples" wird es ausgeführt

    Back so soon hm… Let’s see how you do with something important.

    Seth

  • cookies
    2
    cookies
    Mitglied
    Punkte
    20
    Beiträge
    3
    • 1. Oktober 2011 um 19:45
    • #3

    ja, schau dir mal die letzte Zeile im Kommandozeileninterpreter an, da hab ich das auch so gemacht :thinking_face: Und ab hier passiert gar nichts mehr... ich komm einfach nur in eine neue Zeile und kann einfach irgendwas eintippen!

  • S3th
    3
    S3th
    Mitglied
    Punkte
    45
    Beiträge
    8
    • 1. Oktober 2011 um 19:58
    • #4

    Ach so, hatte das ganze nur überflogen. Anscheinend beendet eine gewisse Eingabe das Programm ("-1 -1 -1 ist die Folge, die das Ende der Eingabe markiert.").

    Back so soon hm… Let’s see how you do with something important.

    Seth

  • cookies
    2
    cookies
    Mitglied
    Punkte
    20
    Beiträge
    3
    • 1. Oktober 2011 um 20:00
    • #5

    Hm... ja nur das Problem ist, dass das nicht nur bei diesem Code der Fall ist, sondern bei jedem, den dieser Professor raufgestellt hat... ich weiß echt nicht woran es liegt!!
    ein weiterer Code ist z.B.:

    Zitat

    import java.util.Scanner;

    /**
    * Liest eine positive Ganzzahl ein und gibt deren Ziffernsumme
    * (in der Dezimaldarstellung) am Bildschirm aus.
    */
    public class DigitSum {
    public static void main (String [] args) {
    //Scanner wird zum Einlesen der Zahl n benötigt
    Scanner sc = new Scanner (System.in);

    //Speichert die Summe der Ziffern
    int sum = 0;

    //n wird eingelesen
    int n = sc.nextInt();

    /* beginnend von der Ziffer mit der geringsten Wertigkeit
    * (Einerstelle) werden die einzelnen Ziffern aufaddiert.
    * Dabei wird die Einerstelle zur Ziffernsumme addiert und
    * danach verworfen (ganzzahlige Division durch 10).
    * Dadurch rückt die Zehnerstelle an die
    * Einerstelle nach. Der Vorgang wird wiederholt, bis es
    * keine weitere Stelle mehr gibt.
    */
    while (n > 0) {
    //d speichert Einerstelle
    int d = n%10;

    //d wird zu sum dazuaddiert
    sum += d;

    /*
    * Jeden einzelnen Schritt ausgeben. Die folgende
    * Anweisung kann auch entfernt werden:
    */
    System.out.printf("n=%d\td=%d\tsum=%d%n",n,d,sum);

    //Einerstelle wird verworfen. Zehnerstelle rückt nach.
    n /= 10;
    }

    System.out.println(sum);
    }
    }

    Alles anzeigen
  • polymorph10
    5
    polymorph10
    Mitglied
    Reaktionen
    20
    Punkte
    270
    Beiträge
    50
    • 1. Oktober 2011 um 20:02
    • #6

    Ich versteh dein Problem nicht ganz, beim ersten Programm musst du ja eine Zahl eingeben (+ Enter) und abhängig davon, gibt dir das Programm etwas aus. Was erwartest du dir für ein Verhalten vom Programm?

    edit, Nachtrag: Beim zweiten Programm gibst du eine Zahl ein (+ Enter) und als Ausgabe erhältst du die Ziffernsumme dieser Zahl.

    2 Mal editiert, zuletzt von polymorph10 (1. Oktober 2011 um 20:05)

  • S3th
    3
    S3th
    Mitglied
    Punkte
    45
    Beiträge
    8
    • 1. Oktober 2011 um 20:26
    • #7

    Habe mal beide Programme kompiliert und sie tun das was im Kommentarbereich oben steht. Das erste Programm terminiert mit 3x "-1" + Enter und das zweite mit Zahl + Enter.
    Ich kann kein Problem erkennen.

    Back so soon hm… Let’s see how you do with something important.

    Seth

  • 2#4u
    5
    2#4u
    Mitglied
    Reaktionen
    8
    Punkte
    248
    Beiträge
    46
    • 1. Oktober 2011 um 23:00
    • #8
    Zitat von cookies

    Am Schluss werd ich dann immer in die nächste Zeile geleitet, aber nichts passiert!

    Das Programm läuft und wartet auf eine Eingabe von dir.

    Stefan Spelitz
    [Computergraphik UE Tutor 2017SS]

  • anwesender
    8
    anwesender
    Mitglied
    Reaktionen
    12
    Punkte
    647
    Beiträge
    125
    • 2. Oktober 2011 um 00:07
    • #9

    Mit [CTRL]+[D] (unter win afaik [CTRL]+[Z]) die Eingabe beenden?

    Thomas

  • S3th
    3
    S3th
    Mitglied
    Punkte
    45
    Beiträge
    8
    • 2. Oktober 2011 um 00:29
    • #10

    STRG+C unter Win

    Back so soon hm… Let’s see how you do with something important.

    Seth

  • anwesender
    8
    anwesender
    Mitglied
    Reaktionen
    12
    Punkte
    647
    Beiträge
    125
    • 2. Oktober 2011 um 01:00
    • #11
    Zitat von S3th

    STRG+C unter Win


    [CTRL]+[C] ist (wie unter Linux) das Abbrechen von ausgeführten Programmen (SIGINT)

    mir geht es aber um Wikipedia-Link

    Thomas

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung