ещё о Дейкстре; первая программа
Aug. 8th, 2002 12:03 am(контекст)
Я время от времени вспоминаю это его высказывание:
Первая нетривиальная программа в моей жизни была мной написана на Бейсике.
Ещё и какая забавная была программа: она вычисляла число пи до любого знака после запятой (это в теории; на практике больше тысячи было нереально, Бейсик начинал задыхаться). Делала она это, суммируя тригонометрический ряд, который сходился к пи с точностью до коэффициента. Притом самый естественный ряд такого рода -- а именно 1 + 1/3 - 1/5 + 1/7 - 1/9 + 1/11 .... = pi/4 -- использовать было нельзя, так как он сходится до невозможности медленно. Поэтому я пошёл в библиотеку, зарылся в справочники и нашёл быстро сходящуюся формулу. Это было разложение по арктангенсу: пользуемся тем, что pi = 16*arctan(1/5) - 4*arctan(1/239), а эти два арктангенса раскладываем в ряды по формуле arctan(x) = x - x3/3 + x5/5 - x7/7 + .... Такой метод давал больше одного значимого знака на каждую итерацию. Цифры я хранил в бейсиковском массиве, и ещё там были какие-то оптимизации, не помню.
Мне было, кажется, тринадцать лет. Я был безмерно горд и счастлив.
А афоризму Дейкстры этому я не верю, и никогда не верил. Он, несомненно -- забавен? остроумен? не знаю, какое слово подобрать взамен идеально подходящего здесь английского cute -- но одновременно глубоко неверен.
Я время от времени вспоминаю это его высказывание:
Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на БЕЙСИК: как потенциальные программисты они умственно оболванены без надежды на исцеление.
Первая нетривиальная программа в моей жизни была мной написана на Бейсике.
Ещё и какая забавная была программа: она вычисляла число пи до любого знака после запятой (это в теории; на практике больше тысячи было нереально, Бейсик начинал задыхаться). Делала она это, суммируя тригонометрический ряд, который сходился к пи с точностью до коэффициента. Притом самый естественный ряд такого рода -- а именно 1 + 1/3 - 1/5 + 1/7 - 1/9 + 1/11 .... = pi/4 -- использовать было нельзя, так как он сходится до невозможности медленно. Поэтому я пошёл в библиотеку, зарылся в справочники и нашёл быстро сходящуюся формулу. Это было разложение по арктангенсу: пользуемся тем, что pi = 16*arctan(1/5) - 4*arctan(1/239), а эти два арктангенса раскладываем в ряды по формуле arctan(x) = x - x3/3 + x5/5 - x7/7 + .... Такой метод давал больше одного значимого знака на каждую итерацию. Цифры я хранил в бейсиковском массиве, и ещё там были какие-то оптимизации, не помню.
Мне было, кажется, тринадцать лет. Я был безмерно горд и счастлив.
А афоризму Дейкстры этому я не верю, и никогда не верил. Он, несомненно -- забавен? остроумен? не знаю, какое слово подобрать взамен идеально подходящего здесь английского cute -- но одновременно глубоко неверен.
no subject
Date: 2002-08-07 04:46 pm (UTC)С этим согласен и благодарю за ссылку. Но много ли будет пользы от Perl без RegExp? :)
no subject
Date: 2002-08-07 08:04 pm (UTC)Не так много, это правда. Впрочем от C, если из него убрать арифметику, тоже толку было бы немного, но ведь это не делает его арифметическим языком.
Ладно, с этим мы вроде разобрались. А вот кто объяснит мне прелесть python'а?
Не пробовала, но
Date: 2002-08-09 12:43 pm (UTC)Re: Не пробовала, но
Date: 2002-08-09 06:09 pm (UTC)Re: Не пробовала, но
Date: 2002-08-09 10:57 pm (UTC)Принт то он конечно, дык как же без него:) Только вот мне кажется что принт принтом, а когда функции у тебя на ходу меняются на другие (и сами могут себя заменить), тогда принты все перепутаются. Молотком лучше:)
Интересно, а принт там тоже можно заменить?
no subject
Date: 2002-08-08 07:32 am (UTC)Вполне достаточно. Из личного опыта - весь http://www.belmusic.net написан на Перле, регэкспы там используются по минимуму.
Возьмите любой учебник основ программирования. Что на Паскале, что на Бейсике, что на C, что на Java, что на Рапире, что на РАЯ. Покажите мне хоть одно задание из такого учебника, которое нельзя написать на Перле - и без регэкспов.