Die Mathe-Redaktion - 22.11.2017 08:07 - Registrieren/Login
Auswahl
Schwarzes Brett
Fragensteller hat Anwort gelesen, aber bisher nicht weiter reagiert2017-11-22 00:56 bb
Matheformeln mit MathML
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden oder den Newsletter bestellen.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 465 Gäste und 8 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Verwendung des Compilers Turbo Pascal 5.5 von 1989 unter Windows 7
Freigegeben von matroid am Sa. 07. Mai 2011 20:20:23
Verfasst von Aaba-Aaba -   3228 x gelesen [Gliederung] [Statistik] Druckbare Version Druckerfreundliche Version
Software

Wir benötigen:
  • den Turbo Pascal Compiler 5.5 von 1989
  • DOS-Box 0.74 von 2011
  • einen modernen Computer von 2011 mit Windows 7
  • einen modernen Editor von 2011 (den besitzt aber jeder der irgendwas programmiert!)
  • von D.Herrmann das "Algorithmen Arbeitsbuch" von 1992
  • eine Uhr mit Sekundenzeiger


Also fangen wir an:

Die Programme Turbo-Pascal 5.5 (963 Kilobyte) und DOS-Box 0.74 (1415 Kilobyte) sind Freeware also kostenlos im Internet.
Das Grundproblem ist: Turbo-Pascal 5.5 ist eine 16-Bit-Anwendung.
Ein moderner Computer mit Windows 7 ist auf 64-Bit-Verarbeitungsbreite
eingestellt. Windows 7 kann ein 16-Bit Programm nicht ausführen.
Damit man alte Software und Spiele nicht wegschmeißen muss, haben
findige Köpfe das Programm "DOS-Box" entworfen.

Was ist DOS-Box?

DOS-Box ist ein Emulator, das zwischen alte Software oder Spiele und Windows zwischengeschaltet wird, damit die Programme auch unter modernen Windowsversionen wie XP/Vista/Win 7 ausgeführt werden können. Nach Installation und dem Start von DOS-Box muss man folgendes tun: Ich nehme an im Verzeichnis "C:\Daten\TP\Disk1" befinden sich der Turbo-Pascal-Compiler 5.5 und meine 3 Dateien "spring.pas","spring2.pas" und "spring3.pas".

Dann läuft der Programmstart so ab:
(DOS-Box) mount c c:\Daten\TP\Disk1
(DOS-Box) c:
(DOS-Box) cycles = 20000
(DOS-Box) tpc spring3.pas
(DOS-Box) spring
[bzw. (DOS-Box) spring > Test.txt ]

Dabei ist zu beachten, dass DOS-Box zuweilen mit einem US-Tastaturtreiber arbeitet. Dies erkennt man daran, dass u.a. durch das Drücken der y-Taste kein y auf dem Bildschirm erscheint.
"Umrechnung"
US-Tastaturtreiber -> D-Tastaturtreiber
z -> y
# -> \
´ -> =
- -> /
ß -> -
usw.
Im Zweifelsfall muss man etwa probieren!

DOS-Box kennt sehr 2 mächtige Funktionen.
Dies sind die Einstellung der Geschwindigkeit (cycles) des Emulators und der Framezahl. Die Framezahl gibt an wie viele Bilder ein Spiel pro Sekunde anzeigen kann. Dies ist insbesondere für Action-Spiele wie Flugsimulatoren oder Autorennspiele wichtig.
Strg + F7 -> Reduzierung der Framezahl um 1
Strg + F8 -> Erhöhung der Framezahl um 1
Strg + F11 -> Reduzierung der Cyclenzahl (Geschwindigkeit) des Programms
Strg + F12 -> Erhöhung der Cyclenzahl (Geschwindigkeit) des Programms
[diese Funktion macht am meisten Spaß!]

Warum Turbo-Pascal 5.5?

Turbo-Pascal 5.5 von 1989 ist 2011 ein Freeware Programm. Es ist sehr klein
(die *.zip-Datei benötigt weniger als 1 MB auf der Festplatte).
Für Rechnungen mit Integer-Zahlen oder numerische Rechnungen mit Double-Zahlen kann man es auch heute noch verwenden. Als Besonderheit kennt Turbo-Pascal den Datentyp comp - einen Integer-Typ mit 64 Bit also etwa 19 Stellen Genauigkeit.
Turbo-Pascal war in der ersten Hälfte der 90er Jahre ein defacto Standard. Es gibt heute noch extrem viele gebrauchte Bücher mit CD oder Listings, die man z.T. auch im Internet findet. Als Beispiel sei das Buch G.Engeln-Müllges und F.Reutter "Formelsammlung zur Numerischen Mathematik" genannt, von dem unterschiedliche Auflagen mit Quelltexten in Fortran, C, BASIC und Pascal existieren.

Auch kann man ein Turbo-Pascal-Programm zur Probe verwenden.
Liefert das TP-Programm dieselben Ausgaben wie mein Java-, Matlab-, Maple-, Mathematica-, C++-, VisualBasic-, Delphi-, Fortran-, Ada-Programm? (Diese Strategie wird teilweise zur Sicherheit in der Raumfahrt verwendet: z.B. 3 Programme von verschiedenen Teams in verschiedenen Programmiersprachen geschrieben müssen dieselben Ergebnisse liefern. Man kann so im besten Fall ein Programm mit einem Programmier- oder Compilerfehler 2 zu 1 überstimmen.)

Und nicht zu vergessen kann man mit alten Compilern natürlich spielen.

Einen kleinen Nachteil von TP 5.5 unter DOS-Box gibt es aber: man kann ein Programm nicht unterbrechen ohne im Task-Manager (Aufruf: Str+Alt+Entfernen) DOS-Box abzubrechen.

Das Springerproblem


Bild
Eine Lösung des 16x16 Springerproblems gefunden mit "spring3.pas".

Als Testprogramm wurden 3 Implementierungen zur Lösung von Springerproblemen gewählt. Die 3 Programme sind aus dem hervorragenden "Algorithmen-Arbeitsbuch" von D. Herrmann und stammen aus dem Jahr 1992.
Dabei ist ein Weg eines Schach-Springers über ein nxn-Brett (n gerade) gesucht, so daß der Springer jedes Feld genau einmal besucht.
"spring.pas" löst das Springerproblem sehr langsam mittels Backtracking.
"spring2.pas" löst es schneller mittels "Lückensuche".
"spring3.pas" beruht auf den Ideen von T.Hindrichs, A.Conrad, H.Morsy, die sich im Rahmen des Wettbewerbs "Jugend-forscht" im Jahr 1991 mit Heuristiken zum Lösen des Springerproblems beschäftigten.
Hinweis: für n = 8 ist das Programm "spring3.pas" etwa um den Faktor 107500 schneller als "spring.pas". "spring3.pas" ist in der Lage Probleme der Dimension 62x62 in weniger als einer Sekunde zu lösen und dies mit dem Turbo-Pascal-Compiler 5.5 von 1989!

Rechenzeiten auf einem AMD X4 3,2 GHz (1 von 4 Prozessoren benutzt)
n = 8 / cycles = 50000 / "spring.exe"  -> 266 Sek. (Uhr mit Sekundenzeiger)
n = 8 / cycles = 50000 / "spring2.exe" -> weniger als 1 Sekunde
n = 8 / cycles = 50000 / "spring3.exe" -> viel weniger als 1 Sekunde

Siehe auch de.wikipedia.org/wiki/Springerproblem .

Quelltext "spring3.pas"

aus dem hervorragenden "Algorithmen-Arbeitsbuch" von D.Herrmann, 1992. Bei der aktuellen Version sind 3 minimale Syntaxfehler behoben worden.
program spring3;
{ Programm zum Loesen des Springerproblems }
{ abgetippt von "Aaba-Aaba" / Matheplanet 2011 }
{ dieses Programm ist aus D.Herrmann "Algorithmen Arbeitsbuch" / Addison-Wesley 1992 }
{ und basiert auf den Ideen von T.Hindrichs, A.Conrad, H.Morsy die sich Im Rahmen }
{ des Wettbewerbs "Jugend-forscht" im Jahr 1991 mit Heuristiken zum Lösen des }
{ Springerproblems beschäftigten }
{ funktioniert mit Turbo-Pascal 5.5 in den Standardeinstellungen fluessig bis
{ n = 30 // bis n = 62 wird es mit der Compilereinstellung {$M 65000,5000,650000}
{ im Programm geloest, Bedeutung: $M Stackgroesse,minimaler Heap,maximaler Heap }
{ compilieren: tpc spring3.pas }
{ ausfuehren: spring3 oder spring3 > Test.txt }
{ <a href="http://de.wikipedia.org/wiki/Springerproblem" target='_blank'><u>de.wikipedia.org/wiki/Springerproblem</u></a> }
{$M 65000,5000,650000}
const n=8; { Groeße des Schachbrettes }
    feldz = n*n;
    a:array[1..8] of integer = (2,1,-1,-2,-2,-1,1,2);
    b:array[1..8] of integer = (1,2,2,1,-1,-2,-2,-1);
type nachf_b = 0..9;
    brett_b = -1..n+2;
    feld_b = 0..feldz;
    feld_t = record nachf:nachf_b;
              besetzt:boolean end;
    brett_t = array[brett_b,brett_b] of feld_t;
    pos_t = record x,y : brett_b end;
    nextelem = record nachf:nachf_b;
                pos:pos_t end;
    nextlist_t = array[1..8] of nextelem;            
var brett : brett_t; i:integer;
    ind : feld_b;
    pos : pos_t;
    erfolg : boolean;
    x,y:1..n;
    loes : array[1..n,1..n] of integer;
    alaenge : integer;
 
function erlaubt(pos:pos_t;i:nachf_b;var neupos:pos_t):boolean;
begin
with neupos do
  begin
  x := pos.x + a[i];
  y := pos.y + b[i];
  erlaubt := (not brett[x,y].besetzt) and (x > 0) and (y > 0)
          and (x <= n) and (y <= n)
  end
end;
 
function mingefunden(pos:pos_t;i:nachf_b;var min:pos_t):boolean;
var k,c,c2,nxt : nachf_b;
  list : nextlist_t;
begin
  nxt := 0;
  for k:=1 to 8 do
  if erlaubt(pos,k,min) then
    begin
    c := 1;
    while(c<=nxt) and (list[c].nachf<brett[min.x,min.y].nachf) do
     inc(c);
    for c2 := nxt downto c do
       list[c2+1] := list[c2];
    list[c].pos := min;
    list[c].nachf := brett[min.x,min.y].nachf;
    inc(nxt)
    end;
  min := list[i].pos;
  mingefunden := (i<=nxt)
end;      
 
procedure init;
var count,next : pos_t;
  i: 1..8;
begin
with count do
  begin
  for x:=1 to n do
  for y:=1 to n do brett[x,y].besetzt := false;
  for x:=1 to n do
  for y:=1 to n do with brett[x,y] do
    begin
    nachf := 0;
    for i := 1 to 8 do if erlaubt(count,i,next) then inc(nachf);
    end
  end;
  ind := 0
end;
 
procedure speichern(pos:pos_t);
var i : 1..8;
  next:pos_t;
begin
  inc(ind);
  with pos do
  begin
  brett[x,y].besetzt:=true;
  loes[x,y] := ind;
  for i:=1 to 8 do
    if erlaubt(pos,i,next) then dec(brett[next.x,next.y].nachf)
  end
end;
 
procedure loeschen(pos:pos_t);
var i : 1..8;
  next:pos_t;
begin
  dec(ind);
  with pos do
  begin
  brett[x,y].besetzt := false;
  loes[x,y] := 0;
  for i:=1 to 8 do
    if erlaubt(pos,i,next) then inc(brett[next.x,next.y].nachf)
  end
end;    
 
procedure sucheweg(pos:pos_t;c:feld_b;var erfolg:boolean);
var i:nachf_b;
  neupos : pos_t;
begin
  speichern(pos);
  if c<feldz then
    begin
    i := 1;
    while (i<=8) and (not erfolg) do
      begin
      if mingefunden(pos,i,neupos) then
        begin
        sucheweg(neupos,c+1,erfolg);
        if not erfolg then loeschen(neupos)
        end;
      inc(i)
      end;
    end
  else erfolg := true  
end;
 
begin { main }
{ Start neu Aaba-Aaba }
alaenge := 4;
if (n >= 32) then alaenge := 5;
{ Ende neu Aaba-Aaba }
init;
pos.x := 1; pos.y := 1;
erfolg := false;
sucheweg(pos,1,erfolg);
for x:=1 to n do begin
for y:=1 to n do write(loes[x,y]:alaenge);
writeln end
end.
     

Abschluß:

Die Freewareprogramme "Turbo-Pascal 5.5" und "DOS-Box 0.74" sowie die Quelltexte zu "spring.pas", "spring2.pas" und "spring3.pas" finden sich in meinem Notizbuch. Dazu im Profil "Aaba-Aaba" das Gelb-Rot-Braune-Stäbchen anklicken und dann im Notizbuch mittels Klicken auf die Büroklammer die Programme herunterladen.
Am 16.5. habe ich noch die Programme "sprrek.pas" und "sprit.pas" ins Notizbuch getan. Diese beiden Programme lösen Springerprobleme auf rekursiven bzw. iterativen
Weg jeweils ohne Objektorientierung.

Schlagworte:
Programmieren, Turbo-Pascal 5.5, DOS-Box, Windows 7, Springerproblem, Emulator, Freeware

P.S.
Wer nützliche Informationen zum Betrieb anderer alter Programme unter Windows 7 hat, kann diese Informationen gerne hinzufügen. Interessant ist auch die Frage wie viele alte Programme ein moderner Mehrprozessor-PC ohne Geschwindigkeitsverlust gleichzeitig ausführen kann. Weiterhin ist die Frage interessant, welche cycle-Zahl in Abhängigkeit von der Geschwindigkeit des Prozessors für optimale Geschwindigkeit gewählt werden sollte.

Link auf diesen Artikel Link auf diesen Artikel  Druckbare Version Druckerfreundliche Version  Einen Freund auf diesen Artikel aufmerksam machen Weitersagen Kommentare zeigen Kommentare  
pdfFür diesen Artikel gibt es keine pdf-Datei


Arbeitsgruppe Alexandria Dieser Artikel ist im Verzeichnis der Arbeitsgruppe Alexandria eingetragen:
: Software :: automatisch eingefügt und unbearbeitet :
Verwendung des Compilers Turbo Pascal 5.5 von 1989 unter Windows 7 [von Aaba-Aaba]  
Wir benötigen: den Turbo Pascal Compiler 5.5 von 1989 DOS-Box 0.74 von 2011 einen modernen Computer von 2011 mit Windows 7 einen modernen Editor von 2011 (den besitzt aber jeder der irgendwas programmiert!) von D.Herrmann das "Algorithmen Arbeitsbuch" von 1992 eine Uhr mit Sekundenzeig
[Die Arbeitsgruppe Alexandria katalogisiert die Artikel auf dem Matheplaneten]

 
Verwandte Links
 
Besucherzähler 3228
 
Aufrufstatistik des Artikels
Insgesamt 1160 externe Besuche zwischen 2017.11 und 2017.11 [Anzeigen]
DomainAnzahlProz
http://matheplanet.com40.3%0.3 %
http://google.de76465.9%65.9 %
http://google.pl786.7%6.7 %
http://www.delphipraxis.net393.4%3.4 %
http://google.sk605.2%5.2 %
http://google.si292.5%2.5 %
http://google.li232%2 %
http://google.hu232%2 %
http://google.ru211.8%1.8 %
http://google.gr191.6%1.6 %
http://google.nl191.6%1.6 %
http://suche.t-online.de262.2%2.2 %
http://de.search-results.com50.4%0.4 %
http://de.search.yahoo.com40.3%0.3 %
http://www.bing.com121%1 %
http://de.ask.com50.4%0.4 %
http://suche.web.de70.6%0.6 %
http://search.conduit.com30.3%0.3 %
http://search.tb.ask.com10.1%0.1 %
http://statistik.blogtotal.de10.1%0.1 %
http://de.luna.tv10.1%0.1 %
http://search.icq.com10.1%0.1 %
http://avira-int.ask.com10.1%0.1 %
http://192.168.1.254:191010.1%0.1 %
http://de.yhs4.search.yahoo.com10.1%0.1 %
http://search.yahoo.co.jp10.1%0.1 %
http://search.certified-toolbar.com50.4%0.4 %
http://search.babylon.com20.2%0.2 %
http://suche.gmx.net10.1%0.1 %
http://www.fireball.de10.1%0.1 %
http://cn.bing.com10.1%0.1 %
http://suche.aol.de10.1%0.1 %

Aufrufer der letzten 5 Tage im Einzelnen
Insgesamt 4 Aufrufe in den letzten 5 Tagen. [Anzeigen]
DatumAufrufer-URL
2017.11.15-2017.11.21 (4x)https://www.google.de/

Häufige Aufrufer in früheren Monaten
Insgesamt 1079 häufige Aufrufer [Anzeigen]
DatumAufrufer-URL
2013-2017 (325x)http://google.de/url?sa=t&rct=j&q=
2012-2014 (50x)http://google.pl/url?sa=t&rct=j&q=
2012-2017 (39x)http://www.delphipraxis.net/162583-turbo-pascal-vs-64bit.html
2013.08 (37x)http://google.de/url?sa=t&rct=j&q=turbo pascale unter 64bit
2013.01 (34x)http://google.de/url?sa=t&rct=j&q=turbopascal 6 windows 7
2012.03 (34x)http://google.sk/url?sa=t&rct=j&q=
2013.09 (32x)http://google.de/url?sa=t&rct=j&q=windows 7 turbo pascal
2013.10 (30x)http://google.de/url?sa=t&rct=j&q=turbo pascal windows
2013.06 (29x)http://google.si/url?sa=t&rct=j&q=
2012.09 (28x)http://google.pl/url?sa=t&rct=j&q=turbo pascal 5.5 for windows 7
2012.06 (27x)http://google.de/url?sa=t&rct=j&q=windows 7 turbo pascal installieren
2012.10 (26x)http://google.sk/search?q=turbo pascal 5.5 windows 7
2013.05 (26x)http://google.de/url?sa=t&rct=j&q=turbo pascal unter windows 7 starten
2014.02 (26x)http://google.de/url?sa=t&rct=j&q=turbo pascal compiler for windows 7
2013.07 (25x)http://google.de/url?sa=t&rct=j&q=windows 7 turbo pascal grphik
2012.02 (25x)http://google.de/url?sa=t&rct=j&q=win7 alte programme
2012.08 (24x)http://google.de/url?sa=t&rct=j&q=turbo pascal windows 7 64 bit
2013.04 (24x)http://google.de/url?sa=t&rct=j&q=turbo pascal für windows 7
2014.03 (23x)http://google.li/url?sa=t&rct=j&q=
2012.12 (23x)http://google.hu/url?sa=t&rct=j&q=turbo pascal 5.5 letöltés win7
2012.05 (22x)http://google.de/url?sa=t&rct=j&q=turbopascal f. win7 64 bit
2015.02 (21x)http://google.ru/url?sa=t&rct=j&q=
2012.07 (20x)http://google.de/url?sa=t&rct=j&q=turbopascal6
2015.05 (19x)http://google.gr/url?sa=t&rct=j&q=
2013.03 (19x)http://google.de/url?sa=t&rct=j&q=turbopascal programme unter win7
2014.11 (19x)http://google.nl/url?sa=t&rct=j&q=
2014.06 (18x)http://google.de/url?sa=t&rct=j&q=dos programmieren in vista pdf
2013.02 (17x)http://google.de/url?sa=t&rct=j&q=warum turbo pascal
2012.01 (17x)http://google.de/url?sa=t&rct=j&q=windows 7 turbo pascal dosbox tastatur
2012.04 (16x)http://google.de/url?sa=t&rct=j&q=turbopascal 5.5
2013.12 (4x)http://suche.t-online.de/fast-cgi/tsc?mandant=toi&device=html&portallanguage=...

[Seitenanfang]

" Verwendung des Compilers Turbo Pascal 5.5 von 1989 unter Windows 7" | 6 Kommentare
 
Für den Inhalt der Kommentare sind die Verfasser verantwortlich.

Re: Verwendung des Compilers Turbo Pascal 5.5 von 1989 unter Windows 7
von Schweinebacke am Sa. 07. Mai 2011 21:59:52


Mit Free Pascal und GNU Pascal stehen zwei freie Pascal-Implementierungen für 32- und 64-Bit-Systeme zur Verfügung. Beide sind weitgehend kompatibel zu Borland-Pascal 7 oder sogar zu Delphi. Man muss also nicht unbedingt den Umweg über DOS-Box und ein altes Borland-Pascal aus dem Museum gehen.

 [Bearbeiten]

Re: Verwendung des Compilers Turbo Pascal 5.5 von 1989 unter Windows 7
von Aaba-Aaba am So. 08. Mai 2011 00:37:36


Hallo Schweinebacke!

Zwar sind modernere Programmiersprachen & Entwicklungsumgebungen viel leistungsfähiger und bequemer zu bedienen als ältere Versionen, haben oft aber auch einige Nachteile:
- in neuen Programmversionen sind oft noch diverse Fehler enthalten
- manche Programme laufen nicht auf älterer/preiswerterer Hardware
- manche Programme verschwenden geradezu Ressourcen wie Speicherplatz und Prozessorleistung

Turbo-Pascal 5.5 braucht nur minimale Ressourcen und ist für viele mathematischen Berechnungen durchaus ausreichend. Vermutlich kann ich Turbo Pascal 5.5 auf mobilen Geräten wie Handys, I-Phone etc. zum Laufen bekommen.
Vorteile von Turbo Pascal 5.5 sind:
- die Software enthält keine Fehler bzw. sind wahrscheinlich alle Fehler dokumentiert
- Anfang der 90er Jahre waren ca.50 - 75 % aller publizierten Pascalprogramme im Dialekt Turbo-Pascal geschrieben - man vergleiche das mit dem Chaos der 80er Jahre mit seinen 100 BASIC-Dialekten
- Turbo-Pascal 5.5 Programme laufen problemlos auf einem 386er-Computer (selbst getestet)

Für das 8x8 Springer-Problem erzeugt der Compiler TPC aus dem "spring3.pas"-Quelltext eine ausführbare Datei "spring3.exe" mit einer Größe von 3392 Bytes! Diese läuft auf jedem IBM-PC.

Seit jeher bekommen Programmierer Ressourcenprobleme mal besser, mal schlechter in den Griff. Es gab beispielsweise mal eine DOS-Version die komplett auf eine 3,5 Zoll Diskette passte - also weniger 1,44 MB Speicherplatz benötigte. Wahrscheinlich komplett in Maschinensprache programmiert.
Daneben gab es auch Extreme in der anderen Richtung. Sun Microsystems hat vor 10 Jahren die Java-Entwicklungsumgebung "Forte for Java" herausgebracht, mit der Empfehlung "läuft am besten mit 192 MB-RAM!

Wenn Du mal Zeit hast, kannst du ja mal schauen, bis zu welcher Grenze (n = ?) ein aktueller Pascalcompiler Probleme mit dem Programm "spring3.pas" lösen kann!

Gruß Aaba-Aaba

 [Bearbeiten]

Re: Verwendung des Compilers Turbo Pascal 5.5 von 1989 unter Windows 7
von Ex_Mitglied_40174 am So. 08. Mai 2011 21:44:57


Hallo Aaba-Aaba,

Ich habe den Kommentaren nach das ganze mal unter FreePascal und Win64 ausprobiert.

Hat der Quelltext von spring3 bei dir so wie oben angegeben funktioniert?

Der Compiler hat einige Fehler geworfen:
zeile 8, kommentar geht nicht zu
zeile 9, kommentar geht nicht zu
spring3.pas(75,7) Error: Illegal counter variable
spring3.pas(76,7) Error: Illegal counter variable
spring3.pas(77,7) Error: Illegal counter variable
spring3.pas(78,7) Error: Illegal counter variable
(die letzten 4: x,y wurde als globale Variable definiert, dann möchste Pascal nicht, dass die lokal in einer Schleife genutzt werden. Weil man könnte ja ansonsten bewusst oder unbewusst auf die böse Idee kommen die Schleifenvariablen an einer anderen Stelle des Programms zu ändern)

Nachdem ich die Errors angegangen bin, blieben noch 3 weniger interessante Warnings und es kompilierte.
Für n=6 wird es in unter 1 Sekunde gelöst, für n=8 dauert ca. 20min, ich hatte nicht die Zeit dafür den Zeitsprung nachzuvollziehen


Im allgemeinen schwärme ich auch gerne von alter Hard- und Software, allerdings bin ich etwas zurückhaltender in meiner Euphorie.
Wenn man als Target ältere Systeme hat (von denen noch genug produktiv genutzt werden, allein im Finanz/Bankensektor oder bei älteren Installationen), gibt es Argumente für ältere Software, ja.
In den meisten anderen Fällen bevorzuge ich den Komfort und Produktivität, welche (sinnvolle) moderne System mit sich bringen. Moderne Software verbraucht mehr Ressourcen (RAM, CPU, HDD)? Ja, wenn ich dafür bessere Wartbarkeit, bessere Lesbarkeit, Systemunabhängigkeit, Einbindung in Softwareengineering, -analyse Konzepte, etc bekomme nehme ich das gerne in Kauf. Dafür hat man diese Ressourcen in solch großen Mengen heutzutage.
Man möge mir verzeihen, aber die Pascal Programm sind ein schönes Beispiel dafür dass man länger braucht um den Code nachzuvollziehen, statt ihn neu zu schreiben. Wird aber auch mit daran liegen dass ich nicht fit in Pascal bin.

Dass alte Software pauschal fehlersicherer ist, stimme ich auch nicht ganz zu. Zwar ist die Zeit eine Hilfsvariable für die Anzahl der entdeckten Bugs in Software, aber da gibt es durchaus ausgleichende Aspekte. Heutiger Kenntnissstand und Analysesoftware ist viel weiter als vor 20 Jahren (wer dachte vor 20 Jahren schon an solche Sachen wie BufferOverflow, oder modulare Unit-Tests, oder statische Quellcodeanalyse, et). Dass es heute "mehr" Fehler gibt, liegt daran dass es mehr und umfangreichere Software gibt, die notgedrungen nicht mehr wie damals von durchwegs "Fachkräften" geschrieben wurde, sondern heutzutage von fast jedermann und -frau. Stichwort Softwarekrise. Die Menge an Fehler die man in einen kryptischen 1000 Zeilen ASM Code verstecken konnte und wurde schätze ich ohne schlechtes Gewissen weit höher ein, als z.b. bei 1000 Zeilen Java.

--tb


 [Bearbeiten]

Re: Verwendung des Compilers Turbo Pascal 5.5 von 1989 unter Windows 7
von Aaba-Aaba am Mo. 09. Mai 2011 12:13:50


Hallo,

ich habe mir jetzt auch Freepascal heruntergeladen. Damit habe ich "spring3.pas" bisher auch nicht zum Laufen bekommen. Mal schauen!

Ich habe "spring.pas" mit n = 8 auf einem AMD X4 3,2 GHz-Vierkernprozessor mit Win 7 laufen lassen. Dabei kamen 1, 2, 3 bzw. 4 Prozessorkerne zum Einsatz. Weiterhin war cycles = 50000 gesetzt.
Der Speicherplatzbedarf während des Programmlaufs war etwa 49800 Kilobyte pro laufende "spring.exe".
Die Rechenzeiten waren dabei unter DOS-Box 0.65:
1x DOS-Box-Fenster: 344 Sekunden
2x DOS-Box-Fenster: 343 / 342 Sekunden
3x DOS-Box-Fenster: 340 / 340 / 340 Sekunden
4x DOS-Box-Fenster: 376 / 347 / 357 / 349 Sekunden

Dies ergibt einen Speedup von
1 Prozessor -> 1,0x
2 Prozessoren -> 1,99x
3 Prozessoren -> 3,03x
4 Prozessoren -> 3,85x

Auf deutsch heißt dies, ich kann bis zu 3 Programme parallel laufen lassen ohne dass die einzelne Anwendung langsamer wird. Erst bei 4 Programmen auf den 4 Prozessorkernen kommt es zu Bremseffekten da das Windows 7 System eben noch mehr tun muss als die 4 Programme laufen zu lassen. (Die Angaben zum Speedup sind eventuell nicht auf jedem Prozessor gleich. Es gibt heute Prozessoren, die sich hochtakten wenn nur 1 bis 2 Prozessoren arbeiten und mit einem niedrigeren Takt arbeiten wenn z.B. alle 4 Prozessoren arbeiten. Dies hat sicher in erster Linie mit der Prozessorkühlung zu tun.)

Viele Grüße
Aaba-Aaba

 [Bearbeiten]

Re: Verwendung des Compilers Turbo Pascal 5.5 von 1989 unter Windows 7
von GrandPa am Mo. 09. Mai 2011 18:36:40


Hi Aaba-Aaba,

danke für den interessanten Artikel.
Ich bin extra von TP 5.5 auf DELPHI 2005 umgestiegen, damit ich auch unter Windwos Vista / Windows 7 Programme zum laufen bringe. Allerdings habe ich alles neu schreiben müssen, was aufgrund der völlig anderen Programmstruktur und Syntax von DELPHI2005 ne Menge Zeit gekostet hat. Meine alten TP 5.5. Programme liefen bis dato nicht, weshalb dein Artikel mit dem Hinweis zu dem Tool DOSBOX gerade recht kommt.

DANKE!

Ich habe dies hier noch ergänzend gefunden:

http://www.chip.de/downloads/D-Fend-Reloaded_40728196.html

Die Konfiguration von DOSBox jedoch erfolgt über textbasierende Konfigurationsdateien, was für Einsteiger die Verwendung erschwert. "D-Fend Reloaded" ist eine grafische Oberfläche für DOSBox und nimmt Ihnen diese Arbeit praktisch komplett ab. Außerdem enthält das "D-Fend Reloaded"-Installationspaket auch bereits DOSBox.

L.G. GrandPa

 [Bearbeiten]

Re: Verwendung des Compilers Turbo Pascal 5.5 von 1989 unter Windows 7
von Aaba-Aaba am Di. 10. Mai 2011 20:21:48


Hallo GrandPa & Co,

Seit ich Windows 7 nutze, wundere ich mich immer wieder warum viele alte Programme nicht mehr laufen. Dies ist weniger schlimm bei einem Programm wie etwa "Corel Draw", von dem aktuelle Versionen existieren. Es gibt aber auch gute 16 Bit-Programme, die einfach nicht weiterentwickelt wurden.

@GrandPa:
eventuell kannst du das Programm "spring3.pas" unter einem Delphi-Compiler zum Laufen bekommen. Die Unterschiede zwischen Turbo Pascal und Delphi sind vielleicht geringer als von Turbo-Pascal zu Freepascal!

Ich habe das Programm "spring3.pas" einmal genau mit dem Listing aus dem Buch verglichen. Dabei habe ich 3 Fehler gefunden.
(Zeile 29) ALT: var brett : brett_t; NEU: var brett : brett_t; i:integer;
(Zeile 82) ALT: end; NEU: end
(Zeile 84) ALT: ind := 0; NEU ind := 0
Hinweis: sowohl die alte als die neue Version laufen unter TP 5.5.

Noch 2 Tipps zu DOS-Box:
Version 0.65 von DOS-Box besitzt eine Konfigurationsdatei DOSBOX.conf im Verzeichnis DOSBOX. Dort kann man beispielsweise cycles = 20000 setzen. Beim Programmstart ist dann cycles nicht 3000 (default), sondern 20000.

Wenn ein DOS-Spiel unbedingt testen möchte ob die Original-CD im Laufwerk ist, und das CD-Laufwerk das Laufwerk d ist, dann hilft folgender Befehl.
mount d d:\ -t cdrom -used 0 -ioctl

Diesen Befehl kann man auch in eine "meinspiel.bat"-Datei im Stammverzeichnis von c hineinschreiben. Praktischerweise kann eine "meinspiel.bat" so aussehen:
cycles = 20000
mount d d:\ -t cdrom -used 0 -ioctl
c:
cd spiele\rrt
rrt.exe
Der Aufruf - hier Raylroad-Tycoon (rrt) - kann dann so erfolgen:
(1) CD einlegen
(2) DOS-Box starten
(3) (DOS-Box) mount c c:\
(4) (DOS-Box) c:
(5) meinspiel

Viele Grüße
Aaba-Aaba

 [Bearbeiten]

 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2017 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]