Erste Schritte 2 Kleine Programme

MichaelJAVA

Mitglied
Hallo liebe Community!

Ich studiere im dritten Semester Wirtschaftsingenieur und habe mir zur Übung für unser bevorstehendes Informatik-Labor 2 Aufgaben rausgesucht, die ich einfach nicht gelöst bekomme.
Ich hoffe es bereitet euch keinen großen Umstand mir zu zeigen, wie diese gelöst auszusehen haben:

(Ich vergaß anzumerken: In Java wird programmiert :))

1.
In einem Array
t(1)=2
t(2)=5
t(3)=1
t(4)=7
t(5)=3
t(6)=4

Mittels einer Do-While-Schleife soll t()=3 gesucht werden und der Index 5 ausgegeben werden.

2.
Zuerst soll vom Nutzer ein Wert eingegeben werden. (Reelle Zahlen)

Dann mittels If-Schleife folgendes ausgegeben werden:

Wert >=0 aber <=10 soll ausgegeben werden "1"
Wert >10 aber <=20 soll ausgegeben werden "2"
Wert >20 aber <=30 soll ausgegeben werden "3"
Wert >30 soll ausgegeben werden ">=4"

Ich hoffe inständig, dass es jemandem gelingt diese in Form zu bringen.
Ihr braucht euch auch keine Mühen zu machen diese zu erklären, ich sollte aus euren Quellcodes schlau werden.

Vielen vielen Dank im Voraus!
Liebe Grüße
Michael
 

Mujahiddin

Top Contributor
Array-Darstellung sieht so aus t[x] anstatt t(x), t(x) wäre Methodenaufruf.

Eine do-while-Schleife könnte so aussehen:
Java:
int i = 0;
do {
    i++;
} while(t[i] != 3);

Dieses Forum ist übrigens nicht da, dass andere Hausaufgaben erledigen. Du solltest deine eigenen Ansätze haben.

Wichtig.
 

MichaelJAVA

Mitglied
Es war nicht meine Absicht eine komplette Lösung zu erfahren. Vielleicht habe ich mich undeutlich ausgedrückt.

Eine grobe Stütze zur Lösung der zwei Programme wäre nur hilfreich.

Liebe Grüße
 

Mujahiddin

Top Contributor
Zur ersten Aufgabe sollte mein Beitrag wohl genügen.
Zur zweiten Aufgabe würde ich einen Scanner empfehlen:
Java:
Scanner sc = new Scanner(System.in);
System.out.print("Geben Sie Ihre Zahl ein: ");
double d = sc.nextDouble();
Und wie if-Abfragen funktionieren, solltest du wissen.

Tipp: Wenn du von einer Richtung anfängst (z.B. von größer nach kleiner) dann kannst du dir eine Menge Abfragen sparen.
 
P

pappawinni

Gast
Bei der 2ten Aufgaben könnte man sich die Geschichte ja relativ einfach machen.


Java:
...
double d = sc.nextDouble();

int ergebnis = (int) (d + 10) / 10;
if (ergebnis >= 4) {
  ergebnis = 4;
  System.out.println("\">=" + ergebnis + "\""); 
}
else
{
System.out.println("\"" + ergebnis + "\"");
}
 
Zuletzt bearbeitet von einem Moderator:
H

hüteüberhüte

Gast
(10 + 10) / 10 == 2 != 1

Deine Methode kann leider nicht angewandt werden

@MichaelJAVA: Bei einem Wert < 0 soll gar nichts ausgegeben werden, deshalb ist dieser Fall am besten vorher auszuschließen
 

haui95

Bekanntes Mitglied
Die zweite Aufgabe könnte man auch sehr gut mit einer Switch-Anweisung lösen, anstatt dass man geschachtelte If-Abfragen verwendet und der Code mit der Zeit unübersichtlich werden kann.
 

Mujahiddin

Top Contributor
Die zweite Aufgabe könnte man auch sehr gut mit einer Switch-Anweisung lösen, anstatt dass man geschachtelte If-Abfragen verwendet und der Code mit der Zeit unübersichtlich werden kann.

Okay.
Java:
switch(input){
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
        System.out.println("1");
        break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    ...
    ...
    case 39:
        System.out.println("3");
        break;
    case 40:
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    ...
    case Integer.MAX_VALUE:
        System.out.println(">=4");
 
H

hüteüberhüte

Gast
switch case? Das musst du nochmal genauer erklären...

Java:
if (d < 0)
  return; oder System.exit(0);

vorweg führt zu keiner Verschachtelung. Oder man prüft wie schon gesagt in umgekehrter Reihenfolge
 

haui95

Bekanntes Mitglied
Für mich ist es nun einmal nicht so einfach Programmiersprachen auseinander zu halten. Ich habe vor Java eigentlich nur mit Pascal/Delphi programmiert und da waren die Switch-Case Konstrukte etwas einfacher und übersichtlicher gehalten, zumal ich in Java nicht sehr oft mit Switch-Anweisungen arbeite. :D

Kleines Beispiel:

Code:
var punkte: Integer; 
     wertung: String; 

case punkte of 
  0 : wertung := 'Ungenügend'; 
  1..3 : wertung := 'Mangelhaft'; 
  4..6 : wertung := 'Ausreichend'; 
  7..9 : wertung := 'Befriedigend'; 
  10..12 : wertung := 'Gut'; 
  13..15 : wertung := 'Sehr gut'; 
  else wertung := 'Diese Punktzahl gibt es nicht.'; 
end;
 
P

pappawinni

Gast
(10 + 10) / 10 == 2 != 1

Deine Methode kann leider nicht angewandt werden

@MichaelJAVA: Bei einem Wert < 0 soll gar nichts ausgegeben werden, deshalb ist dieser Fall am besten vorher auszuschließen

ach, oh, hab ich nicht genau genug gelesen. Dann vielleicht etwas in der Richtung:
Code:
		int ergebnis = 4-(int) (40-d)/10;
 
P

pappawinni

Gast
Bei 2. wird aus der Aufgabenstellung nicht wirklich klar, was im Fall der Eingabe einer negativen Zahl geschehen soll.
Man könnte da z.B. eine Wiederholung der Eingabe fordern, nur ne Fehlermeldung ausgeben, oder nichts tun.
Ansonsten denk ich, könnte das so aussehen:

Java:
Scanner sc = new Scanner(System.in);
System.out.print("Geben Sie Ihre Zahl ein: ");
double d = sc.nextDouble();

int ergebnis=0;
if (d==0) {
  ergebnis = 1;
}
else 
{
  ergebnis = 4-(int) (40-d)/10;
}
if (ergebnis > 3) {
  ergebnis = 4;
  System.out.println("\">=" + ergebnis + "\""); 
}
else
{
   if (ergebnis > 0)  System.out.println("\"" + ergebnis + "\"");
}
 
W

Wishmaster51

Gast
Die zweite Aufgabe könnte man auch sehr gut mit einer Switch-Anweisung lösen, anstatt dass man geschachtelte If-Abfragen verwendet und der Code mit der Zeit unübersichtlich werden kann.
Da finde ich die hier vorgestellte Lösung mit switsch aber wesentlich unübersichtlicher und wesentlich aufwändiger zu schreiben.
 

Crian

Top Contributor
Besonders der Teil zwischen

Java:
    case 47:
    ...
    case Integer.MAX_VALUE:

könnte sich etwas hinziehen.
 

Milkaselnuss

Aktives Mitglied
Wie wärs denn einfach mit dem hier? (2. Aufgabe)

Java:
public static void main(String[] args) {
	
		String eingabe = JOptionPane.showInputDialog("Bitte eine Zahl eingeben: ");
		Double zahl = Double.parseDouble(eingabe);
		String ausgabe = "";
		
		if (zahl >= 0 && zahl <= 10){
			ausgabe = "1";
		}
		if (zahl > 10 && zahl <= 20){
			ausgabe = "2";
		}
		if (zahl > 20 && zahl <= 30){
			ausgabe = "3";
		}
		if (zahl > 30){
			ausgabe = ">=4";
		}
		System.out.println(ausgabe);
		//oder
		JOptionPane.showMessageDialog(null, ausgabe);

	}
 

faetzminator

Gesperrter Benutzer
Das geht auch mit weniger Prüfungen:
Java:
if (zahl >= 0) {
    String ausgabe = ">=4";
    if (zahl <= 10) {
        ausgabe = "1";
    } else if (zahl <= 20) {
        ausgabe = "2";
    } else if (zahl <= 30) {
        ausgabe = "3";
    }
    System.out.println(ausgabe);
}
 
P

pappawinni

Gast
Ungeklärt ist nach wie vor, was geschehen soll, wenn Zahlen kleiner Null eingegeben werden. Ebenfalls unklar, das scheint mir hier etwas zu kurz gekommen, was ganau auszugeben ist.
Sind es die reinen Ziffern 1, 2, 3 und der Ausdruck >=4, oder sollen die Anführungszeichen Teil der Ausgabe sein, also "1","2","3" und ">=4".
In diesen Punkten erscheint die Aufgabenstellung nicht wirklich klar, weshalb auch die schönste Lösung mit Fragezeichen zu versehen ist.
 

MichaelJAVA

Mitglied
Die Zahlen kleiner Null sollen hier unbeachtet bleiben und müssen somit im Code nicht weiter berücksichtigt werden.

Und die Anführungszeichen haben hier nur zur "Markierung" des Textes dienen sollen.

Ich bitte das hier zu entschuldigen, falls ich mich unklar ausgedrückt haben sollte.

Mein Vorschlag zur ersten Aufgabe sieht ausgearbeitet so aus, ich finde nur meinen Fehler nicht:

public class tabelle
{
public static void main(String[] args)
{
int arrayhello[] = new int[6];

arrayhello[1] = 2;
arrayhello[2] = 5;
arrayhello[3] = 1;
arrayhello[4] = 7;
arrayhello[5] = 3;
arrayhello[6] = 4;
int j=1;

do
{
j=j+1;

if (arrayhello[j]==3){

System.out.println(arrayhello[j]);
}
}
while(j<7);
System.out.println(arrayhello[j]);
}
}

Euren geschulten Augen müsste mein Fehler vielleicht auffallen.

Lieber Gruß!
 
P

pappawinni

Gast
In Java beginnen Arrays mit dem Index 0
Bei einem Array mit 6 Elementen
Code:
new int[6]
ist der höchste Index 5.
Wenn du also darauf bestehst ein Element mit Index 6 verwenden zu wollen, dann müsstest du ein Array mit 7 Elementen erzeugen.

Was du ausgeben sollst/willst ist dann auch nur der Index des Elementes und nicht dessen Inhalt.

Java:
        int arrayhello[] = new int[7];

        arrayhello[1] = 2;
        arrayhello[2] = 5;
        arrayhello[3] = 1;
        arrayhello[4] = 7;
        arrayhello[5] = 3;
        arrayhello[6] = 4;
        int j=0;

        do
        {
          j++; 
          if (arrayhello[j]==3) {
            System.out.println(j);
            break;
          }
        } while(j<7);
 
Zuletzt bearbeitet von einem Moderator:

MichaelJAVA

Mitglied
Wirklich vielen tausend Dank, speziell du pappawinni.
Eine riesige Stütze!

Lieber Gruß!

---

Nun habe ich ein Problem mit folgendem Vorschlag:

public static void main(String[] args) {

String eingabe = JOptionPane.showInputDialog("Bitte eine Zahl eingeben: ");
Double zahl = Double.parseDouble(eingabe);
String ausgabe = "";

if (zahl >= 0 && zahl <= 10){
ausgabe = "1";
}
if (zahl > 10 && zahl <= 20){
ausgabe = "2";
}
if (zahl > 20 && zahl <= 30){
ausgabe = "3";
}
if (zahl > 30){
ausgabe = ">=4";
}
System.out.println(ausgabe);
//oder
JOptionPane.showMessageDialog(null, ausgabe);

}

Das Programm BlueJ, dass ich zum vereinfachten Arbeiten benutze hat Probleme mit den ersten beiden Zeilen:

String eingabe = JOptionPane.showInputDialog("Bitte eine Zahl eingeben: ");
Double zahl = Double.parseDouble(eingabe);

(Erkennt er nicht - "cannot find symbol")

Mache ich was falsch oder habe beim Übernehmen was vergessen?

Nochmals lieber Gruß!
 
Zuletzt bearbeitet:

FrozenBrain

Mitglied
Um auf die Klasse JOptionPane zugreifen zu können, musst du sie erst durch eine import-Anweisung am Anfang deiner Klasse für deine Klasse zugänglich machen.

Java:
import javax.swing.JOptionPane;

Warum BlueJ dir die zweite Zeile anstreicht, verwundert mich gerade etwas. Beheb' am Besten erstmal den ersten Fehler und schau dann, ob immer noch ein Wurm drin ist.
 

Datacron

Mitglied
Hi, ich weiß du hast die Antwort schon, aber evtl siehst du so auch noch einen anderen Ansatz :) (funktioniert übrigens)
Java:
import java.io.*;

public class Eingabeauswertung {
	
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	String eingabe;
	
	public void start() {	
		System.out.print("Zahl eingeben: ");
		
		try {
			eingabe = br.readLine();
			auswertung(eingabe);
		} catch (IOException ioe) {
			System.out.println("keine Zahl eingegeben!");
			System.exit(1);
		}
	}
	
	private void auswertung(String a) {
		int eingabeint = Integer.parseInt(a);		
				
			if(eingabeint >= 0 && eingabeint <= 10 )
				System.out.println("Ergebnis: 1");
			else if(eingabeint > 10 && eingabeint <= 20 )
				System.out.println("Ergebnis: 2");
			else if(eingabeint > 20 && eingabeint <= 30 )
				System.out.println("Ergebnis: 3");
			else if(eingabeint > 30)
				System.out.println("Ergebnis: >=4");
			
			start();
	}
		
	// main
	public static void main(String[] args) {
		Eingabeauswertung ea = new Eingabeauswertung();
		ea.start();
	} 
	
}

ich würde dir zum lernen nicht buleJ empfehlen. Vorallem nicht fürs verstehen von JAVA :))
Nimm eclipse oder notepad
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
CptK Interface Kleine Kreise in großem Kreis anordnen Java Basics - Anfänger-Themen 3
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
S Kleine Frage zu Threads Java Basics - Anfänger-Themen 3
T Klassen Kleine Übung zum Thema Klassen Java Basics - Anfänger-Themen 3
O Kleine Frage zu Iterator und Iterable Java Basics - Anfänger-Themen 6
O Kleine Frage zu cast Java Basics - Anfänger-Themen 3
U DOM Parser, kleine Frage Java Basics - Anfänger-Themen 29
N BierSpiel von "Kopf bis Fuss" eigener Code...kleine Problemstellung. Java Basics - Anfänger-Themen 11
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
TheSorm Kleine Speicher Klasse Java Basics - Anfänger-Themen 24
F Speicherlast mehrere GB durch kleine png files? Java Basics - Anfänger-Themen 1
T Kleine Anfängerfrage :) Java Basics - Anfänger-Themen 4
T Kleine Klausurfragen Java Basics - Anfänger-Themen 17
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
Q Vererbung Kleine Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 5
DStrohma Best Practice Hibernate für kleine Anwendung nutzen? Java Basics - Anfänger-Themen 4
O Konsole - Kleine Frage Java Basics - Anfänger-Themen 22
N kleine get-Methode anhand einer Aufgabenstellung Java Basics - Anfänger-Themen 13
D Kleine Rechenregel... ++a Java Basics - Anfänger-Themen 4
ScottGambler Kleine Frage Java Basics - Anfänger-Themen 13
T Kleine Frage Java Basics - Anfänger-Themen 2
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
A Java Flächeninhaltsberechnung kleine Frage Java Basics - Anfänger-Themen 8
H Datei in kleine Stücke teilen und wieder erkennen Java Basics - Anfänger-Themen 10
P eigene kleine Datenverwaltung Java Basics - Anfänger-Themen 5
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
S Erste Schritte Zwei kleine Fragen zu [], int und Konstruktor Java Basics - Anfänger-Themen 3
S Erste Schritte Kleine Problem mit Ausgabe in eine Datei Java Basics - Anfänger-Themen 11
R Sehr kleine doubles nicht in Exponentialdarstellung ausgeben Java Basics - Anfänger-Themen 3
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
O kleine SwingFrame Java Basics - Anfänger-Themen 3
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
J BlueJ! 2 kleine Fragen zum Spiel. Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
H Warum funktioniert diese kleine Methode nicht? Java Basics - Anfänger-Themen 8
E Kleine Hilfe für einen Einsteiger Java Basics - Anfänger-Themen 18
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
M kleine Verständisfrage zur Klassenhierarchie, speziel JMenuItem Java Basics - Anfänger-Themen 8
J Kleine Frage zu Methoden & OOP Java Basics - Anfänger-Themen 4
B Paar kleine Grundsatzfragen zu Java Java Basics - Anfänger-Themen 5
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
S 2 kleine Methoden negieren und print Java Basics - Anfänger-Themen 8
J if und kleine double Werte Java Basics - Anfänger-Themen 7
H kleine zwischenfrage string Java Basics - Anfänger-Themen 3
ModellbahnerTT Kleine Frage zu doppelten Arrays Java Basics - Anfänger-Themen 3
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
M Kleine Konsole mit Threads + KeyAdapter Java Basics - Anfänger-Themen 6
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
hdi kleine Verständnisfrage lokale + Member Variable Java Basics - Anfänger-Themen 10
R Kleine Frage zu Array Java Basics - Anfänger-Themen 2
B kleine Probleme beim auslesen einer m3u Datei Java Basics - Anfänger-Themen 3
G eine kleine verwaltung Java Basics - Anfänger-Themen 2
M Eine kleine Frage bzw kleine Theorie frage String[arg] Java Basics - Anfänger-Themen 6
Povlsen84 Initlialisierung, Vector, serialVersionUID . kleine Fragen Java Basics - Anfänger-Themen 4
M Kleine Anfängerfrage Java Basics - Anfänger-Themen 10
D kleine Passwortabfrage erstellen incl. Method zum verändern Java Basics - Anfänger-Themen 7
G jFTP - kleine Fragen Java Basics - Anfänger-Themen 2
P Eine kleine Frage. Java Basics - Anfänger-Themen 4
M kleine sql abfrage Frage Java Basics - Anfänger-Themen 5
K Kleine Fragen über Arrays Java Basics - Anfänger-Themen 8
Z kleine frage zu: Runtime.getRuntime().exec("cmd /c) Java Basics - Anfänger-Themen 3
M Zufallszahl - kleine Frage Java Basics - Anfänger-Themen 4
K Hallo, Ich suche kleine Java Program-Aufgaben zum üben ? Java Basics - Anfänger-Themen 4
S kleine suche Java Basics - Anfänger-Themen 9
D kleine spielerei mit swing Java Basics - Anfänger-Themen 5
A Kleine Tabelle . Java Basics - Anfänger-Themen 8
U kleine datenbank Java Basics - Anfänger-Themen 86
G kleine Frage Java Basics - Anfänger-Themen 4
Q Wie kann man eine kleine pause im Programm machen? Java Basics - Anfänger-Themen 13
J Kleine Connection Frage Java Basics - Anfänger-Themen 4
J kleine java aufgabe: ausgabe von sternchen Java Basics - Anfänger-Themen 20
P kleine db-aufgabe läuft nur suboptimal Java Basics - Anfänger-Themen 8
S ein paar kleine Fragen Java Basics - Anfänger-Themen 4
M Kleine Frage zu If-Bedingung Java Basics - Anfänger-Themen 4
X Kleine Frage: Split Java Basics - Anfänger-Themen 13
G sehr kleine Dezimalzahlen (BigDecimal) falsch angezeigt Java Basics - Anfänger-Themen 5
G Eigene kleine Sprache entwickeln Java Basics - Anfänger-Themen 6
T Kleine Verständnissfrage Java Basics - Anfänger-Themen 7
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
A Noch ne kleine Beanshell Frage Java Basics - Anfänger-Themen 7
B eine kleine leichte aufgabe mit einem stack programmieren Java Basics - Anfänger-Themen 2
A Kleine Anfängerfragen u.a.: Kann man Random "speichern& Java Basics - Anfänger-Themen 6
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
Establishmensch Untermenü Programme Java Basics - Anfänger-Themen 5
W Zwei Programme sollen auf eine Klasse zugreifen Java Basics - Anfänger-Themen 18
cpt.Tomato Best Practice Wie speichert/Dokumentiert Ihr eure Programme? Java Basics - Anfänger-Themen 8
C Problem: PC ohne Internet und keine Möglichkeit Programme zu laden Java Basics - Anfänger-Themen 5
Dimax Programme ,als Text in MySql speichern Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben