Это мне пыталась сдать девушка в прошлом семестре... и сдала таки, в конце концов!
Задача 1.("О сравнении векторов (массивов)")
1.Постановка задачи:
В математике для векторов заданы отношения сравнения: AB, A≥B. Сравнение производится покоординатно, и отношение
между векторами считается выполненым, если оно выполнено для
каждой из координат.
Примеры: (1,2,5,6)<(2,4,7,9); (1,2,5,6)≤(2,4,5,9)
Даны два одномерных массива A и B длины N=10-заполнение
реализуются от ДЧС (ДСЧ - датчик случайных чисел)
а) выяснить, выполняется ли хотя бы одно из указанных отношений:
AB, A≥B.
б)* Элементы массива В разрешается переставлять. Для каждого из
четырех отношений сравнения выяснить, можно ли переставить
элементы массива В таким образом, чтобы данное отношение
выполнялось? (этот пункт - вообще необязательный, но девушка
не обратила внимания на такую ерунду)
2.Исходные данные и результат работы программы:
а) Даны два одномерных массива A и B длины N=10-заполнение
реализуется от ДСЧ
б) (результат работы программы) Вектор A:
Вектор B:
Ни одно из отношений НЕ выполняется или выполняется
Вектор A после сортировки:
Вектор B после сортировки:
Добиться выполнения отношения A < B
Добиться выполнения отношения A <= B
Добиться выполнения отношения A > B
Добиться выполнения отношения A >= B
(Мда. "И врагу никогда не добиться" отношения A меньше B :-)
3.а. (а вот и гвоздь программы - это описание её алгоритма!) Сравниваем векторы;
Возвращает (кто, что, кому?): 0 - Ни одно из отношений (<, >, <=, >=) НЕ
выполняется
1 - Хотя бы одно из отношений выполняется
б. Сортируем вектора по возрастанию;
в. Формируем вектора из случайных значений; (сейчас самое время - после сортировки)
г. Определяем, можно ли путем перестановки элементов B добиться
выполнения отношений (отношение может быть выполнено, если оно
выполняется для отсортированных векторов);
д. Сортируем по возрастанию. (отсортировать лишний раз всё же не помешает)
(Теперь расскажу, откуда такое берётся. Программу пишет знакомый программист - довольно опытный, - не забывая при этом вставить куски, выдающие его с головой, а также ошибки. Описанием алгоритма и прочей бумажной работой, как и любой программист, он себя не затрудняет. Возможно, объяснениями он себя тоже не затрудняет (поскольку не видел в этом пользы ;-). Поэтому бедняжка вынуждена была переписать все комментарии в порядке их появления в программе (хорошо, что программист ещё не очень
настоящий). Отсюда странный вид пункта а) - это был комметарий к подпрограмме сравнения векторов (ошибочной ;-), и странное расположение пункта б) - это был комметарий к подпрограмме сортировки. Надо сказать, что комментарии были переписаны не все, а подверглись отбору, но, видимо, случайному. То же относится и к пункту "результаты работы" - были переписаны все сообщения в порядке их появления в исходном тексте программы. Кстати, обе девушки в группе ещё и очень честные - на впорос "вы ведь не сами писали?" они, нимало не смущаясь, ответили правду.)