
Kurs2011
.pdfНомера элементов массива |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Массив до сортировки |
10 |
2 |
–3 |
14 |
–10 |
–1 |
40 |
18 |
Массив после сортировки |
2 |
10 |
–1 |
14 |
–3 |
–10 |
18 |
40 |
Условия по вариантам.
1.Разбить массив на тройки элементов. Отсортировать каждый третий элемент по возрастанию, каждый второй – по убыванию, каждый первый – не сортировать.
Если элемент равен нулю, его также не сортировать.
2.Если MAX есть максимальное, а MIN – минимальное значения элементов, то элементы со значениями большими, чем (MAX+MIN)/2 сортировать по возрастанию; элементы с меньшими значениями – по убыванию; элементы со значениями равными (MAX+MIN)/2 не сортировать.
3.Отсортировать элементы, находящиеся между двумя по возрастанию значений. Эти два есть:
-первый и последний нули, если нулей больше одного;
-нуль и последний элемент, если нуль один;
-первый и последний элемент, если нулей нет.
4.Отсортировать положительные элементы по возрастанию, отрицательные – по убыванию значений. Если сумма S всех элементов – больше нуля, то имеющиеся нулевые элементы включить в разряд положительных; если S<0 – в разряд отрицательных; если S=0, то нулевые элементы остаются на своих местах.
5.Отсортировать часть элементов по возрастанию значений. Выбор элементов
для сортировки осуществляется в зависимости от соотношения среднего геометрического g+ первых двух положительных элементов и среднего геометрического g– первых двух отрицательных элементов:
-если g+ > g– , то сортируется первая треть массива;
-если g+ < g– , то сортируется последняя треть массива;
-если g+ = g– , то сортируется вторая треть массива.
Если число положительных либо отрицательных элементов меньше двух, то осуществляется сортировка всего массива.
6.Отсортировать массив по возрастанию значений элементов. Элементы с максимальным, минимальным и нулевым значениями не сортировать. Если нулевые значения отсутствуют, то осуществляется сортировка всего массива.
7.Элементы со значениями меньше среднего арифметического значений всех элементов сортировать по убыванию; элементы с большим или равным значением – по возрастанию.
8.Отсортировать массив, если число отрицательных элементов не менее двух, а иначе – не сортировать. Если число элементов массива четное, то сортировка осуществляется по возрастанию значений элементов, а если нечетное – по убыванию.
9.Отсортировать массив по возрастанию значений элементов до второго нулевого элемента (если нулей меньше двух – сортировать по возрастанию до конца); после второго нулевого элемента (включая его) – не сортировать.
21
10.Найти максимальное значение элементов массива. Если число элементов, имеющих максимальное значение, больше одного, то отсортировать элементы, находящиеся между ними в порядке возрастания.
11.До первого элемента с минимальным значением (включая его) сортировать элементы по убыванию; после последнего элемента с минимальным значением – в порядке убывания; элементы, находящиеся между первым и последним элементами
сминимальным значением – не сортировать. Если элемент с минимальным значением один, то элементы, находящиеся после него, не сортировать.
12.Если имеются нулевые и отрицательные элементы, то отсортировать элементы, находящиеся между последним нулевым и первым отрицательным элементами в порядке возрастания значений элементов. Иначе – не сортировать.
13.Отсортировать массив в порядке:
–возрастания, если среднее арифметическое элементов с четными значениями больше среднего арифметического элементов с нечетными значениями;
–убывания, если среднее арифметическое элементов с четными значениями меньше среднего арифметического элементов с нечетными значениями;
14. Отсортировать в порядке возрастания элементы, имеющие четные номера и четные значения. Элементы, имеющие нечетные номера и нечетные значения сортировать в порядке убывания. Остальные элементы не сортировать.
15. Отсортировать положительные элементы с четными значениями в порядке возрастания; элементы с нечетными значениями – в порядке убывания. Остальные – не сортировать.
16. Отсортировать элементы с четными значениями в порядке убывания, начиная с начала массива и до первого нулевого элемента (либо до конца, если нулей нет). Остальные элементы не сортировать.
17. Отсортировать элементы с нечетными значениями в порядке
–возрастания, если сумма элементов с четными значениями больше суммы элементов с нечетными;
–убывания, если сумма элементов с четными значениями меньше суммы элементов с нечетными.
18. Отсортировать элементы с четными значениями в порядке возрастания, находящиеся между:
–первым и последним нулем, если нулей больше одного;
–нулем и конечным элементом массива, если нуль один.
Если нули отсутствуют – не сортировать. Остальные элементы не сортировать.
19.Отсортировать первые две трети массива в порядке возрастания, если среднее арифметическое всех элементов больше нуля; иначе – лишь первую треть. Остальную часть массива не сортировать, а расположить в обратном порядке.
20.Отсортировать массив в порядке возрастания от первого и до последнего элемента, если нулевых элементов нет. При наличии нулевых элементов – с начала и до первого нулевого элемента по возрастанию; после нулевого элемента – по убыванию. Первый нулевой элемент остается на своем месте.
21.Отсортировать массив в порядке возрастания, если среднее арифметическое значений элементов отрицательно; в порядке убывания – если равно нулю; не сор-
22

тировать – если положительно. Если число нулевых элементов четное, массив также не сортировать.
22.Отсортировать первую половину элементов (с меньшими номерами) в порядке возрастания; вторую – в порядке убывания. Если число элементов нечетное, то средний элемент в сортировке не участвует.
23.Отсортировать массив в порядке возрастания, если число нулевых элементов
вмассиве четное; в порядке убывания – если нечетное.
24.Если число нулевых элементов массива четное, то отсортировать массив в порядке возрастания, если количество положительных элементов больше или равно, чем отрицательных, а по убыванию – если меньше.
Если число нулевых элементов массива нечетное, то отсортировать массив в порядке убывания, если количество положительных элементов больше или равно, чем отрицательных, а по возрастанию – если меньше.
25.Если число отрицательных элементов меньше двух, массив не сортировать. Если больше или равно двум, – то сортировать только элементы, находящиеся между первым и последним отрицательными элементами. Сортировка производится по возрастанию, если число отрицательных элементов нечетное; по убыванию – если четное.
26.Если в массиве имеется нулевой элемент, то разбить элементы на две группы: одна – левее первого нулевого элемента (меньшие номера элементов), другая – правее. Если число элементов в первой группе больше числа элементов во второй, то сортировать массив по возрастанию; если меньше – по убыванию. Если равно, а также нулевые элементы отсутствуют – не сортировать.
27.Отсортировать положительные элементы по убыванию, отрицательные – по возрастанию значений. Затем сгруппировать по порядку так, чтобы положительные чередовались с отрицательными (пока не исчерпается меньшая группа).
28.Элементы, находящиеся между элементом с минимальным значением и элементом с максимальным значением не сортировать. Остальные элементы отсортировать следующим образом:
-если элемент с минимальным значением имеет меньший номер, чем элемент с максимальным значением, то значения сортируемых элементов возрастают к максимальному и минимальному элементам (рис. 8а);
-если больший – убывают (рис. 8б);
а) |
б) |
|
Рис. 8 |
29. Отсортировать элементы следующим образом. Массив разбивается на несколько интервалов, концы которых есть первый и последний элементы, а также
23

элементы с нулевыми значениями. Соседние интервалы имеют противоположные направления сортировки (рис. 9).
Рис. 9
30.Элементы, имеющие положительные значения, отсортировать в порядке возрастания. Элементы, имеющие отрицательные значения отсортировать в порядке:
-возрастания, если сумма всех элементов массива больше нуля;
-убывания, если сумма всех элементов массива меньше или равна нулю.
31.В первой половине массива отсортировать элементы с нечетными значениями в порядке возрастания. Обработка второй половины зависит от суммы элементов
вэтой половине:
–если она отрицательна, то сортировать элементы с четными значениями в порядке убывания;
–если она положительна, то сортировать элементы с нечетными значениями в порядке возрастания;
–если она равна нулю, то сортировка не осуществляется.
32.Все элементы с четными положительными значениями сортировать по возрастанию. Элементы с нечетными отрицательными значениями из первой половины массива сортировать:
– по убыванию, если их сумма – нечетное число;
– по возрастанию, если их сумма – четное число.
33.Элементы с нечетными номерами и нечетными значениями сортировать по убыванию. Элементы с четными номерами и четными значениями сортировать по возрастанию, если их количество – четное число. Элементы с четными номерами и нечетными значениями сортировать:
– по возрастанию, если среди элементов с четными номерами и четными значениями нет отрицательных чисел;
– по убыванию, если среди элементов с четными номерами и четными значениями имеются отрицательные числа.
34.Элементы, содержащие простые числа сортировать:
–по возрастанию, если их сумма – число положительное;
–по убыванию, если их сумма – число отрицательное.
Остальные элементы сортировать в направлении противоположном направлению сортировки простых чисел.
35. Элементы со значениями меньшими, чем среднее арифметическое всех элементов массива, сортировать в порядке возрастания. Остальные элементы:
–сортировать по возрастанию, если |max| > |min|;
–сортировать по убыванию, если |max| < |min|;
–не сортировать, если |max| = |min|, где max – элемент с максимальным значением; min – элемент с минимальным значением.
24
36.Элементы с нечетными номерами и имеющие положительные значения сортировать:
– по возрастанию, если их количество больше, чем элементов с нечетными номерами и отрицательными значениями;
– по убыванию – в противном случае.
Группа элементов с четными номерами имеет две подгруппы: а) с положительными значениями, б) с отрицательными значениями. Направление сортировки в подгруппах определяется следующим образом. Подгруппу с бóльшим числом элементов сортировать по убыванию, а подгруппу с меньшим числом элементов – по возрастанию.
37.Из количества положительных элементов (N+) и количества отрицательных элементов (N–) найти минимальное (NMIN).
Отсортировать первые NMIN положительных элементов по убыванию и первые NMIN отрицательных элементов – по возрастанию. Остальные элементы сортировать:
– по возрастанию, если они положительные;
– по убыванию, если они отрицательные.
38.Отсортировать:
–по возрастанию элементы, находящиеся между вторым нулевым элементом (элемент А) и последним отрицательным элементом (элемент Б);
–по убыванию элементы между последним элементом массива и элементом А или Б, если отсутствует один из них;
–по возрастанию от начала и до конца массива, если не существует ни элемента А, ни элемента Б.
39. Отсортировать отрицательные элементы в зависимости от выполнения условий:
–первую половину отрицательных элементов по возрастанию, а вторую – по
убыванию, если модуль суммы элементов с нечетными значениями (Σ1) больше, чем модуль суммы отрицательных элементов (Σ2);
–первую половину отрицательных элементов по убыванию, вторую – по возрас-
танию, если Σ1 < Σ2.
Если Σ1 = Σ2 или отрицательных элементов меньше двух, то отрицательные элементы не сортировать.
40. Вычислить число М – количество элементов с нечетными номерами и нечетными значениями.
Разбить элементы массива на две группы. Группу А составляет первая половина отрицательных элементов в совокупности с первой половиной элементов с положительными значениями. Группу Б составляет вторая половина элементов с отрицательными значениями в совокупности со второй половиной элементов с положительными значениями.
Если М – число четное, то отсортировать группу А по возрастанию, а группу Б – по убыванию. Если М – нечетное, то отсортировать группу А по убыванию, а группу Б – по возрастанию.
25
СОДЕРЖАНИЕ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ
1.Задание.
2.Структурная карта Константайна.
3.Структурные схемы алгоритмов.
4.Набор материалов для тестирования одной из подпрограмм в соответствии со следующим перечнем:
a)граф передачи управления;
b)тестовые наборы и описание маршрутов;
c)схема подключения модулей при тестировании на данном этапе;
d)текст программы для соответствующего этапа тестирования. Тестируемый компонент должен иметь в своем составе оператор условия.
5.Конечный текст программы.
Библиографический список
Основная литература.
1.Фаронов В.В. Турбо Паскаль (в 3-х книгах). Книга 1. Основы Турбо Паскаля.
– М.: Учебно-инженерный центр «МВТУ-ФЕСТО ДИДАКТИК», 1992 – 304 с.
2.Шафеева О.П. Основы программирования. Турбо Паскаль 7.0: Конспект лек-
ций. – Омск, 2000.
3.Иванова Г. С. Технология программирования.: Учебник для вузов. – М.: издво МГТУ им. Н. Э. Баумана, 2002. – 320 с.
Дополнительная литература.
4.С/С++. Программирование на языке высокого уровня / Т. А. Павловская. –
СПб.: Питер, 2002. – 464 с.
26

Приложение 1 Обозначения условные графические в структурных схемах алгоритмов
(ГОСТ 19.701-90)
Символ |
Наименование |
Назначение |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
Данные |
Определяет ввод или вывод на внешнее устройство |
|
|
|
|
|
|
|
|
|
|
|
или любой носитель данных. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Процесс |
Отражает обработку данных: выполнение определен- |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
ной операции или группы операций. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Предопреде- |
Отображает предопределенный процесс, состоящий |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
ленный про- |
из одной или нескольких операций программы, которые |
|
|
|
|
|
|
|
|
|
|
|
цесс |
определены в другом месте (подпрограмме, модуле). |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
Подготовка |
Отражает инициализацию и модификацию параметра |
|
|
|
|
|
|
|
|
|
|
|
цикла |
для управления циклом со счетчиком. |
|
|
|
|
|
|
|
|
|
|
|
|
Описывает проверку условия и выполняет переклю- |
|
|
|
|
|
|
|
|
|
|
|
Решение |
чение по одному из условий. Имеет один вход и два или |
|
|
|
|
|
|
|
|
|
|
|
более альтернативных выходов, один из которых акти- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
визируется после вычисления условия внутри символа. |
|
|
|
|
|
|
|
|
|
|
|
|
Состоит из двух частей: начала и конца цикла. Обе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
части имеют один и тот же идентификатор. Изменение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Граница цикла |
значения идентификатора, условия для выполнения или |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
завершения помещаются внутри символов в начале или |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
в конце цикла. |
|
|
|
|
|
|
|
|
|
|
|
|
Используется для обрыва линии и продолжения ее в |
|
|
|
|
|
|
|
|
|
|
|
Соединитель |
другом месте. Должен содержать уникальное обозначе- |
|
|
|
|
|
|
|
|
|
|
|
|
ние. |
|
|
|
|
|
|
|
|
|
|
|
Терминатор |
Определяет начало и конец структурной схемы алго- |
|
|
|
|
|
|
|
|
|
|
|
ритма программы или подпрограммы. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Используется для добавления пояснительных записей. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Комментарий |
Связывается с символом или группой символов, обве- |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
денных пунктиром. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Основная |
Отображает последовательность выполнения дейст- |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
линия |
вий в алгоритме. |
27

Приложение 3
Структурные схемы алгоритмов программы сортировки массивов
Начало |
|
|
А - массив |
ВВОД(А, N) |
N - число |
|
элементов |
ОБРАБ(А, N) |
|
ВЫВОД(А, N) |
|
Конец |
|
ВЫБОР(А, B, N, |
|
N1, Pos) |
|
N1:=0 |
|
i:=1, N |
|
|
Конец п/п |
нет |
|
[(A[i]>=0) и (Pos)] или |
|
[(A[i]<0) и ( не Pos)] |
|
да |
|
N1:=N1+1 |
|
B[N1]:=A[i] |
|
|
|
|
|
Получает и |
|
ОБРАБ(А, N) |
|
|
возвращает |
|
|
|
|
массив А |
АНАЛИЗ(А, N, |
|
Возвращает: |
||
|
sum - сумма; |
|||
|
sum, Pos) |
|
|
|
|
|
|
Pos - флаг |
|
|
|
|
|
|
нет |
sum 5 |
|
|
|
|
|
|
|
|
|
да |
|
|
|
|
sum>5 |
нет |
|
|
|
|
|
|
|
|
да |
|
|
|
|
Inc:=true |
|
Inc:=false |
|
|
|
|
|
Возвращает: |
ВЫБОР(А, B, N, |
|
В - массив; |
||
|
N1, Pos) |
|
|
N1 - число |
|
|
|
|
сорт. эл-тов |
СОРТ(В, N1, Inc) |
Возвращает |
|||
|
|
|
|
массив В |
ВОЗВР(А, B, N, |
|
Возвращает |
||
|
N1, Pos) |
|
|
массив А |
|
Конец п/п |
|
|
|

Приложение 3 (продолжение)
29

Приложение 3 (продолжение)
30