ALGORITHMEN - Teil XX: Zwischen Fersuch und Irrdumm

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Abt. BISHERIGE INHALTE
      =================
      Hier das aktualisierte Download-Link zum gezippten Inhaltsverzeichnis aller bisherigen ALGORITHMEN-Kapitel samt Stichwort-Suchprogramm sowie der Letztversion des sog. Beamers: Der Beamer (ein Profan-Programm) bringt den Anwender bei Eingabe von Kapitelnummer_Beitragsnummer in die Nähe des Beitrags im entsprechenden Forumskapitel hier. Das klappt in 90% der Fälle. Der Beamer ist momentan auf Firefox eingestellt, XProfan-Fans können ihn aber jederzeit auf andere Browser ändern.

      Gruss
    • Abt. FROHE WEIHNACHTEN 2018!
      =========================
      Etwas Weihnachtsstimmung - und nebenbei eine weihnachtliche Rosetta code -Aufgabe erledigt!
      Wer mitsingen möchte - es sollte etwa so klingen: LINK
      Gruss

      Quellcode

      1. WindowTitle "ROSETTA CODE: The twelve days of Christmas"
      2. ' Q: http://rosettacode.org/wiki/The_Twelve_Days_of_Christmas
      3. ' Muppets: https://www.youtube.com/watch?v=8ygW5hLgnn4
      4. WindowStyle 24 : CLS : Declare d&,r&,days$[],gifts$[],wait&
      5. ::: wait&=2800 'delay [ms]
      6. font 2
      7. days$[]=explode("*,first,second,third,fourth,fifth,sixth,"+\
      8. "seventh,eighth,ninth,tenth,eleventh,twelfth",",")
      9. gifts$[]=explode("*,*,Two turtle doves,Three french hens,"+\
      10. "Four calling birds,Five golden rings,Six geese a-laying," +\
      11. "Seven swans a-swimming,Eight maids a-milking,Nine ladies dancing," +\
      12. "Ten lords a-leaping,Eleven pipers piping,Twelve drummers drumming",",")
      13. whileloop 12 : d&=&Loop
      14. Print "\n On the " + days$[d&] + " day of Christmas"
      15. waitinput wait&
      16. Print " My true love gave to me:\n" : waitinput wait&
      17. whileloop d&,3,-1:r&=&Loop
      18. Print " ";gifts$[r&] : waitinput wait&
      19. endwhile
      20. If d&>1
      21. Print " ";gifts$[2];if(d&=12,""," and") : waitinput wait&
      22. EndIf
      23. Print " A" + If(d&=12,"nd a","") + " partridge in a pear tree."
      24. waitinput wait&
      25. Print
      26. Endwhile
      27. Print "\n ... Hit any key to end program" : Waitinput
      28. End
      Alles anzeigen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • Abt. Jubiläum!
      ==========

      200 Jahre „Stille Nacht, heilige Nacht“


      Stille Nacht, heilige Nacht!
      Alles schläft, einsam wacht
      nur das traute, hochheilige Paar:
      „Holder Knabe im lockigen Haar -
      schlaf in himmlischer Ruhe!“
      Schlaf´ in himmlischer Ruh´.

      Stille Nacht, heilige Nacht,
      Hirten erst kundgemacht
      durch der Engel "Halleluja"
      tönt es laut von fern und nah:
      „Christ, der Retter ist da!“ -
      Christ, der Retter ist da!

      Stille Nacht, heilige Nacht!
      (Du)Gottessohn, oh, wie lacht
      Lieb' aus deinem göttlichen Mund
      da uns schlägt die rettende Stund,
      Christ, in deiner Geburt -
      Christ, in deiner Geburt !


      (Franz Xaver Gruber, 1818 / F. Mohr)
    • Abt. XML-DTD nach Relationale DB
      ==========================
      Erste holprige Gehversuche, XML zu verstehen ...
      Gruss

      P.S. MDB = Mitglied der Bauplanung
      Spoiler anzeigen

      <?xml version="1.0" encoding="UTF-8"?>
      <!-- DTD für Stammdaten -->
      <!ELEMENT DOCUMENT (VERSION, MDB+)>
      <!ELEMENT VERSION (#PCDATA)>
      <!ELEMENT MDB (ID, NAMEN, BIOGRAFISCHE_ANGABEN, PERIODEN)>
      <!ELEMENT ID (#PCDATA)>
      <!ELEMENT NAMEN (NAME+)>
      <!ELEMENT BIOGRAFISCHE_ANGABEN (GEBURTSDATUM?, GEBURTSORT?, GEBURTSLAND?, STERBEDATUM?, GESCHLECHT?, BERUF?, PARTEI_KURZ?, VITA_KURZ?, VEROEFFENTLICHUNGEN?)>
      <!ELEMENT PERIODEN (PERIODE+)>
      <!ELEMENT NAME (NACHNAME, VORNAME, ORTSZUSATZ, ADEL, PRAEFIX, ANREDE_TITEL, AKAD_TITEL, HISTORIE_VON, HISTORIE_BIS)>
      <!ELEMENT GEBURTSDATUM (#PCDATA)>
      <!ELEMENT GEBURTSORT (#PCDATA)>
      <!ELEMENT GEBURTSLAND (#PCDATA)>
      <!ELEMENT STERBEDATUM (#PCDATA)>
      <!ELEMENT GESCHLECHT (#PCDATA)>
      <!ELEMENT BERUF (#PCDATA)>
      <!ELEMENT VERTRETUNG_KURZ (#PCDATA)>
      <!ELEMENT VITA_KURZ (#PCDATA)>
      <!ELEMENT VEROEFFENTLICHUNGEN (#PCDATA)>
      <!ELEMENT PERIODE (WP, MDBWP_VON, MDBWP_BIS, WKR_NUMMER, WKR_NAME, WKR_LAND, LISTE, MANDATSART, INSTITUTIONEN)>
      <!ELEMENT NACHNAME (#PCDATA)>
      <!ELEMENT VORNAME (#PCDATA)>
      <!ELEMENT ORTSZUSATZ (#PCDATA)>
      <!ELEMENT ADEL (#PCDATA)>
      <!ELEMENT PRAEFIX (#PCDATA)>
      <!ELEMENT ANREDE_TITEL (#PCDATA)>
      <!ELEMENT AKAD_TITEL (#PCDATA)>
      <!ELEMENT HISTORIE_VON (#PCDATA)>
      <!ELEMENT HISTORIE_BIS (#PCDATA)>
      <!ELEMENT WP (#PCDATA)>
      <!ELEMENT MDBWP_VON (#PCDATA)>
      <!ELEMENT MDBWP_BIS (#PCDATA)>
      <!ELEMENT WKR_NUMMER (#PCDATA)>
      <!ELEMENT WKR_NAME (#PCDATA)>
      <!ELEMENT WKR_LAND (#PCDATA)>
      <!ELEMENT LISTE (#PCDATA)>
      <!ELEMENT MANDATSART (#PCDATA)>
      <!ELEMENT INSTITUTIONEN (INSTITUTION*)>
      <!ELEMENT INSTITUTION (INSART_LANG, INS_LANG, MDBINS_VON, MDBINS_BIS, FKT_LANG, FKTINS_VON, FKTINS_BIS)>
      <!ELEMENT INSART_LANG (#PCDATA)>
      <!ELEMENT INS_LANG (#PCDATA)>
      <!ELEMENT MDBINS_VON (#PCDATA)>
      <!ELEMENT MDBINS_BIS (#PCDATA)>
      <!ELEMENT FKT_LANG (#PCDATA)>
      <!ELEMENT FKTINS_VON (#PCDATA)>
      <!ELEMENT FKTINS_BIS (#PCDATA)>

      =============================================
      wird zu:
      =============================================

      file MDB.csv
      ID = NAME+ORTSZUSATZ

      Table NAMEN:
      --------------
      ID.NAME
      ID.NAME.ORTSZUSATZ
      ID.NAME.+.HISTORIE_VON
      ID.NAME.+.HISTORIE_BIS
      ID.NAME.+.NACHNAME
      ID.NAME.+.VORNAME
      ID.NAME.+.ADEL
      ID.NAME.+.PRAEFIX
      ID.NAME.+.ANREDE_TITEL
      ID.NAME.+.AKAD_TITEL

      Table BIOGRAPHISCHE_DATEN
      ---------------------------------
      ID.GEBURTSDATUM
      ID.GEBURTSORT
      ID.GEBURTSLAND
      ID.STERBEDATUM
      ID.GESCHLECHT
      ID.BERUF
      ID.VERTRETUNG_KURZ
      ID.VITA_KURZ
      ID.VEROEFFENTLICHUNGEN

      Table PERIODEN
      ----------------
      ID.WP.+.MDBWP_VON
      ID.WP.+.MDBWP_BIS
      ID.WP.+.WKR_NUMMER
      ID.WP.+.WKR_NAME
      ID.WP.+.WKR_LAND
      ID.WP.+.LISTE
      ID.WP.+.MANDATSART

      Table INSTITUTIONEN of PERIODEN
      ----------------------------------
      ID.WP.+.INSTITUTION.*.INSART_LANG
      ID.WP.+.INSTITUTION.*.INS_LANG
      ID.WP.+.INSTITUTION.*.MDBINS_VON
      ID.WP.+.INSTITUTION.*.MDBINS_BIS
      ID.WP.+.INSTITUTION.*.FKT_LANG
      ID.WP.+.INSTITUTION.*.FKTINS_VON
      ID.WP.+.INSTITUTION.*.FKTINS_BIS
      ===============================

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • Oldi-40 schrieb:

      XML ist und bleibt Murks.
      Dann hast Du den Sinn von XML nicht verstanden.
      Hier eine Erklärung: de.wikipedia.org/wiki/Extensible_Markup_Language

      Einfache XML-Dateien kann man notfalls auch durch lesen erkennen, aber das ist nicht der Sinn des ganzen. Dafür gibt es Parser, die das dann gleich validieren. Es gibt inzwischen viele Programm-Bibliotheken, die einem genau dieses Abnehmen.
      Es können alle Verschachtelungen beschrieben werden und auch für den Menschen lesbare Ergebnisse extrahiert werden. Was wäre den z.B. jedes Office-Datei-Format, ohne xml?

      Der einzige Nachteil gegenüber propitären Binären Dateiformaten, wäre seine Dateigröße. Dies umgeht man, in dem diese XML-Dateien meist gepackt (ZIP) werden.

      Oldi-40 schrieb:

      Eine komplizierte Lösung für einfache Sachen.
      Wenn Du es nicht lesen kannst, weil es dafür auch gar nicht gedacht ist, da können wir ja nichts für :-D
      Gruß Thomas
      „Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine
      davon in einer Katastrophe endet oder sonstwie unerwünschte
      Konsequenzen nach sich zieht, dann wird es jemand genau so machen.“ Murphys Gesetz
      ComputerInfo für PPF
    • Ich gestehe, ich habe Verständnis für beide Standpunkte - den von Oldi-40 UND für ts-soft:
      Mit XML kann man tief verschachtelte Strukturen flachklopfen und in eine Textdatei stecken - wer´s braucht ist glücklich! Der umgekehrte Weg ist etwas beschwerlicher und bringt meine Ganglien zum käsen - die Welt bräuchte Gratis-OpenSource-Konversionsprogramme!
    • Hallo ts-soft,

      ts-soft schrieb:

      Dann hast Du den Sinn von XML nicht verstanden.
      Ich habe den Sinn schon verstanden. ;-)

      Im Wiki steht auch ein Zitat von Linus Torvalds, in diese Richtung geht meine Meinung mit Murks.

      Jeder kann auf seinem Rechner nach XML-Dateien suchen.
      Ich vermute mal, 95% sind aufgeblähte Dateien mit ein bis drei relevanten Daten die man zu tausenden auf dem Rechner hat.

      Ein Beispiel:protection-log-2018-09-12.txt

      Hochladen kann man die XML-Datei nicht im Forum. :flopp:
      Es werden nur Textdateien akzeptiert.

      Was steht denn in der Datei?

      Tschau
    • Abt. Ein allerletztes Rätsel - EaR 1 ´Modular´
      =============================
      Leider hat es auf das vor der Tür abgelegte Postpaket geregnet. Ob die Lieferung richtig ist, sollte die sechsstellige Bestellnummer darauf eigentlich verraten. Erkennbar ist gerade noch folgendes Muster: XXX4XY . Man weiß lediglich, daß diese Bestellnummern die Eigenschaft haben, restlos duch 165 teilbar zu sein. Gefragt ist: Was ist X, was ist Y ?
    • Quellcode

      1. Declare long x, y, i, String z, x1, y1
      2. ' XXX4XY MOD 165
      3. y = 0
      4. z = "xxx4xy"
      5. For i, 1, 2
      6. WhileLoop 1, 9
      7. If &LOOP <> 4
      8. x1 = &LOOP
      9. y1 = Str$(y)
      10. z = Translate$(z, "x", Str$(&LOOP))
      11. z = Translate$(z, "y", Str$(y))
      12. If (Val(z) MOD 165) = 0
      13. Print "Die gesuchte Zahl ist : ", z
      14. Print "X = ", x1, " Y = ", y1
      15. EndIf
      16. z = "xxx4xy"
      17. EndIf
      18. EndWhile
      19. Inc y, 5
      20. EndFor
      21. Print "fertig..."
      22. Waitkey
      Alles anzeigen
      Elegant gelöst :thumbsup:
      Wenn man nur schon durch 5 (y) teilt, kann es ja nur eine 0 oder eine 5 am Ende sein.
      Ansonsten bringt ja MOD eine 1. Mach mal einfach eine Schleife und multipliziere
      &LOOP mit 165.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von H.Brill ()

    • @H.Brill: Gratulation! Das Programm liefert die korrekte Lösung.
      Gruss

      P.S.: Um das zu kontrollieren, mußte ich in meinem XProfan-11.2a aber erst mal selbst eines schreiben:

      Quellcode

      1. Cls:declare x$,y$:whileloop 0,9:x$=&Loop:whileloop 0,5,5
      2. y$=&Loop:casenot val(x$+x$+x$+"4"+x$+y$) mod 33
      3. print "X",x$," Y",y$:endwhile:endwhile:print "=":waitinput
    • Hallo p.specht,

      zu Abt. Ein allerletztes Rätsel - EaR 1 ´Modular´

      Der Startwert ist 111410
      - Schleife:
      - Ist der Wert durch 165 ohne Rest teilbar? Ja, Lösung gefunden.
      - Den Wert um 5 erhöhen.
      - Ist der Wert durch 165 ohne Rest teilbar? Ja, Lösung gefunden.
      - Den Wert um 111005 erhöhen.
      - Zum Angafang der Schleife.

      So hätte ich es gelöst, habe aber keine Ahnung wie man das mit XProfan formuliert.

      Tschau

      Die Lösung sollte 1348 sein.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Oldi-40 ()

    • Abt. Deviant programming
      =================
      XProfan (in Version 11) ist immer wieder für Überraschungen gut - hier bei Strukturierungsbezeichnern:
      Gruss

      Quellcode

      1. CLS:Declare Z#
      2. Struct § = 0%,1$(5),2#(11)
      3. DIM Z#,§
      4. z#.0% = 2^16-1
      5. z#.1$ = "abcdeABC"
      6. z#.2# = "fghijklmnop"
      7. print z#.1$, z#.2#, z#.0%
      8. Dispose Z#:waitinput