Задача 1 Односвязный список задан указателем на первый элемент. функцию, переставляющую элементы списка в обратном порядке. Написать Задача 2 Простой способ шифровки текста, состоящего из строчных латинских букв и знаков препинания, состоит в замене каждой буквы на букву с заданным циклическим сдвигом n ( если сдвиг 1, то "a" заменяется на "в","в" на "c", "z" на "a"; если сдвиг 2, то "a" заменяется на "c", "y" на "a", "z" на "в"). Написать процедуры зашифровки и расшифровки текста. Исходный текст берется из файла, результаты помещаются в другой файл. Задача 3 Многочлен от двух переменных задается в виде матрицы вещественных коэффициентов, в позиции (i,j) стоит коэффициент при xi yj. Найти произведение двух многочленов, заданных таким образом. Задача 4 Дана непустая последовательность слов, составленных из строчных латинских букв; между соседними словами пробел, в конце - точка. Написать программу, которая печатает в алфавитном порядке все согласные буквы, которые входят только в одно единственное слово. Задача 5 Составить программу для перевода числа из одной позиционной системы счисления в другую. Цифры, большие 9, обозначить латинскими буквами А, В, С,... Основания систем счисления не больше 30. Задача 6 Простое число называется числом Мерсена, если оно может быть представлено в виде 2р-1, где р — тоже простое число. Найти все числа Мерсена, меньшие данного n. Задача 7 Время суток представлено в виде записи, содержащей информацию о часе, минутах и секундах. Написать процедуру, которая увеличивает значение времени на n секунд (после 23:59:59 идет 00:00:00) Задача 8 Дана последовательность целых чисел a1, a2, ... длины не менее 3. Тройка ai, ai+1, ai+2 может иметь следующие комбинации знаков чисел ее составляющих: Ноль считается положительным числом. +++, ++-, +-+, +--, -++, -+-, --+, ---. Для последовательности троек найти значение в0, ..., в7, равные числам вхождений с соответствующей комбинацией знаков (тройками являются подпоследовательности <a1, a2, a3>, <a2, a3, a4> и т.д.) Задача 9 Составить программу для выдачи распределения слов во входном тексте по их длине (сколько слов из одной буквы, сколько из двух и т.д.). Слова состоят из строчных латинских букв и отделяются разделителями или пробелами. Задача 10 Ориентированный граф задан матрицей которые есть путь из данной. смежности. Найти все вершины, в Задача 11 Задано двоичное дерево, элементами которого являются целые числа. Написать рекурсивную функцию для нахождения наибольшего элемента дерева. Задача 12 В файле целых чисел подсчитать количество элементов равных минимальному (файл просмотреть один раз). Задача 13 Написать процедуру, которая объединяет два упорядоченных по невозрастанию списка в один упорядоченный по неубыванию, строя новый список. Элементы списков — целые числа. Задача 14 Имеется файл, содержащий информацию о деталях на складе. Для каждой детали задано название (не более 10 символов), код - целое число, количество - целое число. Файл упорядочен по возрастанию кода. Имеется файл-заявка с аналогичной структурой. Напечатать названия и количество недостающих деталей (тех, которых нет или не хватает для удовлетворения заявки). Задача 15 Гамма-функция Г(x) обладает свойством: Г(x+1)=xГ(x). Пусть задана таблица приближенных значений функции на отрезке от x=1.00 до x=2.00 с шагом 0.01. Описать рекурсивную функцию, приближенно вычисляющую Г(x) с помощью этой таблицы. Задача 16 Дан массив A целых чисел размером 15 на 20 и логический вектор B длиной 15. По заданным значениям массива A построить вектор B, присвоив его kому элементу значение TRUE, если k-ая строка массива A симметрична, и значение FALSE в противном случае. Задача 17 Задана матрица A размером n на m. Построить матрицу B, такую что элемент B[i,j] равен произведению показанных на рисунке элементов матрицы A. j _______________ | | | | i | **********| | **********| | **********| Задача 18 Анкета студента содержит: фамилию, номер группы, набор (не более 10)слушаемых курсов лекций. Составить программу, производящую ввод массива анкет и печатающую списки фамилий студентов, слушающих каждый курс лекций. Задача 19 Написать функцию вычисления высоты двоичного дерева, то есть длины самого длинного пути от корня к листу. Задача 20 Дана последовательность вещественных чисел. Написать процедуру, которая строит по этой последовательности два односвязных списка, первый из которых содержит все неповторяющиеся положительные числа последовательности, а второй - все неповторяющиеся отрицательные Задача 21 Анкета студента содержит: фамилию, номер группы, список слушаемых курсов лекций. Составить программу, отыскивающую такие пары студентов (фамилии), которые не слушают одинаковые лекции. Задача 22 Проверить, является ли исходный текст арифметическим выражением, составленным из однобуквенных идентификаторов, скобок и знаков '+' и ''. Задача 23 Выражение определяется следующими правилами: <выражение> ::= <цифра> | (<выражение> <знак> <цифра>) <знак> :: = + | - | * <цифра> :: = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Выражение можно представить в виде двоичного дерева, в узлах которого находятся знаки операций, а в листьях - символьное изображение цифр. Написать рекурсивную функцию, вычисляющую по заданному дереву значение соответствующего выражения. Задача 24 Два натуральных числа представлены в k-ичной системе счисления как строки "цифр" - натуральных чисел из интервала [0..9]. Найти аналогичное представление для разности заданных чисел. Задача 25 В каждой вершине бинарного дерева хранится вещественное число. Написать функцию, которая находит разницу между максимальным и минимальным числом в дереве (0 - для пустого дерева) Задача 26*** Выражение определяется следующими правилами: <выражение> ::= <цифра> | (<выражение> <знак> <цифра>) <знак> :: = + | – | * <цифра> :: = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Выражение можно представить в виде двоичного дерева, в узлах которого находятся знаки операций, а в листьях - символьное изображение цифр. Написать рекурсивную процедуру, которая по записи выражения в текстовом файле строит соответствующее дерево(пробелы в тексте отсутствуют, выражение правильно). Задача 27 Граф задан списком дуг в файле. Определить его число вершин. Задача 28 Граф задан списком дуг в файле. Построить его представление списками смежности. Задача 30 Написать функцию, выполняющую подсчет числа листьев произвольного бинарного дерева Задача 31 Дано произвольное целое число K и массив. Считая, что за последним элементом массива снова идет 1-й, с минимальным числом операций переставить каждый элемент на K позиций вперед (использовать дополнительный массив нельзя). Задача 32 Составить программу подсчета заданном битовом массиве. количества пар рядом стоящих единиц в Задача 35 Вычислить квадратный корень из заданного числа, используя только операции +, /, *. Задача 36 Указать то число заданного множества представлении которого больше всего единиц. целых чисел, в двоичном Задача 37 Пусть дано двоичное дерево Т, в вершинах которого записаны символы. Описать процедуру или функцию, которая печатает все элементы дерева Т по уровням: сначала — из корня дерева, затем (слева направо) — из вершин, дочерних по отношению к корню, затем (также слева направо) — из вершин, дочерних по отношению к этим вершинам, и т. д. Задача 38 Пусть дано двоичное дерево Т, в вершинах которого записаны целые числа. Описать процедуру или функцию, которая находит в непустом дереве Т длину пути от корня до ближайшей вершины с элементом Е. Если Е не входит в Т, за ответ принять –1. Задача 39 Описать процедуру или функцию, которая подсчитывает число вершин на n-ом уровне непустого двоичного дерева Т (корень считать вершиной 0-го уровня).