Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Java: Problem bei Aufgabe

Mitglied: WhatEver007

WhatEver007 (Level 1) - Jetzt verbinden

22.10.2019 um 14:34 Uhr, 493 Aufrufe, 23 Kommentare, 1 Danke

Hallo zusammen,

ich habe bereits einwenig an der Aufgabe gearbeitet. Habe aber ein Problem - solltet ihr anhand der Aufgabe erkennen können.
Ich bin dankbar für eure Lösungshilfen.

Gruß Felix

_______________________________

Die folgende Reihe ist mit einem Programm zu berechnen: 1² + 2² + 3² + ... + n²

Vor dem Start des Programms wird ein Grenzwert für die Reihe eingeben, welcher nicht überschritten werden darf. Das Programm gibt am Ende die Anzahl der Summanden aus. Anschließend fragt es, ob eine weitere Reihe berechnet werden soll. Gibt der Anwender das Zeichen 'j' ein, so darf er anschließend einen neuen Grenzwert eingeben und die Reihe wird berechnet. Erstellen Sie ein Struktogramm und anschließend den Javacode.

Beispiel: Grenzwert = 16
1² + 2² + 3² = 14 (liegt unter dem Grenzwert) 1² + 2² + 3² + 4² = 30 (liegt über dem Grenzwert)
Anzahl der Summanden: 3

___________________________________________
Lösungsansatz:

01.
package aufg1_1;
02.
import java.util.Scanner;
03.

04.

05.
public class aufgabe1_1 {
06.
	public static void main(String[] args) {
07.
		
08.
	int grenzwert = 0;
09.
	int anzSummand = 0;
10.
	char nochmal;
11.
	int ergebnis = 0;
12.
	int zahl = 1;
13.
	
14.
	System.out.println("Berechnung von:  1² + 2² + 3²....n²");
15.
	System.out.println("Geben Sie einen Grenzwert ein: ");
16.
	
17.
	Scanner scan = new Scanner(System.in);
18.
	grenzwert = scan.nextInt();
19.
	
20.
	for(int i = 0; i < grenzwert; i++)
21.
	{
22.
		ergebnis = ergebnis + (zahl*zahl);
23.
		zahl++;
24.
		anzSummand++;
25.
	}
26.
		
27.
	System.out.println("Ergebnis: " + ergebnis);
28.
	
29.
	}
30.
}
Mitglied: Grinskeks
22.10.2019 um 15:12 Uhr
Hallo,

deine For-Schleife läuft 15 x durch bevor sie den Grenzwert erreicht. Eigentlich sollte die Anzahl der Iterationen gleich der Anzahl der Elemente in der Reihe entsprechen.

Lass dir einfach für jede Schleifen-Iteration die Werte in den Variablen ausgeben und du findest den Fehler selbst.
Und den zweiten Fehler direkt im Anschluss, sofern der Grenzwert nicht nur beliebig angenähert sondern auch tatsächlich erreicht wird.

Das ist ja gerade der Riesenspaß am Programmieren - es selbst herauszufinden

Gruß
Grinskeks
Bitte warten ..
Mitglied: SlainteMhath
22.10.2019 um 15:13 Uhr
Moin,


Beispiel: Grenzwert = 16
1² + 2² + 3² = 14 (liegt unter dem Grenzwert) 1² + 2² + 3² + 4² = 30 (liegt über dem Grenzwert)
Anzahl der Summanden: 3
Dein Programm macht aber ganz was anders...

for(int i = 0; i < grenzwert; i++)
... überleg mal ob/wie das zu der Aufgabenstellung passt

lg,
Slainte
Bitte warten ..
Mitglied: Reinartz
22.10.2019 um 15:15 Uhr
Da war einer schneller
Es fehlt auch noch eine weitere Schleife (oder ähnliches) in der du die Eingabe des Nutzers prüfst (sonst ist dein Program nach einem Durchlauf zu end)
Bitte warten ..
Mitglied: WhatEver007
22.10.2019 um 15:15 Uhr
icih komm nicht ganz dahinter häng schon seit ein paar tagen an der aufgabe :D.....
Bitte warten ..
Mitglied: SlainteMhath
22.10.2019 um 15:25 Uhr
icih komm nicht ganz dahinter häng schon seit ein paar tagen an der aufgabe :D.....
Wie sieht denn das geforderte Struktogramm aus?

Fragen die du dir stellen solltest:

Gegen was soll der Grenzwert geprüft werden? Gegen die Basis der Exponentialrechung? Gegen was prüfst du?
Und: was ist der Unterschied zwischen deinen Variablen i, zahl und anzSummand?
Bitte warten ..
Mitglied: WhatEver007
22.10.2019 um 15:27 Uhr
der grenzwert soll gegen das ergebnis geprüft werden
Bitte warten ..
Mitglied: WhatEver007
22.10.2019 um 15:27 Uhr
gut.. der unterschied ist eigentlich keiner :o alle variablen sollen sich nur um 1 erhöhen pro durchlauf,..
könnte man wohl also in einer variablen machen?
Bitte warten ..
Mitglied: Reinartz
22.10.2019 um 15:35 Uhr
In deiner For Schleife würde bei Grenzwert 30, den der Nutzer ja eingegeben hat, 30 Mal die Schleife durchlaufen und nicht so lange bis die Berechnung <30 ist
Bitte warten ..
Mitglied: WhatEver007
22.10.2019 um 15:42 Uhr
achso ja also i < ergebnis
Bitte warten ..
Mitglied: WhatEver007
22.10.2019 um 15:43 Uhr
ups ne das ergibt keinen sinn...
ja wie sag ich dem denn dass der so lange durchlaufen soll bis ergebnis <= grenzwert
Bitte warten ..
Mitglied: Reinartz
22.10.2019 um 15:44 Uhr
z.B i= ergebnis
Bitte warten ..
Mitglied: erikro
22.10.2019 um 16:12 Uhr
Moin,
Zitat von WhatEver007:

ups ne das ergibt keinen sinn...
ja wie sag ich dem denn dass der so lange durchlaufen soll bis ergebnis <= grenzwert

Na "während das Ergebnis kleiner oder gleich Grenzwert". Übersetze das einfach mal ins Englische. Dann hast Du Deine richtige Schleife.

hth

Erik
Bitte warten ..
Mitglied: Reinartz
22.10.2019 um 20:28 Uhr
Hab es jetzt mal so gelöst
Es ist bei weitem nicht perfekt (man sollte noch die Eingaben abfragen ob der Nutzer das richtige eingiebt) und es geht auch deutlich schlanker aber es geht

public static void main(String[] args)
{
int grenzwert = 0;
int anzSummand = 0;
Scanner nochmal;
Scanner scan;
int ergebnis = 0;
int zahl = 1;
String weiter="j";
System.out.println("Berechnung von: 1² + 2² + 3²....n²");
while (weiter.equals("j") )
{
System.out.println("Geben Sie einen Grenzwert ein: ");
scan = new Scanner(System.in);
grenzwert = scan.nextInt();
for(int i = 0; i <= grenzwert; )
{
ergebnis = zahl*zahl;
System.out.println(zahl + " hoch "+ zahl + " ist gleich "+ ergebnis );
zahl++;
anzSummand++;
i=zahl*zahl;
}
System.out.println("Ergebnis: " + anzSummand);
System.out.println("Wollen Sie eine weitere Berechnung durchführen ?");
zahl=1;
ergebnis=0;
anzSummand=0;
nochmal =new Scanner(System.in);
weiter = nochmal.nextLine();
}
}
}
Bitte warten ..
Mitglied: SlainteMhath
23.10.2019 um 08:29 Uhr
Zitat von Reinartz:

Hab es jetzt mal so gelöst
Mal abgesehen, das dem das reine Lösen der Aufgabe beim TO keinen Lerneffekt erzielt, und du nichtmal code Tags verwendest, löst dein Code nicht die gestellte Aufgabe!!
Bitte warten ..
Mitglied: Reinartz
23.10.2019 um 08:53 Uhr
Ohhh da habe ich doch tatsächlich was überlesen
Bitte warten ..
Mitglied: SlainteMhath
23.10.2019 um 09:11 Uhr
@WhatEver007
Ich wiederhole nochmal meine Frage von oben, da du sie scheinbar übersehen hast:

Wie sieht denn das geforderte Struktogramm aus?
Bitte warten ..
Mitglied: WhatEver007
23.10.2019 um 09:11 Uhr
Ich weiss ich werde jetzt gesteinigt, aber ich habe kein Struktogramm
Bitte warten ..
Mitglied: ITvortex
23.10.2019 um 09:45 Uhr
Zitat von Reinartz:

Hab es jetzt mal so gelöst
Es ist bei weitem nicht perfekt (man sollte noch die Eingaben abfragen ob der Nutzer das richtige eingiebt) und es geht auch deutlich schlanker aber es geht

public static void main(String[] args)
{
int grenzwert = 0;
int anzSummand = 0;
Scanner nochmal;
Scanner scan;
int ergebnis = 0;
int zahl = 1;
String weiter="j";
System.out.println("Berechnung von: 1² + 2² + 3²....n²");
while (weiter.equals("j") )
{
System.out.println("Geben Sie einen Grenzwert ein: ");
scan = new Scanner(System.in);
grenzwert = scan.nextInt();
for(int i = 0; i <= grenzwert; )
{
ergebnis = zahl*zahl;
System.out.println(zahl + " hoch "+ zahl + " ist gleich "+ ergebnis );
zahl++;
anzSummand++;
i=zahl*zahl;
}
System.out.println("Ergebnis: " + anzSummand);
System.out.println("Wollen Sie eine weitere Berechnung durchführen ?");
zahl=1;
ergebnis=0;
anzSummand=0;
nochmal =new Scanner(System.in);
weiter = nochmal.nextLine();
}
}
}

Das Ergebnis müsste ergebnis = ergebnis + (zahl*zahl); sein.


Aber wie schon oben erwähnt wurde, die Hausaufgaben sollten ja zum Lernen sein und nicht damit wir sie für den TO lösen
Bitte warten ..
Mitglied: SlainteMhath
23.10.2019 um 09:46 Uhr
Dann mal doch mal eins. Dann wird dir auch klar, was du im Programm machen musst.
Bitte warten ..
Mitglied: ITvortex
23.10.2019 um 09:47 Uhr
Zitat von WhatEver007:

Ich weiss ich werde jetzt gesteinigt, aber ich habe kein Struktogramm

Hast du dir den überhaupt irgendwelche Gedanken zu deiner Aufgabenstellung gemacht oder hast du schlicht keine Lust?

Sorry aber ich verstehe nicht wieso man in einem Forum Leute mit einer Aufgabenstellung konfrontiert wenn man sich nicht mal 1 Minute hingesetzt hat.
Bitte warten ..
Mitglied: WhatEver007
23.10.2019 um 09:51 Uhr
habe ich
habe auch den großteil der aufgabe schon gelöst gehabt nur gabs ein kleines problem

von keine lust ist hier nicht die rede, da die aufgaben auch freiwillig sind
Bitte warten ..
Mitglied: holli.zimmi
24.10.2019, aktualisiert um 12:01 Uhr
Zitat von WhatEver007:

habe ich
habe auch den großteil der aufgabe schon gelöst gehabt nur gabs ein kleines problem

von keine lust ist hier nicht die rede, da die aufgaben auch freiwillig sind

Hi

kannst Du bitte beim Schreiben folgendes beachten:
1. Groß und Kleinschreibung
2. Punkt, Ausrufezeichen und Fragezeichen setzen

Frage:
1. Wieso hast Du kein Struktogramm oder PAP ?

...

Gruß

Holli
Bitte warten ..
Ähnliche Inhalte
Java
Java kompilieren
Frage von ZockervogelJava5 Kommentare

Hallo, leider habe ich überhaupt keine Ahnung von dem was ich jetzt schreibe :-) Ich habe hier ein .jar ...

Java
Java kostenpflichtig
gelöst Frage von NordicMikeJava10 Kommentare

Moin together, laut meiner Suche wurde hier letztes Jahr schon darüber diskutiert, dass Java kostenpflichtig wird. Jetzt ist es ...

Windows Netzwerk
Java APPDATA
Frage von katalinbuchWindows Netzwerk1 Kommentar

Hallo zusammen, ich habe ein Prolpem mit "umgeleiteten" Ordner APPDATA. aus Gründen der Geschwindigkeit mustten wir in einer 2012R2 ...

Java
Java Applets in Java Web Start migrieren
Frage von Manu776Java

Ich bin duale Studentin im 2. Semester und habe die Aufgabe eine Anwendung in unserer Firma, die auf Java ...

Neue Wissensbeiträge
Verschlüsselung & Zertifikate

Extended Validation Certificates are (Really, Really) Dead

Information von Dani vor 1 TagVerschlüsselung & Zertifikate

Moin all, sehr interessanter Artikel zu EV SSL/TLS- Zertifikate von Troy Hunt: Gruß, Dani

Humor (lol)
Das IoT wird schlimmer
Erfahrungsbericht von Henere vor 3 TagenHumor (lol)8 Kommentare

Nun auch schon über den WSUS:

Sicherheit

Win10 1809 und höher erlauben nun das Sperren und Whitelisten von bestimmten Geräten

Tipp von DerWoWusste vor 4 TagenSicherheit1 Kommentar

Vor 1809 konnten nur Geräteklassen gesperrt werden, nun können endlich einzelne Device instance IDs gewhitelistet werden (oder andersherum: gesperrt ...

Windows 10

Hands-On: What is new in the Windows 10 November 2019 Update?

Information von DerWoWusste vor 4 TagenWindows 10

Die wenigen (aber zum Teil interessanten) Neuheiten werden in diesem Video sehr schnell erklärt und vorgeführt.

Heiß diskutierte Inhalte
Mac OS X
Mac Startfehler: Too many corpses created
Frage von winlinMac OS X24 Kommentare

Seit meinem letzten update komme ich nach der Anmeldung nixht mehr weiter. Der Fortschrittsbalken nach der Anmeldung geht bis ...

Server
Suche günstigen Server für erste Schritte mit Microsoft Windows Server 2016 + Exchange
gelöst Frage von vodaviServer19 Kommentare

Hallo zusammen, ich bin auf der Suche nach einem preiswerten, aber guten Server. Mir geht es darum, dass ich ...

Schulung & Training
Was sollte man im Helpdesk bzw Service Desk 1st Level wissen
Frage von loubertSchulung & Training16 Kommentare

Hallo zusammen, ich fange demnächst in einem IT-Systemhaus meinen neuen Job im IT-Helpdesk (UHD), 1st Level (für externe Kunden,) ...

Windows XP
Zugriff auf WindowsXP-Freigabe nur per Eingabeaufforderung möglich
Frage von FA-jkaWindows XP11 Kommentare

Hallo, ich installiere gerade in einer VM WindowsXP; um dort eine "antike" Anwendung zu betreiben. Mit dieser werden historische ...