Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:basic_dialogue_programming_language:008 [2022-09-19 22:01] GreyWolf [VIII.5.3. Структурное программирование] |
msx:basic_dialogue_programming_language:008 [2023-02-19 16:21] (текущий) GreyWolf |
||
---|---|---|---|
Строка 5: | Строка 5: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
\\ Я услышал и забыл. \\ | \\ Я услышал и забыл. \\ | ||
Я увидел и запомнил. \\ | Я увидел и запомнил. \\ | ||
Строка 102: | Строка 102: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Чтобы избегать //ошибок//, надо набираться //опыта//, | Чтобы избегать //ошибок//, надо набираться //опыта//, | ||
чтобы набираться //опыта//, надо делать //ошибки//. | чтобы набираться //опыта//, надо делать //ошибки//. | ||
Строка 115: | Строка 115: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Самая коварная уловка дьявола состоит в том, | Самая коварная уловка дьявола состоит в том, | ||
чтобы убедить нас, будто его не существует. | чтобы убедить нас, будто его не существует. | ||
Строка 134: | Строка 134: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Если вам кажется, что ситуация улучшается, | Если вам кажется, что ситуация улучшается, | ||
значит, вы чего–то не заметили! | значит, вы чего–то не заметили! | ||
Строка 178: | Строка 178: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Программисту не всегда нужна ЭВМ, иногда полезнее удобное кресло и спокойная обстановка. | Программисту не всегда нужна ЭВМ, иногда полезнее удобное кресло и спокойная обстановка. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 234: | Строка 234: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Никогда не берите на корабль два хронометра, берите один или, если есть возможность, три, но не два. | Никогда не берите на корабль два хронометра, берите один или, если есть возможность, три, но не два. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 243: | Строка 243: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
…путём тестирования никогда нельзя установить отсутствие ошибок в программе. Дело в том, что невозможно определённо утверждать, что при проверке найдена последняя ошибка в программе; следовательно, никогда нельзя быть уверенным, что может быть найдена и первая ошибка | …путём тестирования никогда нельзя установить отсутствие ошибок в программе. Дело в том, что невозможно определённо утверждать, что при проверке найдена последняя ошибка в программе; следовательно, никогда нельзя быть уверенным, что может быть найдена и первая ошибка | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 296: | Строка 296: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Вы должны радоваться, что мост разрушился, — я планировал построить ещё тринадцать по тому же проекту. | Вы должны радоваться, что мост разрушился, — я планировал построить ещё тринадцать по тому же проекту. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 390: | Строка 390: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Перевести программу из хорошего состояния в отличное неизмеримо труднее, чем из плохого в удовлетворительное. | Перевести программу из хорошего состояния в отличное неизмеримо труднее, чем из плохого в удовлетворительное. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 494: | Строка 494: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
О несчастном случае мой подзащитный впервые узнал лишь тогда, когда этот случай произошёл. | О несчастном случае мой подзащитный впервые узнал лишь тогда, когда этот случай произошёл. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 544: | Строка 544: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Если Вы думаете, что разработка и кодирование программы — вещь трудная, то Вы ещё ничего не видели. | Если Вы думаете, что разработка и кодирование программы — вещь трудная, то Вы ещё ничего не видели. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 605: | Строка 605: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Всякий необходимо причиняет пользу, употреблённый на своём месте. Напротив того: упражнения лучшего танцмейстера в химии неуместны; советы опытного астронома в танцах глупы. | Всякий необходимо причиняет пользу, употреблённый на своём месте. Напротив того: упражнения лучшего танцмейстера в химии неуместны; советы опытного астронома в танцах глупы. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 714: | Строка 714: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Щёлкни кобылу в нос — она махнёт хвостом. | Щёлкни кобылу в нос — она махнёт хвостом. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 737: | Строка 737: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
—Вам известны мои методы. Примените их! | —Вам известны мои методы. Примените их! | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 753: | Строка 753: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Разделяй и властвуй! | Разделяй и властвуй! | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 844: | Строка 844: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Don't worry, computer bugs don't byte. | Don't worry, computer bugs don't byte. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1196: | Строка 1196: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Следствие 17: некомпетентность не знает преград ни во времени, ни в пространстве. | Следствие 17: некомпетентность не знает преград ни во времени, ни в пространстве. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1223: | Строка 1223: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Происходит не просто нечто более странное, чем мы предполагали:странность происходящего превышает и то, чего мы не смели предположить. | Происходит не просто нечто более странное, чем мы предполагали:странность происходящего превышает и то, чего мы не смели предположить. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1255: | Строка 1255: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Программа, свободная от ошибок, есть абстрактное теоретическое понятие. | Программа, свободная от ошибок, есть абстрактное теоретическое понятие. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1290: | Строка 1290: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Когда кто выходит из дому, пусть поразмыслит о том, что намерен делать, а когда снова войдёт в дом, пусть поразмыслит о том, что сделал. | Когда кто выходит из дому, пусть поразмыслит о том, что намерен делать, а когда снова войдёт в дом, пусть поразмыслит о том, что сделал. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1401: | Строка 1401: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Структура (от лат. "structura" — "строение, расположение, порядок"), совокупность устойчивых связей объекта, обеспечивающих его целостность и тождественность самому себе, т.е. сохранение основных свойств при различных внешних и внутренних изменениях. | Структура (от лат. "structura" — "строение, расположение, порядок"), совокупность устойчивых связей объекта, обеспечивающих его целостность и тождественность самому себе, т.е. сохранение основных свойств при различных внешних и внутренних изменениях. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1480: | Строка 1480: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Вы говорите, что я повторяюсь. \\ | Вы говорите, что я повторяюсь. \\ | ||
Но я повторю. | Но я повторю. | ||
Строка 1664: | Строка 1664: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Известно, что отладка в два раза сложнее написания программы. Поэтому, если Вы были предельно хитроумны при написании программы, то что же Вы будете делать при её отладке? | Известно, что отладка в два раза сложнее написания программы. Поэтому, если Вы были предельно хитроумны при написании программы, то что же Вы будете делать при её отладке? | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1747: | Строка 1747: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Форме дай щедрую дань\\ | Форме дай щедрую дань\\ | ||
Временем: важен в поэме\\ | Временем: важен в поэме\\ | ||
Строка 1763: | Строка 1763: | ||
Трудно дать исчерпывающее определение понятия "//стиль// программирования". Попытаемся охарактеризовать его, рассмотрев с различных точек зрения. Главный тезис состоит в том, что //стиль программирования — это стиль мышления//, проявляющийся в умении переводить алгоритм решения задачи на конкретный язык программирования. | Трудно дать исчерпывающее определение понятия "//стиль// программирования". Попытаемся охарактеризовать его, рассмотрев с различных точек зрения. Главный тезис состоит в том, что //стиль программирования — это стиль мышления//, проявляющийся в умении переводить алгоритм решения задачи на конкретный язык программирования. | ||
- | Не существует совокупности правил написания программ, следуя которым Вы могли бы создавать качественные и не содержащие ошибок программы. Стиль программирования не сводится к хорошему знанию конкретного языка программирования, знанию его возможностей и правил записи программ, хотя он все это и предполагает. Скорее эти знания помогут отличить программу, написанную в хорошем стиле от программы, написанной в плохом стиле. Многие достаточно хорошо знают какой–либо иностранный язык, чтобы без особых затруднений читать специальную или художественную литературу на этом языке. Но лишь немногие могут с такой же лёгкостью написать на иностранном языке даже небольшую статью. Таким образом, от знания языка до владения языком лежит "дистанция огромного размера". Но даже овладев языком программирования в совершенстве, мы лишь незначительно приблизимся к обладанию стилем программирования. | + | Не существует совокупности правил написания программ, следуя которым Вы могли бы создавать качественные и не содержащие ошибок программы. Стиль программирования не сводится к хорошему знанию конкретного языка программирования, знанию его возможностей и правил записи программ, хотя он все это и предполагает. Скорее эти знания помогут отличить программу, написанную в хорошем стиле от программы, написанной в плохом стиле. Многие достаточно хорошо знают какой–либо иностранный язык, чтобы без особых затруднений читать специальную или художественную литературу на этом языке. Но лишь немногие могут с такой же лёгкостью написать на иностранном языке даже небольшую статью. Таким образом, от знания языка до владения языком лежит "дистанция огромного размера". Но даже овладев языком программирования в совершенстве, мы лишь незначительно приблизимся к грамотному стилю программирования. |
- | К сожалению, взгляд на стиль программирования как на стиль мышления ещё не всеми и не до конца осознан. Очень часто стиль программирования сводится к технологии программирования. За последние годы мы пережили несколько вспышек увлечения модными методологиями и технологиями программирования, такими, например, как структурное программирование. Но в главном все они ориентируются на внешние факторы, характеризующие программу. Кстати сказать, жертвой структурного программирования чуть было не стали Фортран и [[basic:basic|]] с их неструктурными операторами. Но очевидно, что плохо разработанная программа, записанная по правилам структурного программирования, так и останется плохой программой. В этом плане переход от языка [[basic:basic|]] к таким языкам структурного программирования, как Паскаль и Ада, мало что даст. | + | К сожалению, взгляд на стиль программирования как на стиль мышления ещё не всеми и не до конца осознан. Очень часто стиль программирования сводится к технологии программирования. За последние годы мы пережили несколько вспышек увлечения модными методологиями и технологиями программирования, такими например, как структурное программирование. Но в главном все они ориентируются на внешние факторы, характеризующие программу. Кстати сказать, жертвой структурного программирования чуть было не стали Фортран и [[basic:basic|]] с их неструктурными операторами. Но очевидно, что плохо разработанная программа, записанная по правилам структурного программирования, так и останется плохой программой. В этом плане переход от языка [[basic:basic|]] к таким языкам структурного программирования, как Паскаль и Ада, мало что даст. |
- | Подводя итог сказанному, приведём некоторые рекомендации, которые, как мы надеемся, при осознанном и неформальном их использовании помогут вам выработать свой стиль программирования. Большинство рекомендаций имеет достаточно общий характер и могут быть использованы при программировании не только на [[basic:basic|]], но и на многих других языках программирования. Эти рекомендации не являются исчерпывающими. Много подобных советов читатель может почерпнуть из книг по разработке программ и структурному программированию [[bibliography#b52|[52]]], [[bibliography#b53|[53]]], [[bibliography#b54|[54]]], [[bibliography#b55|[55]]]. | + | Подводя итог сказанному, приведём некоторые рекомендации, которые, как мы надеемся, при осознанном и неформальном их использовании помогут вам выработать свой стиль программирования. Большинство рекомендаций имеют достаточно общий характер и могут быть использованы при программировании не только на [[basic:basic|]], но и на многих других языках программирования. Эти рекомендации не являются исчерпывающими. Много подобных советов читатель может почерпнуть из книг по разработке программ и структурному программированию [[bibliography#b52|[52]]], [[bibliography#b53|[53]]], [[bibliography#b54|[54]]], [[bibliography#b55|[55]]]. |
- <WRAP>**В основе алгоритма решения задачи лежит //математическая модель//. Не нужно жалеть времени на разработку и изучение свойств этой модели!** | - <WRAP>**В основе алгоритма решения задачи лежит //математическая модель//. Не нужно жалеть времени на разработку и изучение свойств этой модели!** | ||
Строка 1836: | Строка 1836: | ||
Если ограничения на память существенны, возможно, придётся пожертвовать наглядностью программы и комментариями для экономии памяти. Конечно, программу можно разделить так, чтобы результат получался поэтапно с помощью не одной, а нескольких программ. Можно также уменьшить размеры программы, ограничивая использование повторяющихся операторов или сегментов программы. Для этого может потребоваться объединить модули или сегменты программы, что в определённой степени нарушит модульную структуру программы. Кодирование нескольких операторов в одной строке, удаление необязательных пробелов в операторах, а также исключение операторов ''REM'' — все эти приёмы позволяют сэкономить память, но сделают программу более трудной для понимания, отладки и модернизации. | Если ограничения на память существенны, возможно, придётся пожертвовать наглядностью программы и комментариями для экономии памяти. Конечно, программу можно разделить так, чтобы результат получался поэтапно с помощью не одной, а нескольких программ. Можно также уменьшить размеры программы, ограничивая использование повторяющихся операторов или сегментов программы. Для этого может потребоваться объединить модули или сегменты программы, что в определённой степени нарушит модульную структуру программы. Кодирование нескольких операторов в одной строке, удаление необязательных пробелов в операторах, а также исключение операторов ''REM'' — все эти приёмы позволяют сэкономить память, но сделают программу более трудной для понимания, отладки и модернизации. | ||
- | Объем вычислений можно уменьшить различными методами. Прежде всего необходимо исключить лишние вычисления. Следует убедиться, что одно и то же значение не вычисляется в программе многократно. Вот, что иногда можно увидеть в программе: | + | Объем вычислений можно уменьшить различными методами. Прежде всего необходимо исключить лишние вычисления. Следует убедиться, что одно и то же значение не вычисляется в программе многократно. Вот что иногда можно увидеть в программе: |
<code> | <code> | ||
10 FOR I=1 TO N:FOR J=1 TO 1000 | 10 FOR I=1 TO N:FOR J=1 TO 1000 | ||
Строка 1854: | Строка 1854: | ||
</WRAP> | </WRAP> | ||
</WRAP> | </WRAP> | ||
- | Тем не менее, игнорируйте все предложения по повышению эффективности, пока программа не будет правильной. Худшее, что может быть сделано, — это начать беспокоиться о быстродействии программы до того, как она начнёт работать правильно. Быстродействующая, но неправильная программа бесполезна; медленнодействующая, но правильная всегда имеет некоторую ценность, а может оказаться и вполне удовлетворительной. | + | Тем не менее игнорируйте все предложения по повышению эффективности, пока программа не будет правильной. Худшее, что может быть сделано, — это начать беспокоиться о быстродействии программы до того, как она начнёт работать правильно. Быстродействующая, но неправильная программа бесполезна; медленнодействующая, но правильная всегда имеет некоторую ценность, а может оказаться и вполне удовлетворительной. |
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
- | - Если программа неверна, то её быстродействие не имеет значения. Убедитесь в её правильности, прежде, чем Вы начнёте её "улучшать". | + | - Если программа неверна, то её быстродействие не имеет значения. Убедитесь в её правильности прежде, чем Вы начнёте её "улучшать". |
- Сохраняйте программу ясной и понятной, не пытайтесь повысить её быстродействие в процессе кодирования. Преждевременная оптимизация — корень всех бед. | - Сохраняйте программу ясной и понятной, не пытайтесь повысить её быстродействие в процессе кодирования. Преждевременная оптимизация — корень всех бед. | ||
- Не стремитесь к оптимизации каждого простого вычисления. Пусть транслятор делает это за Вас. | - Не стремитесь к оптимизации каждого простого вычисления. Пусть транслятор делает это за Вас. | ||
- Беспокойтесь об алгоритме, а не о деталях программы. Помните, что структура данных может существенно повлиять на то, как будет реализован алгоритм… | - Беспокойтесь об алгоритме, а не о деталях программы. Помните, что структура данных может существенно повлиять на то, как будет реализован алгоритм… | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Керниган Б., Плоджер Ф.// | + | —//Б.Керниган, Ф.Плоджер// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 1877: | Строка 1877: | ||
[[bibliography#b59|[59]]] | [[bibliography#b59|[59]]] | ||
- | |||
<WRAP group 99%> | <WRAP group 99%> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column> \\ </WRAP> |
- | Меня вы научили говорить \\ | + | <WRAP half column><WRAP right> |
- | На вашем языке. Теперь я знаю, \\ | + | Меня вы научили говорить |
- | Как проклинать, — спасибо и за это. \\ | + | \\ На вашем языке. Теперь я знаю, |
- | Пусть унесёт чума обоих вас \\ | + | \\ Как проклинать, - спасибо и за это. |
- | И ваш язык. | + | \\ Пусть унесет чума обоих - вас |
+ | \\ И ваш язык. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//У.Шекспир. Буря (пер.М.Донского)// | + | —//У.Шекспир// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
- | </WRAP> | + | </WRAP></WRAP> |
- | <WRAP half column><WRAP justify> | + | |
- | Взирая на солнце, прищурь глаза свои и ты смело разглядишь в нем пятна. | + | <WRAP group 99%> |
+ | <WRAP half column> \\ </WRAP> | ||
+ | <WRAP half column><WRAP right> | ||
+ | Взирая на солнце,прищурь глаза свои | ||
+ | \\ и ты смело разглядишь в нем пятна. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
—//Козьма Прутков// | —//Козьма Прутков// | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
+ | |||
Школьный курс информатики преследует две цели: | Школьный курс информатики преследует две цели: | ||
Строка 1950: | Строка 1955: | ||
Почему же, несмотря на столь серьёзную опасность [[basic:basic|]], он так популярен? | Почему же, несмотря на столь серьёзную опасность [[basic:basic|]], он так популярен? | ||
- | Перечислим основные аргументы, выдвигаемые его защитниками и попытаемся их прокомментировать. | + | Перечислим основные аргументы, выдвигаемые его защитниками, и попытаемся их прокомментировать. |
- | * [[basic:basic|]] прост в изучении. Это единственное достоинство языка как такового. Но это та самая простота, которая хуже воровства, "простота орудий каменного века". [[basic:basic|]] прост, потому, что в нем нет сложных элементов (в первую очередь вспомогательных алгоритмов и некоторых алгоритмических конструкций), без овладения которыми поставленные цели не достигаются. | + | * [[basic:basic|]] прост в изучении. Это единственное достоинство языка как такового. Но это та самая простота, которая хуже воровства, "простота орудий каменного века". [[basic:basic|]] прост потому, что в нем нет сложных элементов (в первую очередь вспомогательных алгоритмов и некоторых алгоритмических конструкций), без овладения которыми поставленные цели не достигаются. |
* При работе на [[basic:basic|]] диалог с компьютером происходит быстро и просто. \\ Это достоинство не языка, а его реализации. | * При работе на [[basic:basic|]] диалог с компьютером происходит быстро и просто. \\ Это достоинство не языка, а его реализации. | ||
* [[basic:basic|]] имеется на многих компьютерах, он широко распространён. Однако это не достоинство, а большая беда. Фактически мы сталкиваемся здесь с осуждённым в промышленности диктатом производителя. Изготовители ЭВМ и программного обеспечения рекламируют [[basic:basic|]], так как [[basic:basic|]]–системы проще в изготовлении и могут быть перенесены с западных компьютеров. | * [[basic:basic|]] имеется на многих компьютерах, он широко распространён. Однако это не достоинство, а большая беда. Фактически мы сталкиваемся здесь с осуждённым в промышленности диктатом производителя. Изготовители ЭВМ и программного обеспечения рекламируют [[basic:basic|]], так как [[basic:basic|]]–системы проще в изготовлении и могут быть перенесены с западных компьютеров. | ||
Строка 1965: | Строка 1970: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Карл Пятый, римский император, говаривал, что ишпанским языком с богом, французским — с друзьями, немецким — с неприятельми, италиянским — с женским полом говорить прилично. Но если бы он российскому языку был искусен, то, конечно, к тому присовокупил бы, что им со всеми оными говорить пристойно. Ибо нашёл бы в нем великолепие ишпанского, живость французского, крепость немецкого, нежность италиянского и, сверх того, богатство и сильную в изображениях краткость греческого и латинского языка… | Карл Пятый, римский император, говаривал, что ишпанским языком с богом, французским — с друзьями, немецким — с неприятельми, италиянским — с женским полом говорить прилично. Но если бы он российскому языку был искусен, то, конечно, к тому присовокупил бы, что им со всеми оными говорить пристойно. Ибо нашёл бы в нем великолепие ишпанского, живость французского, крепость немецкого, нежность италиянского и, сверх того, богатство и сильную в изображениях краткость греческого и латинского языка… | ||
Сильное красноречие Цицероново, великолепная Виргилиева важность, Овидиево приятное витийство не теряют своего достоинства на российском языке… | Сильное красноречие Цицероново, великолепная Виргилиева важность, Овидиево приятное витийство не теряют своего достоинства на российском языке… | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//М.В. Ломоносов. Российская грамматика// | + | —//М.Ломоносов. Российская грамматика// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 2001: | Строка 2006: | ||
|Простота изучения| 3 | 3 | 4 | 4 | 5 | 1 | 3 | | |Простота изучения| 3 | 3 | 4 | 4 | 5 | 1 | 3 | | ||
|Наличие литературы| 5 | 3 | 3 | 4 | 4 | 2 | 1 | | |Наличие литературы| 5 | 3 | 3 | 4 | 4 | 2 | 1 | | ||
- | |Поддержка фирмами разработчиками микропроцессорных систем| 5 | 4 | 4 | 4 | 4 | 3 | 4 | | + | |Поддержка фирмами–разработчиками микропроцессорных систем| 5 | 4 | 4 | 4 | 4 | 3 | 4 | |
|Универсальность (широта диапазона решаемых задач)| 3 | 3 | 3 | 3 | 2 | 5 | 3 | | |Универсальность (широта диапазона решаемых задач)| 3 | 3 | 3 | 3 | 2 | 5 | 3 | | ||
|Удобство для системного программирования| 5 | 5 | 4 | 3 | 1 | 4 | 5 | | |Удобство для системного программирования| 5 | 5 | 4 | 3 | 1 | 4 | 5 | | ||
Строка 2017: | Строка 2022: | ||
В заключение три цитаты: | В заключение три цитаты: | ||
- <WRAP> Практически невозможно научить хорошему программированию студентов, ориентированных первоначально на бейсик; как потенциальные программисты они умственно оболванены без надежды на исцеление | - <WRAP> Практически невозможно научить хорошему программированию студентов, ориентированных первоначально на бейсик; как потенциальные программисты они умственно оболванены без надежды на исцеление | ||
- | <WRAP rightalign> --- Э.В.Дейкстра, ASMSIGPLAN Notice, 1982, 7, P.13–15</WRAP> | + | <WRAP rightalign> --- Э.Дейкстра, ASMSIGPLAN Notice, 1982, 7, P.13–15</WRAP> |
</WRAP> | </WRAP> | ||
- <WRAP> …коль уж становиться программистом, то программистом хорошим; такого программиста отличает постоянное желание стать ещё лучшим программистом, а единственно верный путь для этого — стремиться в совершенстве овладеть несколькими языками, т.е. сделаться хорошим лингвистом в программировании. Безусловно, можно доказать, что несомненный вред нанесли и наносят те, довольно хорошие программисты, которые, став слишком самодовольными или консервативными, полагают, что язык, которым они пользуются, во всех смыслах является последним словом | - <WRAP> …коль уж становиться программистом, то программистом хорошим; такого программиста отличает постоянное желание стать ещё лучшим программистом, а единственно верный путь для этого — стремиться в совершенстве овладеть несколькими языками, т.е. сделаться хорошим лингвистом в программировании. Безусловно, можно доказать, что несомненный вред нанесли и наносят те, довольно хорошие программисты, которые, став слишком самодовольными или консервативными, полагают, что язык, которым они пользуются, во всех смыслах является последним словом | ||
Строка 2023: | Строка 2028: | ||
</WRAP> | </WRAP> | ||
- <WRAP> **Предмет, достойный целого курса лекций, вы превратили в собрание //рассказиков//.** | - <WRAP> **Предмет, достойный целого курса лекций, вы превратили в собрание //рассказиков//.** | ||
- | <WRAP rightalign> --- Конан Дойль. Медные буки</WRAP> | + | <WRAP rightalign> --- А.Конан Дойль. Медные буки</WRAP> |
</WRAP> | </WRAP> | ||