WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Московский государственный

университет им. М.В. Ломоносова

Факультет вычислительной математики и кибернетики

Трифонов Н.П., Пильщиков В.Н.

Задания практикума на ЭВМ

(1 курс)

Москва

2001

УДК 681.325.5

ББК 22.18

Т67

Трифонов Н.П., Пильщиков В.Н.

Задания практикума на ЭВМ (1 курс). Учебное пособие, 2-е исправленное издание. — М.: МГУ, 2001. — 32 с.

Издательский отдел факультета ВМК (лицензия ЛР №040777 от 23.07.96), Приводятся описания заданий практикума на ЭВМ для студентов 1 курса факультета вычислительной математики и кибернетики МГУ. Эти задания относятся к языку программирования Паскаль и языку ассемблера для персональных компьютеров.

В разработке заданий принимали участие И.А Волкова, Е.В. Зима, В.В. Игнатов, В.Н. Пильщиков, В.И. Родин, Т.В. Руденко, Н.П. Трифонов.

В новом издании исправлены замеченные ошибки и неточности первого издания ( г.), в качестве используемой версии языка Паскаль взят язык Турбо Паскаль 7.0. При подготовке нового издания большую помощь оказала Е.А. Бордаченкова.

Рецензенты:

доц. Баула В.Г.

доц. Корухова Л.С.

Печатается по решению Редакционно-издательского совет факультета вычислительной математики и кибернетики МГУ им. М.В. Ломоносова.

ISBN 5-89407-102-Х © Издательский отдел факультета вычислительной математики и кибернетики МГУ им. М.В.Ломоносова, Замечания по данной электронной версии присылайте на сmсmsu.infо@gmail.cоm Методическое пособие Задание 1. ЯЗЫК ПАСКАЛЬ. ВЫЧИСЛЕНИЕ КОРНЕЙ

УРАВНЕНИЙ И ОПРЕДЕЛЕННЫХ

ИНТЕГРАЛОВ

1.1. ПОСТАНОВКА ЗАДАЧИ С заданной точностью вычислить площадь плоской фигуры, ограниченной тремя кривыми, уравнения которых y = f1(x), y = f2(x) и y = f3(x) определяются вариантом задания.

При решении задачи необходимо:

с некоторой точностью eps1 вычислить абсциссы точек пересечения кривых, используя предусмотренный вариантом задания метод приближенного решения уравнения F(x)=0; отрезки, где программа будет искать точки пересечения и где применим используемый метод, определить вручную;

представить площадь заданной фигуры как алгебраическую сумму определенных интегралов и вычислить эти интегралы с некоторой точностью eps2 по квадратурной формуле, предусмотренной вариантом задания.

Величины 1 и 2 подобрать вручную так, чтобы гарантировалось вычисление площади фигуры с точностью.

1.2. ВАРИАНТЫ ЗАДАНИЯ Во всех вариантах = 0.001.

А. Уравнения кривых y = fi(x):

f1 = 2x + 1 f 2 = x 1) f3 = (1 x)/ 2) f1 = 3(0.5/(x + 1) + 1) f2 = 2.5x 9.5 f3 = 5/x (x > 0) 3) f1 = exp(x) + 3 f2 = 2x 2 f3 = 1/x 4) f1 = exp(x) + 2 f2 = 1/x f3 = 2(x + 1)/ 2 x 5) f1 = 0.35x 0.95x + 2.7 f2 = 3 +1 f3 = 1/(x + 2) f2 = (x 2) 6) f1 = 0.6x + 3 f3 = 3/x 7) f1 = ln(x) f2 = 2x + 14 f3 = 1/(2 x)+ 8) f1 = exp(x) + 2 f2 = 2x + 8 f3 = 5/x f1 = 3/((x 1)2 + 1) 9) f2 = sqrt (x + 0.5) f3 = exp(x) f1 = 1 + 4/(x2 + 1) f 2 = x3 f3 = 2x 10) Б. Методы приближенного решения уравнений:

1) метод деления отрезка пополам;

2) метод хорд (секущих);

3) метод касательных (Ньютона);

Трифонов Н.П., Пильщиков В.Н. Практикум на ЭВМ 4) комбинированный метод (хорд и касательных).

В. Квадратурные формулы:

1) формула прямоугольников;

3) формула Симпсона (парабол).

1.3. ТРЕБОВАНИЯ К ПРОГРАММЕ 1. В программе предусмотреть печать как площади заданной фигуры, так и абсцисс точек пересечения кривых.

2. Описать в программе процедуру root (f, g, a, b, eps1, x), вычисляющую с точностью 1 корень x уравнения f (x) = g (x) на отрезке [a, b]. (Если используется метод касательных или комбинированный метод, то у root должны быть еще параметры 3. Описать в программе функцию integral (f, a, b, eps2), вычисляющую с точностью 2 величину определенного интеграла от функции f (x) на отрезке [a, b].

4. Процедуру root и функцию integral следует предварительно протестировать.

1.4. ЛИТЕРАТУРА [1]. Ильин В.А., Садовничий В.А., Сендов Бл.Х. Математический анализ. Т.1 — М.:

Наука, 1985.

[2]. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.:

Наука, 1988.

[3]. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0 — М.: «ДИАЛОГ-МИФИ», 2000.

1.5. МЕТОДИЧЕСКИЕ УКАЗАНИЯ 1. Для корректного применения предложенных методов приближенного решения уравнения F(x) = 0 (где F(x) = f (x) g (x)) необходимо найти отрезок [a, b], на котором уравнение имеет ровно один корень. Достаточное условие для этого таково:

на концах отрезка функция F(x) имеет разные знаки и на всем отрезке производная функции не меняет знак. Кроме того, для методов хорд и касательных, а также комбинированного метода обязательно требуется, чтобы на данном отрезке первая и вторая производные функции не меняли свой знак (не обращались в ноль).

2. В методе деления отрезка пополам определяется средняя точка c отрезка [a, b] и из двух отрезков [a, c] и [c, b] выбирается тот, на концах которого функция F(x) имеет разные знаки. К выбранному отрезку применяется та же процедура. Процесс деления отрезков прекращается, когда длина очередного отрезка станет меньше требуемой точности ; за корень уравнения можно принять любую точку 3. В остальных трех методах следует различать два случая:



случай 1 — первая и вторая производные функции F(x) имеют одинаковый знак случай 2 — эти производные имеют разные знаки.

Методическое пособие В методе хорд концы (a, F(a)) и (b, F(b)) кривой y = F(x) соединяются прямой линией и определяется точка пересечения этой линии с осью абсцисс:

Далее выбирается отрезок [c, b] в случае 1 или отрезок [a, c] в случае 2 и к нему применяется та же процедура. Тем самым происходит постепенное приближение к искомому корню слева (в случае 1) или справа (в случае 2).

В методе касательных проводится касательная к кривой y = F(x) в точке (b, F(b)) в случае 1 или в точке (a, F(a)) в случае 2 и определяется точка c пересечения этой касательной с осью абсцисс:

где d = b в случае 1 и d = a в случае 2. Далее проводится касательная к кривой в точке (c, F(c)) и процедура повторяется. Тем самым происходит приближение к искомому корню справа (в случае 1) или слева (в случае 2).

В методах хорд и касательных можно использовать следующий критерий завершения процесса приближения к корню. Если приближение «идет» слева, то на очередном шаге надо сравнить величины F(c) и F(c + ): если они одного знака, то процесс продолжается, иначе на отрезке [c, c + ] имеется корень и потому процесс завершается. При приближении справа надо проверять знаки F(c ) и В комбинированном методе одновременно применяется метод хорд и метод касательных, в связи с чем приближение к корню происходит с двух сторон. Критерий окончания — длина очередного отрезка меньше.

4. При использовании метода хорд, метода касательных или комбинированного метода процедура root должна самостоятельно распознавать, какой из двух случаев, указанных в п. 2, имеет место при текущем обращении к ней. Это можно сделать проверкой следующих двух условий:

— функция возрастает или убывает;

— график функции расположен выше хорды, соединяющей концы графика, или Поскольку производные F'(x) и F"(x) на отрезке [a, b] не меняют знак, для проверки первого условия достаточно сравнить F(a) с 0 (при F(a) < 0 функция возрастает). Для проверки же второго условия надо сравнить в какой-то внутренней точке отрезка значения функции и хорды; например, если взять среднюю точку (a + b)/ расположен выше хорды. Если функция возрастает и ее график расположен ниже хорды или если функция убывает и ее график расположен выше хорды, то имеет место случай 1, иначе — случай 2.

5. Квадратурные формулы для приближенного вычисления интеграла I от функции F(x) на отрезке [a, b] имеют следующий вид (n — число разбиений отрезка [a, b]):

Формула прямоугольников:

I In = h(F0 + F1+...+Fn-1), где Fi = F(a + (i + 0.5)h), h = (b – a)/n Формула трапеций:

Формула Симпсона (n — чётное):

I In = h/3 (F0 + 4F1 + 2F2 + 4F3 +... + 4Fn-3 + 2Fn-2 + 4Fn-1 + Fn), Для обеспечения требуемой точности при приближенном вычислении интеграла I по квадратурной формуле нужно подобрать соответствующее число n разбиений отрезка интегрирования. Известны формулы, выражающие n через, но в эти формулы входят производные подынтегральной функции, что неудобно на практике. Поэтому для достижения требуемой точности обычно используется следующий метод: берется некоторое начальное число разбиений n0 (например, или 20) и последовательно вычисляются значения In при n, равном 2n0, 4n0, 8n0 и т.д. Известно правило Рунге (для формул прямоугольников и трапеций p = 1/3, для формулы Симпсона p = 1/15). Согласно этому правилу, когда на очередном шаге величина p |In I2n| окажется меньше, в качестве приближенного значения для I можно взять In или, что лучше, I2n.

7. При реализации функции integral следует учитывать, что в формулах трапеций и Симпсона в сумму I2n входят значения Fi, вычисленные ранее для суммы In, поэтому их не следует перевычислять заново.

8. В процедуре root и функции integral используются параметры-функции (f, g и др.).

В языке Турбо Паскаль такие параметры описываются следующим образом.

В разделе типов необходимо описать т.н. функциональный тип:

(вместо TP и x можно использовать любые другие имена), в который автоматически включаются все описанные в программе вещественные функции от одного вещественного аргумента, а затем имя данного типа нужно указать в спецификации формального параметра-функции, например:

procedure root (f, g: TF; a, b, eps1: real; var x: real);

При обращении же к процедуре root или функции integral указываются, как обычно, имена фактических функций (не стандартных!), например:

root(f1, f2, -0.1, 3.5, 0.0001, x12);

Что касается самих фактических функций (f1, f2 и др.), то перед их описанием необходимо разместить директиву {$F+} транслятору:

function f1 (x: real): real; begin f1:=ln(x) end;

function f2 (x: real): real; begin f2:=2*x+14 end;

Методическое пособие Задание 2. ЯЗЫК ПАСКАЛЬ.

ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ.

2.1. ПОСТАНОВКА ЗАДАЧИ Варианты 1- Дана непустая последовательность слов, в каждом из которых содержится от 1 до 6 заглавных латинских букв; соседние слова разделены запятой, за последним словом следует точка.

Требуется ввести эту последовательность слов в память ЭВМ, преобразовав ее во внутреннее представление (см. ниже), а затем распечатать в алфавитном порядке:

1) все слова последовательности;

2) все слова с указанием для каждого из них его порядкового номера в исходной последовательности;

3) все различные слова с указанием для каждого из них числа его вхождений в исходную последовательность;

4) все различные слова с указанием для каждого из них порядкового номера его первого вхождения в исходную последовательность;

5) сначала все однобуквенные слова, затем все двухбуквенные слова и т.д.;

6) сначала все однобуквенные слова с указанием для каждого из них его порядкового номера в исходной последовательности, затем аналогичным образом все двухбуквенные слова и т.д.;

7) сначала все различные однобуквенные слова с указанием для каждого из них числа его вхождений в исходную последовательность, затем аналогичным образом все различные двухбуквенные слова и т.д.;

8) сначала все различные однобуквенные слова с указанием для каждого из них порядкового номера его первого вхождений в исходную последовательность, затем аналогичным образом все различные двухбуквенные слова и т.д.;

9) та же задача, что и в варианте 1;

10) та же задача, что и в варианте 3;

11) та же задача, что и в варианте 4.

В качестве внутреннего представления последовательности слов использовать:

— в вариантах 1-4 — однонаправленный список из слов, упорядоченных по алфавиту;

— в вариантах 5-8 — массив из 6 списков, в k-ом из которых хранятся kбуквенные слова, упорядоченные по алфавиту;

— в вариантах 9-11 — двоичное дерево поиска (в нем слева от каждой вершиныслова располагаются только те слова, что предшествуют ему по алфавиту, а справа — следующие за ним по алфавиту).

Варианты 12- Дана символьная запись (см. ниже) многочлена (многочленов) от одной переменной X с целыми коэффициентами. Требуется ввести этот многочлен в память ЭВМ, преобразовав во внутреннее представление (см. ниже), выполнить операцию, определяемую вариантом задания, и распечатать полученный результат.

Операции над многочленами:

12) вычислить значение заданного многочлена при заданном целочисленном 13) проверить, имеет ли заданный многочлен хотя бы один целый корень (такими корнями могут быть только положительные и отрицательные делители свободного члена, а при нулевом свободном члене корнем является 0);

14) проверить на равенство два заданных многочлена;

15) получить многочлен, являющийся производной заданного многочлена по переменной X;

16) получить многочлен, являющийся суммой двух заданных многочленов;

17) получить многочлен, являющийся произведением двух заданных многочленов;

18) привести подобные члены в заданном многочлене, в котором могут повторяться одночлены с одними и теми же степенями X.

Исходный многочлен от переменной X с целыми коэффициентами записывается как алгебраическая сумма одночленов любого из следующих видов (^ — возведение в степень):

где k и a — целые числа (k 2, a 1). При этом по степеням X одночлены могут быть не упорядочены, но одночлены одной и той же степени не повторяются (кроме варианта 18). За последним одночленом следует пробел — признак конца записи многочлена.

(Особый случай: нулевой многочлен записывается как 0).

Примеры записи многочленов:

Если результатом операции является многочлен, то он должен быть распечатан в указанном виде (без нулевых слагаемых, без коэффициентов 1 и без показателей степени и 1), но обязательно по убыванию степеней X.

В памяти ЭВМ многочлен должен быть представлен в виде однонаправленного списка, в котором каждому одночлену соответствует звено, содержащее степень этого одночлена и его коэффициент. Звенья списка должны быть упорядочены по убыванию степеней, звеньев с нулевыми коэффициентами не должно быть.

Методическое пособие Варианты 19- Дана формула, содержащая переменную X (см. ниже). Требуется ввести эту формулу в память ЭВМ, преобразовав ее в двоичное дерево (см. ниже), выполнить операцию, указанную в варианте задания, и распечатать полученный результат.

Операции над формулами:w 19) по заданным формуле и целому числу вычислить значение этой формулы при значении переменной X, равном этому числу;

20) получить производную заданной формулы по переменной X;

21) напечатать заданную формулу в префиксном виде;

22) напечатать заданную формулу в постфиксном виде.

Под «формулой» понимается запись следующего вида:

Примеры формул:

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

Формулу можно представить в виде двоичного дерева согласно следующим правилам:

— числу или переменной соответствует дерево из одной вершины, содержащей это число или переменную, — формуле со знаком операции соответствует дерево, корневая вершина которого — знак, левое поддерево — соответствующее представление первого операнда, а правое поддерево — второго операнда.

Префиксной записью формулы (a#b), где # — знак некоторой операции, называется конструкция (#ab), а постфиксной записью — конструкция (ab#). Примеры записи формул:

2.2. ТРЕБОВАНИЯ К ПРОГРАММЕ 1. В программе должна быть предусмотрена проверка правильности задания исходной информации.

2. В вариантах 1-11 в программе должны быть определены процедура выделения очередного слова из исходной последовательности и процедура вставки слова в упорядоченный список (в дерево поиска). Кроме того, в вариантах 9-11 должна быть определена рекурсивная процедура печати слов, входящих в дерево.

3. Аналогичные процедуры (выделение очередного одночлена, вставка нового звена в упорядоченный список) должны быть определены в вариантах 12-18.

4. В вариантах 19-22 должны быть определены процедура ввода исходной формулы и построения соответствующего двоичного дерева, а также процедура вычисления значения формулы при заданной величине X (в варианте 19) или процедура печати формулы в нужном виде (варианты 20-22); все эти процедуры должны быть рекурсивными.

2.3. ЛИТЕРАТУРА [1]. Вирт Н. Алгоритмы + структуры данных = программы. — М.: Мир, 1985.

[2]. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.:

Наука, 1988.

[3]. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0 — М.: «ДИАЛОГ-МИФИ», 2000.

2.4. МЕТОДИЧЕСКИЕ УКАЗАНИЯ 1. Вводить последовательность слов, многочлен или формулу следует посимвольно.

Конец ввода определяется соответственно по точке, по пробелу или по балансу скобок. Ввод целого числа в вариантах 12 и 19 можно осуществлять с помощью процедуры read(n), где n — целочисленная переменная.

2. В вариантах задания, где в качестве внутреннего представления используются списки, следует упорядочивать списки (по алфавиту или по степеням одночленов) одновременно с вводом слов или одночленов: введенное слово или одночлен следует сразу вставлять на «свое» место в ранее упорядоченный список.

3. Для упрощения операций над списками, рекомендуется использовать списки с заглавными звеньями. В этом случае следует в начале выполнения программы построить список (списки) с одним заглавным звеном.

4. В вариантах 1-11 в звеньях списков (вершинах дерева) следует хранить не только слова, но и дополнительную информацию (порядковый номер слова в исходной последовательности или число его вхождений в эту последовательность). В частности, даже в вариантах 1 и 5 для каждого слова лучше иметь только одно звено, фиксируя в нем число вхождений этого слова в последовательность; при печати же надо продублировать слово данное число раз. В варианте 9 такой прием является единственно возможным, поскольку в дереве поиска не должно быть нескольких вершин с одним и тем же словом.

Методическое пособие Задание 3. ЯЗЫК ПАСКАЛЬ.

МЕТОДЫ СОРТИРОВКИ.

3.1. ПОСТАНОВКА ЗАДАЧИ Требуется реализовать два метода сортировки, определяемых вариантом задания, и провести их экспериментальное сравнение.

Под «сортировкой» понимается упорядочение элементов последовательности X1, X2,..., Xn (1 n 100) по неубыванию, т.е. такая перестановка элементов, после которой будет выполняться условие Xi Xi+1 для всех i. В качестве элементов Xi использовать даты вида 26.11.94, 9.5.00 и т.п.

Сравнение реализованных методов сортировки нужно проводить на одних и тех же последовательностях. Следует рассмотреть последовательности разной длины (например, n = 10, 20, 50, 100), используя при каждом n по крайней мере следующие исходные расстановки элементов:

1) элементы уже упорядочены по неубыванию;

2) элементы упорядочены в обратном порядке (по невозрастанию);

3) элементы с нечетными индексами упорядочены по неубыванию, а с четными индексами — по невозрастанию;

4) одна случайная расстановка элементов;

5) другая случайная расстановка элементов.

Оценку методов производить по следующим двум параметрам:

— число сравнений элементов последовательности, выполненных в процессе упорядочения;

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

Результаты экспериментов оформить в виде двух таблиц, например, такого формата (средние значения округлять до целой части):

Название метода сортировки n параметр номер последовательности среднее 3.2. ВАРИАНТЫ ЗАДАНИЯ (методы сортировки) Методы 1-5 — простые, но медленные (с числом сравнений порядка n2), а методы 6сложные, но быстрые (порядка n log2n). Названия методов даны по книге [1], кроме метода 4. В скобках указаны номера книг по списку литературы и страницы, где приводятся описания данных методов.

1) Сортировка простыми вставками ([1] 101-103; [3] 95-96).

2) Сортировка бинарными вставками ([1] 103-104; [3] 97-98).

3) Метод пузырька ([1] 130-132; [2] 27-28; [3] 101-102).

4) Челночная сортировка ([2] 30-31).

5) Сортировка простым выбором ([1] 169-171; [2] 15-16; [3] 99-100).

6) Метод Шелла ([1] 105-107; [2] 37-40; [3] 105-107).

7) Быстрая сортировка, рекурсивный вариант ([3] 114-117).

8) Быстрая сортировка, нерекурсивный вариант ([1] 140-144; [2] 88-97; [3] 114Сортировка простым слиянием ([1] 198-199; [2] 106-111).

10) Сортировка естественным слиянием ([1] 193- 197; [2] 112-117).

3.3. ТРЕБОВАНИЯ К ПРОГРАММЕ 1. Сравнение двух элементов (дат) должно быть реализовано в виде логической функции, а перемещение (пересылка или перестановка) элементов — в виде процедуры. Как побочный эффект, при каждом обращении эти функция и процедура должны увеличивать на 1 значения глобальных счетчиков сравнений и перемещений, соответственно. Перед началом каждой сортировки эти счетчики нужно обнулять.

(Замечание. Под одним «перемещением» в методах 1, 2, 9 и 10 понимается пересылка элемента на новое место, а в остальных методах — перестановка значений двух элементов.) 2. Каждый из предложенных методов сортировки должен быть реализован в виде процедуры от двух параметров: массива (X), в котором вначале находится неупорядоченная последовательность, а в конце работы процедуры должна оказаться упорядоченная последовательность, и длины (n) упорядочиваемой последовательности. Эти процедуры должны правильно работать при любом n 100.

Прежде чем проводить эксперименты, следует отладить каждую из этих процедур (например, на двух-трех последовательностях длины 10).

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

(Замечание. Для генерации случайных последовательностей можно использовать функцию random(k) языка Турбо Паскаль, которая при каждом обращении к ней в качестве своего значения выдает новое случайное целое число из отрезка [0, k-1].) 3.4. ЛИТЕРАТУРА [1]. Кнут Д. Искусство программирования для ЭВМ. Т.3. — М.: Мир, 1978.

[2]. Лорин Г. Сортировка и системы сортировки. — М.: Наука, 1983.

[3]. Вирт Н. Алгоритмы и структуры данных. — М.: Мир, 1989.

[4]. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.:

Наука, 1988.

Методическое пособие [5]. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0 — М.: «ДИАЛОГ-МИФИ», 2000.

3.5. КРАТКОЕ ОПИСАНИЕ МЕТОДОВ СОРТИРОВКИ

СОРТИРОВКА ВСТАВКАМИ

Идея методов сортировки вставками состоит в том, что в ранее упорядоченную подпоследовательность X1, X2,..., Xk 1 вставляется Xk так, чтобы упорядоченными оказались уже k первых элементов исходной последовательности. В зависимости от способа поиска места для элемента q = Xk различаются следующие методы.

1) ПРОСТЫЕ ВСТАВКИ. Если q < Xk 1, то величина q по очереди сравнивается с Xk 1, Xk 2,..., пока не будет найдена такая пара элементов Xi 1 и Xi, что Xi 1 q < Xi. Это означает, что местом для q является i-я позиция. Поэтому элементы Xi, …, Xk 1 сдвигаются на одну позицию вправо и в освободившуюся i-ю позицию вставляется q.

2) БИНАРНЫЕ ВСТАВКИ. Величина q сравнивается со средним элементом подпоследовательности X1, X2,..., Xk 1. Если q меньше этого элемента, то место для q ищется тем же способом в левой половине подпоследовательности, иначе - в правой половине. Когда место для q будет найдено, правые (от этого места) элементы сдвигаются на одну позицию вправо, а в освободившуюся позицию вставляется q.

СОРТИРОВКА ОБМЕНАМИ

В методах сортировки обменами переставляются элементы неупорядоченных пар, т.е.

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

1) МЕТОД ПУЗЫРЬКА. По очереди просматриваются пары соседних элементов (X1 и X2, X2 и X3, X3 и X4 и т.д.) и в неупорядоченных парах (Xi > Xi+1) переставляются элементы; в результате просмотра всей последовательности ее максимальный элемент окажется на своем окончательном месте - в конце.

Далее аналогичная процедура применяется ко всем элементам последовательности, кроме последнего. (Замечание: если при очередном просмотре последовательности не было ни одной перестановки, то последовательность уже упорядочена и потому следует прекратить сортировку.) 2) ЧЕЛНОЧНАЯ СОРТИРОВКА (метод просеивания). Здесь также сравниваются пары X1 и X2, X2 и X3 и т.д., но только до обнаружения неупорядоченной пары Xk > Xk+1. В этом случае осуществляется «движение назад»: сравниваются и переставляются пары Xk + 1 и Xk, Xk и Xk 1 и т.д. до тех пор, пока Xk + не попадет на свое место, т.е. пока не окажется упорядоченной подпоследовательность из k + 1 первых элементов. Далее возобновляется «движение вперед»: сравниваются пары Xk + 1 и Xk + 2, Xk + 2 и Xk + 3 и т.д.

СОРТИРОВКА ПРОСТЫМ ВЫБОРОМ

В сортировке простым выбором находится минимальный (максимальный) элемент последовательности и он переставляется с первым (последним) элементом. Далее аналогичная процедура применяется ко всем элементам, кроме первого (последнего). И так далее.

МЕТОД ШЕЛЛА

Пусть k — целое от 1 до n/2. Независимо друг от друга упорядочиваются (одним из описанных выше методов, например, простых вставок) подпоследовательности из элементов, отстоящих друг от друга на k позиций:

Затем k уменьшается и процесс повторяется заново. Последний шаг обязательно должен быть выполнен при k = 1.

Значение k можно менять разными способами, один из них таков: вначале k равно (целой части от) n/2, а затем k каждый раз уменьшается вдвое.

БЫСТРАЯ СОРТИРОВКА

Выбирается некоторый элемент (например, средний) и все элементы последовательности переставляются так, чтобы выбранный элемент оказался на своем окончательном месте, т.е. чтобы слева от него были только меньшие или равные ему элементы, а справа — только большие или равные. Затем этот же метод применяется к левой и правой частям последовательности, на которые ее разделил выбранный элемент. (Замечание:

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

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

СОРТИРОВКА СЛИЯНИЕМ

Основная идея такой сортировки — разделить последовательность на уже упорядоченные подпоследовательности (назовем их «отрезками») и затем объединять эти отрезки во все более длинные упорядоченные отрезки, пока не получится единая упорядоченная последовательность. Отметим, что при этом необходима дополнительная память (массив Y [1..n]).

Различаются следующие варианты сортировки слиянием.

1) ПРОСТОЕ СЛИЯНИЕ. Считается, что вначале отрезки состоят только из одного элемента, и они сливаются в отрезки из двух элементов (из X1 и X2, из X и X4,...), которые переносятся в массив Y. На втором этапе соседние двухэлементные отрезки (Y1, Y2 и Y3, Y4; Y5, Y6 и Y7, Y8;...) объединяются в отрезки из 4 элементов, которые записываются в массив X. На третьем этапе строятся отрезки из 8 элементов, и они заносятся в массив Y, и т.д.

2) ЕСТЕСТВЕННОЕ СЛИЯНИЕ. Берутся наиболее длинный (по неубыванию) отрезок в начале массива X и наиболее длинный (также по неубыванию, но при просмотре справа налево) отрезок в конце массива, и они сливаются в Методическое пособие один отрезок, который записывается в начало массива Y. Затем сливаются следующие максимально длинные отрезки с обоих концов, и полученный отрезок записывается (справа налево) в конец массива Y. Третьи по порядку отрезки после слияния записываются снова в начало Y (вслед за первым объединенным отрезком), четвертые — в конец Y (перед вторым объединенным отрезком) и т.д. Первый этап сортировки оканчивается, когда все элементы из X будут перенесены в массив Y. На втором этапе применяется та же процедура, только массивы X и Y меняются ролями. И так далее.

Замечание: в обоих вариантах следует учитывать, что в конце концов упорядоченные элементы должны оказаться в массиве X.

Задание 4. ЯЗЫК ПАСКАЛЬ. ИНТЕРФЕЙС

ПРОГРАММЫ СОРТИРОВКИ.

4.1. ПОСТАНОВКА ЗАДАЧИ Требуется дополнить программу сортировки, реализованную в задании 3, подсистемой диалогового взаимодействия с пользователем (интерфейсом), которая с помощью экранных окон, меню и других средств упрощает общение пользователя с этой программой. Работу с экраном подсистема должна осуществлять в текстовом режиме.

Объединенная система должна предусматривать следующие возможности.

— Пользователь должен иметь возможность выбрать из нескольких предъявленных ему методов сортировки тот метод, которым затем будут упорядочиваться последовательности.

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

— В системе должна быть предусмотрена возможность работы в двух режимах — отладки и счета. В режиме отладки пользователь сам вводит элементы (даты) последовательности, которая должна быть упорядочена, а в ответ система демонстрирует пошаговую работу процедуры сортировки для этой последовательности (это нужно для показа правильности работы процедуры). В режиме счета система должна работать так же, как и в задании 3: должна сформировать несколько последовательностей заданной длины, отсортировать их и вывести на экран таблицу результатов.

— Система должна позволять пользователю менять сделанный им ранее выбор (метода, длины или режима) и должна повторять свою работу при новом выборе.

— При вводе длины и элементов последовательности пользователь должен иметь возможность редактировать вводимую информацию.

4.2. ВОЗМОЖНЫЕ СЦЕНАРИИ РАБОТЫ С СИСТЕМОЙ

Ниже описаны два возможных сценария работы пользователя с системой. Любой из них можно взять за основу и со своими изменениями реализовать в задании.

Сценарий 1.

Этап 1. Выбор метода.

Работа системы начинается с очистки экрана и показа на нем списка названий различных (не менее 4-5) методов сортировки. Пользователь выбирает один из них либо прекращает работу с системой.

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

Методическое пособие Одновременно с меню методов на экране (в его нижней строке) должен высвечиваться текст, подсказывающий пользователю, что он должен сейчас делать, какие клавиши может нажимать и что они означают. Подсказка может быть, например, такой:

ВЫБЕРИТЕ МЕТОД:,–сдвиг Enter-выбор Esc-выход Нажатие пользователем клавиши Enter означает, что он выбрал тот метод, название которого сейчас выделено. (Замечание: поскольку в системе реализовано лишь два метода сортировки, то при выборе нереализованного метода система должна как-то сообщить об этом, например звуковым сигналом или выдачей сообщения «Метод не реализован»

и позволить пользователю выбрать иной метод. Желательно реализованные методы как-то пометить, например звездочкой.) Нажатие клавиши Esc означает конец работы с системой.

На этом этапе система не должна реагировать на другие клавиши, а курсор должен быть невидимым.

Этап 2. Выбор режима.

После того как пользователь выбрал метод сортировки, система спрашивает его о режиме дальнейшей работы — режиме отладки или режиме счета. Пользователь выбирает нужный режим, но может и вернуться на предыдущий этап. В нижней строке экрана должна высвечиваться соответствующая подсказка.

Запрос режима может быть реализован следующим образом. В свободной части экрана появляется окно с текстом «РЕЖИМ: ОТЛАДКА» (см. рис. 1). Если пользователь нажимает клавишу пробела, тогда слово «ОТЛАДКА» заменяется на слово «СЧЕТ»; при новом нажатии этой клавиши снова появляется слово «ОТЛАДКА» и т.д. Нажатие клавиши Enter означает выбор того режима, название которого указано сейчас в окне.

Допустимо также нажатие клавиши Esc, что означает отказ от выбора режима и возврат на предыдущий этап (с удалением окна режима и восстановлением подсказки, соответствующей предыдущему этапу). На иные клавиши система в это время не должна реагировать. Курсор должен быть невидимым.

Этап 3. Выбор длины.

При любом выбранном режиме система далее спрашивает у пользователя, последовательности какой длины он желает упорядочивать. В режиме счета длина может меняться от 1 до 100, а в режиме отладки — от 1 до 15.

Запрос длины можно реализовать так. На экране появляется окно с текстом «ДЛИНА



Похожие работы:

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ УО ПОЛОЦКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Материалы для самопроверки по дисциплине Анализ хозяйственной деятельности для студентов заочной формы обучения специальности 1-25 01 08 Новополоцк 2013 2 УДК 657.22 Материалы для самопроверки составлены на основе учебной программы для экономических специальностей высших учебных заведений, утв. 22.02.2010 г. Рег. № УД – 56/10//баз и Образовательных стандартов РБ ОСРБ 1 – 25 01 08, 08- 2008 УДК 657.22 Одобрены и...»

«МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ ПО СПЕЦИАЛЬНОСТИ 100103 – СОЦИАЛЬНО-КУЛЬТУРНЫЙ СЕРВИС И ТУРИЗМ Казань – 2010 КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ГЕОГРАФИИ И ЭКОЛОГИИ КАФЕДРА ФИЗИЧЕСКОЙ И ЭКОНОМИЧЕСКОЙ ГЕОГРАФИИ МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ ПО СПЕЦИАЛЬНОСТИ 100103 – СОЦИАЛЬНО-КУЛЬТУРНЫЙ СЕРВИС И ТУРИЗМ Казань – 2010 2 УДК 338.488 Печатается по решению Редакционно-издательского совета ГОУ ВПО Казанский государственный...»

«Министерство образования и науки Челябинской области государственное бюджетное образовательное учреждение среднего профессионального образования (среднее специальное учебное заведение) Южно-Уральский многопрофильный колледж ГБОУ СПО (ССУЗ) ЮУМК Вопросы к экзаменам и зачетам Задания для выполнения контрольных работ Вариант № 2 IV курс правового заочного отделения Специальность: Право и организация социального обеспечения Челябинск 2013 г. ГБОУ СПО ССУЗ ЮЖНО-УРАЛЬСКИЙ МНОГОПРОФИЛЬНЫЙ КОЛЛЕДЖ...»

«Министерство образования и науки Челябинской области государственное бюджетное образовательное учреждение среднего профессионального образования (среднее специальное учебное заведение) Южно-Уральский многопрофильный колледж ГБОУ СПО (ССУЗ) ЮУМК Вопросы к экзаменам и зачетам Задания для выполнения контрольных работ Вариант № 2 IV курс правового заочного отделения Специальность: Право и организация социального обеспечения Челябинск 2013 г. ГБОУ СПО ССУЗ ЮЖНО-УРАЛЬСКИЙ МНОГОПРОФИЛЬНЫЙ КОЛЛЕДЖ...»

«Государственное бюджетное общеобразовательное учреждение г. Москвы средняя общеобразовательная школа № 950 Согласовано Утверждаю: на заседании методического объединения Директор ГБОУ СОШ № 950 Воронцова И.Г. Рабочая программа по Биологии на 2013 – 2014 учебный год для 5 класса Разработала: Савкина Наталья Анатольевна, учитель биологии Количество часов: всего -70 часов, в неделю - 2 часа практических работ – 19, из них 10 оценочных Планирование составлено на основе программы общеобразовательных...»

«Б Б К 88.37 В64 Гамезо М.В., Петрова Е.А., Орлова Л.М. Возрастная и педагогическая психология: Учеб. пособие для студентов всех специальностей педагогических вузов. — М.: Педа­ гогическое общество России, 2003. — 512 с. ISBN 5-93134-195-1 Учебное пособие, написанное известными отечественными психо­ логами, открывает перед читателями две научные дисциплины - возраст­ ную и педагогическую психологию, объединенные единым замыслом ана­ лиза тех вопросов и проблем, с которыми повседневно...»

«ИЗАААААААААААААААА МЕТОДИЧЕСКИЕ ОРИЕНТИРЫ ОПЫТА РАБОТЫ ДЕЯТЕЛЬНОСТЬ УЧИТЕЛЯ В УСЛОВИЯХ АПРОБАЦИИ УМК ХИМИЯ 8 (авторы: В. В. Еремин, Н. Е. Кузьменко, А. А. Дроздов, В. В. Лунин) Е. П. Ким, учитель химии МАОУ Гимназия № 1 Октябрьского района г. Саратова, заслуженный учитель РФ 1 сентября 2010 года учащиеся 8 Е класса Всего Тема работы 5 4 3 2 МАОУ Гимназия № 1 Октябрьского района г. Са- писали ратова получили учебники Химия. 8 класс (автоПервоначальные поры: В. В. Еремина, Н. Е. Кузьменко, А. А....»

«Н.С. КУВШИНОВ, В.С. ДУКМАСОВА ПРИБОРОСТРОИТЕЛЬНОЕ ЧЕРЧЕНИЕ Допущено НМС по начертательной геометрии, инженерной и компьютерной графике при Министерстве образования и науки РФ в качестве учебного пособия для студентов вузов электротехнических и приборостроительных специальностей УДК 744(075.8) ББК 30.11 К88 Рецензенты: А.А. Чекмарев, д-р пед. наук, проф., И.Г. Торбеев, доц., канд. техн. наук, С.А. Хузина, доц., канд. пед. наук Кувшинов Н.С. К88 Приборостроительное черчение: учебное пособие /...»

«В.Я. БОРЩЁВ ОБОРУДОВАНИЕ, ДЛЯ ИЗМЕЛЬЧЕНИЯ МАТЕРИАЛОВ: ДРОБИЛКИ И МЕЛЬНИЦЫ ИЗДАТЕЛЬСТВО ТГТУ В.Я. БОРЩЁВ В. Я. Борщев Оборудование для измельчения материалов: дробилки и мельницы: учебное пособие, Тамбов: издательство Тамбовского Государственного Технического Университета, 2004. 75с. Рецензенты: Доктор технических наук, профессор С. Н. Сазонов Доктор технических наук, профессор Е. Н. Малыгин В учебном пособии, составленном в соответствии с требованиями Государственного образовательного стандарта...»

«НАЧАЛЬНОЕ И СРЕДНЕЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАНИЕ О. А. Петрусюк ГеоГрафия для профессий и специальностей социально-экономического профиля Контрольные задания Рекомендовано Федеральным государственным учреждением Федеральный институт развития образования в качестве учебного пособия для использования в учебном процессе образовательных учреждений, реализующих программы начального и среднего профессионального образования Регистрационный номер рецензии 332 от 16 июня 2009 г. ФГУ ФИРО 3-е издание,...»

«ПРОЕКТИРОВАНИЕ АВТОМАТИЗИРОВАННЫХ СИСТЕМ Методические указания по курсовому проектированию для студентов специальности 220301 Автоматизация технологических процессов и производств и по направлению 220200 Автоматизация и управление ЭЛЕКТРОННЫЙ ВАРИАНТ Санкт-Петербург 2009 1 ВВЕДЕНИЕ Содержание курсового проекта Проектирование автоматизированных систем (ПАС) определяется общей задачей данного курса, в результате изучения которого студенты должны знать содержание и порядок выполнения проектных...»

«РОССИЙСКАЯ ФЕДЕРАЦИЯ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФИНАНСОВО-ЭКОНОМИЧЕСКИЙ ИНСТИТУТ МЕТОДИЧЕСКИЕ УКАЗАНИЯ по оформлению контрольных работ, курсовых работ, выпускных квалификационных работ, магистерских диссертаций для студентов Финансово-экономического института Тюмень 2013 1 Настоящие методические указания подготовлены на основе следующих...»

«Министерство образования и науки РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ Кафедра экономики Афонасова М.А. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ВЫПОЛНЕНИЮ И ОФОРМЛЕНИЮ КУРСОВОЙ РАБОТЫ ПО ДИСЦИПЛИНЕ ПЛАНИРОВАНИЕ НА ПРЕДПРИЯТИИ 2012 Содержание 1 Общие положения 2 Выбор темы 3 Разработка плана работы 4 сбор и обобщение материалов 5 Требования, предъявляемые к оформлению...»

«А. М. Мухамедьяров Инновационный менеджмент: учебное пособие Текст предоставлен правообладателемhttp://www.litres.ru Инновационный менеджмент: Учеб. пособие. – 2-е изд.: ИНФРА-М; Москва; 2008 ISBN 978-5-16-003094-4 Аннотация В учебном пособии раскрыты методологические и методические основы управления инновационным процессом в условиях рыночных отношений. Рассмотрены особенности государственного регулирования инновационных процессов, раскрыт инновационный механизм и даны характеристики его...»

«Министерство образования Республики Беларусь Учреждение образования Полоцкий государственный университет Ж. М. БАНЗЕКУЛИВАХО, Е. Б. МАЛЕЙ ЭКОНОМИКА ПРЕДПРИЯТИЯ И ОРГАНИЗАЦИЯ ПРОИЗВОДСТВА Методические указания к курсовому и дипломному проектированию для студентов специальности 1-70 04 03 Водоснабжение, водоотведение и охрана водных ресурсов Новополоцк ПГУ 2011 УДК 658.5(075.8) ББК 65.291я73 Одобрено и рекомендовано к изданию методической комиссией инженерно-технологического факультета в качестве...»

«Министерство образования и науки Российской Федерации Южно-Уральский государственный университет Кафедра лингвистики и межкультурной коммуникации Ч48.я7 Х768 УЧЕБНО-ИССЛЕДОВАТЕЛЬСКАЯ РАБОТА СТУДЕНТОВ: КАК УСПЕШНО ОРГАНИЗОВАТЬ ВЫПОЛНЕНИЕ КУРСОВЫХ И ВЫПУСКНЫХ КВАЛИФИКАЦИОННЫХ РАБОТ Методические рекомендации для преподавателей Челябинск Издательский центр ЮУрГУ 2012 ББК Ч481.254.5.я7 + Ч481.286.я7 + Ш12/17.я7 Х768 Одобрено учебно-методической комиссией факультета лингвистики Рецензент доктор...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ И ФИНАНСОВ КАФЕДРА КОММЕРЦИИ И ЛОГИСТИКИ МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ИЗУЧЕНИЮ УЧЕБНОЙ ДИСЦИПЛИНЫ АВТОМАТИЗАЦИЯ БИЗНЕС-ПРОЦЕССОВ В ЛОГИСТИКЕ для студентов пятого курса специальности 08.05.06 Логистика и управление цепями поставок ИЗДАТЕЛЬСТВО САНКТ-ПЕТЕРБУРГСКОГО ГОСУДАРСТВЕННОГО...»

«Байханов И. Б. Избирательный процесс в условиях глобализации Грозный – 2012 2 УДК 327 Рекомендовано к изданию кафедрой истории, геополитики и политологии Чеченского государственного университета Рецензенты: Арсалиев Шавади Мадов-Хажиевич, доктор педагогических наук, профессор Ахтаев Абдула Мовлдиевич, кандидат социологических наук, доцент Байханов Исмаил Баутдинович. Избирательный процесс в условиях глобализации: Учебное пособие. - Грозный: Издательство Чеченского государственного университета,...»

«НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Факультет естественных наук Кафедра аналитической химии Научно-учебно-методический Центр Хроматография Курсовая работа Идентификация основных компонентов пихтового масла и соснового скипидара методом ВЭЖХ Выполнила: студентка гр. 047 М.С.Вяткина Научный руководитель: А.Г.Друганов Новосибирск - 2004 2 Содержание 1. ВВЕДЕНИЕ 2. ОБЗОР ЛИТЕРАТУРЫ 2.1. Жидкостная хроматография в системах с динамическим модифицированием 2.2. Образование -комплексов с Ag+ 3....»

«Учреждение образования Мозырский государственный педагогический университет имени И.П. Шамякина УТВЕРЖДАЮ И.о. Проректора по учебной работе Н.А. Лебедев _22__06_ 2010 г Регистрационный № УД-_407_ / баз. Дирижирование Учебная программа для студентов высших учебных заведений по специальности 1-01 02 02-03 Начальное образование. Музыкальное искусство 2010 Составитель: Чернецкая Галина Викторовна, преподаватель кафедры музыки и методики преподавания музыки Рецензенты: Судас С.В., директор...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.