Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Индивидуальное задание.Стр 1 из 4Следующая ⇒
Си Седловые элементы. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы напечатать индексы всех ее седловых точек. Во входном текстовом файле задана матрица размерности M× N. В первой строке файла целые числа M и N. Далее в файле идут M строк в каждой из них по N целых чисел. Вывести на экран (или в файл) позиции и значения всех седловых элементов. Примечание: в данной формулировке задачи подразумеваются нестрогие неравенства при сравнении элементов, значит, в одной строке/столбце может быть несколько седовых элементов и даже вся матрица может состоять из них. Студенты. Во входном файле записана следующая информация о каждом из N студентов: фамилия, имя, отчество, пол, возраст, курс. Написать программу, которая вводит эту информацию и печатает следующие данные: А) отсортированный список студентов по ФИО Б) самые распространенные имена; Быстрая сортировка. Реализовать быструю сортировку (quick-sort – сортировка Хаара), либо любую другую за O(N*logN). Проверить работоспособность сортировки и сравнить со стандартной. #include < stdio.h> #include < math.h> #include < time.h> #include < algorithm>
#define N 10
using namespace std;
int main(){ srand(time(NULL)); int a[N], b[N]; for (int i=0; i< N; i++) a[i]=b[i]=rand()%10+1; sort(a, a+N); ВашаСортировка(b, 0, N-1); return 0; } Битовые множества. Реализовать следующие функции для работы с битовыми множествами. Проверить их работоспособность. /*-------------------- C O N V E R T _ T O _ B I T S -------------------*/ unsigned *convert_to_bits (unsigned *intstr) { ... } /*---------------------------- B E L O N G -----------------------------*/ /* Функция belong. Осуществляет поиск указанного элемента в множестве. Возвращает истину (не нуль) в случае наличия элемента, иначе ложь (нуль). */ int belong(element, set) unsigned element; /* номер элемента, который ищем */ unsigned *set; /* множество, в котором ищем элемент */ { ... }
/*----------------------- S e t D i s j u n c t ------------------------*/ /* Функция SetDisjunct. Осуществляет дизъюнкцию множеств set1 и set2. Результатом становится множество set3. */ void SetDisjunct(set1, set2, set3) unsigned set1[], set2[], set3[]; { ... } Примечание: функция convert_to_bits работает до тех пор, пока не встретит конечный элемент (88) в массиве; функция SetDisjunct ожидает, что память под set3 уже выделена. Выражение над множествами. Во входном файле задано выражение над множествами. Требуется вычислить его, применяя функции, описанные в предыдущем задании. Вычисление выражения можно осуществлять разными способами. Примеры выражений: [1, 2, 3]*[3, 4, 5]+[1] = [1, 3] [1, 2, 3]*[3, 4, 5]-[1] = [3] [1, 2, 3]*[3, 4, 5]-[3] = [] [1, 2, 3]*[3, 4, 5]-[3]-[3]+[6, 7]*[1, 3, 6, 9] = [6] Индивидуальное задание. 1. Топологическая сортировка (Н.Вирт). 2. Сложение многочленов (Д. Кнут т.1). 3. Умножение многочленов (Д. Кнут т.1). 4. Включение и удаление вершины из сбалансированного дерева (Н. Вирт). 5. Б-деревья. Поиск, включение и удаление вершин (Н.Вирт). 6. Построение таблицы перекрёстных ссылок с использованием функции расстановки (Н.Вирт). 7. Дифференцирование (Д. Кнут т.1). 8. Построение графа с использованием динамических структур данных. Поиск по графу в ширину и в глубину.
C#
|