Пояснение к задачам 74..90.
Чтение и запись квадратной матрицы в типизированный файл вещественных чисел построчно:
Создаём файл вещественных чисел содержащий квадратную матрицу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
program CFM; var Name: String; F: file of Real; i,j:integer; Sum: Real; begin Write('File: '); Readln(Name); Assign(F,Name); Rewrite(F); For i:=1 to 5 do begin For j:=1 to 5 do begin Sum:=I-J;//Sum - значение элемент матрицы. I строки, J столбца. Write(F,Sum); end; end; Close(F); end. |
Читаем из файла вещественных чисел квадратную матрицу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
program RFM; var Name: String; F: file of Real; i,j,len:integer; Sum: Real; begin Write('File: '); Readln(Name); Assign(F,Name); //находим кол-во столбцов и строк в квадратной матрице //это будет корень квадратный количества её элементов Reset(F); Len:=0; while not eof (f) do begin Read(F,Sum); inc(len); end; Close(F); len:=trunc(sqrt(len)); // читаем матрицу i:=0; Reset(F); while not eof (f) do begin inc(i); Read(F,Sum); Write(Sum); if i mod len = 0 then Writeln(' '); end; Close(F); Readln; end. |
Создаём прямоугольную матрицу(построчно), причем первый элемент файла содержит количество столбцов матрицы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
program CFM2; var F: file of Real; i2,I,J,ColumnCount,RowCount:integer; Cell:Real; Name:String; begin Write('File name: '); Readln(Name); RowCount:=6; //кол-во строк ColumnCount:=5; //кол-во столбцов Assign(F,Name); Rewrite(F); Cell:=ColumnCount; Write(F,Cell); for i:=1 to RowCount do for j:=1 to ColumnCount do begin Cell:=I-J; //значение ячейки i,j Write(F,Cell); end; Close(F); end. |
Читаем прямоугольную матрицу(построчно), причем первый элемент файла содержит количество столбцов матрицы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
program RFM2; var F: file of Real; i2,I,J,ColumnCount:integer; Cell:Real; Name:String; begin Write('File name: '); Readln(Name); Assign(F,Name); Reset(F); Read(F,Cell); ColumnCount:=trunc(Cell); Writeln(ColumnCount); i:=0; While not eof(F) do begin inc(i); Read(F,Cell); Write(Cell,' '); if (i mod ColumnCount = 0) then Writeln; end; Close(F); readln; end. |
Другие задачи из раздела File можно посмотреть здесь.
Комментарии: