Перевод данных из формата Double в Real - Turbo Pascal
Формулировка задачи:
программа считает в real , потом переводит файлы в double для матлаба , а теперь не могу сделать обратный перевод в real из double
Решение задачи: «Перевод данных из формата Double в Real»
textual
Листинг программы
program test;
const
N = 5;
M = 4;
type
TMatrixReal = packed array [1..n, 1..M] of real;
TMatrixDouble = packed array [1..n, 1..M] of double;
var
i, j: integer;
arReal: TMatrixReal;
arRealYet: TMatrixReal;
arDouble: TMatrixDouble;
f: file;
begin
Randomize;
for i := 1 to n do
for j := 1 to m do
arReal[i, j] := i * 10 + j / 1000;
{-----------------}
Assign(f, 'FReal.dat');
rewrite(f, 1);
blockwrite(f, arReal, sizeof(arReal));
Close(f);
{-----------------}
reset(f, 1);
blockread(f, arRealYet, sizeof(arRealYet));
Close(f);
{-----------------}
for i := 1 to N do
for j := 1 to M do
arDouble[i, j] := arRealYet[i, j];
{-----------------}
for i := 1 to N do
begin
for j := 1 to M do
Write(arDouble[i, j]: 10: 3);
writeln;
end;
end.
Объяснение кода листинга программы
- Создается программа
test. - В программе объявляются константы N и M.
- Создаются типы данных TMatrixReal и TMatrixDouble.
- Объявляются переменные i, j, arReal, arRealYet и arDouble.
- Задаются начальные значения для переменных i и j.
- Заполняется матрица arReal значениями, полученными путем умножения чисел от 1 до n на 10 и деления чисел от 1 до m на 1000.
- Создается файл f с именем 'FReal.dat'.
- Записывается информация о матрице arReal в файл f.
- Файл f закрывается.
- Сбрасывается информация о матрице arReal в файл f.
- Открывается файл f.
- Читается информация о матрице arRealYet из файла f.
- Файл f закрывается.
- Матрица arRealYet присваивается переменной arDouble.
- Для каждой строки матрицы arDouble выполняется операция записи каждого элемента в файл 'FReal.dat'.
- Закрывается файл 'FReal.dat'.