CS计算机代考程序代写 import “io”

import “io”

/*
devctl(DC_TAPE_LOAD, unit#, “filename”, ‘R’ or ‘W’)
devctl(DC_TAPE_READ, unit#, buffer)
devctl(DC_TAPE_WRITE, unit#, buffer, blocksizeinbytes)
devctl(DC_TAPE_UNLOAD, unit#)

all return codes pos or zero = success
negative is error message index
for read, the result is size of block
*/

let buffer = vec(128);
let pos = 0;

let wopen(fname) be
{ let r = devctl(DC_TAPE_LOAD, 1, fname, ‘W’);
if r < 0 then { out("code %d from tape load\n", r); finish } pos := 0 } let wclose() be { let r; if pos /= 0 then { let r = devctl(DC_TAPE_WRITE, 1, buffer, pos); if r < 0 then { out("code %d from tape write\n", r); finish } } r := devctl(DC_TAPE_UNLOAD, 1); if r < 0 then { out("code %d from tape unload\n", r); finish } } let wchar(c) be { if pos = 512 then { let r = devctl(DC_TAPE_WRITE, 1, buffer, 512); if r < 0 then { out("code %d from tape write\n", r); finish } pos := 0 } byte pos of buffer := c; pos +:= 1 } let wstring(s) be { let i = 0; while true do { let c = byte i of s; if c = 0 then break; wchar(c); i +:= 1 } } let wnum(n) be { if n > 9 then
wnum(n / 10);
wchar(‘0’ + n rem 10) }

let start() be
{ wopen(“table.txt”);
for c = 0 to 100 do
{ let f = c * 9 / 5 + 32;
wnum(c);
wstring(” centigrade is “);
wnum(f);
wstring(” fahrenheit\n”) }
wclose() }