Задачи по теме "Последовательности"

Во всех задачах исходные данные читаются из файла "input.txt" в текущей директории. Ответ должен быть записан в выходной файл "output.txt". Программу требуется оформить так, чтобы функция main только открывала файл и затем вызывала функцию, решающую нужную задачу. Этой функции передается указатель на открытый файл, из которого она должна считывать последовательность чисел и при необходимости дополнительные параметры задачи. При этом заранее неизвестна длина последовательности. Последовательность допускается просматривать только один раз.

Получив ответ от вызванной функции, функция main должна закрыть входной файл и записать полученный ответ в выходной файл "output.txt", после чего вернуть значение 0 операционной системе (ноль означает успешное завершение программы). Если файл "input.txt" невозможно открыть на чтение или файл "output.txt" — на запись, то функция main должна вернуть значение -1.

Список задач

  1. Подсчитать среднее арифметическое элементов последовательности вещественных чисел.
  2. Подсчитать среднее геометрическое элементов последовательности положительных вещественных чисел.
  3. Подсчитать среднее гармоническое элементов последовательности положительных вещественных чисел.
  4. В последовательности вещественных чисел подсчитать количество чисел, больших предыдущего.
  5. Определить, есть ли в последовательности целых чисел число x. Число x записано в начале файла "input.txt", затем идут элементы последовательности. Программа должна напечатать ответ "yes", если есть, и "no", если нет.
  6. Определить номер последнего числа, равного x, в последовательноси целых чисел. Число x записано в начале файла "input.txt", затем идут элементы последовательности. Номера начинаются с нуля. Если числа x нет в последовательности, то результат должен быть равен -1.
  7. Определить, все ли элементы последовательности целых чисел равны между собой. Программа должна напечатать ответ "yes", если да, и "no", если нет.
  8. Найти число перемен знака в последовательности вещественных чисел. Число 0 считается положительным.
  9. Определить, является ли последовательность нестрого возрастающей, нестрого убывающей или не той и не другой. Последовательность нестрого возрастает (не убывает), если каждый ее следующий элемент не меньше предыдущего, аналогично определяется нестрогое убывание (невозрастание). Программа должна напечатать число 1, если последовательность нестрого возрастающая, -1, если нестрого убывающая, и 0, если она не обладает ни одним из этих свойств. (Для постоянной последовательности любой из ответов 1 и -1 считается верным.)
  10. Определить, удовлетворяют ли элементы последовательности {xi} целых чисел данному рекуррентному соотношению
         a xi + b xi+1 + c xi+2 = d.
    Целые числа a, b, c, d записаны в начале файла "input.txt", затем идут элементы последовательности, ее длина не меньше трех. Программа должна напечатать ответ "yes", если да, и "no", если нет.
  11. Определить количество различных элементов целой неубывающей последовательности.
  12. Определить общее количество элементов в постоянных участках целочисленной последовательности. (Считаем, что постоянный участок последовательности состоит не менее чем из двух элементов.)
  13. Определить порядковый номер первого числа, равного максимуму по всей целочисленной последовательности. Элементы нумеруются с нуля.
  14. Определить номер последнего числа, равного минимуму по всей целочисленной последовательности. Элементы нумеруются с нуля.
  15. В последовательности целых чисел определить количество элементов, равных минимальному числу по всей последовательности.
  16. Для последовательности вещественных чисел найти среднее квадратичное отклонение от среднего арифметического (дисперсию случайной величины)
         D = (∑i (xi - M)2) / (n - 1),
    где M — среднее арифметическое. Считаем, что последовательность содержит не менее двух элементов.
  17. Найти величину максимального отклонения элементов последовательности вещественных чисел от их среднего арифметического.
  18. Найти количество строго возрастающих участков последовательности целых чисел. (Считаем, что строго возрастающий участок последовательности состоит не менее чем из двух элементов.)
  19. Найти сумму четных элементов во всех строго возрастающих участках целочисленной последовательности. (Четность определяется по значению элемента, а не по его номеру. Считаем, что строго возрастающий участок последовательности состоит не менее чем из двух элементов.)
  20. Определить, каких участков в последовательности целых чисел больше: строго возрастающих или нестрого убывающих. Например, в последовательности
         1, 2, 3, 3, 4, 5, 6, 5, 4, 3, 3, 4
    выделяются участки
         1, 2, 3,
         3, 3,
         3, 4, 5, 6,
         6, 5, 4, 3, 3,
         3, 4.
    Таким образом, в ней 3 возрастающих и 2 невозрастающих участка. Программа должна напечатать разность между числом возрастающих и невозрастающих участков, в данном примере ответ = 1.
  21. Найти элемент, который встречается наибольшее число раз в неубывающей (т.е. нестрого возрастающей) последовательности целых чисел. Если таких элементов несколько, то найти самый первый элемент.
  22. Найти количество элементов в самом длинном постоянном участке целочисленной последовательности. (Считаем, что постоянный участок может состоять и из одного элемента.)
  23. Найти количество элементов в постоянном участке целочисленной последовательности с наибольшей суммой элементов этого участка. (Считаем, что постоянный участок может состоять и из одного элемента.)
  24. Найти длину строго возрастающего участка целочисленной последовательности с наибольшим количеством элементов. (Считаем, что строго возрастающий участок последовательности состоит как минимум из двух элементов, т.е. последовательность может вообще не содержать подобных участков.)
  25. Найти наибольшую сумму строго возрастающего участка целочисленной последовательности, т.е. максимум из сумм элементов по всем строго возрастающим участкам. (Считаем, что строго возрастающий участок последовательности состоит как минимум из двух элементов, т.е. последовательность может вообще не содержать подобных участков.)
  26. Найти число локальных максимумов последовательности целых чисел. Рассматриваются нестрогие максимумы: элемент считается нестрогим локальным максимумом, если у него нет соседей, строго больших, чем он сам. В частности, если в последовательности все элементы равны, то все они являются локальными максимумами.
  27. Найти среднее арифметическое значений элементов целочисленной последовательности, учитывая значения в постоянных участках только один раз.
  28. Найти наибольший общий делитель элементов целочисленной последовательности.
  29. Найти наименьшее общее кратное элементов целочисленной последовательности.
  30. Найти максимальную сумму нескольких подряд идущих элементов последовательности вещественных чисел. (Максимум берется по всем непрерывным участкам внутри последовательности, включая и всю последовательность.)
  31. Последовательность вещественных чисел представляет собой коэффициенты многочлена p(x) по возрастанию степеней. Вычислить значение производной многочлена в заданной точке x = t. Файл "input.txt" содержит сначала значение t и затем последовательность коэффициентов многочлена.
  32. Последовательность вещественных чисел представляет собой коэффициенты многочлена p(x) по убыванию степеней. Вычислить значение производной многочлена в заданной точке x = t. Файл "input.txt" содержит сначала значение t и затем последовательность коэффициентов многочлена.