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

Вариант № 11

Написать программу Sort, реализующую следующий алгоритм:

  1. Зафиксировать время начала Tstrt выполнения программы.

  2. Вывести на экран время Tstrt в формате: минуты:секунды: миллисекунды;

  3. Для i от 1 до 100 (количество повторений может быть изменено в зависимости от быстродействия процессора) повторять:

  • заполнение массива целых чисел случайными значениями из диапазона 0-1000;

  • зафиксировать текущий момент времени t1;

  • отсортировать массив;

  • зафиксировать текущий момент времени t2;

  • определить время i-той сортировки dti=t2-t1;

  1. Определение среднего времени сортировки: dti/100;

  2. Вывести на экран среднее время одной сортировки;

  3. Зафиксировать время окончания Tend выполнения программы;

  4. Вывести на экран время Tend в формате: минуты:секунды: миллисекунды;

Метод сортировки – пузырька; направление сортировки – возрастание; количество элементов массива N – 90; количество процессов – 5.

Вариант № 11а

Написать программу Master, создающую два процесса Sort, используя системные вызовы CreateProcess. Необходимо, чтобы каждый процесс имел собственную консоль и класс приоритета NORMAL_PRIORITY_CLASS. Зафиксировать время начала, окончания и длительность сортировки для обоих процессов.

Изменяя приоритеты процессов, как показано ниже, зафиксировать время начала, окончания и длительность сортировки для обоих процессов:

Первый процесс

Второй процесс

NORMAL_PRIORITY_CLASS

HIGH_PRIORITY_CLASS

HIGH_PRIORITY_CLASS

IDLE_PRIORITY_CLASS

IDLE_PRIORITY_CLASS

NORMAL_PRIORITY_CLASS

Вариант № 11б

Написать программу Threads, содержащую процедуру сортировки массива (разработанную при выполнении пункта 1.1), содержащего N/5 элементов и процедуру вывода массива на экран – mass_print. Программа должна выполнять следующие действия:

- Генерировать случайный массив содержащий N/5 элементов;

- используя системные вызовы CreateThread, создать программные потоки sort и mass_print в приостановленном состоянии;

- установить приоритеты потоков в THREAD_PRIORITY_NORMAL, используя системный вызов SetThreadPriority;

- активизировать потоки, используя системные вызовы ResumeThread;

Изменяя приоритеты потоков в разработанной программе в различных сочетаниях фиксировать получаемые результаты.

Вариант № 12

Написать программу, содержащую два потока. Первый поток генерирует последовательность чисел и помещает их в буфер из Nbuf элементов (с проверкой на свободное место в буфере с использованием механизма семафоров). Второй считывает данные из буфера и выводит их на экран.

Количество элементов Nbuf = 9, вид последовательности – натуральные числа, длина буфера = 450.

Определить максимальную длину буфера при различных приоритетах потоков.

Вариант № 13

Написать программу Sort, реализующую следующий алгоритм:

  1. Зафиксировать время начала Tstrt выполнения программы.

  2. Вывести на экран время Tstrt в формате: минуты:секунды: миллисекунды;

  3. Для i от 1 до 100 (количество повторений может быть изменено в зависимости от быстродействия процессора) повторять:

  • заполнение массива целых чисел случайными значениями из диапазона 0-1000;

  • зафиксировать текущий момент времени t1;

  • отсортировать массив;

  • зафиксировать текущий момент времени t2;

  • определить время i-той сортировки dti=t2-t1;

  1. Определение среднего времени сортировки: dti/100;

  2. Вывести на экран среднее время одной сортировки;

  3. Зафиксировать время окончания Tend выполнения программы;

  4. Вывести на экран время Tend в формате: минуты:секунды: миллисекунды;

Метод сортировки – вставки; направление сортировки – убывание; количество элементов массива N – 75; количество процессов – 4.