Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Индивидуальное задание.






Си

Седловые элементы.

Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы напечатать индексы всех ее седловых точек.

Во входном текстовом файле задана матрица размерности 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#






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.