Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EKZAMYeN.doc
Скачиваний:
167
Добавлен:
11.02.2015
Размер:
345.09 Кб
Скачать

24. Способы сортировки элементов массива.

Под сортировкой массива подразумевается процесс перестановки элементов массива, целью которого является размещение элементов массива в определенном порядке.

Существует много способов сортировки массивов:

1.Сортировка вставкой.

Массив разделяется на 2 части: отсортированную и неотсортированную. Элементы из неотсортированной части поочередно выбираются и вставляются в отсортированную часть так, чтобы не нарушить упорядоченность элементов в ней.

В начале работы алгоритма в качастве отсортированной части принимают только один первый элемент. Таким образом алгоритм будет состоять из n - 1 прохода, где n – размерность массива.

2.Сортировка выбора.

Из массива выбирается элемент с минимальным значением на интервале от 1-ого до n-того элемента и меняется местами с первым элементом. На втором шаге находится минимальный элемент на интервале от 2-ого до n-того элемента массива и меняется местами со 2-ым элементом и т.д. до n-1 элемента.

3.Пузырьковая сортировка (сортировка обмена).

Слева направо поочередно сравниваются два соседних элемента иесли их взаимное расположение не соответствует данному соответствию упорядоченности, то они меняются местами. Далее берутся 2 следующих соседних элемента и так до конца массива. После одного такого прохода на n-тое место станет максимальный элемент (или минимальный). В следующий проход обмены осуществляются лишь до n-1-ого элемента. Максимально потребуется n-1 проход.

4.Сортировка шейкерная.

Она является модификацией сортировки методом пузырька. Здесь также проводят попарное сравнение элементов, но первый проход осуществляют снизу вверх (всплывает максимальный элемент-пузырёк), а 2-ой проход осуществляется сверху вниз (тонет минимальный элемент-пузырёк).

5.Сортировка фон Неймана.

Применяется для слияния отсортированных массивов (возможной разной размерности). В результате также можно получить отсортированный массив. Идея алгоритма состоит в следующем. Сначала анализируются первые элементы обоих массивов. Меньший из них переписывается в результирующий массив. Оставшийся элемент последующий сравнивается с элементами 2-ого массива. В новый массив попадает меньший элемент. Процесс продолжается до исчерпания элементов в одном массиве. Затем остаток другого массива дописывается в результирующий.

25. Консольное приложение. Операции ввода-вывода при работе с консольным приложением.

Консоль – это монитор и клавиатура, рассматриваемые как единое устройство. Консольное приложение – это программа, предназначенная для работы в операционной системе MS-DOS, причем устройством ввода является клавиатура, а устройством вывода – монитор.

File→New→Other→Console Application

Компиляция осуществляется точно также. Сохранение с помощью команды Save.

Инструкции write и writeln

Инструкция write предназначена для вывода на экран монитора сообщений и значений переменных. После слова write в скобках задается список переменных, значения которых должны быть выведены. Кроме имен переменных в список можно включить сообщение — текст, заключенный в одиночные кавычки.

Например:

write(Summa);

write('Результат вычислений');

write('Корни уравнения. xl=', xl, ' х2=', х2);

После имени переменной через двоеточие можно поместить описание (формат) поля вывода значения переменной.

Для переменной типа Integer формат — это целое число, которое задает ширину поля вывода (количество позиций на экране).

Например, инструкция

write(d:5);

показывает, что для вывода значения переменной d используется 5 позиций.

Если значение переменной такое, что его изображение занимает меньше позиций, чем указано в формате, то перед первой цифрой числа будут выведены пробелы так, чтобы общее количество выведенных символов было равно указанному в формате.

Для переменных типа Real формат представляет собой два целых числа, разделенных двоеточием. Первое число определяет ширину поля вывода, второе — количество цифр дробной части числа. Если задать только ширину поля, то на экране появится число, представленное в формате с плавающей точкой.

Например, пусть переменные x1 и х2 типа real имеют значения 13.25 и -0.3401, тогда в результате выполнения инструкции

write('xl=',x1:5:2,' х2=',х2:12)

на экран будет выведено:

x1=13.25 х2=-3.40100Е-01

Если ширины поля, указанной в формате, недостаточно для вывода значения переменной, то выводится число в формате с плавающей точкой и десятью цифрами после запятой (все поле вывода в этом случае занимает 17 позиций). После выполнения инструкции write курсор остается в той позиции экрана, в которую он переместился после вывода последнего символа, выведенного этой инструкцией. Следующая инструкция write начинает вывод именно с этой позиции. Инструкция writeln отличается от инструкции write только тем, что после вывода сообщения или значений переменных курсор переводится в начало следующей строки. Инструкции read и readln Инструкция read предназначена для ввода с клавиатуры значений переменных (исходных данных). В общем виде инструкция выглядит следующим образом: read (Переменная1, Переменная2, ... ПеременнаяN) где переменная — имя переменной, значение которой должно быть введено с клавиатуры во время выполнения программы. Приведем примеры записи инструкции read: read(a); read(Cena,Kol); При выполнении инструкции read происходит следующее: 1. Программа приостанавливает свою работу и ждет, пока на клавиатуре будут набраны нужные данные и нажата клавиша <Enter>. 2. После нажатия клавиши <Enter> введенное значение присваивается переменной, имя которой указано в инструкции. Одна инструкция read позволяет получить значения нескольких переменных. При этом вводимые числа должны быть набраны в одной строке и разделены пробелами. Инструкция readln отличается от инструкции read тем, что после выделения очередного числа из введенной с клавиатуры строки и присваивания его последней переменной из списка инструкции readln, оставшаяся часть строки теряется, и следующая инструкция read или readln будет требовать нового ввода. Перед каждой инструкцией read или readln следует располагать инструкцию write, для того чтобы подсказать пользователю, какие данные ожидает от него программа. Если тип данных, вводимых с клавиатуры, не соответствует или не может быть приведен к типу переменных, имена которых указаны в инструкции read (readln), то программа аварийно завершает работу (инструкции, следующие за read, не выполняются), и на экран выводится сообщение об ошибке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]