Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich soll für die Schule ein Programm schreiben und je ein Struktogramm anfertigen, habe aber keine blasse ahnung davon. Könnte mir vieleicht jemand einbisschen helfen.

Hier die Aufgabe:

1.Schreiben Sie ein Java-Programm unter Verwendung einer Schleifenart, welches die ersten n geraden natürlichen Zahlen ausgibt und deren Summe berechnet ! (z.B. n=5 folgt summe= 2+4+6+8+10=30

2.Zu einer beliebigen Zahl z sollen alle Teiler ermittelt werden. (z.B. z=2345 hat folgenede Teiler:1,5,7,35,335,469 und 2345. Gesucht ist ein Java - Programm, das nach Eingabe von z alle Teiler ermittelt und Ausgibt!

Wäre nett wenn ihr mir dabei helfen könntet, bin nämlich echt ahnungslos.

Danke jetzt schon ma....

Geschrieben

Zu 1. Du sollst ein Programm schreiben welches von 1 bis zu einem bestimmten Eingabewert alle zahlen ausgibt und deren Summe berechnet.

Also was braucht man dafür? Das Programm soll ganz primär in einer bestimmten Schreitweite (nämlich 1) hochzählen. Also würde sich eine Zählerschleife (for-Schleife) anbieten. Desweiteren brauchst du eine Summenvariable welche die natürlichen Zahlen aufsummieren kann (da würde sich eine Variable vom Typ Integer oder Long anbieten) in der Schleife musst du dann immer den aktuellen Zählerstand auf die Summe draufschlagen und den aktuellen Zähler ausgeben. Wenn die Schleife zu Ende ist gibst du dann einfach noch die Gesamtsumme aus und das wars.

Zu 2.

Auch hier bietet sich wieder eine for-Schleife an. Als mögliche Teiler kommen potentiell alle Zahlen in Frage die kleiner oder gleich der Hälfte der zu teilenden Zahl sind. Also zählt deine Schleife genau von 1 bis zur hälfte. In der Schleife teilst du dann einfach z durch den aktuellen Zählerstand. Als Datentyp solltest du dafür double oder float hernehmen denn diese sind in der Lage Kommazahlen zu verarbeiten. Um zu prüfen ob der Zähler ein möglicher Teiler ist vergleichst (if-Abfrage) du das Ergebnis mit sich selbst nur das du das Ergebnis auf einer Seite der Abfrage auf Integer oder Long castets (alle Nachkommastellen werden abgeschnitten). Wenn also z.B. als Ergebnis 13.23453 rauskam vergleicht dann deine if-Abfrage diesen Wert mit 13 und stellt fest: passt nicht. Wenn 2.0 rauskommt vergleicht deine if-Abfrage 2.0 mit 2 und stellt fest: passt.

Deine Aufgabe jetzt:

Schau dir die Elemente an welche es in Struktogrammen gibt und stell den Programmablauf in einem Struktogramm dar. Programmieren ist im Grunde nichts anderes als einer dummen Maschine schritt für schritt zu sagen, was sie tun soll also geh Schritt für Schritt den logischen Ablauf durch. Wenn du ein korrektes Struktogramm erarbeitet hast ergibt sich der Java-Code daraus nahezu von selbst.

Wie du Java-Programme überhaupt erstellst ist ansonsten klar oder? Also JDK, Entwicklungsumgebung etc?

Geschrieben
Als Datentyp solltest du dafür double oder float hernehmen denn diese sind in der Lage Kommazahlen zu verarbeiten. Um zu prüfen ob der Zähler ein möglicher Teiler ist vergleichst (if-Abfrage) du das Ergebnis mit sich selbst nur das du das Ergebnis auf einer Seite der Abfrage auf Integer oder Long castets (alle Nachkommastellen werden abgeschnitten). Wenn also z.B. als Ergebnis 13.23453 rauskam vergleicht dann deine if-Abfrage diesen Wert mit 13 und stellt fest: passt nicht. Wenn 2.0 rauskommt vergleicht deine if-Abfrage 2.0 mit 2 und stellt fest: passt.

Wenn ich das lese dreht sich mit der Magen um! Dieses Vorgehen ist sprichwörtlich völlig falsch: Ich verweise auf Division mit Rest ? Wikipedia

Vor allem sollte man bevor man so etwas schreibt mal die Repräsentation von floating bzw fixpoint Darstellung von Zahlen beschäftigen

Geschrieben (bearbeitet)
Wenn ich das lese dreht sich mit der Magen um! Dieses Vorgehen ist sprichwörtlich völlig falsch: Ich verweise auf Division mit Rest ? Wikipedia

Vor allem sollte man bevor man so etwas schreibt mal die Repräsentation von floating bzw fixpoint Darstellung von Zahlen beschäftigen

1. Es würde so funktionieren.

2. Klar gibts fälle wo man nicht einfach von Gleitkommazahl auf Ganzzahl casten kann, aber das hat für seine Problemstellung eigentlich keine Relevanz.

3. "Völlig" falsch? Nicht 100% sauber triffts eher.

4. Modulo wäre auch eine Lösung. Hab ich nicht dran gedacht wo ich das geschrieben hab.

5. Ich hatte nicht den Eindruck, dass der Thread-Ersteller über ein breites Basiswissen verfügt, also verzeih mir Aussagen wie "Alle Nachkommastellen werden abgeschnitten".

Bearbeitet von speedi

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...