Определить является ли данная последовательность геометрической прогрессией - Free Pascal
Формулировка задачи:
Добрый день! Помогите пожалуйста с задачей. Надо сделать во Free Pascal БЕЗ использования массива. Задача: Вводится последовательность натуральных чисел. Признак конца ввода – 0. определить является ли последовательность геометрической прогрессией.
Решение задачи: «Определить является ли данная последовательность геометрической прогрессией»
textual
Листинг программы
var q : double; curr, prev : integer; isGeom : boolean = true; begin repeat write('->'); readln(curr); if (q = 0) and (prev > 0) then q := curr / prev; if curr <> 0 then begin isGeom := isGeom and ((prev = 0) or (curr / prev = q)); prev := curr; end; until curr = 0; writeln(isGeom); end.
Объяснение кода листинга программы
- Переменная
q
инициализируется значением 0. - Переменные
curr
иprev
инициализируются значениями 0. - Переменная
isGeom
инициализируется значением true. - Входим в цикл while, который продолжается до тех пор, пока значение переменной
curr
не станет равным 0. - На каждой итерации цикла пользователю выводится символ
->
, а затем считывается значение переменнойcurr
. - Если значение переменной
q
равно 0 и значение переменнойprev
больше 0, то значение переменнойq
присваивается результат деления значения переменнойcurr
на значение переменнойprev
. - Если значение переменной
curr
не равно 0, то выполняется следующая последовательность действий:- Значение переменной
isGeom
устанавливается в true, если значение переменнойprev
равно 0 или результат деления значения переменнойcurr
на значение переменнойprev
равен значению переменнойq
. - Значение переменной
prev
присваивается значение переменнойcurr
.
- Значение переменной
- После завершения цикла выводится значение переменной
isGeom
. - Если значение переменной
isGeom
равно true, то это означает, что данная последовательность является геометрической прогрессией.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д