Icon-Tutorial, Teil 7: Strukturierte Datentypen einschl. Funktionen und Operatoren

  • Hallo Himmbeerfreunde, Forumsbewohner und Linux-Freaks,

    im heutigen Tutorial geht es um strukturierte Datentypen
    - Listen (in anderen Sprachen Arrays): Icon erlaubt auch, Listen von Daten unterschiedlicher Datentypen, Listen können auch geschachtelt werden, um mehrdimensionale Listen abzubilden
    - Records, mit deren Hilfe Datenstrukturen geschaffen werden können
    Records bilden zusammen mit Listen die Basis von Datenbankanwendungen, die mit den Bordmitteln von Icon recht einfach selber programmiert werden können.
    - Tabellen: Ich kenne aus anderen Programmiersprachen nichts Vergleichbares. Im Tutorial sind ein paar Anwendungen enthalten, die einen kurzen Einblick geben, was alles mit Tabellen möglich ist, u.a. ein Programm zum Erzeugen von Cross-Referenzen. Im Verlauf der weiteren Tutorials zum Erlernen der Programmiersprache Icon wird es auch interessante Übungsaufgaben geben, deren Lösung mit Tabellen gezeigt wird.
    - Mengen, mit deren Hilfe alles gemacht werden kann, womit wir als Schüler in der Mengenlehre gequält wurden. Jetzt - mit einigen Jahrzehnten Abstand - durchaus reizvoll. Ich habe mal ein Sudoku-Programm geschrieben, das fast nur auf Mengen beruhte.

    - Zeichenmengen (als Untermenge der allgemeinen Mengen), mit deren Hilfe Verlüffendes möglich ist, was mit der herkömmlichen Technik (anderer Programmiersprachen) sonst nur in einer Mehrfach-Schleife möglich ist.

    Ich wünsche Euch auch bei diesem Tutorial viel Spaß und jede Menge neuer Erkenntnisse! Für Fragen stehe ich weiterhin gern zur Verfügung!

    Beste Grüße

    Andreas


    EDIT 04.05.2014: Überarbeitung der PDF-Datei:

    Dateien

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (4. Mai 2014 um 14:04)

  • Icon-Tutorial, Teil 7: Strukturierte Datentypen einschl. Funktionen und Operatoren? Schau mal ob du hier fündig wirst!

  • Hallo zusammen,

    die PDF-Datei in #1 habe ich ein wenig überarbeitet,um ein paar Inkonsistenzen mit Folge-Teilen auszuräumen.

    Viel Spaß!

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo zusammen,

    in letzter Zeit habe ich einiges programmiert, bei dem die typischen Stapelverarbeitungen First in - First out und First in - Last out / Last in - First out zum Einsatz kamen.

    Das geht in Icon natürlich auch beliebig einfach:

    Hierfür gibt es 5 Funktionen:

    • put(L, x) fügt der Liste L ein weiteres Element x mit neuem höchsten Index zu. Alle in der Liste enthaltenen Elemente behalten Ihren Index.
    • push(L, x) fügt der Liste L ein weiteres Element mit dem neuen Index 1 zu. Alle vorher vorhandenen Elemente x erhalten einen um 1 höheren Index.
    • x := pull(L) entfernt das Element x mit dem höchsten Index.
    • x := get(L) bzw. x := pop(L) entfernen das Element x mit dem Index 1.

    Somit ermöglichen dann folgende Funktionspaare die entsprechenden Stapelverabeitungen:

    StapelverarbeitungHinzufügenHerausnehmen
    FIFOput()get(), pop()
    push()pull()
    LIFOput()pull()
    push()get(), pop()

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!