Подсчитайте количество всех возможных линейных троек - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Упорядоченная тройка чисел (s1,s2,s3) называется линейной, если равны разности s2-s1 и s3-s2. Например: (1,2,3), (2,4,6), (14,21,28). Вам дано отсортированное множество из N (3 <= N <= 30) уникальных целых чисел в диапазоне от 1 до 100. Подсчитайте количество всех возможных линейных троек, которые можно из них сформировать.

Решение задачи: «Подсчитайте количество всех возможных линейных троек»

textual
Листинг программы
  1. {Упорядоченная тройка чисел (s1,s2,s3) называется линейной, если
  2. равны разности s2-s1 и s3-s2. Например: (1,2,3), (2,4,6), (14,21,28).
  3. Вам дано отсортированное множество из N (3 <= N <= 30) уникальных целых
  4. чисел в диапазоне от 1 до 100. Подсчитайте количество всех возможных
  5. линейных троек, которые можно из них сформировать.}
  6. const
  7.   n=6;
  8. var
  9.   x:array [1..n] of word;
  10.   k,i:word;
  11. function IfLinear(s1,s2,s3:word):boolean;
  12. begin
  13.   IfLinear:=(s2-s1)=(s3-s2);
  14. end;
  15. begin
  16.   k:=0;
  17.   x[1]:=2; x[2]:=4; x[3]:=6; x[4]:=14; x[5]:=21; x[6]:=28;
  18.   for i:=2 to n-1 do
  19.     if iflinear(x[i-1],x[i],x[i+1]) then
  20.       inc(k);
  21.   writeln('Количество всех возможных линейных троек: ',k);
  22.   readln;
  23. end.

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

  1. Введенные данные:
    • Отсортированное множество из N уникальных целых чисел в диапазоне от 1 до 100, где 3 <= N <= 30.
    • N = 6.
    • Введенная сортировка может быть использована для оптимизации поиска линейных троек.
    • Переменная k инициализируется значением 0 и используется для подсчета количества линейных троек.
    • Переменная i используется в цикле для итерации по элементам массива x.
    • Функция IfLinear(s1,s2,s3:word):boolean) используется для проверки, является ли тройка чисел линейной.
    • Если условие (s2-s1)=(s3-s2) выполняется, то функция возвращает true, иначе - false.
    • Исходя из определения, линейная тройка чисел (s1,s2,s3) имеет одинаковые разности s2-s1 и s3-s2.
    • Исходя из этого, для проверки линейности тройки чисел достаточно проверить равенство этих разностей.
    • В цикле проверяются все возможные тройки чисел, начиная с элемента x[2] и заканчивая x[n-1].
    • Если тройка чисел является линейной, то к переменной k прибавляется единица.
    • В конце программы выводится количество всех возможных линейных троек (значение переменной k) и запрашивается ввод.
  2. Список действий:
    • Инициализация переменной k значением 0.
    • Инициализация элементов массива x значениями 2, 4, 6, 14, 21, 28.
    • Цикл начинается с элемента x[2] и заканчивается x[n-1].
    • Проверка, является ли текущая тройка чисел линейной, с помощью функции IfLinear(x[i-1],x[i],x[i+1]).
    • Если тройка чисел является линейной, то к переменной k прибавляется единица.
    • После завершения цикла выводится количество всех возможных линейных троек (значение переменной k).
    • Запрос ввода для завершения программы.

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


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

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

10   голосов , оценка 4.3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы