// pascalabc.net 3.1, сборка 1204 от 24.03.2016 begin var f,g: file of integer; assign(f,'ffile.dat'); rewrite(f); for var i: =1 to 30 do write(f,random(-20,20)); // файл f создан и заполнен assign(g,'gfile.dat'); rewrite(g); f.seek(0); var e: integer; print('f: '); while not f.eof do begin read(f,e); print(e); if e> 0 then write(g,e) end; f.seek(0); while not f.eof do begin read(f,e); if e< 0 then write(g,e) end; f.seek(0); while not f.eof do begin read(f,e); if e=0 then write(g,e) end; f.close; writeln; print('g: '); g.seek(0); while not g.eof do begin read(g,e); print(e) end; g.close end. тестовое решение: f: -14 15 -16 0 7 0 18 19 -12 -10 6 15 -19 -14 -15 -1 -6 -4 -20 12 10 4 3 16 -14 -20 3 10 -13 -16 g: 15 7 18 19 6 15 12 10 4 3 16 3 10 -14 -16 -12 -10 -19 -14 -15 -1 -6 -4 -20 -14 -20 -13 -16 0 0 данное решение неоптимально по времени, поскольку файл читается трижды. можно сделать иной вариант, читая данные за один проход и помещая в две структуры памяти отрицательные и нулевые элементы. // pascalabc.net 3.1, сборка 1204 от 24.03.2016 begin var f,g: file of integer; assign(f,'ffile.dat'); rewrite(f); for var i: =1 to 30 do write(f,random(-20,20)); // файл f создан и заполнен assign(g,'gfile.dat'); rewrite(g); var n: =f.filesize; var neg,zer: array of integer; setlength(neg,n); setlength(zer,n); f.seek(0); var e: integer; var ineg: =0; var izer: =0; print('f: '); while not f.eof do begin read(f,e); print(e); if e> 0 then write(g,e) else if e< 0 then begin neg[ineg]: =e; inc(ineg) end else begin zer[izer]: =e; inc(izer) end end; f.close; writeln; setlength(neg,ineg); foreach e in neg do write(g,e); setlength(zer,izer); foreach e in zer do write(g,e); print('g: '); g.seek(0); while not g.eof do begin read(g,e); print(e) end; g.close end. тестовое решение: f: 7 5 -14 6 -11 -9 5 -1 5 -5 -7 -1 4 -20 17 -19 0 -3 0 6 20 1 -2 -18 9 20 0 -2 3 -13 g: 7 5 6 5 5 4 17 6 20 1 9 20 3 -14 -11 -9 -1 -5 -7 -1 -20 -19 -3 -2 -18 -2 -13 0 0 0
Руслан Руденко1262
26.09.2021
//pascal abc.net v3.1 сборка 1172 var ma: array of array of integer; n, m, i, j, max, maxi, maxj: integer; f: text; s, st: string; begin randomize; readln(n); readln(m); max : = -1; setlength(ma, n); for i : = 0 to n - 1 do setlength(ma[i], m); writeln('matrix: '); for i : = 0 to n - 1 do begin writeln; for j : = 0 to m - 1 do begin ma[i, j] : = random(101); write(ma[i, j]: 4); if max < ma[i, j] then begin max : = ma[i, j]; maxi : = i; maxj : = j; end; end; end; assign(f, 'text.txt'); rewrite(f); for i : = 0 to m - 1 do write(f, ma[maxi, i]: 4); writeln(f, ' '); for i : = 0 to n - 1 do write(f, ma[i, maxj]: 4); close(f); writeln; writeln('file: '); assign(f, 'text.txt'); reset(f); while not eof(f) do begin; readln(f, st); s : = s + st + chr(10) + chr(13); end; close(f); write(s); end. пример ввода: 3 4 пример вывода: matrix: 30 29 3 61 64 4 99 36 45 9 85 19 file: 64 4 99 36 3 99 85
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
На рисунки изображены колёса: от машины, велосипеда и телеги. рассмотреть рисунки и заполнить таблицу.