Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачник.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
3 Мб
Скачать
☆

Сортировка массивов и файлов Системы счисления Связное представление данных в памяти

  1. Описать функцию, которая:

    1. определяет, является ли цепочка L пустой;

    2. находит среднее арифметическое элементов цепочки L (цепочка содержит числовые данные);

    3. заменяет в цепочке L все вхождения значения e1 на e2;

    4. меняет местами первый и последний элементы цепочки L;

    5. проверяет, упорядочены ли элементы цепочки L по алфавиту (цепочка содержит строковые данные);

    6. находит сумму последнего и предпоследнего элементов цепочки.

  2. Описать функцию, подсчитывающую количество слов цепочки L, которые:

    1. начинаются и оканчиваются одной и той же литерой;

    2. начинаются с той же литеры, что и следующее слово;

    3. совпадают с последним словом.

  3. Описать функцию, которая вставляет:

    1. в начало цепочки L новый элемент e;

    2. в конец цепочки L новый элемент e;

    3. новый элемент e после первого элемента цепочки L;

    4. в цепочку L новый элемент e1 за каждым вхождением элемента e;

    5. в цепочку L новый элемент e1 перед первым вхождением элемента e;

    6. в цепочку L пару новых элементов e1, e2 перед ее последним элементом;

    7. в цепочку L, элементы которой упорядочены по неубыванию, новый элемент e так, чтобы сохранилась упорядоченность.

  4. Описать функцию, которая удаляет:

    1. из цепочки L первый элемент;

    2. из цепочки L второй элемент;

    3. из цепочки L за каждым вхождением элемента e один элемент, если он есть и отличен от нуля;

    4. из цепочки L последний элемент;

    5. из цепочки L первый отрицательный элемент (цепочка содержит числовые данные);

    6. из цепочки L все отрицательные элементы (цепочка содержит числовые данные).

  5. Описать функцию, которая:

    1. проверяет на равенство цепочки L1 и L2;

    2. проверяет, входит ли цепочка L1 в цепочку L2;

    3. проверяет, есть ли в цепочке L хотя бы два одинаковых элемента;

    4. переносит в конец цепочки L ее первый элемент;

    5. переносит в начало цепочки L ее последний элемент;

    6. добавляет в конец цепочки L1 все элементы цепочки L2;

    7. вставляет в цепочку L за первым вхождением элемента e все элементы цепочки L1;

    8. переворачивает цепочку L, т. е. изменяет ссылки в этой цепочке так, чтобы ее элементы оказались расположенными в обратном порядке.

  6. Многочлен с целыми коэффициентами можно представить в виде цепочки, в каждом звене которой хранятся коэффициент и степень, причем, если , то соответствующее звено не включается в цепочку. Описать тип данных, соответствующий такому представлению многочленов, и определить подпрограммы для работы с этими многочленами:

    1. подпрограмму, проверяющую на равенство два многочлена;

    2. подпрограмму, вычисляющую значение многочлена в целочисленной точке;

    3. подпрограмму, которая по заданному многочлену строит его производную;

    4. подпрограмму, которая строит сумму двух многочленов;

    5. подпрограмму печати многочлена от переменной, однобуквенное имя которой является значением параметра;

    6. подпрограмму, которая считывает из входного файла безошибочную запись многочлена и формирует его представление.

  7. Во входном файле записана без ошибок формула следующего вида: <формула>::=<цифра>|(<формула><знак><формула>) <знак>::=+|-|* <цифра>::=0|1|2|3|4|5|6|7|8|9 Вычислить значение этой формулы.

  8. Описать рекурсивную функцию, которая возводит вещественное число в целую степень согласно формуле

  9. Рекурсивно описать функцию С(m, n), где 0≤m≤n, для вычисления биномиального коэффициента по следующей формуле: ; при 0<m<n.

  10. Пусть имена заданы перечислимым типом. Описать функцию, проверяющую, является ли человек с некоторым именем потомком человека с другим конкретно заданным именем. Предполагается, что уже описаны функции, возвращающие имена отца и матери соответственно для человека с конкретно заданным именем.

  11. Пусть имена заданы перечислимым типом. Описать функцию, проверяющую, является ли человек с некоторым именем потомком человека с другим конкретно заданным именем. Предполагается, что уже описаны функции, возвращающие число детей человека с конкретно заданным именем, и функция, возвращающая имя к-ого ребенка человека с конкретно заданным именем.