[Blog] Mein Weg durch Java!

Diskutiere [Blog] Mein Weg durch Java! im Plauderecke Forum; Hallo liebe Community, momentan lerne ich die Programmiersprache Java und bin in unregelmäßigen Abständen hier im Forum, um nach Hilfe zu suchen....

  1. Kennedy
    Kennedy Neues Mitglied
    Hallo liebe Community,

    momentan lerne ich die Programmiersprache Java und bin in unregelmäßigen Abständen hier im Forum, um nach Hilfe zu suchen. Mir wurde schon sehr oft geholfen und dafür möchte ich mich erst einmal bedanken!

    Leider bin ich sehr leicht ablenkbar - sei es Familie, Freunde, Schule - und das lernen verzögert sich. Immerhin kenne ich niemanden aus den 3 Bereichen,
    der sich für's programmieren interessiert. D.h. , dass ich irgendwie einen Weg finden muss, meine freie Zeit dafür zu opfern bzw. mich irgendwie dazu zu motivieren.
    Aus dem Grund möchte ich diesen Thread bzw. Blog erstellen und auf unabsehbare Zeit nutzen. Ich möchte ab sofort jeden Tag mit dem Buch "Grundkurs programmieren in JAVA 8" lernen und
    die täglichen Ergebnisse hier veröffentlichen. Ich möchte vorab klar stellen, dass ich damit keine Aufmerksamkeit erzwingen möchte. Ich meine, ich benutze nicht einmal
    Social Media Plattformen "außer" Tumblr - ohne Account - für die aktuellen News über meine Interessen und wie üblich WhatsApp. Es soll einfach dazu dienen, dass ich
    jeden Tag auf einen Blick sehen kann, was ich erreicht habe, um mich irgendwie zu motivieren (s.o.).
    Falls mein Blog bzw. mein Thread für das Forum nicht in Ordnung ist, dann soll es einfach geschlossen bzw. gelöscht werden.

    Wünsche euch allen noch eine produktive Woche!

    Mit freundlichem Gruß,

    Kennedy
     
  2. DerWissende
    DerWissende Bekanntes Mitglied
    Ich habe noch nicht verstanden was du jetzt lernen willst,
    aber das kommt ja vielleicht noch in nachfolgenden Beiträgen der Weg ist ja das Ziel.
     
    Kennedy gefällt das.
  3. Kennedy
    Kennedy Neues Mitglied
    Datum: 31.07.2018 , Thema: Schleifen

    Aufgabe 1:

    Schreiben Sie ein Java-Programm, das eine int-Zahl einliest ( x > 0, x < 10000) , ihre Quersumme berechnet und die durchgeführte Berechnung sowie den Wert der Quersumme ausgibt.

    Beispiel:
    Positive ganze Zahl eingeben: 2345
    Die Quersumme ergibt sich zu: 5 + 4 + 3 + 2 = 14

    Mein Code:
    Code (Java):
    public class Aufgabe_1{
      public static void main(String[] args){
     
        int z = 0;
        int einstelliger_Bereich = 0;
        int zweistelliger_Bereich = 0;
        int dreistelliger_Bereich = 0;
        int vierstelliger_Bereich = 0;
     
        do {
          z = InOut.readInt("Bitte geben Sie eine Zahl ein, die größer als 0 und kleiner als 10000 ist: ");
        } while ((z == 0 || z < 0) || (z == 10000 || z > 10000));
     
        if (z > 999) {
          vierstelliger_Bereich = z / 1000;
          z -= (vierstelliger_Bereich * 1000);
        } // end of if
        if (z > 99) {
          dreistelliger_Bereich = z / 100;
          z -= (dreistelliger_Bereich * 100);
        } // end of if
        if (z > 9) {
          zweistelliger_Bereich = z / 10;
          z -= (zweistelliger_Bereich * 10);
        } // end of if
        if (z >= 0) {
          einstelliger_Bereich = z / 1;
        } // end of if
     
        int ergebnis = einstelliger_Bereich + zweistelliger_Bereich + dreistelliger_Bereich + vierstelliger_Bereich;
     
        System.out.println("Die Quersumme ergibt sich zu: "+einstelliger_Bereich+" + "+zweistelliger_Bereich+" + "+dreistelliger_Bereich+" + "+vierstelliger_Bereich+" = "+ergebnis);
     
      }
    }    
    Aufgabe 2:
    Ein neuer Science-Fiction-TV-Sender will sein Programmschema nur noch in galaktischer Zeitrechnung angeben. Dazu sollen Sie ein Java-Programm schreiben, das eine Datums- und Uhrzeitangabe in Erdstandardzeit in eine galaktische Sternzeit umrechnet.

    Eine Sternzeit wird als Gleitkommazahl angegeben, wobei die Vorkommastellen die Tageszahl (das Datum) und die Nachkommastellen die galaktischen Milli-Einheiten (die Uhrzeit) angeben. Der Tag 1 in der galaktischen Zeitrechnung entspricht gerade dem 1.1.1111 auf der Erde. Ein Galaxis-Tag hat 1000 Milli-Einheiten und dauert gerade 1440 Erdminuten, also zufälligerweise genau 24 Stunden. Die Sternzeit 5347.789 entspricht somit gerade dem 25.08.1125, 18.57 Uhr Erdstandardzeit.

    In Ihrem Programm müssen Sie zu einer durch die Werte jahr, monat, tag, stunde und minute vorgegebene Erd-Datum- und Erd-Zeit-Angabe zunächst die Anzahl der Tage bestimmen, die seit dem 1.1.1111 bereits vergangen sind. Dabei brauchen Schaltjahre nicht berücksichtigt zu werden. Zu dieser Zahl muss dann der gebrochene Zeit-Anteil addiert werden, der sich ergibt, wenn man die durch die Uhrzeit festgelegten Erdminuten in Bruchteile eines Tages umrechnet und diese auf drei Ziffern nach dem Dezimalpunkt rundet.

    Beispiel:
    Erdzeit 11.11.2011, 11.11 Uhr entspricht der Sternzeit 328815.465

    Mein Code:
    Code (Java):
    import java.text.DecimalFormat;
    public class Aufgabe_2{
      public static void main (String [] args){
       
        DecimalFormat f = new DecimalFormat("#0.000");
       
        int startJahr = 1111;
        int startMonat = 1;
        int startTag = 1;
       
        int jahr = InOut.readInt("Jahr ? ");
        int monat = InOut.readInt("Monat ? ");
        int tag = InOut.readInt("Tag ? ");
        double stunde = InOut.readInt("Stunde ? ");
        double minute = InOut.readInt("Minuten ? ");
       
        int monatTage = 0;
        double gesamtTage;
       
        int jahrTage = (jahr - startJahr) * 365;
        double minuteTage = (stunde * 60 + minute) / 1440;
       
        for (int i = 1;i < monat ;i++ ) {
          if (i == 2) {
            monatTage += 28;
          } // end of if
          else if (i < 8 && i % 2 == 0) {
            monatTage += 30;
          } // end of if
          else if (i > 7 && i % 2 == 0) {
            monatTage += 31;
          } // end of if
          else if (i < 9 && i % 2 != 0) {
            monatTage += 31;
          } // end of if
          else if (i > 8 && i % 2 != 0) {
            monatTage += 30;
          } // end of if
        } // end of for
       
        gesamtTage = jahrTage + monatTage + tag + minuteTage;
       
        System.out.println("\nErdzeit "+tag+"."+monat+"."+jahr+", "+(int)stunde+"."+(int)minute+" Uhr entspricht ->  Sternzeit "+f.format(gesamtTage));
       
      }
    }    
    Aufgabe 3:
    Schreiben Sie ein Programm, das eine positive ganze Zahl einliest, sie in ihre Ziffern zerlegt und die Ziffern in umgekehrter Reihenfolge als Text ausgibt. Verwenden Sie dabei eine while-Schleife und eine switch-Anweisung.

    Beispiel:
    Positive ganze Zahl: 35725
    Zerlegt rueckwaerts: fuenf zwei sieben fuenf drei

    Mein Code:
    Code (Java):
    public class Aufgabe_3 {
      public static void main(String[]args){
     
        int zwischenZahl_1 = 0;
        int zwischenZahl_2 = 0;
        int speicher = 0;
        int rechner_1 = 10;
        int rechner_2 = 1;
       
        int zahl = InOut.readInt("Positive ganze Zahl: ");
       
        while (zahl > rechner_2 || zahl == rechner_2) {
          zwischenZahl_1 = zahl % rechner_1;
          zwischenZahl_2 = (zwischenZahl_1 - speicher) / rechner_2;
         
          switch (zwischenZahl_2) {
            case 0:
              System.out.print("null ");
              break;
            case 1:
              System.out.print("eins ");
              break;
            case 2:
              System.out.print("zwei ");
              break;
            case 3:
              System.out.print("drei ");
              break;
            case 4:
              System.out.print("vier ");
              break;
            case 5:
              System.out.print("fuenf ");
              break;
            case 6:
              System.out.print("sechs ");
              break;
            case 7:
              System.out.print("sieben ");
              break;
            case 8:
              System.out.print("acht ");
              break;
            case 9:
              System.out.print("neun ");
              break;    
            default:
              System.out.println("Bitte neu starten und nur Zahlen eingeben!");
          } // end of switch
          speicher = zwischenZahl_1;
          rechner_1 *= 10;
          rechner_2 *= 10;
        } // end of while
       
      }
    }  

    Aufgabe 4:

    Schreiben Sie ein Programm, das unter Verwendung einer geeigneten Schleife eine ganze Zahl von der Tastatur einliest und deren Vielfache (für die Faktoren 1 bis 10) ausgibt.

    Beispiel:
    Geben Sie eine Zahl ein: 3
    Die Vielfachen: 3 6 9 12 15 18 21 24 27 30

    Mein Code:
    Code (Java):
    public class Aufgabe_4 {
      public static void main(String[]args){
       
        int zahl = InOut.readInt("Geben Sie eine Zahl ein: ");
        int ausgabe = 0;
       
        System.out.print("Die Vielfachen: ");
        for (int i = 1;i <= 10 ;i++ ) {
          ausgabe = i*zahl;
          System.out.print(ausgabe+" ");
        } // end of for
      }
    }
    Aufgabe 5:
    Schreiben Sie ein Programm zur Zinseszinsberechnung. Nach Eingabe des anzulegenden Betrages, des Zinssatzes und der Laufzeit der Geldanlage soll der Wert der Investition nach jedem Jahr ausgegeben werden.

    Beispiel:
    Anzulegender Geldbetrag in Euro: 100
    Jahreszins (z.B. 0.1 fuer 10 Prozent): 0.06
    Laufzeit (in Jahren): 4
    Wert nach 1 Jahren: 106.0
    Wert nach 2 Jahren: 112.36


    Mein Code:
    Code (Java):
    public class Aufgabe_5 {
      public static void main(String[]args){
       
        double geldbetrag = InOut.readDouble("Anzulegender Geldbetrag in Euro: ");
        double jahreszins = InOut.readDouble("Jahreszins (z. B. 0.1 fuer 10 Prozent): ");
        int laufzeit = InOut.readInt("Laufzeit (in Jahren): ");
        double ergebnis = 0;
       
        for (int i = 1; i <= laufzeit ;i++ ) {
          ergebnis = geldbetrag + (geldbetrag * jahreszins);
          System.out.println("Wert nach "+i+" Jahren: "+ergebnis);
          geldbetrag = ergebnis;
        } // end of for
       
       
      }
    }
     
  4. DerWissende
    DerWissende Bekanntes Mitglied
    Was sollen denn diese schwachsinnigen // end of if s nach den Schleifen? Du musst zugeben dass der Lesefluss dadurch gehindert wird....
    Ansonsten für heute schonmal eine Sonne :D
     
  5. Kennedy
    Kennedy Neues Mitglied
    Ich arbeite mit dem Java-Editor und wenn ich "if" oder "while" o.ä. eintippe, dann erstellt der Editor automatisch Blöcke und die Kommentare mit "end". Hab die Kommentare total übersehen :D
    Morgen pass ich auf! :)
     
  6. DerWissende
    DerWissende Bekanntes Mitglied
    Aber der Java Editor ist immerhin keine schlechte Wahl!
     
    Kennedy gefällt das.
  7. Kennedy
    Kennedy Neues Mitglied
    Datum: 01.08.2018 , Thema: Schleifen (Teil 2)

    Aufgabe 1:

    Programmieren Sie ein Zahlenraten-Spiel. Im ersten Schritt soll der Benutzer bzw.
    die Benutzerin begrüßt und kurz über die Regeln des Spiels informiert werden.
    Danach soll eine Zufallszahl zwischen 0 und 100 generiert werden. Der Benutzer
    bzw. die Benutzerin des Programms soll nun versuchen, diese Zahl zu erraten.
    Programmieren Sie dazu eine Schleife, in der in jedem Durchlauf jeweils darüber informiert wird, um den wievielten Rateversuch es sich handelt, ein Rateversuch eingegeben werden kann und darüber informiert wird, ob die geratene Zahl zu groß, zu klein oder korrekt geraten ist.

    Beispiel:
    Willkommen beim Zahlenraten.
    Ich denke mir eine Zahl zwischen 1 und 100. Rate diese Zahl!
    1. Versuch: 50
    Meine Zahl ist kleiner!
    2. Versuch: 25
    Meine Zahl ist kleiner!
    3. Versuch: 12
    Du hast meine Zahl beim 3. Versuch erraten!

    Mein Code:
    Code (Java):
    public class Zahlenraten{
      public static void main(String [] args){
        /*
        Alternative: import java.util.Random;
                     ---------------------------------------
                     Random generator = new Random();
                     int zufaellig = generator.nextInt(101);
        */

       
        int zufaellig = (int) (Math.random()*100);
        int eingabe;
        int zaehler = 1;
       
        System.out.println("Willkommen beim Zahlenraten!\nIch denke mir eine Zahl zwischen 1 und 100. Rate diese Zahl!");
       
        while (true) {
          eingabe = InOut.readInt(zaehler+". Versuch: ");
         
          if (eingabe == zufaellig) {
            System.out.println("Du hast meine Zahl beim "+zaehler+". Versuch erraten!");
            break;
          }
          else if (eingabe < zufaellig) {
            System.out.println("Meine Zahl ist groeßer!");
          }
          else if (eingabe > zufaellig) {
            System.out.println("Meine Zahl ist kleiner!");
          }
         
          zaehler++;
        }
       
       
      }
    }
    Aufgabe 2:
    Schreiben Sie ein Programm, das einen Weihnachtsbaum mit Hilfe von for-Schleifen zeichnet. Lesen Sie die gewünschte Höhe des Baumes von der Tastatur ein.

    Beispiel:
    Anzahl der Zeilen: 5
    _____*
    ____***
    ___*****
    __*******
    _*********
    _____I

    Mein Code:
    Code (Java):
    public class Weihnachtsbaum{
      public static void main(String[]args){
       
        int zeilen = InOut.readInt("Anzahl der Zeilen: ");
        int sternchen = 1;
        int leer = zeilen + 2;
        int stamm = zeilen + 2;
       
        for (int i = 1;i <= zeilen ;i++ ) {
          for (int j = 1;j <= leer ;j++ ) {
            System.out.print(" ");
          }
          for (int k = 1; k <= sternchen ;k++ ) {
            System.out.print("*");
          }
          System.out.println("");
          sternchen += 2;
          leer--;
        }
        for (int l = 1;l <= stamm  ;l++ ) {
          System.out.print(" ");
        }
        System.out.println("I");
      }
    }

    Aufgabe 3:
    Zwei verschiedene natürliche Zahlen a und b heißen befreundet, wenn die Summe
    der (von a verschiedenen) Teiler von a gleich b ist und die Summe der (von b verschiedenen) Teiler von b gleich a ist. Schreiben Sie ein Java-Programm, das jeweils zwei Zahlen einliest und entscheidet, ob diese miteinander befreundet sind. Arbeiten Sie mit einer geeigneten Schleife, in der alle Teiler einer Zahl bestimmt und aufsummiert werden.

    Beispiel:
    (a, b) = (220, 284), denn a = 220 hat die Teiler 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 (und 220 = a), und es gilt 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284 = b.
    Weiterhin hat b = 284 die Teiler 1, 2, 4, 71, 142 (und 284 = b), und es gilt 1 + 2 + 4 + 71 + 142 = 220 = a.

    Erste Zahl : 220
    Zweite Zahl : 284
    Die beiden Zahlen sind miteinander befreundet!
    Erste Zahl : 10744
    Zweite Zahl : 10856
    Die beiden Zahlen sind miteinander befreundet!

    Mein Code:
    Code (Java):
    public class Befreundet{
      public static void main(String[]args){
       
        int a = InOut.readInt("Erste Zahl\t: ");
        int b = InOut.readInt("Zweite Zahl\t: ");
        int summe_a = 0;
        int summe_b = 0;
       
        for (int i = 1;i < a ;i++ ) {
          if (a % i == 0) {
            summe_a += i;
          }
        }
        for (int j = 1;j < b ;j++ ) {
          if (b % j == 0) {
            summe_b += j;
          }
        }
        if (summe_a == b && summe_b == a) {
          System.out.println("Die beiden Zahlen sind miteinander befreundet!");
        }
        else {
          System.out.println("Die beiden Zahlen sind nicht befreundet!");
        }
      }
    }
    Aufgabe 4:
    Schreiben Sie ein Java-Programm, das zu einem beliebigen Datum den zugehörigen Wochentag ausgibt. Ein Datum soll jeweils durch drei ganzzahlige Werte t (Tag), m (Monat) und j (Jahr) vorgegeben sein. Schreiben Sie Ihr Programm unter Berücksichtigung der folgenden Teilschritte:
    a) Vereinbaren Sie drei Variablen t, m und j vom Typ int, und lesen Sie für diese Werte ein.
    b) Berechnen Sie den Wochentag h nach folgendem Algorithmus (% bezeichnet dabei den Java-Rest-Operator):
    1. Falls m ≤ 2 ist, erhöhe m um 10 und erniedrige j um 1, andernfalls erniedrige m um 2.
    2. Berechne die ganzzahligenWerte c = j/100 und y = j % 100.
    3. Berechne den ganzzahligenWert h = (((26 · m − 2)/10) + t + y + y/4 + c/4 − 2 · c) % 7.
    4. Falls h < 0 sein sollte, erhöhe h um 7.
    Anschließend hat h einen Wert zwischen 0 und 6, wobei die Werte 0, 1, . . . , 6 den Tagen Sonntag, Montag, . . . , Samstag entsprechen.

    Beispiel:
    Geben Sie das Ergebnis in der folgenden Form aus: Der 24.12.2001 ist ein Montag.

    Mein Code:
    Code (Java):
    public class Wochentag{
      public static void main(String []args){
       
        int tag = InOut.readInt("Tag? ");
        int monat = InOut.readInt("Monat? ");
        int jahr = InOut.readInt("Jahr? ");
       
        if (monat <= 2) {
          monat += 10;
          jahr -= 1;
        }
        else {
          monat -= 2;
        }
       
        int ganzzahlen = jahr / 100;
        int rest = jahr % 100;
        int wochentag = (((26 * monat - 2) / 10) + tag + rest + rest / 4 + ganzzahlen / 4 - 2 * ganzzahlen ) % 7;
       
        if (wochentag < 0) {
          wochentag += 7;
        }
       
        switch (wochentag) {
          case 0:
            System.out.println("\nDer "+tag+"."+monat+"."+jahr+" ist ein Sonntag.");
            break;
          case 1:
            System.out.println("\nDer "+tag+"."+monat+"."+jahr+" ist ein Montag.");
            break;
          case 2:
            System.out.println("\nDer "+tag+"."+monat+"."+jahr+" ist ein Dienstag.");
            break;
          case 3:
            System.out.println("\nDer "+tag+"."+monat+"."+jahr+" ist ein Mittwoch.");
            break;
          case 4:
            System.out.println("\nDer "+tag+"."+monat+"."+jahr+" ist ein Donnerstag.");
            break;
          case 5:
            System.out.println("\nDer "+tag+"."+monat+"."+jahr+" ist ein Freitag.");
            break;
          case 6:
            System.out.println("\nDer "+tag+"."+monat+"."+jahr+" ist ein Samstag.");
            break;
          default:
            System.out.println("\nDu hast was falsch gemacht!");
        }  
      }
    }
    Aufgabe 5:
    Der nachfolgende Algorithmus berechnet das Datum des Ostersonntags im Jahr j (gültig vom Jahr 1 bis zum Jahr 8202). Es bezeichnen / und % die üblichen ganzzahligen
    Divisionsoperatoren von Java.
    1. Berechne a = j % 19, b = j % 4 und c = j % 7.
    2. Bestimme m = (8 · (j/100) + 13)/25 − 2, s = j/100 − j/400 − 2,
    m = (15 + s − m) % 30, n = (6 + s) % 7.
    3. Bestimme d und e wie folgt:
    (a) Setze d = (m + 19 · a) % 30.
    (b) Falls d = 29 ist, setze d = 28,
    andernfalls: falls d = 28 und a ≥ 11 ist, setze d = 27.
    (c) Setze e = (2 · b + 4 · c + 6 · d + n) % 7.
    4. Nun können der tag und der monat bestimmt werden:
    (a) tag = 21 + d + e + 1
    (b) Falls tag > 31 ist, setze tag = tag % 31 und monat = 4, andernfalls setze monat = 3.
    Schreiben Sie ein Java-Programm, das den obigen Algorithmus durchführt und das Datum des Ostersonntags für ein einzulesendes Jahr berechnet und ausgibt.

    Beispiel:
    Im Jahr 2001 ist der Ostersonntag am 15.4.

    Mein Code:
    Code (Java):
    public class Ostersonntag{
      public static void main(String [] args){
       
        int jahr;
       
        do {
          jahr = InOut.readInt("Jahr? ");
        } while (jahr < 1 || jahr > 8202);
       
        int a = jahr % 19;
        int b = jahr % 4;
        int c = jahr % 7;
        int m = (8 * (jahr / 100) + 13) / 25 - 2 ;
        int s = jahr / 100 - jahr / 400 - 2;
       
        m = (15 + s - m) % 30;
       
        int n = (6 + s) % 7;
        int d = (m + 19 * a) % 30;
       
        if (d == 29) {
          d = 28;
        }
        if (d == 28 && a >= 11) {
          d = 27;
        }
       
        int e = (2 * b + 4 * c + 6 * d + n) % 7;
        int tag = 21 + d + e + 1;
        int monat;
       
        if (tag > 31) {
          tag %= 31;
          monat = 4;
        }
        else {
          monat = 3;
        }
       
        System.out.println("\nIm Jahr "+jahr+" ist der Ostersonntag am "+tag+"."+monat+".");
       
      }
    }
     
Die Seite wird geladen...

[Blog] Mein Weg durch Java! - Ähnliche Themen

Rekursion Warum bricht meine Funktion nicht ab
Rekursion Warum bricht meine Funktion nicht ab im Forum Java Basics - Anfänger-Themen
Meine Java "Wahrsagerin"
Meine Java "Wahrsagerin" im Forum Java Basics - Anfänger-Themen
Wo ist mein Fehler in der Methode DRINGEND
Wo ist mein Fehler in der Methode DRINGEND im Forum Allgemeine Java-Themen
Meine JButtons werden nicht angezeigt bitte helft mir
Meine JButtons werden nicht angezeigt bitte helft mir im Forum AWT, Swing, JavaFX & SWT
Brauche Hilfe bei meinem Programm !
Brauche Hilfe bei meinem Programm ! im Forum Datenbankprogrammierung
Thema: [Blog] Mein Weg durch Java!