Задание №2. Языки программирования
Описать процедуру sort (x), упорядочивающую по неубыванию числа массива x следующим методом: все числа из x упорядочить по последней цифре и перенести во вспомогательный массив y; затем числа из y упорядочить по предпоследней цифре (при равенстве этих цифр сохранять упорядоченность по последней цифре) и записать их снова в массив x; далее числа из x упорядочить по третьей от конца цифре… Читать ещё >
Задание №2. Языки программирования (реферат, курсовая, диплом, контрольная)
Дан неубывающий массив положительных целых чисел a[1]?a[2]??a[n]. Найти наименьшее целое положительное число, которое нельзя представить в виде суммы нескольких элементов этого массива (элемент массива должен быть использован один раз).
Даны два массива: x[1]? ? x[k], y[1]? ? y[l] и число q. Найти сумму вида x[i] + y[j], наиболее близкую к числу q (число действий порядка k + l, дополнительная память — фиксированное число переменных, массивы не изменять).
Даны два массива x[1]? ? x[k], y[1]? ? y[l]. Найти их «пересечение», т. е. массив z[1]? ? z[m], содержащий их общие элементы, причем, кратность каждого элемента в массиве z равняется минимуму из его кратностей в массивах x и y. Число действий должно быть порядка k+ l.
Дана матрица размера n*n. Развернуть ее на 90°, 180°, 270°. Сосчитать сумму элементов главной диагонали всех матриц и найти их определители.
Массив целых чисел x[1] … x[n] «свернуть в кольцо» и повернуть вправо на К позиций (К может быть больше n).
Реализовать операции с очередью в массиве. Пусть очередь прирастает справа, убывает слева. Длина массива должна соответствовать длине очереди.
Даны четыре матрицы размера m*n. Если элементы, стоящие на одинаковых позициях в этих матрицах, равны — поместить их в новую матрицу на соответствующие позиции. Остальные элементы новой матрицы приравнять к нулю. Найти определитель новой матрицы.
Реализовать операции со стеком в массиве. Количество элементов в стеке должно соответствовать длине массива.
В системе координат X, Y заданы координаты вершин выпуклого многоугольника: массив координат X; массив координат Y; число вершин многоугольника и координаты произвольной точки Q, Z. Определить, принадлежит ли точка Q, Z многоугольнику.
В (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 таких областей будет три.
Написать программу формирования матрицы размером n * n, являющейся магическим квадратом.
Доказать, что можно найти самый легкий и самый тяжелый из камней (одновременно), количество которых равно (2*n+1), сделав 3*n взвешиваний. Указание: разбить камни на пары (n пар и один камень) и сравнить камни внутри пар.
Массив целых чисел x[1] … x[n] (n — четное) «свернуть в кольцо», а затем разбить его на два кольца, содержащих одинаковое число элементов.
Используя массивы, реализовать основные операции над множествами:
определение принадлежности элемента a множеству S;
добавление элемента, а в S;
удаление элемента, а из S;
объединение элементов двух множеств.
Разработать и запрограммировать нерекурсивный вариант алгоритма быстрой сортировки. [Указание. Для хранения упорядоченных пар (i, j) использовать магазин. Пара, хранящаяся в магазине, означает, что должны быть упорядочены элементы Xi, …, Xj. Например, первоначально магазин должен был бы содержать пару (1, 8). После того, как значение Х5=5 выбрано в качестве среднего, пара (1, 8) должна быть удалена из магазина, а в магазин должны быть помещены пары (1, 4) и (6, 8). Алгоритм заканчивает работу, когда магазин пуст.].
Описать процедуру sort (x), упорядочивающую по неубыванию числа массива x следующим методом: все числа из x упорядочить по последней цифре и перенести во вспомогательный массив y; затем числа из y упорядочить по предпоследней цифре (при равенстве этих цифр сохранять упорядоченность по последней цифре) и записать их снова в массив x; далее числа из x упорядочить по третьей от конца цифре и перенести в массив y и т. д. (Учесть, что в конце концов числа должны оказаться в x).
Дан массив. Реализовать сортировку несколькими методами (перестановкой, выбором, вставкой).
Дано предложение, слова в котором разделены произвольным числом пробелов. Вывести все слова предложения и все различные буквы, которые в них используются с указанием количества раз их использования. Определить слова с максимальным количеством гласных и согласных. Перестроить предложение так, чтобы слова в нем шли в обратном порядке.
Даны три целые матрицы размером 9?4. Напечатать ту из них, где больше нулевых строк.
type имя = (Алла,, Юрий, нет);
Предполагая уже описанные функции Отец (х) и Мать (х), значениями которых являются имена соответственно отца и матери человека по имени х или идентификатор нет, если отсутствуют сведения о соответствующем родителе, описать логическую функцию Потомок (а, b).
Даны вещественные матрицы A, B и C размером 10?20. Вычислить для каждой из них величину :
Даны две целые квадратные матрицы 10-го порядка. Определить, можно ли отражениями относительно главной и побочной диагоналей преобразовать одну из них в другую.
Напечатать все цифры десятичной записи чисел 2500 и 1!+2!+3!++100! (Рекомендация: представить «длинные» натуральные числа в виде массивов из цифр и реализовать нужные операции над ними).
Дано n вещественных чисел (n=100). Упорядочить их по неубыванию методом фон Неймана: завести два массива A и B и записать исходные числа в А; упорядочить пары соседних чисел (A1 и А2, А 3 и, А 4 и т. д.) и записать их В; взять из В по две соседние упорядоченные пары и, слив их в упорядоченные четверки, снова записать в А; затем каждые две соседние четверки из В слить в упорядоченные восьмерки и перенести в, А и т. д.
Описать логическую функцию поиск (s, ss, k, n), проверяющую, входит ли подстрока ss в ту часть строки s, которая начинается с k-й позиции, и, если входит, присваивающую параметру n номер позиции, с которой начинается первое вхождение ss в эту часть строки s. Используя данную функцию, заменить в строке x все вхождения подстроки y в подстроку z.
Описать функцию изм (x, y, z), которая в том из векторов (одномерных массивов) x, y и z, где больше всего отрицательных элементов (считать, что такой вектор один), все его положительные элементы заменяет: на их кубы, если это вектор x или вектор z, и на их обратные величины, если это вектор y.
Заданный вещественный массив из n различных элементов (n=100) упорядочить по возрастанию следующим методом быстрой сортировки: выбрать какой-нибудь (например, средний) элемент массива и переставить элементы массива так, чтобы слева от выбранного элемента оказались только меньшие элементы, а справа — только большие (тем самым выбранный элемент окажется на своем окончательном месте), после чего рекурсивно применить этот же метод к левой и правой частям массива.
Дан двумерный массив. Рассматривая его построчно, написать программу, удаляющую дубликаты строк (сделать так, чтобы строки не повторялись).
Массив целых чисел x[1] … x[n] использовать для формирования кольцевого списка и организовать следующие операции обработки списка:
создать копию списка;
добавить элемент в начало списка;
удалить n-й элемент из списка;
вставить элемент после n-го элемента списка.
Дана последовательность из n*m цифр. Найти среднее арифметическое значение этой последовательности и переставить в ней цифры так, чтобы, разбив эту последовательность на n групп по m элементов, получить среднее арифметическое значение каждой группы, приблизительно (с точностью ?) равное среднему арифметическому значению всей последовательности.
Подробно описать функцию перебора с возвратом, решающую следующую задачу: дано множество квадратов, общая площадь которых равна площади данного прямоугольника. Можно ли расположить квадраты так, чтобы покрыть прямоугольник?
В данном массиве целых чисел найти и вывести все те числа, цифры которых представляют упорядоченную последовательность.
В данном массиве целых чисел найти и вывести те числа, все цифры которых не превосходят вводимое с клавиатуры значение.
Входная данная строка символов может содержать целые числа. Выделить их и найти максимальное из них.
Реализовать стек, используя массив. Количество элементов в стеке должно соответствовать длине массива.
Поменять местами первый и последний элементы стека, а затем развернуть стек, т. е. «дно» стека сделать вершиной, а вершину — «дном».
Реализовать стек, используя массив. Количество элементов в стеке должно соответствовать длине массива. Удалить элемент, который находится в середине стека, если нечетное число элементов, а если четное, то два средних. Затем удалить каждый второй элемент стека.
Массив целых чисел x[1] … x[n] «свернуть в кольцо» и упорядочить элементы в списке по возрастанию. Вставить в кольцо три произвольных числа и переупорядочить его по убыванию.
«Поле чудес». Программа читает из файла слово и его описание. Игрок пытается угадать слово, вводя буквы. Угаданные буквы открываются. Предусмотреть подсчет очков и возможность участия нескольких игроков (1, 2 или 3).
В файле хранится следующая информация: названия ПК (модель), их производительность, год выпуска и цена. По запросу пользователя обеспечить вывод всех ПК, удовлетворяющих запросу и отсортировать их по любому параметру. Запрос может быть как по одному, так и по нескольким параметрам.
Элементами динамического списка являются записи, в которых хранится информация о студентах ФКТАС: имя, фамилия, группа и оценки за последнюю сессию. Обеспечить ввод этих данных и разбить всех студентов в новые списки по группам, элементами которых являются записи с полями: группа, количество студентов в группе, массив с фамилиями студентов (отсортированный по алфавиту), средний балл группы за сессию. Найти лучшую по успеваемости группу.
В тексте встречаются различные символы, числа, а также знаки математических операций: +, -, *, /. Прочитать текст слева направо, выделяя из него числа и производя над ними заданные математические операции. (Например, текст оры!№;12ппр+?5пр дает результат 17.).
Даны 50 слов различной длины. В тексте эти слова «зашумлены» — т. е. некоторые буквы заменены другими буквами или символами. Обеспечить «распознавание» этих слов по наибольшему соответствию образцам и выдать «чистый» текст.
Заданы координаты n городов (А, Б, В,). По введенным названиям городов, времени отправления и средней скорости поезда вычислить время его прибытия из первого города во второй.
Игра «Память». Вывести таблицу 10×10 из символов или букв на несколько секунд для запоминания (предусмотреть изменения количества секунд). Затем закрыть таблицу. При угадывании двух одинаковых ячеек они остаются открытыми. При несовпадении обе ячейки закрываются. Цель игры — открыть все ячейки. Вести учет времени, на основании которого начислять очки.
Дополнительные задания
Разработка БД на языке C#.
Классы на языке C#.
Разработка справочной системы на языке C#.
Программирование сокетов на языке C#.
Реализация метода Симпсона на языке C#.
Примечание. Студент может выбрать любую другую тему, согласовав ее предварительно с преподавателем.