Создать файл, компоненты которого случайные целые числа - Pascal
Формулировка задачи:
1. Используя типизированные файлы(вывод исходного и вновь создаваемого файлов осуществить программным путем).
Создать файл, компоненты которого случайные целые числа. Подсчитать, сколько из них нечетных или кратных трем.
Создать новый файл, содержащий такие числа.
2. Выполнить предыдущее задание, используя текстовые файлы.
Решение задачи: «Создать файл, компоненты которого случайные целые числа»
textual
Листинг программы
{$MODE TP} var f, g: File Of Integer; numb: Integer; i, n, count: Word; begin repeat Write('How much numbers to generate? '); ReadLn(n); until (n > 0); Write('Generated array:'); Assign(f, 'f.dat'); ReWrite(f); for i := 0 to n - 1 do begin numb := Random(5001) - 2500; Write(numb:6); Write(f, numb); end; Close(f); ReSet(f); Assign(g, 'g.dat'); ReWrite(g); count := 0; WriteLn; while (Not EoF(f)) do begin Read(f, numb); if ((Odd(numb)) Or (numb mod 3 = 0)) then begin Inc(count); Write(g, numb); end; end; Close(f); Close(g); WriteLn('Asnwer: ', count); ReSet(g); while (Not EoF(g)) do begin Read(g, numb); Write(numb:6); end; Close(g); end.
Объяснение кода листинга программы
- Объявляются переменные:
f, g: File Of Integer;
- создаются файловые переменные для работы с целыми числамиnumb: Integer;
- переменная для хранения целого числаi, n, count: Word;
- переменные для работы с целыми числами и подсчета
- Запрашивается у пользователя количество чисел для генерации:
repeat...until
- у пользователя запрашивается ввод количества чисел, пока не будет введено положительное число
- Генерируются случайные числа и записываются в файл:
Assign(f, 'f.dat'); ReWrite(f);
- создается файлf.dat
для записиfor i := 0 to n - 1 do
- запускается цикл от 0 до n-1numb := Random(5001) - 2500;
- генерируется случайное число от -2500 до 2500Write(f, numb);
- число записывается в файлf.dat
- Числа из файла f.dat проверяются на условия (нечетность и кратность 3):
Assign(g, 'g.dat'); ReWrite(g);
- создается файлg.dat
для записиwhile (Not EoF(f)) do
- пока не достигнут конец файлаRead(f, numb);
- считывается число из файлаif ((Odd(numb)) Or (numb mod 3 = 0))
- проверяется, удовлетворяет ли число условиямInc(count); Write(g, numb);
- если число подходит, увеличивается счетчик и число записывается в файлg.dat
- Закрываются файлы и выводится результат:
Close(f); Close(g);
- закрываются файлыf.dat
иg.dat
WriteLn('Asnwer: ', count);
- выводится количество чисел, удовлетворяющих условиямReSet(g);
- файлg.dat
открывается для чтенияwhile (Not EoF(g)) do
- пока не достигнут конец файлаg.dat
Read(g, numb);
- считывается число из файлаg.dat
Write(numb:6);
- число выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д