1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Java - Quadratzahlen mit Math.pow

Dieses Thema im Forum "Java Grundlagen" wurde erstellt von foxmusic, 10. April 2018.

  1. foxmusic

    foxmusic Mitglied

    Hallo liebe Leute,

    ich habe gehört, dass man hier als ,,Java Noob" total richtig ist und deswegen habe auch ich eine Frage.

    Erstmal zu meinem Wissensstand:

    In der Schule haben wir uns bisher in Informatik mit den Methoden (auch Methoden miteinander verknüpfen), If-Anweisungen, Caesar und ASCII Verschlüsselung, verschiedenen Datentypen (String, char, float, double, int) und den for-Schleifen auseinander gesetzt.

    Nun habe ich die Aufgabe einen Quadratzahlenrechner, der alle Zahlen von 1 bis 10 quadrieren soll, zu programmieren.

    Dieser sieht wie folgt aus (eigentlich sollten wir diesen mit Math.pow machen, aber ich hab mir das ein bisschen vereinfacht :):

    Code (Text):
    1. public class Quadratzahlen_1 {
    2.  
    3.   public static void main(String[] args) {
    4.    
    5.     for (int i=1;i<10;i++) {
    6.       System.out.println(i*i);
    7.      
    8.     }
    9.    
    10.   }
    11.  
    12. }
    Der ist ja auch richtig und gibt alle Zahlen von 1 bis 10 quadriert aus.

    Jetzt soll ich das Programm allerdings erweitern, sodass man eine Zahl eingibt und dann eine zweite Zahl, die aber größer als die erste sein soll. Dabei soll man eine untere und obere Grenze frei wählen können, also wie groß die Zahl mindestens sein soll und wie groß sie maximal sein darf. Das muss dann ausgegeben werden.

    Ich habe bisher keine Idee wie ich das machen kann. Also man fragt nach zwei Zahlen und speichert diese, das sähe dann so aus:

    Code (Text):
    1. import java.util.Scanner;
    2.  
    3. public class Quadratzahlen_1 {
    4.  
    5.   public static void main(String[] args) {
    6.    
    7.     Scanner s = new Scanner(System.in);
    8.     System.out.println("Willkommen beim Quadratzahlenrechner.");
    9.     System.out.println("Bitte geben Sie die Zahl ein bei der die Quadrierung starten soll.");
    10.     eingabeMin = s.next Line();
    11.     System.out.println("Bitte geben Sie die Zahl ein wohin maximal quadriert werden soll.");
    12.     eingabeMax = s.nextLine();
    Kann mir jemand bei dieser Aufgabe helfen?:(
     
  2. foxmusic

    foxmusic Mitglied


    Ich habe etwas vergessen beim letzten Code. Der müsste so aussehen:

    Code (Text):
    1. import java.util.Scanner;
    2.  
    3. public class Quadratzahlen_1 {
    4.  
    5.   public static void main(String[] args) {
    6.    
    7.     Scanner s = new Scanner(System.in);
    8.     String eingabeMin;
    9.     String eingabeMax;
    10.    
    11.     System.out.println("Willkommen beim Quadratzahlenrechner.");
    12.     System.out.println("Bitte geben Sie die Zahl ein bei der die Quadrierung starten soll.");
    13.     eingabeMin = s.next Line();
    14.     System.out.println("Bitte geben Sie die Zahl ein wohin maximal quadriert werden soll.");
    15.     eingabeMax = s.nextLine();
     
  3. sheel

    sheel I love Asm Administrator

    Hi

    das ist schon fast fertig:
    Code (Text):
    1. for (int i=1;i<10;i++)
    noch ändern zu
    Code (Text):
    1. for (int i = eingabeMin; i < eingabeMax; i++)
    ...
    ... und nur nebenbei:
    Verschlüsselung/Caesar und ASCII sind verschiedene Sachen.

    Verschlüsselung von Daten mit einem "Key" (auch irgendwelche Daten, je nach Verfahren mit bestimmten Anforderungen daran) sorgt dafür, dass Leute ohne Key den verschlüsselten Inhalt nicht mehr lesen können. Wie man Daten mit einem Key verschlüsseln/entschlüsseln kann ist dabei nicht (unbedingt) geheim, nur der Inhalt vom Key selber ist geheim.
    Die Caesar-Chiffre (die evt. von einem Berater von Gaius Julis Caesar erfunden wurde) ist so ein Verfahren, auch wenn es nach heutigen Standards unbrauchbar schwach ist.

    ASCII (und UTF8 usw.usw.) haben mit Geheimhaltung nichts zu tun. ... Da Computer Daten als Bytes/Bits speichern, und sonst nichts, muss man Wege finden um Zahlen, Texte, Bilder, Videos usw. in Bytes darzustellen.
    Bei Zahlen ist es mit dem Binärsystem relativ trivial, 00000010 binär ist eben die Zahl 2 (ganz so einfach ist es dann doch wieder nicht wenn man Zahlen hat die mehr als ein Byte brauchen, negative Zahlen, und Kommazahlen auch).
    Bei zB. Bildern ist die übliche Vorgehensweise, pro Pixel Farbanteile zu speichern, zB. je 8 Bit (=Zahl 0-255) für Rot/Grün/Blau (gibt auch andere Farbschemas). 255 255 255 wäre dann weiß, 255 0 0 reines Rot, 10 10 10 ein dunkles Grau usw. Und weil Bidler und vor allem Videos so viel Speicher brauchen wurden Verfahren wie Jpg usw.usw. erfunden, die das platzsparender machen können (in dem man untersucht hat, welche Infos man weglassen kann, ohne dass das menschliche Auge einen nennenswerten Unterschied merkt).
    Und für reinen Text könnte man einfach Bytewerte/Zahlen (da man das ja schon gegenseitig umwandeln kann) zu Buchstaben zuordnen. zB. A ist 1, B ist 2 usw. Ein paar Nummern braucht man auch für Satzeichen usw. . ... Der ASCII-Code ist nichts anderes wie so eine Zuordnung. Im ASCII wäre das große A Nummer 65 (aus historischen Gründen), B 66 usw., das kleine a ist 97, b 98 ... und es gibt noch Satzzeichen und einiges anderes Zeug. Auch für solches Textmapping gibts übrigens eine ganze Reihe von verschiedenen Nummernschemas, ASCII ist nur eins von vielen. ASCII hat zB. auch keine Möglichkeit für deutsche äöüß, weil die dort einfach keine Nummer haben - heute am wichtigsten ist UTF8, wo alle gebräuchlichen Sprachen der Welt versorgt sind.
     
    Technipion gefällt das.
  4. foxmusic

    foxmusic Mitglied

    @sheel Danke für deine Antwort! Wie gesagt, ich kenne mich nicht so sehr aus mit der Verschlüsselung, weil ich erst neu bin, aber ich weiß, dass ASCII ein Code ist. Also ein Buchstabe wird in einen Code umbewandelt. Danke für deine Erklärung.

    Kannst du mir noch einen Tipp geben, wie ich diese Aufgabe mit dem Quadratzahlenrechner lösen kann?
     
  5. sheel

    sheel I love Asm Administrator

    Was fehlt denn mit der angepassten Schleife noch?
     
  6. HonniCilest

    HonniCilest Erfahrenes Mitglied

  7. foxmusic

    foxmusic Mitglied

    @HonniCilest Ich hätte die Eingabe dann in einen int. umgewandelt.
     
  8. foxmusic

    foxmusic Mitglied

    @sheel Mir fehlt noch die Grenze für die Quadrierung, die der Benutzer frei wählen darf. Macht man das mit einem Infinity Tag?
     
  9. sheel

    sheel I love Asm Administrator

    Wie man nach Unter/obergrenze fragt hast du doch im ersten Beitrag schon selbst geschrieben... (ohne der int-Unwandlung)
    Und was ist ein "Infinity tag"?
     
  10. foxmusic

    foxmusic Mitglied

    @sheel Gut. Mit Infinity Tag meinte ich einen unendlichen Wert, denn der benutzer kann ja schließlich die Grenze frei wählen. Deswegen dachte ich, dass die Grenze unendlich sein muss und da die Tags, die ich bisher in Java kennengelernt habe, auf Englisch waren, dachte ich bei Unendlichkeit an Infinity.
     
Die Seite wird geladen...