Файловый ввод/вывод массива

ВВОД МАССИВА из файла F

VAR A: ARRAY [ 1..10] Of Real;

B: ARRAY [1..5, 1..10] Of Real;

1. FOR I:=1 TO 10 DO READ(F, A[I]);

2. FOR I:=1 TO 5 DO

FOR J:=1 TO 10 DO

READ(F, B[I,J]);

ВЫВОД МАССИВА в файл FF

1. FOR I:=1 TO 10 DO WRITE(FF, A[I]:5:2, ' ');

WRITELN(FF);

2. FOR I:=1 TO 5 DO

BEGIN

FOR J:=1 TO 10 DO

WRITE (FF, B[I,J]:5:2, ' ');

WRITELN(FF);

END;

Пример программы,

которая вводит из файла размер и далее весь массив, вычисляет новый массив и выводит его в тот же файл

procedure TForm1.Button1Click(Sender: TObject);

VAR f1: TextFile;

A: ARRAY[1..10, 1..10] OF Integer; // входной массив

B: ARRAY[1..10, 1..10] OF Real; // выходной массив

I, J, N: Integer;

SUM, S_Diag: Real; // Сумма и сумма по диагонали

BEGIN

AssignFile(f1, 'C:\temp\3.txt');

Reset(f1);

Readln(f1,N); // Размер массива

For I:=1 To N Do

For J:=1 To N Do

Read(f1,A[I,J]); // Чтение элементов массива

CloseFile(f1); // Закрытие файла

SUM:=0; S_Diag:=0;

For I:=1 To N Do

For J:=1 To N Do

Begin

B[I,J]:=A[I,J]/100-I/J;

SUM:=SUM+B[I,J];

IF I=J Then S_Diag:=S_Diag+B[I,J];

End;

Append(f1); // Добавление в файл

Writeln(f1);

Writeln(f1,' Полученный массив B[I,J]');

For I:=1 To N Do

Begin

For J:=1 To N Do

Write(f1, B[I,J]:7:3,' ');

Writeln(f1);

End;

Writeln(f1,' Cумма элементов всего массива ', SUM:7:3);

Writeln(f1,' Сумма элементов по диагонали ', S_Diag:7:3);

CloseFile(f1);

end;


Особенности ввода и вывода

Вывод информации на экран

Вывод информации всегда подразумевает вывод строк текста. Поэтому для вывода числовых констант и переменных их необходимо преобразовывать в текст следующими функциями:

IntToStr (целое число);

FloatToStr(вещественное число);

Str(число, строка);

В функции Str можно задавать форматируемый вывод, указывая после числа количество выводимых знаков и число знаков после точки (перед ними ставятся двоеточия).

Например, Str (-90.456:7:2, SS);

Для вывода информации на экран используется процедура

ShowMessage(Msg: string);

Здесь MSG – строка текста, заключенная в апострофы, или совокупность строк, соединенных знаком +.

Можно производить вывод числовых данных, символов, строк, арифметических выражений, элементов массивов, полей записей и других данных. Но предварительно все они должны быть преобразованы в строковую константу соответствующими функциями.

ShowMessage (‘Число сторон =’+IntToStr(5));

ShowMessage (‘Длина стороны =’+FloatToStr(5.25));

Для вывода можно использовать компоненты формы, у которых есть свойство CAPTION.

Form1.Caption:=’X=’+IntToStr(78);

Label1.Caption:=’Y=’+FloatToStr(567.89);

Компонент EDIT специально предусмотрен для ввода и вывода. Для вывода можно использовать его свойство TEXT.

Edit1.Text:= FloatToStr(-667.98);

Выводить можно прямо на форму (на канву), используя метод Canvas.TextOut (X, Y, строка), гдеX, Y – координаты точки начала вывода.

Например,

Str (S:7:2, SS);

Form1.Canvas.TextOut (20, 200, 'Площадь='+SS);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: