powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Нужны ли в работе алгоритмы?
25 сообщений из 108, страница 4 из 5
Нужны ли в работе алгоритмы?
    #36187273
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Ну, выход всегда есть если вам что-то не нравиться, садитесь и ваяете собственный шедевр. Лично я, сколько учился, никогда не воспринимал никакую информацию, как «последнее слово» в науке или образовании. И нет правил без исключения. Да, лично я не практикую «goto», но не потому, что это плохо в принципе (для меня не факт), а просто потому, что есть его вполне приемлемые эквиваленты (exit, break). В ассемблере, например, операции типа j** и jmp, (условные и безусловные переходы) встречаются как «с добрым утром». Если мне не нравиться одна книга, я просто ищу другую, благо выбор в эпоху Интернета вполне достаточен.

Строго доказано, что любой алгоритм можно реализовать с помощью 3 структур ЯВУ: циклы, линейность выполнения(пошаговое выполнение программы) и ветвление. break оставлен для сравнительно редких случаев, когда его использование оправдано, значительно сокращается размер текста программы или др. В ассемблере нет циклов, ветвлений как таковых, а есть только условные и безусловные переходы, но стоит отметить что асм это не ЯВУ.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187278
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryстудентикМного ли здесь русских фамилий и имен несравнимых мехматовцев МГУ?
Хоть много, хоть ни одной – что это доказывает? 40-е место в МГУ среди «блатных» университетов? Может даже и доказывает, ну и что? Вы ринулись в область политики, хоть и от науки, а это уже «совсем другая песня». Много ли действительных миротворцев среди лауреатов Нобелевской премии мира? Скорее, как у Оурелла в романе «1984», министерство правды лжет, министерство мира ведет войну и т.д. и т.п. А что означают нобелевские мира по экономике, большинство которых – американцы? Да, да, вы совершенно правы, именно американцам принадлежит авторство современного «мирового экономического кризиса». У других бы на это «мозгов не хватило». Особенно, если учесть, что экономика, это современная лженаука, причем не единственная, список остальных вы можете продолжить сами.

Модератор:
я про это ветвление уже как бы намекнул


Ну если мы о математиках, то уж им то тчно не светит Нобелевка по определению. А премия Филдса пожалуйста, наш соотечественник Перельман Г. И. вполне состоятельный пример. То бишь лопату( ручку, калькулятор, ...) в руки и вперед покорять горизонты науки. И не сваливать все на ужасную и жестокую политику.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187312
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик,

в ЛГУ(СПБГУ) не мехмат, а матмех
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187359
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилстудентик,

в ЛГУ(СПБГУ) не мехмат, а матмех

Да ошибка вышла, но на контекст предыдущих сообщений не влияет.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187361
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикОпять же не понимаю, почему Кнут не годится в учебники? Годится, но для мехматовцев МГУ, или людей, которые знают математику и у них есть время для его штудирования. Алгоритмы Кнута фундамениальны, они лишь основа основ. Есть куча алгоримов, которые не основные, а узкоспециализированы, например алгоритмы сжатия, компьютерной графики. Изучают их люди уже по другим источникам. Мне кажется неуместным говорить о проф. непригодности его книги в работе. Работа же у всех разная.
Я тоже не понимаю, почему для вас Кнут – «священная корова»? Для меня он один из классиков базовых компьютерных алгоритмов. Я же не министерство образования, высказал только свое мнение, не хотите не соглашайтесь, используйте Кнута, хоть вместо букваря в школе, мне по большому счету ульрафиолетово :) . Если он кому помог в профессиональной работе, я бы с удовольствием прочитал про это. Лично мне толку от Кнута было немного, грубо говоря. Я искал лучший алгоритм внешней сортировки у него, не нашел. Может быть вы мне назовете таковой из его 3-го тома?

студентикНемножко детские выводы, если честно. Вы случайно не из тех людей, которые считают, что у нас САМЫЕ САМЫЕ, а во всем мире, так... дурачки собрались? Я например давно уже в это не верю и вам советую. Самокритика никогда не бывает бесполезна. А про продажность мест в университетах, да вы просто агнец божий, как у вас все правильно и хорошо выходит. А например, еще более впечатляющую продажность мест в наших образовательных учреждениях, в том числе и МГУ, вы во нимание не принимали?
«Немножко детские выводы» и «Вы случаем не ректор МГУ?:)», ниже – весьма забавные предположения :) . Ничего я не считаю, просто я учился в и в МГУ и Политехе и вполне представляю бедственное положение нашего образования. Когда я поступал на мехмат, то меня поразил весьма низкий конкурс – менее 2.5 человек на место. Поступить было абсолютно легко, ничего сверх школьной программы не требовалось. Другое дело, что учиться было очень тяжело, часто даже призеры математических олимпиад вылетали за неуспеваемость. Я не представляю, зачем платить за поступление на мехмат, если ты не в состоянии учиться там. Проще уж просто купить диплом, я сам видел в подземных переходах чистые бланки дипломов с печатями и подписями. Впрочем, мне это мало интересно. Я учился ради знаний, а если кто-то учится ради «корочек», то это его дело. Одна студентка мне честно призналась, что поступила на мехмат, только потому, что там «очень много умных мальчиков», а она к таковым не ровно дышит, другие не скрывали, что их цель «выйти замуж за москвича и остаться жить в Москве», практически все они своей цели добились. Так что, у всех разные цели обучения :) . Могу еще добавить, что нас (математиков) очень любили ребята из МГИМО, один из них честно признался, что они, элита, дети власть предержащих, никого не уважают и не ценят из простых смертных, кроме как математиков из мехмата МГУ, потому что это единственная специальность, которую они не способны осилить в принципе. Они очень часто приходили к нам, оттачивали свое дипломатическое мастерство, проводили брифинги и тому подобное. Надо сказать, что та элита, с которой я общался, имела очень высокий интеллектуальный уровень. Одна студентка МГИМО в 18 лет знала в совершенстве несколько иностранных языков, в том числе японский. С ней было бесконечно интересно разговаривать, хотя они и циничны, до мозга костей. Мне она на память нарисовала меня, причем весьма профессионально, и подписалась иероглифами на катакане.

студентикВы случаем не ректор МГУ?:) Я бесконечно уважаю этот рассадник гениев математики нашей страны, но прочитав вашу характерстику обучения в нем, считаю сам процесс обучения в корне неправильным. Пусть умы гениев не забиваюn всякими абстракциями, а сразу подкинут им научно нерешенные проблемы. Мне кажется будет больше пользы и для студентов и для науки. Без иронии заверяю вас, что книги, выпущеные этим университетом и его преподавателями я обожаю, они действительно эталоны проффесионализма. И приймите во внимание, а еще и поймите, что не образование(академия, универ, дядя Петя доктор наук,...) делает человека образованным, а он сам . Из предшествуещего предложения уже и делайте выводы.
Могу вас заверить, что у ректора МГУ нет ни времени, ни желания тусоваться на подобных форумах. Если я не ошибаюсь, сейчас ректор Садовничий, бывший завкафедры матанализа, а ему уже, пожалуй, за 70.

Главный принцип обучения на мехмате не опускаться до среднего уровня студента, а ориентироваться на максимально высокий его уровень, подтягивая всех остальных к нему. Да, это вызывает такой шок, что я, например, целых полгода был в полной прострации, пока более-менее адаптировался к этому уровню обучения. Плохо это или хорошо? Думаю, что для мехмата МГУ это нормально. Молодой организм в состоянии выдержать подобные стрессы, хотя без потерь не обошлось. Между прочим, я сам носился все 5 лет МГУ с реформой образования, но, окончив его, потерял к этим реформам интерес :) .
А научными проблемами мехматовцы занимаются с первых дней обучения, я уже приводил на эту тему примеры. Я сам каждую неделю отчитывался перед своим научным руководителем по поводу своих курсовых и диплома с целью показать, а что я такого наваял за эту неделю из того, чего еще не знала математика? Могу даже похвастаться, что помог одной студентке защитить диплом, дав ей свою курсовую на ее дипломный проект, а также помог с адаптацией.

студентик*громкие аплодисменты* Золотые слова. Корень всех проблем. Даже сойдемся на том, что люди везде примерно одинаково способные, только нужны достаточные вложения(финансирование, организация, мотивация и пр.) Вложите сумму денег и любой захудалый городок в превратится в всемирный научный центр.
Верно, мы живем в политизированном мире, корни которого теряются во времени происхождения различных видов людей, но это отдельный разговор.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187362
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикМои эмоции, только говорят о том, что с вами интересно дисскутировать:)
Опять же не понимаю, почему Кнут не годится в учебники? Годится, но для мехматовцев МГУ, или
людей, которые знают математику и у них есть время для его штудирования. Алгоритмы Кнута фундамениальны, они лишь основа основ. Есть куча алгоримов, которые не основные, а узкоспециализированы, например алгоритмы сжатия, компьютерной графики. Изучают их люди уже по другим источникам.
Я-бы (сегодня) не рекомендовал старину Дональда в качестве учебника. Уж слишком он любит растекаться мыслью по древу. Если вы хотите быстро и эффективно освоить алгоритмы то стартовой точкой лучше взять Вирта, а потом можно практиковаться и (одновременно) расширять знания с такими практиками как Зубов, Шевченко и тот-же Седжевик (с примерами на Delhi/C/С++).
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187400
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикСтрого доказано, что любой алгоритм можно реализовать с помощью 3 структур ЯВУ: циклы, линейность выполнения(пошаговое выполнение программы) и ветвление. break оставлен для сравнительно редких случаев, когда его использование оправдано, значительно сокращается размер текста программы или др. В ассемблере нет циклов, ветвлений как таковых, а есть только условные и безусловные переходы, но стоит отметить что асм это не ЯВУ.
Да, но любая «структура ЯВУ» компилируется в инструкции ЯНУ (языка низкого уровня, то бишь ассемблера). И там операторы перехода – фундаментальны, т.е. не заменяемы другими операторами. А break вполне типичный оператор для switch / case / default в С/С++ и я не представляю как досрочно выходить из циклов без break, может подскажите? A goto не рекомендуется по другой причине, из-за того, что компилятор не может оптимизировать код с goto. Так что не ЯВУ делает погоду, а ЯНУ (ассемблер).

Насчет циклов в асме. Есть, например инструкции типа LOOP, LOOPE, LOOPZ, LOOPNE, LOOPNZ, которые работают как циклы. Вот пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
; вычисление суммы чисел, входящих в массив   
lea       ESI, iarray          ; адрес первого элемента массива а ESI
mov       ECX, len_iArray     ; размер массива а ECX
next:
mov       AX, word ptr [ESI]                                         
add       word ptr isum, AX   ; сумма младших  16 -ти разрядов  
mov       AX, word ptr [ESI+ 2 ]
adc       word ptr isum+ 2 , AX ; сумма старших  16 -ти разрядов 
add       ESI,  4               ; адрес следующего элемент массива
loop      next                    
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187409
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикНу если мы о математиках, то уж им то тчно не светит Нобелевка по определению. А премия Филдса пожалуйста, наш соотечественник Перельман Г. И. вполне состоятельный пример. То бишь лопату( ручку, калькулятор, ...) в руки и вперед покорять горизонты науки. И не сваливать все на ужасную и жестокую политику.
Математикам Нобелевка действительно не светит по определению, но по другой причине, Нобель не любил математиков, так как его жена имела любовником математика, потому и не указал их в своем завещании относительно своей премии :) .

А Перельман отказался от премии, не понял, правда его причин.

«Покорять горизонты науки» никто не против, только это занятие не для дилетанта, а для профессионала. Профессионализм означает получать деньги за свою работу. К сожалению, наука у нас не финансируется должным образом, тем более в провинции, так что ею можно заниматься только любительски, но и результаты будут любительскими :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187430
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryЯ тоже не понимаю, почему для вас Кнут – «священная корова»? Для меня он один из классиков базовых компьютерных алгоритмов. Я же не министерство образования, высказал только свое мнение, не хотите не соглашайтесь, используйте Кнута, хоть вместо букваря в школе, мне по большому счету ульрафиолетово :) . Если он кому помог в профессиональной работе, я бы с удовольствием прочитал про это. Лично мне толку от Кнута было немного, грубо говоря. Я искал лучший алгоритм внешней сортировки у него, не нашел. Может быть вы мне назовете таковой из его 3-го тома?
Я тоже не понимаю, почему вы считаете, что он для меня священен? Я лишь считаю его одним из образцов в академических книгах, причем не исключая, что есть более лучшие авторы и произведения. Я думаю, если использовать его в школе, то дети точно не увидят светлого будущего и многие из них будут навсегда потеряны. А если серьезно, я был бы не против его преподавания в высшем образовании.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187447
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryстудентикСтрого доказано, что любой алгоритм можно реализовать с помощью 3 структур ЯВУ: циклы, линейность выполнения(пошаговое выполнение программы) и ветвление. break оставлен для сравнительно редких случаев, когда его использование оправдано, значительно сокращается размер текста программы или др. В ассемблере нет циклов, ветвлений как таковых, а есть только условные и безусловные переходы, но стоит отметить что асм это не ЯВУ.
Да, но любая «структура ЯВУ» компилируется в инструкции ЯНУ (языка низкого уровня, то бишь ассемблера). И там операторы перехода – фундаментальны, т.е. не заменяемы другими операторами. А break вполне типичный оператор для switch / case / default в С/С++ и я не представляю как досрочно выходить из циклов без break, может подскажите? A goto не рекомендуется по другой причине, из-за того, что компилятор не может оптимизировать код с goto. Так что не ЯВУ делает погоду, а ЯНУ (ассемблер).
1
goto не рекомендуется по причине нечитабельности труднопонимаемости кода
2
условие про ЯВУ у Студентика не обоснованное ограничение в утверждении:
просто достаточно трех упомянутых структур, чтобы записать любой алгоритм.
3
Условный переход и есть ветвление.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187462
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
А break вполне типичный оператор для switch / case / default в С/С++ и я не представляю как досрочно выходить из циклов без break, может подскажите?
Конечно подскажу. Если из цикла предусматривается неопределяемый изначально выход, то цикл не является циклом с заранее изветным количеством повторений(типичный for), а поэтому следует использовать циклы с заранее неизвестным числом повторений(while do ...; do ... while), где и определять доп. условия выхода из цикла. Конечно замечу бывают ситуации, когда условие
выполнено где- нибудь в середине цикла, а остальная часть не должна выполняться, в тех случаях нужно пересмотреть логику цикла, либо добавить ветвления(if then). Ну а если случай запущенный и само переделывание логики к примеру громоздко, нежелательно, то тогда использовать break( goto на след инстр. после цикла).
Emery
A goto не рекомендуется по другой причине, из-за того, что компилятор не может оптимизировать код с goto.
Согласен с этим. Безусловный переход функционально мощнее break(частный случай goto), а поэтому более затруднителен в оптимизации. Хотя насколько мне известно, причина отказа от goto, как раз заключалась в затруднении понимания логики текстов с его обильным использованием. Правда, если вы грамотный программист, я думаю вы и с goto будете писать нормальные программы, главное им не злоупотреблять.
Emery
Так что не ЯВУ делает погоду, а ЯНУ (ассемблер).

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

Emery
Насчет циклов в асме. Есть, например инструкции типа LOOP, LOOPE, LOOPZ, LOOPNE, LOOPNZ, которые работают как циклы. Вот пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
; вычисление суммы чисел, входящих в массив   
lea       ESI, iarray          ; адрес первого элемента массива а ESI
mov       ECX, len_iArray     ; размер массива а ECX
next:
mov       AX, word ptr [ESI]                                         
add       word ptr isum, AX   ; сумма младших  16 -ти разрядов  
mov       AX, word ptr [ESI+ 2 ]
adc       word ptr isum+ 2 , AX ; сумма старших  16 -ти разрядов 
add       ESI,  4               ; адрес следующего элемент массива
loop      next                    


По сути loop это тот же условный переход, который в отличии от остальных проверяет не флаги процессора, а регистр ECX на равенство 0. С помощью проверки условия и условного перехода можно построить любой цикл. Кстати, если не ошибаюсь(я не знаток Ассемблера), использование loop уже не выгодно бо быстродействию, так как проверка флага нуля более выгодна чем проверка регистра на 0.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187464
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В современных процессорах типа P6 при выполнении линейного машинного кода используется механизм конвейера (а точнее нескольких конвееров). Суть его работы в том что при правильной организации кода выборка машинных команд идёт параллельно и независимо с процессом их исполнения. Однако этот механизм легко ушатать добавлением jump -ов. При этом происходит сброс конвейера и как следствие несколько десятков тактов таймаутов. Специально для этого в архитектуру Pentium был введён блок предсказания переходов . Однако эффективность его правильного прогноза составляет около 80%. Поэтому в качестве хорошей машинной оптимизации можно предложить отказ от использования оператора перехода там, где это технически осуществимо.

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

С уважением.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187505
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz
goto не рекомендуется по причине нечитабельности труднопонимаемости кода

поначалу не рекомендовалось по причине нечитабельности и труднопонимаемости кода,
а потом еще нашлось 17 причин, чтобы его избегать.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187522
Гыы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикEmery
Ну, выход всегда есть если вам что-то не нравиться, садитесь и ваяете собственный шедевр. Лично я, сколько учился, никогда не воспринимал никакую информацию, как «последнее слово» в науке или образовании. И нет правил без исключения. Да, лично я не практикую «goto», но не потому, что это плохо в принципе (для меня не факт), а просто потому, что есть его вполне приемлемые эквиваленты (exit, break). В ассемблере, например, операции типа j** и jmp, (условные и безусловные переходы) встречаются как «с добрым утром». Если мне не нравиться одна книга, я просто ищу другую, благо выбор в эпоху Интернета вполне достаточен.

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

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

Строго доказано, что любой алгоритм можно реализовать с помощью лямбда исчисления.

Строго доказано, что любой алгоритм можно реализовать с помощью нормальных алгоритмов Маркова.

Строго доказано, что любой алгоритм можно реализовать с помощью машины Тьюринга, наконец.

Собственно таких базисов вычислимости может быть много, так что это не показатель.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187523
Гыы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* "оператор выбора" читать как "оператор подстановки"
** лямбда исчисление, конечно же, Черча
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187570
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гыы,
я извиняюсь, но помоему,
это строго постулируется, а не строго доказано.
Слово алгоритм не формализовано, а все что у Вас справа - это формальные термины.
Они все одинаковые, именно это строго доказано.
(в смысле, что можно написать на одном, то можно написать на любом другом).
А собственно слово алгорим решили считать синонимом пока не обнаружется
нечто, что можно расценивать как алгоритм и нельзя записать в виде рекурсивных фукнций.
Тогда думать дальше.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187639
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emeryи подписалась иероглифами на катакане.


OffLop: катакана это слоговая азбука, не иероглифы (это так, на будущее)
[для такого дела могла и кандзи подобрать ;P]
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187738
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикКонечно подскажу. Если из цикла предусматривается неопределяемый изначально выход, то цикл не является циклом с заранее изветным количеством повторений(типичный for), а поэтому следует использовать циклы с заранее неизвестным числом повторений(while do ...; do ... while), где и определять доп. условия выхода из цикла. Конечно замечу бывают ситуации, когда условие
выполнено где- нибудь в середине цикла, а остальная часть не должна выполняться, в тех случаях нужно пересмотреть логику цикла, либо добавить ветвления(if then). Ну а если случай запущенный и само переделывание логики к примеру громоздко, нежелательно, то тогда использовать break( goto на след инстр. после цикла).
Вот кусок кода на VFP из моего демонстрационного алгоритма сортировки естественным слиянием:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
q1 =  0 
FOR j =  0  TO  31 
  IF INT(K/ 2 ^j)% 2  ==  1 
    q1 = j
    EXIT 
  ENDIF
ENDFOR
Как его можно еще оптимально записать без EXIT ? Думаю, что никак, разве что тупо выполнить весь цикл. В ассемблере можно было бы для LOOP принудительно обнулить регистр ECX .

студентикДля меня вообще ассемблер есть "альфа и омега". Но я так же понимаю, что его использование в кодировании серьезных программ затруднительно и трудоемко.
Представьте, что Майкрософт отменил поддержку ассемблера в своей Визуал Студии. Как вы думаете, как быстро кодировщики «серьезных программ» заметят это и помянут MS «незлым тихим словом»? На самом деле «не так страшен чёрт, как его малюют». Есть макро ассемблер, на котором программировать одно удовольствие. Хотя понятно, что для «грубого» программирования с использованием библиотек поддержки вполне хорош и ЯВУ.

студентикПо сути loop это тот же условный переход, который в отличии от остальных проверяет не флаги процессора, а регистр ECX на равенство 0. С помощью проверки условия и условного перехода можно построить любой цикл. Кстати, если не ошибаюсь(я не знаток Ассемблера), использование loop уже не выгодно бо быстродействию, так как проверка флага нуля более выгодна чем проверка регистра на 0.
Конечно, LOOP можно заменить некой эквивалентной последовательностью инструкций, как, скажем, вместо CALL использовать PUSH и JMP . В этом смысле ассемблер избыточный язык. Быстродействие на уровне выбора инструкций ассемблера не принципиальный вопрос, куда больше имеет значение компактность кода и его «читабельность».
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187775
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Emeryи подписалась иероглифами на катакане.


OffLop: катакана это слоговая азбука, не иероглифы (это так, на будущее)
[для такого дела могла и кандзи подобрать ;P]
{jhjij
Хирагана и катакана вместе составляют систему каны, в которой один символ выражает одну мору :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36187895
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EmeryGluk (Kazan)Emeryи подписалась иероглифами на катакане.


OffLop: катакана это слоговая азбука, не иероглифы (это так, на будущее)
[для такого дела могла и кандзи подобрать ;P]
{jhjij
Хирагана и катакана вместе составляют систему каны, в которой один символ выражает одну мору :) .

а я что сказал ? (кстати, в вике и дурак посмотреть могет, хоть бы слова переставил )
просто немножко коробит, когда каны называют иероглифами. Иероглифы это кандзи
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36188092
Гыы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizГыы,
я извиняюсь, но помоему,
это строго постулируется, а не строго доказано.
Слово алгоритм не формализовано, а все что у Вас справа - это формальные термины.
Они все одинаковые, именно это строго доказано.
(в смысле, что можно написать на одном, то можно написать на любом другом).
А собственно слово алгорим решили считать синонимом пока не обнаружется
нечто, что можно расценивать как алгоритм и нельзя записать в виде рекурсивных фукнций.
Тогда думать дальше.

Придираешься к словам. Строго доказано, что все эти системы образуют класс вычислимых функций, которые могут быть реализованы на исполнителе машин Тьюринга. А функция называется алгоритмически разрешимой, если она вычислима. Так что все строго.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36188531
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)EmeryGluk (Kazan)Emeryи подписалась иероглифами на катакане.

OffLop: катакана это слоговая азбука, не иероглифы (это так, на будущее)
[для такого дела могла и кандзи подобрать ;P]
Хирагана и катакана вместе составляют систему каны, в которой один символ выражает одну мору :) .

а я что сказал ? (кстати, в вике и дурак посмотреть могет, хоть бы слова переставил )
просто немножко коробит, когда каны называют иероглифами. Иероглифы это кандзи
Ну ладно, один плюс в вашу пользу, я просто повторил, что она мне сказала, а с виду это действительно были иероглифы. По этому делу даже купил японо-русский словарь, до перевода руки так и не дошли :) .
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36188591
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Ну ладно, один плюс в вашу пользу, я просто повторил, что она мне сказала, а с виду это действительно были иероглифы. По этому делу даже купил японо-русский словарь, до перевода руки так и не дошли :) .

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

А переводить там особо нечего, это просто переклад звучания на слоговую азбуку (с учетом того, что 'л' нет, звучит экзотически). Гораздо интереснее, когда для имени действительно подбирают иероглифы (по смыслу или по звучанию), это как бы престижнее ;) Но видимо твоя знакомая не стала париться, дело это не простое, да и положено всех гайдзинов катаканой писать, хоть тресни :)

Конец OffTop-а

Модератор:
спасибо
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36189605
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emery
Вот кусок кода на VFP из моего демонстрационного алгоритма сортировки естественным слиянием:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
q1 =  0 
FOR j =  0  TO  31 
  IF INT(K/ 2 ^j)% 2  ==  1 
    q1 = j
    EXIT 
  ENDIF
ENDFOR
Как его можно еще оптимально записать без EXIT ? Думаю, что никак, разве что тупо выполнить весь цикл. В ассемблере можно было бы для LOOP принудительно обнулить регистр ECX .

Ну выход тривиален, только не знаю понравиться ли он вам. Следую из определения цикла for - цикл с заранее известным количеством повторений, мы видим нестыковку - количество действий неопределено, тогда можем использовать цикл с предусловием, т.е.

Код: plaintext
1.
2.
3.
4.
5.
q1 =  0 ;
j =  0 ;
while ((q1 ==  0 ) && (j <=  31 )) {
  if (INT(K/ 2 ^j)% 2  ==  1 )   q1 = j;
  ++j;
}

а можно и так:
Код: plaintext
1.
2.
3.
4.
5.
6.
q1 =  0 ;
j =  0 ;
do {
  if (INT(K/ 2 ^j)% 2  ==  1 )   q1 = j;
  ++j;
while ((q1 ==  0 ) && (j <=  31 )) 
}
Emery
Представьте, что Майкрософт отменил поддержку ассемблера в своей Визуал Студии. Как вы думаете, как быстро кодировщики «серьезных программ» заметят это и помянут MS «незлым тихим словом»? На самом деле «не так страшен чёрт, как его малюют». Есть макро ассемблер, на котором программировать одно удовольствие. Хотя понятно, что для «грубого» программирования с использованием библиотек поддержки вполне хорош и ЯВУ.
Вообще этот вопрос в моем понимани заслуживает отдельной темы. А если коротко, то я считаю, что майкрософт стремиться свести все программирование в будущем под одну легконтролируемую технологию(.Net).
Emery
Конечно, LOOP можно заменить некой эквивалентной последовательностью инструкций, как, скажем, вместо CALL использовать PUSH и JMP . В этом смысле ассемблер избыточный язык. Быстродействие на уровне выбора инструкций ассемблера не принципиальный вопрос, куда больше имеет значение компактность кода и его «читабельность».
Я имел ввиду, что команда Loop избыточна и является пережитком времени. Дизассемблируйте код, сгенерированный современными компиляторами - вы его врядли встретите.
...
Рейтинг: 0 / 0
Нужны ли в работе алгоритмы?
    #36189728
Emery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентикНу выход тривиален, только не знаю понравиться ли он вам. Следую из определения цикла for - цикл с заранее известным количеством повторений, мы видим нестыковку - количество действий неопределено, тогда можем использовать цикл с предусловием, т.е.

Код: plaintext
1.
2.
3.
4.
5.
q1 =  0 ;
j =  0 ;
while ((q1 ==  0 ) && (j <=  31 )) {
  if (INT(K/ 2 ^j)% 2  ==  1 )   q1 = j;
  ++j;
}

а можно и так:
Код: plaintext
1.
2.
3.
4.
5.
6.
q1 =  0 ;
j =  0 ;
do {
  if (INT(K/ 2 ^j)% 2  ==  1 )   q1 = j;
  ++j;
while ((q1 ==  0 ) && (j <=  31 )) 
}

Хорошо, убедили. Идею я понял. Только на Си можно пойти еще дальше в оптимизации, например,
Код: plaintext
1.
2.
3.
j =  0 ;
while (INT(K/ 2 ^j++)% 2  ==  0 ) ;  // K >  0 
q1 = j –  1 ;
И это не предел, но там уже нюансы используемого алгоритма.

студентикВообще этот вопрос в моем понимани заслуживает отдельной темы. А если коротко, то я считаю, что майкрософт стремиться свести все программирование в будущем под одну легконтролируемую технологию(.Net).
Может быть, но .NET мне пока не интересен.

студентикЯ имел ввиду, что команда Loop избыточна и является пережитком времени. Дизассемблируйте код, сгенерированный современными компиляторами - вы его врядли встретите.
Ладно, пусть так, спор то шел не об этом, а том есть циклы в асме или нет. Но, в общем, все это не принципиально.
...
Рейтинг: 0 / 0
25 сообщений из 108, страница 4 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Нужны ли в работе алгоритмы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]