Паскаль

Arven
Сообщений: 642
Зарегистрирован: 09 ноя 2007, 01:31

Паскаль

Сообщение Arven » 05 авг 2008, 19:13

qwertylol писал(а):Source of the post Да. одна процедура- 1 вид сортировки.
Спасибо, как всё было очевидно...
Наверно частично сортированный, т.e. часть элементов уже упорядочена например такой:
1 2 7 3 4 5 9 6 7 1 8 9
C этим тоже понятно, и за ссылки спасибо, действительно полезные.
Inspector, возможно, вы подскажете мне ещё c 1 пунктом:
Провести сравнительный анализ трех сортировок по следующим параметрам:
подсчитать количество перестановок и сравнений элементов заданных массивов,
a так же исследовать время работы каждой сортировки при заданных параметрах.
Результаты измерений оформить в виде таблиц.
-- это делается в программе? :blink:
To есть, как можно "подсчитать количество перестановок и сравнений элементов" и "исследовать время работы алгоритма" в TP7? И в самой программе как это потом оформляется в виде таблиц?
(Может, это глупые вопросы, конечно, но я просто 1 раз в жизни пишу курсовую по сортировкам
По полученным результатам построить в графическом режиме соответствующие
гистограммы сравнений и перестановок, a также времени работы.
Может, у вас есть информация, как делается это?
Последний раз редактировалось Arven 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
qwertylol
Сообщений: 3761
Зарегистрирован: 01 ноя 2007, 21:00

Паскаль

Сообщение qwertylol » 05 авг 2008, 19:35

подсчитать количество перестановок и сравнений элементов заданных массивов

очень просто. Вводите две целочисленные переменные-счётчики(a и b ), при старте сортировки обнуляете их, a в коде перед местом перестановки, которое наверно выглядит примерно так:

Код: Выбрать все

temp:=Arr[i];
Arr[i]:=Arr[j];
Arr[j]:=temp;

пишете inc(a). A перед всеми условными операторами пишите inc(b ).
C таймером в паскале всё сложнее, т.к. нет доступа к 32-х разрядным функциям(Win32 API). Почитайте это, там и исходники есть.
Результаты измерений оформить в виде таблиц. -- это делается в программе?

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

Кому-то и такую лабу делал, завтра как только мне тот винч вернут найду и выложу исходный код.
Последний раз редактировалось qwertylol 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
qwertylol
Сообщений: 3761
Зарегистрирован: 01 ноя 2007, 21:00

Паскаль

Сообщение qwertylol » 06 авг 2008, 14:35

K сожалению все лабораторные стёрты(зато есть 200гб фильмов ).
C псевдографикой. Вот таблица:
Изображение
символ можно вывести на экран двумя способами, например левый верхний угол рамки:
Write(#201);
или
Write('╔');
Символ нужного кода можно изобразить зажав Alt и при включённом Num Lock'e набрав на клавиатуре его код.
Последний раз редактировалось qwertylol 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test

Arven
Сообщений: 642
Зарегистрирован: 09 ноя 2007, 01:31

Паскаль

Сообщение Arven » 06 авг 2008, 15:58

qwertylol писал(а):Source of the post
C псевдографикой. Вот таблица:
Изображение
символ можно вывести на экран двумя способами, например левый верхний угол рамки:
Write(#201);
или
Write('╔');
Символ нужного кода можно изобразить зажав Alt и при включённом Num Lock'e набрав на клавиатуре его код.
Мне казалось, это надо просто в коде прописать как-то... Просто, не могу понять, причём тут эти коды...
Я имела в виду, может у вас есть инфа из Интернета -- типа той, кот. вы давали, про алгоритмы сортировки?
Там, мне кажется, просто надо засечь время -- сколько идёт выполнение каждой процедуры, a потом где-то сохранить эти данные, и сделать отдельную процедуру, которая будет строить график по результатам работы каждой процедуры сортировки...
Мне надо про это теория, где написано как енто делается...

A co временем работы алгоритма, конечно, тоже ещё надо разбираться...
Последний раз редактировалось Arven 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test

Arven
Сообщений: 642
Зарегистрирован: 09 ноя 2007, 01:31

Паскаль

Сообщение Arven » 07 авг 2008, 07:34

Inspector, дык вы всё-таки не объясните, что это за таблица, и зачем она нужна?
Мне самой интересно стало...
Последний раз редактировалось Arven 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
qwertylol
Сообщений: 3761
Зарегистрирован: 01 ноя 2007, 21:00

Паскаль

Сообщение qwertylol » 07 авг 2008, 09:30

Нужно просто табулировать результаты! Рисуете табличку,
Изображение
a в ней результаты вашей работы(к-во сравнений, перестановок, время работы).
Последний раз редактировалось qwertylol 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test

Arven
Сообщений: 642
Зарегистрирован: 09 ноя 2007, 01:31

Паскаль

Сообщение Arven » 08 авг 2008, 11:39

ээ... Спасибо. C этим я поняла...
возможно, это совсем тупо, a возможно, у меня голова ещё плохо работает после вчерашнего... но.
He могу сообразить, как задать отсортированный в прямом порядке (и в обратном тоже, и наполовину отсорт.) состоящий из 100 (и из 1000 тоже) чисел. Их же не вручную вводить!!! Хотя подозреваю, что это просто.
Наведите-ка на мысль
Последний раз редактировалось Arven 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Soul
Сообщений: 2475
Зарегистрирован: 09 апр 2006, 21:00

Паскаль

Сообщение Soul » 08 авг 2008, 12:25

random(100);
Последний раз редактировалось Soul 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Soul
Сообщений: 2475
Зарегистрирован: 09 апр 2006, 21:00

Паскаль

Сообщение Soul » 08 авг 2008, 12:45

если отсортированный, то предыдущий элемент+random(2);


Ну или я совсем не понял вопроса.
Последний раз редактировалось Soul 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
qwertylol
Сообщений: 3761
Зарегистрирован: 01 ноя 2007, 21:00

Паскаль

Сообщение qwertylol » 08 авг 2008, 13:31

Упорядоченный:

Код: Выбрать все

for i:=1 to 100 do
 Arr[i]:=i;

Упорядоченный в обратном направлении

Код: Выбрать все

for i:=1 to 100 do
 Arr[i]:=101-i;

Наполовину отсортированный:

Код: Выбрать все

for i:=1 to 100 do
 Arr[i]:=i;
for i:=1 to 50 do
 Arr[random(100)-1]:=random(100)-1;
Последний раз редактировалось qwertylol 30 ноя 2019, 12:14, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 2 гостей