Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.doc
Скачиваний:
28
Добавлен:
22.05.2015
Размер:
422.4 Кб
Скачать

4.2 Задание №2

  1. Дан неубывающий массив положительных целых чисел a[1]≤a[2]≤…≤a[n]. Найти наименьшее целое положительное число, которое нельзя представить в виде суммы нескольких элементов этого массива (элемент массива должен быть использован один раз).

  2. Даны два массива: x[1] ≤… ≤ x[k], y[1] ≤ … ≤ y[l] и число q. Найти сумму вида x[i] + y[j], наиболее близкую к числу q (число действий порядка k + l, дополнительная память – фиксированное число переменных, массивы не изменять).

  1. Даны два массива x[1] ≤… ≤ x[k], y[1] ≤ … ≤ y[l]. Найти их «пересечение», т.е. массив z[1] ≤… ≤ z[m], содержащий их общие элементы, причем, кратность каждого элемента в массиве z равняется минимуму из его кратностей в массивах x и y .Число действий должно быть порядка k+ l.

  2. Дана матрица размера n*n. Развернуть ее на 90°, 180°, 270°. Сосчитать сумму элементов главной диагонали всех матриц и найти их определители.

  3. Массив целых чисел x[1] ... x[n] «свернуть в кольцо» и повернуть вправо на К позиций может быть больше n).

  4. Реализовать операции с очередью в массиве. Пусть очередь прирастает справа, убывает слева. Длина массива должна соответствовать длине очереди.

  1. Даны четыре матрицы размера m*n. Если элементы, стоящие на одинаковых позициях в этих матрицах, равны – поместить их в новую матрицу на соответствующие позиции. Остальные элементы новой матрицы приравнять к нулю. Найти определитель новой матрицы.

  1. Реализовать операции со стеком в массиве. Количество элементов в стеке должно соответствовать длине массива.

  2. В системе координат X, Y заданы координаты вершин выпуклого многоугольника: массив координат X; массив координат Y; число вершин многоугольника и координаты произвольной точки Q, Z. Определить, принадлежит ли точка Q, Z многоугольнику.

  3. В (0, 1)-матрице подсчитать число изолированных 0-областей, т.е. областей, состоящих из одних нулей. Отметим, что 0-область может состоять только из одного нулевого элемента. Например, для (0, 1)-матрицы вида А5х5 :

1 0 1 0 0

1 1 1 1 0

0 0 0 1 0

1 0 1 1 0

1 0 1 1 0 таких областей будет три.

  1. Написать программу формирования матрицы размером n * n, являющейся магическим квадратом.

  2. Доказать, что можно найти самый легкий и самый тяжелый из камней (одновременно), количество которых равно (2*n+1), сделав 3*n взвешиваний. Указание: разбить камни на пары (n пар и один камень) и сравнить камни внутри пар.

  1. Массив целых чисел x[1] ... x[n] (n – четное ) «свернуть в кольцо», а затем разбить его на два кольца, содержащих одинаковое число элементов.

  1. Используя массивы, реализовать основные операции над множествами:

  • определение принадлежности элемента a множеству S;

  • добавление элемента а в S;

  • удаление элемента а из S;

  • объединение элементов двух множеств.

  1. Разработать и запрограммировать нерекурсивный вариант алгоритма быстрой сортировки. [Указание. Для хранения упорядоченных пар (i, j) использовать магазин. Пара, хранящаяся в магазине, означает, что должны быть упорядочены элементы Xi, ..., Xj. Например, первоначально магазин должен был бы содержать пару (1, 8). После того, как значение Х5=5 выбрано в качестве среднего, пара (1, 8) должна быть удалена из магазина, а в магазин должны быть помещены пары (1, 4) и (6, 8). Алгоритм заканчивает работу, когда магазин пуст.]

  2. Описать процедуру sort(x), упорядочивающую по неубыванию числа массива x следующим методом: все числа из x упорядочить по последней цифре и перенести во вспомогательный массив y; затем числа из y упорядочить по предпоследней цифре (при равенстве этих цифр сохранять упорядоченность по последней цифре) и записать их снова в массив x; далее числа из x упорядочить по третьей от конца цифре и перенести в массив y и т.д. (Учесть, что в конце концов числа должны оказаться в x).

  3. Дан массив. Реализовать сортировку несколькими методами (перестановкой, выбором, вставкой).

  1. Дано предложение, слова в котором разделены произвольным числом пробелов. Вывести все слова предложения и все различные буквы, которые в них используются с указанием количества раз их использования. Определить слова с максимальным количеством гласных и согласных. Перестроить предложение так, чтобы слова в нем шли в обратном порядке.

  2. Даны три целые матрицы размером 94. Напечатать ту из них, где больше нулевых строк.

  3. type имя = (Алла, … , Юрий, нет);

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

  1. Даны вещественные матрицы A, B и C размером 1020 . Вычислить для каждой из них величину :

  2. Даны две целые квадратные матрицы 10-го порядка. Определить, можно ли отражениями относительно главной и побочной диагоналей преобразовать одну из них в другую.

  3. Напечатать все цифры десятичной записи чисел 2500 и 1!+2!+3!+…+100!. (Рекомендация: представить «длинные» натуральные числа в виде массивов из цифр и реализовать нужные операции над ними).

  4. Дано n вещественных чисел (n=100). Упорядочить их по неубыванию методом фон Неймана: завести два массива A и B и записать исходные числа в А; упорядочить пары соседних чисел (A1 и А2, А 3 и А 4 и т.д.) и записать их В; взять из В по две соседние упорядоченные пары и, слив их в упорядоченные четверки, снова записать в А; затем каждые две соседние четверки из В слить в упорядоченные восьмерки и перенести в А и т.д.

  5. Описать логическую функцию поиск (s, ss, k, n), проверяющую, входит ли подстрока ss в ту часть строки s, которая начинается с k-й позиции, и, если входит, присваивающую параметру n номер позиции, с которой начинается первое вхождение ss в эту часть строки s. Используя данную функцию, заменить в строке x все вхождения подстроки y в подстроку z.

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

  7. Заданный вещественный массив из n различных элементов (n=100) упорядочить по возрастанию следующим методом быстрой сортировки: выбрать какой-нибудь (например, средний) элемент массива и переставить элементы массива так, чтобы слева от выбранного элемента оказались только меньшие элементы, а справа – только большие (тем самым выбранный элемент окажется на своем окончательном месте), после чего рекурсивно применить этот же метод к левой и правой частям массива.

  8. Дан двумерный массив. Рассматривая его построчно, написать программу, удаляющую дубликаты строк (сделать так, чтобы строки не повторялись).

  1. Массив целых чисел x[1] ... x[n]использовать для формирования кольцевого списка и организовать следующие операции обработки списка:

  • создать копию списка;

  • добавить элемент в начало списка;

  • удалить n-й элемент из списка;

  • вставить элемент после n-го элемента списка.

  1. Дана последовательность из n*m цифр. Найти среднее арифметическое значение этой последовательности и переставить в ней цифры так, чтобы, разбив эту последовательность на n групп по m элементов, получить среднее арифметическое значение каждой группы, приблизительно (с точностью ) равное среднему арифметическому значению всей последовательности.

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

  3. В данном массиве целых чисел найти и вывести все те числа, цифры которых представляют упорядоченную последовательность.

  4. В данном массиве целых чисел найти и вывести те числа, все цифры которых не превосходят вводимое с клавиатуры значение.

  5. Входная данная строка символов может содержать целые числа. Выделить их и найти максимальное из них.

  6. Реализовать стек, используя массив. Количество элементов в стеке должно соответствовать длине массива.

Поменять местами первый и последний элементы стека, а затем развернуть стек, т.е. «дно» стека сделать вершиной, а вершину – «дном».

  1. Реализовать стек, используя массив. Количество элементов в стеке должно соответствовать длине массива. Удалить элемент, который находится в середине стека, если нечетное число элементов, а если четное, то два средних. Затем удалить каждый второй элемент стека.

  2. Массив целых чисел x[1] ... x[n]«свернуть в кольцо» и упорядочить элементы в списке по возрастанию. Вставить в кольцо три произвольных числа и переупорядочить его по убыванию.

  3. «Поле чудес». Программа читает из файла слово и его описание. Игрок пытается угадать слово, вводя буквы. Угаданные буквы открываются. Предусмотреть подсчет очков и возможность участия нескольких игроков (1, 2 или 3).

  4. В файле хранится следующая информация: названия ПК (модель), их производительность, год выпуска и цена. По запросу пользователя обеспечить вывод всех ПК, удовлетворяющих запросу и отсортировать их по любому параметру. Запрос может быть как по одному, так и по нескольким параметрам.

  5. Элементами динамического списка являются записи, в которых хранится информация о студентах ФКТАС: имя, фамилия, группа и оценки за последнюю сессию. Обеспечить ввод этих данных и разбить всех студентов в новые списки по группам, элементами которых являются записи с полями: группа, количество студентов в группе, массив с фамилиями студентов (отсортированный по алфавиту), средний балл группы за сессию. Найти лучшую по успеваемости группу.

  6. В тексте встречаются различные символы, числа, а также знаки математических операций: +, -, *, /. Прочитать текст слева направо, выделяя из него числа и производя над ними заданные математические операции. (Например, текст оры!№;12ппр+?5пр дает результат 17.)

  7. Даны 50 слов различной длины. В тексте эти слова «зашумлены» – т.е. некоторые буквы заменены другими буквами или символами. Обеспечить «распознавание» этих слов по наибольшему соответствию образцам и выдать «чистый» текст.

  8. Заданы координаты n городов (А,Б,В,…). По введенным названиям городов, времени отправления и средней скорости поезда вычислить время его прибытия из первого города во второй.

  9. Игра «Память». Вывести таблицу 10x10 из символов или букв на несколько секунд для запоминания (предусмотреть изменения количества секунд). Затем закрыть таблицу. При угадывании двух одинаковых ячеек они остаются открытыми. При несовпадении обе ячейки закрываются. Цель игры – открыть все ячейки. Вести учет времени, на основании которого начислять очки.