![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Cool_abc |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: Кирилл Репутация: ![]() ![]() ![]() |
Текст задачи:
Имеется N населенных пунктов, пронумерованных от 1 до N (N = 10). Некоторые пары пунктов соединены дорогами. Определить, можно ли по дорогам попасть из пункта 1 в N-й пункт. Информация о дорогах задается в виде последовательности пар чисел i и j (i < j), указывающих что i-й и j-й пункты соединены дорогой. Признак конца этой последовательности – пара нулей. Из условия я вынес 1 из основных положений, что по кругу между пунктами мы ходить не будем, т.е. например 1-2-3-5-6-1 (- догора), задача после этого сущаственно упростилась:) написал, но не работает прога, помогите плиз найти ошибку.. или мот я в корне был не прав.. наставьте на путь правильный Мой код:
первый проход вынес в основную программу, т.к. нужно было сделать 1 проход по всем x(i,1)=1, т.е. тем. у которых первый пункт - наш начальный и в процедуре в стоке "if x[A,2]=x[i,1] then .." не смог бы подставить вместо x[i,1] единицу |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата А если a - простое выражение, то запись b := b or a всё так же генерирует ветвления, причём делает это ещё хуже, чем при явной форме if a then b := true; Я тебе открою тайну: если перед этим самым циклом поставить {$b-}, то ассемблерный листинг будет длиннее, чем если поставить {$b+}. Однако выполняться первый случай будет в несколько раз быстрее, чем второй. И что? Количество инструкций еще не прямо пропорционально времени их выполнения.Вот на примере D7: Еще одна тайна: Дельфи 2006 может показать другой листинг. 2009 - третий, а 2010? Сколько компиляторов - столько и мнений... Хочешь - еще открою тебе неизведанное? На твоем процессоре код Х будет выполняться за время Т, на другом - за время Т/3. Не веришь? Уже забыл, что я тебе показывал (когда твоя супер-вылизанная программа проиграла по скорости у меня на машине по скорости моей программе, написанной в лоб, безо всяких ухищрений в два раза). Опять начинаешь старую песню? ![]() Повторяю еще раз: у этого форума задача - научить программировать. Точка. Ни о какой оптимизации (тем более - предварительной) речи не идет. Все оптимизации кончаются одинаково: "я оказался не готов к способности окон менять размеры и к тому, что у всех разное разрешение экрана." (С) кто_это_написал_ты_мне_не_напомнишь_? Точно так же ты можешь оказаться не готов читать чужой код, содержащий совершенно легитимные синтаксические конструкции. А таких "программистов" (которые изо всех конструкций языка знают только for/while/if, и даже про case не слышали никогда, потому что вот подобный тебе "исследователь" говорил им, что case работает медленнее чем несколько if-ов, забывая однако уточнить, на какой машине и с использованием какого компилятора, и вообще КАК он это выяснил) я видел достаточно. |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Повторяю еще раз: у этого форума задача - научить программировать. Главная и единственная задача этого форума, на мой взгляд - общение. Плюс обучение общению, как естественное приложение. Каждый может поучавствовать в беседе и высказать мнение (если это не троллинг). На мой взгляд, Тарас дело сказал. Это не оптимизация даже, это прямое улучшение алгоритма. Оно не во всех случаях удобно и даже применимо, но тут вполне к месту. Использование IF тут сильно картину не портит, я согласен. Экономия не такая большая, но тем не менее.. Давайте держаться в рамках темы и доброжелательности. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 18:23 |