
14.12.2007, 04:05
|
Активный
|
|
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
|
|
Код:
program FileOfInteger;
{$APPTYPE CONSOLE}
uses
Windows, SysUtils;
const
DATA_FILE_NAME = 'datafile.int';
MULT_FILE_NAME = 'multfile.int';
//------------------------------------------------------------------------------
// Вывод на экран строки
//------------------------------------------------------------------------------
procedure WriteStr(S: String);
var
Dst: Array [0..255] Of Char;
begin
AnsiToOem(PChar(S), Dst);
Writeln(Dst);
end;
//------------------------------------------------------------------------------
// Форматирование значения для вывода на экран
//------------------------------------------------------------------------------
function FmtVal(X:Integer): String;
begin
Result := Format('%6d', [X]);
end;
var
NumCount : Integer;
F1, F2 : File of Integer;
X, Y : Integer;
i : Integer;
begin
WriteStr('Введите число элементов (0 - выход):');
Readln(NumCount);
if NumCount = 0 then Halt;
Randomize;
// Записываем числа в файл ---------------------------------------------------
// Открыть файл для записи
Writeln;
WriteStr('Генерация и запись в файл:');
AssignFile(F1, DATA_FILE_NAME);
Rewrite(F1);
// Сгенерировать и записать числа
for i := 0 to NumCount - 1 do begin
X := Random(10); // Сгенерировать
Writeln(FmtVal(X)); // Показать число на экране
Write(F1, X); // Записать в файл
end;
// Закрыть файл
CloseFile(F1);
Writeln;
WriteStr('Суммирование и запись в файл:');
// Читаем числа из получившегося файла, перемножаем и пишем в другой ---------
// Открываем первый файл на чтение, второй на запись
AssignFile(F1, DATA_FILE_NAME);
Reset(F1);
AssignFile(F2, MULT_FILE_NAME);
Rewrite(F2);
Read(F1, X); // Прочитать первое число
for i := 1 to NumCount - 1 do begin
Read(F1, Y); // Прочитать следующее число
Write(FmtVal(X) + ' * ' + FmtVal(Y) + ' = ');
X := X * Y; // Перемножить
Writeln(FmtVal(X)); // Отобразить произведение на экране
Write(F2, X); // Записать произведение в файл
X := Y; // Сохраняем число для следующего шага
end;
// Закрыть файлы
CloseFile(F1);
CloseFile(F2);
Writeln;
WriteStr('Нажмите Enter.');
Readln;
end.
|