Здравствуйте, ., Вы писали:
>> И, знаете, до некоторых доходит... Все же — разные. .>Вообще говоря, цикл for(;) в точности соответствует любому квантору в общем виде:
[]
, где "??" — порядок обхода множества, без которого в нашем подлунном мире не обойтись. .>Одно плохо, что во многих языках переменные в for могут быть только одного типа. Поубивав бы.
В смысле — только целые .>А вот как присобачить цикл while — мне не очень понятно, может поэтому вероятно и существуют некоторые, до которых и не доходит.
Лично мне представляется, что как раз цикл while — более фундаметален, чем цикл for. Если только вы не имеете ввиду на месте for(;) цикл без всяких условий вроде конструкции loop — в Компонентном паскале...
А вообще у Дейкстры в дисциплине программирования более фундаментальный цикл прописал — с охраняемыми командами.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
On 30/04/2010 14:19, LaptevVV wrote:
> .>А вот как присобачить цикл while — мне не очень понятно, может поэтому > вероятно и существуют некоторые, до которых и не доходит. > Лично мне представляется, что как раз цикл while — более фундаметален,
while(X) == for(; X, т.е. while просто частный случай for.
> чем цикл for. Если только вы не имеете ввиду на месте for( цикл без > всяких условий вроде конструкции loop — в Компонентном паскале...
Ой, я имел в виду for(;)
> А вообще у Дейкстры в дисциплине программирования более фундаментальный > цикл прописал — с охраняемыми командами.
Синтаксически оно плохо выглядит... компоненты цикла размазаны по коду.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, Аноним, Вы писали:
А>Значит, они не математики ни фига.
I>>А вот пример. Расскажи, кто какой код писал
А>И тот, и другой код ублюдский, и писан не математиками.
Один из них, с метками, писался никем иным, как Дональном Кнутом
Второй, с шаблонами — местный дедушка программирования — VladD2.
Re[31]: Как обучать технике программирования?
От:
Аноним
Дата:
30.04.10 12:16
Оценка:
Здравствуйте, Ikemefula, Вы писали:
I>Один из них, с метками, писался никем иным, как Дональном Кнутом
Ничего подобного! Кнут этого кода не писал. Это лишь чья-то сишная реимплементация кнутовского кода на вымышленном MIX. А Кнут свой код писал не ради реализации сортировки, а для того, чтобы читатель врубился в алгоритм (то есть код специально написан так, чтобы понять досконально, пока разберёшь код).
Так что пример не катит (вот что бывает, когда принимаешь на веру чужие аргументы), а других, судя по всему, у тебя под рукой нет
Здравствуйте, ., Вы писали:
.>On 30/04/2010 14:19, LaptevVV wrote:
>> .>А вот как присобачить цикл while — мне не очень понятно, может поэтому >> вероятно и существуют некоторые, до которых и не доходит. >> Лично мне представляется, что как раз цикл while — более фундаметален, .>while(X) == for(; X, т.е. while просто частный случай for.
Интересно, что в учебниках цикл со счетчиком обычно описывают в терминах цикла while, а не наоборот... >> А вообще у Дейкстры в дисциплине программирования более фундаментальный >> цикл прописал — с охраняемыми командами. .>Синтаксически оно плохо выглядит... компоненты цикла размазаны по коду.
Не... Синтаксис — обсуждаем. Например, в одном обсуждении была предложена просто великолепная форма в паскалевском синтаксисе:
while
|expr1 do ...
|expr2 do ...
...
|exprk do ...
end
Вертикальная черта — это операция or. Первую or можно опускать — она просто для единообразия поставлена.
В простейшем случае он просто является обычным while
while
expr1 do ...
end
Операцию or опустили за ненадобностью.
И возвращаясь к технике.
Не наработано множество элементарных паттернов. Вернее, общепризнанных паттернов. У каждого препода в заначке, конечно, кое-что есть. Но!
Никто пока не проводил сравнение, какие приемы лучше, какие хуже. И тем более никто не думал над критериями: что значит в контексте обучения "лучше-хуже". Вернее, измеряемых критериев, которые признали бы большинство профи, пока нет.
Мой вброс про два типа циклов и аналогия с кванторами ясно показали, что народ об этом даже не задумывается. Вернее, почти никто.
Точно также — об ограничении размера процедуры простыми эмпирическими правилами.
Мне кажется, пора просто собирать подобные эмпирические правила — для дальнейшего использования при обучении программистов.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[30]: Как обучать технике программирования?
От:
Аноним
Дата:
30.04.10 15:15
Оценка:
Здравствуйте, LaptevVV, Вы писали:
LVV>Не... Синтаксис — обсуждаем. Например, в одном обсуждении была предложена просто великолепная форма в паскалевском синтаксисе: LVV>
LVV>while
LVV>|expr1 do ...
LVV>|expr2 do ...
LVV>...
LVV>|exprk do ...
LVV>end
LVV>
Еще для полной картины ваших кванторов тут не хватает.
LVV>Не наработано множество элементарных паттернов.
Почти всё уже давно придумано и наработано.
LVV>Вернее, общепризнанных паттернов.
И это есть.
LVV>У каждого препода в заначке, конечно, кое-что есть. Но!
Хе-хе. У преподов в заначке, блин
LVV>Никто пока не проводил сравнение, какие приемы лучше, какие хуже. И тем более никто не думал над критериями: что значит в контексте обучения "лучше-хуже". Вернее, измеряемых критериев, которые признали бы большинство профи, пока нет.
Во-первых, потому что в каждой области, технологии или направлении свои паттерны, которые не пересекаются.
Во-вторых, потому что "большинство профи", которых вы упоминаете, и не профи вовсе, а ребята вроде вас, и каждый со своими "кванторами".
LVV>Мой вброс про два типа циклов и аналогия с кванторами ясно показали, что народ об этом даже не задумывается.
Потому что до такой клоунады ни один нормальный человек не будет опускаться...
LVV>Вернее, почти никто.
...кроме вас.
LVV>Мне кажется, пора просто собирать подобные эмпирические правила — для дальнейшего использования при обучении программистов.
Здравствуйте, Аноним, Вы писали:
А>Ничего подобного! Кнут этого кода не писал. Это лишь чья-то сишная реимплементация кнутовского кода на вымышленном MIX.
Ню-ню.
А>А Кнут свой код писал не ради реализации сортировки, а для того, чтобы читатель врубился в алгоритм (то есть код специально написан так, чтобы понять досконально, пока разберёшь код).
Правильно написаный алгоритм гораздо легче понять.
А>Так что пример не катит (вот что бывает, когда принимаешь на веру чужие аргументы), а других, судя по всему, у тебя под рукой нет
On 30/04/2010 17:05, LaptevVV wrote:
> Интересно, что в учебниках цикл со счетчиком обычно описывают в терминах > цикла while, а не наоборот...
Всякие учебники бывают. Я вот особо поразился одному из них, где реализация односвязного списка описывалась через массив, т.к. последний типа как более простая структура данных.
Да и вообще — for — это не цикл со счётчиком.
for(var parent = elem; parent != null; parent = parent->getParent())
где тут счётчик?
>> > А вообще у Дейкстры в дисциплине программирования более фундаментальный >> > цикл прописал — с охраняемыми командами. > .>Синтаксически оно плохо выглядит... компоненты цикла размазаны по коду. > Не... Синтаксис — обсуждаем. Например, в одном обсуждении была > предложена просто великолепная форма в паскалевском синтаксисе:
О чём я и говорю, условия размазаны по коду. В случае for — главные компонеты — предусловие, инвариант и постусловие описаны в одном месте, потом идёт потенциально большое тело.
> И возвращаясь к технике. > Не наработано множество элементарных паттернов. Вернее, общепризнанных > паттернов. У каждого препода в заначке, конечно, кое-что есть. Но!
Не знаю. Может это важно в процессе обучения, но в Real Life оно, по-моему, не нужно.
> Никто пока не проводил сравнение, какие приемы лучше, какие хуже. И тем > более никто не думал над критериями: что значит в контексте обучения > "лучше-хуже". Вернее, измеряемых критериев, которые признали бы > большинство профи, пока нет.
no silver bullet, однако.
> Мой вброс про два типа циклов и аналогия с кванторами ясно показали, что > народ об этом даже не задумывается. Вернее, почти никто.
Было дело, задумывались, курсе на первом, а то и в школе, изобретая очередную теорию всего.
> Точно также — об ограничении размера процедуры простыми эмпирическими > правилами. > Мне кажется, пора просто собирать подобные эмпирические правила — для > дальнейшего использования при обучении программистов.
Да вроде это тривиальные вещи... хотя может это мне просто так кажется из-за моего опыта.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[33]: Как обучать технике программирования?
От:
Аноним
Дата:
30.04.10 16:13
Оценка:
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Аноним, Вы писали:
А>>Ничего подобного! Кнут этого кода не писал. Это лишь чья-то сишная реимплементация кнутовского кода на вымышленном MIX. I>Ню-ню.
Вот тут, есичо, это черным по-белому написано.
А>>А Кнут свой код писал не ради реализации сортировки, а для того, чтобы читатель врубился в алгоритм (то есть код специально написан так, чтобы понять досконально, пока разберёшь код). I>Правильно написаный алгоритм гораздо легче понять.
И, как правило, гораздо легче через 10 мин забыть. А такие алгоритмы, которые у Кнута рассматриваются, желательно до мелочей расковырять, чему и способствует его подход.
Здравствуйте, Аноним, Вы писали:
А>>>Ничего подобного! Кнут этого кода не писал. Это лишь чья-то сишная реимплементация кнутовского кода на вымышленном MIX. I>>Ню-ню.
А>Вот тут, есичо, это черным по-белому написано.
Ну, допустим
А>>>А Кнут свой код писал не ради реализации сортировки, а для того, чтобы читатель врубился в алгоритм (то есть код специально написан так, чтобы понять досконально, пока разберёшь код). I>>Правильно написаный алгоритм гораздо легче понять.
А>И, как правило, гораздо легче через 10 мин забыть. А такие алгоритмы, которые у Кнута рассматриваются, желательно до мелочей расковырять, чему и способствует его подход.
Т.е. говнокод позволят улучшить понимание алгоритма ?
Re[35]: Как обучать технике программирования?
От:
Аноним
Дата:
30.04.10 17:16
Оценка:
Здравствуйте, Ikemefula, Вы писали:
А>>И, как правило, гораздо легче через 10 мин забыть. А такие алгоритмы, которые у Кнута рассматриваются, желательно до мелочей расковырять, чему и способствует его подход.
I>Т.е. говнокод позволят улучшить понимание алгоритма ?
Да не говнокод там. Просто низкоуровневый код. Для таких важных для программиста алгоритмов, как у Кнута, подход может где-то спорный, но небезосновательный. Разве не так?
Здравствуйте, LaptevVV, Вы писали:
LVV>Особенно когда я провел аналогию с кванторами. Но никто хотя бы еще одну семантику так и не привел. LVV>Которая принципиально отличается от поиска и перебора.
Не верно выбран термин. Некоторые виды поиска требуют итерации по всей коллекции. Например, поиск максимального элемента в неупорядоченном массиве целых чисел.
LVV>И в конце, как обычно, все свелось к тому, что автор темы — неграмотный программист, LVV>неграмотный математик, и его нельзя подпускать к студентам...
Не стоит дескутировать с анонимами. Особенно с теми, кто читает лукоморье.
Здравствуйте, Dufrenite, Вы писали:
D>Здравствуйте, LaptevVV, Вы писали:
LVV>>Особенно когда я провел аналогию с кванторами. Но никто хотя бы еще одну семантику так и не привел. LVV>>Которая принципиально отличается от поиска и перебора.
D>Не верно выбран термин. Некоторые виды поиска требуют итерации по всей коллекции. Например, поиск максимального элемента в неупорядоченном массиве целых чисел.
Я бы так сказал: для поиска минимального элемента требуется перебрать весь массив. LVV>>И в конце, как обычно, все свелось к тому, что автор темы — неграмотный программист, LVV>>неграмотный математик, и его нельзя подпускать к студентам... D>Не стоит дескутировать с анонимами. Особенно с теми, кто читает лукоморье.
Учту...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Dufrenite, Вы писали:
D>Не стоит дескутировать с анонимами. Особенно с теми, кто читает лукоморье.
Вот она — стандартная отмазка тех людей, которым важнее личность оппонента, нежели его мнение. В некоторых случаях это диагноз, увы.
PS. Кстати, вы сами-то от анонима немногим отличатесь. Профиль у вас пустой, никаких данных нет, кроме негуглимого ника. Хе-хе.
Здравствуйте, Аноним, Вы писали:
А>Вот она — стандартная отмазка тех людей, которым важнее личность оппонента, нежели его мнение. В некоторых случаях это диагноз, увы.
У анонима есть личность? А я думал что это такая программа специальная.
А>PS. Кстати, вы сами-то от анонима немногим отличатесь. Профиль у вас пустой, никаких данных нет, кроме негуглимого ника. Хе-хе.
Моя фамилия Баффет. Только никому не говорите.
Re[5]: Спасибо всем. Пора заканчивать
От:
Аноним
Дата:
01.05.10 14:47
Оценка:
Здравствуйте, Dufrenite, Вы писали:
D>У анонима есть личность? А я думал что это такая программа специальная. D>Моя фамилия Баффет. Только никому не говорите.
Здравствуйте, LaptevVV, Вы писали:
LVV>Все же конструктивных мыслей было мало. LVV>Да практически и не было.
Какой вопрос, такие и ответы.
LVV>И в конце, как обычно, все свелось к тому, что автор темы — неграмотный программист, LVV>неграмотный математик, и его нельзя подпускать к студентам...
Тебя чем-то классические курсы алгоритмов и структур данных не устраивают? Их до жопы. И почти все хороши — начиная с Хоара, продолжая Виртом "как бы про Паскаль", и заканчивая современным МИТ-овским учебником. Ты их сам — читал? Задачи оттуда — решал?
Они чем-то плохи? Тебе что-то в них не нравится? Так ты не стесняйся, скажи — что. Людям, я думаю, это интересно. А то, пнимаешь — второе десятилетие 21-го века на дворе, а ты "с ленинским прищуром" задаешь вопросы из 50-х, как будто Хоар еще не выпустил свою книгу по алгоритмам и структурам данных с примерами на Алголе.
Или ты под техникой подразумеваешь умение печатать ключевые слова вроде for? Так это тебе надо для своих студентов спецкурс "слепой печати для программистов" вводить.
Здравствуйте, Аноним, Вы писали:
А>Вот она — стандартная отмазка тех людей, которым важнее личность оппонента, нежели его мнение. В некоторых случаях это диагноз, увы. А>PS. Кстати, вы сами-то от анонима немногим отличатесь. Профиль у вас пустой, никаких данных нет, кроме негуглимого ника. Хе-хе.
Надо бы новые антианонимные правила предложить. Либо ник должен быть гуглим, либо, если ник негуглимый, то надо предоставлять гуглимое ФИО, а если и этого нет, то ваще хоть что-нибудь гуглимое. В противном случае человек признается принципиально негуглимым, а следовательно — анонимным, и реально не существующим.