Anzeige

Java - Quadratzahlen mit Math.pow


#1
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:
public class Quadratzahlen_1 {
 
  public static void main(String[] args) {
   
    for (int i=1;i<10;i++) {
      System.out.println(i*i);
     
    }
   
  }

}
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:
import java.util.Scanner;

public class Quadratzahlen_1 {
 
  public static void main(String[] args) {
   
    Scanner s = new Scanner(System.in);
    System.out.println("Willkommen beim Quadratzahlenrechner.");
    System.out.println("Bitte geben Sie die Zahl ein bei der die Quadrierung starten soll.");
    eingabeMin = s.next Line();
    System.out.println("Bitte geben Sie die Zahl ein wohin maximal quadriert werden soll.");
    eingabeMax = s.nextLine();
Kann mir jemand bei dieser Aufgabe helfen?:(
 
#2
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:
public class Quadratzahlen_1 {
 
  public static void main(String[] args) {
  
    for (int i=1;i<10;i++) {
      System.out.println(i*i);
    
    }
  
  }

}
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:
import java.util.Scanner;

public class Quadratzahlen_1 {
 
  public static void main(String[] args) {
  
    Scanner s = new Scanner(System.in);
    System.out.println("Willkommen beim Quadratzahlenrechner.");
    System.out.println("Bitte geben Sie die Zahl ein bei der die Quadrierung starten soll.");
    eingabeMin = s.next Line();
    System.out.println("Bitte geben Sie die Zahl ein wohin maximal quadriert werden soll.");
    eingabeMax = s.nextLine();
Kann mir jemand bei dieser Aufgabe helfen?:(

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

Code:
import java.util.Scanner;

public class Quadratzahlen_1 {
 
  public static void main(String[] args) {
   
    Scanner s = new Scanner(System.in);
    String eingabeMin;
    String eingabeMax;
   
    System.out.println("Willkommen beim Quadratzahlenrechner.");
    System.out.println("Bitte geben Sie die Zahl ein bei der die Quadrierung starten soll.");
    eingabeMin = s.next Line();
    System.out.println("Bitte geben Sie die Zahl ein wohin maximal quadriert werden soll.");
    eingabeMax = s.nextLine();
 
#3
Hi

das ist schon fast fertig:
Code:
for (int i=1;i<10;i++)
noch ändern zu
Code:
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.
 
#4
@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?
 
#9
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
@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.
 
Anzeige
Anzeige