www.plusplanet.de
Schulinfos von F. Töns


03.06.2022
Gedanken zur Graphentheorie
20220603_tsp_graphentheorie.jpg.output.jpg

01.06.2022
Städte mit IDs
ID:A1 Name: Aachen Koordinaten: 92, 449
ID:A2 Name: Augsburg Koordinaten: 339, 649
ID:B1 Name: Bremen Koordinaten: 235, 263
ID:B2 Name: Braunschweig Koordinaten: 318, 337
ID:B3 Name: Bonn Koordinaten: 140, 456
ID:B4 Name: Bremerhaven Koordinaten: 224, 227
ID:B5 Name: Berlin Koordinaten: 460, 312
ID:B6 Name: Bamberg Koordinaten: 337, 525
ID:C1 Name: Cottbus Koordinaten: 506, 369
ID:C2 Name: Chemniz Koordinaten: 441, 446
ID:D1 Name: Dessau Koordinaten: 404, 365
ID:D2 Name: Dortmund Koordinaten: 165, 393
ID:D3 Name: Duesseldorf Koordinaten: 126, 414
ID:D4 Name: Dresden Koordinaten: 478, 428
ID:D5 Name: Duisburg Koordinaten: 127, 395
ID:E1 Name: Erfurt Koordinaten: 342, 436
ID:E2 Name: Emden Koordinaten: 156, 242
ID:E3 Name: Essen Koordinaten: 145, 395
ID:F1 Name: Flensburg Koordinaten: 263, 131
ID:F2 Name: Frankfurt am Main Koordinaten: 220, 509
ID:F3 Name: Freiburg Koordinaten: 177, 678
ID:G1 Name: Göttingen Koordinaten: 287, 393
ID:G2 Name: Garmisch Partenkirchen Koordinaten: 350, 718
ID:G3 Name: Görlitz Koordinaten: 539, 417
ID:H1 Name: Hamburg Koordinaten: 293, 227
ID:H2 Name: Hannover Koordinaten: 279, 325
ID:H3 Name: Halle Koordinaten: 390, 396
ID:H4 Name: Hof Koordinaten: 388, 491
ID:H5 Name: Heidelberg Koordinaten: 221, 565
ID:J1 Name: Jena Koordinaten: 371, 441
ID:K1 Name: Kiel Koordinaten: 298, 166
ID:K2 Name: Koeln Koordinaten: 136, 436
ID:K3 Name: Kassel Koordinaten: 264, 412
ID:K4 Name: Koblenz Koordinaten: 167, 486
ID:K5 Name: Konstanz Koordinaten: 244, 704
ID:L1 Name: Leipzig Koordinaten: 411, 406
ID:L2 Name: Lübeck Koordinaten: 324, 202
ID:M1 Name: Magdeburg Koordinaten: 371, 343
ID:M2 Name: Muenster Koordinaten: 175, 355
ID:M3 Name: Mainz Koordinaten: 200, 516
ID:M4 Name: Muenchen Koordinaten: 370, 669
ID:M5 Name: Mannheim Koordinaten: 209, 556
ID:N1 Name: Nuernberg Koordinaten: 347, 563
ID:O1 Name: Osnabrueck Koordinaten: 195, 332
ID:O2 Name: Oldenburg Koordinaten: 206, 261
ID:P1 Name: Potsdam Koordinaten: 440, 319
ID:P2 Name: Passau Koordinaten: 475, 626
ID:R1 Name: Rostock Koordinaten: 393, 187
ID:R2 Name: Regensburg Koordinaten: 402, 597
ID:S1 Name: Schwerin Koordinaten: 357, 223
ID:S2 Name: Stuttgart Koordinaten: 247, 614
ID:S3 Name: Saarbrücken Koordinaten: 133, 574
ID:S4 Name: Stralsund Koordinaten: 436, 166
ID:U1 Name: Ulm Koordinaten: 289, 645
ID:W1 Name: Wiesbaden Koordinaten: 198, 509
ID:W2 Name: Wuerzburg Koordinaten: 288, 535
ID:W3 Name: Wilhelmshaven Koordinaten: 200, 228
ID:W4 Name: Wittenberg Koordinaten: 378, 274

Karte:
Bild "Informatik_EF_Abi2024:germany-map.gif"


25.05.2022


Sortierverfahren und Komplexität von Algorithmen

Wir haben uns folgendes klargemacht:
1. Es gibt unterschiedliche Möglichkeiten, eine Menge von Objekten automatisch zu sortieren. Dazu gehört:
1a: Insertion-Sort.

Funktionsweise:
Beispiel: alphabetische Sortierung einer Wortliste.
Man beginnt mit einem ersten Wort. Dann schaut man sich das zweite Wort an und stellt fest, dass man dies entsprechend vor oder nach dem ersten Wort einsortiert. Dann hat man bereits eine "sortierte Liste" bestehend aus 2 Wörtern. Man nimmt dann wiederum das nächste "unsortierte Wort" und fügt ("insert") es in die Liste der bereits sortierten Worte ein. Man fährt fort, bis die "unsortierte Liste" leer ist.

1b: Bubble-Sort.
Funktionsweise:
Man vergleicht erstes und zweites Wort und tauscht ggf..
Nächster Vergleich: 2. mit 3. Wort
Nächster Vergleich: 3. mit 4. Wort
.... bis man ganz durch ist. Dann steht das alphabetisch letzte Wort bereits an der richtigen Stelle.
Dieser Vorgang muss so oft wiederholt werden, wie es Elemente (-1) in der Wortliste gibt.

2. Anzahl der Vergleiche
Bei Bubble-Sort war es einfach, die Anzahl der Vergleiche zu zählen. Beispielsweise konnten 10 Elemente mit 45 Vergleichen sortiert werden. Bei 20 Elementen benötigt man schon 190 Vergleiche. Bei n Elementen benötigt man ½·((n-1)² + (n-1)) = ½·n² - ½·n Vergleiche.

3. Akinator
Wir haben uns den "Akinator" angesehen, der durch mehrmaliges Fragen eine Person aus "deinen Gedanken erraten" kann. Angenommen (Optimalfall!), jede Frage teilt die Menge der noch verbleibenden Personen in zwei gleichgroße Teile (wovon nur noch ein Teil, also die Hälfte, für die nächste Frage relevant ist). Dann benötigt man bei 8 Personen 3 Fragen. Bei 32 Personen benötigt man 5 Fragen (Denn 2 hoch 5 = 32 und log2(32) = 5) und bei n Personen benötigt man Aufrunden(log2(n)) Fragen.

4. Komplexitätsbetrachtungen:
Beim Bubble-Sort mit n Elementen kommt man auf folgende Formel:
    AnzVergleiche(n) = ½·n² - ½·n
Beim Akinator mit n Personen in der Datenbank kommt man auf die Formel:
    AnzFragen(n) = Aufrunden(log2 (n))
Beim Travelling-Salesman-Problem mit n Städten kommt man auf die Formel:
    AnzVergleichsstrecken(n) = (n-1)!
    
Das n in den obigen Formeln heißt "Problemgröße".
Da die sogenannte "binäre Suche" (z.B. im Telefonbuch) mit jedem Schritt die Menge der zu untersuchenden Namen halbiert, gilt hier die gleiche Formel wie beim Akinator. Man könnte auch sagen, Akinator und binäre Suche sind "strukturgleich".

Für die Problemgröße n=1000 erhalten wir:
-- beim Bubblesort AnzVergleiche(1000) = 499500
-- beim Akinator AnzFragen(1000) = 10
-- beim TSP: AnzVergleichsstrecken(n) = (zu hoch für GTR)

Die Ergebnisse sind offenbar völlig unterschiedlich. Wenn man diese drei Algorithmen vergleicht, so kann man sagen, dass das Akinator-Vorgehen in einer gewissen Art "besser" oder "schneller" oder "effizienter" als der Bubble-Sort ist. Natürlich sind die Anwendungsgebiete ("Sortieren" oder "Personen erraten") völlig unterschiedlich. Dennoch kann man die beiden Formeln vergleichen und sagen: Für große Werte von n benötigt man beim Akinator weniger "Schritte".
Wenn man solche Formeln in der Theoretischen Informatik vergleicht, so interessiert man sich bei der Bubble-Sort-Formel gar nicht mehr für den Vorfaktor ½ oder den zweiten Summanden " - ½·n ", da dies im Vergleich zu anderen Formeln (wie die Akinator-Formel) gar nicht mehr ins Gewicht fällt. Man sagt (ungenau): Bubble-Sort hat eine Komplexität von "n²", während Akinator eine Komplexität von "log(n)" hat.


5. Herausforderungen:
Wir stellen fest, dass der Bubble-Sort selbst bei moderaten Werten für n schon verflixt viele Schritte benötigt (ganz zu schweigen vom TSP). Da fragt man sich, ob es neben Bubble-Sort noch andere Sortierverfahren gibt, die "schneller sind", also ein besseres Komplexitätsverhalten haben. Die gibt es! Das kommt erst in der Q1, aber man kann schonmal sagen: Die Sortierverfahren "Quicksort" oder "Mergesort" haben eine Komplexität von "n·log2(n)".
Wir vergleichen mal: Angenommen, wir sortieren 1000 Elemente. Dann ergibt sich mit der "ungenauen" Bubblesort-Komplexität von n² eine Größenordnung von 1Mio Vergleichen. Mit der "ungenauen" Quicksort-Komplexität "n·log2(n)" ergibt sich 1000·10 = 10tsd (also 50 mal besser). Das ist schon schneller. Für höhere Werte von n ergibt sich:

n = 10000
Bubble-Sort: n²      -> 100 000 000
Quicksort: n·log2(n) ->     140 000

n = 1Mio
Bubble-Sort: n²      -> 1 Billion = 1 000 000 000 000
Quicksort: n·log2(n) -> 1Mio · 20 =        20 000 000
also 50tsd mal besser!

Man sagt daher auch: Quicksort (oder Mergesort) liegt in einer anderen Komplexitätsklasse als Bubble-Sort.



18.05.2022


Sortierverfahren und Komplexität von Algorithmen

Wir haben uns folgendes klargemacht:
1. Es gibt unterschiedliche Möglichkeiten, eine Menge von Objekten automatisch zu sortieren. Dazu gehört:
1a: Insertion-Sort. Funktionsweise: _____
1b: Bubble-Sort. Funktionsweise: _____
2. Bei Bubble-Sort war es einfach, die Anzahl der Vergleiche zu zählen. Beispielsweise konnten 10 Elemente mit 45 Vergleichen sortiert werden. Bei 20 Elementen benötigt man schon ____ Vergleiche. Bei n Elementen benötigt man ____ Vergleiche.
3. Wir haben uns den "Akinator" angesehen, der durch mehrmaliges Fragen eine Person aus "deinen Gedanken erraten" kann. Angenommen (Optimalfall!), jede Frage teilt die Menge der noch verbleibenden Personen in zwei gleichgroße Teile (wovon nur noch ein Teil, also die Hälfte, für die nächste Frage relevant ist). Dann benötigt man bei 8 Personen 3 Fragen. Bei 32 Personen benötigt man ___ Fragen und bei n Personen benötigt man _____ Fragen.
4. Komplexitätsbetrachtungen:
Beim Bubble-Sort mit n Elementen kommt man auf folgende Formel:
    AnzVergleiche(n) = ½·n² - ½·n
Beim Akinator mit n Personen in der Datenbank kommt man auf die Formel:
AnzFragen(n) = Aufrunden(log2 (n))
Das n in den obigen Formeln heißt "Problemgröße". Für die Problemgröße n=1000 erhalten wir:
-- beim Bubblesort AnzVergleiche(1000) = ____
-- beim Akinator AnzFragen(1000) = ____
Die Ergebnisse sind offenbar völlig unterschiedlich. Wenn man diese beiden Algorithmen vergleicht, so kann man sagen, dass das Akinator-Vorgehen in einer gewissen Art "besser" oder "schneller" oder "effizienter" als der Bubble-Sort ist. Natürlich sind die Anwendungsgebiete ("Sortieren" oder "Personen erraten") völlig unterschiedlich. Dennoch kann man die beiden Formeln vergleichen und sagen: Für große Werte von n benötigt man beim Akinator weniger "Schritte".
Wenn man solche Formeln in der Theoretischen Informatik vergleicht, so interessiert man sich bei der Bubble-Sort-Formel gar nicht mehr für den Vorfaktor ½ oder den zweiten Summanden " - ½·n ", da dies im Vergleich zu anderen Formeln (wie die Akinator-Formel) gar nicht mehr ins Gewicht fällt. Man sagt (ungenau): Bubble-Sort hat eine Komplexität von "n²", während Akinator eine Komplexität von "log(n)" hat.
5. Herausforderungen:
Wir stellen fest, dass der Bubble-Sort selbst bei moderaten Werten für n schon verflixt viele Schritte benötigt. Da fragt man sich, ob es neben Bubble-Sort noch andere Sortierverfahren gibt, die "schneller sind", also ein besseres Komplexitätsverhalten haben. Die gibt es! Das kommt erst in der Q1, aber man kann schonmal sagen: Die Sortierverfahren "Quicksort" oder "Mergesort" haben eine Komplexität von "n·log2(n)".
Wir vergleichen mal: Angenommen, wir sortieren 1000 Elemente. Dann ergibt sich mit der "ungenauen" Bubblesort-Komplexität von n² eine Größenordnung von 1Mio Vergleichen. Mit der "ungenauen" Quicksort-Komplexität "n·log2(n)" ergibt sich 1000·10 = 10tsd (also 50 mal besser). Das ist schon schneller. Für höhere Werte von n ergibt sich:

n = 10000
Bubble-Sort: n²      ->
Quicksort: n·log2(n) ->

n = 1Mio
Bubble-Sort: n²      -> 1 Billion = 1 000 000 000 000
Quicksort: n·log2(n) -> 1Mio · 20 =        20 000 000 also 50tsd mal besser!

Man sagt daher auch: Quicksort (oder Mergesort) liegt in einer anderen Komplexitätsklasse als Bubble-Sort.




06.05.2022
Ideen für die heutige Stunde:
• Von JFrame selber ableiten: https://stackoverflow.com/questions/40420669/how-do-i-create-a-new-jframe
• Eigener ToggleButton


06.05.2022
ToDo für die heutige Stunde:
• Recherchiere das Interface KeyListener
• Implementiere alle drei notwendigen Methoden. Hier ein "Steinbruch":

    public void keyPressed(KeyEvent e) {
        if(e.getKeyCode()== KeyEvent.VK_DOWN) {
            System.out.println("down Pressed");
        }
        else if(e.getKeyCode()== KeyEvent.VK_UP) {
            System.out.println("up Pressed");
        }
    }

• Alle Elemente der GUI sollen mit "addKeyListener" versehen werden
• Probleme dieser Art der Tastaturerfassung formulieren


08.04.2022
Mini-Projekt: Maximum aus einem Array von int-Zahlen herausfinden:


import java.util.*;
public class Kram {
    public static void start() {
        int[] meinArr = new int[10];
        for(int i =0 ; i < meinArr.length; i++) {
            meinArr[i] = (int)(Math.random() * 100);
        }
        System.out.println("Array: "+Arrays.toString(meinArr));
        System.out.println("Maximum: "+max(meinArr));
    }
    
    public static int max(int[] p) {
        int momMax = p[0];
        for(int i =0 ; i < p.length; i++) {
            if(momMax  < p[i]) {
                momMax = p[i];
            }
        }
        return momMax;
    }
}



08.04.2022
Schnellübungen (die so auch in der Klausur auftauchen könnten)
• Im Pong-Spiel: die Bälle sollen eine zufällige Größe zwischen 4 und 8 Pixeln bekommen
• Im Pong-Spiel: wenn kein Ball mehr "lebt", soll die Nachricht erscheinen: "Spiel zuende"
• Im Pong-Spiel: wenn kein Ball mehr "lebt", soll die Nachricht erscheinen: "Spiel zuende"
• Im Pong-Spiel: wenn ein Ball an einem Rand abprallt, soll die Farbe geändert werden

• Allgemein: Schreibe eine Methode, die das größte Element in einem int-Array herausfindet.
• Allgemein: Wann kommt der Fehler "Null-Pointer-Exception"? Kannst Du eine Null-Pointer-Exception im Pong-Spiel mutwillig herbeiführen?


06.04.2022

Infos zur Klausur

Klausurthema: Java-Programmierung:
1. Grundlagen, die wir bei der letzten Klausur in JavaScript bearbeitet haben, müssen nun auch in Java gekonnt werden:
• Variablen, Wertzuweisungen
• if-Anweisungen und Bedingungen incl. else-Block
• for-Schleife
• Handhabung von Strings (Zeichenketten)
• Handhabung von Arrays
• Funktionen: Eingabeparameter ("Argumente") und Rückgabewerte
• Korrektes Einrücken von Programmen
• Wie man Programmabläufe aufschreiben kann: 00000000_036_IF11_Programmausfuehrung_auf_Papier_pro_JavaScript.pdf

2. Objektorientierte Programmierung
• Sichere Unterscheidung von Klasse, Objekt, Eigenschaft und Methode.
• Bedeutung der unterschiedlichen Schlüsselwörter: class, new, void, static, null
• Bedeutung der atomaren Datentypen int, double usw.
• Funktionsweise von Referenztypen (wie z.B. JButton aber auch eigene Klassen wie JGrafikPanel)
• Vererbung und Schnittstellen (Interfaces) sind nicht Klausurthema!
• Verständnis unseres "Pong"-Programms (20220401_grafik_simpel2_vor_std.zip)
• Verständnis des Skriptes 20220114_TOE_Java_Einfuehrung.pdf mit Ausnahme der Seiten 21, 22 (Vererbung), 23 (char und String), 24 (Java außerhalb von BlueJ). Die Seite 25 ist aber wieder hilfreich.



01.04.2022
Bitte lest folgende Abschnitte zum nächsten Mal. Bitte habt dabei im Hinterkopf, dass in unserem momentanen Programm folgende Zeile steht:
public class JGrafikPanel extends JPanel
Also: Die selbstprogrammierte Klasse JGrafikPanel ist eine Art der Klasse JPanel (die bei Java eingebaut ist und eigentlich nur einen eigenschaftslosen Bereich im Fenster markiert).

https://openbook.rheinwerk-verlag.de/javainsel/07_002.html#u7.2
https://openbook.rheinwerk-verlag.de/javainsel/07_002.html#u7.2.1
https://openbook.rheinwerk-verlag.de/javainsel/07_002.html#u7.2.2

Nicht vergessen: Als "Lesenachweis" schreibt ihr bitte Fragen oder Zusammenfassungen auf. Weiter gehts:

https://openbook.rheinwerk-verlag.de/javainsel/07_006.html#u7.6
https://openbook.rheinwerk-verlag.de/javainsel/07_006.html#u7.6.1
https://openbook.rheinwerk-verlag.de/javainsel/07_007.html#u7.7
https://openbook.rheinwerk-verlag.de/javainsel/07_007.html#u7.7.1
https://openbook.rheinwerk-verlag.de/javainsel/07_007.html#u7.7.2
https://openbook.rheinwerk-verlag.de/javainsel/07_007.html#u7.7.3


30.03.2022
EVA zu Hause:

Wir wiederholen ein paar Grundlagen und lesen dafür einige Abschnitte in dem sehr guten und ausführlichen Buch "Java ist auch eine Insel". Bitte lest folgende (Unter-)Kapitel:

https://openbook.rheinwerk-verlag.de/javainsel/03_002.html#u3.2
https://openbook.rheinwerk-verlag.de/javainsel/03_002.html#u3.2.1
https://openbook.rheinwerk-verlag.de/javainsel/03_004.html#u3.4
https://openbook.rheinwerk-verlag.de/javainsel/03_004.html#u3.4.1
https://openbook.rheinwerk-verlag.de/javainsel/03_004.html#u3.4.2
https://openbook.rheinwerk-verlag.de/javainsel/03_004.html#u3.4.3

Eigentlich sollte euch alles bekannt vorkommen. Als "Nachweis" der Aufgabenerledigung schreibt ihr bitte ein paar Kommentare (Fragen/Unklarheiten/neue Einblicke) zum Text auf. "Nichts aufschreiben" ist eine nicht gemachte Aufgabe.


23.03.2022
Freigabepfad:

\\PC-EICE054937\toe_share


09.03.2022
20220309_grafik_simpel2.zip

18.02.2022
Fahrplan für die heutige Stunde
• Enum
• numFails-Zähler
• Restart-Button
• Zeit messen (Script S8)
• HA: java --version daheim


16.02.2022
Bilder fürs Memory-Spiel:
20220215_img_memory_pwgbg.zip

21.01.2022
20220114_GUI_Template_mit_actionPerformed_Lichtknipsen_arrays_nach_std.zip

14.01.2022
Arrays sinnvoll nutzen:
• Siehe dazu die (geupdatete) Java-Dokumentation von mir: 20220114_TOE_Java_Einfuehrung.pdf auf S. 13.


10.12.2021
Projekt "Schiebepuzzle"
20211209_schiebepuzzle_sus.zip

03.12.2021
Programm für heute:
• Wiederholung: Eigenschaften und Methoden
• Ein kleines Java-Spiel
• Kleine Java-Dokumentation von mir: 20211203_TOE_Java_Einfuehrung.pdf

Grundgerüst unseres heutigen Programms:

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

/*
* GUI (Graphical User Interface), mit einem eigenen Layout
*/
public class Startklasse implements ActionListener{
    JButton but1, but2;
    JTextField eingabezeile1;
    JLabel lab1;
    JFrame frame;
    JTextArea textArea;

    public void zeigeFenster() {
        frame = new JFrame();
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.setTitle("Null Layout");
        frame.setLayout(null);

        but1 = new JButton("Klick mich!");
        but1.setBounds(10,10,200,30);
        but1.addActionListener(this);
        frame.add( but1 );

        eingabezeile1 = new JTextField("Hier kann man schreiben...");
        eingabezeile1.setBounds(220,10,200,30);
        frame.add( eingabezeile1 );

        textArea = new JTextArea();
        JScrollPane scrollPane = new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        textArea.setEditable(true);
        scrollPane.setBounds(10,50,410,200);
        frame.add(scrollPane);

        but2 = new JButton("TextArea loeschen");
        but2.setBounds(210,260,200,30);
        but2.addActionListener(this);
        frame.add( but2 );
        
        lab1 = new JLabel("Informatik macht Spaß.");
        lab1.setBounds(10,260,190,30);
        frame.add(lab1);
        
        frame.pack();
        frame.setSize(440,350);
        frame.setResizable(false);
        frame.setVisible( true );
    }
    
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == but1) {
            textArea.append("Button eins gedrueckt!\n");
            but2.setForeground(new Color(5,222,4));
            but2.setBackground(new Color(255,222,4));
            lab1.setIcon(new ImageIcon("./Icon.png"));
        }
        if(e.getSource() == but2) {
            textArea.setText("leer");
        }
        
    }

    public static void main() {
        Startklasse sk = new Startklasse();
        sk.zeigeFenster();
    }
}



26.11.2021
Programm für heute:
• Abenteuer-Spielerweiterung abgeben
• Einblick in Java und BlueJ


public class Haupt {
    public static void main() {
        String a = javax.swing.JOptionPane.showInputDialog(null, "Name:");
        System.out.println("Wert von a "+a);
        System.out.println(Integer.parseInt(a) + 4);
    }
}



19.11.2021
Spiele zunächst folgendes Spiel:
http://www.plusplanet.de/miscrawhtml/20211118_mini_adventure/mini_adventure.html

Damit Du das Spiel verändern kannst, musst Du erst folgende Zip-Datei herunterladen und entpacken:
http://www.plusplanet.de/miscrawhtml/20211118_mini_adventure/20211118_mini_adventure.zip



Hausaufgabe zum 5.11.2021
Hier die Funktion, die das größte von drei Elementen herausfindet:

Beispiel für das tabellarische Abarbeiten einer Funktion:


05.11.2021
Fahrplan für heute:
• HA-Check
• Betrachtung von Algorithmen im Debugger
• Programmabläufe aufschreiben
• Algorithmen selbst programmieren

29.10.2021

1. Klausur am 12. November!
2. Wiederholung der letzten Stunde: Idee des Programms
3. Grundstruktur unserer JavaScript-Programme
4. Klausurthemen:
5. Ideen für kleine Algorithmen:
6. Geschriebene kleine Algorithmen:


08.10.2021
Beispielprogramm, welches Fantasietexte erzeugt.



08.10.2021


01.10.2021


01.10.2021

http://www.plusplanet.de/video/20210412_1dim_zellulaerer_automat.mp4


24.09.2021

<html>
<head>
    <title>Erster JS-Versuch</title>
    <script>
        "use strict";
        
    

        function gruss() {
var ausgabe = "";
var deinName;
deinName = document.getElementById("eingabe").value;

// Aufgabe 1: Name rückwärts
// Aufgabe 2: i-Sprache
// Aufgabe 3: Verschlüsselung
// Aufgabe 4: Ver- und Entschlüsselung
for(var i=0; i < deinName.length ; i++) {
var buchstabe = deinName[i];
ausgabe = ausgabe+buchstabe;
}

document.getElementById("ausgabe").textContent = ausgabe;
}

        
    </script>
    <noscript>Kein Javascript aktiviert!</noscript>
</head>

<body>
<form action="dummy">
    <input id="eingabe" type="text"> <br>
    <input type="button" value="Klick!" onclick="gruss();">
</form>
<div id="ausgabe">Dummy-Text</div>
</body>
</html>


16.09.2021
Ergebnis der letzten Stunde:


<html>
<head>
    <title>Erster JS-Versuch</title>
    <script>
        'use strict';
        
        function gruss() {
            var deinName;
            deinName = document.getElementById("eingabe").value;

            if(deinName == "Noah") {
                deinName = "Super-Noah";
            }
                  
            document.getElementById("ausgabe").textContent = "Hallo "+deinName;
            
        }
        
    </script>
    <noscript>Kein Javascript aktiviert!</noscript>
</head>

<body>
<form action="dummy">
    <input id="eingabe" type="text"> <br>
    <input type="button" value="Klick!" onclick="gruss();">
</form>
<div id="ausgabe">Dummy-Text</div>
</body>
</html>





20.08.2021
Hausaufgabe:

Von "Blockly": https://blockly.games/?lang=de
* Puzzle
* ersten beiden Level vom Labyrinth

USB-Stick besorgen


19.08.2021

Informatikunterricht in der EF bei Herrn Töns

• Bewertungskriterien: Qualität der Mitarbeit, (ggf. auch Quantität, falls themenbezogen), Fachsprache, Selbständigkeit, bei Hausaufgaben: Ernsthafte Ansätze müssen erkennbar sein.
• Bitte einen USB-Stick anschaffen
• Wer hat Zugriff auf einen PC mit Tastatur und Maus? Vorkenntnisse?


Grundlagen Windows

• Erstelle auf dem Desktop ein Verzeichnis mit dem Namen "Informatikhelden"
• Erstelle ein Dokument (ein einfacher Kurztext wie "Hallo Informatik" genügt) in der Textverarbeitungssoftware "Open-Office" und speichere es ab in dem Ordner "Informatikhelden"
• Erstelle ein Dokument in dem Programm "Notepad" oder "Notepad++" (beides auf dem Desktop zu finden) mit dem gleichen Text wie in der vorigen Aufgabe. Auch Dieses Dokument soll wieder in dem Verzeichnis "Informatikhelden" abgespeichert werden.
• Schaue Dir den Inhalt des Ordners "Informatikhelden" mit dem Datei-Explorer an und erkläre, welche Unterschiede die beiden abgespeicherten Dateien besitzen.
• Tastaturtraining: Erstelle in Notepad++ eine Kopie von folgendem kleinen Bärchen:

• Kopiere dieses Bärchen in das Open-Office-Dokument hinein und erkläre, warum die Grafik nicht mehr schön aussieht.
Daten im Zahlenformat anzeigen Dafür gibt es z.B. einen Dienst im Internet: https://hexed.it/ Betrachte die txt-Datei und die odt-Datei mit diesem Programm
• Wie funktioniert ein QR-Code?
• Ein IPhone12 Pro aus dem Jahr 2020 besitzt 6 Gigabyte RAM. Wie groß müsste ein QR-Code (Pixelgröße 1mm) sein, der diese Datenmenge speichern könnte?
• Lösche das Verzeichnis "Informatikhelden". Sind die Daten wirklich weg?




Programmierspiele

https://blockly.games/?lang=de


http://www.plusplanet.de/quizmeister_20201103_ifef/

https://wettbewerb.informatik-biber.de/index.php?action=login
20211203_GUI_Template_mit_actionPerformed_Lichtkinpsen.zip