Programmeren in REXX/Voorbeeldprogramma's: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
GuyDC (overleg | bijdragen)
Kleine aanpassingen
GuyDC (overleg | bijdragen)
Verbeteringen aan priem.rex
Regel 238:
parse source . . mezelf /* bepalen ons pad... */
priembestand=filespec('D',mezelf)||filespec('P',mezelf)'priem.lst'
tempbestand=priembestand".tmp" /* Tijdelijk werkbestand */
call SysFileDelete tempbestand /* Oude versie uitvagen */
if SysIsFile(priembestand) then do /* Als bestand is gevonden... */
call time 'Reset' /* starten chronometer */
say 'Stap 1 : We lezen' priembestand
rc=SysFileCopy(priembestand,tempbestand) /* reservecopie maken */
if rc\=0 then call exit rc,"Maken van reservecopie mislukt"
call stream priembestand,'C','OPEN READ' /* Open bestand */
oudepriem=charin(priembestand,1,chars(priembestand)) /* lezen */
Regel 258 ⟶ 262:
end
z=priem.0 ; start=priem.z+2 /* we beginnen na laast gekende */
say ' Lezen vannam' priem.0format(time('R'),,3) 'priemgetallenseconden namin beslag',
format(time('R'),,3) 'seconden in beslag'
end
else do
Regel 268 ⟶ 271:
/* Stap 2: We kunnen nu nieuwe priemgetallen zoeken */
/********************************************************************/
say 'WegschrijvenStap 2 : Opzoeken van 1000 nieuwe priemgetallen, duurdeeven geduld...',
nieuwe=0 /* teller van nieuwe priemgetallen */
do i=start by 2 /* lus vanaf start per 2 */
Regel 278 ⟶ 282:
if nieuwe=1000 then leave i /* We hebben er 1000 gevonden */
end i /* einde van lus i */
say 'Berekenen van 1000 nieuwe priemgetallen Opzoeken duurde' format(time('R'),,3) 'seconden.'
format(time('R'),,3) 'seconden.'
/********************************************************************/
/* Stap 3: Wegschrijven van de nieuwe priemgetallen in priem.lst */
/********************************************************************/
say 'Stap 3 : We schrijven de resultaten weg'
call stream priembestand,'C','OPEN WRITE APPEND' /* Openen bestand */
veldbreedte=min(length(priem.z),digits()+1)+1 /* afdrukbreedte */
Regel 292 ⟶ 296:
call lineout priembestand,lijn /* Wegschrijven regel */
end i
call rc=stream (priembestand,'Command','Close') /* Sluiten bestand */
if rc="READY:" then do
say 'Wegschrijven van nieuwe priemgetallen duurde',
call SysFileDelete tempbestand
format(time('R'),,3) 'seconden.'
say ' Wegschrijven duurde' format(time('R'),,3) 'seconden in beslag.'
call exit 0,'BerekeningEinde van ishet afgewerktprogramma.'
end; else call exit 28,'Wegschrijven van priemgetallen mislukt',,
'Foutcode was='rc,,
'Oude versie is bewaard in' tempbestand
 
/**************************** subroutines ***************************/
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.