Cтраница 3
На государственные программирующие органы постоянно оказывается разностороннее давление, отражающее противоречивые интересы монополистических групп. Ограниченность государственного экономического программирования проявляется и в его внутренней противоречивости, например в противоречивости чрезвычайных и среднесрочных, конъюнктурных и структурных, региональных и отраслевых структурных программ. В результате государственное экономическое программирование, оказывая определенное воздействие на темпы роста и структуру экономики, смягчая некоторые противоречия капиталистического способа производства, не может преодолеть основные противоречия и избавить капитализм от его пороков. Прогрессивные силы во глазе с коммунистическими партиями в капиталистических странах выступают за демократизацию государственного экономического программирования, за превращение его из орудия интересов финансового капитала в средство решения социально-экономических проблем в интересах трудящихся. [31]
Она к настоящему времени стала общепринятой, поскольку помогает писать программы ясно и производить более надежное математическое обеспечение. Структурные программы строятся из однажды разработанных и покрывающих все потребности управляющих блоков. Эти структурные блоки нагляднее выражают последовательность операций, чем их предшественник - оператор goto. Оператор goto указывает копьютеру, что нужно перенести точку выполнения программы из одного места программы в другое. Оператор goto прост и всесилен, но часто используется столь хитроумно, что путаница и неразбериха - обычный результат. [32]
Посмотрев на программу на ФОРТРАНе, нельзя сразу сказать, хорошо ли она структурирована. Проявлению структуры способствуют комментарии, пробелы и отступы. Но даже и в этом случае может оказаться, что некоторые структурные программы не слишком легко читать. Однако такие преимущества структурных программ, как легкость сопровождения и малое число ошибок, компенсируют этот недостаток. [33]
Для указания единственной точки входа в каждую структуру и единственной точки выхода из нее на рисунке используются символы кружков. Соединение отдельных символов блок-схемы в произвольном порядке может привести к неструктурированным программам. Поэтому программисты решили, объединяя символы блок-схемы, сформировать ограниченный набор управляющих структур и создавать только структурные программы путем надлежащего объединения управляющих структур только двумя простыми способами. Для простоты используются только структуры с одним входом / одним выходом - существует только один способ входа в каждую управляющую структуру и только один способ выхода из нее. Последовательное соединение управляющих структур для создания структурных программ несложно - точка выхода одной управляющей структуры непосредственно соединяется с точкой входа следующей управляющей структуры, т.е. управляющие структуры просто помещаются одна за другой в программе; мы назвали это суперпозицией управляющих структур. Кроме того, правила построения структурированных программ допускают вложение управляющих структур. [34]
Каждая структура в отдельности была представлена вместе со своей блок-схемой и обсуждалась на примерах. Сейчас мы обобщим результаты глав 3 и 4 и представим простой набор правил для составления структурных программ и определения их свойств. [35]
Структурная несбалансированность, которая стала характерна для России и стран СНГ после распада бывшего СССР, проявляющаяся в разрыве межотраслевых и межрегиональных связей, приводит к тому, что часть производств не может насытить национальный и местные рынки необходимыми товарами в соответствии с существующим спросом на них. Это приводит к ситуации хронически неудовлетворяемого спроса на определенную продукцию, что вызывает устойчивое взвинчивание цен. Структурная инфляция считается трудно преодолимой в короткие промежутки времени, поэтому снижение ее остроты во многом зависит от политики реструктуризации экономики, которая предполагает разработку долгосрочных структурных программ. [36]
Структурное программирование на двух других очень распространенных языках - языке ассемблера и АПЛ - почти невозможно. Хотя и были придуманы макросы, чтобы моделировать основные конструкции структурного программирования, большинство программ на ассемблере, использующих эти макросы, никак нельзя назвать структурными. Сам факт использования языка ассемблера указывает на то, что программа написана в основном в терминах машинного языка, а не для человека, что противоречит фундаментальному свойству структурных программ. АПЛ - язык, отличный во многих других отношениях - несовместим со структурным программированием: в нем отсутствуют основные конструкции структурного программирования, запрещено смещение операторов по строке, язык поощряет написание запутанных программ. [37]
Посмотрев на программу на ФОРТРАНе, нельзя сразу сказать, хорошо ли она структурирована. Проявлению структуры способствуют комментарии, пробелы и отступы. Но даже и в этом случае может оказаться, что некоторые структурные программы не слишком легко читать. Однако такие преимущества структурных программ, как легкость сопровождения и малое число ошибок, компенсируют этот недостаток. [38]
Уже успешно реализовано много больших структурных программ на КОБОЛе, подтверждая тем самым, что структурный подход на базе КОБОЛа не только возможен, но и удобен. Следование, развилка и повторение присутствуют в самом языке, а выбор можно легко промоделировать, причем так, что его будет легко и писать, и читать. Модули можно компилировать раздельно, а данные передавать явно как аргументы. Существуют, однако, ограничения на использование предложений ЕСЛИ и ВЫПОЛНИТЬ, неоправданно затрудняющие написание и чтение некоторых структурных программ. [39]
Теперь мы вплотную подходим к концепции ориентации на объекты. Мы увидим, что объектная ориентация является естественным способом восприятия мира и написания компьютерных программ. Почему же в таком случае мы не начали с этого прямо на первой странице этой книги. Ответ состоит в том, что объекты, которые мы будем строить, частично будут состоять из фрагментов структурных программ, поэтому сначала нам нужно было заложить фундамент в виде структурного программирования. [40]
Как бы ни был мал программный модуль, он также должен быть спроектирован. Логика его работы должна быть хорошо понятной, а правильность - легко доказуемой. Эти цели легче достигаются при применении только типовых управляющих структур, каждая из которых имеет один вход и один выход. Небольшая номенклатура этих структур и возможность их реализации ( с большими или меньшими усилиями) на всех используемых в настоящее время языках программирования делает их универсальным средством написания структурных программ. Типовые управляющие структуры используются практически во всех современных методах проектирования в качестве их составной части. [41]
Возвращаясь к рис. 7.1, мы видим, что четвертая часть исходной программы состоит из операторов. В других языках высокого уровня сегментация модуля возможна, в ФОРТРАНе нет. Таким образом, лучше всего писать маленькие модул и ( не превышающие одной страницы текста), а затем объединять их при совместной компиляции. Предварительный анализ применения этого подхода к программам на ФОРТРАНе показал, что накладные расходы по вызову отдельно транслируемых модулей не сказываются существенно ни на объеме памяти, ни на времени работы программы. Возможно, структурные программы оказываются в этом смысле более эффективными потому, что уменьшается возможность неудачного разбиения на модули. [42]
Первые комплексы структурных программ в нашей стране были созданы в начале 60 - х годов под руководством автора этих строк в ВЦ Московского университета Н. П. Трифоновым и Б. М. Щедриным для машин первого поколения типа БЭСМ и Стрела. В настоящее время для рентгеноструктурных расчетов наиболее широко используются именно эти комплексы: Рентген-70 и Рентген-75 Института химической физики и Кристалл Института кристаллографии АН СССР. Комплексы Рентген-70 и Кристалл написаны для машин поколения БЭСМ-4 и М-220, Рентген-75 - для машин БЭСМ-6. Кроме того, применяются отдельные структурные программы и комплексы, созданные в других центрах для машин разных типов, а также комплексы программ, поставляемых западными фирмами вместе с мини-компьюторами, обслуживающими автоматические дифрактометры. [43]
Первые комплексы структурных программ в нашей стране были созданы в начале 60 - х годов под руководством автора этих строк в ВЦ Московского университета Н. П. Трифоновым и Б. М. Щедриным для машин первого поколения типа БЭСМ и Стрела. В настоящее время для рентгеноструктурных расчетов наиболее широко используются именно эти комплексы: Рентген-70 и Рентген-75 Института химической физики и Кристалл Института кристаллографии АН СССР. Комплексы Рентген-70 и Кристалл написаны для машин поколения БЭСМ-4 и М-220, Рентген-75 - для машин БЭСМ-6. Кроме того, применяются отдельные структурные программы и комплексы, созданные в других центрах для машин разных типов, а также комплексы программ, поставляемых западными фирмами вместе с мини-компыоторами, обслуживающими автоматические дифрактометры. [44]
Для указания единственной точки входа в каждую структуру и единственной точки выхода из нее на рисунке используются символы кружков. Соединение отдельных символов блок-схемы в произвольном порядке может привести к неструктурированным программам. Поэтому программисты решили, объединяя символы блок-схемы, сформировать ограниченный набор управляющих структур и создавать только структурные программы путем надлежащего объединения управляющих структур только двумя простыми способами. Для простоты используются только структуры с одним входом / одним выходом - существует только один способ входа в каждую управляющую структуру и только один способ выхода из нее. Последовательное соединение управляющих структур для создания структурных программ несложно - точка выхода одной управляющей структуры непосредственно соединяется с точкой входа следующей управляющей структуры, т.е. управляющие структуры просто помещаются одна за другой в программе; мы назвали это суперпозицией управляющих структур. Кроме того, правила построения структурированных программ допускают вложение управляющих структур. [45]