![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
uses crt; объясните пожалуйста как можно подробнее суть выделенной части программы (в этой части убираются числа с одним и тем же значением) если нужно, напоминаю задание (дан массив целых чисел размера n=10. получить упорядоченный по возрастанию массив, содержащий все различные числа данного массива) |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата но только все же хочу сказать, что он весьма неоптимален (вложено два цикла, что влечет увеличение числа проверок..) За проверки считать только сравнения между элементами массива? Тогда у меня делается всего на 1 проверку больше... И что? Все остальное - только контроль выхода за пределы массива... По скорости вообще не будем сравнивать (while/repeat даст выигрыш в 30% относительно for)... Так что, в следующий раз, просьба приводить критерии оптимальности... |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
просьба приводить критерии оптимальности... Извини, volvo, я не знал, что это твой код. Согласен, критерии оптимальности весьма важны, и они могут варьироваться в зависимости от поставленной задачи. В данном случае я судил "на глазок", и мое замечание о циклах и проверках объясняет далеко не все. Скорее, я имел в виду логику алгоритма (о чем, собсно, и был вопрос), и, с моей точки зрения, вложенные циклы и многочисленные проверки затрудняют понимание новичком программы (думаю, мои комментарии - см. выше - являются к этому иллюстрацией). Я имел в виду это, но, помимо того, я думаю, что в чисто вычислительном контексте, все же мой вариант более предпочтителен. В данном случае я исхожу из компактности кода (при наглядности воплощения алгоритма) и скорости вычислений. Твое утверждение, Цитата while/repeat даст выигрыш в 30% относительно for - на чем оно основано, и распространяется ли оно на использование переменной цикла с ее инкриминированием? Так или иначе, желательно провести измерения, что я и сделал.. Я произвел сравнительный анализ, запуская этот фрагмент программы в двух вариантах (var 0, оригинальный, и var 1, модифицированный мной) в цикле (потребовалось более миллиона обращений цикла, чтобы надежно отловить разницу). Время выполнения измеряю по системным часам. Программа запускалась последовательно, несколько раз, разброс значений составил не более 10%. Результаты (наиболее характерные) приведены ниже (в единицах сек/100). Range check везде отключен. Процессор - Р4 ранних выпусков (кажется, 1.7ГГ). FPC: Running "c:\andreyk\pas\t034\to34.exe " BP 7.0: Borland Pascal Version 7.0 Copyright © 1983,92 Borland International Таким образом, скорость исполнения кодов различается: FPC: 2.43 раза, ВР: в 1.58 раза. Далее, размеры кода программы, скомпилированный FPC, не отличаются и составляют: 11/01/2006 06:38 PM 30,208 to34-1.exe 11/01/2006 06:37 PM 30,208 to34.exe Размеры программ, скомпилированные ВР7 показывают небольшое отличие: 11/01/2006 06:45 PM 3,424 TO34-1.EXE 11/01/2006 06:45 PM 3,456 TO34.EXE - снова в пользу варианта 1. Извиняюсь за приведение критериев задним числом.. ![]() Примечание: Точный код программ, использованных для тестирования, доступен по требованию. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 11:23 |