ВВОД МАССИВА из файла 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);