Здравствуйте, mefrill, Вы писали:
M>Нет, ну все-таки необходимо как-то графическое изображение действия привести в соответствие с интуитивным пониманием этого действия. В данном случае, операция присваивания — это именно действие, причем действие не симметричное, и изображать его графически симметрично нехорошо, это только запутывает изучающего. Ну что говорит символ = об операции присваивания? Да совершенно ничего, и только запутывает, потому что с этим символом в математике связан целый пласт ассоциаций. А если кто-то, как уже пытались здесь выше, скажет мне, что программирование изучается раньше математики и потому символ = для изучающих программирвоание не несет никакой смысловой нагрузки, я только скажу, как ВВП на недавней прессконференции — тьфу на вас! Ну почему не изобразить эту операцию через <-, <=, <== или <-- ? Ведь отсюда сразу видно, что это операция, т.е. действие, состоящее в ассоцировании значения справа со значением слева. Что значит ассоциирование легко уже объяснить. Я понимаю, программисты — это не преподаватели, они трудностей обучения языку си++ не знают ибо такого опыта не имеют, но я уверяю, что это первая проблема, с которой встречается неофит на пути изучения языка.
В моем потоке небыло ниодно человека, который не понял операции присваивания в си. Может матиматиков это и сбивает, но обычный человек когда смотрит на = не задумывается о "симметричности"!
В той же матиматике есть вещи которые очень смущают, например квадрат — это четырехугольник, но читырехугольник не есть квадрат... Вот я над чем парился в детстве! Хотя любому из Вас это ясно, от того что вы это знаете!!! Я это понял и осознал, как понял и осознал знак = в си и := в паскале.
Подобные знаки (=, -->, # и т.п.) используются в разных науках и там не вызывают затруднений, хотя и обозначают отличные от матиматических действия...
Если вы спрашиваете о затруднениях, то это от того что язык начинают изучать с матиматических операций, по этому он с самого начала вызывает такие ассоциации...
Например я не понимал как заставить бейсик вывести ответ и считал что если написать
6 + 7 =
то он мне его посчитает... Когда начинаешь понимать программирование, такие проблемы просто отваливаются... Понял как все происходит и стало все равно, что там стоит за присваеванием = или :=
А Вирт давит на то, что ребенок не пинимает, что (уж простите формула не матиматики, но жизни
)
Маша + Петя = Любовь
и
Любовь = Маша + Петя
не одно и тоже, ну так это по моему очевидно...
Короче суть в следующем: почитайте, в топике никто не жаловался на то что он не понял знак присваевания в си, т.е. проблем на этом этапе НЕТ! Проблема в том, что программирование != (или <>) матиматика и обучать ему как матиматике не стоит!
И еще, ничего не мешает Вам начать обучение с (интуитивно понятного и легкого в изучении, по мнению Вирта) Паскаля, а потом перейти на си, на начальном этапе прокатит — я сам так перескочил (ну это конечно скорее всего от того, что о си я узнал познее). Главное то, суть познать! Как хотите здесь плюйтесь, но чтобы получить 6 + 7 = 13, нужно
write(6+7);
ну а это НИКАК с матиматикой не согласуется
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>