Создать файл, компоненты которого случайные целые числа - 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.

Объяснение кода листинга программы

  1. Объявляются переменные:
    • f, g: File Of Integer; - создаются файловые переменные для работы с целыми числами
    • numb: Integer; - переменная для хранения целого числа
    • i, n, count: Word; - переменные для работы с целыми числами и подсчета
  2. Запрашивается у пользователя количество чисел для генерации:
    • repeat...until - у пользователя запрашивается ввод количества чисел, пока не будет введено положительное число
  3. Генерируются случайные числа и записываются в файл:
    • Assign(f, 'f.dat'); ReWrite(f); - создается файл f.dat для записи
    • for i := 0 to n - 1 do - запускается цикл от 0 до n-1
    • numb := Random(5001) - 2500; - генерируется случайное число от -2500 до 2500
    • Write(f, numb); - число записывается в файл f.dat
  4. Числа из файла 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
  5. Закрываются файлы и выводится результат:
    • 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); - число выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы