Определить, образуют ли элементы файла арифметическую прогрессию - PascalABC.NET
Формулировка задачи:
Есть файл с числами,определить создают ли его элементы арифметическую прогресию
Решение задачи: «Определить, образуют ли элементы файла арифметическую прогрессию»
textual
Листинг программы
- var
- f: file of Integer;
- n1, n2, delta: Integer;
- begin
- Assign(f, 'd:\test\03.dat');
- Reset(f);
- var check: 0 .. 1;
- try
- read(f, n1, n2);
- delta := n2 - n1;
- try
- while not EOF(f) do
- begin
- n1 := n2;
- Read(f, n2);
- check := 1 div Ord((n2 - n1) = delta);
- end;
- WriteLn('в файле арифметическая прогрессия');
- except
- WriteLn( 'в файле не арифметическая прогрессия');
- end;
- except
- writeln( 'Недостаточно данных в файле');
- end;
- Close(f);
- end.
Объяснение кода листинга программы
- Объявляются переменные:
- f: file of Integer; - файл для чтения данных из файла
- n1, n2, delta: Integer; - для хранения первых двух элементов и разности между ними
- Устанавливается связь с файлом 'd:\test\03.dat' и считываются первые два элемента
- Вычисляется разность между вторым и первым элементом (delta)
- Запускается цикл, который считывает все элементы файла, начиная со второго
- Внутри цикла проверяется равенство разности между текущим и предыдущим элементом и разности, определенной на шаге 3. Если они равны, то переменной check присваивается значение 1, иначе 0
- После окончания цикла выводится сообщение о том, является ли последовательность арифметической прогрессией
- Если в процессе чтения файла возникла ошибка (EOF), то выводится сообщение о том, что в файле не арифметическая прогрессия
- Если в процессе чтения файла не хватило данных для вычисления прогрессии, то выводится сообщение об этом
- В любом случае файл закрывается после окончания работы с ним
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д