Ascii Bild mittels Scanner einlesen

Int

Neues Mitglied
Hallo,
habe gerade angefangen mit Java zu programmieren, komme jedoch nun bei dieser Aufgabe nicht weiter:

Das Programm soll ein solches Bild zeilenweise von der Standardeingabe einlesen. Lassen Sie Ihr Programm solange Bildzeilen einlesen, bis das Ende der Eingabe erreicht ist. Zählen Sie dabei mit, wie viele Zeilen bereits eingelesen wurden und überprüfen Sie weiters, ob jede neu eingelesene Zeile gleich lang wie die bisher eingelesenen ist. Ist eine Zeile länger oder kürzer, so wird das Einlesen abgebrochen und "INPUT MISMATCH" in einer eigenen Zeile über die Standardausgabe ausgegeben. Sind alle Zeilen gleich lang, so wird nach Einlesen der letzten Zeile die Breite und Höhe des eingelesen ASCII-Bildes in einer Zeile über die Standardausgabe ausgegeben.

Habe nur folgenden Code:


import java.util.Scanner;

public class Asciishop {
public static void main(String[]args){
Scanner sc = new Scanner (System.in);

String a = reader.nextLine

while (a != 0)
if (a != ++)
System.out.println("INPUT MISMATCH")
else
...

}
}

Wie kann ich dem Programm sagen wann die Zeichenkette zu Ende ist und wie viele Zeilen sie hat?? Bitte dringendst um Hilfe!!
 
Hi

Das Programm soll ein solches Bild zeilenweise von der Standardeingabe einlesen.
Keine Ahnung was für ein Bild, aber nehme an einfach Ascii-Zeichen, also irgendwas was auf der Tastatur eingegeben wird.

Wenn du von der Standardeingabe liest wird wohl das drücken der ENTER-Taste das Zeilenende signalisieren. Das ist dann warscheindlich ein "\n"

Aber verwende doch mal die Code-Tags damit dein Code etwas lesbarer ist.

"reader" ist gar nirgends deklariert. Ist der Code so als Beispiel vorgegeben? Da Fehlt einiges, angefangen mit Geschweiften Klammern...

Hast du dich schon mit Objekten, Schlaufen und if-else ect befasst? Sonst wär das nämlich mal ein guter Anfang...

mfg
 
Die Syntax von deinem Programm stimmt vorne und hinten nicht. Sieht aber eher nach Lücken in den Grundlagen aus, die nur du auffüllen kannst. Es gibt genügend Java-Literatur für Anfänger
 
Die Syntax von deinem Programm stimmt vorne und hinten nicht. Sieht aber eher nach Lücken in den Grundlagen aus, die nur du auffüllen kannst. Es gibt genügend Java-Literatur für Anfänger

JAVA? Programmieren können ist doch eine Voraussetzung um eine Programmiersprache zu lernen - oder liege ich so falsch?

Ich formuliere jetzt halt mal in diesem Thread etwas, was sich so im mir aufgestaut hat. Es betrifft nicht alles das hier - aber vieles

Erfahrene Programmierer erwürgen mich jetzt vielleicht, weil ich alles extrem vereinfache, aber die müssen ja nicht zwingend weiterlesen 🙂

Wie komme ich zu einem vernünftigen Resultat / Programm - eine Anleitung

Programmieren beginnt auf dem Papier!

1. Was will der Auftraggeber. Die Aufgabenstellungen sind oft (im realen Leben meistens) unvollständig und können auch überflüssige Informationen enthalten.
Es ist auch wichtig dass du es nach deinem Eigenen Verständnis nochmals aufschreibst und vom Auftraggeber prüfen lässt. (Lehrer drücken sich oft davor ;-) )
Dieser Schritt wird oft als Analyse bezeichnet.
Das Resultat ist die Beschreibung des Problemes aus Sicht des Programmierers (es besteht eigentlich nur aus Text - ok, manchmal sagt ein Bild mehr als 1000 Worte)

2. Wie will ich das Problem lösen - NEIN, auch dazu brauchst du noch keinen Kompiler
Das ist sogar zum grössten Sprachunabhängig. Einfach in Einzelschritten aufschreiben was du wann machst.
Es gibt hunderte von Notationen - z.b. Flussdiagramme - Sequenzdiagramme etc etc etc
Das nennt man oft Design
Das Resultat ist eine Beschreibung welche Klassen implementiert werden müssen und welche Funktionalitäten wohin kommen.

3. Jetzt brauchst du eine Entwicklungsumgebung
Die oben aufgeschriebenen Schritte werden jetzt implementiert und getestet:
(Darum betone ich immer wieder dass der Code nicht ins Hauptprogramm sondern in eine
Prozedur gehört - weil es so viel einfacher testbar ist)
Dieser Schritt umfasst Implementation und Test bis zum fertigen Programm

Dass das oft nicht in einem Schritt geht und es Loops (auch als Iterationen bezeichnet) braucht lasse ich mal weg ;-)

Noch eine Anmerkung am Rande : Jeder der drei Schritte braucht erfahrungsgemäss etwa gleich viel Zeit. Also 2/3 arbeiten wir ohne Java oder C oder was auch immer!
Nur für Implementation und Test braucht es das.

Und konkret an den Threadstarter gerichtet : Java verwirrt dich im Moment nur
Beschreib doch mal die Aufgabe so, dass sie auch von einem geistig Minderbemittelten gelöst werden könnte - Computer sind nämlich höhstens auf diesem Niveau.
(Bitte verzeiht den Vergleich - in Tat und Warheit sind Computer noch viel weniger intelligent)

Wenn deine Beschreibung steht, ist der Hauptteil der Arbeit gelöst und du kannst Stück für Stück in Java umsetzen - dabei helfen wir dann gerne mit konstruktiven Ideen

Das hier ist halt ein Java Forum und da wirst du erst im dritten Schritt Hilfe finden.
 
Zuletzt bearbeitet:
@Andi_CH:
nett aufgeführt, doch für das normale Cowboy Hacking das jeder bis zu einem gewissen Alter / Erfahrungswert macht nicht zu gebrauchen.... und Programmieren lernt man durch Programmieren. Somit ist das Programmieren bei weitem keine Voraussetzung für das Lernen einer Programmiersprache
 
Ich bestehe drauf, dass Programmieren (sieh es mal als Synonym für Softwareentwicklung an (jetzt "erwürgen" mich andere wieder)) sehr wenig bis gar nichts mit Codieren zu tun hat.

Wenn ich die Art der Fragen hier ansehe, sind die Meisten darauf zurück zu führen, dass die Leute das Problem gar nicht erst begriffen haben und aus diesem Grund anstehen.

Jedes Problem > Hello World sollte zuerst Analysiert und dann Designed werden - auch wenn die Phasen nur wenige Minuten dauern ;-)

Die Bemerkung "Java blokiert dich" habe ich sehr ernst gemeint - natürlich weiss ich auch, dass ein Feindesign nicht möglich ist, wenn man keine Ahnung von der Sprache hat oder nicht weiss welche eingesetzt wird.

EDIT: Jetzt bemerke ich etwas - ich habe "Java verwirrt dich" geschrieben - das war anders gemeint
"Java blockiert dich" wäre richtiger gewesen...
 
Zuletzt bearbeitet:
Du kannst dir nur einen Entwurf (natürlich über HalloWelt hinaus) basteln, nur wenn du die Möglichkeiten kennst.
Ein Chirurg kann vor dem geistigen Auge die Operation ablaufen lassen, bei mir würde es so aussehen: "Hm... aufschneiden... oh, gucken an... hier ist irgendein Organ... cool... was mache ich damit? hmm... erstmal liegen lassen... hmm... hab mich jetzt verlaufen... mist". Man muss also eine Vorstellung davon haben was alles möglich ist, damit man etwas planen kann.
Dieses Wissen lässt sich auch durch Theorie aneignen, aber es wird dann zu abstrakt, so dass es nicht haften bleibt.
 
Ich habe irgendwie das Gefühl der Threadstarter wollte etwas anderes wissen... obwohl er sich nicht wieder mit einer besseren Ausführung seines Problems gemeldet hat... Vielleicht hat er/sie germerkt dass Java lernen und Klassenkameraden/Leher fragen doch viel mehr hilft 😛

@Andi_CH:
Ich denke für grössere Projekte ist die Planung sicher ein sehr wichtiger Teil, aber für kleine Progrämmchen wird kurz überlegt und dann drauflosprogrammiert (wie du sagst, planungsphase wenige minuten (oder sekunden)) 😛
Vorallem zum lernen denke ich man sollte einfach mal was drauflosprogrammieren. Aus den Schwierigkeiten die man dann antrifft lernt man auf jeden Fall viel.
 
ich würde auch gern mal meine meinung sagen...

ja ich bin acuh neu hier und kann java noch nicht so gut das ich vom programmieren her mitreden kann...
aber wenn du erst seit kurzen programmierst dann ist das einlesen von texten noch viel zu hoch für dich...
einfachere methoden wären eher angesagt wie zB addieren von 2 zahlen oder so...
und so dann langsam vortasten
 

Zurück
Oben