program omp(input, output); (* omp: one minus p Dr. Thomas D. Schneider National Institutes of Health National Cancer Institute Center for Cancer Research Nanobiology Program Molecular Information Theory Group Frederick, Maryland 21702-1201 toms@ncifcrf.gov permanent email: toms@alum.mit.edu (use only if first address fails) http://www.ccrnp.ncifcrf.gov/~toms/ *) label 1; (* end of program *) const (* begin module version *) version = 1.00; (* of omp.p 2006 Nov 12 2006 Nov 12, 1.00: origin *) updateversion = 1.00; (* defines lowest acceptable current parameter file *) (* end module version *) (* begin module describe.omp *) (* name omp: one minus p synopsis omp(input: out, output: out) files input: a set of real numbers between 0 and 1, one per line description For each real in the input, p, compute 1-p and put that to the output. examples documentation see also author Thomas Dana Schneider bugs technical notes *) (* end module describe.omp *) (* begin module halt *) procedure halt; (* stop the program. the procedure performs a goto to the end of the program. you must have a label: label 1; declared, and also the end of the program must have this label: 1: end. examples are in the module libraries. this is the only goto in the delila system. *) begin writeln(output,' program halt.'); goto 1 end; (* end module halt version = 'delmod 6.16 84 mar 12 tds/gds'; *) (* begin module omp.themain *) procedure themain; (* the main procedure of the program *) var parameterversion: real; (* parameter version number *) p: real; (* number to 'complement' *) begin { writeln(output,'omp ',version:4:2); reset(ompp); readln(ompp, parameterversion); if round(100*parameterversion) < round(100*updateversion) then begin writeln(output, 'You have an old parameter file!'); halt end; } reset(input); while not eof(input) do begin if input^ = '*' then readln(input) else begin readln(input,p); writeln(output,(1.0-p):10:8); end; end; end; (* end module omp.themain *) begin themain; 1: end.