Added new Project to Git

master
Nico Baldauf 2024-05-02 12:52:10 +02:00
commit 674247094f
8 changed files with 200 additions and 0 deletions

10
.classpath 100644
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

17
.project 100644
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>PflichtUebung2</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

4
bin/.gitignore vendored 100644
View File

@ -0,0 +1,4 @@
/CaesarVerschluesselung.class
/DezimalZuRoemisch.class
/Primzahlen.class
/SiebDesEratosthenes.class

View File

@ -0,0 +1,42 @@
import java.util.Scanner;
// Programm zur Verschlüsselung von Zeichenketten mit Caesar-Chiffre
public class CaesarVerschluesselung {
public static void main(String[] args) {
// Für die Eingabe von der Tastatur
Scanner in = new Scanner(System.in);
// Anleitung
System.out.println("Eingabe einer Zeichenkette: ");
// Zeichenkette einlesen
String eingabe = in.nextLine();
// erstellt neue Zeichenkette & initialisiert sie mit einem leeren Wert
String verschluesselt = "";
// Schleifenbedingung & Variable deklarieren und um 1 hochzählen
for (int zaehler = 0; zaehler < eingabe.length(); zaehler++) {
char aktuellesZeichen = eingabe.charAt(zaehler);
// Überprüfen, ob das Zeichen ein Buchstabe ist (Groß- oder Kleinbuchstabe)
if ((aktuellesZeichen >= 'A' && aktuellesZeichen <= 'Z')
|| (aktuellesZeichen >= 'a' && aktuellesZeichen <= 'z')) {
char verschluesseltesZeichen;
// Verschlüsselung der Buchstaben
if (aktuellesZeichen >= 'a') {
verschluesseltesZeichen = (char) (((aktuellesZeichen - 'a' + 1) % 26) + 'a');
} else {
verschluesseltesZeichen = (char) (((aktuellesZeichen - 'A' + 1) % 26) + 'A');
}
verschluesselt += verschluesseltesZeichen;
} else {
// Nicht-Buchstaben bleiben unverändert
verschluesselt += aktuellesZeichen;
}
}
// Ausgabe der Ergebnisse
System.out.println("Caesar-Chiffre: " + verschluesselt);
in.close();
}
}

View File

@ -0,0 +1,40 @@
import java.util.Scanner;
// Programm zur Umwandlung von Dezimalzahlen zu römischen Zahlen
public class DezimalZuRoemisch {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Bitte geben Sie eine Dezimalzahl ein: ");
int dezimal = in.nextInt();
in.close();
// Schleifenbedingung, Wertebereich der für das Beenden des Programms sorgt
if (dezimal < 1 || dezimal > 3999) {
System.out.println("Ungültige Eingabe. Die Dezimalzahl muss im Bereich von 1 bis 3999 liegen.");
} else {
// Speichern der ursprünglichen Dezimalzahl
int originalDezimal = dezimal;
// Textbehälter
String roman = "";
int[] dezimalwerte = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };
String[] roemischeSymbole = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };
// Prüfung ob die Schleifenbedingung erfüllt wird
// Umwandlung der Dezimalzahl zur größtmöglichen römischen Zahl
for (int indexWert = 0; indexWert < dezimalwerte.length; indexWert++) {
while (dezimal >= dezimalwerte[indexWert]) {
// Methode, um dem Behälter Werte hinzuzufügen
roman += (roemischeSymbole[indexWert]);
dezimal -= dezimalwerte[indexWert];
}
}
// Hier wird eine Methode aufgerufen, um den gesamten Inhalt des Textbehälter
// als normaler
// String zurückzugeben
System.out.println("Die Dezimalzahl " + originalDezimal + " in römischer Darstellung lautet: " + roman);
}
}
}

View File

@ -0,0 +1,39 @@
import java.util.Scanner;
// Programm zur Prüfung auf Primzahleneigenschaft
public class Primzahlen {
public static void main(String[] args) {
// Für die Eingabe von der Tastatur
Scanner in = new Scanner(System.in);
// Anleitung
System.out.println("Das Programm gibt alle Primzahlen bis zur der eingegebenen Zahl aus.");
System.out.println("Geben Sie eine potenzielle Primzahl ein:");
// Eingabe und Int-Werte einlesen
int eingabe = in.nextInt();
// kopfgesteuerte Schleife, Variablen deklarieren,
// Schleifenbedingung, Variable um 1 erhöhen
// Jede Zahl, bis zur eingegebenen Zahl wird auf die Primzahleigenschaft überprüft
for (int potenziellePrimzahl = 2; potenziellePrimzahl <= eingabe; potenziellePrimzahl++) {
int potenziellerTeiler = 2;
// Schleifenbedingung, Berechnung/Prüfung erfolgt mit Quadratwurzel der eingegebenen Zahl
// dadurch verringert sich die Anzahl der Prüfungen erheblich
while (potenziellerTeiler <= Math.sqrt(potenziellePrimzahl)
&& potenziellePrimzahl % potenziellerTeiler != 0) {
// Variable um 1 erhöhen
potenziellerTeiler++;
}
// Prüfung mit Quadratwurzel, ob ein Teiler gefunden wurde der
// kleiner oder gleich der Quadratwurzel ist, wenn nicht, dann Primzahl
if (potenziellerTeiler > Math.sqrt(potenziellePrimzahl)) {
// Ausgabe der Ergebnisse
System.out.println(potenziellePrimzahl + " ist eine Primzahl");
}
in.close();
}
}
}

View File

@ -0,0 +1,46 @@
import java.util.Scanner;
// Programm zur Prüfung auf Primzahleigenschaft mithilfe des Sieb des Eratosthenes
public class SiebDesEratosthenes {
public static void main(String[] args) {
// Für die Eingabe von der Tastatur
Scanner in = new Scanner(System.in);
// Anleitung
System.out.println("Geben Sie eine maximale Zahl n ein:");
// Eingabe und Int-Wert einlesen
int maxZahl = in.nextInt();
// Array wird erstellt
int[] istPrimzahl = new int[maxZahl + 1];
// Initialisierung des Arrays, Variablen deklarieren
for (int pruefZahl = 2; pruefZahl <= maxZahl; pruefZahl++) {
istPrimzahl[pruefZahl] = 1;
}
// Schleifenbedingung, Sieb des Eratosthenes wird verwendet,
// um alle Primzahlen bis zur maxZahl zu identifizieren und zu makieren
// Hochzählen der Prüfzahl um 1
for (int pruefZahl = 2; pruefZahl <= maxZahl; pruefZahl++) {
if (istPrimzahl[pruefZahl] == 1) {
int multiplikator = pruefZahl + pruefZahl; // Beginne bei pruefZahl + pruefZahl statt bei pruefZahl*2
//Schleifenbedingung
while (multiplikator <= maxZahl) {
istPrimzahl[multiplikator] = 0;
multiplikator += pruefZahl; // Erhöhe um pruefZahl
}
}
}
// Ausgabe der Ergebnisse
System.out.println("Die Primzahlen bis zur Zahl " + maxZahl + " sind:");
// Schleifenbedingung
for (int pruefZahl = 2; pruefZahl <= maxZahl; pruefZahl++) {
if (istPrimzahl[pruefZahl] == 1) {
System.out.print(pruefZahl + " ");
}
}
in.close();
}
}