Министерство образования и науки Российской Федерации Федеральное агентство по образованию Государственное образовательн...
3 downloads
211 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования и науки Российской Федерации Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
А.А. Черный ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА В ИНЖЕНЕРНЫХ РАСЧЕТАХ И МОДЕЛИРОВАНИИ Учебное пособие
Пенза 2010
УДК 681.3.06(075.3) Черный А.А. Вычислительная техника в инженерных расчетах и моделировании: Учебн. пособие. – Пенза: Изд-во Пенз. гос. ун-та, 2010. 268с. Изложены основы информатики, компьютерной техники, программирования. Описаны языки программирования. Рассмотрены возможности применения вычислительной техники в инженерных расчетах, при математическом моделировании. Приведены компьютерные программы математического моделирования. Даны задания для самостоятельной работы на ЭВМ, изложены контрольные вопросы. Учебное пособие подготовлено на кафедре «Сварочное, литейное производство и материаловедение» и в Научно-исследовательском институте плавки литейных сплавов при ПГУ. Оно предназначено для студентов всех форм обучения по специальности «Машины и технология литейного производства», и может быть полезно при выполнении исследований на основе математического моделирования с применением вычислительной техники.
Рецензенты: Научный совет Пензенского научного центра; А.С. Белоусов, главный металлург ОАО «Пензадизельмаш»
© А.А. Черный, 2010
2
ВВЕДЕНИЕ Литейное производство, одна из отраслей промышленности, продукцией которой являются отливки, получаемые в литейных формах при заполнении их жидким сплавом. Литые детали используют в металлообрабатывающих станках, двигателях внутреннего сгорания, компрессорах, насосах, электродвигателях, паровых и гидравлических турбинах, прокатных станах, сельскохозяйственных машинах, автомобилях, тракторах. Литьем могут быть изготовлены изделия практически любой массы – от нескольких граммов до сотен тонн, со стенками толщиной от десятых долей миллиметров до нескольких метров. Литейное производство – сложный технологический процесс, включающий в себя много машин, оборудования, приспособления и методов получения отливок. Для того, чтобы получить качественную отливку, необходимо произвести ряд математических расчетов. И в этом может помочь ЭВМ. Используя электронные вычислительные машины для выполнения расчетов и математического моделирования можно производить качественное литье. Смоделировав на ЭВМ технологический процесс изготовления отливки, можно определить, при каком условии получается наилучший результат. Применение математического моделирования позволяет эксперименты производить в виртуальном, электронном виде. В учебном пособии приведены компьютерные программы эффективного математического моделирования, изложены контрольные вопросы с учетом предварительного изучения основ математического моделирования. Приведенные компьютерные программы позволяют выполнять аппроксимацию, выявлять с помощью ЭВМ математические модели, проверять точность расчетов по моделям (по разности и в процентах), получать системное представление результатов расчетов по математическим моделям, выполнять расчеты по математическим моделям и проверять точность математического моделирования, выполнять расчеты с применением циклов в натуральных и относительных величинах, делать графические построения в выбранном масштабе. Компьютерные программы согласованы с планами проведения экспериментов и эффективными алгоритмами.
3
СОСТАВЛЯЮЩИЕ ЧАСТИ КОМПЬЮТЕРА И ПЕРИФЕРИЙНЫЕ УСТРОЙСТВА Компьютер (англ. computer — вычислитель) представляет собой программируемое электронное устройство, способное обрабатывать данные и производить вычисления, а также выполнять другие задачи манипулирования символами Рассмотрим устройство компьютера на примере самой распространенной компьютерной системы — персонального компьютера. Персональным компьютером (ПК) называют сравнительно недорогой универсальный микрокомпьютер, рассчитанный на одного пользователя. Персональные компьютеры обычно проектируются на основе принципа открытой архитектуры. Упрощённая блок-схема, отражающая основные функциональные компоненты компьютерной системы в их взаимосвязи, изображена на рисунке 1.
Рис. 1. Общая структура персонального компьютера с подсоединенными периферийными устройствами
4
Современный персональный компьютер состоит из нескольких основных конструктивных компонент: системного блока; монитора; клавиатуры; манипуляторов; периферийных устройств. В системном блоке размещаются: блок питания; накопитель на жёстких магнитных дисках; накопитель на гибких магнитных дисках; системная плата; платы расширения; накопитель CD-ROM; и др. Типичный системный блок: системная плата; разъем дополнительного второго процессора; центральный процессор с радиатором для отвода тепла; разъемы оперативной памяти; накопитель на гибких магнитных дисках; накопитель CD-ROM; сетевая карта; графический акселератор; блок питания, преобразующий переменное напряжение электросети в постоянное напряжение различной полярности и величины, необходимое для питания системной платы и внутренних устройств. Блок питания содержит вентилятор, создающий циркулирующие потоки воздуха для охлаждения системного блока. Для того, чтобы соединить друг с другом различные устройства компьютера, они должны иметь одинаковый интерфейс (англ. interface от inter — между, и face — лицо). Интерфейс — это средство сопряжения двух устройств, в котором все физические и логические параметры согласуются между собой. Если интерфейс является общепринятым, например, утверждённым на уровне международных соглашений, то он называется стандартным. Каждый из функциональных элементов (память, монитор или другое устройство) связан с шиной определённого типа — адресной, управляющей или шиной данных. Для согласования интерфейсов периферийные устройства подключаются к шине не напрямую, а через свои контроллеры (адаптеры) и порты примерно по такой схеме:
Контроллеры и адаптеры представляют собой наборы электронных цепей, которыми снабжаются устройства компьютера с целью совместимости их интерфейсов. Контроллеры, кроме этого, осуществляют непосредственное управление периферийными устройствами по запросам микропроцессора. Порты устройств представляют собой некие электронные схемы, содержащие один или несколько регистров ввода-вывода и позволяющие подключать периферийные устройства компьютера к внешним шинам микропроцессора.
5
Портами также называют устройства стандартного интерфейса: последовательный, параллельный и игровой порты (или интерфейсы). Последовательный порт обменивается данными с процессором побайтно, а с внешними устройствами — побитно. Параллельный порт получает и посылает данные побайтно. К последовательному порту обычно подсоединяют медленно действующие или достаточно удалённые устройства, такие, как мышь и модем. К параллельному порту подсоединяют более "быстрые" устройства — принтер и сканер. Через игровой порт подсоединяется джойстик. Клавиатура и монитор подключаются к своим специализированным портам, которые представляют собой просто разъёмы. Состав персонального компьютера. Центральный процессор (CPU, от английского Central Processing Unit) — это основной рабочий компонент компьютера, который выполняет арифметические и логические операции, заданные программой, управляет вычислительным процессом и координирует работу всех устройств компьютера. Центральный процессор в общем случае содержит в себе: арифметико-логическое устройство; шины данных и шины адресов; регистры; счетчики команд; кэш — очень быструю память малого объема (от 8 до 512 Кбайт); математический сопроцессор чисел с плавающей точкой.
Рис. 2. Общая схема компьютера Современные процессоры выполняются в виде микропроцессоров. Физически микропроцессор представляет собой интегральную схему — тонкую пластинку кристаллического кремния прямоугольной формы площадью всего несколько квадратных миллиметров, на которой размещены схемы, реализующие все функции процессора. Кристаллпластинка обычно помещается в пластмассовый или керамический
6
плоский корпус и соединяется золотыми проводками с металлическими штырьками, чтобы его можно было присоединить к системной плате компьютера. В вычислительной системе может быть несколько параллельно работающих процессоров; такие системы называются многопроцессорными. Память компьютера построена из двоичных запоминающих элементов — битов, объединенных в группы по 8 битов, которые называются байтами. (Единицы измерения памяти совпадают с единицами измерения информации). Все байты пронумерованы. Номер байта называется его адресом. Байты могут объединяться в ячейки, которые называются также словами. Для каждого компьютера характерна определенная длина слова — два, четыре или восемь байтов. Это не исключает использования ячеек памяти другой длины (например, полуслово, двойное слово). Как правило, в одном машинном слове может быть представлено либо одно целое число, либо одна команда. Однако, допускаются переменные форматы представления информации. Современные компьютеры имеют много разнообразных запоминающих устройств, которые сильно отличаются между собой по назначению, временным характеристикам, объёму хранимой информации и стоимости хранения одинакового объёма информации. Различают два основных вида памяти — внутреннюю и внешнюю. В состав внутренней памяти входят оперативная память, кэшпамять и специальная память. Оперативная память (ОЗУ, англ. RAM, Random Access Memory — память с произвольным доступом) — это быстрое запоминающее устройство не очень большого объёма, непосредственно связанное с процессором и предназначенное для записи, считывания и хранения выполняемых программ и данных, обрабатываемых этими программами. Оперативная память используется только для временного хранения данных и программ, так как, когда машина выключается, все, что находилось в ОЗУ, пропадает. Доступ к элементам оперативной памяти прямой — это означает, что каждый байт памяти имеет свой индивидуальный адрес. Объем ОЗУ обычно составляет 4 - 64 Мбайта, а для эффективной работы современного программного обеспечения желательно иметь не менее 16 Мбайт ОЗУ. Обычно ОЗУ исполняется из интегральных микросхем памяти DRAM (Dynamic RAM — динамическое ОЗУ).
7
Микросхемы DRAM работают медленнее, чем другие разновидности памяти, но стоят дешевле. Современные микросхемы имеют ёмкость 1-16 Мбит и более. Они устанавливаются в корпуса и собираются в модули памяти. Наиболее распространены модули типа SIMM (Single In-Line Memory Module — модуль памяти с однорядным расположением микросхем). В модуле SIMM элементы памяти собраны на маленькой печатной плате длиной около 10 см. Ёмкость таких модулей неодинаковая — 256 Кбайт, 1, 2, 4, 8, 16, 32 и 64 Мбайта. Различные модули SIMM могут иметь разное число микросхем — девять, три или одну, и разное число контактов — 30 или 72. Важная характеристика модулей памяти — время доступа к данным, которое обычно составляет 60 – 80 наносекунд. Кэш (англ. cache), или сверхоперативная память — очень быстрое ЗУ небольшого объёма, которое используется при обмене данными между микропроцессором и оперативной памятью для компенсации разницы в скорости обработки информации процессором и несколько менее быстродействующей оперативной памятью. Кэш-памятью управляет специальное устройство — контроллер, который, анализируя выполняемую программу, пытается предвидеть, какие данные и команды вероятнее всего понадобятся в ближайшее время процессору, и подкачивает их в кэш-память. При этом возможны как "попадания", так и "промахи". В случае попадания, то есть, если в кэш подкачаны нужные данные, извлечение их из памяти происходит без задержки. Если же требуемая информация в кэше отсутствует, то процессор считывает её непосредственно из оперативной памяти. Соотношение числа попаданий и промахов определяет эффективность кэширования. Кэш-память реализуется на микросхемах статической памяти SRAM (Static RAM), более быстродействующих, дорогих и малоёмких, чем DRAM. Современные микропроцессоры имеют встроенную кэш-память, так называемый кэш первого уровня размером 8–16 Кбайт. Кроме того, на системной плате компьютера может быть установлен кэш второго уровня ёмкостью от 64 Кбайт до 256 Кбайт и выше. К устройствам специальной памяти относятся постоянная память (ROM), перепрограммируемая постоянная память (Flash Memory), память CMOS RAM, питаемая от батарейки, видеопамять и некоторые другие виды памяти. Постоянная память (ПЗУ, англ. ROM, Read Only Memory — память только для чтения) — энергонезависимая память, используется для
8
хранения данных, которые никогда не потребуют изменения. Содержание памяти специальным образом “зашивается” в устройстве при его изготовлении для постоянного хранения. Из ПЗУ можно только читать. Перепрограммируемая постоянная память (Flash Memory) — энергонезависимая память, допускающая многократную перезапись своего содержимого с дискеты. Прежде всего в постоянную память записывают программу управления работой самого процессора. В ПЗУ находятся программы управления дисплеем, клавиатурой, принтером, внешней памятью, программы запуска и остановки компьютера, тестирования устройств. Важнейшая микросхема постоянной или Flash-памяти — модуль BIOS. BIOS (Basic Input/Output System — базовая система ввода-вывода) — совокупность программ, предназначенных для: автоматического тестирования устройств после включения питания компьютера; загрузки операционной системы в оперативную память. Роль BIOS двоякая: с одной стороны это неотъемлемый элемент аппаратуры (Hardware), а с другой строны — важный модуль любой операционной системы (Software). Разновидность постоянного ЗУ — CMOS RAM. CMOS RAM — это память с невысоким быстродействием и минимальным энергопотреблением от батарейки. Используется для хранения информации о конфигурации и составе оборудования компьютера, а также о режимах его работы. Содержимое CMOS изменяется специальной программой Setup, находящейся в BIOS (англ. Set-up — устанавливать, читается "сетап"). Для хранения графической информации используется видеопамять. Видеопамять (VRAM) — разновидность оперативного ЗУ, в котором хранятся закодированные изображения. Это ЗУ организовано так, что его содержимое доступно сразу двум устройствам — процессору и дисплею. Поэтому изображение на экране меняется одновременно с обновлением видеоданных в памяти. Внешняя память (ВЗУ) предназначена для длительного хранения программ и данных, и целостность её содержимого не зависит от того, включен или выключен компьютер. В отличие от оперативной памяти, внешняя память не имеет прямой связи с процессором. Информация от ВЗУ к процессору и наоборот циркулирует примерно по следующей цепочке:
9
В состав внешней памяти компьютера входят: накопители на жёстких магнитных дисках; накопители на гибких магнитных дисках; накопители на компакт-дисках; накопители на магнито-оптических компакт-дисках; накопители на магнитной ленте (стримеры) и др. Гибкий диск, дискета (англ. floppy disk) — устройство для хранения небольших объёмов информации, представляющее собой гибкий пластиковый диск в защитной оболочке. Используется для переноса данных с одного компьютера на другой и для распространения программного обеспечения. Если гибкие диски — это средство переноса данных между компьютерами, то жесткий диск — информационный склад компьютера. Накопитель на жёстких магнитных дисках (англ. HDD — Hard Disk Drive) или винчестерский накопитель — это наиболее массовое запоминающее устройство большой ёмкости, в котором носителями информации являются круглые алюминиевые пластины — платтеры, обе поверхности которых покрыты слоем магнитного материала. Используется для постоянного хранения информации — программ и данных. Винчестерские накопители имеют очень большую ёмкость: от сотен Мегабайт до десятков Гбайт. У современных моделей скорость вращения шпинделя достигает 7200 оборотов в минуту, среднее время поиска данных — 10 мс, максимальная скорость передачи данных до 40 Мбайт/с. В отличие от дискеты, винчестерский диск вращается непрерывно. Винчестерский накопитель связан с процессором через контроллер жесткого диска. Все современные накопители снабжаются встроенным кэшем (64 Кбайт и более), который существенно повышает их производительность. CD-ROM состоит из прозрачной полимерной основы диаметром 12 см и толщиной 1,2 мм. Одна сторона покрыта тонким алюминиевым слоем, защищенным от повреждений слоем лака. Двоичная информация представляется последовательным чередованием углублений (pits — ямки) и основного слоя (land — земля). На одном дюйме (2,54 см) по радиусу диска размещается 16 тысяч дорожек с информацией. Для сравнения — на дюйме по радиусу дискеты всего лишь 96 дорожек. Ёмкость CD до 780 Мбайт. Информация заносится на диск на заводе и не может быть изменена. Достоинства CD-ROM - При малых физических размерах CD-ROM обладают высокой информационной ёмкостью, что позволяет использовать их в справочных системах и в учебных комплексах с богатым иллюстративным материалом;
10
один CD, имея размеры примерно дискеты, по информационному объёму равен почти 500 таким дискетам. - Считывание информации с CD происходит с высокой скоростью, сравнимой со скоростью работы винчестера. - CD просты и удобны в работе, практически не изнашиваются. - CD не могут быть поражены вирусами. - На CD-ROM невозможно случайно стереть информацию. - Стоимость хранения данных (в расчете на 1 Мбайт) низкая. В отличие от магнитных дисков, компакт-диски имеют не множество кольцевых дорожек, а одну — спиральную, как у грампластинок. В связи с этим, угловая скорость вращения диска не постоянна. Она линейно уменьшается в процессе продвижения читающей магнитной головки к центру диска. Для работы с CD ROM нужно подключить к компьютеру накопитель CD-ROM (CD-ROM Drive), в котором компакт-диски сменяются как в обычном проигрывателе. Накопители CD-ROM часто называют проигрывателями CD-ROM или приводами CD-ROM. Главный недостаток накопителей CD-ROM по сравнению с винчестерскими накопителями — невозможность перезаписи информации. Записывающие оптические и магнитооптические накопители. - Накопитель на магнито-оптических компакт-дисках СD-MO (Compact Disk-Magneto Optical). Диски СD-MO можно многократно использовать для записи, но они не читаются на традиционных дисководах CD-ROM. Ёмкость от 128 Мбайт до 2,6 Гбайт. - Записывающий накопитель CD-R (Compact Disk Recordable) способен, наряду с прочтением обычных компакт-дисков, записывать информацию на специальные оптические диски. Ёмкость 650 Мбайт. - Накопитель WARM (Write And Read Many times), позволяет производить многократную запись и считывание. - Накопитель WORM (Write Once, Read Many times), позволяет производить однократную запись и многократное считывание. Накопители на магнитной ленте (стримеры) и накопители на сменных дисках. Стример (англ. tape streamer) — устройство для резервного копирования больших объёмов информации. В качестве носителя здесь применяются кассеты с магнитной лентой ёмкостью 1 - 2 Гбайта и больше. Стримеры позволяют записать на небольшую кассету с магнитной лентой огромное количество информации. Встроенные в стример средства аппаратного сжатия позволяют автоматически уплотнять информацию
11
перед её записью и восстанавливать после считывания, что увеличивает объём сохраняемой информации. Недостатком стримеров является их сравнительно низкая скорость записи, поиска и считывания информации. В последнее время всё шире используются накопители на сменных дисках, которые позволяют не только увеличивать объём хранимой информации, но и переносить информацию между компьютерами. Объём сменных дисков — от сотен Мбайт до нескольких Гигабайт. Аудиоадаптер (Sound Blaster или звуковая плата) это специальная электронная плата, которая позволяет записывать звук, воспроизводить его и создавать программными средствами с помощью микрофона, наушников, динамиков, встроенного синтезатора и другого оборудования. Аудиоадаптер содержит в себе два преобразователя информации: - аналого-цифровой, который преобразует непрерывные (то есть, аналоговые) звуковые сигналы (речь, музыку, шум) в цифровой двоичный код и записывает его на магнитный носитель; - цифро-аналоговый, выполняющий обратное преобразование сохранённого в цифровом виде звука в аналоговый сигнал, который затем воспроизводится с помощью акустической системы, синтезатора звука или наушников. Профессиональные звуковые платы позволяют выполнять сложную обработку звука, обеспечивают стереозвучание, имеют собственное ПЗУ с хранящимися в нём сотнями тембров звучаний различных музыкальных инструментов. Область применения звуковых плат — компьютерные игры, обучающие программные системы, рекламные презентации, "голосовая почта" (voice mail) между компьютерами, озвучивание различных процессов, происходящих в компьютерном оборудовании, таких, например, как отсутствие бумаги в принтере и т.д. Видеоадаптер — это электронная плата, которая обрабатывает видеоданные (текст и графику) и управляет работой дисплея. Содержит видеопамять, регистры ввода вывода и модуль BIOS. Посылает в дисплей сигналы управления яркостью лучей и сигналы развертки изображения. Наиболее распространенный видеоадаптер на сегодняшний день — адаптер SVGA (Super Video Graphics Array — супервидеографический массив), который может отображать на экране дисплея 1280х1024 пикселей при 256 цветах и 1024х768 пикселей при 16 миллионах цветов.
12
С увеличением числа приложений, использующих сложную графику и видео, наряду с традиционными видеоадаптерами широко используются разнообразные устройства компьютерной обработки видеосигналов: - Графические акселераторы (ускорители) — специализированные графические сопроцессоры, увеличивающие эффективность видеосистемы. Их применение освобождает центральный процессор от большого объёма операций с видеоданными, так как акселераторы самостоятельно вычисляют, какие пиксели отображать на экране и каковы их цвета. - Фрейм-грабберы, которые позволяют отображать на экране компьютера видеосигнал от видеомагнитофона, камеры, лазерного проигрывателя и т. д., с тем, чтобы захватить нужный кадр в память и впоследствии сохранить его в виде файла. - TV-тюнеры — видеоплаты, превращающие компьютер в телевизор. TV-тюнер позволяет выбрать любую нужную телевизионную программу и отображать ее на экране в масштабируемом окне. Таким образом можно следить за ходом передачи, не прекращая работу. Клавиатура служит для ввода информации в компьютер и подачи управляющих сигналов. Она содержит стандартный набор алфавитноцифровых клавиш и некоторые дополнительные клавиши — управляющие и функциональные, клавиши управления курсором, а также малую цифровую клавиатуру. Наиболее распространена 101-клавишная клавиатура c раскладкой клавиш QWERTY (читается “кверти”), названная так по клавишам, расположенным в верхнем левом ряду алфавитно-цифровой части клавиатуры: Такая клавиатура имеет 12 функциональных клавиш, расположенных вдоль верхнего края. Нажатие функциональной клавиши приводит к посылке в компьютер не одного символа, а целой совокупности символов. Функциональные клавиши могут программироваться пользователем. Например, во многих программах для получения помощи (подсказки) задействована клавиша F1, а для выхода из программы — клавиша F10. Назначение управляющих клавиш: - Enter — клавиша ввода; - Esc (Escape — выход) клавиша для отмены каких-либо действий, выхода из программы, из меню и т.п.; - Ctrl и Alt — эти клавиши самостоятельного значения не имеют, но при нажатии совместно с другими управляющими клавишами изменяют их действие; - Shift (регистр) — обеспечивает смену регистра клавиш (верхнего на нижний и наоборот);
13
- Insert (вставлять) — переключает режимы вставки (новые cимволы вводятся посреди уже набранных, раздвигая их) и замены (старые символы замещаются новыми); - Delete (удалять) — удаляет символ с позиции курсора; — удаляет символ перед курсором; - Back Space или - Home и End — обеспечивают перемещение курсора в первую и последнюю позицию строки, соответственно; - Page Up и Page Down — обеспечивают перемещение по тексту на одну страницу (один экран) назад и вперед, соответственно; - Tab — клавиша табуляции, обеспечивает перемещение курсора вправо сразу на несколько позиций до очередной позиции табуляции; - Caps Lock — фиксирует верхний регистр, обеспечивает ввод прописных букв вместо строчных; - Print Screen — обеспечивает печать информации, видимой в текущий момент на экране. - Длинная нижняя клавиша без названия — предназначена для ввода пробелов. - Клавиши , , и служат для перемещения курсора вверх, вниз, влево и вправо на одну позицию или строку. Малая цифровая клавиатура используется в двух режимах — ввода чисел и управления курсором. Переключение этих режимов осуществляется клавишей Num Lock. Клавиатура содержит встроенный микроконтроллер (местное устройство управления), который выполняет следующие функции: - последовательно опрашивает клавиши, считывая введенный сигнал и вырабатывая двоичный скан-код клавиши; - управляет световыми индикаторами клавиатуры; - проводит внутреннюю диагностику неисправностей; - осуществляет взаимодействие с центральным процессором через порт ввода-вывода клавиатуры. Клавиатура имеет встроенный буфер — промежуточную память малого размера, куда помещаются введённые символы. В случае переполнения буфера нажатие клавиши будет сопровождаться звуковым сигналом — это означает, что символ не введён (отвергнут). Работу клавиатуры поддерживают специальные программы, "зашитые" в BIOS, а также драйвер клавиатуры, который обеспечивает возможность ввода русских букв, управление скоростью работы клавиатуры и др.
14
Видеосистема компьютера состоит из трех компонентов: монитор (называемый также дисплеем); видеоадаптер; программное обеспечение (драйверы видеосистемы). Видеоадаптер посылает в монитор сигналы управления яркостью лучей и синхросигналы строчной и кадровой развёрток. Монитор преобразует эти сигналы в зрительные образы. А программные средства обрабатывают видеоизображения — выполняют кодирование и декодирование сигналов, координатные преобразования, сжатие изображений и др. Монитор — устройство визуального отображения информации (в виде текста, таблиц, рисунков, чертежей и др.). Подавляющее большинство мониторов сконструированы на базе электронно-лучевой трубки (ЭЛТ), и принцип их работы аналогичен принципу работы телевизора. Мониторы бывают алфавитно-цифровые и графические, монохромные и цветного изображения. Современные компьютеры комплектуются, как правило, цветными графическими мониторами. Основной элемент дисплея — электронно-лучевая трубка. Её передняя, обращенная к зрителю часть с внутренней стороны покрыта люминофором — специальным веществом, способным излучать свет при попадании на него быстрых электронов. Наряду с традиционными ЭЛТ-мониторами все шире используются плоские жидкокристаллические (ЖК) мониторы. Жидкие кристаллы — это особое состояние некоторых органических веществ, в котором они обладают текучестью и свойством образовывать пространственные структуры, подобные кристаллическим. Жидкие кристаллы могут изменять свою структуру и светооптические свойства под действием электрического напряжения. Меняя с помощью электрического поля ориентацию групп кристаллов и используя введённые в жидкокристаллический раствор вещества, способные излучать свет под воздействием электрического поля, можно создать высококачественные изображения, передающие более 15 миллионов цветовых оттенков. Большинство ЖК-мониторов использует тонкую плёнку из жидких кристаллов, помещённую между двумя стеклянными пластинами. Заряды передаются через так называемую пассивную матрицу — сетку невидимых нитей, горизонтальных и вертикальных, создавая в месте пересечения нитей точку изображения (несколько размытого из-за того, что заряды проникают в соседние области жидкости). Активные матрицы вместо нитей используют прозрачный экран из транзисторов и обеспечивают яркое, практически не имеющее искажений изображение. Панель при этом разделена на 308160 (642х480)
15
независимых ячеек, каждая из которых состоит из четырех частей (для трёх основных цветов и одна резервная). Таким образом, экран имеет почти 1,25 млн точек, каждая из которых управляется собственным транзистором. По компактности такие мониторы не знают себе равных. Они занимают в 2 – 3 раза меньше места, чем мониторы с ЭЛТ и во столько же раз легче; потребляют гораздо меньше электроэнергии и не излучают электромагнитных волн, воздействующих на здоровье людей. Разновидность монитора — сенсорный экран. Здесь общение с компьютером осуществляется путём прикосновения пальцем к определённому месту чувствительного экрана. Этим выбирается необходимый режим из меню, показанного на экране монитора. Сенсорными экранами оборудуют рабочие места операторов и диспетчеров, их используют в информационно-справочных системах и т.д. Манипуляторы (мышь, джойстик и др.) — это специальные устройства, которые используются для управления курсором. Мышь имеет вид небольшой коробки, полностью умещающейся на ладони. Мышь связана с компьютером кабелем через специальный блок — адаптер, и её движения преобразуются в соответствующие перемещения курсора по экрану дисплея. В верхней части устройства расположены управляющие кнопки (обычно их три), позволяющие задавать начало и конец движения, осуществлять выбор меню и т.д. Джойстик — обычно это стержень-ручка, отклонение которой от вертикального положения приводит к передвижению курсора в соответствующем направлении по экрану монитора. Часто применяется в компьютерных играх. В некоторых моделях в джойстик монтируется датчик давления. В этом случае, чем сильнее пользователь нажимает на ручку, тем быстрее движется курсор по экрану дисплея. Трекбол — небольшая коробка с шариком, встроенным в верхнюю часть корпуса. Пользователь рукой вращает шарик и перемещает, соответственно, курсор. В отличие от мыши, трекбол не требует свободного пространства около компьютера, его можно встроить в корпус машины. Дигитайзер — устройство для преобразования готовых изображений (чертежей, карт) в цифровую форму. Представляет собой плоскую панель — планшет, располагаемую на столе, и специальный инструмент — перо, с помощью которого указывается позиция на планшете. При перемещении пера по планшету фиксируются его координаты в близко расположенных точках, которые затем преобразуются в компьютере в требуемые единицы измерения.
16
Периферийные устройства Принтер — печатающее устройство. Осуществляет вывод из компьютера закодированной информации в виде печатных копий текста или графики. Существуют тысячи наименований принтеров. Но основных видов принтеров три: матричные, лазерные и струйные.
Рис. 3. Матричный символ Матричные принтеры используют комбинации маленьких штырьков, которые бьют по красящей ленте, благодаря чему на бумаге остаётся отпечаток символа. Каждый символ, печатаемый на принтере, формируется из набора 9, 18 или 24 игл, сформированных в виде вертикальной колонки. Недостатками этих недорогих принтеров являются их шумная работа и невысокое качество печати, приемлемое, в основном, для домашних целей. Лазерные принтеры работают примерно так же, как ксероксы. Компьютер формирует в своей памяти "образ" страницы текста и передает его принтеру. Информация о странице проецируется с помощью лазерного луча на вращающийся барабан со светочувствительным покрытием, меняющим электрические свойства в зависимости от освещённости. После засветки на барабан, находящийся под электрическим напряжением, наносится красящий порошок — тонер, частицы которого налипают на засвеченные участки поверхности барабана. Принтер с помощью специального горячего валика протягивает бумагу под барабаном; тонер переносится на бумагу и "вплавляется" в неё, оставляя стойкое высококачественное изображение. Цветные лазерные принтеры пока очень дороги. Струйные принтеры генерируют символы в виде последовательности чернильных точек. Печатающая головка принтера имеет крошечные сопла, через которые на страницу выбрызгиваются быстросохнущие чернила. Эти принтеры требовательны к качеству бумаги.
17
Цветные струйные принтеры создают цвета, комбинируя чернила четырех основных цветов — ярко-голубого, пурпурного, желтого и черного. Принтер связан с компьютером посредством кабеля принтера, один конец которого вставляется своим разъёмом в гнездо принтера, а другой — в порт принтера компьютера. Порт — это разъём, через который можно соединить процессор компьютера с внешним устройством. Каждый принтер обязательно имеет свой драйвер — программу, которая способна переводить (транслировать) стандартные команды печати компьютера в специальные команды, требующиеся для каждого принтера. Плоттер (графопостроитель) — устройство, которое чертит графики, рисунки или диаграммы под управлением компьютера. Плоттеры используются для получения сложных конструкторских чертежей, архитектурных планов, географических и метеорологических карт, деловых схем. Плоттеры рисуют изображения с помощью пера. Роликовые плоттеры прокручивают бумагу под пером, а планшетные плоттеры перемещают перо через всю поверхность горизонтально лежащей бумаги. Сканер — устройство для ввода в компьютер графических изображений. Создает оцифрованное изображение документа и помещает его в память компьютера. Если принтеры выводят информацию из компьютера, то сканеры, наоборот, переносят информацию с бумажных документов в память компьютера. Существуют ручные сканеры, которые прокатывают по поверхности документа рукой, и планшетные сканеры, по внешнему виду напоминающие копировальные машины. Если при помощи сканера вводится текст, компьютер воспринимает его как картинку, а не как последовательность символов. Для преобразования такого графического текста в обычный символьный формат используют программы оптического распознавания образов. Модем — устройство для передачи компьютерных данных на большие расстояния по телефонным линиям связи. Цифровые сигналы, вырабатываемые компьютером, нельзя напрямую передавать по телефонной сети, потому что она предназначена для передачи человеческой речи — непрерывных сигналов звуковой частоты. Модем обеспечивает преобразование цифровых сигналов компьютера в переменный ток частоты звукового диапазона — этот процесс называется модуляцией, а также обратное преобразование, которое
18
называется демодуляцией. Отсюда название устройства: модем — модулятор/демодулятор.
Рис 4. Схема реализации модемной связи Для осуществления связи один модем вызывает другой по номеру телефона, а тот отвечает на вызов. Затем модемы посылают друг другу сигналы, согласуя подходящий им обоим режим связи. После этого передающий модем начинает посылать модулированные данные с согласованными скоростью (количеством бит в секунду) и форматом. Модем на другом конце преобразует полученную информацию в цифровой вид и передает её своему компьютеру. Закончив сеанс связи, модем отключается от линии. Управление модемом осуществляется с помощью специального коммутационного программного обеспечения. Модемы бывают внешние, выполненные в виде отдельного устройства, и внутренние, представляющие собой электронную плату, устанавливаемую внутри компьютера. Почти все модемы поддерживают и функции факсов. Факс — это устройство факсимильной передачи изображения по телефонной сети. Название "факс" произошло от слова "факсимиле" (лат. fac simile — сделай подобное), означающее точное воспроизведение графического оригинала (подписи, документа и т.д.) средствами печати. Модем, который может передавать и получать данные как факс, называется факс-модемом. Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Смысл появления такого языка – оснащенный набор вычислительных формул дополнительной информации, превращает данный набор в алгоритм. Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми
19
основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй цели идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы концепции ее решения можно было выражать прямо и коротко. Компьютер способен работать с программами, написанными на его родном машинном языке. Существует почти столько же разных машинных языков, сколько и компьютеров, все они простые операции производятся со скоростью молнии на двоичных числах. Персональные компьютеры IBM используют машинный язык микропроцессоров семейства 8086, так как их аппаратная часть основывается на данных микропроцессорах. Можно писать программы непосредственно на машинном языке, хотя это и сложно. Для спасения программистов от сурового машинного языка программирования, были созданы языки высокого уровня (т.е. немашинные языки), которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят "исходный код" (гибрид английских слов и математических выражений, который считывает машина), и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке. Существует два основных вида трансляторов: интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и компиляторы, которые сканируют исходный код для производства текста программы на машинном языке, которая затем выполняется отдельно. Интерпретаторы Преимущество интерпретаторной реализации состоит в том, что она допускает "непосредственный режим". Непосредственный режим позволяет вам задавать компьютеру задачу вроде PRINT 3.14159*3/2.1 и возвращает вам ответ, как только вы нажмете клавишу ENTER (это позволяет использовать компьютер стоимостью 3000 долларов в качестве калькулятора стоимостью 10 долларов). Кроме того, интерпретаторы имеют специальные атрибуты, которые упрощают отладку. Можно, например, прервать обработку интерпретаторной программы, отобразить содержимое определенных переменных, бегло просмотреть программу, а затем продолжить исполнение. Больше всего программистам нравится в интерпретаторах возможность получения быстрого ответа. Здесь нет необходимости в компилировании, так как интерпретатор всегда готов для вмешательства в
20
вашу программу. Введите RUN и результат вашего самого последнего изменения оказывается на экране. Однако интерпретаторные языки имеют недостатки. Необходимо, например, иметь копию интерпретатора в памяти все время, тогда как многие возможности интерпретатора, а следовательно и его возможности могут не быть необходимыми для исполнения конкретной программы. Интерпретаторы тихоходны. Ими затрачивается много времени на разгадывание того, что делать, вместо того чтобы заниматься действительно делом. При исполнении программных операторов, интерпретатор должен сначала сканировать каждый оператор с целью прочтения его содержимого, а затем выполнить запрошенную операцию. Операторы в циклах сканируются излишне много. Рассмотрим программу: на интерпретаторном Бэйсике 10 FOR N=1 TO 1000 20 PRINT N,SQR(N) 30 NEXT N при первом переходе по этой программе БейсикИнтерпретатор должен разгадать что означает строка 20: 1. преобразовать числовую переменную N в строку; 2. послать строку на экран; 3. переместить в следующую зону печати; 4. вычислить квадратный корень из N; 5. преобразовать результат в строку; 6. послать строку на экран. При втором проходе цикла все это разгадывание повторяется снова, так как абсолютно забыты все результаты изучения этой строки какую-то миллисекунду тому назад. И так во всех следующих 998 проходах. Очевидно, что если отделить фазу сканирования/понимания от фазы исполнения, то можно иметь более быструю программу. Для этого существуют компиляторы. Компиляторы Компилятор-это транслятор текста на машинный язык, который считывает исходный текст. Он оценивает его в соответствии с синтаксической конструкцией языка и переводит на машинный язык. Другими словами, компилятор не исполняет программы, он их строит. Интерпретаторы невозможно отделить от программ, которые ими прогоняются, компиляторы делают свое дело и уходят со сцены. При работе с компилирующим языком, таким как Турбо-Бейсик, вы придете к необходимости мыслить о ваших программах в признаках двух главных фаз их жизни: периода компилирования и периода прогона. Большинство
21
программ будут прогоняться в четыре - десять раз быстрее их интерпретаторных эквивалентов. Если вы поработаете над улучшением, то сможете достичь 100-кратного повышения быстродействия. Оборотная сторона монеты состоит в том, что программы, расходующие большую часть времени на возню с файлами на дисках или ожидание ввода, не смогут продемонстрировать какое-то впечатляющее увеличение скорости. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Машинно – ориентированные языки Машинно – ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно – ориентированные языки позволяют использовать все возможности и особенности Машинно – зависимых языков: - высокое качество создаваемых программ (компактность и скорость выполнения); - возможность использования конкретных аппаратных ресурсов; - предсказуемость объектного кода и заказов памяти; - для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ; - трудоемкость процесса составления программ, плохо защищенного от появления ошибок; - низкая скорость программирования; - невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов. Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы. Машинный язык Отдельный компьютер имеет свой определенный машинный язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции. В новых моднлях ЭВМ намечается тенденция к повышению внутренних языков машинно – аппаратным путем реализовывать более
22
сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования. Языки символического кодирования Языки символического кодирования (далее ЯСК), так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ. Использование символических адресов – первый шаг к созданию ЯСК. Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста. Автокоды Есть языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды. В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования , доступный программисту. Макрокоманды переводятся в машинные команды двумя путями – расстановкой и генерированием. В постановочной системе содержатся «остовы» - серии команд, реализующих требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остов» программы, превращая её в реальную машинную программу. В системе с генерацией имеются специальные программы, анализирующие макрокоманду, которые определяют, какую функцию
23
необходимо выполнить и формируют необходимую последовательность команд, реализующих данную функцию. Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода. Развитые автокоды получили название Ассемблеры. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер. Более полная информация об языке Ассемблера см. ниже. Макрос Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму - называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макроопределяющий и исходный текст. Реакция макропроцессора на вызов-выдача выходного текста. Макрос одинаково может работать, как с программами, так и с данными. Машинно – независимые языки Машинно – независимые языки – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ и ВС. Подобные языки получили название высокоуровневых языков программирования. Программы, составляемые на таких языках, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка(задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ. Таким образом, командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма.
24
Проблемно – ориентированные языки С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач, ими стали проблемно – ориентированные языки. Эти языки, языки ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Проблемных языков очень много, например: Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг - для моделирования; Лисп, Снобол – для работы со списочными структурами. Универсальные языки Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков ПЛ/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. П/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ. Программы в П/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти. Диалоговые языки Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства,
25
обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками. Эти работы велись в двух направлениях. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач. Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе. Одним из примеров диалоговых языков является Бэйсик. Бэйсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг задач. Непроцедурные языки Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе.
26
РАЗВИТИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Ассемблер Язык Ассемблера – это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах. Программисту не обязательно употреблять настоящие адреса ячеек памяти с размещенными в них данными, участвующими в операции, и вычисляемые результаты, а также адреса тех команд, к которым программа не обращается. Некоторые задачи, например, обмен с нестандартными устройствами обработки данных сложных структур невозможно решить с помощью языков программирования высокого уровня. Это под силу ассемблеру. В принципе, язык Ассемблер является машинным языком. И программист реализующий какую-либо задачу на языках высокого уровня, с помощью Ассемблера может определить осмыслено ли решение данной задачи, с точки зрения использования ЭВМ. Лисп Один из самых старых языков программирования Фортран был создан в 50-х гг. двадцатого века. Фортран и подобные ему языки программирования (Алгол, ПЛ/1) предназначались для решения вычислительных задач, возникающих в математике, физике, инженерных расчетах, экономике и т.д. Эти языки в основном работают с числами. Второй старейший язык программирования Лисп (List Information Symbol Processing) был разработан Дж. Маккарти в 1962 г. скорее для работы со строками символов, нежели для работы с числами. Это особое предназначение Лиспа открыло для программистов новую область деятельности, известную ныне, как «искусственный интеллект». В настоящее время Лисп успешно применяется в экспертных системах, системах аналитических вычислений и т.д. Обширность области возможных приложений Лиспа вызвала появление множества различных диалектов Лиспа. Это легко объяснимо: применение Лиспа для понимания естественного языка требует определенного набора базисных функций, отличных, например, от используемого в задачах медицинской диагностики. Существование множества различных диалектов Лиспа привело к созданию в начале 80-х гг. Common LISP Комитета, который должен был
27
выбрать наиболее подходящий диалект Лиспа и предложить его в качестве основного. Этот диалект, выбранный Комитетом в 1985г., получил название Common LISP . В дальнейшем он был принят в университетах США, а также многими разработчиками систем искусственного интеллекта, в качестве основного диалекта языка Лисп. Язык программирования Лисп существенно отличается от других языков программирования, таких, как Паскаль, Си и т.п. Работа с символами и работа с числами как с основными элементами требует разных способов мышления. Первоначально Лисп был задуман как теоретическое средство для рекурсивных построений, а сегодня он превратился в мощное средство, обеспечивающее программиста разнообразной поддержкой, позволяющей ему быстро строить прототипы весьма и весьма серьезных систем. Профессор Массачусетского технологического института Дж. Самман заметил, что математическая ясность и предельная четкость Лиспа – это еще не все. Главное – Лисп позволяет сформулировать и запомнить «идиомы», столь характерные для проектов по искусственному интеллекту. Фортран Одним из первых и наиболее удачных компиляторов стал язык Фортран, разработанный фирмой IBM. Профессор Дж. Букс и группа американских специалистов в области программирования в 1954 году опубликовало первое сообщение о языке. Дословно, название языка FORmulae TRANslation –преобразование формул. Среди причин долголетия Фортрана (а он один из самых распространенных языков в мире), можно отметить простую структуру, как самого Фортрана, так и предназначенных для него трансляторов. Программа на Фортране записывается в последовательности предложений или операторов (описание некоего преобразования информации), и оформляется по определенным стандартам. Эти стандарты накладывают ограничения, в частности, на форму записи и расположения частей оператора в строке бланка для записи операторов. Программа, записанная на Фортране, представляет собой один или несколько сегментов (подпрограмм) из операторов. Сегмент, управляющий работой всей программы в целом, называется основной программой. Фортран был задуман для использования в сфере научных и инженерно-технических вычислений. Однако на этом языке легко описываются задачи с разветвленной логикой (моделирование производственных процессов, решение игровых ситуаций и т.д.),
28
некоторые экономические задачи и особенно задачи редактирования (составление таблиц, сводок, ведомостей и т.д.). Модификация языка Фортран, появившиеся в 1958 году, получила название Фортран II и содержала понятие подпрограммы и общих переменных для обеспечения связи между сегментами. К 1962 году относится появление языка, известного под именем Фортран IV и ставшего наиболее употребительным в настоящее время. К этому же времени относится и начало деятельности комиссии при Американской Ассоциации Стандартов (ASA), которая выработала к 1966 году два стандарта – языки Фортран и базисный (основной) Фортран (Basic FORTRAN). Эти языки приблизительно соответствуют модификациям IV и II, однако базисный Фортран является подмножеством Фортрана, в то время, как Фортран II таковым для Фортрана IV не является. Язык Фортран до сих пор продолжает развиваться и совершенствоваться, оказывая влияние на создание и развитие других языков. Например, Фортран заложен в основу Basic – диалогового языка, очень популярного для решения небольших задач, превосходного языка для обучения навыкам использования алгоритмических языков в практике программирования. Разработан этот язык – Beginner’s All –purpose Symbolic Instruction Code – группой сотрудников Вычислительного центра Дармутского колледжа, штат Нью-Хемпшир созданный в 19…. . Но это уже следующий язык. Бейсик Бейсик - это продукт Новой Англии, созданный в 1964г., как язык обучения программированию. Бейсик является общепринятым акронимом от"Beginner's All-purpose Symbolic Insruction Code" (BASIC) многоцелевой символический обучающий код для начинающих". Вскоре было обнаружено, что Бейсик может делать практически все то, что делает скучный неуклюжий Фортран. А так как Бейсику было легко обучиться и легко с ним работать, программы на нем писались быстрее, чем на Фортране, то он получил распространиение. Бейсик был доступен применительно к персональным компьютерам, обычно он встроен в ПЗУ. Бейсик самый простой для освоения из десятков языков общецелевого программирования, имеющихся в распоряжении любителей программирования. Бейсик считается деловым языком, снабженным мощными средствами решения специфических задач, которые обычно большинство пользователей решают при помощи небольших компьютеров, а именно: работая с файлами и выводя текстовое и графическое изображение на экране дисплея.
29
Бейсик обычно реализовался как интерпретатор (знакомым изомером является сам интерпретаторный Бейсик). Причинами перехода от любительского уровня к профессиональному являются многочисленные расширения классической версии языка: возможность отключения нумерации строк, многостроковые структурированные программные конструкции, структуры типа "запись", поименованные подпрограммы с параметрами и локальные переменные. С появлением транслятора QuickBasic фирмы Microsoft разработчики получили возможность строить на Бейсике приложения из раздельно откомпилированных модулей, некоторые из которых могут быть написаны на других языках. Разработчик теперь имеет выбор из нескольких промышленных библиотек подпрограмм, которые содержат готовые решения для распространенных задач программирования. Рефал Рефал разработан в России (СССР) в 1966г. ИПМ АН СССР. Этот язык прост и удобен для описания манипуляций над произвольными текстовыми объектами. Рефал широко применяется при разработке трансляторов с алгоритмических языков как универсальных и проблемно – ориентированных, так и автокодов. Кроме использования в задачах трансляции, Рефал имеет такие важные сферы применения, как машинное выполнение громоздких аналитических выкладок в теоретической физике и прикладной математике; проектирование «умных» информационных систем, осуществляющих нетривиальную логическую обработку информации; машинное доказательство теорем; моделирование целенаправленного поведения; разработка диалоговых обучающих систем; исследования в области искусственного интеллекта и т.д. Программирование на Рефале имеет специфику, связанную, прежде всего, с тем, что Рефал является языком функционального типа в отличие от обычных операторных языков типа Алгол, Фортран и т.д.. Если программа на операторных языках – ни что иное, как совокупность приказов-операторов, то программа на Рефале представляет собой по существу описание связей и отношений между определенными понятиями. Вследствие того, что в Рефале программист сам определяет структуру обрабатываемой информации, эффективность программы существенно зависит от удачного или неудачного выбора этой структуры. Для задания структур в Рефале используются скобки, а специфика всех реализаций языка такова, что использование скобок резко повышает
30
эффективность выполнения программы. Это достигается с помощью адресного соединения скобок. Определенной спецификой обладают и переменные типа «выражения» – имеется в виду их способность удлиняться при отождествлении. Правильное использование переменных этого типа также позволяет значительно повысить эффективность Рефал – программы. Пролог и Пролог ++ Пролог - это язык, предназначенный для поиска решений. Это декларативный язык, то есть формальная постановка задачи может быть использована для ее решения. Пролог определяет логические отношения в задаче, как отличные от пошагового решения этой задачи. Центральной частью Пролога являются средства логического вывода, которые решают запросы, используя заданное множество фактов и правил, к которым обращаются как к утверждениям. Пролог также не имеет деления переменных на типы и может динамически добавлять правила и факты к средствам вывода. Таким образом, это гибкий язык, и он более пригоден для объектно-ориентированного расширения, чем язык со строго заданными типами, например, Паскаль. Пролог ++ представляет собой дополнение к стандартному Прологу. Все свойства языка по-прежнему доступны программистам. Следовательно, Пролог ++ можно отнести к группе гибридных языков, представителями которой считаются Object Pascal и C++. Расширение Пролог ++ поддерживает все свойства, присущие обычно объектноориентированным языкам: концепции объектов и классов, единичное и многократное наследование, разбиение на подклассы и передачу сообщений. Поддерживаются также некоторые усовершенствованные свойства, существующие в таких языках, как C++ и Smalltalk, включая общие и частные методы. Интересным свойством является поддержка в языке программирования с управлением данными. Эта техника, которая может быть еще названа программированием, "управляемым событиями", используется в большинстве языков объектно-ориентированного программирования, особенно в тех, которые разработаны для машин с интерфейсом, управляемым "мышью". Объектно-ориентированная программа реагирует на события, которые определяют поток управления. В Прологе ++ программирование с управлением данными достигается при помощи концепции демонов. Демон представляет собой объект, методы которого вызываются в случае
31
определенных событий и могут быть таким образом использованы для поддержки программирования с управлением данными. Сам язык основан на концепции передачи сообщений. Программа на Прологе ++ строится вокруг множества объектов Пролога ++, которые обмениваются сообщениями. В этом смысле Пролог ++ ближе к чистому объектно-ориентированному языку, такому, как Smalltalk, чем C++ или Object Pascal. Определения объектов строятся исходя из вызовов. Open_Object [имя_объекта] и Close_Object [имя_объекта], а методы определяются практически так же, как в других объектноориентированных языках. Для задания наследования можно явным образом указать, какой метод какого объекта должен наследоваться, что является необходимым для многократного наследования. Лекс Лекс – генератор программ лексического анализа. Лексический анализ – это распознавание лексем во входном потоке символов. Предположим, что задано некоторое конечное множество слов (лексем) в некотором языке и некоторое входное слово. Необходимо установить, какой элемент множества (если он существует) совпадает с данным входным словом. Обычно лексический анализ выполняется так называемым лексическим анализатором. Лексический анализатор – это программа. Лексический анализ применяется во многих случаях, например, для построения пакетного редактора или в качестве распознавателя директив в диалоговой программе и т.д. Однако, наиболее важное применение лексического анализатора – это использование его в компиляторе. Здесь лексический анализатор выполняет функцию программы ввода данных. Лексический анализатор выполняет первую стадию компиляции – читает строки компилируемой программы, выделяет лексемы и передает их на дальнейшие стадии компиляции (грамматический разбор, кодогенерацию и т.д.). Лексический анализатор распознает тип каждой лексемы и соответствующим образом помечает ее. Например, при компиляции Сипрограммы могут быть выделены следующие типы лексем: число, идентификатор, оператор, ограничитель и т.д. Лексический анализатор должен не только выделить лексему, но и выполнить некоторые преобразования. Например, если лексема – число, то его необходимо перевести во внутреннюю (двоичную) форму записи как число с плавающей или фиксированной запятой. А если лексема –
32
идентификатор, то его необходимо разместить в таблице, чтобы в дальнейшем обращаться к нему не по имени, а по адресу в таблице. Хотя лексический анализ по своей идее прост, тем не менее, эта фаза работы компилятора часто занимает больше времени, чем любая другая. Частично это происходит из-за необходимости просматривать и анализировать исходный текст символ за символом. Иногда даже бывает необходимо вернуть прочитанный символ во входной поток с тем, чтобы повторить просмотр и анализ. Cи Си – это язык программирования общего назначения, известный своей эффективностью, экономичностью, и переносимостью. Указанные преимущества Си обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование Си в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке ассемблера. При этом они имеют лучшую наглядность и их более просто сопровождать. Си сочетает эффективность и мощность в относительно малом по размеру языке. На Си можно создавать программы, которые делают все, что требуется. Этот язык может стимулировать к программированию. Другие языки программирования воздвигают искусственные препятствия для творчества, а Си – нет. Использование этого языка позволяет сократить затраты времени на создание работающих программ. Си позволяет программировать быстро, эффективно и предсказуемо. Си позволяет использовать все возможности ЭВМ. Этот язык создан программистом для использования другими программистами. Язык Си имеет свои существенные особенности. Си обеспечивает полный набор операторов структурного программирования. Си предлагает необычно большой набор операций. Многие операции Си соответствуют машинным командам, и поэтому допускают прямую трансляцию в машинный код. Разнообразие операций позволяет выбирать их различные наборы для минимизации результирующего кода. Си поддерживает указатели на переменные и функции. Указатель на объект программы соответствует машинному адресу этого объекта. Посредством разумного использования указателей можно создавать эффективно-выполняемые программы, так как указатели позволяют ссылаться на объекты тем же самым путем, как это делает
33
машина. Си поддерживает арифметику указателей, и тем самым позволяет осуществлять непосредственный доступ и манипуляции с адресами памяти. В своем составе Си содержит препроцессор, который обрабатывает текстовые файлы перед компиляцией. Среди его наиболее полезных приложений при написании программ на Си являются: определение программных констант, замена вызовов функций аналогичными, но более быстрыми макросами, условная компиляция. Препроцессор не ограничен процессированием только исходных текстовых файлов Си, он может быть использован для любого текстового файла. Си-гибкий язык, позволяющий принимать в конкретных ситуациях самые разные решения. Тем не менее, Си налагает незначительные ограничения в таких, например, действиях, как преобразование типов. Во многих случаях это является достоинством, однако программисты должны хорошо знать язык, чтобы понимать, как будут выполняться их программы. Язык Си предъявляет достаточно высокие требования к квалификации использующего его программиста. При изучении Си желательно иметь представление о структуре и работе компьютера. Большую помощь и более глубокое понимание идей Си, как языка системного программирования, обеспечат хотя бы минимальное знание языка ассемблер. Уровень старшинства некоторых операторов не является общепринятым, некоторые синтаксические конструкции могли бы быть лучше. Тем не менее, Си – чрезвычайно эффективный и выразительный язык, пригодный для широкого класса задач. Си++ Си++ разработан в 1983 году. Более ранние версии языка использовались начиная с 1980 года и были известны как "Cи с Классами". Автор хотел написать событийно управляемые модели, для чего был бы идеален Simula67, если не принимать во внимание эффективность. "Cи с Классами" использовался для крупных проектов моделирования, в которых строго тестировались возможности написания программ, требующих (только) минимального пространства памяти и времени на выполнение. В "Cи с Классами" не хватало перегрузки операций, ссылок, виртуальных функций и многих деталей. Си++ был впервые введен за пределами исследовательской группы автора в июле 1983 года. Однако тогда многие особенности Си++ были еще не разработаны.
34
Название Си++ предложил Рик Масситти. Это название указывает на эволюционную природу перехода к нему от Cи. "++" - это операция приращения в Cи. Чуть более короткое имя Cи+ является синтаксической ошибкой, кроме того, оно уже было использовано как имя совсем другого языка. Си++ - это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. Си++ является надмножеством языка программирования Cи. Помимо возможностей, которые дает Cи, Си++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Изначально Си++ был разработан, чтобы не приходилось программировать на ассемблере, Cи или других современных языках высокого уровня. Основным его предназначением было сделать написание хороших программ более простым Си++ развивается, чтобы справляться со сложностями, с которыми сталкиваются пользователи В качестве базового языка для Си++ был выбран Cи, потому что он многоцелевой, лаконичный и относительно низкого уровня; отвечает большинству задач системного программирования; идет везде и на всем; ригоден в среде программирования UNIX. Си++ стал использоваться шире, и по мере того, как возможности, предоставляемые им помимо возможностей Cи, становились все более существенными, поднимался вопрос о том, сохранять ли совместимость с Cи. Оказавшись от определенной части наследия Cи можно было бы избежать ряда проблем. Это не было сделано, потому что - есть миллионы строк на Cи, которые могли бы принести пользу в Си++ при условии, что их не нужно было бы полностью переписывать с Cи на Си++; - есть сотни тысяч строк библиотечных функций и сервисных программ, написанных на Cи которые можно было бы использовать из или на Си++ при условии, что Си++ полностью совместим с Cи по загрузке и синтаксически очень похож на Cи;
35
- есть десятки тысяч программистов, которые знают Cи, и которым, поэтому, нужно только научиться использовать новые особенности Си++, а не заново изучать его основы; Поскольку Си++ и Cи будут использоваться на одних и тех же системах одними и теми же людьми, отличия должны быть либо очень большими, либо очень маленькими, чтобы свести к минимуму ошибки и недоразумения. Си++ был развит из языка программирования Cи и за очень немногими исключениями сохраняет Cи как подмножество. Базовый язык, Cи подмножество Си++, спроектирован так, что имеется очень близкое соответствие между его типами, операциями и операторами и компьютерными объектами, с которыми непосредственно приходится иметь дело: числами, символами и адресами. За исключением операций свободной памяти new и delete, отдельные выражения и операторы Си++ обычно не нуждаются в скрытой поддержке во время выполнения или подпрограммах. Одним из первоначальных предназначений Cи было применение его вместо программирования на ассемблере в самых насущных задачах системного программирования. Когда проектировался Си++, были приняты меры, чтобы не ставить под угрозу успехи в этой области. Различие между Cи и Си++ состоит в первую очередь в степени внимания, уделяемого типам и структурам. Cи выразителен и снисходителен. Си++ еще более выразителен, но чтобы достичь этой выразительности, программист должен уделить больше внимания типам объектов. Когда известны типы объектов, компилятор может правильно обрабатывать выражения, тогда как в противном случае программисту пришлось бы задавать действия с мучительными подробностями. Знание типов объектов также позволяет компилятору обнаруживать ошибки, которые в противном случае остались бы до тестирования. Заметьте, что использование системы типов для того, чтобы получить проверку параметров функций, защитить данные от случайного искажения, задать новые операции и т.д., само по себе не увеличивает расходов по времени выполнения и памяти. Особое внимание, уделенное при разработке Си++ структуре, отразилось на возрастании масштаба программ, написанных со времени разработки Cи. Если программа в 10 000 строк имеет плохую структуру, то можно обнаружить, что новые ошибки появляются так же быстро, как удаляются старые. Си++ был разработан так, чтобы дать возможность разумным образом структурировать большие программы таким образом, чтобы для одного человека не было непомерным справляться с программами в 25 000 строк. Существуют программы гораздо больших размеров, однако те, которые работают, в целом, как оказывается, состоят
36
из большого числа почти независимых частей, размер каждой из которых намного меньше указанных пределов. Сложность написания и поддержки программы зависит от сложности разработки, а не от числа строк текста программы. Существенным критерием при разработке языка была простота. В Си++ нет типов данных высокого уровня и нет первичных операций высокого уровня. В нем нет, например, матричного типа с операцией обращения или типа строка с операцией конкатенации. Если пользователю понадобятся подобные типы, их можно определить в самом языке. Основное, чем занимается программирование на Си++ - это определение универсальных и специально-прикладных типов. Хорошо разработанный тип, определяемый пользователем, отличается от встроенного типа только способом определения, но не способом использования. Исключались те черты, которые могли бы повлечь дополнительные расходы памяти или времени выполнения Си++ проектировался для использования в довольно традиционной среде компиляции и выполнения, среде программирования на Cи в системе UNIX. Средства обработки особых ситуаций и параллельного программирования, требующие нетривиальной загрузки и поддержки в процессе выполнения, не были включены в Си++. Вследствие этого реализация Си++ очень легко переносима. Есть основания использовать Си++ в среде, где имеется более существенная поддержка. Такие средства, как динамическая загрузка, пошаговая трансляция и база данных определений типов могут с пользой применяться без воздействия на язык. СОСТАВНЫЕ ЭЛЕМЕНТЫ СИСТЕМ ПРОГРАММИРОВАНИЯ Неотъемлемая часть современных ЭВМ – системы программного обеспечения, являющиеся логическим продолжением средств ЭВМ, расширяющим возможности аппаратуры и сферу их использования. Система программного обеспечения, являясь посредником между человеком и техническими устройствами машины, автоматизирует выполнение тех или иных функций в зависимости от профиля специалистов и режимов их взаимодействия с ЭВМ. Основное назначение программного обеспечения – повышение эффективности труда пользователя, а также увеличение пропускной способности ЭВМ посредством сокращения времени и затрат на подготовку и выполнение программ. Программное обеспечение ЭВМ подразделяется на общее и специальное программное обеспечение.
37
Общее программное обеспечение реализует функции, связанные с работой ЭВМ, и включает в себя системы программирования, операционные системы, комплекс программ технического обслуживания. Специальное программное обеспечение включает в себя пакеты прикладных программ, которые проблемно ориентированы на решение вполне определенного класса задач. Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ. Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы-трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка. Язык – это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций. Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд. Имеется два основных вида средств реализации языка: компиляторы и интерпретаторы. Компилятор транслирует весь текст программы, написанной на языке высокого уровня, в ходе непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем ЭВМ выполняет без участия компилятора. Интерпретатор последовательно анализирует по одному оператору программы, превращая при этом каждую синтаксическую конструкцию, записанную на языке высокого уровня, в машинные коды и выполняя их одна за другой. Интерпретатор должен постоянно присутствовать в зоне основной памяти вместе с интерпретируемой программой, что требует значительных объемов памяти. Следует заметить, что любой язык программирования может быть как интерпретируемым, так и компилируемым, но в большинстве случаев у каждого языка есть свой предпочтительный способ реализации. Языки
38
Фортран, Паскаль в основном компилируют; язык Ассемблер почти всегда интерпретирует; языки Бейсик и Лисп широко используют оба способа. Основным преимуществом компиляции является скорость выполнения готовой программы. Интерпретируемая программа выполняется медленнее, чем компилируемая, поскольку интерпретатор должен строить соответствующую последовательность команд в момент, когда инструкция предписывает выполнение. Интерпретируемый язык более удобен для программиста. Он позволяет проконтролировать результат каждой операции. Особенно хорошо такой язык подходит для диалогового стиля разработки программ, когда отдельные части программы можно написать, проверить и выполнить в ходе создания программы, не отключая интерпретатора. По набору входных языков различают системы программирования одно- и многоязыковые. Отличительная черта многоязыковых систем состоит в том, что отдельные части программы можно составлять на разных языках и помощью специальных обрабатывающих программ объединять их в готовую для исполнения на ЭВМ программу. Для построения языков программирования используется совокупность общепринятых символов и правил, позволяющих описывать алгоритмы решаемых задач и однозначно истолковывать смысл созданного написания. Основной тенденцией в развитии языков программирования является повышение их семантического уровня с целью облегчения процесса разработки программ и увеличения производительности труда их составителей. По структуре, уровню формализации входного языка и целевому назначению различают системы программирования машинноориентированные и машинно-независимые. Машинно-ориентированные системы программирования имеют входной язык, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные системы позволяют использовать все возможности и особенности машинно-зависимых языков: - высокое качество создаваемых программ; - возможность использования конкретных аппаратных ресурсов; - предсказуемость объектного кода и заказов памяти; - для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ; - трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок; - низкая скорость программирования;
39
- невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов. Машинно-ориентированные системы по степени автоматического программирования подразделяются на классы. В таких системах программирования отдельный компьютер имеет свой определенный машинный язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции. В новых моделях ЭВМ намечается тенденция к повышению внутренних языков машинно-аппаратным путем реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования. Система символического кодирования. В данных системах используются языки символического кодирования (далее ЯСК), которые так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены символами (идентификаторами), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ. Использование символических адресов – первый шаг к созданию ЯСК. Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста. Существуют системы программирования, использующие языки, которые включают в себя все возможности ЯСК, посредством расширенного введения макрокоманд – они называются Автокоды. В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык
40
программирования, доступный программисту. Макрокоманды переводятся в машинные команды двумя путями – расстановкой и генерированием. В постановочной системе содержатся «остовы» – серии команд, реализующие требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остов» программы, превращая её в реальную машинную программу. В системе с генерацией имеются специальные программы, анализирующие макрокоманду, которые определяют, какую функцию необходимо выполнить и формируют необходимую последовательность команд, реализующих данную функцию. Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода. Развитые автокоды получили название Ассемблеры. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер. Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму, называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макросопределяющий и исходный текст. Реакция макропроцессора на вызов – выдача выходного текста. Макрос одинаково может работать, как с программами, так и с данными. Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ. В таких системах программы, составляемые языках, имеющих название высокоуровневых языков программирования, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка (задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ. Таким образом, командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма. Разработан ряд машинно-независимых систем программирования.
41
Входные языки программирования в процедурно-ориентированных системах служат для записи алгоритмов (процедур) обработки информации, характерных для решения задач определенного класса. Эти языки, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Процедурных языков очень много, например: Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг - для моделирования; Лисп, Снобол – для работы со списочными структурами. Проблемно-ориентированные системы в качестве входного языка используют язык программирования с проблемной ориентацией. С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач. Эти языки, ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Программы, составленные на основе этих языков программирования, записаны в терминах решаемой задачи и реализуются выполнением соответствующих процедур. Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач. Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе. Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной
42
форме определить, какие условия должны выполнятся, прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе. Для создания программы на выбранном языке программирования нужно иметь следующие компоненты. Специализированные текстовые редакторы, ориентированные на конкретный язык программирования, необходимы для получения файла с исходным текстом программы, который содержит набор стандартных символов для записи алгоритма. Исходный текст с помощью программы-компилятора переводится в машинный код. Исходный текст программы состоит, как правило, из нескольких модулей (файлов с исходными текстами). Каждый модуль компилируется в отдельный файл с объектным кодом, которые затем требуется объединить в одно целое. Кроме того, системы программирования, как правило, включают в себя библиотеки стандартных подпрограмм. Стандартные подпрограммы имеют единую форму обращения, что создает возможности автоматического включения таких подпрограмм в вызывающую программу и настройки их параметров. Объектный код модулей и подключенные к нему стандартные функции обрабатывает специальная программа – редактор связей. Данная программа объединяет объектные коды с учетом требований операционной системы и формирует на выходе работоспособное приложение – исполнимый код для конкретной платформы. Исполнимый код это законченная программа, которую можно запустить на любом компьютер, где установлена операционная система, для которой эта программа создавалась. В современных системах программирования имеется еще один компонент – отладчик, который позволяет анализировать работу программы во время ее исполнения. С его помощью можно последовательно выполнять отдельные операторы исходного текста последовательно, наблюдая при этом, как меняются значения различных переменных. В последнее время в программировании (особенно для операционной среды Windows) наметился так называемый визуальный подход. Этот процесс автоматизирован в средах быстрого проектирования. При этом используются готовые визуальные компоненты, свойства и поведение которых настраиваются с помощью
43
специальных редакторов. Таким образом, происходит переход от языков программирования системного уровня к языкам сценариев. Эти языки создавались для различных целей, что обусловило ряд фундаментальных различий между ним. Системные разрабатывались для построения структур данных и алгоритмов “с нуля”, начиная от таких примитивных элементов, как слово памяти компьютера. В отличие от этого, языки описания сценариев создавались для связывания готовых программ. Их применение подразумевает наличие достаточного ассортимента мощных компонентов, которые требуется только объединить друг с другом. Языки системного уровня используют строгий контроль типов данных, что помогает разработчикам приложении справляться со сложными задачами. Языки описания сценариев не используют понятие типа, что упрощает установление связей между компонентами, а также ускоряет разработку прикладных систем. Языки описания сценариев основаны на несколько другом наборе компромиссов, чем языки системного уровня. В них скорость исполнения и строгость контроля типов ставятся в шкале приоритетов на более низкое место, но зато выше цениться производительность труда программиста и повторное использование. Языки системного программирования хорошо подходят для создания компонентов, где основная сложность заключена в реализации алгоритмов и структур данных, тогда как языки описания сценариев лучше приспособлены для построения приложении из готовых компонентов, где сложность состоит в налаживании межкомпонентных связей. Задачи последнего рода получают все большее распространение, так что роль языков описания сценариев будет возрастать. МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ Моделирование - исследование объектов познания на их моделях; построение и изучение моделей реально существующих предметов и явлений (систем, инженерных конструкций, разнообразных процессов) и конструируемых объектов (для определения, уточнения их характеристик, рационализации способов их построения и т. д.). Моделирование как познавательный приём неотделимо от развития знания Появление же первых электронных вычислительных машин (Дж. Нейман, 1947) и формулирование основных принципов кибернетики (Н. Винер, 1948) привели к универсальной значимости новых методов — как в абстрактных областях знания, так и в их приложениях. Моделирование приобрело общенаучный характер и применяется при выполнении разработанных исследований. При моделировании исследование ведётся на модели, воспроизводящей основные характеристики «оригинала». На моделях
44
изучаются процессы, происходящие в оригинале — объекте исследования или разработки. Если модель и моделируемый объект имеют одну и ту же физическую природу, то это физическое моделирование. Явление (система, процесс) может исследоваться и путём опытного изучения каких-либо явления иной физической природы, но такого, что оно описывается теми же математическими соотношениями, что и моделируемое явление. Например, механические и электрические колебания описываются одними и теми же дифференциальными уравнениями, поэтому с помощью механических колебаний можно моделировать электрические и наоборот. Такое «предметноматематическое» моделирование широко применяется для замены изучения одних явлений изучением других явлений, более удобных для лабораторного исследования, в частности потому, что они допускают измерение неизвестных величин. Так, электрическое моделирование позволяет изучать на электрических моделях механические, гидродинамические, акустические и другие явления. Электрическое моделирование лежит в основе аналоговых вычислительных машин. При знаковом моделировании моделями служат знаковые образования какого-либо вида: схемы, графики, чертежи, формулы, графы, слова и предложения. Важнейшим видом знакового моделирования является математическое (логико-математическое) моделирование, осуществляемое средствами языка математики и логики. Знаковые образования и их элементы всегда рассматриваются вместе с определенными преобразованиями, операциями над ними, которые выполняет человек или машина (преобразования математических, логических, химических формул, преобразования состояний элементов цифровой машины, соответствующих знакам машинного языка, и др.). Современная форма «материальной реализации» знакового (прежде всего, математического) моделирования — это моделирование на цифровых электронных вычислительных машинах, универсальных и специализированных. Такие машины — это своего рода «чистые бланки», на которых можно зафиксировать описание любого процесса (явления) в виде его программы. Машина может «воспроизвести» ход моделируемого процесса. Действия со знаками в той или иной мере связаны с пониманием знаковых образований и их преобразований: формулы, математические уравнения и т. п. выражения применяемого при построении модели научного языка определенным образом интерпретируются (истолковываются) в понятиях той предметной области, к которой относится оригинал. Поэтому реальное построение знаковых моделей или их фрагментов может заменяться мысленно-наглядным представлением
45
знаков и (или) операций над ними. Эту разновидность знакового моделирования иногда называется мысленным моделированием. Впрочем, этот термин часто применяют для обозначения «интуитивного» моделирование, не использующего никаких чётко фиксированных знаковых систем, а протекающего на уровне «модельных представлений». Такое моделирование есть непременное условие любого познавательного процесса на его начальной стадии. Моделирование используется вместе с другими общенаучными и специальными методами. Моделирование тесно связано с экспериментом. Изучение какого-либо явления на его модели (при предметном, знаковом моделировании, моделировании на ЭВМ) можно рассматривать как особый вид эксперимента: «модельный эксперимент», отличающийся от обычного («прямого») эксперимента тем, что в процесс познания включается «промежуточное звено» — модель, являющаяся одновременно и средством, и объектом экспериментального исследования, заменяющим изучаемый объект. Модельный эксперимент позволяет изучать такие объекты, прямой эксперимент над которыми затруднён, экономически невыгоден, либо вообще невозможен в силу тех или иных причин. Модель системы должна воспроизводить все подлежащие исследованию отношения и связи внутри объекта, касающиеся взаимоотношений всех элементов или выделяемых групп элементов, рассматриваемых в этом случае как подсистемы. При моделировании сложных систем различают случаи, когда подобие устанавливается для всех элементов, влияющих на изучаемые функции, проявляющиеся как во времени, так и в пространстве (полное подобие), и случаи, когда устанавливается подобие только части процессов или изучаемых функций системы (неполное подобие), например, когда изучается изменение параметров процесса только во времени без рассмотрения соответствующих изменений в пространстве. Разновидностью аналоговых моделей являются аналогофизической модели и цифроаналоговые или гибридные модели, объединяющие в одной установке аналоговую и физическую модели, аналоговую модель и элементы ЭВМ или специализированную ЭВМ. Существуют специализированные аналоговые модели, которые могут работать как в действительном, так и измененном масштабе времени и применяться при быстром прогнозировании процессов, существенном для управления энергосистемой. Аналоговое моделирование применяется для расчётов при таких схемах замещения, для которых нет надобности проводить проверку их физической адекватности реальной системе, но необходимо исследовать
46
влияние изменения отдельных параметров элементов и начальных условий процессов в значительном диапазоне. Разработано математическое моделирование на основе планирования экспериментов. Планирование экспериментов связано с выбором числа и условий проведения опытов, необходимых для решения поставленной задачи с требуемой точностью. Методы планирования экспериментов основаны на идеях многомерной математической статики. Использование математической статики вводит в экспериментирование концепцию случая. Это значит, что эффекты, обусловленные многочисленными переменными, рассматриваются как случайные. Эффективность метода планирования исследований тем выше, чем сложнее изученная система. До проведения опытов определяют цель и задачи исследования. При постановке задачи рекомендуется на первых этапах включать в программу исследования все факторы, влияющие на показатель процесса, а затем провести выбор сильно влияющих факторов. Факторы, которые невозможно учесть в эксперименте, следует стабилизировать на постоянных уровнях. Показатель процесса должен быть однозначным, статически эффективным, характеризоваться числами, иметь ясный физический смысл. Качественные факторы должны меть цифровое обозначение. Планирование экспериментов связано с математическим моделированием процессов. Математическое моделирование процессов с помощью метода планирования экспериментов включает в себя в обобщенном виде следующие основные этапы: - установление факторов (независимых переменных), влияющих на показатель процесса, и выявления общих функциональных связей; - выбор величин факторов в натуральных единицах; - построение планов (выбор планов проведения экспериментов); - проведение экспериментов в соответствии с планом; - определение ошибки экспериментов; - вычисление коэффициентов регрессии полинома, связанного с планом и матрицей планирования; - оценка значимости коэффициента регрессии, адекватности и точности математической модели процесса; - построение математической модели. В зависимости от наличия исходной информации применяется планирование и математическое моделирование первого, второго и высших порядков. Если известно, что между показателем процесса и выбранным фактором наблюдаются близкие и линейные зависимости, то применяется планирование и математическое моделирование первого
47
порядка. Но чаще зависимость показателя процесса от выбранных факторов имеет экстремумы, что вынуждает применять более сложные методы планирования второго и высших порядков. При не полном знании механизма изучаемых явлений и оптимизации сложных процессов применяются сначала простые, а затем в случае выявления экстремальных зависимостей более сложные методы планирования и математического моделирования. В практике проведения экспериментов чаще встречаются случаи, когда наблюдаются нелинейные зависимости. Поэтому на основании анализа ортогональных методов планирования экспериментов Черным А. А. разработана оригинальная методика математического моделирования. Она менее трудоемка, чем ранее предложенные, позволяет проще, при меньшем количестве опытов оптимизировать процессы и выявить более точные математические модели при планировании экспериментов на пяти уровнях независимых переменных (факторов) или, в частных случаях, на четырех, трех уровнях независимых переменных. Можно моделировать многофакторные процессы. Разработанные программы для ЭВМ позволяют не только выявлять математические модели, но и выполнять расчеты по моделям, представлять результаты расчетов в виде графиков, делать выводы по оптимизации, прогнозированию процессов, созданию новых разработок на уровне изобретений. ОСОБЕННОСТИ РАБОТЫ НА ПЕРСОНАЛЬНЫХ ЭВМ Работа на ЭВМ обычно проходит в форме диалога человека с компьютером. Человек просматривает информацию на экране компьютера, указывает на нее мышкой, нажимает клавиши, набирает команды, вводит слова, числа, фразы и т.д. В ответ компьютер выводит свою информацию: сообщения, меню, диаграммы, рисунки, результаты вычислений и обработки данных. Работа ЭВМ основана на использовании программ. Программы для ЭВМ – это форма представления данных и команд, предназначенных для получения определенных результатов или способа функционирования ЭВМ. Совокупность программ для данного типа ЭВМ представляет все многообразие их применений. На персональных компьютерах наиболее часто применяются игры, редакторы текстов, базы данных, информационные системы, электронные таблицы, системы программирования и т.д. Главной среди программ на ЭВМ является операционная система, которая постоянно хранится в долговременной памяти компьютера. Работа
48
ЭВМ начинается с загрузки операционной системы, а все остальные программы запускаются с помощью операционной системы. Операционная система – это главная программа, управляющая работой компьютера в целом. На персональных компьютерах типа IBM PC используются в основном операционные системы MS DOS и Windows. В персональных компьютерах Macintosh применяется операционная система ОS/7. Операционная система MS DOS – это самая простая операционная система для компьютеров IBM PC. Она использовалась на младших моделях IBM PC и может применяться на всех старших современных моделях компьютеров этого типа. Операционная система Windows – наиболее современная и удобная операционная система для старших моделей персональных компьютеров IBM PC. Эта система может использоваться только на компьютерах старших моделей с оперативной памятью более 2 Мбайт и памятью на жестких дисках не менее 80 Мбайт. На персональных компьютерах IBM PC используется несколько версий операционной системы Windows, созданных фирмой Microsoft, Windows 3.1, Windows-95, Windows-98 и Windows-2000, отличающихся своими функциями и возможностями. Основными объектами в любых операционных системах на ЭВМ являются файлы, программы и каталоги. Все программы в ЭВМ представляются отдельными файлами или наборами файлов, хранящихся в определенном каталоге. Файлы – это последовательность записей на машинных носителях – магнитных или оптических дисках, магнитных или перфолентах и т.д. Все данные и программы на ЭВМ записываются в виде файлов или наборов файлов. Все файлы в памяти ЭВМ имеют уникальные имена. Совокупность файлов в памяти ЭВМ объединяется в форме каталогов и подкаталогов. Каждый каталог имеет сое уникальное имя. Имя подкаталога образуется из его собственного имени и имени каталога, в котором он находится. Имена каталогов (оглавлений) записываются большими (прописными) буквами, а имена файлов – малыми (строчными) буквами. В операционных системах MS DOS и Windows имена файлов образуются из латинских букв и цифр с добавлением трехбуквенных окончаний после точки. Для записи окончаний в этих операционных системах приняты правила: .exe – программа, готовая к выполнению; .com – программа, готовая к выполнению; .bat – командный файл операционной системы;
49
.txt – текстовый файл; .doc – текстовый файл. Работа с любыми операционными системами – это в основном работа над каталогами файлов и программ, размещенных на магнитных и оптических дисках. Эта работа состоит в просмотре каталогов и подкаталогов, копировании файлов и запуске тех или иных программ. В любой операционной системе работа с ЭВМ происходит в основном с помощью менеджера программ и файлов. Эта программа позволяет человеку в диалоге с компьютером просматривать каталоги программ и файлов во внешней памяти. Запуск программ на персональных ЭВМ обычно проводится перемещением курсора на экране с помощью клавиш-стрелок или Машки на имя программы в каталоге, подлежащей выполнению, а затем – нажатием клавиши ввода Enter на клавиатуре либо нажатием клавиши на мышке. Для установки новых программ на ЭВМ они должны быть предварительно записаны на оптическом или гибких дисках либо получены по электронной почте через Интернет. Для этого диск с новыми программами должен быть установлен в соответствующий дисковод. Для перезаписи программ и файлов необходимо выявить каталог, где они записаны, далее указать или создать каталог, куда они должны быть переписаны и только после этого указать команду «запись» и нажать клавишу Enter либо клавишу на мышке. В любом случае до записи новых программ на жесткие диски необходимо проверить отсутствие вирусов на этих дисках или файлах. При обнаружении вирусов их необходимо удалить с помощью антивирусных программ. Компьютерные вирусы – это специальные саморазмножающиеся программы. Эти программы могут испортить или уничтожить программы и файлы, хранящиеся в памяти компьютера. Заражение компьютерными вирусами происходит при копировании файлов с помощью дискет или при их передаче по сети Интернет. Наиболее опасные вирусы могут испортить или уничтожить всю информацию в ЭВМ или сделать неработоспособным сам компьютер либо даже сеть ЭВМ. Для предотвращения таких последствий предпринимаются специальные меры и используются специальные компьютерные программы. Для защиты от вирусов используются специальные антивирусные программы, которые необходимо устанавливать на ЭВМ и периодически обновлять. Работа антивирусных программ заключается в диагностике и удалении компьютерных вирусов в файлах и программах на ЭВМ.
50
Для надежной работы компьютеров и предотвращения потерь информации на дисках надо придерживаться следующих правил «компьютерной гигиены»: 1) при вводе чужих дисков в свою машину первым делом проверьте их на вирусы; 2) после работы на чужой машине сразу же проверьте свои диски на вирусы; 3) не открывайте файлы, полученные по почте, без проверки их на вирусы; 4) не запускайте программы, полученные по Интернет, без их проверки на вирусы. Для борьбы с компьютерными вирусами постоянно обновляйте свои антивирусные программы. Есть «программисты», создающие компьютерные вирусы. Они постоянно ищут средства для преодоления защиты от вирусов и проникновения в чужие компьютеры, хотя эта деятельность преследуется по закону. Кроме защиты от вирусов на любых ЭВМ может быть предусмотрена также защита от несанкционированного доступа к ЭВМ и хранящимся в них данным. Простейшим средством для этого является введение паролей для доступа к ЭВМ или определенным сегментам ее памяти, а также ограничение доступа к ЭВМ посторонним людям. Подготовка и редактирование текстов – это одно из наиболее частых применений персональных компьютеров. Редакторы текстов на ЭВМ – это специальные программы, позволяющие вводить, искать, редактировать и сохранять различные тексты на ЭВМ. Редакторы текстов на ЭВМ – это наиболее удобное средство для подготовки различного рода документов и создания архивов документов на ЭВМ. Документом считается информация, зафиксированная на материальном носителе, имеющем реквизиты, позволяющие его идентифицировать. К числу реквизитов документа относится фамилия автора (исполнителя) и дата его создания (подписания), а также входящая или исходящая регистрация при размещении его в архивах. На персональных компьютерах IBM PC наибольшее распространение получили редакторы текстов Word и Лексикон. Word – это лучший редактор текстов для операционной системы Windows. Лексикон – это один из лучших редакторов текстов для компьютеров с операционной системой MS DOS. В ЭВМ с накопителями на жестких магнитных дисках могут храниться и редактироваться книги. Одна страница текста, имеющая 30
51
строк по 60 знаков в строке, требует для хранения 1800 байт ≈1,76 Кбайт памяти. Книга из 100 страниц указанного размера занимает около 176 Кбайт на магнитных дисках. Соответственно, на дисках 200 Мбайт может храниться более 100 таких книг. Набор текстов на клавиатуре компьютера проводится так же, как и на пишущих машинках. Но при этом тексты выводятся не на бумагу, а на экран дисплея, на котором и производятся все исправления. Если текст большой, то на экране будет видна только его часть, а весь текст будет храниться в памяти ЭВМ. Значок ⇐ для указания на экране места исправления символа или слова называется курсором. Перемещение курсора по экрану проводится с помощью мышки или клавиш-стрелок. Для исправления букв, слов или фраз курсор подводят к их началу. Исправление в тексте на персональных компьютерах можно вносить неоднократно. Вставка или замена символов и слов проводится набором их на клавиатуре. Удаление символов и слов выполняется нажатием клавиши Del или Bs. Для переключения режима вставка/замена нажимается Ins. Удаление строк и вставка новых строк проводятся выделением их на экране с последующим нажатием клавиши Del. Используя выделение фрагментов текстов на экране компьютера, их можно переносить из одного места текста в другое. Можно выделять их курсивом, подчеркиванием, изменением толщины или вида шрифта. В многооконных редакторах фрагменты можно переносить из одного текста в другой. Для этого на экране одновременно открывается два или более текстов сразу в нескольких окнах. Поиск текстов на магнитных дисках также проводится через основное меню указанием на слово «файл» (file), а затем на режим «открытие» (open). Результатом будет появление оглавления с именами файлов и других каталогов, на которые можно указывать с помощью мышки или клавиш-стрелок. Нажатие клавиши Enter приведет к появлению текста на экране ЭВМ. Запись текстов на диски в редакторах проводят обращением к основному меню, указав на слово «файл» (file). Далее в появившемся на экране подменю нужно указать вид операции – «запись» (write), а затем имя файла, под которым текст записывается на магнитные диски, после чего нажимается клавиша ввода Enter. Во многих редакторах можно создавать сложные тексты, вставляя различные таблицы, диаграммы, рисунки, фотографии. С помощью этих средств можно создавать документы, отчеты, сохраняя их на магнитных дисках и печатая в необходимом количестве экземпляров.
52
Возможности современных текстовых редакторов на персональных ЭВМ таковы, что с их помощью можно выполнять не только редакционную подготовку документов, отчетов, но и издательскую подготовку книг. На ЭВМ можно создавать электронные книги. Копирование распространение электронных книг подчиняется тем же законам авторского права, как и создание, и распространение бумажных книг. Авторские права на произведения состоят в следующем: 1) право на имя – в произведении должно присутствовать имя автора и соответствующий знак «копирайта»; 2) право на изменения – только автор может вносить изменения в произведение в любом его воплощении; 3) имущественные права – автор является собственником произведения и его вариаций; 4) исключительные права – созданное произведение является неотчуждаемой, интеллектуальной собственностью автора. Автором считается лицо, творческим трудом которого создано произведение. Автор имеет право требовать указания своей фамилии на всех экземплярах (копиях) своего произведения. В соответствии с законом об авторских правах только автор может вносить изменения при модификации произведения. Защита прав собственности на произведение фиксируется знаком © (copyriht – права на копирование) с указанием фамилии или псевдонима автора. Включение в произведение знака © означает, что никто не имеет права копировать произведение без заключения письменного договора с его автором (авторами). Согласно российскому и международному праву на электронные книги, учебники, базы данных и программы для ЭВМ распространяются те же авторские права, что и на обычные литературные и научные произведения. Использование программ, без данных, электронных книг и учебников в коммерческих целях возможно только при заключении договоров с владельцами авторских прав. Нарушители авторских прав обязаны возмещать ущерб авторам произведений. Электронные учебники – это компьютерные программы, содержащие учебные тексты и тесты. Тесты – это контрольные вопросы. Тесты в электронных учебниках отличаются тем, что ответы на них могут проверяться ЭВМ непосредственно в диалоге с учащимися.
53
ОПЕРАТОРЫ ЯЗЫКА ПРОГРАММИРОВАНИЯ БЕЙСИК PRINT (печатать) Вывод данных на экран дисплея. Форматы: PRINT [<список выражений>][;] ? [<список выражений>][;] Выражения в списке отделяются друг от друга запятой, точкой с запятой или пробелом (пробелами). Точка с запятой и пробел (пробелы) дают одинаковый результат (между цифрами пробелы не воспринимаются). Если <список выражений> опущен, выводится пустая строка. ? используется как сокращенная запись слова PRINT. DATA (данные) DATA <константа> [,<константа>]… Операторы DATA могут быть размещены в любом месте программы; все данные в DATA – непрерывный список для операторов READ. Типы констант в READ и DATA должны совпадать. READ (читать) Присваивание переменным значений, заданных в операторах DATA. Формат: READ <переменная> [,<переменная>]… Операторы READ читают подряд данные из операторов DATA. RESTORE (восстановить) Переустанавливает список данных, определенных операторами DATA, для повторного или выборочного чтения. Формат: RESTORE [<номер строки>] где <номер строки> - номер строки, содержащий оператор DATA, куда будет обращаться следующий оператор READ. Если номер строки не задан, то следующий оператор READ будет обращаться к первому элементу первого оператора DATA программы. INPUT (ввести) Ввод данных с клавиатуры во время выполнения программы или в командном режиме. Формат: INPUT [;] [«подсказка»;] <переменная> [,<переменная>]… Текст подсказки поясняет, какие данные требуется ввести. При выполнении оператора INPUT на экране появляется ?, и программа ожидает ввода данных с клавиатуры. Если после подсказки использовать <,> вместо <;>, то ? не появляется. Вводимые данные следует разделять на экране запятыми. Тип вводимого элемента данных должен соответствовать типу переменной в перечне INPUT. Строки символов могут не заключаться в кавычки, если они не содержат запятых, начальных или конечных
54
пробелов. Если в ответ на запрос оператора INPUT введено слишком мало или слишком много элементов данных, или не согласуются типы данных, то выдается сообщение об ошибке, после чего необходимо повторить весь ввод. Если требуется единственная переменная, то нажатие клавиши <Enter> без ввода данных на экран (пустой ввод) приводит к тому, что числовая переменная принимает значение 0 , а строковая – пустой строки. Если после слова INPUT стоит <;>, то нажатие клавиши ввода <Enter> не переводит курсор в начало следующей строки. LINE INPUT (ввод строки) Ввод строки символов с клавиатуры. Формат: LINE INPUT [;] [«подсказка»,] <строковая переменная> Оператор LINE INPUT позволяет вводить с клавиатуры строки с любыми символами. Знак ? на экране не появляется Оператор присваивания LET (пусть, допустим) Присваивание переменной значения выражения. Формат: [LET] <переменная> = <выражение> Слово LET обычно опускается. PRINT USING (печать с использованием шаблона) Вывод данных на экран в указанном формате. Формат: PRINT USING <формат>; <список выражений> [;] <Формат> для вывода строки символов может быть одним из следующих: “!” – задает вывод только первого символа строки; “\\” – задает вывод 2+n первых символов строки. Если не указано ни одного пробела (“\\”), то выводятся два символа; “&” – задает вывод всей строки символов. Формат для вывода числа задается с помощью шаблона, который описывает каждую позицию, занимаемую числом в выводимой строке. Шаблон составляется из символов: # - описывает цифровую позицию числа. Цифровая позиция всегда присутствует в выводной строке и может содержать цифру или пробел. Пробелы появляются в крайних левых позициях, если в выводимом числе меньше цифр, чем определено цифровых позиций; . - описывает местоположение десятичной точки в выводном формате числа; + - описывает знаковую позицию числа и может быть первым или последним символом в шаблоне. При выводе числа в эту позицию будет вставлен знак “+” или “-“;
55
^^^^ - определяют экспоненциальный формат представления числа при выводе и могут быть указаны в шаблоне только после цифровых позиций. Если выводимое число не вмещается в поле, определенное шаблоном, перед числом в выводную строку будет вставлен знак “%”. Разделители в конце оператора выполняют ту же роль, что и в операторе PRINT. WRITE (писать) Вывод данных на экран дисплея. Формат: WRITE <список выражений> Выражения в списке отделяются друг от друга запятой или точкой с запятой. Оператор WRITE выполняется аналогично оператору PRINT, но есть отличия: при выводе данные разделяются запятыми; строки символов заключаются в кавычки; перед положительным числом и после чисел не ставится пробел. LPRINT, LPRINT USING Вывод данных на принтер. Форматы: LPRINT [<список выражений>] [;] LPRINT USING <формат>; <список выражений>[;] Операторы аналогичны операторам PRINT и PRINT USING. Оператор MID$ (MIDDL – середина) Замена заданной части строки символов другой строкой. Формат: MID$ (<строковая переменная>, n [,m]) = <строковое выражение> где n = 1…255, m = 0…255. Оператор позволяет выполнить замену указанной подстроки в значении <строковой переменной>. Первые m символов строки, заданной <строковым выражением>, будут замещать m символов в значении <строковой переменной>, начиная с позиции n. Если m опущено, пересылается вся строка. Оператор не изменяет длину <строковой переменной>. SWAP (обмен) Обмен значениями двух переменных. Формат: SWAP <переменная 1>, <переменная 2> В результате выполнения оператора SWAP <переменная 1> получает значение <переменной 2>, а <переменная 2> - значение <переменной 1>. RANDOMIZE (RANDOM – случайный) Переустановка базы генерации случайных чисел. Формат:
56
RANDOMIZE [n] где n – целочисленное выражение, значение которого используется в качестве базы генерации и равно –32768 … +32767. База генерации предназначена для функции RND [(x)], где х – фиктивный параметр. KEY (клавиша) Установка или отображение значений функциональных клавиш F1…F10. Форматы: KEY n, <строка символов> KEY LIST KEY ON KEY OFF Здесь n – номер функциональной клавиши; <строка символов> строковое выражение до 15 символов, значение которого назначается функциональной клавише; LIST – вывод на экран полных значений всех десяти функциональных клавиш; OFF – отменяет вывод на 25-ю строку экрана значений функциональных клавиш, но не отменяет эти значения; ON – выводит на 25-ю строку экрана значения функциональных клавиш. При запуске Бейсика автоматически выполняется оператор KEY ON. Если значение функциональной клавиши заканчивается символом CHR$ (13) (<Enter>), то после нажатия функциональной клавиши нет необходимости нажимать <Enter> - соответствующая команда выполняется сразу. Операторы переадресации управления GOTO (перейти к …) Переход к заданной строке программы (безусловный переход). Формат: GOTO <номер строки> Оператор передает управление строке, номер которой указан в операторе. Если <номер строки> указывает на невыполняемый оператор (REM, DATA), то выполнение программы продолжается с первого последующего выполняемого оператора. Оператор GOTO удобно исполнить также в режиме прямого выполнения команд, например, для запуска программы с заданной строки без потери значений переменных. GOSUB, RETURN (программа … возврат) Переход к программе и возврат из нее. Формат: GOSUB <номер строки> RETURN <номер строки> Оператор GOSUB передает управление заданной подпрограмме, выполнение которой завершается оператором RETURN. По оператору RETURN без <номера строки> осуществляется возврат к оператору,
57
следующему за оператором GOSUB. Вход в подпрограмму возможен в разных точках до оператора RETURN. Подпрограммы могут располагаться в любом месте программы, но следует позаботиться об их обходе оператором GOTO. Вызовы подпрограммы могут быть вложены в другие подпрограммы, причем вложенность ограничена только объемом свободной памяти. ON … GOTO, ON … GOSUB (при … перейти к) Передача управления в зависимости от значения выражения. Форматы: ON <числовое выражение> GOTO <номер строки> … [,<номер строки>]… ON <числовое выражение> GOSUB <номер строки> … [,<номер строки>]… При необходимости <числовое выражение> = 0…255 округляются до целого. Управление передается в ту строку программы, порядковый номер которой в списке оператора равен значению числового выражения. Если, например, L=3, то оператору 50 ON L GOTO 100,150, 300, 480 управление передается строке 300, так как она третья в списке. В операторе ON … GOSUB каждый номер строки должен указывать первую строку подпрограммы. Завершающий подпрограмму оператор RETURN без <номера строки> возвращает управление в последующий за оператором ON … GOSUB оператор программы. Если значение <числового выражения> равно 0 или превышает число указанных в списке номеров строк, управление передается следующему оператору. IF (если) Оператор условного перехода – управление ходом выполнения программы в зависимости от результата выполнения выражения. Форматы: IF <выражение> [,] THEN <фраза> [ELSE <фраза>] (если… тогда… в противном случае…) IF <выражение> [,] GOTO <номер строки> [ [,] ELSE <фраза>] (если… то идти к … в противном случае…) Здесь <фраза> - оператор либо последовательность операторов Бейсика, разделенных двоеточиями, или номер строки, к которой должен быть осуществлен переход. Результат выполнения оператора IF зависит от значения указанного в нем выражения. Если значение <выражения> «истина», то выполняется действие, определенное во <фразе> за THEN, или GOTO. Если значение выражения
58
«ложь», выполняется действие, определенное <фразой> за ELSE. Если ELSE отсутствует, выполняется следующая строка программы (именно следующая строка, а не следующий оператор данной строки; дело в том, что все операторы данной строки подчиняются одному и тому же IF … THEN). Операторы IF могут быть вложенными, при этом каждый ELSE объединяется с ближайшим THEN. Операторы циклов FOR… TO… STEP… NEXT (для… до… с шагом… следующий) Выполнение последовательностей инструкций в цикле. Форматы: FOR<переменная> = x TO y [STEP z] <операторы> … NEXT … [<переменная>] [,<переменная>]… (для … от … до … с шагом … <тело цикла> … следующее значение счетчика или счетчиков) Здесь: <переменная> - имя целочисленной переменной или переменной с простой точностью, которая используется в качестве счетчика цикла; х – числовое выражение, начальное значение счетчика; у – конечное значение счетчика; z – значение шага приращения счетчика: <операторы>, образующие тело цикла, выполняются до встречи с NEXT. После этого счетчик цикла увеличивается на z и полученное значение сравнивается с у. Если счетчик превышает у, то цикл заканчивается и управление передается оператору, следующему за NEXT. В противном случае <операторы> снова выполняются и т.д. Если STEP опущен, то по умолчанию z=1. Когда z<0, счетчик уменьшается при каждом проходе цикла, пока не станет меньшим, чем у. Если условие цикла сразу не выполняется, то цикл пропускается. При z=0 получается бесконечный цикл. Циклы могут быть вложены друг в друга. При этом имена счетчиков должны отличаться. Операторы NEXT для внутренних циклов располагаются раньше операторов NEXT для внешних циклов. Если вложенные циклы заканчиваются в одной точке, они могут быть завершены одним NEXT с перечнем имен счетчиков всех циклов (сначала внутренних, потом внешних через запятые). Переменные в операторе NEXT могут быть опущены, тогда NEXT считается относящимся к ближайшему FOR. Если используются вложенные циклы, то в каждом NEXT должна находиться своя переменная.
59
WHILE и WEND (пока и WHILE END – конец цикла WHILE) Организация цикла с предусловием. Формат: WHILE <числовое выражение>…<тело цикла>… WEND. Здесь <тело цикла> - последовательность операторов Бейсика. Операторы WHILE и WEND организуют циклическое выполнение операторов, входящих в <тело цикла>. Если значение <числового выражения> не равно 0, операторы, заключенные между WHILE и WEND, выполняются и управление снова возвращается к оператору WHILE. Этот процесс повторяется до тех пор, пока <числовое выражение> не примет значение 0. В этом случае выполнение программы продолжается с оператора, следующего за WEND. Допускается использование вложенных циклов WHILE … WEND. Соответствие между операторами WHILE и WEND устанавливается таким образом, что каждому WEND ставится в соответствие ближайший предшествующий ему WHILE, который еще не поставлен в соответствие никакому WEND. Оператор CLS (очистить экран) Стирание экрана. Формат: CLS Вся информация с экрана удаляется, а курсор размещается в левом верхнем углу экрана. Оператор LOCATE (расположить) Управление курсором. Формат: LOCATE [<строка>] [, [<колонка>] [, [<курсор>]]] LOCATE перемещает курсор в заданную позицию экрана <строка>, <колонка> (обычно <строка> = 1…24, <колонка> = 1…80). <Курсор> = 0 или 1. Если <курсор> = 1, то во время выполнения программы курсор виден на экране. Если <курсор> = 0, то курсор невидим. По умолчанию везде используются старые значения. Оператор WIDTH (ширина) Установка ширины выходной строки на дисплее или на принтере. Форматы: WIDTH <ширина строки> (на дисплее для PRINT, LIST и др.) WIDTH LPRINT <ширина строки> (на принтере для LPRINT и LLIST). Здесь <ширина строки> - числовое выражение, которое может принимать значения 40 или 80 (экран) или 1…255 (принтер). Функция SPC Вставка указанного числа пробелов в выводную строку. Формат: SPC (n) где n = 0…255.
60
Функция участвует только в операторах типа PRINT. Функция ТАВ Переход к указанной позиции выводной строки. Формат: TAB (n) где n- номер позиции в строке. Используется только в операторах типа PRINT. Если n меньше текущего номера позиции в строке, осуществляется переход к позиции n в следующей строке. Функция SCREEN Функция символа, находящегося на экране. Формат: SCREEN (<строка>, <столбец>, <режим>) где <строка>, <столбец> - числовые выражения, задающие координаты позиции экрана; <режим> = 0 или 1. Если <режим> = 0, то определяется код символа; если <режим> = 1, то определяется цвет символа и фона. CHAIN (соединять) Загрузка программы в основную память и передача ей управления. Формат: CHAIN [MERGE] <имя файла>[, [<строка>] [, [ALL] [, DELETE <границы>]]] Здесь <имя файла> - загружаемая с диска программа; <строка> номер строки, с которой начинается выполнение программы; <границы> диапазон номеров удаляемых строк программы. Загруженная программа выполняется с указанной или первой строки. Если задан MERGE, то загружаемая программа объединяется с программой, размещенной в памяти (как по команде MERGE). В противном случае новая программа полностью заменяет старую. ALL указывает, что все переменные текущей программы становятся доступными загруженной программе. Если ALL отсутствует, для передачи переменных можно воспользоваться оператором COMMON. COMMON (общий) Передача данных загружаемой программе. Формат: COMMON <переменная> [,<переменная>]… Если передается массив, его имя должно сопровождаться парой круглых скобок. Оператор может быть указан в любом месте программы. В программе может использоваться любое число операторов COMMON, но одна и та же переменная не должна появляться более, чем в одном операторе COMMON. DEF FN (определение функции) Определение функции пользователя. Формат: DEF FN <имя> [(<параметр> [, <параметр>]…)] = <выражение>
61
Здесь <имя> - имя функции, любое допустимое имя переменной, используется для вызова функции; <параметр> - определяет имена параметров, которые получают значения во время вызова функции; тип <выражения> должен соответствовать типу, объявленному именем функции. Параметр, который используется в определении функции, действует только в определении функции. Он не связан с переменными программы, имеющими те же имена. В <выражении>, определяющем функцию, можно использовать переменные, не являющиеся параметрами. Перед вызовом функции необходимо выполнить оператор DEF FN для того, чтобы определить функцию. DEFINT, DEFISNG, DEFDBL, DEFSTR (целый, простой, двойной, строка) Установка способа определения типа переменной по умолчанию. Формат: DIF … <буква> [-<буква>] [, <буква> [-<буква>]]… <Буква> может быть любой буквой латинского алфавита и задает начальную букву имени переменной. Если используется форма <буква> <буква>, то определяется диапазон начальных букв. Операторы объявляют, что переменные, начинающиеся с определенной буквы, будут иметь следующие типы: … INT – целые (%); … SNG – с простой точностью (!); … DBL – с двойной точностью (#); … STR - строковые (символьные, $). Знаки явного определения типа переменной сохраняют свое действие и имеют приоритет над этими операторами. Все переменные без объявленного типа являются по умолчанию переменными с простой точностью. DIM (измерение) Определение массива. Формат: DIM <переменная> (<измерения>) [,<переменная> (<измерения>)]… Здесь <измерения> - список числовых выражений, разделенных запятыми. Каждое выражение определяет границу измерения массива. Значение измерения должно быть положительным числом, целая часть которого определяет границу измерения. Начальное значение элементов числового массива равно 0; элементы символьного массива имеют переменную длину и начальное значение, равное пустой строке. Оператор DIM в программе должен быть обязательно выполнен ранее операций с элементами объявленных в нем массивов.
62
OPTION BASE (базовый режим индексирования) Установка нижней границы индексов массивов. Формат: OPTION BASE n где n=0 или 1. По умолчанию нижняя граница индексов равна 0. Если выполнен оператор OPTION BASE 1, то наименьшее значение индекса становится равным 1. Оператор должен быть выполнен до определения или использования массива. ERASE (стереть) Удаление массивов. Формат: ERASE <имя массива> [, <имя массива>]… В результате выполнения оператора ERASE заданные массивы удаляются. Память, занимаемая массивами, освобождается и может быть использована для других целей. Удаленный массив может быть определен заново с другими границами и размерностью. ON ERROR (при ошибке) Определение подпрограммы обработки ошибок. Формат: ON ERROR GOTO <номер строки> где <номер строки> - номер строки первого оператора подпрограммы обработки ошибок. После выполнения оператора ON ERROR возникновение любой ошибки вызовет передачу управления указанной в операторе подпрограмме. Выход из подпрограммы обработки ошибок осуществляется с помощью оператора RESUME. Чтобы отменить обработку ошибок, необходимо выполнить оператор ON ERROR GOTO 0. После выполнения такого оператора возникновение ошибки вызовет выдачу соответствующего сообщения и прекращение выполнения программы. RESUME (продолжать после перерыва) Возврат из подпрограммы обработки ошибок. Формат: RESUME <номер строки> где <номер строки> - номер строки, начиная с которой будет продолжаться выполнение программы. END (конец) Завершение выполнения программы. Формат: END Оператор END переводит Бейсик на уровень команд. Наличие оператора END в конце программы не обязательно. STOP (остановка) Остановка выполнения программы. Формат: STOP
63
Выполнение программы можно продолжить операторами CONT или GOTO <номер строки> в режиме команд. Невыполняемый оператор REM (комментарий) Вставка в программу комментария. Формат: REM <комментарий> Оператору REM может быть передано управление операторами GOTO и GOSUB. В этом случае выполнение программы продолжается с первого следующего выполняемого оператора. Вместо: REM возможен апостроф’. В текстовом режиме работы дисплея цвет символа и его фона устанавливается оператором COLOR. На экране одновременно могут находиться и участки различного цвета, и разноцветные символы. Формат оператора: COLOR [<передний план>] [, [<фон>] [, <окаймление>]] <передний план> - цвет символов, числовое выражение от 0 до 31; <цвет фона>, от 0 до 7; <окаймление> - цвет фона на краях экрана, от 0 до 7 (некоторые дисплеи на команды, связанные с <окаймлением>, не реагируют). Оператор COLOR <передний план> изменяет только цвет символов; оператор COLOR, <фон> - только цвет фона и т.д. Номера цветов приведены ниже: Ном ер 0 1
Цвет
Номе Цвет Номе р р 4 Красный 8 5 Пурпурный 9
Черный Синий
2
Зеленый
6
3
Голубой
7
Коричневы й Белый
10 11
Цвет Серый Светлосиний Светлозеленый Светлоголубой
Номе Цвет р 12 Розовый 13 Светлопурпурн ый 14 Желтый 15
Яркобелый
Если к этим номерам прибавить 16, то получим мерцающие знаки того же цвета: 3 + 16 = 19 – голубой; 14 + 16 = 30 – желтый и т.п. Файлы произвольного (прямого) доступа В файлах прямого доступа данные организуются таким образом, что доступ к ним может быть осуществлен в любом порядке независимо от того, в какой последовательности данные помещаются в файл. Запись и чтение информации с диска в случае прямого доступа осуществляются отдельными блоками, называемыми записями. Каждая запись имеет свой
64
номер, в соответствии с которым она помещается в файл или извлекается из него. Для создания файла прямого доступа в программу должны быть включены следующие операции: 1) открытие файла (оператор OPEN); 2) распределение памяти для переменных в буфере файла – отделе памяти компьютера (оператор FIELD); 3) пересылка данных в буфер файла (операторы LSET и RSET). При пересылке в буфер числовые величины должны представляться строками знаков. Для этого можно использовать функции MKI$, MKS$ и MKD$; 4) запись данных, находящихся в буфере, на диск (оператор PUT); 5) закрытие файла (оператор CLOSE). Для обработки файла прямого доступа обычно используются операции: 1) открытие файла (OPEN); 2) распределение памяти в буфере (FIELD); 3) считывание нужной записи в буфер (оператор GET); 4) выполнение, если необходимо, обратного преобразования строк в числовые значения с помощью функций CVI, CVS и CVD); 5) закрытие файла (CLOSE). Оператор OPEN (открыть) Подготовка к выполнению операций ввода-вывода. Форматы: OPEN “R”, # <номер файла>, <имя файла> [,<длина записи>] OPEN <имя файла> AS [#] <номер файла> [LEN = <длина записи>] Здесь: <номер файла> - целочисленное выражение от 1 до 3; <длина записи> - числовое выражение, значение которого определяет длину записи в байтах, 1 … 32767; по умолчанию – 128. Если открывается несуществующий файл, то при выполнении оператора OPEN файл будет создан на диске. Оператор FIELD (поле) Распределение памяти для переменных в буфере файла. Формат: FIELD # <номер файла>, <поле> AS <переменная> [,<поле> AS <переменная>]… где <поле> - числовое выражение, задающее длину в байтах поля в буфере файла для соответствующей строковой <переменной>. Длина слова равна числу символов в нем; целое число преобразуется в строку длиной 2 байта; число с простой точностью – 4 байта; число с двойной точностью – 8 байт. Оператор FIELD на помещает данные в буфер файла. Для этого служат операторы LSET и RSET. Он также не ведет обмен между диском и буфером. Это делают операторы GET и PUT. Оператор FIELD только
65
объявляет переменные, для которых будет отведено место в буфере файла. Если переменная, определенная ранее в операторе FIELD, используется в операторе присваивания слева от “=”, то она считается объявленной заново и становится обычной переменной, не связанной с буфером файла. Операторы LSET и RSET (поместить слева и справа) Пересылка данных в буфер файла прямого доступа. Формат: LSET (или RSET) <строковая переменная> = x $ где <строковая переменная> - имя переменной, определенной в операторе FIELD. Операторы LSET и RSET предназначены для пересылки данных в буфер файла при подготовке к выполнению оператора PUT. Строка, определяемая выражением x$, помещается в поле, указанное <строковой переменной>. Если длина строки x$ превышает длину переменной в операторе FIELD, то строка усекается в соответствии с размером переменной. При этом теряются крайние правые символы. Если длина строки меньше длины переменной, то в случае оператора LSET данные прижимаются к левому краю поля, занимаемого переменной, а в случае RSET – к правому. Незанятые позиции в поле переменной заполняется пробелами. Числовые величины для операторов LSET и RSET должны быть представлены строками символов, для чего служат функции MKI$, MKS$ и MKD$. Операторы LSET и RSET также можно использовать для пересылки данных в поле, не определенное в операторе FIELD. Оператор PUT (поместить) Запись из буфера на диск. Формат: PUT # <номер файла> [,<номер записи>] где <номер записи> - целое число от 1 до 32767. Под этим номером запись будет помещена в файл и может быть впоследствии извлечена из него. Если <номер записи> не указан, записи присваивается следующий по порядку номер (относительно последнего оператора PUT). Оператор GET (получить) Считывание с диска в буфер. Формат: GET # <номер файла> [,<номер записи>] Оператор CLOSE (закрыть) Завершает обработку файла (закрывает файл). Формат: CLOSE [#<номер файла> [, #<номер файла>]…] где <номер файла> - целое число, поставленное в соответствие файлу во время его открытия. Выполнение оператора в формате CLOSE закрывает все файлы. После закрытия файла связанный с ним номер может быть использован для открытия другого файла. Функции MKI$, MKS$, MKD$
66
(делать … целый, простой, двойной) Представление величины числового типа строкой знаков. Формат: MKI$ (<целочисленное выражение>) MKS$ (<выражение с простой точностью>) MKD$ (<выражение с двойной точностью>) При пересылке числовых величин в буфер файла прямого доступа с помощью операторов LSET и RSET их значения в памяти ПЭВМ должны рассматриваться Бейсиком как строки символов. Функции MKI$, MKS$ и MKD$ обеспечивают такую интерпретацию значений числовых величин. В отличие от STR$ эти функции не изменяют вид данных в основной памяти. Они изменяют только способ интерпретации этих данных. Функция MKI$ позволяет рассматривать целое число как строку длиной 2 символа, функция MKS$ - число с простой точностью как 4 символа, MKD$ - число с двойной точностью как 8 символов. Функции CVI, CVS, CVD (переделать) Представление строки символов величиной числового типа. Форматы: CVI (<строка-2>) CVS (<строка-4>) CVD (<строка-8>) где <строка-2>, <строка-4>, <строка-8> - строки символов длиной соответственно 2, 4 и 8 байт, полученные в результате выполнения функций MKI$, MKS$ и MKD$. В буфере файла прямого доступа все числовые величины представлены строками символов, полученными в результате выполнения функций MKI$, MKS$ и MKD$. Функции CVI, CVS и CVD выполняют обратное преобразование при извлечении числовых величин из буфера файла. Их применение обязательно, если над числовыми величинами, прочитанными из файла прямого доступа, должны выполняться арифметические операции. Последовательные файлы В последовательном файле данные размещаются в той последовательности, в которой поступают в файл. При чтении такого файла данные становятся доступными в том порядке, в котором они были записаны. Для создания последовательного файла в программу включаются следующие операции: 1) открытие файла (оператор OPEN); 2) запись данных в файл (операторы PRINT#, PRINT#USING, WRITE#); 3) закрытие файла (CLOSE).
67
Программа обработки последовательного файла включает следующие операции: 1) открытие файла (оператор OPEN); 2) чтение данных из файла (операторы INPUT#, LINE INPUT#); 3) закрытие файла (CLOSE). Оператор OPEN Подготовка к выполнению операций ввода-вывода. Форматы: OPEN “O”, #<номер файла>, <имя файла> (для вывода из оперативной памяти ПЭВМ на диск) OPEN “I”, #<номер файла>, <имя файла> (для ввода с диска в оперативную память) OPEN <имя файла> FOR OUTPUT AS #<номер файла> (для вывода из оперативной памяти ПЭВМ на диск) OPEN <имя файла> FOR INPUT AS #<номер файла> (для ввода с диска в оперативную память). Операторы PRINT# и PRINT# USING Вывод данных в последовательный файл. Формат: PRINT # <номер файла>, [USING <формат>;] <список выражений> Оператор WRITE # Вывод данных в последовательный файл. Формат: WRITE # <номер файла>, <список выражений> Символьные величины записываются на диск в кавычках! Оператор INPUT # Чтение данных из последовательного файла. Формат: INPUT # <номер файла>, <переменная> [,<переменная>]… Оператор INPUT # аналогичен оператору INPUT. Оператор LINE INPUT # Чтение строки символов из последовательного файла. Формат: LINE INPUT # <номер файла>, <строковая переменная> Экран графического дисплея представляет собой сумму точек, способных изменять свой цвет. Точки образуют строки (координата Y) и столбцы (координата Х). В левом верхнем углу экрана Х=0, Y=0; в правом нижнем углу экрана Х=Хmax, Y=Ymax. Оператор SCREEN 0 устанавливает текстовый режим работы дисплея; SCREEN 1 – графический режим средней разрешающей способности (цветной экран 200 строк и 320 столбцов точек, Х=0…319, Y=0…199); SCREEN 2 – графический режим высокой разрешающей способности (монохромное изображение, экран 200 строк х 640 столбцов, Х=0…639, Y=0…199). Переходы от режима к режиму:
68
от 0 к 1, от 1 к 2, от 0 к 2 SCREEN 1 SCREEN 2 от 2 к 0, от 2 к 1 SCREEN 0 SCREEN 1 от 1 к 0 SCREEN 2: SCREEN 0 В графическом режиме SCREEN 1 цветом управляет оператор COLOR. Формат: COLOR [<фон>] [, <палитра>] где <фон> - цвет фона, от 0 до 15; <палитра> - номер палитры цветов, 0 или 1. Цвета палитры приведены ниже: Номер цвета 0 1 2 3
Палитра 0
Палитра 1
Фон Зеленый Красный Коричневый
Фон Голубой Пурпурный Белый
Для символов, вводимых с клавиатуры, действует цвет 3. Все эти символы на всем экране окрашены одинаково. PSET, PRESET (отображение точки) Форматы: PSET (x, y) [, <цвет>] PRESET (x, y) [, <цвет>] где х, у – координаты точки; <цвет> =0, 1, 2, 3. Если <цвет> опущен, то в PSET <цвет> = 3, в PRESET <цвет> = 0. LINE (отрезок прямой) Формат: LINE [(x1, y1)] – (x2, y2)] [, [<цвет>] [, [B[F]]]] где (x1, y1) – координаты начальной точки отрезка; если (x1, y1) не заданы, по умолчанию предполагаются координаты последней выводимой точки; (x2, y2) – координаты конечной точки отрезка; <цвет> = 0, 1, 2, 3; В, BF – строить прямоугольник с вершинами в точках (x1, y1) и (x2, y2); BF – окрасить прямоугольник в заданный <цвет>. CIRCLE (окружность) Формат:
69
CIRCLE (x, y), <радиус> [, [<цвет>] [, [<начало>] [, [<конец>] [, <сжатие>]]]] где х, у – координаты центра окружности; <сжатие> - отношение размеров центра окружности по вертикали к размерам по горизонтали; если <сжатие> < 1, то <радиус> направлен по х; если <сжатие> >= 1, то <радиус> направлен по у; <начало>, <конец> - радианная мера дуг в начальной и конечной точках неполной окружности (верхняя полуокружность 0, 3.14, правая полуокружность 4.71, 1.57 и т.д.); если углы отрицательные, то они воспринимаются как положительные, но концы дуги соединяются с центром радиусами. PAINT (раскраска областей экрана) Область образуется замкнутой кривой заданного цвета вокруг заданной точки с координатами х, у. Формат: PAINT (x, y) [, [<трафарет>] [, [<контур>]] где <трафарет> = 0, 1, 2, 3 – цвет раскраски; по умолчанию 3; <контур> цвет ограничивающей кривой; по умолчанию <контур> = <трафарет>. Операторы GET и PUT GET читает информацию о цветах всех точек заданной прямоугольной области экрана и помещает ее в числовой массив. PUT воспроизводит на экране изображение, хранящееся в числовом массиве. Формат оператора GET: GET (х1, у1) – (х2, у2), <имя массива> где (х1, у1), (х2, у2) – координаты вершин прямоугольной области; <имя массива> - числовой массив, где хранится информация. Объем памяти в байтах, отведенный для массива, должен быть не меньше, чем 4+INT((m*A+7)/8*n, где n, m – длины горизонтальной и вертикальной сторон прямоугольника, выраженные числом точек экрана; А=2 при средней разрешающей способности и А=1 при высокой разрешающей способности. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ Язык Паскаль был одним языков, созданных для обучения и получивших популярность, как и новичков, так и в серьёзном программировании. При его создании успешно решена задача сочетания сравнительной простоты языка с потенциальной широтой области его применений. В отличии от своих предшественников (в частности Бейсика) Паскаль допускает разнообразные типы составных объектов: запись упорядоченный набор про именованных объектов произвольных типов; файл - упорядоченный набор однородных данных, размещаемых во внешней памяти; множество - набор элементов одного типа, кодируемых
70
отрезками натурального ряда или произвольными именами. В Паскале имеется оператор варианта, т. е. выбора одной из нескольких альтернативных последовательностей(ветвей) операторов по вычисляемому номеру ветви. Самые популярные системы программирования на языке – Object Pascal, Borland Pascal (Turbo Pascal) и TopSpeed Pascal. На основе Паскаля была разработана одна из наиболее популярных систем быстрой разработки программ (Rapid Application Development, RAD) - визуальная система программирования Воrlаnd Delphi. Программа на Паскаль, также как и в других языках программирования реализует алгоритм решения задачи. Она обьединяет последовательность действий, выполняемых над определенными типами данными с помощью операций, определяемых возможностями языка. Язык Паскаль является универсальным языком, т.е. на нем можно писать вычислительные, графические и системные программы, программы по обработке больших блоков данных(типа СУБД). Программа на Паскаль состоит из строк. Максимальная длина строки – 127 символов. Набор текста программы осуществляется обычно с помощью встроенного редактора текстов системы программирования Turbo Pascal (или другой версии этой системы). Набирая текст программы, программист имеет право произвольно располагать строки на экране. Обязательным является только порядок следования частей программы и правильность их записи. Структура программы: Program <имя>(input,output); -заголовок Uses <имя1,имя2,..>; -список подключаемых библиотечных модулей Label …; -раздел описания меток Const …; - раздел описания констант Type …; - раздел описания типов данных Var …; - раздел описания переменных Procedure <имя>; - описание процедур и запись их операторов <основная часть процедуры>; Function <имя>; - описание функций <основная часть функции>; Begin <основная часть программы > End. Любой раздел, кроме раздела операторов (основная часть программы), может отсутствовать. Раздел операторов в основной программе или подпрограмме всегда начинается зарезервированным словом Begin, далее следуют операторы языка, отделенные “;”. Завершает
71
раздел зарезервированное слово End и точка “.”. В Паскаль конструкция Begin-End называется операторными скобками. Комментарии помещаются в фигурные скобки { }и могут размещаться в любом месте программы. Как и другие языки программирования Паскаль интерпретирует данные как константы или переменные. В программе константы или переменные определяются идентификаторами (именами), по которым к ним можно обращаться для получения текущих значений. Константами называются элементы данных, значения которых установлены в описательной части программы и в процессе выполнения программы не изменяются. Для определения значения констант служит зарезервированное слово Const. Например, Const Max=1000; Str1=’Иванов’; Переменные в отличие от констант могут менять свои значения в процессе выполнения программы. Каждая переменная или константа принадлежат к определенному типу данных. Тип переменных (в отличии от констант) должен быть описан перед тем, как с переменными будут выполняться какие-либо действия. Например, Var I,j:integer; A:array [1..10] of real; Каждый элемент данных относится к одному из конечного множества типов, допустимых для конкретного языка программирования. Тип - это множество значений, которые могут принимать объекты программы, и совокупность операций, допустимых над этими значениями. Все типы данных разделяются на две группы: скалярные (простые) и структурированные (составные). Простые типы данных: - Целочисленные типы (Shortint, Integer, LongInt, Byte, Word) данных представляют собой значения, которые могут использоваться в арифметических выражениях и занимать память от 1 до 4 байт. - Вещественные типы (Single, Real, Double, Extended, Comp) данных представляют собой вещественные значения, которые могут использоваться в арифметических выражениях и занимать память от 4 до 10 байт. (Самый большой объем памяти – 10 байт - занимают данные вещественного типа повышенной точности : Extended). Паскаль допускает представление вещественных значений в виде как с плавающей, так и с фиксированной точкой. - Символьный (char) тип определяется множеством значений кодовой таблицы ASCII. Для переменной символьного типа требуется 1 байт.
72
- Логический тип (Boolean, ByteBool, WordBool, LongBool) представлен двумя значениями: (истина) и (ложь). Он широко применяется в логических выражениях и выражениях отношения. Типы ByteBool, WordBool, LongBool являются нововведением Turbo Pascal 7.0, они были введены для обеспечения совместимости создаваемых программ в Windows. - Указательный тип (Pointer) – значениями переменных и констант данного типа являются адреса оперативной памяти, состоящие из адреса сегмента и смещения В Паскаль существуют типы данных, определяемые пользователем. Это перечислимый тип (когда непосредственно, в разделе описания типов, заранее записываются все значения для переменных этого типа) и интервальный (когда задаются границы диапазона значений для данной переменной), указательный тип (кроме Pointer), структурированные типы и процедурный тип. Перечислимый тип данных задается непосредственно перечислением всех значений, которые может принимать переменная данного типа. При описании отдельные значения указываются через запятую, а весь список заключается в круглые скобки. Например, Var Season: (winter,spring,summer,autum ); Temp: (23,24,25,26); Интервальный тип позволяет задавать две константы,определяющие границы диапазона значений для каждой переменной.Обе константы должны принадлежать одному и тому же стандартному типу (кроме real). Например, Var S:1..30; Сh:’a’..’f’; Указательный типы – их значениями являются адреса памяти. В отличие от стандартного указательного типа Pointer, пользовательский тип определяет множество значений, которые указывают на динамические переменные опеределенного типа , называемого базовым типом. Указатель на какой-либо тип может быть описан до обьявления самого типа: Type PtStack=^Stack; Stack=array[1..40] of real; Процедурный тип позволяет обьявлять переменные, которым допускается присваивание имен процедур, функций и методов, а ткже передавать такие переменные и имена в качестве параметров. Описание процедурных типов имеет такой же синтаксис, как и обьявление процедур и функций: Type Tproc1=procedure (var x,y:real); Tproc2=function ( x:real):real;
73
Составные типы данных определяют упорядоченную совокупность скалярных переменных и характеризуются типом своих компонентов. К структурированным типам данных в Turbo Pascal относят: тип-массив (array), тип-множество (set), тип-запись (record), файловый тип (file), объектный тип (object), строковый тип (string); Строковый тип: Строка- в общем случае это последовательность символов. Строка представляет собой особую форму одномерного массива символов, которая имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании. Строка имеет две разновидности длины: Общую длину строки, которая характеризует размер памяти, выделяемый строке при описании. Текущую длину строки (всегда меньше или равную общей длине), которая показывает количество смысловых символов строки в каждый конкретный момент времени. Для определения данных строкового типа в Turbo Pascal 7.0 введены стандартные типы String и PChar. В строках типа String текущая длина строки указывается в нулевом (то есть имеющем индекс 0) элементе строки. Максимальная текущая длина строки может быть не более 255 символов. Например, Const Adres=’ул.Королева,2’; Type FileName=string[150]; Var St1: FileName; St2,St3:string[10]; В Паскаль существует ряд встроенных процедур и функций для работы со строками типа String: Delete, Str, Val, Insert, Copy, Concat, Length, Pos, UpCase. Тип PChar поддерживает формат представления строк, признаком конца строки которых служит символ с кодом 0 (нуль) и которые называются строками с завершающим нулем, или ASCIIZ-строками. Тип-массив (array): Массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. Элементами массива могут быть данные любого типа, включая структурированный тип. Описывается в виде: Type Имя =array [тип индекса] of тип компонентов; При выполнении программы к каждому элементу массива можно обратиться используя его индекс в массиве.
74
Например, М=array [1..4] of integer; - массив из четырех целых чисел. M[1], M[2], M[3], M[4] – элементы массива М. Тип-множество (set): Множество – набор взаимосвязанных по какому-либо признаку (или группе признаков) элементов, которые можно рассматривать как единое целое. Элементы множества должны принадлежать к одному и тому же типу данных, которые называют базовым типом множества. Type Имя =set of “элемент1,..элементN”; Например, А=set of (3,5,7,11,13) - множество простых чисел. Тип-запись (record): Запись- тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается идентификатором record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля: Type имя = record Например, Mash=record имя поля1: тип компонента; Nomer:integer; имя поля2: тип компонента; Marka:string[20]; … year:integer; end; end; Файловый тип (file): Файлы классифицируются по двум признакам: по типу (логическая структура) и по методу доступа к элементам файла. В Паскале существует три класса файлов по типу – типизированные текстовые, нетипизированные. По методу доступа они делятся на файлы последовательного доступа и прямого доступа. К типизированным файлам относятся файлы строго определенного типа (их иногда рассматривают как последовательность записей определенного типа).Стандартное задание в программе такой файловой переменной осуществляется следующим образом: Type FileRec=record … end; var F:file of FileRec; Текстовый файл рассматривается как последовательность символов, разбитая на строки. Каждая строка завершается символом конца строки. На практике это два символа: перевод строки Chr(13) и возврат каретки Chr(10). Нетипизированный файл рассматривается в Pascal как набор символов или
75
байтов. Представление Char или Byte не играет роли, а важно лишь с точки зрения обьема занимаемого данными. Нетипизированный файл является файлом прямого доступа, что говорит о возможности одновременного использования операций чтения записи. При обьявлении нетипизированного файла указывается только ключевое слово file: Var F: file; Объектный тип (object): Обьект – тип данных ставший основой обьектно-ориентированного программирования на языке Паскаль. Он похож на запись, так как содержит данные различных типов в качестве полей, и отличается тем, что также содержит методы работы с этими данными в рамках обьекта. Методы работы с данными обьекта называются правилами. Например, Type Coordinate=object обьект с именем Coordinate X,Y:byte; X,Y - данные, входящие в обьект Procedure Init(Xinit,Yinit:byte); метод инициализации данных Function GetX:byte; метод получение значения X Function GetY:byte; метод получение значения Y End; Операции: - Для арифметических операций используют обычные знаки +,-,*, /-деление, ^-возведение в степень, div- целочисленное деление, mod- остаток от деления. - Операторы отношений: < - больше,> - меньше,<= - больше или равно, >= - меньше или равно,<> - неравно - Логические отношения :AND (и), OR (или), NOT, XOR (логическое исключающее или). - Конкатенация – ‘+’ (слияние двух строк) - Операции над множествами: +-обьединение, - разность, * пересечение, in- принадлежность,<= является подмножеством, >= является надмножеством, <> неравно. Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга “;” и ограниченную операторными скобками Begin и End. Например, Begin Read (B); A:=B+0.75; Write (A); End;
76
Оператор присваивания предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой расположено в левой части. Например, A:=В+0.5. Оператор безусловного перехода (goto). Применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а другой, отмеченный меткой. Тогда в программе, перед оператором к которому нужно перейти ставится один или несколько символов (метка, которая должна быть описана в разделе описания меток). Процедура чтения Read и Readln обеспечивает ввод данных (чисел, символов, строк и т.д.) в программу во время её работы. Процедура записи Write и Writeln обеспечивает вывод данных (чисел, символов, строк и т.д.) из программы на экран, принтер или во внешний файл. Операторы Readln и Writeln осуществляют соответственно ввод и вывод с пропуском строки. Условные операторы предназначены для изменения порядка выполнения инструкций программы, в соответствии с некоторым условием. 1.Оператор условия IF. Он может принимать одну из следующих форм: - IF условие THEN оператор ; (неполная форма) Условие задаётся переменной и её соотношением с некоторой константой или значением выражения. Если условие выполняется , то будет выполнен указанный оператор. - IF условие THEN оператор1 ELSE оператор2; (полная форма) Добавление к конструкции служебного слова ELSE позволяет выполнить определенные действия в случае, когда условие не выполняются. 2.Операторы цикла используется для повторения группы операторов определенное число раз. - Оператор цикла FOR..DO. FOR переменная цикла:= начальное значениеТОконечное значение DO оператор; Переменная цикла – всегда целого типа, указывает сколько раз должны повторятся операторы. Этот цикл будет повторен фиксированное число раз, причем первый раз с начальным значение переменной цикла, а в последний с конечным её значением. Пример, FOR I:=1 TO 3 DO I:=I+0.5 - Оператор цикла REPEAT..UNTIL (с проверкой условия в конце цикла). Применяется тогда, когда группа операторов должна выполнятся до тех
77
пор, пока не выполнится некоторое условие. REPEAT группа операторов UNTIL условие ; - Оператор цикла WHILE..DO (с проверкой условия в начале цикла). WHILE условие DO группа операторов; Этот оператор выполняется так: проверяется условие, и если оно истинно, то выполняется оператор (или несколько операторов). 3.Оператор выбора case позволяет сделать выбор из произвольного числа вариантов. Для этого используется переключатель, вычисленное значение которого определяет какой из операторов должен быть выполнен. Если ни одно из значений не верно, будет выполнен оператор следующий за служебным словом else. case переключатель of список1:оператор1; список2:оператор2; … else оператор; end; В языке Паскаль для организации подпрограмм используются процедуры и функции. Процедура - независимая часть программы, предназначенная для выполнения определенных действий. Функция аналогична процедуре, но имеет два отличия: она возвращает в программу некоторый результат и может использоваться как часть выражения. Они разделяются на встроенные (стандартные) и пользовательские (создаваемые программистом) процедуры и функции. Встроенные (стандартные) процедуры и функции являются частью языка и могут вызываться по имени без предварительного определения в разделе описаний программы. Процедуры и функции пользователя организовываются самим программистом в соответствии с синтаксисом языка и их предварительное описание (перед использованием) в тексте программы обязательно. Процедуры состоят из группы операторов, реализующих некоторую часть задачи и вызываемых по имени при необходимости в любом месте программы. Procedure <имя> {формальные параметры}; “раздел описаний” Begin <основная часть процедуры– раздел операторов > End; Описание процедуры включает заголовок - <имя> и тело процедуры -<основная часть процедуры>. Заголовок состоит из зарезервированного слова Procedure , идентификатора (имени) процедуры и необязательного
78
списка формальных параметров, с указанием типа каждого параметра. Например, Procedure Korrect; (процедура без формальных параметров) Procedure Sort (a:integer); (а – формальный параметр) Имя процедуры – идентификатор, уникальный в пределах конкретной программы. Тело процедуры представляет собой блок, по структуре аналогичный блоку обычной программы. Раздел операторов всегда начинается зарезервированным словом Begin, далее следуют операторы,отделенные “;”. Завершает раздел зарезервированное слово End и точка “;”. Для обращения к процедуре используется оператор вызова процедуры. Он состоит из идентификатора (имени) процедуры и списка фактических параметров, отделенных друг от друга запятыми и заключенных в скобки. Имя процедуры (список фактических параметров); Функция, определяемая в программе, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово Function, идентификатор (имя) функции и необязательный список формальных параметров с указанием типа каждого параметра а также тип возвращаемого функцией значения: Function имя (формальные параметры): тип результата; Например: Function Prov(x,y,t:integer):integer; Function Logic:boolean; Имя функции - уникальный в пределах программы идентификатор. Возвращаемый результат может иметь любой скалярный тип. Тело функции представляет собой блок, по структуре аналогичный блоку обычной программы: Function имя (формальные параметры):тип результата; раздел описаний begin раздел операторов end; В разделе операторов должен находиться по крайней мере один оператор, присваивающий функции значение. Если таких присваиваний несколько, то результатом выполнения функции будет значение последнего оператора присваивания указанного в теле функции. Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип. Далее приведены примеры программ. Первая программа проверяет принадлежат ли два адреса одному городу и
79
одной улице. Используется переменная типа запись с 4 полями: город, улица, дом, квартира. Program test(input,output); Type adress=record city:array [1..16] of char; street:array [1..16] of char; number:integer; flat:integer; end; Var adr1,adr2:adress; Begin {ввод данных} read(adr1.city,adr1.street, adr2.city,adr2.street); if (adr1.city=adr2.city) and (adr1.street=adr2.street) then write(‘город и улица совпадают’); else(‘город и улица несовпадают’); End. Во второй программе вычисляется наименьшее общее кратное двух чисел А и В. Главная программа описывает массив чисел С, вводит исходные данные ,затем обращается к функции для вычисления НОК(наименьшего общего кратного). Которая вычисляет нужное значение используя формулу: НОК(А,В)=A*B/ HOD(A,B) где, обращается к другой функции вычисления НОД (наибольшего общего делителя). Program test2(input,output); Const N = 5; Var С: array[1..5] of integer; A,B:integer; function HOК (A, В:integer):integer; begin HOK:=A*B/ HOD(A,B); end; function НОD(А, В:integer):integer; var X,Y:integer; begin X:= A; Y: = В;
80
1:IF X = Y THEN HOD:=X; IF X > Y THEN begin X:= X – Y;goto 1; end; IF Y > X THEN begin Y:= Y – X;goto 1; end; end; Begin FOR i= 1 ТО N READ (C[i]); A:= С ([l]) FOR i = 1 TO N–1 begin B:=С[i + 1]; A:= HOK(A,B); end; writeln ("HOK="; A); end.
81
ОСНОВНЫЕ ЭТАПЫ ПОДГОТОВКИ К РЕШЕНИЮ ЗАДАЧ НА ЭВМ Для решения задач на ЭВМ информация подвергается арифметической и логической обработке. Непосредственному решению задач на ЭВМ предшествует подготовительная работа, включающая следующие основные этапы: постановка и математическое описание задачи; выбор метода ее решения; разработка алгоритма решения задачи на ЭВМ и анализ полученных результатов. Вначале осуществляется постановка задачи, подлежащей решению на ЭВМ. На этой стадии определяются состав и характер исходных данных, устанавливаются требуемая форма исходных результатов и условия, которым они должны удовлетворять, выбирается общий подход к решению, осуществляется разбиение задачи на подзадачи, определяется последовательность их решения. Постановка задачи завершается словесным описанием основных характеристик и особенностей решаемой задачи. Затем необходимо дать математическое описание задачи, в результате чего постановка задачи становится формализованной, приобретает четкость и однозначное толкование. За математической постановкой задачи должен быть выбран метод ее решения. Этот метод устанавливает зависимость искомых результатов от исходных данных и реализуется путем разбиения вычислительного процесса на последовательность элементарных арифметических и логических операций, выполняемых в ЭВМ. Современная вычислительная математика располагает большим количеством численных методов для решения различных задач науки и техники. Если же для решения данной конкретной задачи отсутствуют такие методы, то их либо заново разрабатывают, либо несколько упрощают постановку задачи с тем, чтобы можно было воспользоваться известными математическими методами. При выборе численного метода следует учитывать многие факторы, оказывающие влияние на возможность и эффективность его применения. Наиболее важными обычно являются получение требуемой точности решения задачи, а также обеспечение необходимого времени ее решения. Нужно также рассмотреть возможность реализации метода при данных конструктивных особенностях применяемой ЭВМ (емкость памяти, быстродействие). Для сокращения машинного времени решения задачи необходимо, чтобы выбранный численный метод обеспечивал выполнение наименьшего числа операций, что соответственно уменьшает число
82
команд в программе и ускоряет ее выполнение. При этом надо не только стремиться к уменьшению числа выполняемых операций, но и учитывать время выполнения каждой операции в отдельности. При выборе численного метода следует также по возможности уменьшить количество промежуточных результатов, которые необходимо сохранять при переходе от одного этапа вычислений к другому. Хранение большого количества промежуточных результатов потребует соответствующей емкости памяти ЭВМ. По этой же причине целесообразно уменьшить число констант, используемых в процессе вычислений. Численный метод должен обеспечить решение задачи с погрешностью, не превышающей допустимую. Окончательный выбор численного метода должен определяться конкретными требованиями, вытекающими из общей постановки задачи. С учетом этих требований для каждой задачи отыскивается наиболее рациональный способ решения. При оформлении задания ЭВМ возникает необходимость в точном и полном описании вычислительного процесса или любой иной последовательности действий, выполняемых на ЭВМ. Такое описание задается алгоритмом решения данной задачи. Поиск, разработка и описание алгоритма решения задачи называется алгоритмизацией. Алгоритм – это точное предписание, определяющее последовательность элементарных операций над исходными данными, выполнение которых обеспечивает решение задачи. Алгоритм определяет необходимую последовательность действий, выполняемых на ЭВМ. Ошибки, допущенные при разработке алгоритма, искажают ход вычислительного процесса и, следовательно, приводят к неверному результату. Алгоритму присущи следующие основные свойства: определенность, массовость и результативность. Свойство определенности характеризует однозначность толкования указаний алгоритма. Алгоритм строго определяет необходимую последовательность выполняемых действий. Благодаря определенности процесс реализации алгоритма не зависит от конкретного вычислителя и может носить чисто механический характер. Свойство массовости означает применимость данного алгоритма к любым допустимым значениям начальных данных. Свойство результативности алгоритма заключается в возможности получения искомого результата для допустимых значений начальных данных за конечное число достаточно простых шагов. Существуют различные способы описания алгоритмов. Для этой цели можно использовать, например, естественный язык, включающий и
83
язык математики. Запись алгоритма на таком языке должна быть однозначно воспринята в виде последовательности действий, приводящих к получению искомого результата. Словесное описание алгоритма неприемлемо для ввода в вычислительную машину. Для этого необходимо изложить алгоритм на машинном языке таким образом, чтобы с его помощью происходило автоматическое управление работой ЭВМ в процессе решения данной задачи. Алгоритм, записанный в форме, воспринимаемой машиной, представляет собой программу решения задачи. Обычно алгоритм разрабатывается в несколько приемов, причем иногда приходится неоднократно возвращаться для исправления ошибок, уточнения и детализации структуры алгоритма. Наиболее удобным способом записи алгоритма на первых этапах его разработки является структурная схема алгоритма. Структурная схема алгоритма представляет собой графическое изображение последовательности действий при реализации данного алгоритма. Этапы решения задачи представляются в структурной схеме отдельными блоками, которые изображаются соответствующими символами и т.д. Внутри символов структурной схемы указывается содержание соответствующих этапов вычислений. Символы структурной схемы соединяются стрелками, показывающими направление развития вычислительного процесса. Иногда около стрелок делают надписи, указывающие на то, при каких условиях происходит выбор данного направления. Для сложных задач целесообразно сначала разработать укрупненную структурную схему алгоритма, а затем детализировать более подробно ее отдельные блоки. Практически любой сложный алгоритм обычно строится из комбинации трех базовых структур: линейной, разветвляющейся и циклической. Линейная базовая структура, называемая также следованием, состоит из простой последовательности действий, которые выполняются только один раз в порядке их следования. Разветвляющаяся структура, называемая также развилкой, обычно содержит блок проверки некоторого логического условия. В зависимости от результата проверки выполняется та или иная последовательность действий, выполняемых многократно. Такая структура обычно содержит несколько типовых блоков. Основной блок, называемый телом цикла, производит требуемые вычисления. Остальные блоки имеют вспомогательное значение, они устанавливают начальные и новые
84
значения данных, проверяют условия окончания циклического процесса и т.д. Следующим этапом подготовки задач к решению на ЭВМ является программирование. На этом этапе составляется и вводится в память ЭВМ программа, состоящая из отдельных команд и определяющая последовательность выполняемых операций. Программирование завершает формализованное описание выбранного метода и разработанного для него алгоритма решения задачи. Такое описание выполняется на языке программирования. Современный алгоритмический язык существенно отличается от внутреннего машинного языка конкретной ЭВМ. Поэтому программа, составленная на алгоритмическом языке, не может быть непосредственно воспринята ЭВМ. Для этого необходимо перевести программу с алгоритмического языка на машинный язык данной ЭВМ. Такой перевод осуществляется самой машиной с помощью специальной программы. Важным этапом в процессе подготовки и решения задачи на ЭВМ является отладка программы, в ходе которой обнаруживаются и устраняются ошибки, допущенные в процессе программирования. После устранения ошибок, обнаруженных при автономной отладке, проводят комплексную отладку всей программы. При этом выполняют для нескольких примеров так называемые контрольные расчеты, при которых все части отлаживаемой программы работают совместно. В процессе комплексной отладки не только окончательно устраняются допущенные ошибки, но совершенствуется программа в целом. На завершающем этапе производится решение задачи на ЭВМ и анализ полученных результатов.
85
ПРОГРАММА МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ НА ЯЗЫКЕ БЕЙСИК 10 REM ПРОГРАММА G5,РАЗРАБОТКА ЧЕРНОГО А. А. 20 DIM F(50),H(50),L(50),Y(27),I(50),K(50),M(50),P(50) 30 DIM Q(50),U(50),V(50),О(27), В(27),Z(50), G(20), T(27) 35 DIM K6(50),K7(50),K8(50)J7(50),J8(50),J9(50) 40 PRINT"X=9" 42 J=0: X=0: F3=0: F4=0: H3=0: H4=0: L3=0: L4=0: K3=0: K4=0 44 K5=0: K6=0: K7=0: K8=0: K0=0: X0=0: Y0=0 46 J5=0:J6=0:J7=0:J8=0:J9=0:S=0 50 PRINT"IF X=0 GOTO 6830":PRINT:PRINT"ВВОД X" 60 INPUT X:PRINT"X=";X 61 РRINT"ВВОД ВЕЛИЧИН ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 62 FOR J=l TO X:F(J)=0:H(J)=0:L(J)=0:Z(J)=0:K5(J)=0 64 K6(J)=0:K7(J)=0:K8(J)=0:J7(J)=0:J8(J)=0:J(9)=0:NEXT J 110 IF X=0 GOTO 6830 120 PRINT "ВВОД A1 El, B1,J1,O1": INPUT A1,E1,B1,J1,O1 130 PRINT A1;E1;B1;J1;O1:A=A1:B=B1:E=E1:N=J1:R=O1 140 GOSUB 3660: V1=V0:U1=U0:Q1=Q0: PRINT V1;U1;Q1 350 PRINT "ВВОД A2,E2,B2,J2,O2": INPUT A2, E2, B2, J2, O2 360 PRINT A2;E2;B2;J2;O2:A=A2:B=B2:E=E2:N=J2:R=O2 370 GOSUB 3660: V2=V0:U2=U0:Q2=Q0: PRINT V2;U2;Q2 620 F(1)=A1:H(1)=A2:F(2)=B1:H(2)=A2:F(3)=A1:H(3)=B2 630 F(4)=B1:H(4)=B2:F(5)=A1:H(5)=E2:F(6)=B1:H(6)=E2 640 F(7)=E1:H(7)=A2:F(8)=E1:H(8)=B2:F(9)=E1:H(9)=E2 1130 PRINT "IF I0=6 GOTO 40":PRINT "IF I0=7 GOTO 1160" 1140 INPUT I0:IF I0=6 GOTO 40 1150 IF I0=7 GOTO 1160 1160 FOR J=l TO X:PRINT "ВВОД Y(":J:")": INPUT Y(J) 1170 PRINT"Y(":J;")="; Y(J): NEXT J 1180 PRINT "IF I0=1 GOTO 1160":PRINT "IF I0=2 GOTO 1210" 1190 PRINT "ВВОД I0":INPUT I0:IF I0=1 GOTO 1160 1200 IF I0=2 GOTO 1210 1210 GOTO 1340 1340 GOSUB 4150:GOSUB 4170 1410 S=0:O(1)=0:FOR J=l TO X:S=S+Y(J):O(1)=O(1)+1:NEXT J 1420 B(1)=S/O(1):S=0:O(2)=0:FOR J=l TO X:S=S+I(J)×Y(J) 1430 O(2)=O(2)+I(J)^2:NEXT J:B(2)=S/O(2):S=0:O(3)=0 1440 FOR J=l TO X:S=S+K(J) ×Y(J):O(3)=O(3)+K(J)^2:NEXT J 1450 B(3)=S/O(3) 1480 S=0:O(4)=0:FOR J=l TO X:S=S+P(J)xY(J) 1490 O(4)=O(4)+P(J)^2:NEXT J:B(4)=S/O(4):S=0:O(5)=0 1500 FOR J=l TO X:S=S+I(J)×P(J) ×Y(J):O(5)=O(5)+(I(J) ×P(J))^2 1510 NEXT J:B(5)=S/O(5):S=0:O(6)=0:FOR J=l TO X 1520 S=S+Q(J) ×Y(J):O(6)=0(6)+Q(J) ×2:NEXT J:B(6)=S/O(6) 1530 S=0:O(7)=0:FOR J=l TO X:S=S+I(J) ×Q(J) ×Y(J) 1540 О(7)=О(7)+(I(J) ×Q(J))^2:NЕХТ J:B(7)=S/O(7):S=0 1550 O(8)=0:FOR J=l TO X:S=S+P(J) × K(J) ×Y(J)
86
1560 O(8)=O(8)+(P(J) ×K(J))^2:NEXT J:B(8)=S/O(8):S=0:O(9)=0 1570 FOR J=l TO X:S=S+K(J) ×Q(J) ×Y(J):O(9)=O(9)+(K(J) ×Q(J))^2 1580 NEXT J:B(9)=S/0(9) 2390 PRINT "B(J) ДО АНАЛИЗА": FOR J=l TO X:PRINT"B(";J;")=";B(J) 2400 NEXT J:PRINT:PRINT "ВВОД N0":INPUT N0 2410 PRINT "N0=";N0 2540 GOSUB 4450 2610 PRINT "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ Z(J) ДО АНАЛИЗА B(J)" 2620 FOR J=l TO X:PRINT"Z(";J;")=";Z(J):NEXT J 2630 PRINT "ВВОД F8=N0-1":INPUT F8:PRINT "F8=":F8 2640 PRINT "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-ZCJ)" 2650 FOR J=l TO X: PRINT Y(J) - Z(J);:NEXT J 2660 PRINT "IF I0=3 GOTO 2720":PRINT "IF I0=4 GOTO 2770" 2670 PRINT "IF I0=5 GOTO 3240":PRINT "IF I0=6 GOTO 40" 2677 PRINT "IF I0=20 GOTO 6830":PRINT "IF I0=25 GOTO 4880" 2678 PRINT "IF I0=27 GOTO 7000" 2680 PRINT "ВВОД I0":INPUT I0:IF I0=3 GOTO 2720 2690 IF I0=4 GOTO 2770 2700 IF I0=5 GOTO 3240 2710 IF I0=6 GOTO 40 2715 IF I0=20 GOTO 6830 2717 IF I0=25 GOTO 4880 2718 IF I0=27 GOTO 7000 2720 FOR J=l TO NO:PRINT "ВВОД G(":J:")":INPUT G(J) 2730 PRINT"G(";J:")=":G(J):NEXT J:S=0:FOR J=l TO N0:S=S+G(J) 2740 NEXT J:SO=S/N0: PRINT "S0=";S0:S=0:FOR J=l TO N0 2750 S=S+G(J) - S0)^2:NEXT J:U9=S/F8:PRINT "U9=";U9 2760 GOTO 2780 2770 PRINT "ВВОД U9":INPUT U9:PRINT "U9=":U9 2780 PRINT "РАСЧЕТНЫЕ ВЕЛИЧИНЫ T(J)":FOR J=l TO X 2790 T(J)=ABS(B(J)/SQR(U9/O(J))):PRINT"T(":J;")=";T(J):NEXT J 2800 PRINT "ВВОД TO":INPUT TO:PRINT "TO=":TO 2810 PRINT "B(J) ПОСЛЕ АНАЛИЗА":FOR J=l TO X 2820 IF T(J) < TO GOTO 2840 2830 IF T(J) >= TO GOTO 2850 2840 B(J)=0 2850 PRINT"B(";J:")=":B(J):NEXT J 2860 K9=0:FOR J=l TO X: IF B(J)=0 GOTO 2880 2870 K9=K9+1 2880 NEXT J:PRINT:PRINT "K9=":K9 2890 PRINT "F9=X-1":F9=X-1: PRINT "F9=":F9 2900 PRINT "ВВОД ТАБЛИЧНОГО F7":INPUT F7:PRINT "F7=";F7 2940 IF X=9 GOTO 3040 3040 GOSUB 4450 3110 PRINT "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ Z(J) ПОСЛЕ АНАЛИЗА B(J)" 3120 FOR J=l TO X:PRINT"Z(":J:")=";Z(J): NEXT J 3130 S=0:FOR J=l TO X:S=S+(Z(J) - Y(J))^2:NEXT J 3140 PRINT "РАСЧЕТНЫЙ F6":F6=S/(F9×U9):PRINT "F6=";F6 3150 IF F6 <= F7 GOTO 3170 3160 IF F6 > F7 GOTO 3180
87
3170 PRINT "АДЕКВАТНО":GOTO 3190 3180 PRINT "НЕАДЕКВАТНО" 3190 PRINT "IF I0=7 GOTO 3240":PRINT "IF I0=8 GOTO 40" 3197 PRINT "IF I0=17 GOTO 4880":PRINT "IF I0=22 GOTO 7000" 3200 PRINT "IF I0=9 GOTO 6830":PRINT "ВВОД I0":INPUT I0 3210 IF I0=7 GOTO 3240 3220 IF I0=8 GOTO 40 3227 IF I0=17 GOTO 4880 2228 IF I0=22 GOTO 7000 3230 IF I0=9 GOTO 6830 3240 PRINT "ПРОВЕРКА ТОЧНОСТИ И РАСЧЕТЫ ПО МОДЕЛИ" 3280 IF X=9 GOTO 3420 3420 FOR S=1 TO X:F(S)=0:H(S)=0:Z(S)=0 3430 PRINT "ВВОД F(":S;"),Н(";S;")":INPUT F(S),H(S) 3432 PRINT"F(";S;")=";F(S);"H(";S;")=":H(S) 3500 GOSUB 4150:GOSUB 4170:GOSUB 4450 3552 PRINT"Z(";S;")=";X(S):NEXT S:GOTO 3610 3610 PRINT"IF I0=10 GOTO 3240":PRINT"IF I0=11 GOTO 40" 3612 PRINT"IF I0=14 GOTO 7000" 3620 PRINF”IF I0=12 GOTO 6830":PRINT"ВВОД I0":INPUT I0 3630 IF I0=10 GOTO 3240 3640 IF I0=11 GOTO 40 3650 IF I0=12 GOTO 6830 3653 IF I0=14 GOTO 7000 3660 N0=(A^N+B^N+E^N)/3:R0= (A^R+B^R+E^R) /3 3670 L2=2×N: N3=(A^+B^+E^L2) /3: N4=N+R 3680 N5=(A^N4+B^N4+E^N4)/3:V0=-N0 3690 U0=(N0×R0 - N5)/(N3 - N0^2):Q0=-(R0+U0×N0) 3700 PRINT "КОЭФФИЦИЕНТЫ ОРТОГОНАЛИЗАЦИИ": RETURN 4150 FOR J=l TO X:I(J)=F(J)^Jl+Vl 4160 K(J)=F(J)^01+Ul^F(J)^Jl+Ql:NEXT J: RETURN 4170 FOR J=l TO X:P(J)=H(J)^2+V2 4180 Q(J) = H(J)^02+U2×H(J)^J2+Q2:NEXT J:RETURN 4450 FOR J=l TO X:N3=B(l)+B(2) ×I(J)+B(3) ×K(J)+B(4) × P(J) 4460 N4=B(5) × I(J) × P(J)+B(6) × Q(J)+B(7) × I(J) × Q(J) 4880 РRINT “ МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 4930 PRINT "Z(J)=";B(l);"+";B(2);" × I(J)+";B(3);" × K(J)+" 4940 PRINT "+";B(4);" × P(J)+";B(5);" ×I(J) × P(J)+" 4950 PRINT "+";B(6);" ×Q(J)+";B(7);" × I(J) × Q(J)+" 4960 PRINT "+";B(8);" × P(J) × K(J)+";B(9);" × K(J) × Q(J)," 5110 PRINT "ГДЕ" 5120 PRINT "I(J)=F(J)^";J1;"+";V1;";" 5130 PRINT "K(J)=F(J)^";01;"+";Ul;" × F(J)^";Jl;"+";Ql 5150 PRINT "Р(J)=Н(J)^”;J2;”+”;V2;”;” 5160 PRINT "Q(J)=H(J)^";O2;"+";U2;" ×H(J)^";J2;"+";Q2 6790 PRINT "IF I0=18 GOTO 2660":PRINT "IF I0=19 GOTO 3190" 6793 PRINT "IF I0=35 GOTO 1160":PRINT "IF I0=44 GOTO 6830" 6796 PRINT "IF I0=50 GOTO 40":PRINT "IF I0=51 GOTO 3240" 6797 PRINT "IF I0=52 GOTO 7000" 6800 PRINT "ВВОД I0":INPUT I0
88
6810 IF I0=18 GOTO 2660 6820 IF I0=19 GOTO 3190 6823 IF I0=35 GOTO 1160 6825 IF I0=44 GOTO 6830 6827 IF I0=50 GOTO 40 6828 IF I0=51 GOTO 3240 6829 IF I0=52 GOTO 7000 6830 STOP 7000 PRINT "ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 7004 PRINT "ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 7005 PRINT "С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ" 7006 PRINT ”И ПОСТРОЕНИЕ ГРАФИКОВ" 7020 PRINT "ВВОД I0=62 ПРИ Х=9" 7040 PRINT "IF I0=64 GOTO 40" 7050 PRINT "IF I0=65 GOTO 6830" 7060 INPUT I0 7080 IF I0=62 GOTO 7360 7100 IF I0=64 GOTO 40 7110 IF I0=65 GOTO 6830 7360 X=0:F3=0:K5=0:K6=0:F4=0:H3=0:H4=0: PRINT "F(1)=F3+F4" 7370 PRINT “F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА" 7380 PRINT "H(1)=H3+H4" 7390 PRINT "Н4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА" 7400 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X, F3,F4,НЗ,Н4" 7410 INPUT X, F3, F4, НЗ, Н4: К5=0:К6=0: PRINT "X=";X;"F3=":F3;"F4=";F4 7420 PRINT "H3=";H3;"H4=";H4 7430 FOR K5=l TO X:F(K5)=F3+K5×F4: PRINT "F(";K5;")= ";F(K5) 7440 Н(К5)=НЗ+К5×Н4:PRINT "Н(";К5;")= ";Н(К5) 7510 GOSUB 4150:GOSUB 4170:GOSUB 4450 7570 PRINT "Z(";K5;")=";Z(K5) 7575 NEXT K5:GOTO 8000 8000 PRINT "ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5)":K8=0:K8=Z(1) 8002 РRINT “ВВОД I0=90" 8004 INPUT I0 8010 FOR K5=l TO X 8020 IF Z(K5) >= K8 THEN K8=Z(K5) 8040 NEXT K5:PRINT"MAX Z(K5)=";K8 8041 FOR K5=l TO X 8042 IF Z(K5)=K8 THEN PRINT'MAX Z(";K5;")=";Z(K5) 8044 NEXT K5 8050 K7=0:K7=Z(1) 8060 FOR K5=l TO X 8070 IF Z(K5) <= K7 THEN K7=Z(K5) 8090 NEXT K5:PRINT"MIN Z(K5)=";K7 8091 FOR K5=l TO X 8092 IF Z(K5)=K7 THEN PRINT'MIN Z(";K5;")=";Z(K5) 8094 NEXT K5:K6=0 8095 FOR K5=l TO X:K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8)) 8096 PRINT"K6(";K5;")=";K6(K5):NEXT K5 8098 J5=0: J5=ABS(K7)/(ABS(K7)+ABS(K8)): PRINT" J5="; J5
89
8110 PRINT “IF I0=70 GOTO 7000":PRINT "IF I0=80 GOTO 9000" 8120 INPUT I0 8125 IF I0=70 GOTO 7000 8130 IF I0=80 GOTO 9000 9000 К0=0: К3=0: К4=0: К4=Х: К7=0: К8=0: Х0=0: Y0=0 9010 PRINT “ПOCTPOEHИE ГРАФИКА" 9015 PRINT "ЗАВИСИМОСТЬ K6(K5) ОТ ФАКТОРА" 9020 РRINТ "К6(К5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 9025 PRINT "K5-HOMEP ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ" 9030 РRINT “ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ " 9035 PRINT “BBOД Х0, Y0, K0, K3" 9040 РRINT “ПРЕДПОЧТИТЕЛЬНО Х0=20, Y0=180" 9045 INPUT Х0, Y0, K0, KЗ 9050 PRINT "X0=";Х0;"Y0=";Y0;"K0=";К0; "К3="; КЗ 9053 KEY OFF:CLS 9055 SCREEN 1:COLOR 0,0 9056 FOR K5=l TO K4:K7(K5)=K5×K0:K8(K5)=K3×K6(K5) 9057 LINE (K7(K5)-X0,Y0)-(K7(K5)-X0,Y0-K8(K5)):NEXT K5 9059 J6=0: J6=X-1: J7=0: J8=0: J9=0: K7=0: K8=0: J9=K3×J5 9060 FOR K5=l TO J6:K7(K5)=K5×K0:K8(K5)=K3×K6(K5) 9061 J7(K5)=(K5+1) ×K0: J8( K5)=K3×K6(K5+1) 9062 LINE (K7(K5)-X0,Y0)-(J7(K5)-X0, Y0) 9063 LINE (K7(K5)-X0,Y0-J9)-(J7(K5)-X0, Y0-J9) 9065 LINE (K7(K5)-X0,Y0-К8(К5))-(J7(K5)-X0, Y0-J8(К5)):NEXT K5 9071 A$=” ” 9072 A$=INKEY$:IF A$=” ” THEN 9072 9073 SCREEN 2:CLS 9074 PRINT ”ВВОД I0=75 GOTO 9000, I0=85 GOTO 7000, I0=95 GOTO 6830” 9075 INPUT I0 9080 IF I0=75 GOTO 9000 9090 IF I0=85 GOTO 7000 9095 IF I0=95 DOTO 6830
90
ВЫЯВЛЕНИЕ МАТЕМАТИЧЕСКОЙ МОДЕЛИ ГАЗОДИНАМИЧЕСКОГО ПРОЦЕССА В ШАХТЕ ГАЗОВОЙ ВАГРАНКИ Исходные данные для математического моделирования За основу для математического моделирования приняты результаты экспериментального исследования движения потоков в моделях вагранок с цилиндрической формой шахты и типа доменной (в виде системы цилиндров и усеченных конусов). Экспериментально выявлено, что при переходе от цилиндрической формы шахты к более сложной типа доменной (в виде цилиндра в нижней и верхней частях, обратного и прямого усеченных конусов между цилиндрическими частями) по мере расширения шахты в зоне плавления при постоянных размерах цилиндрических входных и выходных участков шахты глубина проникновения движущихся потоков в поперечных сечениях по направлению к центральной осевой линии шахты увеличивается, что объясняется удлинением в этих случаях пути движения потоков у стенок шахты, повышением у них сопротивления движению. Исходные данные для математического моделирования по программе G 5 следующие: Х=9; Al=l; El=l,333; Bl=l,77; J1=1; O1=2; A2=1,911; Е2=3,133; В2=6,267; J2=l; О2=2; N0=4; F8=3; V9=0,0001; T0=3,182; F7=8,84; Y(l) =0,583; Y(2)=l; Y(3)=0,2; Y(4)=0,75; Y(5)=0,25; Y(6)=0,917; Y(7)=0,917; Y(8)=0,417; Y(9)=0,792, где Х - количество опытов по плану проведения экспериментов; 90 120 160 А1 = = 1; Е1 = = 1,333; В1 = = 1,778 . 90 90 90 Величины первого фактора (отношение величины диаметра шахты в зоне плавления dп к величине диаметра поперечного сечения шахты в зоне расположения горелок d0: А1, Е1, В1 - соответственно для случаев цилиндрической шахты 1, доменного типа 3 и 4; J1, O1 показатели степени первого фактора в уравнении регрессии; А2, Е2, В2 величины второго фактора (относительные величины расположения по высоте от базового сечения поперечных сечений шахты): 86 86 141 282 A2 = = = 1,911; E 2 = = 3,133; В2 = = 6,267 ; 0,5 ⋅ d 0 45 45 45 J2, О2 - показатели степени второго фактора в уравнении регрессии; N0 - количество опытов на среднем уровне факторов; F8=N0-1; V9-дисперсия опытов; Т0 - табличный t-критерий; F7 - табличный F -
91
критерий; Y(l)...Y(9) - величины показателя (относительная глубина проникновения движущихся потоков в поперечных сечениях по h ). направлению к центральной осевой линии шахты 0,5 ⋅ d o При Х=9 следует выполнить расчеты соответственно первого и второго факторов
при
величинах
F(l)=l; Hl=2,5; F(2)=l; H(2)=4; F(3)=l; H(3)=5; F(4)=1.333; Н(4)=2,5; F(5)=l,333; Н(5)=4; F(6)=l,333; Н(6)=5; F(7)=l,778; Н(7)=2,5; F(8)=1,778; Н(8)=4; F(9)=l,778; H(9)=5. 1) X =10; F3=l; F4=0,0778; H3=l,911; H4=0; 2) X=10; F3=l; F4=0,0778; H3=3,133; H4=0; 3) X=10; F3=l; F4=0,0778; H3=6,267; H4=0; 4) X=10; F3=l; F4=0; H3=l,911; H4=0,4356; 5) X=10; F3=l,333; H4-0; H3=l,911; H4=0.4356; 6) X=10; F3=l,778; F4=0; H3=l,911; H4=0,4356; 7) X=10; F3=l,55; F4=0; H3=1,911; H4=0,4356. Выполнение программы математического моделирования ФАЙЛ: gn3-l.MOD ДАТА: 12-04-1997 РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ GGN3, РАЗРАБОТАННОЙ ЧЕРНЫМ АА. КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ Х=9 ВЕЛИЧИНЫ ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ А1=1 Е1= 1.333 В1= 1.778 J1=1 O1=2 КОЭФФИЦИЕНТЫ ОРТОГОНАЛИЗАЦИИ Vl=-1.370333 Ul=-2.796153 Q1= 1.85227 A2= 1.911 E2= 3.133 B2= 6.267 J2= 1 O2= 2 КОЭФФИЦИЕНТЫ ОРТОГОНАЛИЗАЦИИ V2=-3.770333 U2=-8.419744 02= 14.16428 ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ Y(J) Y(1)= .583 Y(2)=l Y(3)=.2 Y(4)=.75 Y(5)=.25 Y(6)=.917 Y(7)=.917
92
Y(8)=.417 Y(9)=.792 B(J) ДО АНАЛИЗА B(1)= .6473333040873209 В(2)= .6840115120274242 В(3)=-.8853978371999827 В(4)=-. 0820048632696572 В(5)= 2.803843686845988D-02 В(6)= 1.942284289515117D-02 В(7)=-6.659157487728702D-02 B(8)= .3332551441432058 В(9)= .263934877556022 N0-КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ N0=4 РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ Z(J) ДО АНАЛИЗА B(J) Z(I)= .5830005 Z(2)= .9999992 Z(3)=.200001 Z(4)= .7500007 Z(5)= .2500025 Z(6)= .9170004 Z(7)= .9169989 Z(8)= .416998 Z(9)= .791999 F8=N0-l= 3 ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J) Y(1)-Z(1)=-4.768372E-07 Y(2)-Z(2)=8.34465E-07 Y(3)-Z(3)=-1.013279Е-0б Y(4)-Z(4)=-6.556511E-07 Y(5)-Z(5)=-2.503395Е-06 Y(6)-Z(6)=-3.576279E-07 Y(7)-Z(7)= 1.072884E-06 Y(8)-Z(8)= 2.026558E-06 Y(9)-Z(9)= 9.536743E-07 ДИСПЕРСИЯ ОПЫТОВ U9= .0001 РАСЧЕТНЫЕ ВЕЛИЧИНЫ T(J) Т(1)= 194.2 Т(2)= 65.40088 Т(3)= 18.4911 Т(4)= 45.13247 Т(5)= 4.918155 Т(6)= 10.19723 Т(7)= 11.14262 Т(8)= 12.76819 Т(9)= 9.646484 ТАБЛИЧНЫЙ Т-КРИТЕРИЙ Т0= 3.182 B(J) ПОСЛЕ АНАЛИЗА В(1)= .6473333040873209 В(2)= .6840115120274242 В(3)=-.8853978371999827 В(4)=-.0820048632696572 В(5)= 2.803843686845988D-02 В(6)= 1.942284289515117D-02 В(7)=-6.659157487728702D-02
93
B(8)= .3332551441432058 В(9)= .263934877556022 КОЛИЧЕСТВО СТАТИСТИЧЕСКИ ЗНАЧИМЫХ КОЭФФИЦИЕНТОВ РЕГРЕССИИ К9=9 F9=X-1 F9=8 F9=X-1=8 TАБЛИЧНЫЙ F-КРИТЕРИЙ F7= 8.84 РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ Z(J) ПОСЛЕ АНАЛИЗА B(J) Z(1)= .5830005 Z(2)= .9999992 Z(3)=.200001 Z(4)= .7500007 Z(5)= .2500025 Z(6)= .9170004 Z(7)= .9169989 Z(8)= .416998 Z(9)=.791999 РАСЧЕТНАЯ ВЕЛИЧИНА F-КРИТЕРИЯ F6= 1.867839E-08 АДЕКВАТНО, ТАК КАК F6<=F7 МАТЕМАТИЧЕСКАЯ МОДЕЛЬ Z(J)= .6473333040873209 + .6840115120274242 *I(J)+ +-.8853978371999827 *K(J)+-. 0820048632696572 * *P(J)+ 2.803843686845988D-02 *I(J)*P(J)+ 1.942284289515117D-02 * *Q(J)+-6.659157487728702D-02 *I(J)*Q(J)+ .333255144143205& * *P(J)*K(J)+ .263934877556022 *K(J)*Q(J), ГДЕ I(J)=F(J)^ 1 +-1.370333; K(J)=F(J)^ 2 +-2.796153 *F(J)^ 1 + 1.85227 ОБОЗНАЧЕНИЕ: F(J)- 1-ый ФАКТОР Р(J)=H(J)^ 1 +-3.770333 ; Q(J)=H(J)^ 2 +-8.419744*h(J)^ 1 + 14.16428 ОБОЗНАЧЕНИЕ: H(J)- 2-ой ФАКТОР РАСЧЕТЫ ПО МОДЕЛИ ФАКТОРЫ F(1)= 1 Н(1)= 2.5 Z(1)= .4005382 ФАКТОРЫ F(2)= 1 Н(2)= 4 Z(2)=. 1204119 ФАКТОРЫ F(3)= 1 H(3)= 5 Z(3)=8.089921E-02 ФАКТОРЫ F(4)= 1.333 H(4)= 2.5 Z(4)= .8582356 ФАКТОРЫ F(5)= 1.333 H(5)= 4 Z(5)= .6960927 ФАКТОРЫ F(6)= 1.333 Н(6)= 5 Z(6)= .5780314 ФАКТОРЫ F(7)= 1.778 H(7)= 2.5 Z(7)= .9587414 ФАКТОРЫ F(8)= 1.778 H(8)= 4 Z(8)= .8641979 ФАКТОРЫ F(9)= 1.778 H(9)= 5 Z(9)= .8095676 ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И ПОСТРОЕНИЕ ГРАФИКОВ ФАКТОР F(1)=F3+F4 F4-IIIAT ПРИРАЩЕНИЯ 1-ГО ФАКТОРА ФАКТОР Н(1)=НЗ+Н4
94
С
Н4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА Х-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1,2-ГО ФАКТОРА X=10 F3=1 F4=.0778 НЗ=1.911 Н4=0 F(l)= 1.0778 H(l)= 1.911 Z(l)=.6818714 F(2)= 1.1556 H(2)= 1.911 Z(2)= .7680367 F(3)= 1.2334 H(3)= 1.911 Z(3)=.8414977 F(4)= 1.3112 Н(4)= 1.911 Z(4)= .9022541 F(5)= 1.389 H(5)= 1.911 Z(5)= .9503062 F(6)= 1.4668 Н(6)= 1.911 Z(6)= .9856538 F(7)= 1.5446 H(7)= 1.911 Z(7)= 1.008297 F(8)= 1.6224 H(8)= 1.911 Z(8)= 1.018236 F(9)= 1.7002 H(9)= 1.911 Z(9)= 1.01547 F(10)= 1.778 H(10)= 1.911 Z(10)=l ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5) MAX Z(K5)= 1.018236 MAX Z(8)= 1.018236 MIN Z(K5)= .6818714 MIN Z(1)= .6818714 MIN Z(K5)=K7.MAXZ(K5)=K8 K6(K5)=(Z(K:5)+ABS(K7))/(ABS(K7)+ABS(K8)) K6(l)=.8021511 К6(2)= .8528333 К6(3)=.8960429 К6(4)= .9317798 К6(5)= .9600439 К6(6)= .9808353 К6(7)= .994154 К6(8)=1 К6(9)= .9983733 К6(10)= .9892738 J5=ABS(K7)/(ABS(K7)+ABS(K8)) J5= .4010755 ПОСТРОЕНИЕ ГРАФИКА ЗАВИСИМОСТЬ К6(К5) ОТ ФАКТОРА К6(К5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ К5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ
95
ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ Х0=20 Y0=180 К0=50 К3=150, ГДЕ Х0 - OТСТУП ВПРАВО ПО ОСИ X Y0 - ОТСТУПВНИЗПООСИ Y К0 - ДЛИНА ГРАФИКА ПО ОСИ Х К3 - ВЫСОТА ГРАФИКА ПО ОСИ Y ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И ПОСТРОЕНИЕ ГРАФИКОВ ФАКТОР F(1)=F3+F4 F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА ФАКТОР Н(1)=Н3+Н4 Н4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА Х-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1,2-ГО ФАКТОРА X=10 F3=1 F4=.0778 Н3=3.133 Н4=0 F(1)= 1.0778 Н(1)= 3.133 Z(l)=.411001 F(2)= 1.1556 H(2)= 3.133 Z(2)= .5510427 F(3)= 1.2334 H(3)= 3.133 Z(3)=.6701297 F(4)= 1.3112 H(4)= 3.133 Z(4)= .7682619 F(5)= 1.389 H(5)= 3.133 Z(5)= .845439 F(6)= 1.4668 Н(6)= 3.133 Z(6)= .9016613 F(7)= 1.5446 H(7)= 3.133 Z(7)= .9369289 F(8)= 1.6224 H(8)= 3.133 Z(8)= .9512414 F(9)= 1.7002 H(9)= 3.133^ Z(9)= .9445992 F(10)= 1.778 H(10)= 3.133 Z(10)= .917002 ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5) MAX Z(K5)=.9512414 MAX Z(8)= .9512414 MIN Z(K5)=.411001 MIN Z(1)=.411001 MIN Z(K5)==K7. MAX Z(K5)=K8 K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8)) K6(1)= .6034183 К6(2)= .7062206 К6(3)=. 7936405
96
К6(4)= .8656777 К6(5)= .9223322 К6(6)=.963604 К6(7)= .9894934 K6(8)=l К6(9)= .995124 К6(10)= .9748654 J5=ABS(K7)/(ABS(K7)+ABS(K8)) J5= .3017091 ПОСТРОЕНИЕ ГРАФИКА ЗАВИСИМОСТЬ К6<К5) ОТ ФАКТОРА К6(К5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ К5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ Х0=20 Y0=180 К0=50 К3=150, ГДЕ Х0-ОТСТУП ВПРАВО ПО ОСИ Х Y0-ОТСТУПВНИЗПООСИ Y К0-ДЛИНА ГРАФИКА ПО ОСИ Х КЗ-ВЫСОТА ГРАФИКА ПО ОСИ Y ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И ПОСТРОЕНИЕ ГРАФИКОВ ФАКТОР F(1)=F3+F4 F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА ФАКТОР Н(1)=Н3+Н4 Н4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА Х-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1,2-ГО ФАКТОРА X=10 F3=1 F4=.0778 Н3= 6.267 Н4= 0 F(l)= 1.0778 Н(1)= 6.267 Z(1)= .2482322 F(2)= 1.1556 H(2)= 6.267 Z(2)= .2979668 F(3)= 1.2334 H(3)= 6.267 Z(3)=.3492059 F(4)= 1.3112 H(4)= 6.267 Z(4)= .4019494 F(5)= 1.389 H(5)= 6.267 Z(5)= .4561971 F(6)= 1.4668 Н(6)= 6.267 Z(6)= .5119491 F(7)= 1.5446 H(7)= 6.267 Z(7)= .5692056 F(8)= 1.6224 H(8)= 6.267 Z(8)= .6279664 F(9)= 1.7002 H(9)= 6.267 Z(9)= .6882314
97
F(10)= 1.778 H(10)= 6.267 Z(10)= .7500009 ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5) MAX Z(K5)=.7500009 MAX Z(10)==.7500009 MIN Z(K5)= .2482322 MIN Z(1)= .2482322 MIN Z(K5)=K7, MAX Z(K5)=K8 K6(K5)=(Z
98
Z(5)=. 1121219 F(6)= 1 H(6)= 4.5246 Z(6)=8.499707E-02 F(7)= I H(7)= 4.9602 Z(7)=8.022267E-02 F(8)= 1 H(8)= 5.3958 Z(8)=9.779865E-02 F(9)= 1 H(9)= 5.8314 Z(9)=. 137725 F(10)= 1 H(10)= 6.267 Z(10)= .2000018 ВЫЯВЛЕНИЕ MAX Z(K;5) И MIN Z
99
H(l)= 2.3466 Z(1)= .8738075 F(2)= 1.333 H(2)= 2.7822 Z(2)=.8291024 F(3)= 1.333 H(3)= 3.2178 Z(3)=.7828844 F(4)= 1.333 H(4)= 3.6534 Z(4)= .7351536 F(5)= 1.333 H(5)= 4.089 Z(5)= .6859098 F(6)= 1.333 H(6)= 4.5246 Z(6)= .6351532 F(7)= 1.333 H(7)= 4.9602 Z(7)= .5828837 F(8)= 1.333 H(8)= 5.3958 Z(8)= .5291014 F(9)= 1.333 H(9)= 5.8314 Z(9)= .4738062 F(10)= 1.333 H(10)= ,6.267 Z(10)= .4169981 ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5) MAX Z(K;5)=.8738075 MAX Z(l)=.8738075 MIN Z(K5)= .4169981 MIN Z(10)= .4169981 MIN Z(K5)=K7, MAX Z(K5)=K8 K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8)) K6(1)= 1 К6(2)= .9653665 К6(3)=.929561 Кб(4)= .8925835 К6(5)= .8544338 К6(6)=.8151122 К6(7)= .7746184 К6(8)= .7329528 К6(9)=.690115 К6(10)= .6461052 J5=ABS(K7)/(ABS(K7)+ABS(K8)) J5= .3230526 ПОСТРОЕНИЕ ГРАФИКА ЗАВИСИМОСТЬ К6(К5) ОТ ФАКТОРА К6(К5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ К5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ Х0=20 Y0=180 К0=50 К3=150, ГДЕ Х0-ОТСТУП ВПРАВО ПО ОСИ Х Y0-ОТСТУПВНИЗПООСИ Y К0-ДЛИНА ГРАФИКА ПО ОСИ Х
100
К3-ВЫСОТА ГРАФИКА ПО ОСИ Y ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И ПОСТРОЕНИЕ ГРАФИКОВ ФАКТОР F(1)=F3+F4 F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА ФАКТОР Н(1)=Н3+Н4 Н4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА Х-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1,2-ГО ФАКТОРА X=10 F3=1.778 F4=0 Н3= 1.911 Н4= .4356 F(l)= 1.778 H(l)= 2.3466 Z(1)= .9692634 F(2)= 1.778 H(2)= 2.7822 Z(2)= .9398016 F(3)= 1.778 H(3)= 3.2178 Z(3)=.9116146 F(4)= 1.778 H(4)= 3.6534 Z(4)= .8847024 F(5)= 1.778 H(5)= 4.089 Z(5)= .8590651 F(6)= 1.778 H(6)= 4.5246 Z(6)=.8347026 F(7)= 1.778 H(7)= 4.9602 Z(7)= .8116149 F(8)= 1.778 H(8)= 5.3958 Z(8)= .7898021 F(9)= 1.778 H(9)= 5.8314 Z(9)=.7692641 F(10)= 1.778 H(10)= 6.267 Z(10)= .7500009 ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5) MAX Z(K5)=.9692634 MAX Z( 1 )= .9692634 MIN Z(K5)=. 7500009 MIN Z(10)= .7500009 MIN Z(K5)=K7. MAX Z(K5)=K8 K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8)) K6(1)= 1 К6(2)= .9828637 К6(3)=.9664689 К6(4)= .9508156 К6(5)= .9359038 К6(6)= .9217335 К6(7)= .9083047
101
К6(8)= .8956174 К6(9)=.8836716 К6(10)= .8724672 J5=ABS(K7)/(ABS(K7)+ABS(K8)) J5=.4362336 ПОСТРОЕНИЕ ГРАФИКА ЗАВИСИМОСТЬ К6(К5) ОТ ФАКТОРА К6(К5)- OТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ К5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ Х0=20 Y0=180 К0=50 К3=150, ГДЕ Х0-ОТСТУП ВПРАВО ПО ОСИ Х Y0-ОТСТУП ВНИЗ ПО ОСИ Y К0-ДЛИНА ГРАФИКА ПО ОСИ Х К3-ВЫСОТА ПРАФИКА ПО ОСИ Y ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И ПОСТРОЕНИЕ ГРАФИКОВ ФАКТОР F(1)=F3+F4 F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА ФАКТОР Н(1)=Н3+Н4 Н4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА Х-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1,2-ГО ФАКТОРА X=10 F3=1.55 F4=0 H3= 1.911 Н4= .4356 F(l)= 1.55 H(1)= 2.3466 Z(l)=. 9887719 F(2)= 1.55 H(2)= 2.7822 Z(2)= .9630376 F(3)= 1.55 H(3)= 3.2178 Z(3)=.9321941 F(4)= 1.55 H(4)= 3.6534 Z(4)= .8962415 F(5)= 1.55 H(5)= 4.089 Z(5)= .8551799 F(6)= 1.55 H(6)= 4.5246 Z(6)= .8090092 F(7)= 1.55 H(7)= 4.9602 Z(7)== .7577294 F(8)= 1.55 H(8)= 5.3958 Z(8)= .7013405 F(9)= 1.55 H(9)= 5.8314 Z(9)= .6398426 F(10)= 1.55 H(10)= 6.267 Z(10)= .5732355 ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5)
102
MAX Z(K5)=.9887719 MAX Z(l)=.9887719 MIN Z(K5)= .5732355 MIN Z(10)== .5732355 MIN Z(K5)==K7, MAX Z(K5)=K8 K6(K5)=
103
104
105
106
107
108
109
Анализ результатов математического моделирования позволил сделать следующие выводы: 1. В вагранке с формой шахты типа доменной более равномерно распределяются движущиеся потоки по сечениям шахты, чем в вагранке с цилиндрической формой шахты; 2. Предельной в улучшении распределения движущихся потоков по сечениям шахты является форма шахты 4; 3. Рационально при переводе коксовых вагранок на газообразное топливо изменять форму шахты с цилиндрической на доменного типа 4; 4. Более равномерное распределение газовых потоков в шахте вагранки (типа 4) позволяет улучшать теплотехнические показатели процесса плавки. На основе исследований усовершенствованы конструкции газовых
110
вагранок, уточнены научные знания о газодинамических процессах в шахтных печах. Новизна проведенных исследований заключается в выявлении зависимости характера движения газов в шахтных печах от формы шахты. Программа G5 может быть использована для выявления математических моделей других процессов литейного производства, если двухфакторные эксперименты планируются на трех уровнях независимых переменных.
111
ПРОГРАММЫ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ НА ОСНОВЕ ПРОГРАММ VN0, VL0 С ДОБАВЛЕНИЯМИ ПОДПРОГРАММ СИСТЕМНОГО ПРЕДСТАВЛЕНИЯ ДЛЯ АНАЛИЗОВ РЕЗУЛЬТАТОВ РАСЧЕТОВ
112
ПРОГРАММА NW3 (планы 31, 32, 33, Х = 3, Х = 9, Х =27) 5 PRINT "ПРОГРАММА NW3,РАЗРАБОТКА А.А.ЧЕРНОГО" 6 CLS 7 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW3" 8 PRINT "ЗАНОСЯТСЯ В ФАЙЛ,ИМЯ КОТОРОГО НАДО ВВЕСТИ," 9 PRINT "НАПРИМЕР, ВВЕСТИ ИМЯ ФАЙЛА NW31" 10 INPUT "ВВОД ИМЕНИ ФАЙЛА ", FA$ 14 OPEN "O", #1, FA$ 17 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW3 ЗАНОСЯТСЯ В ФАЙЛ "; FA$ 40 PRINT " РАЗРАБОТКИ ДЛЯ X=3,X=9,X=27" 41 PRINT #1, "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ WN3, РАЗРАБОТАННОЙ А.А. ЧЕРНЫМ" 42 DIM F(50), H(50), L(50), Y(27), I(50), K(50), M(50), P(50) 44 DIM Q(50), U(50), V(50), O(27), B(27), Z(50), G(20), T(27) 46 DIM K6(50), K7(50), K8(50), J7(50), J8(50), J9(50) 47 DIM Z1(50) 51 PRINT "ВВОД X-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 52 PRINT #1, "КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 60 INPUT X: PRINT #1, "X="; X 61 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 62 PRINT "ВВОД ВЕЛИЧИН ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 120 PRINT "ВВОД A1,E1,B1,J1,O1": INPUT A1, E1, B1, J1, O1 130 PRINT #1, "A1="; A1; " E1="; E1; " B1="; B1 133 PRINT #1, "J1="; J1; " O1="; O1: A = A1: B = B1: E = E1: N = J1: R = O1 140 GOSUB 3660: V1 = V0: U1 = U0: Q1 = Q0 144 PRINT #1, "V1="; V1; " U1="; U1; " Q1="; Q1 150 IF X = 9 GOTO 350 160 IF X = 27 GOTO 350 190 IF X = 3 GOTO 590 350 PRINT "ВВОД A2,E2,B2,J2,O2": INPUT A2, E2, B2, J2, O2 360 PRINT #1, "A2="; A2; " E2="; E2; " B2="; B2 363 PRINT #1, "J2="; J2; " O2="; O2 365 A = A2: B = B2: E = E2: N = J2: R = O2 370 GOSUB 3660: V2 = V0: U2 = U0: Q2 = Q0 375 PRINT #1, "V2="; V2; " U2="; U2; " Q2="; Q2 380 IF X = 27 GOTO 550 390 IF X = 9 GOTO 620 550 PRINT "ВВОД A3,E3,B3,J3,O3" 555 INPUT A3, E3, B3, J3, O3 560 PRINT #1, "A3="; A3; " E3="; E3; " B3="; B3 563 PRINT #1, "J3="; J3; " O3="; O3 565 A = A3: B = B3: E = E3: N = J3: R = O3 570 GOSUB 3660: V3 = V0: U3 = U0: Q3 = Q0 575 PRINT #1, "V3="; V3; " U3="; U3; " Q3="; Q3 580 GOTO 990 589 REM ПЛАНЫ 590 F(1) = A1: F(2) = B1: F(3) = E1: GOTO 1130 620 F(1) = A1: H(1) = A2: F(2) = B1: H(2) = A2: F(3) = A1: H(3) = B2 630 F(4) = B1: H(4) = B2: F(5) = A1: H(5) = E2: F(6) = B1: H(6) = E2 640 F(7) = E1: H(7) = A2: F(8) = E1: H(8) = B2: F(9) = E1: H(9) = E2 650 GOTO 1130 990 F(1) = A1: H(1) = A2: L(1) = A3: F(2) = B1: H(2) = A2: L(2) = A3 1000 F(3) = A1: H(3) = B2: L(3) = A3: F(4) = B1: H(4) = B2: L(4) = A3 1010 F(5) = A1: H(5) = A2: L(5) = B3: F(6) = B1: H(6) = A2: L(6) = B3 1020 F(7) = A1: H(7) = B2: L(7) = B3: F(8) = B1: H(8) = B2: L(8) = B3 1030 F(9) = A1: H(9) = E2: L(9) = E3: F(10) = B1: H(10) = E2: L(10) = E3
113
1040 F(11) = E1: H(11) = A2: L(11) = E3: F(12) = E1: H(12) = B2: L(12) = E3 1050 F(13) = E1: H(13) = E2: L(13) = A3: F(14) = E1: H(14) = E2: L(14) = B3 1060 F(15) = A1: H(15) = A2: L(15) = E3: F(16) = B1: H(16) = A2: L(16) = E3 1070 F(17) = A1: H(17) = B2: L(17) = E3: F(18) = B1: H(18) = B2: L(18) = E3 1080 F(19) = A1: H(19) = E2: L(19) = A3: F(20) = B1: H(20) = E2: L(20) = A3 1090 F(21) = A1: H(21) = E2: L(21) = B3: F(22) = B1: H(22) = E2: L(22) = B3 1100 F(23) = E1: H(23) = A2: L(23) = A3: F(24) = E1: H(24) = B2: L(24) = A3 1110 F(25) = E1: H(25) = A2: L(25) = B3: F(26) = E1: H(26) = B2: L(26) = B3 1120 F(27) = E1: H(27) = E2: L(27) = E3 1130 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 1135 PRINT "IF I0=7 GOTO 1160-ПРОДОЛЖЕНИЕ" 1140 INPUT I0: IF I0 = 6 GOTO 40 1150 IF I0 = 7 GOTO 1160 1160 PRINT "ВВОД ВЕЛИЧИН ПОКАЗАТЕЛЕЙ ПО ПЛАНУ Y(J) " 1161 PRINT #1, "ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ В СООТВЕТСТВИИ С ПЛАНОМ Y(J)" 1165 FOR J = 1 TO X 1166 PRINT "Y("; J; ")": INPUT Y(J) 1170 PRINT #1, "Y("; J; ")="; Y(J): NEXT J 1180 PRINT "IF I0=1 GOTO 1160-ПОВТОРЕНИЕ ВВОДА ПОКАЗАТЕЛЕЙ" 1185 PRINT "IF I0=2 GOTO 1210-ПРОДОЛЖЕНИЕ" 1190 PRINT "ВВОД I0": INPUT I0: IF I0 = 1 GOTO 1160 1200 IF I0 = 2 GOTO 1210 1210 IF X = 3 GOTO 1310 1240 IF X = 9 GOTO 1340 1300 IF X = 27 GOTO 1400 1310 GOSUB 4150: GOTO 1410 1340 GOSUB 4150: GOSUB 4170: GOTO 1410 1400 GOSUB 4150: GOSUB 4170: GOSUB 4190 1410 S = 0: O(1) = 0: FOR J = 1 TO X: S = S + Y(J): O(1) = O(1) + 1: NEXT J 1420 B(1) = S / O(1): S = 0: O(2) = 0: FOR J = 1 TO X: S = S + I(J) * Y(J) 1430 O(2) = O(2) + I(J) ^ 2: NEXT J: B(2) = S / O(2): S = 0: O(3) = 0 1440 FOR J = 1 TO X: S = S + K(J) * Y(J): O(3) = O(3) + K(J) ^ 2: NEXT J 1450 B(3) = S / O(3): IF X = 3 GOTO 2390 1480 S = 0: O(4) = 0: FOR J = 1 TO X: S = S + P(J) * Y(J) 1490 O(4) = O(4) + P(J) ^ 2: NEXT J: B(4) = S / O(4): S = 0: O(5) = 0 1500 FOR J = 1 TO X: S = S + I(J) * P(J) * Y(J): O(5) = O(5) + (I(J) * P(J)) ^ 2 1510 NEXT J: B(5) = S / O(5): S = 0: O(6) = 0: FOR J = 1 TO X 1520 S = S + Q(J) * Y(J): O(6) = O(6) + Q(J) ^ 2: NEXT J: B(6) = S / O(6) 1530 S = 0: O(7) = 0: FOR J = 1 TO X: S = S + I(J) * Q(J) * Y(J) 1540 O(7) = O(7) + (I(J) * Q(J)) ^ 2: NEXT J: B(7) = S / O(7): S = 0 1550 O(8) = 0: FOR J = 1 TO X: S = S + P(J) * K(J) * Y(J) 1560 O(8) = O(8) + (P(J) * K(J)) ^ 2: NEXT J: B(8) = S / O(8): S = 0: O(9) = 0 1570 FOR J = 1 TO X: S = S + K(J) * Q(J) * Y(J): O(9) = O(9) + (K(J) * Q(J)) ^ 2 1580 NEXT J: B(9) = S / O(9): IF X = 9 GOTO 2390 1590 IF X = 27 GOTO 2040 2040 S = 0: O(10) = 0: FOR J = 1 TO X: S = S + U(J) * Y(J) 2050 O(10) = O(10) + U(J) ^ 2: NEXT J: B(10) = S / O(10): S = 0: O(11) = 0 2060 FOR J = 1 TO X: S = S + I(J) * U(J) * Y(J): O(11) = O(11) + (I(J) * U(J)) ^ 2 2070 NEXT J: B(11) = S / O(11): S = 0: O(12) = 0: FOR J = 1 TO X 2080 S = S + P(J) * U(J) * Y(J): O(12) = O(12) + (P(J) * U(J)) ^ 2: NEXT J 2090 B(12) = S / O(12): S = 0: O(13) = 0: FOR J = 1 TO X 2100 S = S + I(J) * P(J) * U(J) * Y(J): O(13) = O(13) + (I(J) * P(J) * U(J)) ^ 2 2110 NEXT J: B(13) = S / O(13): S = 0: O(14) = 0: FOR J = 1 TO X 2120 S = S + V(J) * Y(J): O(14) = O(14) + V(J) ^ 2: NEXT J: B(14) = S / O(14) 2130 S = 0: O(15) = 0: FOR J = 1 TO X: S = S + I(J) * V(J) * Y(J) 2140 O(15) = O(15) + (I(J) * V(J)) ^ 2: NEXT J: B(15) = S / O(15): S = 0 2150 O(16) = 0: FOR J = 1 TO X: S = S + P(J) * V(J) * Y(J)
114
2160 O(16) = O(16) + (P(J) * V(J)) ^ 2: NEXT J: B(16) = S / O(16): S = 0 2170 O(17) = 0: FOR J = 1 TO X: S = S + U(J) * K(J) * Y(J) 2180 O(17) = O(17) + (U(J) * K(J)) ^ 2: NEXT J: B(17) = S / O(17): S = 0 2190 O(18) = 0: FOR J = 1 TO X: S = S + U(J) * Q(J) * Y(J) 2200 O(18) = O(18) + (U(J) * Q(J)) ^ 2: NEXT J: B(18) = S / O(18): S = 0 2210 O(19) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * V(J) * Y(J) 2220 O(19) = O(19) + (I(J) * P(J) * V(J)) ^ 2: NEXT J: B(19) = S / O(19) 2230 S = 0: O(20) = 0: FOR J = 1 TO X: S = S + I(J) * U(J) * Q(J) * Y(J) 2240 O(20) = O(20) + (I(J) * U(J) * Q(J)) ^ 2: NEXT J: B(20) = S / O(20) 2250 S = 0: O(21) = 0: FOR J = 1 TO X: S = S + P(J) * U(J) * K(J) * Y(J) 2260 O(21) = O(21) + (P(J) * U(J) * K(J)) ^ 2: NEXT J: B(21) = S / O(21) 2270 S = 0: O(22) = 0: FOR J = 1 TO X: S = S + K(J) * V(J) * Y(J) 2280 O(22) = O(22) + (K(J) * V(J)) ^ 2: NEXT J: B(22) = S / O(22) 2290 S = 0: O(23) = 0: FOR J = 1 TO X: S = S + Q(J) * V(J) * Y(J) 2300 O(23) = O(23) + (Q(J) * V(J)) ^ 2: NEXT J: B(23) = S / O(23) 2310 S = 0: O(24) = 0: FOR J = 1 TO X: S = S + I(J) * Q(J) * V(J) * Y(J) 2320 O(24) = O(24) + (I(J) * Q(J) * V(J)) ^ 2: NEXT J: B(24) = S / O(24) 2330 S = 0: O(25) = 0: FOR J = 1 TO X: S = S + P(J) * K(J) * V(J) * Y(J) 2340 O(25) = O(25) + (P(J) * K(J) * V(J)) ^ 2: NEXT J: B(25) = S / O(25) 2350 S = 0: O(26) = 0: FOR J = 1 TO X: S = S + U(J) * K(J) * Q(J) * Y(J) 2360 O(26) = O(26) + (U(J) * K(J) * Q(J)) ^ 2: NEXT J: B(26) = S / O(26) 2370 S = 0: O(27) = 0: FOR J = 1 TO X: S = S + K(J) * Q(J) * V(J) * Y(J) 2380 O(27) = O(27) + (K(J) * Q(J) * V(J)) ^ 2: NEXT J: B(27) = S / O(27) 2390 PRINT #1, "B(J) ДО АНАЛИЗА": FOR J = 1 TO X 2395 PRINT #1, "B("; J; ")="; B(J) 2397 NEXT J: PRINT 2400 PRINT "ВВОД N0-КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2407 INPUT N0 2408 PRINT #1, "КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2410 PRINT #1, "N0="; N0 2415 IF X = 3 GOTO 2510 2440 IF X = 9 GOTO 2540 2500 IF X = 27 GOTO 2600 2510 GOSUB 4390: GOTO 2610 2540 GOSUB 4450: GOTO 2610 2600 GOSUB 4770: GOTO 2610 2610 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ Z(J) ДО АНАЛИЗА B(J)" 2620 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 2630 PRINT "ВВОД F8=N0-1": INPUT F8 2633 PRINT #1, "F8=N0-1="; F8 2635 PRINT "F8="; F8 2640 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 2641 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J)) * (100/Y(J))" 2650 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 2651 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 2655 NEXT J 2660 PRINT "IF I0=3 GOTO 2720-ВВОД РЕЗУЛЬТАТОВ ОПЫТОВ " 2663 PRINT " НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2666 PRINT "IF I0=4 GOTO 2770-ВВОД ДИСПЕРСИИ ОПЫТОВ" 2670 PRINT "IF I0=5 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 2672 PRINT " РАСЧEТЫ ПО МОДЕЛИ" 2773 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 2677 PRINT "IF I0=20 GOTO 6830-КОНЕЦ" 2678 PRINT "IF I0=25 GOTO 4880-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 2679 PRINT "IF I0=27 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 2681 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 2684 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ"
115
2689 PRINT "ВВОД I0": INPUT I0: IF I0 = 3 GOTO 2720 2690 IF I0 = 4 GOTO 2770 2700 IF I0 = 5 GOTO 3240 2710 IF I0 = 6 GOTO 40 2715 IF I0 = 20 GOTO 6830 2717 IF I0 = 25 GOTO 4880 2718 IF I0 = 27 GOTO 7000 2720 PRINT "ВВОД G(J)-РЕЗУЛЬТАТЫ ОПЫТОВ "; 2721 PRINT "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 2722 PRINT #1, "РЕЗУЛЬТАТЫ ОПЫТОВ "; 2723 PRINT #1, "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 2724 FOR J = 1 TO N0: PRINT "G("; J; ")": INPUT G(J) 2730 PRINT #1, "G("; J; ")="; G(J): NEXT J: S = 0: FOR J = 1 TO N0: S = S + G(J) 2740 NEXT J: S0 = S / N0: PRINT "S0="; S0: S = 0: FOR J = 1 TO N0 2750 S = S + (G(J) - S0) ^ 2: NEXT J: U9 = S / F8 2751 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 2760 GOTO 2780 2770 PRINT "ВВОД U9-ДИСПЕРСИЯ ОПЫТОВ": INPUT U9 2771 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 2780 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ T(J)": FOR J = 1 TO X 2790 T(J) = ABS(B(J) / SQR(U9 / O(J))): PRINT #1, "T("; J; ")="; T(J): NEXT J 2800 PRINT " ДЛЯ УРОВНЯ ЗНАЧИМОСТИ 5% " 2801 PRINT " ПРИ F8 2 ; 3 ; 4 ; 5 ; 6" 2802 PRINT "СООТВЕТСТВЕННО T0 4.303 ;3.182 ;2.776 ;2.571 ;2.447" 2803 PRINT "F8=N0-1="; N0; "-1="; F8 2804 PRINT "ВВОД T0-ТАБЛИЧНЫЙ Т-КРИТЕРИЙ" 2805 INPUT T0 2806 PRINT #1, "ТАБЛИЧНЫЙ Т-КРИТЕРИЙ T0="; T0 2810 PRINT #1, "B(J) ПОСЛЕ АНАЛИЗА": FOR J = 1 TO X 2820 IF T(J) < T0 GOTO 2840 2830 IF T(J) >= T0 GOTO 2850 2840 B(J) = 0 2850 PRINT #1, "B("; J; ")="; B(J): NEXT J 2860 K9 = 0: FOR J = 1 TO X: IF B(J) = 0 GOTO 2871 2870 K9 = K9 + 1 2871 NEXT J 2872 PRINT #1, "КОЛИЧЕСТВО СТАТИСТИЧЕСКИ ЗНАЧИМЫХ" 2873 PRINT #1, " КОЭФФИЦИЕНТОВ РЕГРЕССИИ K9="; K9 2881 PRINT #1, "F9=X-1": F9 = X - 1 2882 PRINT #1, "F9="; F9: CLS 2883 PRINT "! ! ЗНАЧЕНИЯ F-КРИТЕРИЯ F7 ДЛЯ 5%-ГО УРОВНЯ ЗНАЧИМОСТИ" 2884 PRINT "! !---------------------------------------------------" 2885 PRINT "!F8! F9 " 2886 PRINT "! !---------------------------------------------------" 2887 PRINT "! ! 2 ! 3 ! 4 ! 8 ! 11 ! 14 " 2888 PRINT "-------------------------------------------------------" 2889 PRINT "! 2! 19.0 ! 19.16 ! 19.25 ! 19.37 ! 19.4 ! 19.42 " 2890 PRINT "! 3! 9.55 ! 9.28 ! 9.12 ! 8.84 ! 8.76 ! 8.71 " 2891 PRINT "! 4! 6.94 ! 6.59 ! 6.39 ! 6.04 ! 5.93 ! 5.87 " 2892 PRINT "! 5! 5.79 ! 5.41 ! 5.19 ! 4.82 ! 4.7 ! 4.64 " 2893 PRINT "! 6! 5.14 ! 4.76 ! 4.53 ! 4.15 ! 4.03 ! 3.96 " 2894 PRINT "!======================================================" 2895 PRINT "! F8 \ F9 ! 15...16 ! 19...20 ! 24 ! 26...30 !" 2896 PRINT "!------------------------------------------------------" 2897 PRINT "! 2 ! 19.43 ! 19.44 ! 19.45 ! 19.46 !" 2898 PRINT "! 3 ! 8.69 ! 8.66 ! 8.64 ! 8.62 !" 2899 PRINT "! 4 ! 5.84 ! 5.8 ! 5.77 ! 5.74 !"
116
2900 PRINT "! 5 ! 4.6 ! 4.56 ! 4.53 ! 4.5 !" 2901 PRINT "! 6 ! 3.92 ! 3.87 ! 3.84 ! 3.81 !" 2902 PRINT "-------------------------------------------------------" 2907 PRINT "F8="; F8; "F9="; F9 2908 PRINT "ВВОД F7-ТАБЛИЧНЫЙ F-КРИТЕРИЙ" 2909 INPUT F7: PRINT #1, "ТАБЛИЧНЫЙ F-КРИТЕРИЙ F7="; F7 2910 IF X = 3 GOTO 3010 2940 IF X = 9 GOTO 3040 3000 IF X = 27 GOTO 3100 3010 GOSUB 4390: GOTO 3110 3040 GOSUB 4450: GOTO 3110 3100 GOSUB 4770: GOTO 3110 3110 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ"; 3115 PRINT #1, " Z(J) ПОСЛЕ АНАЛИЗА B(J)" 3120 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 3121 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 3122 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J)) * (100/Y(J))" 3123 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 3124 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 3125 NEXT J 3130 S = 0: FOR J = 1 TO X: S = S + (Z(J) - Y(J)) ^ 2: NEXT J 3140 F6 = S / (F9 * U9) 3145 PRINT #1, "РАСЧЕТНАЯ ВЕЛИЧИНА F-КРИТЕРИЯ F6="; F6 3150 IF F6 <= F7 GOTO 3152 3151 IF F6 > F7 GOTO 3153 3152 PRINT "АДЕКВАТНО": PRINT #1, "АДЕКВАТНО,ТАК КАК F6<=F7": GOTO 3154 3153 PRINT "НЕAДЕКВАТНО": PRINT #1, "НЕАДЕКВАТНО,ТАК КАК F6>F7": GOTO 3190 3154 PRINT #1, "СИСТЕМНОЕ ПРЕДСТАВЛЕНИЕ" 3155 PRINT #1, "ДЛЯ АНАЛИЗОВ РЕЗУЛЬТАТОВ РАСЧЕТОВ" 3156 PRINT #1, "ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 3157 S = 0: FOR J = 1 TO X: S = S + ABS(Z(J)): NEXT J 3158 Z1 = 0: FOR J = 1 TO X: Z1(J) = Z(J) / (S / X): NEXT J 3159 PRINT #1, "ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 3160 PRINT #1, "Z1(J)=Z(J)/(S/X),ГДЕ S-СУММА" 3161 PRINT #1, "АБСОЛЮТНЫХ ВЕЛИЧИН ПОКАЗАТЕЛЕЙ,S="; S 3162 PRINT #1, "S/X-СРЕДНЯЯ АРИФМЕТИЧЕСКАЯ ВЕЛИЧИНА,S/X="; S / X 3163 IF X = 3 GOTO 3173 3164 IF X = 9 GOTO 3174 3165 IF X = 27 GOTO 3175 3173 GOSUB 10150: GOTO 3190 3174 GOSUB 10190: GOTO 3190 3175 GOSUB 10380: GOTO 3190 3190 PRINT "IF I0=7 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 3193 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 3194 PRINT "IF I0=8 GOTO 40-НАЧАЛО" 3197 PRINT "IF I0=17 GOTO 4880-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 3198 PRINT "IF I0=22 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 3200 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 3203 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 3207 PRINT "IF I0=9 GOTO 6830-КОНЕЦ": PRINT "ВВОД I0": INPUT I0 3210 IF I0 = 7 GOTO 3240 3220 IF I0 = 8 GOTO 40 3227 IF I0 = 17 GOTO 4880 3228 IF I0 = 22 GOTO 7000 3230 IF I0 = 9 GOTO 6830 3240 PRINT "ПРОВЕРКА ТОЧНОСТИ И РАСЧЕТЫ ПО МОДЕЛИ" 3241 PRINT "F(S),H(S),L(S)-1, 2, 3-й ФАКТОРЫ,"
117
3243 PRINT "ГДЕ S=X="; X; "-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ" 3245 PRINT #1, "РАСЧЕТЫ ПО МОДЕЛИ" 3250 IF X = 3 GOTO 3350 3280 IF X = 9 GOTO 3420 3340 IF X = 27 GOTO 3560 3350 FOR S = 1 TO X: F(S) = 0: Z(S) = 0: PRINT "ВВОД F("; S; ")" 3360 INPUT F(S): PRINT #1, "ФАКТОР F("; S; ")="; F(S) 3365 IF X = 3 GOTO 3390 3390 GOSUB 4150: GOSUB 4390: GOTO 3412 3412 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 3610 3420 FOR S = 1 TO X: F(S) = 0: H(S) = 0: Z(S) = 0 3430 PRINT "ВВОД F("; S; "),H("; S; ")": INPUT F(S), H(S) 3432 PRINT #1, " ФАКТОРЫ F("; S; ")="; F(S); "H("; S; ")="; H(S) 3440 IF X = 9 GOTO 3500 3500 GOSUB 4150: GOSUB 4170: GOSUB 4450: GOTO 3552 3552 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 3610 3560 FOR S = 1 TO X: F(S) = 0: H(S) = 0: L(S) = 0: Z(S) = 0 3570 PRINT "ВВОД F("; S; "),H("; S; "),L("; S; ")" 3572 INPUT F(S), H(S), L(S): PRINT #1, "ФАКТОР F("; S; ")="; F(S) 3574 PRINT #1, "ФАКТОРЫ H("; S; ")="; H(S); "L("; S; ")="; L(S) 3580 GOSUB 4150: GOSUB 4170: GOSUB 4190: GOSUB 4770: GOTO 3590 3590 PRINT #1, "Z("; S; ")="; Z(S): NEXT S 3610 PRINT "IF I0=10 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И "; 3611 PRINT "РАСЧЕТЫ ПО МОДЕЛИ" 3612 PRINT "IF I0=11 GOTO 4880 - МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 3615 PRINT "IF I0=14 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 3616 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 3617 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 3620 PRINT "IF I0=12 GOTO 6830-КОНЕЦ" 3625 PRINT "ВВОД I0": INPUT I0 3630 IF I0 = 10 GOTO 3240 3640 IF I0 = 11 GOTO 4880 3650 IF I0 = 12 GOTO 6830 3653 IF I0 = 14 GOTO 7000 3660 N0 = (A ^ N + B ^ N + E ^ N) / 3: R0 = (A ^ R + B ^ R + E ^ R) / 3 3670 L2 = 2 * N: N3 = (A ^ L2 + B ^ L2 + E ^ L2) / 3: N4 = N + R 3680 N5 = (A ^ N4 + B ^ N4 + E ^ N4) / 3: V0 = -N0 3690 U0 = (N0 * R0 - N5) / (N3 - N0 ^ 2): Q0 = -(R0 + U0 * N0) 3700 PRINT #1, "КОЭФФИЦИЕНТЫ ОРТОГОНАЛИЗАЦИИ": RETURN 4150 FOR J = 1 TO X: I(J) = F(J) ^ J1 + V1 4160 K(J) = F(J) ^ O1 + U1 * F(J) ^ J1 + Q1: NEXT J: RETURN 4170 FOR J = 1 TO X: P(J) = H(J) ^ J2 + V2 4180 Q(J) = H(J) ^ O2 + U2 * H(J) ^ J2 + Q2: NEXT J: RETURN 4190 FOR J = 1 TO X: U(J) = L(J) ^ J3 + V3 4200 V(J) = L(J) ^ O3 + U3 * L(J) ^ J3 + Q3: NEXT J: RETURN 4390 FOR J = 1 TO X: Z(J) = B(1) + B(2) * I(J) + B(3) * K(J): NEXT J: RETURN 4450 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * P(J) 4460 N4 = B(5) * I(J) * P(J) + B(6) * Q(J) + B(7) * I(J) * Q(J) 4470 N5 = B(8) * P(J) * K(J) + B(9) * K(J) * Q(J) 4480 Z(J) = N3 + N4 + N5: NEXT J: RETURN 4770 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * P(J) 4780 N4 = B(5) * I(J) * P(J) + B(6) * Q(J) + B(7) * I(J) * Q(J) + B(8) * P(J) * K(J) 4790 N5 = B(9) * K(J) * Q(J) + B(10) * U(J) + B(11) * I(J) * U(J) + B(12) * P(J) * U(J) 4800 N6 = B(13) * I(J) * P(J) * U(J) + B(14) * V(J) + B(15) * I(J) * V(J) 4810 N7 = B(16) * P(J) * V(J) + B(17) * U(J) * K(J) + B(18) * U(J) * Q(J) 4820 R0 = B(19) * I(J) * P(J) * V(J) + B(20) * I(J) * U(J) * Q(J) 4830 R4 = B(21) * P(J) * U(J) * K(J) + B(22) * K(J) * V(J) + B(23) * Q(J) * V(J)
118
4840 R5 = B(24) * I(J) * Q(J) * V(J) + B(25) * P(J) * K(J) * V(J) 4850 R6 = B(26) * U(J) * K(J) * Q(J) + B(27) * K(J) * Q(J) * V(J) 4860 Z(J) = N3 + N4 + N5 + N6 + N7 + R0 + R4 + R5 + R6: NEXT J: RETURN 4880 PRINT #1, "МАТЕМАТИЧЕСКАЯ МОДЕЛЬ": IF X = 3 GOTO 4910 4890 IF X = 9 GOTO 4930 4900 IF X = 27 GOTO 4980 4910 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)," 4920 IF X = 3 GOTO 5110 4930 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 4940 PRINT #1, "+"; B(4); "*P(J)+"; B(5); "*I(J)*P(J)+" 4950 PRINT #1, "+"; B(6); "*Q(J)+"; B(7); "*I(J)*Q(J)+" 4960 PRINT #1, "+"; B(8); "*P(J)*K(J)+"; B(9); "*K(J)*Q(J)," 4970 IF X = 9 GOTO 5110 4980 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 4990 PRINT #1, "+"; B(4); "*P(J)+"; B(5); "*I(J)*P(J)+" 5000 PRINT #1, "+"; B(6); "*Q(J)+"; B(7); "*I(J)*Q(J)+" 5010 PRINT #1, "+"; B(8); "*P(J)*K(J)+"; B(9); "*K(J)*Q(J)+" 5020 PRINT #1, "+"; B(10); "*U(J)+"; B(11); "*I(J)*U(J)+" 5030 PRINT #1, "+"; B(12); "*P(J)*U(J)+"; B(13); "*I(J)*P(J)*U(J)+" 5040 PRINT #1, "+"; B(14); "*V(J)+"; B(15); "*I(J)*V(J)+" 5050 PRINT #1, "+"; B(16); "*P(J)*V(J)+"; B(17); "*U(J)*K(J)+" 5060 PRINT #1, "+"; B(18); "*U(J)*Q(J)+"; B(19); "*I(J)*P(J)*V(J)+" 5070 PRINT #1, "+"; B(20); "*I(J)*U(J)*Q(J)+"; B(21); "*P(J)*U(J)*K(J)+" 5080 PRINT #1, "+"; B(22); "*K(J)*V(J)+"; B(23); "*Q(J)*V(J)+" 5090 PRINT #1, "+"; B(24); "*I(J)*Q(J)*V(J)+"; B(25); "*P(J)*K(J)*V(J)+" 5100 PRINT #1, "+"; B(26); "*U(J)*K(J)*Q(J)+"; B(27); "*K(J)*Q(J)*V(J)," 5110 PRINT #1, "ГДЕ" 5120 PRINT #1, "I(J)=F(J)^"; J1; "+"; V1; ";" 5130 PRINT #1, "K(J)=F(J)^"; O1; "+"; U1; "*F(J)^"; J1; "+"; Q1 5131 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 5140 IF X = 3 GOTO 6790 5150 PRINT #1, "P(J)=H(J)^"; J2; "+"; V2; ";" 5160 PRINT #1, "Q(J)=H(J)^"; O2; "+"; U2; "*H(J)^"; J2; "+"; Q2 5161 PRINT #1, "ОБОЗНАЧЕНИЕ: H(J)- 2-й ФАКТОР" 5170 IF X = 9 GOTO 6790 5180 PRINT #1, "U(J)=L(J)^"; J3; "+"; V3; ";" 5190 PRINT #1, "V(J)=L(J)^"; O3; "+"; O3; "+"; U3; "*L(J)^"; J3; "+"; Q3 5191 PRINT #1, "ОБОЗНАЧЕНИЕ: L(J)- 3-й ФАКТОР" 6000 IF X = 27 GOTO 6790 6790 PRINT "IF I0=18 GOTO 2660-ПЕРЕХОДЫ" 6792 PRINT "IF I0=19 GOTO 3190-ПЕРЕХОДЫ " 6793 PRINT "IF I0=35 GOTO 1160-ВВОД НОВЫХ Y(J)" 6795 PRINT "IF I0=44 GOTO 6830-КОНЕЦ" 6796 PRINT "IF I0=50 GOTO 40-НАЧАЛО" 6797 PRINT "IF I0=51 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 6798 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 6799 PRINT "IF I0=52 GOTO 7000-" 6800 PRINT " ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) " 6802 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 6803 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 6805 PRINT "ВВОД I0": INPUT I0 6810 IF I0 = 18 GOTO 2660 6820 IF I0 = 19 GOTO 3190 6823 IF I0 = 35 GOTO 1160 6825 IF I0 = 44 GOTO 6830 6827 IF I0 = 50 GOTO 40 6828 IF I0 = 51 GOTO 3240
119
6829 IF I0 = 52 GOTO 7000 6830 CLOSE #1 6832 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ СМОТРИ В "; 6835 PRINT "ФАЙЛЕ "; FA$ 6840 END 7000 PRINT #1, "ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 7004 PRINT #1, " ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 7005 PRINT #1, " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ" 7006 PRINT #1, "И ПОСТРОЕНИЕ ГРАФИКОВ" 7010 PRINT "ВВОД I0=61 ПРИ Х=3" 7020 PRINT "ВВОД I0=62 ПРИ Х=9" 7030 PRINT "ВВОД I0=63 ПРИ Х=27" 7040 PRINT "IF I0=64 GOTO 40-НАЧАЛО" 7050 PRINT "IF I0=65 GOTO 6830-КОНЕЦ" 7060 INPUT I0 7070 IF I0 = 61 GOTO 7190 7080 IF I0 = 62 GOTO 7330 7090 IF I0 = 63 GOTO 7580 7100 IF I0 = 64 GOTO 40 7110 IF I0 = 65 GOTO 6830 7190 PRINT "ВВОД I0=73 ПРИ X=3" 7200 INPUT I0 7210 F3 = 0: F4 = 0: K5 = 0: PRINT #1, "ФАКТОР F(1)=F3+F4" 7213 PRINT "ФАКТОР F(1)=F3+F4" 7215 FOR J = 1 TO X: F(J) = 0: Z(J) = 0: NEXT J: X = 0 7220 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7225 PRINT "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7226 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7227 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7230 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4" 7240 INPUT X, F3, F4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4 7250 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7255 PRINT #1, "F("; K5; ")="; F(K5) 7260 IF I0 = 73 GOTO 7290 7290 GOSUB 4150: GOSUB 4390: GOTO 7320 7320 PRINT #1, "Z("; K5; ")="; Z(K5) 7325 NEXT K5: GOTO 8001 7330 PRINT "ВВОД I0=76 ПРИ X=9" 7350 INPUT I0 7360 F3 = 0: F4 = 0: H3 = 0: H4 = 0: K5 = 0: PRINT #1, "ФАКТОР F(1)=F3+F4" 7361 PRINT "ФАКТОР F(1)=F3+F4" 7365 FOR J = 1 TO X: F(J) = 0: H(J) = 0: Z(J) = 0: NEXT J: X = 0 7370 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА" 7371 PRINT "F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА" 7380 PRINT #1, "ФАКТОР H(1)=H3+H4" 7381 PRINT "ФАКТОР H(1)=H3+H4" 7390 PRINT #1, "H4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА" 7391 PRINT "H4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА" 7392 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1, 2-ГО ФАКТОРОВ" 7393 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1, 2-ГО ФАКТОРОВ" 7400 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4" 7410 INPUT X, F3, F4, H3, H4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4 7420 PRINT #1, "H3="; H3; "H4="; H4 7430 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7435 PRINT #1, "F("; K5; ")= "; F(K5) 7440 H(K5) = H3 + K5 * H4: PRINT #1, "H("; K5; ")= "; H(K5) 7450 IF I0 = 76 GOTO 7510
120
7510 GOSUB 4150: GOSUB 4170: GOSUB 4450: GOTO 7570 7570 PRINT #1, "Z("; K5; ")="; Z(K5) 7575 NEXT K5: GOTO 8001 7580 F3 = 0: F4 = 0: H3 = 0: H4 = 0: L3 = 0: L4 = 0 7590 K5 = 0: PRINT #1, "ФАКТОРЫ F(1)=F3+F4,H(1)=H3+H4,L(1)=L3+L4" 7595 FOR J = 1 TO X: F(J) = 0: H(J) = 0: L(J) = 0: Z(J) = 0: NEXT J 7600 X = 0: PRINT #1, "F4,H4,L4- ШАГ ПРИРАЩЕНИЯ 1,2,3-ГО ФАКТОРОВ" 7601 PRINT "F4,H4,L4- ШАГ ПРИРАЩЕНИЯ 1,2,3-ГО ФАКТОРОВ" 7602 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1,2,3-ГО ФАКТОРОВ" 7603 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1,2,3-ГО ФАКТОРОВ" 7610 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4,L3,L4" 7620 INPUT X, F3, F4, H3, H4, L3, L4 7630 PRINT #1, "X="; X; "F3="; F3; "F4="; F4; "H3="; H3; 7640 PRINT #1, "H4="; H4; "L3="; L3; "L4="; L4 7650 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7655 PRINT #1, "F("; K5; ")="; F(K5) 7660 H(K5) = H3 + K5 * H4: PRINT #1, "H("; K5; ")="; H(K5) 7670 L(K5) = L3 + K5 * L4: PRINT #1, "L("; K5; ")= "; L(K5) 7680 GOSUB 4150: GOSUB 4170: GOSUB 4190: GOSUB 4770: NEXT K5 8001 PRINT #1, "ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5)": K8 = 0: K8 = Z(1) 8002 PRINT "ВВОД I0=90-ПРОДОЛЖЕНИЕ" 8004 INPUT I0 8010 FOR K5 = 1 TO X 8020 IF Z(K5) >= K8 THEN K8 = Z(K5) 8040 NEXT K5: PRINT #1, "MAX Z(K5)="; K8 8041 FOR K5 = 1 TO X 8042 IF Z(K5) = K8 THEN PRINT #1, "MAX Z("; K5; ")="; Z(K5) 8044 NEXT K5 8050 K7 = 0: K7 = Z(1) 8060 FOR K5 = 1 TO X 8070 IF Z(K5) <= K7 THEN K7 = Z(K5) 8090 NEXT K5: PRINT #1, "MIN Z(K5)="; K7 8091 FOR K5 = 1 TO X 8092 IF Z(K5) = K7 THEN PRINT #1, "MIN Z("; K5; ")="; Z(K5) 8094 NEXT K5: K6 = 0: PRINT #1, "MIN Z(K5)=К7, MAX Z(K5)=K8" 8095 PRINT #1, "K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8))" 8096 FOR K5 = 1 TO X: K6(K5) = (Z(K5) + ABS(K7)) / (ABS(K7) + ABS(K8)) 8097 PRINT #1, "K6("; K5; ")="; K6(K5): NEXT K5 8098 J5 = 0: J5 = ABS(K7) / (ABS(K7) + ABS(K8)) 8099 PRINT #1, "J5=ABS(K7)/(ABS(K7)+ABS(K8))" 8111 PRINT #1, "J5="; J5 8112 PRINT "IF I0=70 GOTO 7000-ПОВТОРЕНИЕ "; 8113 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5) "; 8114 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 8115 PRINT "IF I0=80 GOTO 9000-ПОСТРОЕНИЕ ГРАФИКА" 8120 INPUT I0 8125 IF I0 = 70 GOTO 7000 8130 IF I0 = 80 GOTO 9000 9000 PRINT "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3 9001 K0 = 0: K3 = 0: K4 = 0: K4 = X: K7 = 0: K8 = 0: X0 = 0: Y0 = 0 9010 PRINT #1, "ПОСТРОЕНИЕ ГРАФИКА" 9015 PRINT #1, "ЗАВИСИМОСТЬ K6(K5) ОТ ФАКТОРА" 9020 PRINT #1, "K6(K5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 9025 PRINT #1, "K5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ" 9030 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ " 9035 PRINT "ВВОД:X0-ОТСТУП ВПРАВО ПО ОСИ Х (ПРЕДПОЧТИТЕЛЬНО Х0=20)" 9036 PRINT " Y0-ОТСТУП ВНИЗ ПО ОСИ Y (ПРЕДПОЧТИТЕЛЬНО Y0=180)"
121
9037 PRINT " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9038 PRINT " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9045 INPUT X0, Y0, K0, K3 9046 PRINT #1, "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3; ", ГДЕ" 9047 PRINT #1, " X0-ОТСТУП ВПРАВО ПО ОСИ Х " 9048 PRINT #1, " Y0-ОТСТУП ВНИЗ ПО ОСИ Y " 9049 PRINT #1, " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9050 PRINT #1, " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9054 KEY OFF: CLS 9055 COLOR 0, 0: SCREEN 2 9056 FOR K5 = 1 TO K4: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9057 LINE (K7(K5) - X0, Y0)-(K7(K5) - X0, Y0 - K8(K5)): NEXT K5 9059 J6 = 0: J6 = X - 1: J7 = 0: J8 = 0: J9 = 0: K7 = 0: K8 = 0: J9 = K3 * J5 9060 FOR K5 = 1 TO J6: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9061 J7(K5) = (K5 + 1) * K0: J8(K5) = K3 * K6(K5 + 1) 9062 LINE (K7(K5) - X0, Y0)-(J7(K5) - X0, Y0) 9063 LINE (K7(K5) - X0, Y0 - J9)-(J7(K5) - X0, Y0 - J9) 9065 LINE (K7(K5) - X0, Y0 - K8(K5))-(J7(K5) - X0, Y0 - J8(K5)): NEXT K5 9071 A$ = "" 9072 A$ = INKEY$: IF A$ = "" THEN 9072 9073 SCREEN 0: CLS : COLOR 2, 0 9074 PRINT "ВВОД I0=75 GOTO 9000-ПОВТОРЕНИЕ ПОСТРОЕНИЯ ГРАФИКА" 9075 PRINT "ВВОД I0=85 GOTO 7000-ПОВТОРЕНИЕ" 9076 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5)" 9078 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 9079 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 9080 PRINT "ВВОД I0=95 GOTO 6830-КОНЕЦ": PRINT 9081 INPUT I0 9083 IF I0 = 75 GOTO 9000 9090 IF I0 = 85 GOTO 7000 9095 IF I0 = 95 GOTO 6830 10150 PRINT #1, "1.1."; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10160 PRINT #1, "1.2."; "E1="; E1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10170 PRINT #1, "1.3."; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10180 RETURN 10190 PRINT #1, "1.1."; "A2="; A2; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10200 PRINT #1, "1.2."; "A2="; A2; "E1="; E1; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 10210 PRINT #1, "1.3."; "A2="; A2; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10220 PRINT #1, "2.1."; "E2="; E2; "A1="; A1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 10230 PRINT #1, "2.2."; "E2="; E2; "E1="; E1; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 10240 PRINT #1, "2.3."; "E2="; E2; "B1="; B1; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 10250 PRINT #1, "3.1."; "B2="; B2; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10260 PRINT #1, "3.2."; "B2="; B2; "E1="; E1; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 10270 PRINT #1, "3.3."; "B2="; B2; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10280 PRINT #1, "4.1."; "A1="; A1; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10290 PRINT #1, "4.2."; "A1="; A1; "E2="; E2; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 10300 PRINT #1, "4.3."; "A1="; A1; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10310 PRINT #1, "5.1."; "E1="; E1; "A2="; A2; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 10320 PRINT #1, "5.2."; "E1="; E1; "E2="; E2; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 10330 PRINT #1, "5.3."; "E1="; E1; "B2="; B2; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 10340 PRINT #1, "6.1."; "B1="; B1; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10350 PRINT #1, "6.2."; "B1="; B1; "E2="; E2; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 10360 PRINT #1, "6.3."; "B1="; B1; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10370 RETURN 10380 PRINT #1, "1.1."; "A2="; A2; "A3="; A3; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10390 PRINT #1, "1.2."; "A2="; A2; "A3="; A3; "E1="; E1; "Z(23)="; Z(23); "Z1(23)="; Z1(23) 10400 PRINT #1, "1.3."; "A2="; A2; "A3="; A3; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2)
122
10410 PRINT #1, "2.1."; "A2="; A2; "E3="; E3; "A1="; A1; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 10420 PRINT #1, "2.2."; "A2="; A2; "E3="; E3; "E1="; E1; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 10430 PRINT #1, "2.3."; "A2="; A2; "E3="; E3; "B1="; B1; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 10440 PRINT #1, "3.1."; "A2="; A2; "B3="; B3; "A1="; A1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 10450 PRINT #1, "3.2."; "A2="; A2; "B3="; B3; "E1="; E1; "Z(25)="; Z(25); "Z1(25)="; Z1(25) 10460 PRINT #1, "3.3."; "A2="; A2; "B3="; B3; "B1="; B1; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 10470 PRINT #1, "4.1."; "E2="; E2; "A3="; A3; "A1="; A1; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 10480 PRINT #1, "4.2."; "E2="; E2; "A3="; A3; "E1="; E1; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 10490 PRINT #1, "4.3."; "E2="; E2; "A3="; A3; "B1="; B1; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 10500 PRINT #1, "5.1."; "E2="; E2; "E3="; E3; "A1="; A1; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 10510 PRINT #1, "5.2."; "E2="; E2; "E3="; E3; "E1="; E1; "Z(27)="; Z(27); "Z1(27)="; Z1(27) 10520 PRINT #1, "5.3."; "E2="; E2; "E3="; E3; "B1="; B1; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 10530 PRINT #1, "6.1."; "E2="; E2; "B3="; B3; "A1="; A1; "Z(21)="; Z(21); "Z1(21)="; Z1(21) 10540 PRINT #1, "6.2."; "E2="; E2; "B3="; B3; "E1="; E1; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 10550 PRINT #1, "6.3."; "E2="; E2; "B3="; B3; "B1="; B1; "Z(22)="; Z(22); "Z1(22)="; Z1(22) 10560 PRINT #1, "7.1."; "B2="; B2; "A3="; A3; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10570 PRINT #1, "7.2."; "B2="; B2; "A3="; A3; "E1="; E1; "Z(24)="; Z(24); "Z1(24)="; Z1(24) 10580 PRINT #1, "7.3."; "B2="; B2; "A3="; A3; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10590 PRINT #1, "8.1."; "B2="; B2; "E3="; E3; "A1="; A1; "Z(17)="; Z(17); "Z1(17)="; Z1(17) 10600 PRINT #1, "8.2."; "B2="; B2; "E3="; E3; "E1="; E1; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 10610 PRINT #1, "8.3."; "B2="; B2; "E3="; E3; "B1="; B1; "Z(18)="; Z(18); "Z1(18)="; Z1(18) 10620 PRINT #1, "9.1."; "B2="; B2; "B3="; B3; "A1="; A1; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 10630 PRINT #1, "9.2."; "B2="; B2; "B3="; B3; "E1="; E1; "Z(26)="; Z(26); "Z1(26)="; Z1(26) 10640 PRINT #1, "9.3."; "B2="; B2; "B3="; B3; "B1="; B1; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 10650 PRINT #1, "10.1."; "A3="; A3; "A1="; A1; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10660 PRINT #1, "10.2."; "A3="; A3; "A1="; A1; "E2="; E2; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 10670 PRINT #1, "10.3."; "A3="; A3; "A1="; A1; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10680 PRINT #1, "11.1."; "A3="; A3; "E1="; E1; "A2="; A2; "Z(23)="; Z(23); "Z1(23)="; Z1(23) 10690 PRINT #1, "11.2."; "A3="; A3; "E1="; E1; "E2="; E2; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 10700 PRINT #1, "11.3."; "A3="; A3; "E1="; E1; "B2="; B2; "Z(24)="; Z(24); "Z1(24)="; Z1(24) 10710 PRINT #1, "12.1."; "A3="; A3; "B1="; B1; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10720 PRINT #1, "12.2."; "A3="; A3; "B1="; B1; "E2="; E2; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 10730 PRINT #1, "12.3."; "A3="; A3; "B1="; B1; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10740 PRINT #1, "13.1."; "E3="; E3; "A1="; A1; "A2="; A2; "Z(15)="; Z(15); "Z 1(15)="; Z1(15) 10750 PRINT #1, "13.2."; "E3="; E3; "A1="; A1; "E2="; E2; "Z(9)="; Z(9); "Z 1(9)="; Z1(9) 10760 PRINT #1, "13.3."; "E3="; E3; "A1="; A1; "B2="; B2; "Z(17)="; Z(17); "Z 1(17)="; Z1(17) 10770 PRINT #1, "14.1."; "E3="; E3; "E1="; E1; "A2="; A2; "Z(11)="; Z(11); "Z 1(11)="; Z1(11) 10780 PRINT #1, "14.2."; "E3="; E3; "E1="; E1; "E2="; E2; "Z(27)="; Z(27); "Z 1(27)="; Z1(27) 10790 PRINT #1, "14.3."; "E3="; E3; "E1="; E1; "B2="; B2; "Z(12)="; Z(12); "Z 1(12)="; Z1(12) 10800 PRINT #1, "15.1."; "E3="; E3; "B1="; B1; "A2="; A2; "Z(16)="; Z(16); "Z 1(16)="; Z1(16) 10810 PRINT #1, "15.2."; "E3="; E3; "B1="; B1; "E2="; E2; "Z(10)="; Z(10); "Z 1(10)="; Z1(10) 10820 PRINT #1, "15.3."; "E3="; E3; "B1="; B1; "B2="; B2; "Z(18)="; Z(18); "Z 1(18)="; Z1(18) 10830 PRINT #1, "16.1."; "B3="; B3; "A1="; A1; "A2="; A2; "Z(5)="; Z(5); "Z 1(5)="; Z1(5) 10840 PRINT #1, "16.2."; "B3="; B3; "A1="; A1; "E2="; E2; "Z(21)="; Z(21); "Z 1(21)="; Z1(21) 10850 PRINT #1, "16.3."; "B3="; B3; "A1="; A1; "B2="; B2; "Z(7)="; Z(7); "Z 1(7)="; Z1(7) 10860 PRINT #1, "17.1."; "B3="; B3; "E1="; E1; "A2="; A2; "Z(25)="; Z(25); "Z 1(25)="; Z1(25) 10870 PRINT #1, "17.2."; "B3="; B3; "E1="; E1; "E2="; E2; "Z(14)="; Z(14); "Z 1(14)="; Z1(14) 10880 PRINT #1, "17.3."; "B3="; B3; "E1="; E1; "B2="; B2; "Z(26)="; Z(26); "Z 1(26)="; Z1(26) 10890 PRINT #1, "18.1."; "B3="; B3; "B1="; B1; "A2="; A2; "Z(6)="; Z(6); "Z 1(6)="; Z1(6) 10900 PRINT #1, "18.2."; "B3="; B3; "B1="; B1; "E2="; E2; "Z(22)="; Z(22); "Z 1(22)="; Z1(22) 10910 PRINT #1, "18.3."; "B3="; B3; "B1="; B1; "B2="; B2; "Z(8)="; Z(8); "Z 1(8)="; Z1(8) 10920 PRINT #1, "19.1."; "A1="; A1; "A2="; A2; "A3="; A3; "Z(1)="; Z(1); "Z 1(1)="; Z1(1) 10930 PRINT #1, "19.2."; "A1="; A1; "A2="; A2; "E3="; E3; "Z(15)="; Z(15); "Z 1(15)="; Z1(15) 10940 PRINT #1, "19.3."; "A1="; A1; "A2="; A2; "B3="; B3; "Z(5)="; Z(5); "Z 1(5)="; Z1(5) 10950 PRINT #1, "20.1."; "A1="; A1; "E2="; E2; "A3="; A3; "Z(19)="; Z(19); "Z 1(19)="; Z1(19) 10960 PRINT #1, "20.2."; "A1="; A1; "E2="; E2; "E3="; E3; "Z(9)="; Z(9); "Z 1(9)="; Z1(9) 10970 PRINT #1, "20.3."; "A1="; A1; "E2="; E2; "B3="; B3; "Z(21)="; Z(21); "Z 1(21)="; Z1(21)
123
10980 PRINT #1, "21.1."; "A1="; A1; "B2="; B2; "A3="; A3; "Z(3)="; Z(3); "Z 1(3)="; Z1(3) 10990 PRINT #1, "21.2."; "A1="; A1; "B2="; B2; "E3="; E3; "Z(17)="; Z(17); "Z 1(17)="; Z1(17) 11000 PRINT #1, "21.3."; "A1="; A1; "B2="; B2; "B3="; B3; "Z(7)="; Z(7); "Z 1(7)="; Z1(7) 11010 PRINT #1, "22.1."; "E1="; E1; "A2="; A2; "A3="; A3; "Z(23)="; Z(23); "Z 1(23)="; Z1(23) 11020 PRINT #1, "22.2."; "E1="; E1; "A2="; A2; "E3="; E3; "Z(11)="; Z(11); "Z 1(11)="; Z1(11) 11030 PRINT #1, "22.3."; "E1="; E1; "A2="; A2; "B3="; B3; "Z(25)="; Z(25); "Z 1(25)="; Z1(25) 11040 PRINT #1, "23.1."; "E1="; E1; "E2="; E2; "A3="; A3; "Z(13)="; Z(13); "Z 1(13)="; Z1(13) 11050 PRINT #1, "23.2."; "E1="; E1; "E2="; E2; "E3="; E3; "Z(27)="; Z(27); "Z 1(27)="; Z1(27) 11060 PRINT #1, "23.3."; "E1="; E1; "E2="; E2; "B3="; B3; "Z(14)="; Z(14); "Z 1(14)="; Z1(14) 11070 PRINT #1, "24.1."; "E1="; E1; "B2="; B2; "A3="; A3; "Z(24)="; Z(24); "Z 1(24)="; Z1(24) 11080 PRINT #1, "24.2."; "E1="; E1; "B2="; B2; "E3="; E3; "Z(12)="; Z(12); "Z 1(12)="; Z1(12) 11090 PRINT #1, "24.3."; "E1="; E1; "B2="; B2; "B3="; B3; "Z(26)="; Z(26); "Z 1(26)="; Z1(26) 11100 PRINT #1, "25.1."; "B1="; B1; "A2="; A2; "A3="; A3; "Z(2)="; Z(2); "Z 1(2)="; Z1(2) 11110 PRINT #1, "25.2."; "B1="; B1; "A2="; A2; "E3="; E3; "Z(16)="; Z(16); "Z 1(16)="; Z1(16) 11120 PRINT #1, "25.3."; "B1="; B1; "A2="; A2; "B3="; B3; "Z(6)="; Z(6); "Z 1(6)="; Z1(6) 11130 PRINT #1, "26.1."; "B1="; B1; "E2="; E2; "A3="; A3; "Z(20)="; Z(20); "Z 1(20)="; Z1(20) 11140 PRINT #1, "26.2."; "B1="; B1; "E2="; E2; "E3="; E3; "Z(10)="; Z(10); "Z 1(10)="; Z1(10) 11150 PRINT #1, "26.3."; "B1="; B1; "E2="; E2; "B3="; B3; "Z(22)="; Z(22); "Z 1(22)="; Z1(22) 11160 PRINT #1, "27.1."; "B1="; B1; "B2="; B2; "A3="; A3; "Z(4)="; Z(4); "Z 1(4)="; Z1(4) 11170 PRINT #1, "27.2."; "B1="; B1; "B2="; B2; "E3="; E3; "Z(18)="; Z(18); "Z 1(18)="; Z1(18) 11180 PRINT #1, "27.3."; "B1="; B1; "B2="; B2; "B3="; B3; "Z(8)="; Z(8); "Z 1(8)="; Z1(8) 11190 RETURN
124
ПРОГРАММА NW4 (планы 41, 42, Х = 4, Х = 16) 5 PRINT "ПРОГРАММА NW4 РАЗРАБОТКА ЧЕРНОГО А.А." 6 CLS 7 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW4" 8 PRINT "ЗАНОСЯТСЯ В ФАЙЛ,ИМЯ КОТОРОГО НАДО ВВЕСТИ," 9 PRINT "НАПРИМЕР, ВВЕСТИ ИМЯ ФАЙЛА NW41" 10 INPUT "ВВОД ИМЕНИ ФАЙЛА ", FA$ 14 OPEN "O", #1, FA$ 17 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW4 ЗАНОСЯТСЯ В ФАЙЛ "; FA$ 40 PRINT " РАЗРАБОТКИ ДЛЯ X=4,X=16" 41 PRINT #1, "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW4, РАЗРАБОТАННОЙ А.А. ЧЕРНЫМ" 42 DIM F(20), H(20), L(20), Y(20), I(20), K(20), P(20) 44 DIM Q(20), U(20), V(20), o(20), B(20), Z(20), G(20), T(20) 46 DIM K6(20), K7(20), K8(20), J7(20), J8(20), J9(20) 47 DIM Z1(50) 51 PRINT "ВВОД X-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 52 PRINT #1, "КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 60 INPUT X: PRINT #1, "X="; X 61 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 62 PRINT "ВВОД ВЕЛИЧИН ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 200 PRINT "ВВОД A1,C1,D1,B1,J1,O1,P1" 210 INPUT A1, C1, D1, B1, J1, O1, P1 213 PRINT #1, "A1="; A1; " C1="; C1; " D1="; D1 215 PRINT #1, " B1="; B1; " J1="; J1; " O1="; O1; " P1="; P1 220 A = A1: B = B1: C = C1: D = D1: N = J1: R = O1: S = P1: GOSUB 3710 230 V1 = V0: U1 = U0: Q1 = Q0: I1 = I0: M1 = M0: F1 = F0 240 PRINT #1, "V1="; V1; " U1="; U1; " Q1="; Q1 243 PRINT #1, " I1="; I1; " M1="; M1; " F1="; F1 245 IF X = 16 GOTO 400 260 IF X = 4 GOTO 600 400 PRINT "ВВОД A2,C2,D2,B2,J2,O2,P2" 410 INPUT A2, C2, D2, B2, J2, O2, P2: PRINT #1, "A2="; A2 413 PRINT #1, "C2="; C2; " D2="; D2; " B2="; B2; " J2="; J2 415 PRINT #1, "O2="; O2; "P2="; P2 420 A = A2: B = B2: C = C2: D = D2: N = J2: R = O2: S = P2: GOSUB 3710 430 V2 = V0: U2 = U0: Q2 = Q0: I2 = I0: M2 = M0: F2 = F0 440 PRINT #1, "V2="; V2; " U2="; U2; " Q2="; Q2; " I2="; I2 443 PRINT #1, "M2="; M2; " F2="; F2 450 IF X = 16 GOTO 770 600 F(1) = A1: F(2) = B1: F(3) = C1: F(4) = D1: GOTO 1130 770 F(1) = A1: H(1) = A2: F(2) = B1: H(2) = A2: F(3) = A1: H(3) = B2 780 F(4) = B1: H(4) = B2: F(5) = A1: H(5) = C2: F(6) = B1: H(6) = C2 790 F(7) = A1: H(7) = D2: F(8) = B1: H(8) = D2: F(9) = C1: H(9) = A2 800 F(10) = C1: H(10) = C2: F(11) = C1: H(11) = D2: F(12) = C1 805 H(12) = B2 810 F(13) = D1: H(13) = A2: F(14) = D1: H(14) = C2: F(15) = D1 815 H(15) = D2 820 F(16) = D1: H(16) = B2: GOTO 1130 1130 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 1135 PRINT "IF I0=7 GOTO 1160-ПРОДОЛЖЕНИЕ" 1140 INPUT I0: IF I0 = 6 GOTO 40 1150 IF I0 = 7 GOTO 1160 1160 PRINT "ВВОД ВЕЛИЧИН ПОКАЗАТЕЛЕЙ ПО ПЛАНУ Y(J) " 1161 PRINT #1, "ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ В СООТВЕТСТВИИ С ПЛАНОМ Y(J)" 1165 FOR J = 1 TO X
125
1166 PRINT "Y("; J; ")": INPUT Y(J) 1170 PRINT #1, "Y("; J; ")="; Y(J): NEXT J 1180 PRINT "IF I0=1 GOTO 1160-ПОВТОРЕНИЕ ВВОДА ПОКАЗАТЕЛЕЙ" 1185 PRINT "IF I0=2 GOTO 1220-ПРОДОЛЖЕНИЕ" 1190 PRINT "ВВОД I0": INPUT I0: IF I0 = 1 GOTO 1160 1200 IF I0 = 2 GOTO 1220 1220 IF X = 4 GOTO 1320 1270 IF X = 16 GOTO 1370 1320 GOSUB 4210: GOTO 1410 1370 GOSUB 4210: GOSUB 4250: GOTO 1410 1410 S = 0: O(1) = 0: FOR J = 1 TO X: S = S + Y(J): O(1) = O(1) + 1: NEXT J 1420 B(1) = S / O(1): S = 0: O(2) = 0: FOR J = 1 TO X: S = S + I(J) * Y(J) 1430 O(2) = O(2) + I(J) ^ 2: NEXT J: B(2) = S / O(2): S = 0: O(3) = 0 1440 FOR J = 1 TO X: S = S + K(J) * Y(J): O(3) = O(3) + K(J) ^ 2: NEXT J 1450 B(3) = S / O(3) 1460 IF X = 4 GOTO 2000 1480 S = 0: O(4) = 0: FOR J = 1 TO X: S = S + P(J) * Y(J) 1490 O(4) = O(4) + P(J) ^ 2: NEXT J: B(4) = S / O(4): S = 0: O(5) = 0 1500 FOR J = 1 TO X: S = S + I(J) * P(J) * Y(J): O(5) = O(5) + (I(J) * P(J)) ^ 2 1510 NEXT J: B(5) = S / O(5): S = 0: O(6) = 0: FOR J = 1 TO X 1520 S = S + Q(J) * Y(J): O(6) = O(6) + Q(J) ^ 2: NEXT J: B(6) = S / O(6) 1530 S = 0: O(7) = 0: FOR J = 1 TO X: S = S + I(J) * Q(J) * Y(J) 1540 O(7) = O(7) + (I(J) * Q(J)) ^ 2: NEXT J: B(7) = S / O(7): S = 0 1550 O(8) = 0: FOR J = 1 TO X: S = S + P(J) * K(J) * Y(J) 1560 O(8) = O(8) + (P(J) * K(J)) ^ 2: NEXT J: B(8) = S / O(8): S = 0: O(9) = 0 1570 FOR J = 1 TO X: S = S + K(J) * Q(J) * Y(J): O(9) = O(9) + (K(J) * Q(J)) ^ 2 1580 NEXT J: B(9) = S / O(9) 1600 S = 0: O(10) = 0: FOR J = 1 TO X: S = S + U(J) * Y(J): O(10) = O(10) + U(J) ^ 2 1610 NEXT J: B(10) = S / O(10): S = 0: O(11) = 0: FOR J = 1 TO X 1620 S = S + I(J) * U(J) * Y(J): O(11) = O(11) + (I(J) * U(J)) ^ 2: NEXT J 1630 B(11) = S / O(11): S = 0: O(12) = 0: FOR J = 1 TO X: S = S + K(J) * U(J) * Y(J) 1640 O(12) = O(12) + (K(J) * U(J)) ^ 2: NEXT J: B(12) = S / O(12) 1660 IF X = 16 GOTO 1930 1930 S = 0: O(13) = 0: FOR J = 1 TO X: S = S + L(J) * Y(J): O(13) = O(13) + L(J) ^ 2 1940 NEXT J: B(13) = S / O(13): S = 0: O(14) = 0: FOR J = 1 TO X 1950 S = S + P(J) * L(J) * Y(J): O(14) = O(14) + (P(J) * L(J)) ^ 2: NEXT J 1960 B(14) = S / O(14): S = 0: O(15) = 0: FOR J = 1 TO X: S = S + Q(J) * L(J) * Y(J) 1970 O(15) = O(15) + (Q(J) * L(J)) ^ 2: NEXT J: B(15) = S / O(15): S = 0 1980 O(16) = 0: FOR J = 1 TO X: S = S + L(J) * U(J) * Y(J) 1990 O(16) = O(16) + (L(J) * U(J)) ^ 2: NEXT J: B(16) = S / O(16): GOTO 2390 2000 S = 0: O(4) = O: FOR J = 1 TO X: S = S + L(J) * Y(J): O(4) = O(4) + L(J) ^ 2 2010 NEXT J: B(4) = S / O(4): IF X = 4 GOTO 2390 2390 PRINT #1, "B(J) ДО АНАЛИЗА": FOR J = 1 TO X 2395 PRINT #1, "B("; J; ")="; B(J) 2397 NEXT J: PRINT 2400 PRINT "ВВОД N0-КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2407 INPUT N0 2408 PRINT #1, "КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2410 PRINT #1, "N0="; N0 2420 IF X = 4 GOTO 2520 2470 IF X = 16 GOTO 2570 2520 GOSUB 4400: GOTO 2610 2570 GOSUB 4580: GOTO 2610 2610 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ Z(J) ДО АНАЛИЗА B(J)" 2620 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 2630 PRINT "ВВОД F8=N0-1": INPUT F8 2633 PRINT #1, "F8=N0-1="; F8
126
2635 PRINT "F8="; F8 2640 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 2641 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J)) * (100/Y(J))" 2650 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 2651 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 2655 NEXT J 2660 PRINT "IF I0=3 GOTO 2720-ВВОД РЕЗУЛЬТАТОВ ОПЫТОВ " 2663 PRINT " НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2666 PRINT "IF I0=4 GOTO 2770-ВВОД ДИСПЕРСИИ ОПЫТОВ" 2670 PRINT "IF I0=5 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 2672 PRINT " РАСЧEТЫ ПО МОДЕЛИ" 2773 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 2677 PRINT "IF I0=20 GOTO 6830-КОНЕЦ" 2678 PRINT "IF I0=25 GOTO 4880-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 2679 PRINT "IF I0=27 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 2681 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 2684 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 2689 PRINT "ВВОД I0": INPUT I0: IF I0 = 3 GOTO 2720 2690 IF I0 = 4 GOTO 2770 2700 IF I0 = 5 GOTO 3240 2710 IF I0 = 6 GOTO 40 2715 IF I0 = 20 GOTO 6830 2717 IF I0 = 25 GOTO 4880 2718 IF I0 = 27 GOTO 7000 2720 PRINT "ВВОД G(J)-РЕЗУЛЬТАТЫ ОПЫТОВ "; 2721 PRINT "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 2722 PRINT #1, "РЕЗУЛЬТАТЫ ОПЫТОВ "; 2723 PRINT #1, "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 2724 FOR J = 1 TO N0: PRINT "G("; J; ")": INPUT G(J) 2730 PRINT #1, "G("; J; ")="; G(J): NEXT J: S = 0: FOR J = 1 TO N0: S = S + G(J) 2740 NEXT J: S0 = S / N0: PRINT "S0="; S0: S = 0: FOR J = 1 TO N0 2750 S = S + (G(J) - S0) ^ 2: NEXT J: U9 = S / F8 2751 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 2760 GOTO 2780 2770 PRINT "ВВОД U9-ДИСПЕРСИЯ ОПЫТОВ": INPUT U9 2771 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 2780 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ T(J)": FOR J = 1 TO X 2790 T(J) = ABS(B(J) / SQR(U9 / o(J))): PRINT #1, "T("; J; ")="; T(J): NEXT J 2800 PRINT " ДЛЯ УРОВНЯ ЗНАЧИМОСТИ 5% " 2801 PRINT " ПРИ F8 2 ; 3 ; 4 ; 5 ; 6" 2802 PRINT "СООТВЕТСТВЕННО T0 4.303 ;3.182 ;2.776 ;2.571 ;2.447" 2803 PRINT "F8=N0-1="; N0; "-1="; F8 2804 PRINT "ВВОД T0-ТАБЛИЧНЫЙ Т-КРИТЕРИЙ" 2805 INPUT T0 2806 PRINT #1, "ТАБЛИЧНЫЙ Т-КРИТЕРИЙ T0="; T0 2810 PRINT #1, "B(J) ПОСЛЕ АНАЛИЗА": FOR J = 1 TO X 2820 IF T(J) < T0 GOTO 2840 2830 IF T(J) >= T0 GOTO 2850 2840 B(J) = 0 2850 PRINT #1, "B("; J; ")="; B(J): NEXT J 2860 K9 = 0: FOR J = 1 TO X: IF B(J) = 0 GOTO 2871 2870 K9 = K9 + 1 2871 NEXT J 2872 PRINT #1, "КОЛИЧЕСТВО СТАТИСТИЧЕСКИ ЗНАЧИМЫХ" 2873 PRINT #1, " КОЭФФИЦИЕНТОВ РЕГРЕССИИ K9="; K9 2881 PRINT #1, "F9=X-1": F9 = X - 1 2882 PRINT #1, "F9="; F9: CLS
127
2883 PRINT "! ! ЗНАЧЕНИЯ F-КРИТЕРИЯ F7 ДЛЯ 5%-ГО УРОВНЯ ЗНАЧИМОСТИ" 2884 PRINT "! !---------------------------------------------------" 2885 PRINT "!F8! F9 " 2886 PRINT "! !---------------------------------------------------" 2887 PRINT "! ! 2 ! 3 ! 4 ! 8 ! 11 ! 14 " 2888 PRINT "-------------------------------------------------------" 2889 PRINT "! 2! 19.0 ! 19.16 ! 19.25 ! 19.37 ! 19.4 ! 19.42 " 2890 PRINT "! 3! 9.55 ! 9.28 ! 9.12 ! 8.84 ! 8.76 ! 8.71 " 2891 PRINT "! 4! 6.94 ! 6.59 ! 6.39 ! 6.04 ! 5.93 ! 5.87 " 2892 PRINT "! 5! 5.79 ! 5.41 ! 5.19 ! 4.82 ! 4.7 ! 4.64 " 2893 PRINT "! 6! 5.14 ! 4.76 ! 4.53 ! 4.15 ! 4.03 ! 3.96 " 2894 PRINT "!======================================================" 2895 PRINT "! F8 \ F9 ! 15...16 ! 19...20 ! 24 ! 26...30 !" 2896 PRINT "!------------------------------------------------------" 2897 PRINT "! 2 ! 19.43 ! 19.44 ! 19.45 ! 19.46 !" 2898 PRINT "! 3 ! 8.69 ! 8.66 ! 8.64 ! 8.62 !" 2899 PRINT "! 4 ! 5.84 ! 5.8 ! 5.77 ! 5.74 !" 2900 PRINT "! 5 ! 4.6 ! 4.56 ! 4.53 ! 4.5 !" 2901 PRINT "! 6 ! 3.92 ! 3.87 ! 3.84 ! 3.81 !" 2902 PRINT "-------------------------------------------------------" 2907 PRINT "F8="; F8; "F9="; F9 2908 PRINT "ВВОД F7-ТАБЛИЧНЫЙ F-КРИТЕРИЙ" 2909 INPUT F7: PRINT #1, "ТАБЛИЧНЫЙ F-КРИТЕРИЙ F7="; F7 2920 IF X = 4 GOTO 3020 2970 IF X = 16 GOTO 3070 3020 GOSUB 4400: GOTO 3110 3070 GOSUB 4580: GOTO 3110 3110 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ"; 3115 PRINT #1, " Z(J) ПОСЛЕ АНАЛИЗА B(J)" 3120 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 3121 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 3122 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J)) * (100/Y(J))" 3123 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 3124 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 3125 NEXT J 3130 S = 0: FOR J = 1 TO X: S = S + (Z(J) - Y(J)) ^ 2: NEXT J 3140 F6 = S / (F9 * U9) 3145 PRINT #1, "РАСЧЕТНАЯ ВЕЛИЧИНА F-КРИТЕРИЯ F6="; F6 3150 IF F6 <= F7 GOTO 3152 3151 IF F6 > F7 GOTO 3153 3152 PRINT "АДЕКВАТНО": PRINT #1, "АДЕКВАТНО,ТАК КАК F6<=F7": GOTO 3154 3153 PRINT "НЕАДЕКВАТНО": PRINT #1, "НЕАДЕКВАТНО,ТАК КАК F6>F7": GOTO 3190 3154 PRINT #1, "СИСТЕМНОЕ ПРЕДСТАВЛЕНИЕ" 3155 PRINT #1, "ДЛЯ АНАЛИЗОВ РЕЗУЛЬТАТОВ РАСЧЕТОВ" 3156 PRINT #1, "ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 3157 S = 0: FOR J = 1 TO X: S = S + ABS(Z(J)): NEXT J 3158 Z1 = 0: FOR J = 1 TO X: Z1(J) = Z(J) / (S / X): NEXT J 3159 PRINT #1, "ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 3160 PRINT #1, "Z1(J)=Z(J)/(S/X),ГДЕ S-СУММА" 3161 PRINT #1, "АБСОЛЮТНЫХ ВЕЛИЧИН ПОКАЗАТЕЛЕЙ,S="; S 3162 PRINT #1, "S/X- СРЕДНЯЯ АРИФМЕТИЧЕСКАЯ ВЕЛИЧИНА, S/X="; S / X 3166 IF X = 4 GOTO 3176 3167 IF X = 16 GOTO 3177 3176 GOSUB 11200: GOTO 3190 3177 GOSUB 11250: GOTO 3190 3190 PRINT "IF I0=7 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 3193 PRINT " РАСЧЕТЫ ПО МОДЕЛИ"
128
3194 PRINT "IF I0=8 GOTO 40-НАЧАЛО" 3197 PRINT "IF I0=17 GOTO 4880-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 3198 PRINT "IF I0=22 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 3200 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 3203 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 3207 PRINT "IF I0=9 GOTO 6830-КОНЕЦ": PRINT "ВВОД I0": INPUT I0 3210 IF I0 = 7 GOTO 3240 3220 IF I0 = 8 GOTO 40 3227 IF I0 = 17 GOTO 4880 3228 IF I0 = 22 GOTO 7000 3230 IF I0 = 9 GOTO 6830 3240 PRINT "ПРОВЕРКА ТОЧНОСТИ И РАСЧЕТЫ ПО МОДЕЛИ" 3241 PRINT "F(S),H(S) -1, 2-й ФАКТОРЫ," 3243 PRINT "ГДЕ S=X="; X; "-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ" 3245 PRINT #1, "РАСЧЕТЫ ПО МОДЕЛИ" 3260 IF X = 4 GOTO 3350 3310 IF X = 16 GOTO 3420 3350 FOR S = 1 TO X: F(S) = 0: Z(S) = 0: PRINT "ВВОД F("; S; ")" 3360 INPUT F(S): PRINT #1, "ФАКТОР F("; S; ")="; F(S) 3370 IF X = 4 GOTO 3400 3400 GOSUB 4210: GOSUB 4400: GOTO 3412 3412 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 3610 3420 FOR S = 1 TO X: F(S) = 0: H(S) = 0: Z(S) = 0 3430 PRINT "ВВОД F("; S; "),H("; S; ")": INPUT F(S), H(S) 3432 PRINT #1, " ФАКТОРЫ F("; S; ")="; F(S); "H("; S; ")="; H(S) 3470 IF X = 16 GOTO 3530 3530 GOSUB 4210: GOSUB 4250: GOSUB 4580: GOTO 3552 3552 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 3610 3610 PRINT "IF I0=10 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И "; 3611 PRINT "РАСЧЕТЫ ПО МОДЕЛИ" 3612 PRINT "IF I0=11 GOTO 4880 - МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 3615 PRINT "IF I0=14 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 3616 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 3617 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 3620 PRINT "IF I0=12 GOTO 6830-КОНЕЦ" 3625 PRINT "ВВОД I0": INPUT I0 3630 IF I0 = 10 GOTO 3240 3640 IF I0 = 11 GOTO 4880 3650 IF I0 = 12 GOTO 6830 3653 IF I0 = 14 GOTO 7000 3710 N0 = (A ^ N + B ^ N + C ^ N + D ^ N) / 4 3720 R0 = (A ^ R + B ^ R + C ^ R + D ^ R) / 4 3730 S0 = (A ^ S + B ^ S + C ^ S + D ^ S) / 4: L2 = 2 * N 3740 N3 = (A ^ L2 + B ^ L2 + C ^ L2 + D ^ L2) / 4: K2 = 2 * R 3750 R3 = (A ^ K2 + B ^ K2 + C ^ K2 + D ^ K2) / 4: N4 = N + R 3760 N5 = (A ^ N4 + B ^ N4 + C ^ N4 + D ^ N4) / 4: N6 = N + S 3770 N7 = (A ^ N6 + B ^ N6 + C ^ N6 + D ^ N6) / 4: R4 = R + S 3780 R5 = (A ^ R4 + B ^ R4 + C ^ R4 + D ^ R4) / 4: V0 = -N0 3790 U0 = (N0 * R0 - N5) / (N3 - N0 ^ 2): Q0 = -(R0 + U0 * N0) 3800 P0 = (N0 * S0 - N7) / (N3 - N0 ^ 2): Z1 = R0 * S0 - R5 + P0 * (N0 * R0 - N5) 3810 Z2 = U0 * (N0 * S0 - N7) + U0 * P0 * (N0 ^ 2 - N3) 3820 Z3 = R3 - R0 ^ 2 + 2 * U0 * (N5 - N0 * R0) 3830 I0 = (Z1 + Z2) / (Z3 + (N3 - N0 ^ 2) * U0 ^ 2): M0 = I0 * U0 + P0 3840 F0 = -(S0 + I0 * R0 + M0 * N0)
129
3850 PRINT #1, "КОЭФФИЦИЕНТЫ ОРТОГОНАЛИЗАЦИИ": RETURN 4210 FOR J = 1 TO X: I(J) = F(J) ^ J1 + V1 4220 K(J) = F(J) ^ O1 + U1 * F(J) ^ J1 + Q1 4230 L(J) = F(J) ^ P1 + I1 * F(J) ^ O1 + M1 * F(J) ^ J1 + F1: NEXT J 4240 RETURN 4250 FOR J = 1 TO X: P(J) = H(J) ^ J2 + V2 4260 Q(J) = H(J) ^ O2 + U2 * H(J) ^ J2 + Q2 4270 U(J) = H(J) ^ P2 + I2 * H(J) ^ O2 + M2 * H(J) ^ J2 + F2: NEXT J 4280 RETURN 4400 FOR J = 1 TO X: Z(J) = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * L(J) 4410 NEXT J: RETURN 4580 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * P(J) 4590 N4 = B(5) * I(J) * P(J) + B(6) * Q(J) + B(7) * I(J) * Q(J) + B(8) * P(J) * K(J) 4600 N5 = B(9) * K(J) * Q(J) + B(10) * U(J) + B(11) * I(J) * U(J) + B(12) * K(J) * U(J) 4610 N6 = B(13) * L(J) + B(14) * P(J) * L(J) + B(15) * Q(J) * L(J) 4620 Z(J) = N3 + N4 + N5 + N6 + B(16) * L(J) * U(J): NEXT J: RETURN 4880 PRINT #1, "МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 4901 IF X = 4 GOTO 6070 4905 IF X = 16 GOTO 6280 6070 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 6080 PRINT #1, "+"; B(4); "*L(J)," 6090 IF X = 4 GOTO 6600 6280 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 6290 PRINT #1, "+"; B(4); "*P(J)+"; B(5); "I(J)*P(J)+" 6300 PRINT #1, "+"; B(6); "*Q(J)+"; B(7); "*I(J)*Q(J)+" 6310 PRINT #1, "+"; B(8); "*P(J)*K(J)+"; B(9); "*K(J)*Q(J)+" 6320 PRINT #1, "+"; B(10); "*U(J)+"; B(11); "*I(J)*U(J)+" 6330 PRINT #1, "+"; B(12); "*K(J)*U(J)+"; B(13); "*L(J)+" 6340 PRINT #1, "+"; B(14); "*P(J)*L(J)+"; B(15); "*Q(J)*L(J)+" 6350 PRINT #1, "+"; B(16); "*L(J)*U(J)," 6360 IF X = 16 GOTO 6600 6600 PRINT #1, "ГДЕ" 6610 PRINT #1, "I(J)=F(J)^"; J1; "+"; V1; ";" 6620 PRINT #1, "K(J)=F(J)^"; O1; "+"; U1; "*F(J)^"; J1; "+"; Q1 6621 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 6650 PRINT #1, "L(J)=F(J)^"; P1; "+"; I1; "*F(J)^"; O1; "+" 6660 PRINT #1, "+"; M1; "F(J)^"; J1; "+"; F1 6661 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 6670 IF X = 4 GOTO 6790 6673 IF X = 16 GOTO 6710 6680 PRINT #1, "M(J)=F(J)^"; T1; "+"; G1; "*F(J)^"; P1; "+" 6690 PRINT #1, "+"; H1; "*F(J)^"; O1; "+"; K1; "*F(J)^"; I1; "+"; L1 6691 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 6710 PRINT #1, "P(J)=H(J)^"; J2; "+"; V2; ";" 6720 PRINT #1, "Q(J)=H(J)^"; O2; "+"; U2; "*H(J)^"; J2; "+"; Q2; ";" 6730 PRINT #1, "U(J)=H(J)^"; P2; "+"; I2; "*H(J)^"; O2; "+" 6740 PRINT #1, "+"; M2; "*H(J)^"; J2; "+"; F2 6741 PRINT #1, "ОБОЗНАЧЕНИЕ: H(J)- 2-й ФАКТОР" 6750 IF X = 16 GOTO 6790 6760 PRINT #1, "V(J)=H(J)^"; T2; "+"; G2; "*H(J)^"; P2; "+" 6770 PRINT #1, "+"; H2; "*H(J)^"; O2; "+"; K2; "*H(J)^"; J2; "+" 6780 PRINT #1, "+"; L2 6781 PRINT #1, "ОБОЗНАЧЕНИЕ: H(J)- 2-й ФАКТОР" 6790 PRINT "IF I0=18 GOTO 2660-ПЕРЕХОДЫ" 6792 PRINT "IF I0=19 GOTO 3190-ПЕРЕХОДЫ " 6793 PRINT "IF I0=35 GOTO 1160-ВВОД НОВЫХ Y(J)" 6795 PRINT "IF I0=44 GOTO 6830-КОНЕЦ"
130
6796 PRINT "IF I0=50 GOTO 40-НАЧАЛО" 6797 PRINT "IF I0=51 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 6798 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 6799 PRINT "IF I0=52 GOTO 7000-" 6800 PRINT " ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) " 6802 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 6803 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 6805 PRINT "ВВОД I0": INPUT I0 6810 IF I0 = 18 GOTO 2660 6820 IF I0 = 19 GOTO 3190 6823 IF I0 = 35 GOTO 1160 6825 IF I0 = 44 GOTO 6830 6827 IF I0 = 50 GOTO 40 6828 IF I0 = 51 GOTO 3240 6829 IF I0 = 52 GOTO 7000 6830 CLOSE #1 6832 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ СМОТРИ В "; 6835 PRINT "ФАЙЛЕ "; FA$ 6840 END 7000 PRINT #1, "ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 7004 PRINT #1, " ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 7005 PRINT #1, " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ" 7006 PRINT #1, "И ПОСТРОЕНИЕ ГРАФИКОВ" 7010 PRINT "ВВОД I0=61 ПРИ Х=4,Х=16 " 7040 PRINT "IF I0=64 GOTO 40-НАЧАЛО" 7050 PRINT "IF I0=65 GOTO 6830-КОНЕЦ" 7060 INPUT I0 7070 IF I0 = 61 GOTO 7190 7100 IF I0 = 64 GOTO 40 7110 IF I0 = 65 GOTO 6830 7190 PRINT "ВВОД I0=74 ПРИ X=4,I0=79 ПРИ X=16" 7200 INPUT I0 7201 IF I0 = 74 GOTO 7210 7202 IF I0 = 79 GOTO 7360 7210 F3 = 0: F4 = 0: K5 = 0: PRINT #1, "ФАКТОР F(1)=F3+F4" 7213 PRINT "ФАКТОР F(1)=F3+F4" 7215 FOR J = 1 TO X: F(J) = 0: Z(J) = 0: NEXT J: X = 0 7220 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7225 PRINT "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7226 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7227 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7230 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4" 7240 INPUT X, F3, F4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4 7250 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7255 PRINT #1, "F("; K5; ")="; F(K5) 7300 GOSUB 4210: GOSUB 4400: GOTO 7320 7320 PRINT #1, "Z("; K5; ")="; Z(K5) 7325 NEXT K5: GOTO 8001 7360 F3 = 0: F4 = 0: H3 = 0: H4 = 0: K5 = 0: PRINT #1, "ФАКТОР F(1)=F3+F4" 7361 PRINT "ФАКТОР F(1)=F3+F4" 7365 FOR J = 1 TO X: F(J) = 0: H(J) = 0: Z(J) = 0: NEXT J: X = 0 7370 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА" 7371 PRINT "F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА" 7380 PRINT #1, "ФАКТОР H(1)=H3+H4" 7381 PRINT "ФАКТОР H(1)=H3+H4" 7390 PRINT #1, "H4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА" 7391 PRINT "H4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА"
131
7392 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1, 2-ГО ФАКТОРОВ" 7393 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1, 2-ГО ФАКТОРОВ" 7400 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4" 7410 INPUT X, F3, F4, H3, H4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4 7420 PRINT #1, "H3="; H3; "H4="; H4 7430 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7435 PRINT #1, "F("; K5; ")= "; F(K5) 7440 H(K5) = H3 + K5 * H4: PRINT #1, "H("; K5; ")= "; H(K5) 7540 GOSUB 4210: GOSUB 4250: GOSUB 4580: GOTO 7570 7550 GOSUB 4210: GOTO 7570 7570 PRINT #1, "Z("; K5; ")="; Z(K5) 7575 NEXT K5: GOTO 8001 8001 PRINT #1, "ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5)": K8 = 0: K8 = Z(1) 8002 PRINT "ВВОД I0=90-ПРОДОЛЖЕНИЕ" 8004 INPUT I0 8010 FOR K5 = 1 TO X 8020 IF Z(K5) >= K8 THEN K8 = Z(K5) 8040 NEXT K5: PRINT #1, "MAX Z(K5)="; K8 8041 FOR K5 = 1 TO X 8042 IF Z(K5) = K8 THEN PRINT #1, "MAX Z("; K5; ")="; Z(K5) 8044 NEXT K5 8050 K7 = 0: K7 = Z(1) 8060 FOR K5 = 1 TO X 8070 IF Z(K5) <= K7 THEN K7 = Z(K5) 8090 NEXT K5: PRINT #1, "MIN Z(K5)="; K7 8091 FOR K5 = 1 TO X 8092 IF Z(K5) = K7 THEN PRINT #1, "MIN Z("; K5; ")="; Z(K5) 8094 NEXT K5: K6 = 0: PRINT #1, "MIN Z(K5)=К7, MAX Z(K5)=K8" 8095 PRINT #1, "K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8))" 8096 FOR K5 = 1 TO X: K6(K5) = (Z(K5) + ABS(K7)) / (ABS(K7) + ABS(K8)) 8097 PRINT #1, "K6("; K5; ")="; K6(K5): NEXT K5 8098 J5 = 0: J5 = ABS(K7) / (ABS(K7) + ABS(K8)) 8099 PRINT #1, "J5=ABS(K7)/(ABS(K7)+ABS(K8))" 8111 PRINT #1, "J5="; J5 8112 PRINT "IF I0=70 GOTO 7000-ПОВТОРЕНИЕ "; 8113 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5) "; 8114 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 8115 PRINT "IF I0=80 GOTO 9000-ПОСТРОЕНИЕ ГРАФИКА" 8120 INPUT I0 8125 IF I0 = 70 GOTO 7000 8130 IF I0 = 80 GOTO 9000 9000 PRINT "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3 9001 K0 = 0: K3 = 0: K4 = 0: K4 = X: K7 = 0: K8 = 0: X0 = 0: Y0 = 0 9010 PRINT #1, "ПОСТРОЕНИЕ ГРАФИКА" 9015 PRINT #1, "ЗАВИСИМОСТЬ K6(K5) ОТ ФАКТОРА" 9020 PRINT #1, "K6(K5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 9025 PRINT #1, "K5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ" 9030 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ " 9035 PRINT "ВВОД:X0-ОТСТУП ВПРАВО ПО ОСИ Х (ПРЕДПОЧТИТЕЛЬНО Х0=20)" 9036 PRINT " Y0-ОТСТУП ВНИЗ ПО ОСИ Y (ПРЕДПОЧТИТЕЛЬНО Y0=180)" 9037 PRINT " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9038 PRINT " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9045 INPUT X0, Y0, K0, K3 9046 PRINT #1, "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3; ", ГДЕ" 9047 PRINT #1, " X0-ОТСТУП ВПРАВО ПО ОСИ Х " 9048 PRINT #1, " Y0-ОТСТУП ВНИЗ ПО ОСИ Y " 9049 PRINT #1, " K0-ДЛИНА ГРАФИКА ПО ОСИ Х"
132
9050 PRINT #1, " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9054 KEY OFF: CLS 9055 COLOR 0, 0: SCREEN 2 9056 FOR K5 = 1 TO K4: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9057 LINE (K7(K5) - X0, Y0)-(K7(K5) - X0, Y0 - K8(K5)): NEXT K5 9059 J6 = 0: J6 = X - 1: J7 = 0: J8 = 0: J9 = 0: K7 = 0: K8 = 0: J9 = K3 * J5 9060 FOR K5 = 1 TO J6: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9061 J7(K5) = (K5 + 1) * K0: J8(K5) = K3 * K6(K5 + 1) 9062 LINE (K7(K5) - X0, Y0)-(J7(K5) - X0, Y0) 9063 LINE (K7(K5) - X0, Y0 - J9)-(J7(K5) - X0, Y0 - J9) 9065 LINE (K7(K5) - X0, Y0 - K8(K5))-(J7(K5) - X0, Y0 - J8(K5)): NEXT K5 9071 A$ = "" 9072 A$ = INKEY$: IF A$ = "" THEN 9072 9073 SCREEN 0: CLS : COLOR 2, 0 9074 PRINT "ВВОД I0=75 GOTO 9000-ПОВТОРЕНИЕ ПОСТРОЕНИЯ ГРАФИКА" 9075 PRINT "ВВОД I0=85 GOTO 7000-ПОВТОРЕНИЕ" 9076 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5)" 9078 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 9079 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 9080 PRINT "ВВОД I0=95 GOTO 6830-КОНЕЦ": PRINT 9081 INPUT I0 9083 IF I0 = 75 GOTO 9000 9090 IF I0 = 85 GOTO 7000 9095 IF I0 = 95 GOTO 6830 11200 PRINT #1, "1.1."; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11210 PRINT #1, "1.2."; "C1="; C1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11220 PRINT #1, "1.3."; "D1="; D1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11230 PRINT #1, "1.4."; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11240 RETURN 11250 PRINT #1, "1.1."; "A2="; A2; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11260 PRINT #1, "1.2."; "A2="; A2; "C1="; C1; "Z(9) = "; Z(9); " Z1(9) = "; Z1(9) 11270 PRINT #1, "1.3."; "A2="; A2; "D1="; D1; "Z(13) = "; Z(13); "Z1(13) = "; Z1(13) 11280 PRINT #1, "1.4."; "A2="; A2; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11290 PRINT #1, "2.1."; "C2="; C2; "A1="; A1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11300 PRINT #1, "2.2."; "C2="; C2; "C1="; C1; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 11310 PRINT #1, "2.3."; "C2="; C2; "D1="; D1; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 11320 PRINT #1, "2.4."; "C2="; C2; "B1="; B1; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 11330 PRINT #1, "3.1."; "D2="; D2; "A1="; A1; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 11340 PRINT #1, "3.2."; "D2="; D2; "C1="; C1; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 11350 PRINT #1, "3.3."; "D2="; D2; "D1="; D1; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 11360 PRINT #1, "3.4."; "D2="; D2; "B1="; B1; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 11370 PRINT #1, "4.1."; "B2="; B2; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11380 PRINT #1, "4.2."; "B2="; B2; "C1="; C1; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 11390 PRINT #1, "4.3."; "B2="; B2; "D1="; D1; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 11400 PRINT #1, "4.4."; "B2="; B2; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11410 PRINT #1, "5.1."; "A1="; A1; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11420 PRINT #1, "5.2."; "A1="; A1; "C2="; C2; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11430 PRINT #1, "5.3."; "A1="; A1; "D2="; D2; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 11440 PRINT #1, "5.4."; "A1="; A1; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11450 PRINT #1, "6.1."; "C1="; C1; "A2="; A2; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 11460 PRINT #1, "6.2."; "C1="; C1; "C2="; C2; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 11470 PRINT #1, "6.3."; "C1="; C1; "D2="; D2; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 11480 PRINT #1, "6.4."; "C1="; C1; "B2="; B2; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 11490 PRINT #1, "7.1."; "D1="; D1; "A2="; A2; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 11500 PRINT #1, "7.2."; "D1="; D1; "C2="; C2; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 11510 PRINT #1, "7.3."; "D1="; D1; "D2="; D2; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 11520 PRINT #1, "7.4."; "D1="; D1; "B2="; B2; "Z(16)="; Z(16); "Z1(16)="; Z1(16)
133
11530 PRINT #1, "8.1."; "B1="; B1; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11540 PRINT #1, "8.2."; "B1="; B1; "C2="; C2; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 11550 PRINT #1, "8.3."; "B1="; B1; "D2="; D2; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 11560 PRINT #1, "8.4."; "B1="; B1; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11570 RETURN
134
ПРОГРАММА NW5 (планы 51, 52, Х = 5, Х = 25) 5 PRINT "ПРОГРАММА NW5,РАЗРАБОТКА А.А.ЧЕРНОГО" 6 CLS 7 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW5" 8 PRINT "ЗАНОСЯТСЯ В ФАЙЛ,ИМЯ КОТОРОГО НАДО ВВЕСТИ," 9 PRINT "НАПРИМЕР, ВВЕСТИ ИМЯ ФАЙЛА NW51" 10 INPUT "ВВОД ИМЕНИ ФАЙЛА ", FA$ 14 OPEN "O", #1, FA$ 17 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW5 ЗАНОСЯТСЯ В ФАЙЛ "; FA$ 40 PRINT " РАЗРАБОТКИ ДЛЯ X=5,X=25" 41 PRINT #1, "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW5, РАЗРАБОТАННОЙ А.А. ЧЕРНЫМ" 42 DIM F(50), H(50), L(50), Y(27), I(50), K(50), M(50), P(50) 44 DIM Q(50), U(50), V(50), O(27), B(27), Z(50), G(20), T(27) 46 DIM K6(50), K7(50), K8(50), J7(50), J8(50), J9(50) 47 DIM Z1(50) 51 PRINT "ВВОД X-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 52 PRINT #1, "КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 60 INPUT X: PRINT #1, "X="; X 61 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 62 PRINT "ВВОД ВЕЛИЧИН ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 90 IF X = 5 GOTO 270 100 IF X = 25 GOTO 270 270 PRINT "ВВОД A1,C1,E1,D1,B1,J1,O1,P1,T1" 280 INPUT A1, C1, E1, D1, B1, J1, O1, P1, T1 290 PRINT #1, "A1="; A1; " C1="; C1; " E1="; E1 293 PRINT #1, "D1="; D1; " B1="; B1; " J1="; J1 295 PRINT #1, "O1="; O1; " P1="; P1; " T1="; T1: A = A1: B = B1 300 C = C1: D = D1: E = E1: N = J1: R = O1: S = P1: W = T1: GOSUB 3860 310 V1 = V0: U1 = U0: Q1 = Q0: I1 = I0: M1 = M0: F1 = F0: G1 = G0: H1 = H0 320 K1 = K0: L1 = L0: PRINT #1, "V1="; V1; " U1="; U1; " Q1="; Q1 323 PRINT #1, "I1="; I1; " M1="; M1; " F1="; F1; " G1="; G1 325 PRINT #1, "H1="; H1; " K1="; K1; " L1="; L1 330 IF X = 25 GOTO 460 340 IF X = 5 GOTO 610 460 PRINT "ВВОД A2,C2,E2,D2,B2,J2,O2,P2,T2" 470 INPUT A2, C2, E2, D2, B2, J2, O2, P2, T2 480 PRINT #1, "A2="; A2; " C2="; C2; " E2="; E2; " D2="; D2 483 PRINT #1, "B2="; B2; " J2="; J2; " O2="; O2 485 PRINT #1, "P2="; P2; " T2="; T2: A = A2: B = B2 490 C = C2: D = D2: E = E2: N = J2: R = O2: S = P2: W = T2: GOSUB 3860 500 V2 = V0: U2 = U0: Q2 = Q0: I2 = I0: M2 = M0: F2 = F0: G2 = G0: H2 = H0 510 K2 = K0: L2 = L0: PRINT #1, "V2="; V2; "U2="; U2; "Q2="; Q2 513 PRINT #1, "I2="; I2; " M2="; M2; " F2="; F2; " G2="; G2 515 PRINT #1, "H2="; H2; " K2="; K2; " L2="; L2 540 IF X = 25 GOTO 900 589 REM ПЛАНЫ 610 F(1) = A1: F(2) = B1: F(3) = C1: F(4) = D1: F(5) = E1: GOTO 1130 900 F(1) = A1: H(1) = A2: F(2) = B1: H(2) = A2: F(3) = A1: H(3) = B2 910 F(4) = B1: H(4) = B2: F(5) = A1: H(5) = E2: F(6) = B1: H(6) = E2 920 F(7) = E1: H(7) = A2: F(8) = E1: H(8) = B2: F(9) = E1: H(9) = E2 930 F(10) = A1: H(10) = C2: F(11) = B1: H(11) = D2: F(12) = A1: H(12) = D2 940 F(13) = B1: H(13) = C2: F(14) = E1: H(14) = C2: F(15) = E1: H(15) = D2 950 F(16) = C1: H(16) = A2: F(17) = C1: H(17) = C2: F(18) = C1: H(18) = E2 960 F(19) = C1: H(19) = D2: F(20) = C1: H(20) = B2: F(21) = D1: H(21) = A2 970 F(22) = D1: H(22) = C2: F(23) = D1: H(23) = E2: F(24) = D1: H(24) = D2
135
980 F(25) = D1: H(25) = B2: GOTO 1130 1130 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 1135 PRINT "IF I0=7 GOTO 1160-ПРОДОЛЖЕНИЕ" 1140 INPUT I0: IF I0 = 6 GOTO 40 1150 IF I0 = 7 GOTO 1160 1160 PRINT "ВВОД ВЕЛИЧИН ПОКАЗАТЕЛЕЙ ПО ПЛАНУ Y(J) " 1161 PRINT #1, "ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ В СООТВЕТСТВИИ С ПЛАНОМ Y(J)" 1165 FOR J = 1 TO X 1166 PRINT "Y("; J; ")": INPUT Y(J) 1170 PRINT #1, "Y("; J; ")="; Y(J): NEXT J 1180 PRINT "IF I0=1 GOTO 1160-ПОВТОРЕНИЕ ВВОДА ПОКАЗАТЕЛЕЙ" 1185 PRINT "IF I0=2 GOTO 1230-ПРОДОЛЖЕНИЕ" 1190 PRINT "ВВОД I0": INPUT I0: IF I0 = 1 GOTO 1160 1200 IF I0 = 2 GOTO 1230 1230 IF X = 5 GOTO 1330 1290 IF X = 25 GOTO 1390 1330 GOSUB 4290: GOTO 1410 1390 GOSUB 4290: GOSUB 4340: GOTO 1410 1410 S = 0: O(1) = 0: FOR J = 1 TO X: S = S + Y(J): O(1) = O(1) + 1: NEXT J 1420 B(1) = S / O(1): S = 0: O(2) = 0: FOR J = 1 TO X: S = S + I(J) * Y(J) 1430 O(2) = O(2) + I(J) ^ 2: NEXT J: B(2) = S / O(2): S = 0: O(3) = 0 1440 FOR J = 1 TO X: S = S + K(J) * Y(J): O(3) = O(3) + K(J) ^ 2: NEXT J 1450 B(3) = S / O(3) 1470 IF X = 5 GOTO 2000 1480 S = 0: O(4) = 0: FOR J = 1 TO X: S = S + P(J) * Y(J) 1490 O(4) = O(4) + P(J) ^ 2: NEXT J: B(4) = S / O(4): S = 0: O(5) = 0 1500 FOR J = 1 TO X: S = S + I(J) * P(J) * Y(J): O(5) = O(5) + (I(J) * P(J)) ^ 2 1510 NEXT J: B(5) = S / O(5): S = 0: O(6) = 0: FOR J = 1 TO X 1520 S = S + Q(J) * Y(J): O(6) = O(6) + Q(J) ^ 2: NEXT J: B(6) = S / O(6) 1530 S = 0: O(7) = 0: FOR J = 1 TO X: S = S + I(J) * Q(J) * Y(J) 1540 O(7) = O(7) + (I(J) * Q(J)) ^ 2: NEXT J: B(7) = S / O(7): S = 0 1550 O(8) = 0: FOR J = 1 TO X: S = S + P(J) * K(J) * Y(J) 1560 O(8) = O(8) + (P(J) * K(J)) ^ 2: NEXT J: B(8) = S / O(8): S = 0: O(9) = 0 1570 FOR J = 1 TO X: S = S + K(J) * Q(J) * Y(J): O(9) = O(9) + (K(J) * Q(J)) ^ 2 1580 NEXT J: B(9) = S / O(9) 1600 S = 0: O(10) = 0: FOR J = 1 TO X: S = S + U(J) * Y(J): O(10) = O(10) + U(J) ^ 2 1610 NEXT J: B(10) = S / O(10): S = 0: O(11) = 0: FOR J = 1 TO X 1620 S = S + I(J) * U(J) * Y(J): O(11) = O(11) + (I(J) * U(J)) ^ 2: NEXT J 1630 B(11) = S / O(11): S = 0: O(12) = 0: FOR J = 1 TO X: S = S + K(J) * U(J) * Y(J) 1640 O(12) = O(12) + (K(J) * U(J)) ^ 2: NEXT J: B(12) = S / O(12) 1670 S = 0: O(13) = 0: FOR J = 1 TO X: S = S + V(J) * Y(J) 1680 O(13) = O(13) + V(J) ^ 2: NEXT J: B(13) = S / O(13): S = 0: O(14) = 0 1690 FOR J = 1 TO X: S = S + I(J) * V(J) * Y(J): O(14) = O(14) + (I(J) * V(J)) ^ 2 1700 NEXT J: B(14) = S / O(14): S = 0: O(15) = 0: FOR J = 1 TO X 1710 S = S + K(J) * V(J) * Y(J): O(15) = O(15) + (K(J) * V(J)) ^ 2: NEXT J 1720 B(15) = S / O(15) 1730 S = 0: O(16) = 0: FOR J = 1 TO X: S = S + L(J) * Y(J): O(16) = O(16) + L(J) ^ 2 1740 NEXT J: B(16) = S / O(16): S = 0: O(17) = 0: FOR J = 1 TO X 1750 S = S + P(J) * L(J) * Y(J): O(17) = O(17) + (P(J) * L(J)) ^ 2: NEXT J 1760 B(17) = S / O(17): S = 0: O(18) = 0: FOR J = 1 TO X 1770 S = S + Q(J) * L(J) * Y(J): O(18) = O(18) + (Q(J) * L(J)) ^ 2: NEXT J 1780 B(18) = S / O(18): S = 0: O(19) = 0: FOR J = 1 TO X 1790 S = S + L(J) * U(J) * Y(J): O(19) = O(19) + (L(J) * U(J)) ^ 2: NEXT J 1800 B(19) = S / O(19): S = 0: O(20) = 0: FOR J = 1 TO X 1810 S = S + L(J) * V(J) * Y(J): O(20) = O(20) + (L(J) * V(J)) ^ 2: NEXT J 1820 B(20) = S / O(20) 1830 S = 0: O(21) = 0: FOR J = 1 TO X: S = S + M(J) * Y(J)
136
1840 O(21) = O(21) + M(J) ^ 2: NEXT J: B(21) = S / O(21): S = 0: O(22) = 0 1850 FOR J = 1 TO X: S = S + P(J) * M(J) * Y(J): O(22) = O(22) + (P(J) * M(J)) ^ 2 1860 NEXT J: B(22) = S / O(22): S = 0: O(23) = 0: FOR J = 1 TO X 1870 S = S + Q(J) * M(J) * Y(J): O(23) = O(23) + (Q(J) * M(J)) ^ 2: NEXT J 1880 B(23) = S / O(23): S = 0: O(24) = 0: FOR J = 1 TO X: S = S + U(J) * M(J) * Y(J) 1890 O(24) = O(24) + (U(J) * M(J)) ^ 2: NEXT J: B(24) = S / O(24): S = 0 1900 O(25) = 0: FOR J = 1 TO X: S = S + M(J) * V(J) * Y(J) 1910 O(25) = O(25) + (M(J) * V(J)) ^ 2: NEXT J: B(25) = S / O(25) 1920 IF X = 25 GOTO 2390 2000 S = 0: O(4) = 0: FOR J = 1 TO X: S = S + L(J) * Y(J): O(4) = O(4) + L(J) ^ 2 2010 NEXT J: B(4) = S / O(4) 2020 S = 0: O(5) = 0: FOR J = 1 TO X: S = S + M(J) * Y(J) 2030 O(5) = O(5) + M(J) ^ 2: NEXT J: B(5) = S / O(5): GOTO 2390 2390 PRINT #1, "B(J) ДО АНАЛИЗА": FOR J = 1 TO X 2395 PRINT #1, "B("; J; ")="; B(J) 2397 NEXT J: PRINT 2400 PRINT "ВВОД N0-КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2407 INPUT N0 2408 PRINT #1, "КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2410 PRINT #1, "N0="; N0 2430 IF X = 5 GOTO 2530 2490 IF X = 25 GOTO 2590 2530 GOSUB 4420: GOTO 2610 2590 GOSUB 4690: GOTO 2610 2610 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ Z(J) ДО АНАЛИЗА B(J)" 2620 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 2630 PRINT "ВВОД F8=N0-1": INPUT F8 2633 PRINT #1, "F8=N0-1="; F8 2635 PRINT "F8="; F8 2640 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 2641 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J)) * (100/Y(J))" 2650 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 2651 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 2655 NEXT J 2660 PRINT "IF I0=3 GOTO 2720-ВВОД РЕЗУЛЬТАТОВ ОПЫТОВ " 2663 PRINT " НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2666 PRINT "IF I0=4 GOTO 2770-ВВОД ДИСПЕРСИИ ОПЫТОВ" 2670 PRINT "IF I0=5 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 2672 PRINT " РАСЧEТЫ ПО МОДЕЛИ" 2673 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 2677 PRINT "IF I0=20 GOTO 6830-КОНЕЦ" 2678 PRINT "IF I0=25 GOTO 4880-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 2679 PRINT "IF I0=27 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 2681 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 2684 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 2689 PRINT "ВВОД I0": INPUT I0: IF I0 = 3 GOTO 2720 2690 IF I0 = 4 GOTO 2770 2700 IF I0 = 5 GOTO 3240 2710 IF I0 = 6 GOTO 40 2715 IF I0 = 20 GOTO 6830 2717 IF I0 = 25 GOTO 4880 2718 IF I0 = 27 GOTO 7000 2720 PRINT "ВВОД G(J)-РЕЗУЛЬТАТЫ ОПЫТОВ "; 2721 PRINT "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 2722 PRINT #1, "РЕЗУЛЬТАТЫ ОПЫТОВ "; 2723 PRINT #1, "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 2724 FOR J = 1 TO N0: PRINT "G("; J; ")": INPUT G(J)
137
2730 PRINT #1, "G("; J; ")="; G(J): NEXT J: S = 0: FOR J = 1 TO N0: S = S + G(J) 2740 NEXT J: S0 = S / N0: PRINT "S0="; S0: S = 0: FOR J = 1 TO N0 2750 S = S + (G(J) - S0) ^ 2: NEXT J: U9 = S / F8 2751 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 2760 GOTO 2780 2770 PRINT "ВВОД U9-ДИСПЕРСИЯ ОПЫТОВ": INPUT U9 2771 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 2780 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ T(J)": FOR J = 1 TO X 2790 T(J) = ABS(B(J) / SQR(U9 / O(J))): PRINT #1, "T("; J; ")="; T(J): NEXT J 2800 PRINT " ДЛЯ УРОВНЯ ЗНАЧИМОСТИ 5% " 2801 PRINT " ПРИ F8 2 ; 3 ; 4 ; 5 ; 6" 2802 PRINT "СООТВЕТСТВЕННО T0 4.303 ;3.182 ;2.776 ;2.571 ;2.447" 2803 PRINT "F8=N0-1="; N0; "-1="; F8 2804 PRINT "ВВОД T0-ТАБЛИЧНЫЙ Т-КРИТЕРИЙ" 2805 INPUT T0 2806 PRINT #1, "ТАБЛИЧНЫЙ Т-КРИТЕРИЙ T0="; T0 2810 PRINT #1, "B(J) ПОСЛЕ АНАЛИЗА": FOR J = 1 TO X 2820 IF T(J) < T0 GOTO 2840 2830 IF T(J) >= T0 GOTO 2850 2840 B(J) = 0 2850 PRINT #1, "B("; J; ")="; B(J): NEXT J 2860 K9 = 0: FOR J = 1 TO X: IF B(J) = 0 GOTO 2871 2870 K9 = K9 + 1 2871 NEXT J 2872 PRINT #1, "КОЛИЧЕСТВО СТАТИСТИЧЕСКИ ЗНАЧИМЫХ" 2873 PRINT #1, " КОЭФФИЦИЕНТОВ РЕГРЕССИИ K9="; K9 2881 PRINT #1, "F9=X-1": F9 = X - 1 2882 PRINT #1, "F9="; F9: CLS 2883 PRINT "! ! ЗНАЧЕНИЯ F-КРИТЕРИЯ F7 ДЛЯ 5%-ГО УРОВНЯ ЗНАЧИМОСТИ" 2884 PRINT "! !---------------------------------------------------" 2885 PRINT "!F8! F9 " 2886 PRINT "! !---------------------------------------------------" 2887 PRINT "! ! 2 ! 3 ! 4 ! 8 ! 11 ! 14 " 2888 PRINT "-------------------------------------------------------" 2889 PRINT "! 2! 19.0 ! 19.16 ! 19.25 ! 19.37 ! 19.4 ! 19.42 " 2890 PRINT "! 3! 9.55 ! 9.28 ! 9.12 ! 8.84 ! 8.76 ! 8.71 " 2891 PRINT "! 4! 6.94 ! 6.59 ! 6.39 ! 6.04 ! 5.93 ! 5.87 " 2892 PRINT "! 5! 5.79 ! 5.41 ! 5.19 ! 4.82 ! 4.7 ! 4.64 " 2893 PRINT "! 6! 5.14 ! 4.76 ! 4.53 ! 4.15 ! 4.03 ! 3.96 " 2894 PRINT "!======================================================" 2895 PRINT "! F8 \ F9 ! 15...16 ! 19...20 ! 24 ! 26...30 !" 2896 PRINT "!------------------------------------------------------" 2897 PRINT "! 2 ! 19.43 ! 19.44 ! 19.45 ! 19.46 !" 2898 PRINT "! 3 ! 8.69 ! 8.66 ! 8.64 ! 8.62 !" 2899 PRINT "! 4 ! 5.84 ! 5.8 ! 5.77 ! 5.74 !" 2900 PRINT "! 5 ! 4.6 ! 4.56 ! 4.53 ! 4.5 !" 2901 PRINT "! 6 ! 3.92 ! 3.87 ! 3.84 ! 3.81 !" 2902 PRINT "-------------------------------------------------------" 2907 PRINT "F8="; F8; "F9="; F9 2908 PRINT "ВВОД F7-ТАБЛИЧНЫЙ F-КРИТЕРИЙ" 2909 INPUT F7: PRINT #1, "ТАБЛИЧНЫЙ F-КРИТЕРИЙ F7="; F7 2930 IF X = 5 GOTO 3030 2990 IF X = 25 GOTO 3090 3030 GOSUB 4420: GOTO 3110 3090 GOSUB 4690: GOTO 3110 3110 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ"; 3115 PRINT #1, " Z(J) ПОСЛЕ АНАЛИЗА B(J)"
138
3120 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 3121 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 3122 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J)) * (100/Y(J))" 3123 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 3124 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 3125 NEXT J 3130 S = 0: FOR J = 1 TO X: S = S + (Z(J) - Y(J)) ^ 2: NEXT J 3140 F6 = S / (F9 * U9) 3145 PRINT #1, "РАСЧЕТНАЯ ВЕЛИЧИНА F-КРИТЕРИЯ F6="; F6 3150 IF F6 <= F7 GOTO 3152 3151 IF F6 > F7 GOTO 3153 3152 PRINT "АДЕКВАТНО": PRINT #1, "АДЕКВАТНО,ТАК КАК F6<=F7": GOTO 3154 3153 PRINT "НЕАДЕКВАТНО": PRINT #1, "НЕАДЕКВАТНО,ТАК КАК F6>F7": GOTO 3190 3154 PRINT #1, "СИСТЕМНОЕ ПРЕДСТАВЛЕНИЕ" 3155 PRINT #1, "ДЛЯ АНАЛИЗОВ РЕЗУЛЬТАТОВ РАСЧЕТОВ" 3156 PRINT #1, "ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 3157 S = 0: FOR J = 1 TO X: S = S + ABS(Z(J)): NEXT J 3158 Z1 = 0: FOR J = 1 TO X: Z1(J) = Z(J) / (S / X): NEXT J 3159 PRINT #1, "ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 3160 PRINT #1, "Z1(J)=Z(J)/(S/X),ГДЕ S-СУММА" 3161 PRINT #1, "АБСОЛЮТНЫХ ВЕЛИЧИН ПОКАЗАТЕЛЕЙ,S="; S 3162 PRINT #1, "S/X-СРЕДНЯЯ АРИФМЕТИЧЕСКАЯ ВЕЛИЧИНА,S/X="; S / X 3168 IF X = 5 GOTO 3178 3169 IF X = 25 GOTO 3179 3178 GOSUB 11580: GOTO 3190 3179 GOSUB 11640: GOTO 3190 3190 PRINT "IF I0=7 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 3193 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 3194 PRINT "IF I0=8 GOTO 40-НАЧАЛО" 3197 PRINT "IF I0=17 GOTO 4880-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 3198 PRINT "IF I0=22 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 3200 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 3203 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 3207 PRINT "IF I0=9 GOTO 6830-КОНЕЦ": PRINT "ВВОД I0": INPUT I0 3210 IF I0 = 7 GOTO 3240 3220 IF I0 = 8 GOTO 40 3227 IF I0 = 17 GOTO 4880 3228 IF I0 = 22 GOTO 7000 3230 IF I0 = 9 GOTO 6830 3240 PRINT "ПРОВЕРКА ТОЧНОСТИ И РАСЧЕТЫ ПО МОДЕЛИ" 3241 PRINT "F(S),H(S)-1, 2-Й ФАКТОРЫ," 3243 PRINT "ГДЕ S=X="; X; "-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ" 3245 PRINT #1, "РАСЧЕТЫ ПО МОДЕЛИ" 3270 IF X = 5 GOTO 3350 3330 IF X = 25 GOTO 3420 3350 FOR S = 1 TO X: F(S) = 0: Z(S) = 0: PRINT "ВВОД F("; S; ")" 3360 INPUT F(S): PRINT #1, "ФАКТОР F("; S; ")="; F(S) 3380 IF X = 5 GOTO 3410 3410 GOSUB 4290: GOSUB 4420: GOTO 3412 3412 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 3610 3420 FOR S = 1 TO X: F(S) = 0: H(S) = 0: Z(S) = 0 3430 PRINT "ВВОД F("; S; "),H("; S; ")": INPUT F(S), H(S) 3432 PRINT #1, " ФАКТОРЫ F("; S; ")="; F(S); "H("; S; ")="; H(S) 3490 IF X = 25 GOTO 3550 3550 GOSUB 4290: GOSUB 4340: GOSUB 4690: GOTO 3552 3552 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 3610 3610 PRINT "IF I0=10 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И ";
139
3611 PRINT "РАСЧЕТЫ ПО МОДЕЛИ" 3612 PRINT "IF I0=11 GOTO 4880 - МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 3615 PRINT "IF I0=14 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 3616 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 3617 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 3620 PRINT "IF I0=12 GOTO 6830-КОНЕЦ" 3625 PRINT "ВВОД I0": INPUT I0 3630 IF I0 = 10 GOTO 3240 3640 IF I0 = 11 GOTO 4880 3650 IF I0 = 12 GOTO 6830 3653 IF I0 = 14 GOTO 7000 3860 N0 = (A ^ N + B ^ N + C ^ N + D ^ N + E ^ N) / 5 3870 R0 = (A ^ R + B ^ R + C ^ R + D ^ R + E ^ R) / 5 3880 S0 = (A ^ S + B ^ S + C ^ S + D ^ S + E ^ S) / 5 3890 W0 = (A ^ W + B ^ W + C ^ W + D ^ W + E ^ W) / 5 3900 L2 = 2 * N: N3 = (A ^ L2 + B ^ L2 + C ^ L2 + D ^ L2 + E ^ L2) / 5 3910 K2 = 2 * R: R3 = (A ^ K2 + B ^ K2 + C ^ K2 + D ^ K2 + E ^ K2) / 5 3920 M2 = 2 * S: S3 = (A ^ M2 + B ^ M2 + C ^ M2 + D ^ M2 + E ^ M2) / 5 3930 N4 = N + R: N5 = (A ^ N4 + B ^ N4 + C ^ N4 + D ^ N4 + E ^ N4) / 5 3940 N6 = N + S: N7 = (A ^ N6 + B ^ N6 + C ^ N6 + D ^ N6 + E ^ N6) / 5 3950 N8 = N + W: N9 = (A ^ N8 + B ^ N8 + C ^ N8 + D ^ N8 + E ^ N8) / 5 3960 R4 = R + S: R5 = (A ^ R4 + B ^ R4 + C ^ R4 + D ^ R4 + E ^ R4) / 5 3970 R6 = R + W: R7 = (A ^ R6 + B ^ R6 + C ^ R6 + D ^ R6 + E ^ R6) / 5 3980 S4 = S + W: S5 = (A ^ S4 + B ^ S4 + C ^ S4 + D ^ S4 + E ^ S4) / 5 3990 V0 = -N0: U0 = (N0 * R0 - N5) / (N3 - N0 ^ 2): Q0 = -(R0 + U0 * N0) 4000 P0 = (N0 * S0 - N7) / (N3 - N0 ^ 2): Z1 = R0 * S0 - R5 + P0 * (N0 * R0 - N5) 4010 Z2 = U0 * (N0 * S0 - N7) + U0 * P0 * (N0 ^ 2 - N3) 4020 Z3 = R3 - R0 ^ 2 + 2 * U0 * (N5 - N0 * R0) 4030 I0 = (Z1 + Z2) / (Z3 + (N3 - N0 ^ 2) * U0 ^ 2): M0 = I0 * U0 + P0 4040 F0 = -(S0 + I0 * R0 + M0 * N0): Z4 = R0 + U0 * N0 4050 Z5 = Z4 * N0 - N5 - U0 * N3: Z6 = R3 + U0 * N5 - Z4 * R0 - Z5 * U0 4060 Z7 = Z4 * S0 + Z5 * P0 - R5 - U0 * N7: Z0 = (N0 * W0 - N9) / (N3 - N0 ^ 2) 4070 Z8 = Z5 * Z0 + Z4 * W0 - R7 - U0 * N9: Z9 = S3 + I0 * R5 + M0 * N7 4080 T7 = R5 + I0 * R3 + M0 * N5: T8 = N7 + I0 * N5 + M0 * N3 4090 T9 = S0 + I0 * R0 + M0 * N0: G3 = S5 + I0 * R7 + M0 * N9 4100 G4 = T9 * N0 - T8: G5 = Z9 - T9 * S0 - G4 * P0 4110 G6 = T9 * R0 - T7 + G4 * U0: G7 = G4 * Z0 + T9 * W0 - G3 4120 G0 = (Z6 * G7 + Z8 * G6) / (Z6 * G5 - Z7 * G6): H0 = (G0 * Z7 + Z8) / Z6 4130 K0 = G0 * P0 + H0 * U0 + Z0: L0 = -(W0 + G0 * S0 + H0 * R0 + K0 * N0) 4140 PRINT #1, "КОЭФФИЦИЕНТЫ ОРТОГОНАЛИЗАЦИИ": RETURN 4290 FOR J = 1 TO X: I(J) = F(J) ^ J1 + V1 4300 K(J) = F(J) ^ O1 + U1 * F(J) ^ J1 + Q1 4310 L(J) = F(J) ^ P1 + I1 * F(J) ^ O1 + M1 * F(J) ^ J1 + F1 4320 M(J) = F(J) ^ T1 + G1 * F(J) ^ P1 + H1 * F(J) ^ O1 + K1 * F(J) ^ J1 + L1 4330 NEXT J: RETURN 4340 FOR J = 1 TO X: P(J) = H(J) ^ J2 + V2 4350 Q(J) = H(J) ^ O2 + U2 * H(J) ^ J2 + Q2 4360 U(J) = H(J) ^ P2 + I2 * H(J) ^ O2 + M2 * H(J) ^ J2 + F2 4370 V(J) = H(J) ^ T2 + G2 * H(J) ^ P2 + H2 * H(J) ^ O2 + K2 * H(J) ^ J2 + L2 4380 NEXT J: RETURN 4420 FOR J = 1 TO X 4430 Z(J) = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * L(J) + B(5) * M(J) 4440 NEXT J: RETURN 4690 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * P(J) 4700 N4 = B(5) * I(J) * P(J) + B(6) * Q(J) + B(7) * I(J) * Q(J) + B(8) * P(J) * K(J) 4710 N5 = B(9) * K(J) * Q(J) + B(10) * U(J) + B(11) * I(J) * U(J) 4720 N6 = B(12) * K(J) * U(J) + B(13) * V(J) + B(14) * I(J) * V(J) + B(15) * K(J) * V(J)
140
4730 N7 = B(16) * L(J) + B(17) * P(J) * L(J) + B(18) * Q(J) * L(J) + B(19) * L(J) * U(J) 4740 R3 = B(20) * L(J) * V(J) + B(21) * M(J) + B(22) * P(J) * M(J) 4750 R4 = B(23) * Q(J) * M(J) + B(24) * U(J) * M(J) + B(25) * M(J) * V(J) 4760 Z(J) = N3 + N4 + N5 + N6 + N7 + R3 + R4: NEXT J: RETURN 4880 PRINT #1, "МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 4902 IF X = 5 GOTO 6100 4907 IF X = 25 GOTO 6480 6100 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 6110 PRINT #1, "+"; B(4); "*L(J)+"; B(5); "*M(J)," 6120 IF X = 5 GOTO 6600 6480 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 6490 PRINT #1, "+"; B(4); "*P(J)+"; B(5); "*I(J)*P(J)+" 6500 PRINT #1, "+"; B(6); "*Q(J)+"; B(7); "*I(J)*Q(J)+" 6510 PRINT #1, "+"; B(8); "*P(J)*Q(J)+"; B(9); "*K(J)*Q(J)+" 6520 PRINT #1, "+"; B(10); "*U(J)+"; B(11); "*I(J)*U(J)+" 6530 PRINT #1, "+"; B(12); "*K(J)*U(J)+"; B(13); "*V(J)+" 6540 PRINT #1, "+"; B(14); "*I(J)*V(J)+"; B(15); "*I(J)*V(J)+" 6550 PRINT #1, "+"; B(16); "*L(J)+"; B(17); "*P(J)*L(J)+" 6560 PRINT #1, "+"; B(18); "*Q(J)*L(J)+"; B(19); "*L(J)*U(J)+" 6570 PRINT #1, "+"; B(20); "*L(J)*V(J)+"; B(21); "*M(J)+" 6580 PRINT #1, "+"; B(22); "*P(J)*M(J)+"; B(23); "*Q(J)*M(J)+" 6590 PRINT #1, "+"; B(24); "*U(J)*M(J)+"; B(25); "*M(J)*V(J)," 6600 PRINT #1, "ГДЕ" 6610 PRINT #1, "I(J)=F(J)^"; J1; "+"; V1; ";" 6620 PRINT #1, "K(J)=F(J)^"; O1; "+"; U1; "*F(J)^"; J1; "+"; Q1 6621 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 6650 PRINT #1, "L(J)=F(J)^"; P1; "+"; I1; "*F(J)^"; O1; "+" 6660 PRINT #1, "+"; M1; "F(J)^"; J1; "+"; F1 6661 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 6680 PRINT #1, "M(J)=F(J)^"; T1; "+"; G1; "*F(J)^"; P1; "+" 6690 PRINT #1, "+"; H1; "*F(J)^"; O1; "+"; K1; "*F(J)^"; I1; "+"; L1 6691 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 6700 IF X = 5 GOTO 6790 6710 PRINT #1, "P(J)=H(J)^"; J2; "+"; V2; ";" 6720 PRINT #1, "Q(J)=H(J)^"; O2; "+"; U2; "*H(J)^"; J2; "+"; Q2; ";" 6730 PRINT #1, "U(J)=H(J)^"; P2; "+"; I2; "*H(J)^"; O2; "+" 6740 PRINT #1, "+"; M2; "*H(J)^"; J2; "+"; F2 6741 PRINT #1, "ОБОЗНАЧЕНИЕ: H(J)- 2-й ФАКТОР" 6760 PRINT #1, "V(J)=H(J)^"; T2; "+"; G2; "*H(J)^"; P2; "+" 6770 PRINT #1, "+"; H2; "*H(J)^"; O2; "+"; K2; "*H(J)^"; J2; "+" 6780 PRINT #1, "+"; L2 6781 PRINT #1, "ОБОЗНАЧЕНИЕ: H(J)- 2-й ФАКТОР" 6790 PRINT "IF I0=18 GOTO 2660-ПЕРЕХОДЫ" 6792 PRINT "IF I0=19 GOTO 3190-ПЕРЕХОДЫ " 6793 PRINT "IF I0=35 GOTO 1160-ВВОД НОВЫХ Y(J)" 6795 PRINT "IF I0=44 GOTO 6830-КОНЕЦ" 6796 PRINT "IF I0=50 GOTO 40-НАЧАЛО" 6797 PRINT "IF I0=51 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 6798 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 6799 PRINT "IF I0=52 GOTO 7000-" 6800 PRINT " ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) " 6802 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 6803 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 6805 PRINT "ВВОД I0": INPUT I0 6810 IF I0 = 18 GOTO 2660 6820 IF I0 = 19 GOTO 3190 6823 IF I0 = 35 GOTO 1160
141
6825 IF I0 = 44 GOTO 6830 6827 IF I0 = 50 GOTO 40 6828 IF I0 = 51 GOTO 3240 6829 IF I0 = 52 GOTO 7000 6830 CLOSE #1 6832 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ СМОТРИ В "; 6835 PRINT "ФАЙЛЕ "; FA$ 6840 END 7000 PRINT #1, "ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 7004 PRINT #1, " ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 7005 PRINT #1, " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ" 7006 PRINT #1, "И ПОСТРОЕНИЕ ГРАФИКОВ" 7010 PRINT "ВВОД I0=61 GOTO 7195" 7040 PRINT "IF I0=64 GOTO 40-НАЧАЛО" 7050 PRINT "IF I0=65 GOTO 6830-КОНЕЦ" 7060 INPUT I0 7070 IF I0 = 61 GOTO 7195 7100 IF I0 = 64 GOTO 40 7110 IF I0 = 65 GOTO 6830 7195 PRINT "ВВОД I0=75 ПРИ X = 5; TO = 81 ПРИ X = 25" 7200 INPUT I0 7203 IF I0 = 75 GOTO 7210 7204 IF I0 = 81 GOTO 7360 7210 F3 = 0: F4 = 0: K5 = 0: PRINT #1, "ФАКТОР F(1)=F3+F4" 7213 PRINT "ФАКТОР F(1)=F3+F4" 7215 FOR J = 1 TO X: F(J) = 0: Z(J) = 0: NEXT J: X = 0 7220 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7225 PRINT "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7226 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7227 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7230 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4" 7240 INPUT X, F3, F4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4 7250 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7255 PRINT #1, "F("; K5; ")="; F(K5) 7310 GOSUB 4290: GOSUB 4420 7320 PRINT #1, "Z("; K5; ")="; Z(K5) 7325 NEXT K5: GOTO 8001 7360 F3 = 0: F4 = 0: H3 = 0: H4 = 0: K5 = 0: PRINT #1, "ФАКТОР F(1)=F3+F4" 7361 PRINT "ФАКТОР F(1)=F3+F4" 7365 FOR J = 1 TO X: F(J) = 0: H(J) = 0: Z(J) = 0: NEXT J: X = 0 7370 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА" 7371 PRINT "F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА" 7380 PRINT #1, "ФАКТОР H(1)=H3+H4" 7381 PRINT "ФАКТОР H(1)=H3+H4" 7390 PRINT #1, "H4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА" 7391 PRINT "H4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА" 7392 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1, 2-ГО ФАКТОРОВ" 7393 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1, 2-ГО ФАКТОРОВ" 7400 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4" 7410 INPUT X, F3, F4, H3, H4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4 7420 PRINT #1, "H3="; H3; "H4="; H4 7430 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7435 PRINT #1, "F("; K5; ")= "; F(K5) 7440 H(K5) = H3 + K5 * H4: PRINT #1, "H("; K5; ")= "; H(K5) 7500 IF I0 = 81 GOTO 7560 7560 GOSUB 4290: GOSUB 4340: GOSUB 4690 7570 PRINT #1, "Z("; K5; ")="; Z(K5)
142
7575 NEXT K5: GOTO 8001 8001 PRINT #1, "ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5)": K8 = 0: K8 = Z(1) 8002 PRINT "ВВОД I0=90-ПРОДОЛЖЕНИЕ" 8004 INPUT I0 8010 FOR K5 = 1 TO X 8020 IF Z(K5) >= K8 THEN K8 = Z(K5) 8040 NEXT K5: PRINT #1, "MAX Z(K5)="; K8 8041 FOR K5 = 1 TO X 8042 IF Z(K5) = K8 THEN PRINT #1, "MAX Z("; K5; ")="; Z(K5) 8044 NEXT K5 8050 K7 = 0: K7 = Z(1) 8060 FOR K5 = 1 TO X 8070 IF Z(K5) <= K7 THEN K7 = Z(K5) 8090 NEXT K5: PRINT #1, "MIN Z(K5)="; K7 8091 FOR K5 = 1 TO X 8092 IF Z(K5) = K7 THEN PRINT #1, "MIN Z("; K5; ")="; Z(K5) 8094 NEXT K5: K6 = 0: PRINT #1, "MIN Z(K5)=К7, MAX Z(K5)=K8" 8095 PRINT #1, "K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8))" 8096 FOR K5 = 1 TO X: K6(K5) = (Z(K5) + ABS(K7)) / (ABS(K7) + ABS(K8)) 8097 PRINT #1, "K6("; K5; ")="; K6(K5): NEXT K5 8098 J5 = 0: J5 = ABS(K7) / (ABS(K7) + ABS(K8)) 8099 PRINT #1, "J5=ABS(K7)/(ABS(K7)+ABS(K8))" 8111 PRINT #1, "J5="; J5 8112 PRINT "IF I0=70 GOTO 7000-ПОВТОРЕНИЕ "; 8113 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5) "; 8114 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 8115 PRINT "IF I0=80 GOTO 9000-ПОСТРОЕНИЕ ГРАФИКА" 8120 INPUT I0 8125 IF I0 = 70 GOTO 7000 8130 IF I0 = 80 GOTO 9000 9000 PRINT "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3 9001 K0 = 0: K3 = 0: K4 = 0: K4 = X: K7 = 0: K8 = 0: X0 = 0: Y0 = 0 9010 PRINT #1, "ПОСТРОЕНИЕ ГРАФИКА" 9015 PRINT #1, "ЗАВИСИМОСТЬ K6(K5) ОТ ФАКТОРА" 9020 PRINT #1, "K6(K5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 9025 PRINT #1, "K5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ" 9030 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ " 9035 PRINT "ВВОД:X0-ОТСТУП ВПРАВО ПО ОСИ Х (ПРЕДПОЧТИТЕЛЬНО Х0=20)" 9036 PRINT " Y0-ОТСТУП ВНИЗ ПО ОСИ Y (ПРЕДПОЧТИТЕЛЬНО Y0=180)" 9037 PRINT " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9038 PRINT " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9045 INPUT X0, Y0, K0, K3 9046 PRINT #1, "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3; ", ГДЕ" 9047 PRINT #1, " X0-ОТСТУП ВПРАВО ПО ОСИ Х " 9048 PRINT #1, " Y0-ОТСТУП ВНИЗ ПО ОСИ Y " 9049 PRINT #1, " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9050 PRINT #1, " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9054 KEY OFF: CLS 9055 COLOR 0, 0: SCREEN 2 9056 FOR K5 = 1 TO K4: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9057 LINE (K7(K5) - X0, Y0)-(K7(K5) - X0, Y0 - K8(K5)): NEXT K5 9059 J6 = 0: J6 = X - 1: J7 = 0: J8 = 0: J9 = 0: K7 = 0: K8 = 0: J9 = K3 * J5 9060 FOR K5 = 1 TO J6: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9061 J7(K5) = (K5 + 1) * K0: J8(K5) = K3 * K6(K5 + 1) 9062 LINE (K7(K5) - X0, Y0)-(J7(K5) - X0, Y0) 9063 LINE (K7(K5) - X0, Y0 - J9)-(J7(K5) - X0, Y0 - J9) 9065 LINE (K7(K5) - X0, Y0 - K8(K5))-(J7(K5) - X0, Y0 - J8(K5)): NEXT K5
143
9071 A$ = "" 9072 A$ = INKEY$: IF A$ = "" THEN 9072 9073 SCREEN 0: CLS : COLOR 2, 0 9074 PRINT "ВВОД I0=75 GOTO 9000-ПОВТОРЕНИЕ ПОСТРОЕНИЯ ГРАФИКА" 9075 PRINT "ВВОД I0=85 GOTO 7000-ПОВТОРЕНИЕ" 9076 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5)" 9078 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 9079 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 9080 PRINT "ВВОД I0=95 GOTO 6830-КОНЕЦ": PRINT 9081 INPUT I0 9083 IF I0 = 75 GOTO 9000 9090 IF I0 = 85 GOTO 7000 9095 IF I0 = 95 GOTO 6830 11580 PRINT #1, "1.1."; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11590 PRINT #1, "1.2."; "C1="; C1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11600 PRINT #1, "1.3."; "E1="; E1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11610 PRINT #1, "1.4."; "D1="; D1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11620 PRINT #1, "1.5."; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11630 RETURN 11640 PRINT #1, "1.1."; "A2="; A2; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11650 PRINT #1, "1.2."; "A2="; A2; "C1="; C1; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 11660 PRINT #1, "1.3."; "A2="; A2; "E1="; E1; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 11670 PRINT #1, "1.4."; "A2="; A2; "D1="; D1; "Z(21)="; Z(21); "Z1(21)="; Z1(21) 11680 PRINT #1, "1.5."; "A2="; A2; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11690 PRINT #1, "2.1."; "C2="; C2; "A1="; A1; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 11700 PRINT #1, "2.2."; "C2="; C2; "C1="; C1; "Z(17)="; Z(17); "Z1(1)="; Z1(17) 11710 PRINT #1, "2.3."; "C2="; C2; "E1="; E1; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 11720 PRINT #1, "2.4."; "C2="; C2; "D1="; D1; "Z(22)="; Z(22); "Z1(22)="; Z1(22) 11730 PRINT #1, "2.5."; "C2="; C2; "B1="; B1; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 11740 PRINT #1, "3.1."; "E2="; E2; "A1="; A1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11750 PRINT #1, "3.2."; "E2="; E2; "C1="; C1; "Z(18)="; Z(18); "Z1(18)="; Z1(18) 11760 PRINT #1, "3.3."; "E2="; E2; "E1="; E1; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 11770 PRINT #1, "3.4."; "E2="; E2; "D1="; D1; "Z(23)="; Z(23); "Z1(23)="; Z1(23) 11780 PRINT #1, "3.5."; "E2="; E2; "B1="; B1; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 11790 PRINT #1, "4.1."; "D2="; D2; "A1="; A1; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 11800 PRINT #1, "4.2."; "D2="; D2; "C1="; C1; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 11810 PRINT #1, "4.3."; "D2="; D2; "E1="; E1; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 11820 PRINT #1, "4.4."; "D2="; D2; "D1="; D1; "Z(24)="; Z(24); "Z1(24)="; Z1(24) 11830 PRINT #1, "4.5."; "D2="; D2; "B1="; B1; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 11840 PRINT #1, "5.1."; "B2="; B2; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11850 PRINT #1, "5.2."; "B2="; B2; "C1="; C1; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 11860 PRINT #1, "5.3."; "B2="; B2; "E1="; E1; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 11870 PRINT #1, "5.4."; "B2="; B2; "D1="; D1; "Z(25)="; Z(25); "Z1(25)="; Z1(25) 11880 PRINT #1, "5.5."; "B2="; B2; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11890 PRINT #1, "6.1."; "A1="; A1; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11900 PRINT #1, "6.2."; "A1="; A1; "C2="; C2; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 11910 PRINT #1, "6.3."; "A1="; A1; "E2="; E2; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11920 PRINT #1, "6.4."; "A1="; A1; "D2="; D2; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 11930 PRINT #1, "6.5."; "A1="; A1; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11940 PRINT #1, "7.1."; "C1="; C1; "A2="; A2; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 11950 PRINT #1, "7.2."; "C1="; C1; "C2="; C2; "Z(17)="; Z(17); "Z1(17)="; Z1(17) 11960 PRINT #1, "7.3."; "C1="; C1; "E2="; E2; "Z(18)="; Z(18); "Z1(18)="; Z1(18) 11970 PRINT #1, "7.4."; "C1="; C1; "D2="; D2; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 11980 PRINT #1, "7.5."; "C1="; C1; "B2="; B2; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 11990 PRINT #1, "8.1."; "E1="; E1; "A2="; A2; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 12000 PRINT #1, "8.2."; "E1="; E1; "C2="; C2; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 12010 PRINT #1, "8.3."; "E1="; E1; "E2="; E2; "Z(9)="; Z(9); "Z1(9)="; Z1(9)
144
12020 PRINT #1, "8.4."; "E1="; E1; "D2="; D2; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 12030 PRINT #1, "8.5."; "E1="; E1; "B2="; B2; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 12040 PRINT #1, "9.1."; "D1="; D1; "A2="; A2; "Z(21)="; Z(21); "Z1(21)="; Z1(21) 12050 PRINT #1, "9.2."; "D1="; D1; "C2="; C2; "Z(22)="; Z(22); "Z1(22)="; Z1(22) 12060 PRINT #1, "9.3."; "D1="; D1; "E2="; E2; "Z(23)="; Z(23); "Z1(23)="; Z1(23) 12070 PRINT #1, "9.4."; "D1="; D1; "D2="; D2; "Z(24)="; Z(24); "Z1(24)="; Z1(24) 12080 PRINT #1, "9.5."; "D1="; D1; "B2="; B2; "Z(25)="; Z(25); "Z1(25)="; Z1(25) 12090 PRINT #1, "10.1."; "B1="; B1; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 12100 PRINT #1, "10.2."; "B1="; B1; "C2="; C2; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 12110 PRINT #1, "10.3."; "B1="; B1; "E2="; E2; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 12120 PRINT #1, "10.4."; "B1="; B1; "D2="; D2; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 12130 PRINT #1, "10.5."; "B1="; B1; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 12140 RETURN
145
ПРОГРАММА NW6 (планы 3 , 4 , 5 , 3 · 4, 3 · 5, 4 · 5, Х = 3, Х = 4, Х = 5, Х = 12, Х = 15, Х = 20) 1
1
1
5 PRINT "ПРОГРАММА NW6,РАЗРАБОТКА А.А.ЧЕРНОГО" 6 CLS 7 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW6" 8 PRINT "ЗАНОСЯТСЯ В ФАЙЛ,ИМЯ КОТОРОГО НАДО ВВЕСТИ," 9 PRINT "НАПРИМЕР, ВВЕСТИ ИМЯ ФАЙЛА NW61" 10 INPUT "ВВОД ИМЕНИ ФАЙЛА ", FA$ 14 OPEN "O", #1, FA$ 17 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ WN6 ЗАНОСЯТСЯ В ФАЙЛ "; FA$ 40 PRINT " РАЗРАБОТКИ ДЛЯ X=3,X=4,X=5,X=12,X=15,X=20" 41 PRINT #1, "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ NW6, РАЗРАБОТАННОЙ А.А. ЧЕРНЫМ" 42 DIM F(50), H(50), L(50), Y(27), I(50), K(50), M(50), P(50) 44 DIM Q(50), U(50), V(50), O(27), B(27), Z(50), G(20), T(27) 46 DIM K6(50), K7(50), K8(50), J7(50), J8(50), J9(50) 47 DIM Z1(50) 51 PRINT "ВВОД X-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 52 PRINT #1, "КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 60 INPUT X: PRINT #1, "X="; X 61 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 62 PRINT "ВВОД ВЕЛИЧИН ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 65 IF X = 4 GOTO 200 80 IF X = 20 GOTO 200 90 IF X = 5 GOTO 270 120 PRINT "ВВОД A1,E1,B1,J1,O1": INPUT A1, E1, B1, J1, O1 130 PRINT #1, "A1="; A1; " E1="; E1; " B1="; B1 133 PRINT #1, "J1="; J1; " O1="; O1: A = A1: B = B1: E = E1: N = J1: R = O1 140 GOSUB 3660: V1 = V0: U1 = U0: Q1 = Q0 144 PRINT #1, "V1="; V1; " U1="; U1; " Q1="; Q1 170 IF X = 12 GOTO 400 180 IF X = 15 GOTO 460 190 IF X = 3 GOTO 590 200 PRINT "ВВОД A1,C1,D1,B1,J1,O1,P1" 210 INPUT A1, C1, D1, B1, J1, O1, P1 213 PRINT #1, "A1="; A1; " C1="; C1; " D1="; D1 215 PRINT #1, " B1="; B1; " J1="; J1; " O1="; O1; " P1="; P1 220 A = A1: B = B1: C = C1: D = D1: N = J1: R = O1: S = P1: GOSUB 3710 230 V1 = V0: U1 = U0: Q1 = Q0: I1 = I0: M1 = M0: F1 = F0 240 PRINT #1, "V1="; V1; " U1="; U1; " Q1="; Q1 243 PRINT #1, " I1="; I1; " M1="; M1; " F1="; F1 250 IF X = 20 GOTO 460 260 IF X = 4 GOTO 600 270 PRINT "ВВОД A1,C1,E1,D1,B1,J1,O1,P1,T1" 280 INPUT A1, C1, E1, D1, B1, J1, O1, P1, T1 290 PRINT #1, "A1="; A1; " C1="; C1; " E1="; E1 293 PRINT #1, "D1="; D1; " B1="; B1; " J1="; J1 295 PRINT #1, "O1="; O1; " P1="; P1; " T1="; T1: A = A1: B = B1 300 C = C1: D = D1: E = E1: N = J1: R = O1: S = P1: W = T1: GOSUB 3860 310 V1 = V0: U1 = U0: Q1 = Q0: I1 = I0: M1 = M0: F1 = F0: G1 = G0: H1 = H0 320 K1 = K0: L1 = L0: PRINT #1, "V1="; V1; " U1="; U1; " Q1="; Q1 323 PRINT #1, "I1="; I1; " M1="; M1; " F1="; F1; " G1="; G1 325 PRINT #1, "H1="; H1; " K1="; K1; " L1="; L1 340 IF X = 5 GOTO 610
146
400 PRINT "ВВОД A2,C2,D2,B2,J2,O2,P2" 410 INPUT A2, C2, D2, B2, J2, O2, P2: PRINT #1, "A2="; A2 413 PRINT #1, "C2="; C2; " D2="; D2; " B2="; B2; " J2="; J2 415 PRINT #1, "O2="; O2; "P2="; P2 420 A = A2: B = B2: C = C2: D = D2: N = J2: R = O2: S = P2: GOSUB 3710 430 V2 = V0: U2 = U0: Q2 = Q0: I2 = I0: M2 = M0: F2 = F0 440 PRINT #1, "V2="; V2; " U2="; U2; " Q2="; Q2; " I2="; I2 443 PRINT #1, "M2="; M2; " F2="; F2 445 IF X = 12 GOTO 660 460 PRINT "ВВОД A2,C2,E2,D2,B2,J2,O2,P2,T2" 470 INPUT A2, C2, E2, D2, B2, J2, O2, P2, T2 480 PRINT #1, "A2="; A2; " C2="; C2; " E2="; E2; " D2="; D2 483 PRINT #1, "B2="; B2; " J2="; J2; " O2="; O2 485 PRINT #1, "P2="; P2; " T2="; T2: A = A2: B = B2 490 C = C2: D = D2: E = E2: N = J2: R = O2: S = P2: W = T2: GOSUB 3860 500 V2 = V0: U2 = U0: Q2 = Q0: I2 = I0: M2 = M0: F2 = F0: G2 = G0: H2 = H0 510 K2 = K0: L2 = L0: PRINT #1, "V2="; V2; "U2="; U2; "Q2="; Q2 513 PRINT #1, "I2="; I2; " M2="; M2; " F2="; F2; " G2="; G2 515 PRINT #1, "H2="; H2; " K2="; K2; " L2="; L2 520 IF X = 15 GOTO 710 530 IF X = 20 GOTO 830 589 REM ПЛАНЫ 590 F(1) = A1: F(2) = B1: F(3) = E1: GOTO 1130 600 F(1) = A1: F(2) = B1: F(3) = C1: F(4) = D1: GOTO 1130 610 F(1) = A1: F(2) = B1: F(3) = C1: F(4) = D1: F(5) = E1: GOTO 1130 660 F(1) = A1: H(1) = A2: F(2) = B1: H(2) = A2: F(3) = A1: H(3) = B2 670 F(4) = B1: H(4) = B2: F(5) = E1: H(5) = A2: F(6) = E1: H(6) = B2 680 F(7) = A1: H(7) = C2: F(8) = B1: H(8) = D2: F(9) = A1: H(9) = D2 690 F(10) = B1: H(10) = C2: F(11) = E1: H(11) = C2: F(12) = E1 695 H(12) = D2 700 GOTO 1130 710 F(1) = A1: H(1) = A2: F(2) = B1: H(2) = A2: F(3) = A1: H(3) = B2 720 F(4) = B1: H(4) = B2: F(5) = A1: H(5) = E2: F(6) = B1: H(6) = E2 730 F(7) = E1: H(7) = A2: F(8) = E1: H(8) = B2: F(9) = E1: H(9) = E2 740 F(10) = A1: H(10) = C2: F(11) = B1: H(11) = D2: F(12) = A1 745 H(12) = D2 750 F(13) = B1: H(13) = C2: F(14) = E1: H(14) = C2: F(15) = E1 755 H(15) = D2 760 GOTO 1130 830 F(1) = A1: H(1) = A2: F(2) = B1: H(2) = A2: F(3) = A1: H(3) = B2 840 F(4) = B1: H(4) = B2: F(5) = A1: H(5) = E2: F(6) = B1: H(6) = E2 850 F(7) = A1: H(7) = C2: F(8) = B1: H(8) = D2: F(9) = A1: H(9) = D2 860 F(10) = B1: H(10) = C2: F(11) = C1: H(11) = A2: F(12) = C1: H(12) = C2 870 F(13) = C1: H(13) = E2: F(14) = C1: H(14) = D2: F(15) = C1: H(15) = B2 880 F(16) = D1: H(16) = A2: F(17) = D1: H(17) = C2: F(18) = D1: H(18) = E2 890 F(19) = D1: H(19) = D2: F(20) = D1: H(20) = B2: GOTO 1130 1130 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 1135 PRINT "IF I0=7 GOTO 1160-ПРОДОЛЖЕНИЕ" 1140 INPUT I0: IF I0 = 6 GOTO 40 1150 IF I0 = 7 GOTO 1160 1160 PRINT "ВВОД ВЕЛИЧИН ПОКАЗАТЕЛЕЙ ПО ПЛАНУ Y(J) " 1161 PRINT #1, "ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ В СООТВЕТСТВИИ С ПЛАНОМ Y(J)" 1165 FOR J = 1 TO X 1166 PRINT "Y("; J; ")": INPUT Y(J) 1170 PRINT #1, "Y("; J; ")="; Y(J): NEXT J 1180 PRINT "IF I0=1 GOTO 1160-ПОВТОРЕНИЕ ВВОДА ПОКАЗАТЕЛЕЙ" 1185 PRINT "IF I0=2 GOTO 1210-ПРОДОЛЖЕНИЕ"
147
1190 PRINT "ВВОД I0": INPUT I0: IF I0 = 1 GOTO 1160 1200 IF I0 = 2 GOTO 1210 1210 IF X = 3 GOTO 1310 1220 IF X = 4 GOTO 1320 1230 IF X = 5 GOTO 1330 1250 IF X = 12 GOTO 1350 1260 IF X = 15 GOTO 1360 1280 IF X = 20 GOTO 1380 1310 GOSUB 4150: GOTO 1410 1320 GOSUB 4210: GOTO 1410 1330 GOSUB 4290: GOTO 1410 1350 GOSUB 4150: GOSUB 4250: GOTO 1410 1360 GOSUB 4150: GOSUB 4340: GOTO 1410 1380 GOSUB 4210: GOSUB 4340: GOTO 1410 1410 S = 0: O(1) = 0: FOR J = 1 TO X: S = S + Y(J): O(1) = O(1) + 1: NEXT J 1420 B(1) = S / O(1): S = 0: O(2) = 0: FOR J = 1 TO X: S = S + I(J) * Y(J) 1430 O(2) = O(2) + I(J) ^ 2: NEXT J: B(2) = S / O(2): S = 0: O(3) = 0 1440 FOR J = 1 TO X: S = S + K(J) * Y(J): O(3) = O(3) + K(J) ^ 2: NEXT J 1450 B(3) = S / O(3): IF X = 3 GOTO 2390 1460 IF X = 4 GOTO 2000 1470 IF X = 5 GOTO 2000 1480 S = 0: O(4) = 0: FOR J = 1 TO X: S = S + P(J) * Y(J) 1490 O(4) = O(4) + P(J) ^ 2: NEXT J: B(4) = S / O(4): S = 0: O(5) = 0 1500 FOR J = 1 TO X: S = S + I(J) * P(J) * Y(J): O(5) = O(5) + (I(J) * P(J)) ^ 2 1510 NEXT J: B(5) = S / O(5): S = 0: O(6) = 0: FOR J = 1 TO X 1520 S = S + Q(J) * Y(J): O(6) = O(6) + Q(J) ^ 2: NEXT J: B(6) = S / O(6) 1530 S = 0: O(7) = 0: FOR J = 1 TO X: S = S + I(J) * Q(J) * Y(J) 1540 O(7) = O(7) + (I(J) * Q(J)) ^ 2: NEXT J: B(7) = S / O(7): S = 0 1550 O(8) = 0: FOR J = 1 TO X: S = S + P(J) * K(J) * Y(J) 1560 O(8) = O(8) + (P(J) * K(J)) ^ 2: NEXT J: B(8) = S / O(8): S = 0: O(9) = 0 1570 FOR J = 1 TO X: S = S + K(J) * Q(J) * Y(J): O(9) = O(9) + (K(J) * Q(J)) ^ 2 1580 NEXT J: B(9) = S / O(9) 1600 S = 0: O(10) = 0: FOR J = 1 TO X: S = S + U(J) * Y(J): O(10) = O(10) + U(J) ^ 2 1610 NEXT J: B(10) = S / O(10): S = 0: O(11) = 0: FOR J = 1 TO X 1620 S = S + I(J) * U(J) * Y(J): O(11) = O(11) + (I(J) * U(J)) ^ 2: NEXT J 1630 B(11) = S / O(11): S = 0: O(12) = 0: FOR J = 1 TO X: S = S + K(J) * U(J) * Y(J) 1640 O(12) = O(12) + (K(J) * U(J)) ^ 2: NEXT J: B(12) = S / O(12) 1650 IF X = 12 GOTO 2390 1670 S = 0: O(13) = 0: FOR J = 1 TO X: S = S + V(J) * Y(J) 1680 O(13) = O(13) + V(J) ^ 2: NEXT J: B(13) = S / O(13): S = 0: O(14) = 0 1690 FOR J = 1 TO X: S = S + I(J) * V(J) * Y(J): O(14) = O(14) + (I(J) * V(J)) ^ 2 1700 NEXT J: B(14) = S / O(14): S = 0: O(15) = 0: FOR J = 1 TO X 1710 S = S + K(J) * V(J) * Y(J): O(15) = O(15) + (K(J) * V(J)) ^ 2: NEXT J 1720 B(15) = S / O(15): IF X = 15 GOTO 2390 1730 S = 0: O(16) = 0: FOR J = 1 TO X: S = S + L(J) * Y(J): O(16) = O(16) + L(J) ^ 2 1740 NEXT J: B(16) = S / O(16): S = 0: O(17) = 0: FOR J = 1 TO X 1750 S = S + P(J) * L(J) * Y(J): O(17) = O(17) + (P(J) * L(J)) ^ 2: NEXT J 1760 B(17) = S / O(17): S = 0: O(18) = 0: FOR J = 1 TO X 1770 S = S + Q(J) * L(J) * Y(J): O(18) = O(18) + (Q(J) * L(J)) ^ 2: NEXT J 1780 B(18) = S / O(18): S = 0: O(19) = 0: FOR J = 1 TO X 1790 S = S + L(J) * U(J) * Y(J): O(19) = O(19) + (L(J) * U(J)) ^ 2: NEXT J 1800 B(19) = S / O(19): S = 0: O(20) = 0: FOR J = 1 TO X 1810 S = S + L(J) * V(J) * Y(J): O(20) = O(20) + (L(J) * V(J)) ^ 2: NEXT J 1820 B(20) = S / O(20): IF X = 20 GOTO 2390 2000 S = 0: O(4) = 0: FOR J = 1 TO X: S = S + L(J) * Y(J): O(4) = O(4) + L(J) ^ 2 2010 NEXT J: B(4) = S / O(4): IF X = 4 GOTO 2390 2020 S = 0: O(5) = 0: FOR J = 1 TO X: S = S + M(J) * Y(J)
148
2030 O(5) = O(5) + M(J) ^ 2: NEXT J: B(5) = S / O(5): GOTO 2390 2390 PRINT #1, "B(J) ДО АНАЛИЗА": FOR J = 1 TO X 2395 PRINT #1, "B("; J; ")="; B(J) 2397 NEXT J: PRINT 2400 PRINT "ВВОД N0-КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2407 INPUT N0 2408 PRINT #1, "КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2410 PRINT #1, "N0="; N0 2415 IF X = 3 GOTO 2510 2420 IF X = 4 GOTO 2520 2430 IF X = 5 GOTO 2530 2450 IF X = 12 GOTO 2550 2460 IF X = 15 GOTO 2560 2480 IF X = 20 GOTO 2580 2510 GOSUB 4390: GOTO 2610 2520 GOSUB 4400: GOTO 2610 2530 GOSUB 4420: GOTO 2610 2550 GOSUB 4490: GOTO 2610 2560 GOSUB 4530: GOTO 2610 2580 GOSUB 4630: GOTO 2610 2610 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЕЙ Z(J) ДО АНАЛИЗА B(J)" 2620 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 2630 PRINT "ВВОД F8=N0-1": INPUT F8 2633 PRINT #1, "F8=N0-1="; F8 2635 PRINT "F8="; F8 2640 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 2641 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J)) * (100/Y(J))" 2650 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 2651 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 2655 NEXT J 2660 PRINT "IF I0=3 GOTO 2720-ВВОД РЕЗУЛЬТАТОВ ОПЫТОВ " 2663 PRINT " НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 2666 PRINT "IF I0=4 GOTO 2770-ВВОД ДИСПЕРСИИ ОПЫТОВ" 2670 PRINT "IF I0=5 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 2672 PRINT " РАСЧEТЫ ПО МОДЕЛИ" 2773 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 2677 PRINT "IF I0=20 GOTO 6830-КОНЕЦ" 2678 PRINT "IF I0=25 GOTO 4880-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 2679 PRINT "IF I0=27 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 2681 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 2684 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 2689 PRINT "ВВОД I0": INPUT I0: IF I0 = 3 GOTO 2720 2690 IF I0 = 4 GOTO 2770 2700 IF I0 = 5 GOTO 3240 2710 IF I0 = 6 GOTO 40 2715 IF I0 = 20 GOTO 6830 2717 IF I0 = 25 GOTO 4880 2718 IF I0 = 27 GOTO 7000 2720 PRINT "ВВОД G(J)-РЕЗУЛЬТАТЫ ОПЫТОВ "; 2721 PRINT "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 2722 PRINT #1, "РЕЗУЛЬТАТЫ ОПЫТОВ "; 2723 PRINT #1, "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 2724 FOR J = 1 TO N0: PRINT "G("; J; ")": INPUT G(J) 2730 PRINT #1, "G("; J; ")="; G(J): NEXT J: S = 0: FOR J = 1 TO N0: S = S + G(J) 2740 NEXT J: S0 = S / N0: PRINT "S0="; S0: S = 0: FOR J = 1 TO N0 2750 S = S + (G(J) - S0) ^ 2: NEXT J: U9 = S / F8 2751 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9
149
2760 GOTO 2780 2770 PRINT "ВВОД U9-ДИСПЕРСИЯ ОПЫТОВ": INPUT U9 2771 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 2780 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ T(J)": FOR J = 1 TO X 2790 T(J) = ABS(B(J) / SQR(U9 / O(J))): PRINT #1, "T("; J; ")="; T(J): NEXT J 2800 PRINT " ДЛЯ УРОВНЯ ЗНАЧИМОСТИ 5% " 2801 PRINT " ПРИ F8 2 ; 3 ; 4 ; 5 ; 6" 2802 PRINT "СООТВЕТСТВЕННО T0 4.303 ;3.182 ;2.776 ;2.571 ;2.447" 2803 PRINT "F8=N0-1="; N0; "-1="; F8 2804 PRINT "ВВОД T0-ТАБЛИЧНЫЙ Т-КРИТЕРИЙ" 2805 INPUT T0 2806 PRINT #1, "ТАБЛИЧНЫЙ Т-КРИТЕРИЙ T0="; T0 2810 PRINT #1, "B(J) ПОСЛЕ АНАЛИЗА": FOR J = 1 TO X 2820 IF T(J) < T0 GOTO 2840 2830 IF T(J) >= T0 GOTO 2850 2840 B(J) = 0 2850 PRINT #1, "B("; J; ")="; B(J): NEXT J 2860 K9 = 0: FOR J = 1 TO X: IF B(J) = 0 GOTO 2871 2870 K9 = K9 + 1 2871 NEXT J 2872 PRINT #1, "КОЛИЧЕСТВО СТАТИСТИЧЕСКИ ЗНАЧИМЫХ" 2873 PRINT #1, " КОЭФФИЦИЕНТОВ РЕГРЕССИИ K9="; K9 2881 PRINT #1, "F9=X-1": F9 = X - 1 2882 PRINT #1, "F9="; F9: CLS 2883 PRINT "! ! ЗНАЧЕНИЯ F-КРИТЕРИЯ F7 ДЛЯ 5%-ГО УРОВНЯ ЗНАЧИМОСТИ" 2884 PRINT "! !---------------------------------------------------" 2885 PRINT "!F8! F9 " 2886 PRINT "! !---------------------------------------------------" 2887 PRINT "! ! 2 ! 3 ! 4 ! 8 ! 11 ! 14 " 2888 PRINT "-------------------------------------------------------" 2889 PRINT "! 2! 19.0 ! 19.16 ! 19.25 ! 19.37 ! 19.4 ! 19.42 " 2890 PRINT "! 3! 9.55 ! 9.28 ! 9.12 ! 8.84 ! 8.76 ! 8.71 " 2891 PRINT "! 4! 6.94 ! 6.59 ! 6.39 ! 6.04 ! 5.93 ! 5.87 " 2892 PRINT "! 5! 5.79 ! 5.41 ! 5.19 ! 4.82 ! 4.7 ! 4.64 " 2893 PRINT "! 6! 5.14 ! 4.76 ! 4.53 ! 4.15 ! 4.03 ! 3.96 " 2894 PRINT "!======================================================" 2895 PRINT "! F8 \ F9 ! 15...16 ! 19...20 ! 24 ! 26...30 !" 2896 PRINT "!------------------------------------------------------" 2897 PRINT "! 2 ! 19.43 ! 19.44 ! 19.45 ! 19.46 !" 2898 PRINT "! 3 ! 8.69 ! 8.66 ! 8.64 ! 8.62 !" 2899 PRINT "! 4 ! 5.84 ! 5.8 ! 5.77 ! 5.74 !" 2900 PRINT "! 5 ! 4.6 ! 4.56 ! 4.53 ! 4.5 !" 2901 PRINT "! 6 ! 3.92 ! 3.87 ! 3.84 ! 3.81 !" 2902 PRINT "-------------------------------------------------------" 2907 PRINT "F8="; F8; "F9="; F9 2908 PRINT "ВВОД F7-ТАБЛИЧНЫЙ F-КРИТЕРИЙ" 2909 INPUT F7: PRINT #1, "ТАБЛИЧНЫЙ F-КРИТЕРИЙ F7="; F7 2910 IF X = 3 GOTO 3010 2920 IF X = 4 GOTO 3020 2930 IF X = 5 GOTO 3030 2950 IF X = 12 GOTO 3050 2960 IF X = 15 GOTO 3060 2980 IF X = 20 GOTO 3080 3010 GOSUB 4390: GOTO 3110 3020 GOSUB 4400: GOTO 3110 3030 GOSUB 4420: GOTO 3110 3050 GOSUB 4490: GOTO 3110
150
3060 GOSUB 4530: GOTO 3110 3080 GOSUB 4630: GOTO 3110 3110 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ"; 3115 PRINT #1, " Z(J) ПОСЛЕ АНАЛИЗА B(J)" 3120 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 3121 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 3122 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J)) * (100/Y(J))" 3123 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 3124 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 3125 NEXT J 3130 S = 0: FOR J = 1 TO X: S = S + (Z(J) - Y(J)) ^ 2: NEXT J 3140 F6 = S / (F9 * U9) 3145 PRINT #1, "РАСЧЕТНАЯ ВЕЛИЧИНА F-КРИТЕРИЯ F6="; F6 3150 IF F6 <= F7 GOTO 3152 3151 IF F6 > F7 GOTO 3153 3152 PRINT "АДЕКВАТНО": PRINT #1, "АДЕКВАТНРО,ТАК КАК F6<=F7": GOTO 3154 3153 PRINT "НЕАДЕКВАТНО": PRINT #1, "НЕАДЕКВАТНО,ТАК КАК F6>F7": GOTO 3190 3154 PRINT #1, "СИСТЕМНОЕ ПРЕДСТАВЛЕНИЕ" 3155 PRINT #1, "ДЛЯ АНАЛИЗОВ РЕЗУЛЬТАТОВ РАСЧЁТОВ" 3156 PRINT #1, "ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 3157 S = 0: FOR J = 1 TO X: S = S + ABS(Z(J)): NEXT J 3158 Z1 = 0: FOR J = 1 TO X: Z1(J) = Z(J) / (S / X): NEXT J 3159 PRINT #1, "ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 3160 PRINT #1, "Z1(J)=Z(J)/(S/X),ГДЕ S-СУММА" 3161 PRINT #1, "АБСОЛЮТНЫХ ВЕЛИЧИН ПОКАЗАТЕЛЕЙ,S="; S 3162 PRINT #1, "S/X- СРЕДНЯЯ АРИФМЕТИЧЕСКАЯ ВЕЛИЧИНА,S/X="; S / X 3163 IF X = 3 GOTO 3173 3164 IF X = 4 GOTO 3176 3168 IF X = 5 GOTO 3178 3170 IF X = 12 GOTO 3180 3171 IF X = 15 GOTO 3181 3172 IF X = 20 GOTO 3182 3173 GOSUB 10150: GOTO 3190 3176 GOSUB 11200: GOTO 3190 3178 GOSUB 11580: GOTO 3190 3180 GOSUB 12150: GOTO 3190 3181 GOSUB 12400: GOTO 3190 3182 GOSUB 12710: GOTO 3190 3190 PRINT "IF I0=7 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 3193 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 3194 PRINT "IF I0=8 GOTO 40-НАЧАЛО" 3197 PRINT "IF I0=17 GOTO 4880-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 3198 PRINT "IF I0=22 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 3200 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 3203 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 3207 PRINT "IF I0=9 GOTO 6830-КОНЕЦ": PRINT "ВВОД I0": INPUT I0 3210 IF I0 = 7 GOTO 3240 3220 IF I0 = 8 GOTO 40 3227 IF I0 = 17 GOTO 4880 3228 IF I0 = 22 GOTO 7000 3230 IF I0 = 9 GOTO 6830 3240 PRINT "ПРОВЕРКА ТОЧНОСТИ И РАСЧЕТЫ ПО МОДЕЛИ" 3241 PRINT "F(S),H(S)-1, 2-й ФАКТОРЫ," 3243 PRINT "ГДЕ S=X="; X; "-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ" 3245 PRINT #1, "РАСЧЕТЫ ПО МОДЕЛИ" 3250 IF X = 3 GOTO 3350 3260 IF X = 4 GOTO 3350
151
3270 IF X = 5 GOTO 3350 3290 IF X = 12 GOTO 3420 3300 IF X = 15 GOTO 3420 3320 IF X = 20 GOTO 3420 3350 FOR S = 1 TO X: F(S) = 0: Z(S) = 0: PRINT "ВВОД F("; S; ")" 3360 INPUT F(S): PRINT #1, "ФАКТОР F("; S; ")="; F(S) 3365 IF X = 3 GOTO 3390 3370 IF X = 4 GOTO 3400 3380 IF X = 5 GOTO 3410 3390 GOSUB 4150: GOSUB 4390: GOTO 3412 3400 GOSUB 4210: GOSUB 4400: GOTO 3412 3410 GOSUB 4290: GOSUB 4420: GOTO 3412 3412 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 3610 3420 FOR S = 1 TO X: F(S) = 0: H(S) = 0: Z(S) = 0 3430 PRINT "ВВОД F("; S; "),H("; S; ")": INPUT F(S), H(S) 3432 PRINT #1, " ФАКТОРЫ F("; S; ")="; F(S); "H("; S; ")="; H(S) 3450 IF X = 12 GOTO 3510 3460 IF X = 15 GOTO 3520 3480 IF X = 20 GOTO 3540 3510 GOSUB 4150: GOSUB 4250: GOSUB 4490: GOTO 3552 3520 GOSUB 4150: GOSUB 4340: GOSUB 4530: GOTO 3552 3540 GOSUB 4210: GOSUB 4340: GOSUB 4630: GOTO 3552 3552 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 3610 3610 PRINT "IF I0=10 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И "; 3611 PRINT "РАСЧЕТЫ ПО МОДЕЛИ" 3612 PRINT "IF I0=11 GOTO 4880 - МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 3615 PRINT "IF I0=14 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 3616 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И " 3617 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 3620 PRINT "IF I0=12 GOTO 6830-КОНЕЦ" 3625 PRINT "ВВОД I0": INPUT I0 3630 IF I0 = 10 GOTO 3240 3640 IF I0 = 11 GOTO 4880 3650 IF I0 = 12 GOTO 6830 3653 IF I0 = 14 GOTO 7000 3660 N0 = (A ^ N + B ^ N + E ^ N) / 3: R0 = (A ^ R + B ^ R + E ^ R) / 3 3670 L2 = 2 * N: N3 = (A ^ L2 + B ^ L2 + E ^ L2) / 3: N4 = N + R 3680 N5 = (A ^ N4 + B ^ N4 + E ^ N4) / 3: V0 = -N0 3690 U0 = (N0 * R0 - N5) / (N3 - N0 ^ 2): Q0 = -(R0 + U0 * N0) 3700 PRINT #1, "КОЭФФИЦИЕНТЫ ОРТОГОНАЛИЗАЦИИ": RETURN 3710 N0 = (A ^ N + B ^ N + C ^ N + D ^ N) / 4 3720 R0 = (A ^ R + B ^ R + C ^ R + D ^ R) / 4 3730 S0 = (A ^ S + B ^ S + C ^ S + D ^ S) / 4: L2 = 2 * N 3740 N3 = (A ^ L2 + B ^ L2 + C ^ L2 + D ^ L2) / 4: K2 = 2 * R 3750 R3 = (A ^ K2 + B ^ K2 + C ^ K2 + D ^ K2) / 4: N4 = N + R 3760 N5 = (A ^ N4 + B ^ N4 + C ^ N4 + D ^ N4) / 4: N6 = N + S 3770 N7 = (A ^ N6 + B ^ N6 + C ^ N6 + D ^ N6) / 4: R4 = R + S 3780 R5 = (A ^ R4 + B ^ R4 + C ^ R4 + D ^ R4) / 4: V0 = -N0 3790 U0 = (N0 * R0 - N5) / (N3 - N0 ^ 2): Q0 = -(R0 + U0 * N0) 3800 P0 = (N0 * S0 - N7) / (N3 - N0 ^ 2): Z1 = R0 * S0 - R5 + P0 * (N0 * R0 - N5) 3810 Z2 = U0 * (N0 * S0 - N7) + U0 * P0 * (N0 ^ 2 - N3) 3820 Z3 = R3 - R0 ^ 2 + 2 * U0 * (N5 - N0 * R0) 3830 I0 = (Z1 + Z2) / (Z3 + (N3 - N0 ^ 2) * U0 ^ 2): M0 = I0 * U0 + P0 3840 F0 = -(S0 + I0 * R0 + M0 * N0) 3850 PRINT #1, "КОЭФФИЦИЕНТЫ ОРТОГОНАЛИЗАЦИИ": RETURN 3860 N0 = (A ^ N + B ^ N + C ^ N + D ^ N + E ^ N) / 5 3870 R0 = (A ^ R + B ^ R + C ^ R + D ^ R + E ^ R) / 5
152
3880 S0 = (A ^ S + B ^ S + C ^ S + D ^ S + E ^ S) / 5 3890 W0 = (A ^ W + B ^ W + C ^ W + D ^ W + E ^ W) / 5 3900 L2 = 2 * N: N3 = (A ^ L2 + B ^ L2 + C ^ L2 + D ^ L2 + E ^ L2) / 5 3910 K2 = 2 * R: R3 = (A ^ K2 + B ^ K2 + C ^ K2 + D ^ K2 + E ^ K2) / 5 3920 M2 = 2 * S: S3 = (A ^ M2 + B ^ M2 + C ^ M2 + D ^ M2 + E ^ M2) / 5 3930 N4 = N + R: N5 = (A ^ N4 + B ^ N4 + C ^ N4 + D ^ N4 + E ^ N4) / 5 3940 N6 = N + S: N7 = (A ^ N6 + B ^ N6 + C ^ N6 + D ^ N6 + E ^ N6) / 5 3950 N8 = N + W: N9 = (A ^ N8 + B ^ N8 + C ^ N8 + D ^ N8 + E ^ N8) / 5 3960 R4 = R + S: R5 = (A ^ R4 + B ^ R4 + C ^ R4 + D ^ R4 + E ^ R4) / 5 3970 R6 = R + W: R7 = (A ^ R6 + B ^ R6 + C ^ R6 + D ^ R6 + E ^ R6) / 5 3980 S4 = S + W: S5 = (A ^ S4 + B ^ S4 + C ^ S4 + D ^ S4 + E ^ S4) / 5 3990 V0 = -N0: U0 = (N0 * R0 - N5) / (N3 - N0 ^ 2): Q0 = -(R0 + U0 * N0) 4000 P0 = (N0 * S0 - N7) / (N3 - N0 ^ 2): Z1 = R0 * S0 - R5 + P0 * (N0 * R0 - N5) 4010 Z2 = U0 * (N0 * S0 - N7) + U0 * P0 * (N0 ^ 2 - N3) 4020 Z3 = R3 - R0 ^ 2 + 2 * U0 * (N5 - N0 * R0) 4030 I0 = (Z1 + Z2) / (Z3 + (N3 - N0 ^ 2) * U0 ^ 2): M0 = I0 * U0 + P0 4040 F0 = -(S0 + I0 * R0 + M0 * N0): Z4 = R0 + U0 * N0 4050 Z5 = Z4 * N0 - N5 - U0 * N3: Z6 = R3 + U0 * N5 - Z4 * R0 - Z5 * U0 4060 Z7 = Z4 * S0 + Z5 * P0 - R5 - U0 * N7: Z0 = (N0 * W0 - N9) / (N3 - N0 ^ 2) 4070 Z8 = Z5 * Z0 + Z4 * W0 - R7 - U0 * N9: Z9 = S3 + I0 * R5 + M0 * N7 4080 T7 = R5 + I0 * R3 + M0 * N5: T8 = N7 + I0 * N5 + M0 * N3 4090 T9 = S0 + I0 * R0 + M0 * N0: G3 = S5 + I0 * R7 + M0 * N9 4100 G4 = T9 * N0 - T8: G5 = Z9 - T9 * S0 - G4 * P0 4110 G6 = T9 * R0 - T7 + G4 * U0: G7 = G4 * Z0 + T9 * W0 - G3 4120 G0 = (Z6 * G7 + Z8 * G6) / (Z6 * G5 - Z7 * G6): H0 = (G0 * Z7 + Z8) / Z6 4130 K0 = G0 * P0 + H0 * U0 + Z0: L0 = -(W0 + G0 * S0 + H0 * R0 + K0 * N0) 4140 PRINT #1, "КОЭФФИЦИЕНТЫ ОРТОГОНАЛИЗАЦИИ": RETURN 4150 FOR J = 1 TO X: I(J) = F(J) ^ J1 + V1 4160 K(J) = F(J) ^ O1 + U1 * F(J) ^ J1 + Q1: NEXT J: RETURN 4170 FOR J = 1 TO X: P(J) = H(J) ^ J2 + V2 4180 Q(J) = H(J) ^ O2 + U2 * H(J) ^ J2 + Q2: NEXT J: RETURN 4210 FOR J = 1 TO X: I(J) = F(J) ^ J1 + V1 4220 K(J) = F(J) ^ O1 + U1 * F(J) ^ J1 + Q1 4230 L(J) = F(J) ^ P1 + I1 * F(J) ^ O1 + M1 * F(J) ^ J1 + F1: NEXT J 4240 RETURN 4250 FOR J = 1 TO X: P(J) = H(J) ^ J2 + V2 4260 Q(J) = H(J) ^ O2 + U2 * H(J) ^ J2 + Q2 4270 U(J) = H(J) ^ P2 + I2 * H(J) ^ O2 + M2 * H(J) ^ J2 + F2: NEXT J 4280 RETURN 4290 FOR J = 1 TO X: I(J) = F(J) ^ J1 + V1 4300 K(J) = F(J) ^ O1 + U1 * F(J) ^ J1 + Q1 4310 L(J) = F(J) ^ P1 + I1 * F(J) ^ O1 + M1 * F(J) ^ J1 + F1 4320 M(J) = F(J) ^ T1 + G1 * F(J) ^ P1 + H1 * F(J) ^ O1 + K1 * F(J) ^ J1 + L1 4330 NEXT J: RETURN 4340 FOR J = 1 TO X: P(J) = H(J) ^ J2 + V2 4350 Q(J) = H(J) ^ O2 + U2 * H(J) ^ J2 + Q2 4360 U(J) = H(J) ^ P2 + I2 * H(J) ^ O2 + M2 * H(J) ^ J2 + F2 4370 V(J) = H(J) ^ T2 + G2 * H(J) ^ P2 + H2 * H(J) ^ O2 + K2 * H(J) ^ J2 + L2 4380 NEXT J: RETURN 4390 FOR J = 1 TO X: Z(J) = B(1) + B(2) * I(J) + B(3) * K(J): NEXT J: RETURN 4400 FOR J = 1 TO X: Z(J) = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * L(J) 4410 NEXT J: RETURN 4420 FOR J = 1 TO X 4430 Z(J) = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * L(J) + B(5) * M(J) 4440 NEXT J: RETURN 4490 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * P(J) 4500 N4 = B(5) * I(J) * P(J) + B(6) * Q(J) + B(7) * I(J) * Q(J) + B(8) * P(J) * K(J)
153
4510 N5 = B(9) * K(J) * Q(J) + B(10) * U(J) + B(11) * I(J) * U(J) 4520 Z(J) = N3 + N4 + N5 + B(12) * K(J) * U(J): NEXT J: RETURN 4530 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * P(J) 4540 N4 = B(5) * I(J) * P(J) + B(6) * Q(J) + B(7) * I(J) * Q(J) + B(8) * P(J) * K(J) 4550 N5 = B(9) * K(J) * Q(J) + B(10) * U(J) + B(11) * I(J) * U(J) 4560 N6 = B(12) * K(J) * U(J) + B(13) * V(J) + B(14) * I(J) * V(J) 4570 Z(J) = N3 + N4 + N5 + N6 + B(15) * K(J) * V(J): NEXT J: RETURN 4630 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * K(J) + B(4) * P(J) 4640 N4 = B(5) * I(J) * P(J) + B(6) * Q(J) + B(7) * I(J) * Q(J) + B(8) * P(J) * K(J) 4650 N5 = B(9) * K(J) * Q(J) + B(10) * U(J) + B(11) * I(J) * U(J) 4660 N6 = B(12) * K(J) * U(J) + B(13) * V(J) + B(14) * I(J) * V(J) + B(15) * K(J) * V(J) 4670 N7 = B(16) * L(J) + B(17) * P(J) * L(J) + B(18) * Q(J) * L(J) + B(19) * L(J) * U(J) 4680 Z(J) = N3 + N4 + N5 + N6 + N7 + B(20) * L(J) * V(J): NEXT J: RETURN 4880 PRINT #1, "МАТЕМАТИЧЕСКАЯ МОДЕЛЬ": IF X = 3 GOTO 4910 4901 IF X = 4 GOTO 6070 4902 IF X = 5 GOTO 6100 4903 IF X = 12 GOTO 6130 4904 IF X = 15 GOTO 6200 4906 IF X = 20 GOTO 6370 4910 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)," 4920 IF X = 3 GOTO 5110 5110 PRINT #1, "ГДЕ" 5120 PRINT #1, "I(J)=F(J)^"; J1; "+"; V1; ";" 5130 PRINT #1, "K(J)=F(J)^"; O1; "+"; U1; "*F(J)^"; J1; "+"; Q1 5131 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 5140 IF X = 3 GOTO 6790 5150 PRINT #1, "P(J)=H(J)^"; J2; "+"; V2; ";" 5160 PRINT #1, "Q(J)=H(J)^"; O2; "+"; U2; "*H(J)^"; J2; "+"; Q2 5161 PRINT #1, "ОБОЗНАЧЕНИЕ: H(J)- 2-й ФАКТОР" 6070 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 6080 PRINT #1, "+"; B(4); "*L(J)," 6090 IF X = 4 GOTO 6600 6100 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 6110 PRINT #1, "+"; B(4); "*L(J)+"; B(5); "*M(J)," 6120 IF X = 5 GOTO 6600 6130 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 6140 PRINT #1, "+"; B(4); "*P(J)+"; B(5); "*I(J)*P(J)+" 6150 PRINT #1, "+"; B(6); "*Q(J)+"; B(7); "*I(J)*Q(J)+" 6160 PRINT #1, "+"; B(8); "*P(J)*K(J)+"; B(9); "*K(J)*Q(J)+" 6170 PRINT #1, "+"; B(10); "*U(J)+"; B(11); "*I(J)*U(J)+" 6180 PRINT #1, "+"; B(12); "*K(J)*U(J)," 6190 IF X = 12 GOTO 6600 6200 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 6210 PRINT #1, "+"; B(4); "*P(J)+"; B(5); "*I(J)*P(J)+" 6220 PRINT #1, "+"; B(6); "*Q(J)+"; B(7); "*I(J)*Q(J)+" 6230 PRINT #1, "+"; B(8); "*P(J)*K(J)"; B(9); "*K(J)*Q(J)+" 6240 PRINT "+"; B(10); "*U(J)+"; B(11); "*I(J)*U(J)+" 6250 PRINT #1, "+"; B(12); "*K(J)*U(J)+"; B(13); "*V(J)+" 6260 PRINT #1, "+"; B(14); "*I(J)*V(J)+"; B(15); "*K(J)*V(J)," 6270 IF X = 15 GOTO 6600 6370 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*K(J)+" 6380 PRINT #1, "+"; B(4); "*P(J)+"; B(5); "*I(J)*P(J)+" 6390 PRINT #1, "+"; B(6); "*Q(J)+"; B(7); "*I(J)+Q(J)+" 6400 PRINT #1, "+"; B(8); "*P(J)*K(J)+"; B(9); "*K(J)*Q(J)+" 6410 PRINT #1, "+"; B(10); "*U(J)+"; B(11); "*I(J)*U(J)+" 6420 PRINT #1, "+"; B(12); "*K(J)*U(J)+"; B(13); "*V(J)+" 6430 PRINT #1, "+"; B(14); "*I(J)*V(J)+"; B(15); "*I(J)*V(J)+"
154
6440 PRINT #1, "+"; B(16); "*L(J)+"; B(17); "*P(J)*L(J)+" 6450 PRINT #1, "+"; B(18); "*Q(J)*L(J)+"; B(19); "*L(J)*U(J)+" 6460 PRINT #1, "+"; B(20); "*L(J)*V(J)," 6470 IF X = 20 GOTO 6600 6600 PRINT #1, "ГДЕ" 6610 PRINT #1, "I(J)=F(J)^"; J1; "+"; V1; ";" 6620 PRINT #1, "K(J)=F(J)^"; O1; "+"; U1; "*F(J)^"; J1; "+"; Q1 6621 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 6630 IF X = 12 GOTO 6710 6640 IF X = 15 GOTO 6710 6650 PRINT #1, "L(J)=F(J)^"; P1; "+"; I1; "*F(J)^"; O1; "+" 6660 PRINT #1, "+"; M1; "F(J)^"; J1; "+"; F1 6661 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 6670 IF X = 4 GOTO 6790 6675 IF X = 20 GOTO 6710 6680 PRINT #1, "M(J)=F(J)^"; T1; "+"; G1; "*F(J)^"; P1; "+" 6690 PRINT #1, "+"; H1; "*F(J)^"; O1; "+"; K1; "*F(J)^"; I1; "+"; L1 6691 PRINT #1, "ОБОЗНАЧЕНИЕ: F(J)- 1-й ФАКТОР " 6700 IF X = 5 GOTO 6790 6710 PRINT #1, "P(J)=H(J)^"; J2; "+"; V2; ";" 6720 PRINT #1, "Q(J)=H(J)^"; O2; "+"; U2; "*H(J)^"; J2; "+"; Q2; ";" 6730 PRINT #1, "U(J)=H(J)^"; P2; "+"; I2; "*H(J)^"; O2; "+" 6740 PRINT #1, "+"; M2; "*H(J)^"; J2; "+"; F2 6741 PRINT #1, "ОБОЗНАЧЕНИЕ: H(J)- 2-й ФАКТОР" 6760 PRINT #1, "V(J)=H(J)^"; T2; "+"; G2; "*H(J)^"; P2; "+" 6770 PRINT #1, "+"; H2; "*H(J)^"; O2; "+"; K2; "*H(J)^"; J2; "+" 6780 PRINT #1, "+"; L2 6781 PRINT #1, "ОБОЗНАЧЕНИЕ: H(J)- 2-й ФАКТОР" 6790 PRINT "IF I0=18 GOTO 2660-ПЕРЕХОДЫ" 6792 PRINT "IF I0=19 GOTO 3190-ПЕРЕХОДЫ " 6793 PRINT "IF I0=35 GOTO 1160-ВВОД НОВЫХ Y(J)" 6795 PRINT "IF I0=44 GOTO 6830-КОНЕЦ" 6796 PRINT "IF I0=50 GOTO 40-НАЧАЛО" 6797 PRINT "IF I0=51 GOTO 3240-ПРОВЕРКА ТОЧНОСТИ И " 6798 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 6799 PRINT "IF I0=52 GOTO 7000-" 6800 PRINT " ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) " 6802 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 6803 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 6805 PRINT "ВВОД I0": INPUT I0 6810 IF I0 = 18 GOTO 2660 6820 IF I0 = 19 GOTO 3190 6823 IF I0 = 35 GOTO 1160 6825 IF I0 = 44 GOTO 6830 6827 IF I0 = 50 GOTO 40 6828 IF I0 = 51 GOTO 3240 6829 IF I0 = 52 GOTO 7000 6830 CLOSE #1 6832 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ СМОТРИ В "; 6835 PRINT "ФАЙЛЕ "; FA$ 6840 END 7000 PRINT #1, "ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 7004 PRINT #1, " ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 7005 PRINT #1, " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ" 7006 PRINT #1, "И ПОСТРОЕНИЕ ГРАФИКОВ" 7010 PRINT "ВВОД I0=61 ПРИ Х=3,Х=4,Х=5" 7020 PRINT "ВВОД I0=62 ПРИ Х=12, X=15, Х=20"
155
7040 PRINT "IF I0=64 GOTO 40-НАЧАЛО" 7050 PRINT "IF I0=65 GOTO 6830-КОНЕЦ" 7060 INPUT I0 7070 IF I0 = 61 GOTO 7190 7080 IF I0 = 62 GOTO 7330 7100 IF I0 = 64 GOTO 40 7110 IF I0 = 65 GOTO 6830 7190 PRINT "ВВОД I0=73 ПРИ X=3,ВВОД I0=74 ПРИ X=4" 7195 PRINT "ВВОД I0=75 ПРИ X=5" 7200 INPUT I0 7210 F3 = 0: F4 = 0: K5 = 0: PRINT #1, "ФАКТОР F(1)=F3+F4" 7213 PRINT "ФАКТОР F(1)=F3+F4" 7215 FOR J = 1 TO X: F(J) = 0: Z(J) = 0: NEXT J: X = 0 7220 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7225 PRINT "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7226 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7227 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7230 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4" 7240 INPUT X, F3, F4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4 7250 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7255 PRINT #1, "F("; K5; ")="; F(K5) 7260 IF I0 = 73 GOTO 7290 7270 IF I0 = 74 GOTO 7300 7280 IF I0 = 75 GOTO 7310 7290 GOSUB 4150: GOSUB 4390: GOTO 7320 7300 GOSUB 4210: GOSUB 4400: GOTO 7320 7310 GOSUB 4290: GOSUB 4420: GOTO 7320 7320 PRINT #1, "Z("; K5; ")="; Z(K5) 7325 NEXT K5: GOTO 8001 7330 PRINT "ВВОД I0=77 ПРИ X=12,I0=78 ПРИ X=15" 7340 PRINT "ВВОД I0=80 ПРИ X=20" 7350 INPUT I0 7360 F3 = 0: F4 = 0: H3 = 0: H4 = 0: K5 = 0: PRINT #1, "ФАКТОР F(1)=F3+F4" 7361 PRINT "ФАКТОР F(1)=F3+F4" 7365 FOR J = 1 TO X: F(J) = 0: H(J) = 0: Z(J) = 0: NEXT J: X = 0 7370 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА" 7371 PRINT "F4-ШАГ ПРИРАЩЕНИЯ 1-ГО ФАКТОРА" 7380 PRINT #1, "ФАКТОР H(1)=H3+H4" 7381 PRINT "ФАКТОР H(1)=H3+H4" 7390 PRINT #1, "H4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА" 7391 PRINT "H4-ШАГ ПРИРАЩЕНИЯ 2-ГО ФАКТОРА" 7392 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1, 2-ГО ФАКТОРОВ" 7393 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ 1, 2-ГО ФАКТОРОВ" 7400 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4" 7410 INPUT X, F3, F4, H3, H4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4 7420 PRINT #1, "H3="; H3; "H4="; H4 7430 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7435 PRINT #1, "F("; K5; ")= "; F(K5) 7440 H(K5) = H3 + K5 * H4: PRINT #1, "H("; K5; ")= "; H(K5) 7460 IF I0 = 77 GOTO 7520 7470 IF I0 = 78 GOTO 7530 7490 IF I0 = 80 GOTO 7550 7520 GOSUB 4150: GOSUB 4250: GOSUB 4490: GOTO 7570 7530 GOSUB 4150: GOSUB 4340: GOSUB 4530: GOTO 7570 7550 GOSUB 4210: GOSUB 4340: GOSUB 4630: GOTO 7570 7570 PRINT #1, "Z("; K5; ")="; Z(K5) 7575 NEXT K5: GOTO 8001
156
8001 PRINT #1, "ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5)": K8 = 0: K8 = Z(1) 8002 PRINT "ВВОД I0=90-ПРОДОЛЖЕНИЕ" 8004 INPUT I0 8010 FOR K5 = 1 TO X 8020 IF Z(K5) >= K8 THEN K8 = Z(K5) 8040 NEXT K5: PRINT #1, "MAX Z(K5)="; K8 8041 FOR K5 = 1 TO X 8042 IF Z(K5) = K8 THEN PRINT #1, "MAX Z("; K5; ")="; Z(K5) 8044 NEXT K5 8050 K7 = 0: K7 = Z(1) 8060 FOR K5 = 1 TO X 8070 IF Z(K5) <= K7 THEN K7 = Z(K5) 8090 NEXT K5: PRINT #1, "MIN Z(K5)="; K7 8091 FOR K5 = 1 TO X 8092 IF Z(K5) = K7 THEN PRINT #1, "MIN Z("; K5; ")="; Z(K5) 8094 NEXT K5: K6 = 0: PRINT #1, "MIN Z(K5)=К7, MAX Z(K5)=K8" 8095 PRINT #1, "K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8))" 8096 FOR K5 = 1 TO X: K6(K5) = (Z(K5) + ABS(K7)) / (ABS(K7) + ABS(K8)) 8097 PRINT #1, "K6("; K5; ")="; K6(K5): NEXT K5 8098 J5 = 0: J5 = ABS(K7) / (ABS(K7) + ABS(K8)) 8099 PRINT #1, "J5=ABS(K7)/(ABS(K7)+ABS(K8))" 8111 PRINT #1, "J5="; J5 8112 PRINT "IF I0=70 GOTO 7000-ПОВТОРЕНИЕ "; 8113 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5) "; 8114 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 8115 PRINT "IF I0=80 GOTO 9000-ПОСТРОЕНИЕ ГРАФИКА" 8120 INPUT I0 8125 IF I0 = 70 GOTO 7000 8130 IF I0 = 80 GOTO 9000 9000 PRINT "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3 9001 K0 = 0: K3 = 0: K4 = 0: K4 = X: K7 = 0: K8 = 0: X0 = 0: Y0 = 0 9010 PRINT #1, "ПОСТРОЕНИЕ ГРАФИКА" 9015 PRINT #1, "ЗАВИСИМОСТЬ K6(K5) ОТ ФАКТОРА" 9020 PRINT #1, "K6(K5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 9025 PRINT #1, "K5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ" 9030 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ " 9035 PRINT "ВВОД:X0-ОТСТУП ВПРАВО ПО ОСИ Х (ПРЕДПОЧТИТЕЛЬНО Х0=20)" 9036 PRINT " Y0-ОТСТУП ВНИЗ ПО ОСИ Y (ПРЕДПОЧТИТЕЛЬНО Y0=180)" 9037 PRINT " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9038 PRINT " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9045 INPUT X0, Y0, K0, K3 9046 PRINT #1, "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3; ", ГДЕ" 9047 PRINT #1, " X0-ОТСТУП ВПРАВО ПО ОСИ Х " 9048 PRINT #1, " Y0-ОТСТУП ВНИЗ ПО ОСИ Y " 9049 PRINT #1, " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9050 PRINT #1, " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9054 KEY OFF: CLS 9055 COLOR 0, 0: SCREEN 2 9056 FOR K5 = 1 TO K4: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9057 LINE (K7(K5) - X0, Y0)-(K7(K5) - X0, Y0 - K8(K5)): NEXT K5 9059 J6 = 0: J6 = X - 1: J7 = 0: J8 = 0: J9 = 0: K7 = 0: K8 = 0: J9 = K3 * J5 9060 FOR K5 = 1 TO J6: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9061 J7(K5) = (K5 + 1) * K0: J8(K5) = K3 * K6(K5 + 1) 9062 LINE (K7(K5) - X0, Y0)-(J7(K5) - X0, Y0) 9063 LINE (K7(K5) - X0, Y0 - J9)-(J7(K5) - X0, Y0 - J9) 9065 LINE (K7(K5) - X0, Y0 - K8(K5))-(J7(K5) - X0, Y0 - J8(K5)): NEXT K5 9071 A$ = ""
157
9072 A$ = INKEY$: IF A$ = "" THEN 9072 9073 SCREEN 0: CLS : COLOR 2, 0 9074 PRINT "ВВОД I0=75 GOTO 9000-ПОВТОРЕНИЕ ПОСТРОЕНИЯ ГРАФИКА" 9075 PRINT "ВВОД I0=85 GOTO 7000-ПОВТОРЕНИЕ" 9076 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5)" 9078 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 9079 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 9080 PRINT "ВВОД I0=95 GOTO 6830-КОНЕЦ": PRINT 9081 INPUT I0 9083 IF I0 = 75 GOTO 9000 9090 IF I0 = 85 GOTO 7000 9095 IF I0 = 95 GOTO 6830 10150 PRINT #1, "1.1."; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10160 PRINT #1, "1.2."; "E1="; E1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10170 PRINT #1, "1.3."; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10180 RETURN 11200 PRINT #1, "1.1."; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11210 PRINT #1, "1.2."; "C1="; C1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11220 PRINT #1, "1.3."; "D1="; D1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11230 PRINT #1, "1.4."; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11240 RETURN 11580 PRINT #1, "1.1."; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11590 PRINT #1, "1.2."; "C1="; C1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11600 PRINT #1, "1.3."; "E1="; E1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11610 PRINT #1, "1.4."; "D1="; D1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11620 PRINT #1, "1.5."; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11630 RETURN 12150 PRINT #1, "1.1."; "A2="; A2; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 12160 PRINT #1, "1.2."; "A2="; A2; "E1="; E1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 12170 PRINT #1, "1.3."; "A2="; A2; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 12180 PRINT #1, "2.1."; "C2="; C2; "A1="; A1; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 12190 PRINT #1, "2.2."; "C2="; C2; "E1="; E1; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 12200 PRINT #1, "2.3."; "C2="; C2; "B1="; B1; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 12210 PRINT #1, "3.1."; "D2="; D2; "A1="; A1; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 12220 PRINT #1, "3.2."; "D2="; D2; "E1="; E1; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 12230 PRINT #1, "3.3."; "D2="; D2; "B1="; B1; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 12240 PRINT #1, "4.1."; "B2="; B2; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 12250 PRINT #1, "4.2."; "B2="; B2; "E1="; E1; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 12260 PRINT #1, "4.3."; "B2="; B2; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 12270 PRINT #1, "5.1."; "A1="; A1; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 12280 PRINT #1, "5.2."; "A1="; A1; "C2="; C2; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 12290 PRINT #1, "5.3."; "A1="; A1; "D2="; D2; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 12300 PRINT #1, "5.4."; "A1="; A1; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 12310 PRINT #1, "6.1."; "E1="; E1; "A2="; A2; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 12320 PRINT #1, "6.2."; "E1="; E1; "C2="; C2; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 12330 PRINT #1, "6.3."; "E1="; E1; "D2="; D2; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 12340 PRINT #1, "6.4."; "E1="; E1; "B2="; B2; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 12350 PRINT #1, "7.1."; "B1="; B1; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 12360 PRINT #1, "7.2."; "B1="; B1; "C2="; C2; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 12370 PRINT #1, "7.3."; "B1="; B1; "D2="; D2; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 12380 PRINT #1, "7.4."; "B1="; B1; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 12390 RETURN 12400 PRINT #1, "1.1."; "A2="; A2; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 12410 PRINT #1, "1.2."; "A2="; A2; "E1="; E1; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 12420 PRINT #1, "1.3."; "A2="; A2; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 12430 PRINT #1, "2.1."; "C2="; C2; "A1="; A1; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 12440 PRINT #1, "2.2."; "C2="; C2; "E1="; E1; "Z(14)="; Z(14); "Z1(14)="; Z1(14)
158
12450 PRINT #1, "2.3."; "C2="; C2; "B1="; B1; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 12460 PRINT #1, "3.1."; "E2="; E2; "A1="; A1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 12470 PRINT #1, "3.2."; "E2="; E2; "E1="; E1; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 12480 PRINT #1, "3.3."; "E2="; E2; "B1="; B1; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 12490 PRINT #1, "4.1."; "D2="; D2; "A1="; A1; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 12500 PRINT #1, "4.2."; "D2="; D2; "E1="; E1; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 12510 PRINT #1, "4.3."; "D2="; D2; "B1="; B1; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 12520 PRINT #1, "5.1."; "B2="; B2; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 12530 PRINT #1, "5.2."; "B2="; B2; "E1="; E1; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 12540 PRINT #1, "5.3."; "B2="; B2; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 12550 PRINT #1, "6.1."; "A1="; A1; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 12560 PRINT #1, "6.2."; "A1="; A1; "C2="; C2; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 12570 PRINT #1, "6.3."; "A1="; A1; "E2="; E2; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 12580 PRINT #1, "6.4."; "A1="; A1; "D2="; D2; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 12590 PRINT #1, "6.5."; "A1="; A1; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 12600 PRINT #1, "7.1."; "E1="; E1; "A2="; A2; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 12610 PRINT #1, "7.2."; "E1="; E1; "C2="; C2; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 12620 PRINT #1, "7.3."; "E1="; E1; "E2="; E2; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 12630 PRINT #1, "7.4."; "E1="; E1; "D2="; D2; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 12640 PRINT #1, "7.5."; "E1="; E1; "B2="; B2; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 12650 PRINT #1, "8.1."; "B1="; B1; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 12660 PRINT #1, "8.2."; "B1="; B1; "C2="; C2; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 12670 PRINT #1, "8.3."; "B1="; B1; "E2="; E2; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 12680 PRINT #1, "8.4."; "B1="; B1; "D2="; D2; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 12690 PRINT #1, "8.5."; "B1="; B1; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 12700 RETURN 12710 PRINT #1, "1.1."; "A2="; A2; " A1 = "; A1; "Z(1) = "; Z(1); " Z1(1) = "; Z1(1) 12720 PRINT #1, "1.2."; "A2="; A2; " C1 = "; C1; " Z(11) = "; Z(11); "; Z1(11) = "; Z1(11) 12730 PRINT #1, "1.3."; "A2="; A2; " D1 = "; D1; "Z(16) = "; Z(16); " Z1(16) = "; Z1(16) 12740 PRINT #1, "1.4."; "A2="; A2; " B1 = "; B1; "Z(2) = "; Z(2); " Z1(2) = "; Z1(2) 12750 PRINT #1, "2.1."; "C2="; C2; " A1 = "; A1; "Z(7) = "; Z(7); " Z1(7) = "; Z1(7) 12760 PRINT #1, "2.2."; "C2="; C2; " C1 = "; C1; "Z(12) = "; Z(12); " Z1(12) = "; Z1(12) 12770 PRINT #1, "2.3."; "C2="; C2; " D1 = "; D1; "Z(17) = "; Z(17); " Z1(17) = "; Z1(17) 12780 PRINT #1, "2.4."; "C2="; C2; " B1 = "; B1; "Z(10) = "; Z(10); " Z1(10) = "; Z1(10) 12790 PRINT #1, "3.1."; "E2=; E2; "; A1 = "; A1; "; Z(5) = "; Z(5); "; Z1(5) = "; Z1(5)" 12800 PRINT #1, "3.2."; "E2="; E2; " C1 = "; C1; "Z(13) = "; Z(13); " Z1(13) = "; Z1(13) 12810 PRINT #1, "3.3."; "E2="; E2; " D1 = "; D1; "Z(18) = "; Z(18); " Z1(18) = "; Z1(18) 12820 PRINT #1, "3.4."; "E2="; E2; " B1 = "; B1; "Z(6) = "; Z(6); " Z1(6) = "; Z1(6) 12830 PRINT #1, "4.1."; "D2="; D2; " A1 = "; A1; "Z(9) = "; Z(9); " Z1(9) = "; Z1(9) 12840 PRINT #1, "4.2."; "D2="; D2; " C1 = "; C1; "Z(14) = "; Z(14); " Z1(14) = "; Z1(14) 12850 PRINT #1, "4.3."; "D2="; D2; " D1 = "; D1; "Z(19) = "; Z(19); " Z1(19) = "; Z1(19) 12860 PRINT #1, "4.4."; "D2="; D2; " B1 = "; B1; "Z(8) = "; Z(8); " Z1(8) = "; Z1(8) 12870 PRINT #1, "5.1."; "B2="; B2; " A1 = "; A1; "Z(3) = "; Z(3); " Z1(3) = "; Z1(3) 12880 PRINT #1, "5.2."; "B2="; B2; " C1 = "; C1; "Z(15) = "; Z(15); " Z1(15) = "; Z1(15) 12890 PRINT #1, "5.3."; "B2="; B2; " D1 = "; D1; "Z(20) = "; Z(20); " Z1(20) = "; Z1(20) 12900 PRINT #1, "5.4."; "B2="; B2; " B1 = "; B1; "Z(4) = "; Z(4); " Z1(4) = "; Z1(4) 12910 PRINT #1, "6.1."; "A1="; A1; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 12920 PRINT #1, "6.2."; "A1="; A1; "C2="; C2; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 12930 PRINT #1, "6.3."; "A1="; A1; "E2="; E2; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 12940 PRINT #1, "6.4."; "A1="; A1; "D2="; D2; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 12950 PRINT #1, "6.5."; "A1="; A1; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 12960 PRINT #1, "7.1."; "C1="; C1; "A2="; A2; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 12970 PRINT #1, "7.2."; "C1="; C1; "C2="; C2; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 12980 PRINT #1, "7.3."; "C1="; C1; "E2="; E2; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 12990 PRINT #1, "7.4."; "C1="; C1; "D2="; D2; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 13000 PRINT #1, "7.5."; "C1="; C1; "B2="; B2; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 13010 PRINT #1, "8.1."; "D1="; D1; "A2="; A2; "Z(16)="; Z(16); "Z1(16)="; Z1(16)
159
13020 PRINT #1, "8.2."; "D1="; D1; "C2="; C2; "Z(17)="; Z(17); "Z1(17)="; Z1(17) 13030 PRINT #1, "8.3."; "D1="; D1; "E2="; E2; "Z(18)="; Z(18); "Z1(18)="; Z1(18) 13040 PRINT #1, "8.4."; "D1="; D1; "D2="; D2; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 13050 PRINT #1, "8.5."; "D1="; D1; "B2="; B2; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 13060 PRINT #1, "9.1."; "B1="; B1; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 13070 PRINT #1, "9.2."; "B1="; B1; "C2="; C2; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 13080 PRINT #1, "9.3."; "B1="; B1; "E2="; E2; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 13090 PRINT #1, "9.4."; "B1="; B1; "D2="; D2; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 13100 PRINT #1, "9.5."; "B1="; B1; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 13110 RETURN
160
ПРОГРАММА LV1 (планы 21, 22, 23, 24, 25, Х = 2, Х = 4, Х = 8, Х = 16, с добавлением подпрограмм, Х = 32 – без добавления подпрограмм) 5 PRINT "ПРОГРАММА LV1,РАЗРАБОТКА А.А.ЧЕРНОГО" 6 CLS 7 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ LV1" 8 PRINT "ЗАНОСЯТСЯ В ФАЙЛ,ИМЯ КОТОРОГО НАДО ВВЕСТИ," 9 PRINT "НАПРИМЕР, ВВЕСТИ ИМЯ ФАЙЛА LV11" 10 INPUT "ВВОД ИМЕНИ ФАЙЛА ", FA$ 11 OPEN "O", #1, FA$ 17 PRINT #1, "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ LV1 ЗАНОСЯТСЯ В ФАЙЛ "; FA$ 40 PRINT "X=2,X=4,X=8,X=16,X=32" 41 PRINT #1, "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ LV1,РАЗРАБОТАННОЙ А.А. ЧЕРНЫМ" 42 DIM F(50), H(50), L(50), K(50), M(50), Y(32), I(50), P(50) 44 DIM U(50), Q(50), V(50), O(32), B(32), Z(50), G(20), T(32) 46 DIM K6(50), K7(50), K8(50), J7(50), J8(50), J9(50) 47 DIM Z1(50) 55 PRINT "КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 56 PRINT #1, "ВВОД X-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 60 INPUT X: PRINT #1, "X="; X 61 PRINT "ВВОД ВЕЛИЧИН ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 62 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 70 PRINT "ВВОД A1,B1,J1": INPUT A1, B1, J1 75 PRINT #1, "A1="; A1; "B1="; B1; "J1="; J1 80 A = A1: B = B1: N = J1: GOSUB 2480 90 V1 = V0: PRINT #1, "V1="; V1: IF X = 2 GOTO 220 100 PRINT "ВВОД A2,B2,J2": INPUT A2, B2, J2 105 PRINT #1, "A2="; A2; "B2="; B2; "J2="; J2 110 A = A2: B = B2: N = J2: GOSUB 2480 120 V2 = V0: PRINT #1, "V2="; V2: IF X = 4 GOTO 220 130 PRINT "ВВОД A3,B3,J3": INPUT A3, B3, J3 135 PRINT #1, "A3="; A3; "B3="; B3; "J3="; J3 140 A = A3: B = B3: N = J3: GOSUB 2480 150 V3 = V0: PRINT #1, "V3="; V3: IF X = 8 GOTO 220 160 PRINT "ВВОД A4,B4,J4": INPUT A4, B4, J4 165 PRINT #1, "A4="; A4; "B4="; B4; "J4="; J4 170 A = A4: B = B4: N = J4: GOSUB 2480 180 V4 = V0: PRINT #1, "V4="; V4: IF X = 16 GOTO 220 190 PRINT "ВВОД A5,B5,J5": INPUT A5, B5, J5 195 PRINT #1, "A5="; A5; "B5="; B5; "J5="; J5 200 A = A5: B = B5: N = J5: GOSUB 2480 210 V5 = V0: PRINT #1, "V5="; V5: GOTO 220 215 REM ПЛАНЫ 220 F(1) = A1: F(2) = B1: IF X = 2 GOTO 580 230 H(1) = A2: H(2) = A2: F(3) = A1: H(3) = B2 240 F(4) = B1: H(4) = B2: IF X = 4 GOTO 580 250 L(1) = A3: L(2) = A3: L(3) = A3: L(4) = A3 260 F(5) = A1: H(5) = A2: L(5) = B3: F(6) = B1: H(6) = A2 270 L(6) = B3: F(7) = A1: H(7) = B2: L(7) = B3: F(8) = B1 280 H(8) = B2: L(8) = B3: IF X = 8 GOTO 580 290 K(1) = A4: K(2) = A4: K(3) = A4: K(4) = A4: K(5) = A4 300 K(6) = A4: K(7) = A4: K(8) = A4: F(9) = A1: H(9) = A2 310 L(9) = A3: K(9) = B4: F(10) = B1: H(10) = A2: L(10) = A3
161
320 K(10) = B4: F(11) = A1: H(11) = B2: L(11) = A3: K(11) = B4 330 F(12) = B1: H(12) = B2: L(12) = A3: K(12) = B4: F(13) = A1 340 H(13) = A2: L(13) = B3: K(13) = B4: F(14) = B1: H(14) = A2 350 L(14) = B3: K(14) = B4: F(15) = A1: H(15) = B2: L(15) = B3 360 K(15) = B4: F(16) = B1: H(16) = B2: L(16) = B3: K(16) = B4 370 IF X = 16 GOTO 580 380 M(1) = A5: M(2) = A5: M(3) = A5: M(4) = A5: M(5) = A5 390 M(6) = A5: M(7) = A5: M(8) = A5: M(9) = A5: M(10) = A5 400 M(11) = A5: M(12) = A5: M(13) = A5: M(14) = A5: M(15) = A5 410 M(16) = A5: F(17) = A1: H(17) = A2: L(17) = A3: K(17) = A4 420 M(17) = B5: F(18) = B1: H(18) = A2: L(18) = A3: K(18) = A4 430 M(18) = B5: F(19) = A1: H(19) = B2: L(19) = A3: K(19) = A4 440 M(19) = B5: F(20) = B1: H(20) = B2: L(20) = A3: K(20) = A4 450 M(20) = B5: F(21) = A1: H(21) = A2: L(21) = B3: K(21) = A4 460 M(21) = B5: F(22) = B1: H(22) = A2: L(22) = B3: K(22) = A4 470 M(22) = B5: F(23) = A1: H(23) = B2: L(23) = B3: K(23) = A4 480 M(23) = B5: F(24) = B1: H(24) = B2: L(24) = B3: K(24) = A4 490 M(24) = B5: F(25) = A1: H(25) = A2: L(25) = A3: K(25) = B4 500 M(25) = B5: F(26) = B1: H(26) = A2: L(26) = A3: K(26) = B4 510 M(26) = B5: F(27) = A1: H(27) = B2: L(27) = A3: K(27) = B4 520 M(27) = B5: F(28) = B1: H(28) = B2: L(28) = A3: K(28) = B4 530 M(28) = B5: F(29) = A1: H(29) = A2: L(29) = B3: K(29) = B4 540 M(29) = B5: F(30) = B1: H(30) = A2: L(30) = B3: K(30) = B4 550 M(30) = B5: F(31) = A1: H(31) = B2: L(31) = B3: K(31) = B4 560 M(31) = B5: F(32) = B1: H(32) = B2: L(32) = B3: K(32) = B4 570 M(32) = B5 580 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 585 PRINT "IF I0=7 GOTO 610-ПРОДОЛЖЕНИЕ" 590 INPUT I0: IF I0 = 6 GOTO 40 600 IF I0 = 7 GOTO 610 610 PRINT "ВВОД ВЕЛИЧИН ПОКАЗАТЕЛЕЙ ПО ПЛАНУ Y(J)" 611 PRINT #1, "ВВОД ВЕЛИЧИН ПОКАЗАТЕЛЕЙ В СООТВЕТСТВИИ С ПЛАНОМ Y(J)" 615 FOR J = 1 TO X: PRINT "ВВОД Y("; J; ")": INPUT Y(J) 620 PRINT #1, "Y("; J; ")="; Y(J): NEXT J 630 PRINT "IF I0=1 GOTO 610-ПОВТОРЕНИЕ ВВОДА ПОКАЗАТЕЛЕЙ" 635 PRINT "IF I0=2 GOTO 660-ПРОДОЛЖЕНИЕ" 640 PRINT "ВВОД I0": INPUT I0: IF I0 = 1 GOTO 610 650 IF I0 = 2 GOTO 660 660 IF X = 2 GOTO 710 670 IF X = 4 GOTO 720 680 IF X = 8 GOTO 730 690 IF X = 16 GOTO 740 700 IF X = 32 GOTO 760 710 GOSUB 2490: GOTO 780 720 GOSUB 2490: GOSUB 2500: GOTO 780 730 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOTO 780 740 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2520 750 GOTO 780 760 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2520 770 GOSUB 2530 780 S = 0: O(1) = 0: FOR J = 1 TO X: S = S + Y(J): O(1) = O(1) + 1: NEXT J 790 B(1) = S / O(1): S = 0: O(2) = 0: FOR J = 1 TO X: S = S + I(J) * Y(J) 800 O(2) = O(2) + I(J) ^ 2: NEXT J: B(2) = S / O(2): IF X = 2 GOTO 1440 810 S = 0: O(3) = 0: FOR J = 1 TO X: S = S + P(J) * Y(J): O(3) = O(3) + P(J) ^ 2 820 NEXT J: B(3) = S / O(3): S = 0: O(4) = 0: FOR J = 1 TO X 830 S = S + I(J) * P(J) * Y(J): O(4) = O(4) + (I(J) * P(J)) ^ 2: NEXT J 840 B(4) = S / O(4): IF X = 4 GOTO 1440
162
850 S = 0: O(5) = 0 860 FOR J = 1 TO X: S = S + U(J) * Y(J): O(5) = O(5) + U(J) ^ 2 870 NEXT J: B(5) = S / O(5): S = 0: O(6) = 0: FOR J = 1 TO X 880 S = S + I(J) * U(J) * Y(J): O(6) = O(6) + (I(J) * U(J)) ^ 2: NEXT J 890 B(6) = S / O(6): S = 0: O(7) = 0: FOR J = 1 TO X: S = S + P(J) * U(J) * Y(J) 900 O(7) = O(7) + (P(J) * U(J)) ^ 2: NEXT J: B(7) = S / O(7): S = 0: O(8) = 0 910 FOR J = 1 TO X: S = S + I(J) * P(J) * U(J) * Y(J) 920 O(8) = O(8) + (I(J) * P(J) * U(J)) ^ 2: NEXT J: B(8) = S / O(8) 930 IF X = 8 GOTO 1440 940 S = 0: O(9) = 0: FOR J = 1 TO X 950 S = S + Q(J) * Y(J): O(9) = O(9) + Q(J) ^ 2: NEXT J: B(9) = S / O(9) 960 S = 0: O(10) = 0: FOR J = 1 TO X: S = S + I(J) * Q(J) * Y(J) 970 O(10) = O(10) + (I(J) * Q(J)) ^ 2: NEXT J: B(10) = S / O(10): S = 0 980 O(11) = 0: FOR J = 1 TO X: S = S + P(J) * Q(J) * Y(J) 990 O(11) = O(11) + (P(J) * Q(J)) ^ 2: NEXT J: B(11) = S / O(11): S = 0 1000 O(12) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * Q(J) * Y(J) 1010 O(12) = O(12) + (I(J) * P(J) * Q(J)) ^ 2: NEXT J: B(12) = S / O(12) 1020 S = 0: O(13) = 0: FOR J = 1 TO X: S = S + U(J) * Q(J) * Y(J) 1030 O(13) = O(13) + (U(J) * Q(J)) ^ 2: NEXT J: B(13) = S / O(13): S = 0 1040 O(14) = 0: FOR J = 1 TO X: S = S + I(J) * U(J) * Q(J) * Y(J) 1050 O(14) = O(14) + (I(J) * U(J) * Q(J)) ^ 2: NEXT J: B(14) = S / O(14): S = 0 1060 O(15) = 0: FOR J = 1 TO X: S = S + P(J) * U(J) * Q(J) * Y(J) 1070 O(15) = O(15) + (P(J) * U(J) * Q(J)) ^ 2: NEXT J: B(15) = S / O(15): S = 0 1080 O(16) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * U(J) * Q(J) * Y(J) 1090 O(16) = O(16) + (I(J) * P(J) * U(J) * Q(J)) ^ 2: NEXT J: B(16) = S / O(16) 1100 IF X = 16 GOTO 1440 1110 S = 0: O(17) = 0: FOR J = 1 TO X 1120 S = S + V(J) * Y(J): O(17) = O(17) + V(J) ^ 2: NEXT J: B(17) = S / O(17) 1130 S = 0: O(18) = 0: FOR J = 1 TO X: S = S + I(J) * V(J) * Y(J) 1140 O(18) = O(18) + (I(J) * V(J)) ^ 2: NEXT J: B(18) = S / O(18): S = 0 1150 O(19) = 0: FOR J = 1 TO X: S = S + P(J) * V(J) * Y(J) 1160 O(19) = O(19) + (P(J) * V(J)) ^ 2: NEXT J: B(19) = S / O(19): S = 0 1170 O(20) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * V(J) * Y(J) 1180 O(20) = O(20) + (I(J) * P(J) * V(J)) ^ 2: NEXT J: B(20) = S / O(20) 1190 S = 0: O(21) = 0: FOR J = 1 TO X: S = S + U(J) * V(J) * Y(J) 1200 O(21) = O(21) + (U(J) * V(J)) ^ 2: NEXT J: B(21) = S / O(21) 1210 S = 0: O(22) = 0: FOR J = 1 TO X: S = S + I(J) * U(J) * V(J) * Y(J) 1220 O(22) = O(22) + (I(J) * U(J) * V(J)) ^ 2: NEXT J: B(22) = S / O(22) 1230 S = 0: O(23) = 0: FOR J = 1 TO X: S = S + P(J) * U(J) * V(J) * Y(J) 1240 O(23) = O(23) + (P(J) * U(J) * V(J)) ^ 2: NEXT J: B(23) = S / O(23) 1250 S = 0: O(24) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * U(J) * V(J) * Y(J) 1260 O(24) = O(24) + (I(J) * P(J) * U(J) * V(J)) ^ 2: NEXT J: B(24) = S / O(24) 1270 S = 0: O(25) = 0: FOR J = 1 TO X: S = S + Q(J) * V(J) * Y(J) 1280 O(25) = O(25) + (Q(J) * V(J)) ^ 2: NEXT J: B(25) = S / O(25) 1290 S = 0: O(26) = 0: FOR J = 1 TO X: S = S + I(J) * Q(J) * V(J) * Y(J) 1300 O(26) = O(26) + (I(J) * Q(J) * V(J)) ^ 2: NEXT J: B(26) = S / O(26) 1310 S = 0: O(27) = 0: FOR J = 1 TO X: S = S + P(J) * Q(J) * V(J) * Y(J) 1320 O(27) = O(27) + (P(J) * Q(J) * V(J)) ^ 2: NEXT J: B(27) = S / O(27) 1330 S = 0: O(28) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * Q(J) * V(J) * Y(J) 1340 O(28) = O(28) + (I(J) * P(J) * Q(J) * V(J)) ^ 2: NEXT J: B(28) = S / O(28) 1350 S = 0: O(29) = 0: FOR J = 1 TO X: S = S + U(J) * Q(J) * V(J) * Y(J) 1360 O(29) = O(29) + (U(J) * Q(J) * V(J)) ^ 2: NEXT J: B(29) = S / O(29) 1370 S = 0: O(30) = 0: FOR J = 1 TO X: S = S + I(J) * U(J) * Q(J) * V(J) * Y(J) 1380 O(30) = O(30) + (I(J) * U(J) * Q(J) * V(J)) ^ 2: NEXT J: B(30) = S / O(30) 1390 S = 0: O(31) = 0: FOR J = 1 TO X: S = S + P(J) * U(J) * Q(J) * V(J) * Y(J) 1400 O(31) = O(31) + (P(J) * U(J) * Q(J) * V(J)) ^ 2: NEXT J: B(31) = S / O(31) 1410 S = 0: O(32) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * U(J) * Q(J) * V(J) * Y(J)
163
1420 O(32) = O(32) + (I(J) * P(J) * U(J) * Q(J) * V(J)) ^ 2: NEXT J 1430 B(32) = S / O(32) 1440 PRINT #1, "B(J) ДО АНАЛИЗА": FOR J = 1 TO X 1445 PRINT #1, "B("; J; ")="; B(J) 1450 NEXT J 1454 PRINT "ВВОД N0-КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 1456 PRINT #1, "N0-КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 1455 INPUT N0 1460 PRINT #1, "N0="; N0 1470 IF X = 2 GOTO 1520 1480 IF X = 4 GOTO 1530 1490 IF X = 8 GOTO 1540 1500 IF X = 16 GOTO 1550 1510 IF X = 32 GOTO 1560 1520 GOSUB 2540: GOTO 1570 1530 GOSUB 2550: GOTO 1570 1540 GOSUB 2570: GOTO 1570 1550 GOSUB 2600: GOTO 1570 1560 GOSUB 2670: GOTO 1570 1570 PRINT #1, "РАСЧЕТНЫЕ.ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ Z(J) ДО АНАЛИЗА B(J)" 1580 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 1590 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 1600 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J) * (100 / Y(J))" 1601 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 1602 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 1603 NEXT J 1604 PRINT "ВВОД F8=N0-1": INPUT F8: PRINT #1, "F8=N0-1="; N0; "-1="; F8 1620 PRINT "IF I0=3 GOTO 1710-ВВОД РЕЗУЛЬТАТОВ ОПЫТОВ" 1622 PRINT " НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 1625 PRINT "IF I0=4 GOTO 1760-ВВОД ДИСПЕРСИИ ОПЫТОВ" 1630 PRINT "IF I0=5 GOTO 2150-ПРОВЕРКА ТОЧНОСТИ И" 1633 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 1635 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 1640 PRINT "IF I0=20 GOTO 6830-КОНЕЦ" 1641 PRINT "IF I0=25 GOTO 2820-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 1642 PRINT "IF I0=27 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 1646 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И" 1647 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 1650 PRINT "ВВОД I0": INPUT I0: IF I0 = 3 GOTO 1710 1660 IF I0 = 4 GOTO 1760 1670 IF I0 = 5 GOTO 2150 1680 IF I0 = 6 GOTO 40 1690 IF I0 = 20 GOTO 6830 1700 IF I0 = 25 GOTO 2820 1705 IF I0 = 27 GOTO 7000 1710 PRINT "ВВОД РЕЗУЛЬТАТОВ ОПЫТОВ " 1711 PRINT "НА СРЕДНЕМ УРОВНЕ " 1712 PRINT #1, "РЕЗУЛЬТАТЫ ОПЫТОВ "; 1713 PRINT #1, "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 1715 FOR J = 1 TO N0: PRINT "ВВОД G("; J; ")": INPUT G(J) 1720 PRINT #1, "G("; J; ")="; G(J): NEXT J: S = 0: FOR J = 1 TO N0: S = S + G(J) 1730 NEXT J: S0 = S / N0: PRINT "S0="; S0: S = 0: FOR J = 1 TO N0 1740 S = S + (G(J) - S0) ^ 2: NEXT J: U9 = S / F8 1745 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 1750 GOTO 1770 1760 PRINT "ВВОД U9-ДИСПЕРСИЯ ОПЫТОВ": INPUT U9 1761 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9
164
1770 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ T(J)": FOR J = 1 TO X 1780 T(J) = ABS(B(J) / SQR(U9 / O(J))): PRINT #1, "T("; J; ")="; T(J): NEXT J 1781 PRINT " ДЛЯ УРОВНЯ ЗНАЧИМОСТИ 5% " 1782 PRINT " ПРИ F8 2 ; 3 ; 4 ; 5 ; 6" 1783 PRINT "СООТВЕТСТВЕННО T0 4.303 ;3.182 ;2.776 ;2.571 ;2.447" 1784 PRINT "F8="; F8 1785 PRINT "ВВОД T0-ТАБЛИЧНЫЙ Т-КРИТЕРИЙ" 1790 PRINT "ВВОД T0": INPUT T0: PRINT #1, "ТАБЛИЧНЫЙ Т-КРИТЕРИЙ T0="; T0 1800 PRINT #1, "B(J) ПОСЛЕ АНАЛИЗА": FOR J = 1 TO X 1810 IF T(J) < T0 GOTO 1830 1820 IF T(J) >= T0 GOTO 1840 1830 B(J) = 0 1840 PRINT #1, "B("; J; ")="; B(J): NEXT J 1850 K9 = 0: FOR J = 1 TO X: IF B(J) = 0 GOTO 1852 1851 K9 = K9 + 1: NEXT J 1852 PRINT #1, "КОЛИЧЕСТВО СТАТИСТИЧЕСКИ ЗНАЧИМЫХ" 1853 PRINT #1, " КОЭФФИЦИЕНТОВ РЕГРЕССИИ K9="; K9 1862 PRINT "F9=X-1": F9 = X - 1: PRINT #1, "F9=X-1="; F9: CLS 1863 PRINT "! ! ЗНАЧЕНИЯ F-КРИТЕРИЯ F7 ДЛЯ 5%-ГО УРОВНЯ ЗНАЧИМОСТИ" 1864 PRINT "! !----------------------------------------------" 1865 PRINT "! F8! F9 " 1866 PRINT "! !----------------------------------------------" 1867 PRINT "! ! 1 ! 3 ! 7 ! 15...16 ! 30...31 !" 1868 PRINT "---------------------------------------------------" 1869 PRINT "! 2 ! 18.51 ! 19.16 ! 19.36 ! 19.43 ! 19.46 !" 1870 PRINT "! 3 ! 10.13 ! 9.28 ! 8.88 ! 8.69 ! 8.62 !" 1871 PRINT "! 4 ! 7.71 ! 6.59 ! 6.09 ! 5.84 ! 5.74 !" 1872 PRINT "! 5 ! 6.61 ! 5.41 ! 4.88 ! 4.6 ! 4.5 !" 1873 PRINT "! 6 ! 5.99 ! 4.76 ! 4.21 ! 3.92 ! 3.81 !" 1874 PRINT "!=================================================!" 1887 PRINT "F8="; F8; "F9="; F9 1890 PRINT "ВВОД ТАБЛИЧНОГО F7-ТАБЛИЧНЫЙ F-КРИТЕРИЙ" 1891 INPUT F7: PRINT #1, "ТАБЛИЧНЫЙ F-КРИТЕРИЙ F7="; F7 1900 IF X = 2 GOTO 1950 1910 IF X = 4 GOTO 1960 1920 IF X = 8 GOTO 1970 1930 IF X = 16 GOTO 1980 1940 IF X = 32 GOTO 1990 1950 GOSUB 2540: GOTO 2000 1960 GOSUB 2550: GOTO 2000 1970 GOSUB 2570: GOTO 2000 1980 GOSUB 2600: GOTO 2000 1990 GOSUB 2670: GOTO 2000 2000 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ "; 2005 PRINT #1, "Z(J) ПОСЛЕ АНАЛИЗА B(J)" 2010 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 2011 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 2012 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J) * (100 / Y(J))" 2013 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 2014 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 2015 NEXT J 2020 S = 0: FOR J = 1 TO X: S = S + (Z(J) - Y(J)) ^ 2: NEXT J 2025 F6 = S / (F9 * U9) 2030 PRINT #1, "РАСЧЕТНАЯ ВЕЛИЧИНА F-КРИТЕРИЯ F6="; F6 2040 IF F6 <= F7 GOTO 2042 2041 IF F6 > F7 GOTO 2043 2042 PRINT "АДЕКВАТНО": PRINT #1, "АДЕКВАТНО,ТАК КАК F6<=F7": GOTO 2044
165
2043 PRINT "НЕАДЕКВАТНО": PRINT #1, "НЕАДЕКВАТНО, ТАК КАК F6>F7": GOTO 2080 2044 PRINT #1, "CИСТЕМНОЕ ПРЕДСТАВЛЕНИЕ" 2045 PRINT #1, "ДЛЯ АНАЛИЗОВ РЕЗУЛЬТАТОВ РАСЧЕТОВ" 2046 PRINT #1, "ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 2047 S = 0: FOR J = 1 TO X: S = S + ABC(Z(J)): NEXT J 2048 Z1 = 0: FOR J = 1 TO X: Z1(J) = Z(J) / (S / X): NEXT J 2049 PRINT #1, "ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 2050 PRINT #1, "Z1(J)=Z(J)/(S/X), ГДЕ S - СУММА" 2051 PRINT #1, "АБСОЛЮТНЫХ ВЕЛИЧИН ПОКАЗАТЕЛЕЙ,S="; S 2052 PRINT #1, "S/X-СРЕДНЯЯ АРИФМЕТИЧЕСКАЯ ВЕЛИЧИНА, S/X="; S / X 2053 IF X = 2 GOTO 2058 2054 IF X = 4 GOTO 2059 2055 IF X = 8 GOTO 2060 2056 IF X = 16 GOTO 2061 2058 GOSUB 10150: GOTO 2080 2059 GOSUB 10180: GOTO 2080 2060 GOSUB 10270: GOTO 2080 2061 GOSUB 10520: GOTO 2080 2080 PRINT "I0=7 GOTO 2150-ПРОВЕРКА ТОЧНОСТИ И" 2081 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 2085 PRINT "I0=8 GOTO 40-НАЧАЛО" 2090 PRINT "I0=17 GOTO 2820-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 2091 PRINT "I0=9 GOTO 6830-КОНЕЦ" 2095 PRINT "IF I0=22 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 2096 PRINT " C ИСПОЛЬЗОВАНИЕМ ГРАФИКОВ И" 2097 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 2100 PRINT "ВВОД I0": INPUT I0 2110 IF I0 = 7 GOTO 2150 2120 IF I0 = 8 GOTO 40 2130 IF I0 = 17 GOTO 2820 2140 IF I0 = 9 GOTO 6830 2145 IF I0 = 22 GOTO 7000 2150 PRINT "ПРОВЕРКА ТОЧНОСТИ И РАСЧЕТЫ ПО МОДЕЛИ" 2151 PRINT "F(S),H(S),L(S),K(S),M(S)-1,2,3,4,5 ФАКТОРЫ," 2152 PRINT "ГДЕ S=X="; X; "-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ" 2153 PRINT #1, "РАСЧЕТЫ ПО МОДЕЛИ" 2160 IF X = 2 GOTO 2210 2170 IF X = 4 GOTO 2240 2180 IF X = 8 GOTO 2270 2190 IF X = 16 GOTO 2310 2200 IF X = 32 GOTO 2360 2210 FOR S = 1 TO X: F(S) = 0: Z(S) = 0: PRINT "ВВОД F("; S; ")": 2220 INPUT F(S): PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S): GOSUB 2490 2230 GOSUB 2540: PRINT #1, "Z("; S; ")="; Z(S): NEXT S 2235 GOTO 2430 2240 FOR S = 1 TO X: F(S) = 0: H(S) = 0: Z(S) = 0 2250 PRINT "ВВОД F("; S; "),H("; S; ")": INPUT F(S), H(S) 2260 PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S); "H("; S; ")="; H(S) 2262 GOSUB 2490: GOSUB 2500: GOSUB 2550 2264 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 2430 2270 FOR S = 1 TO X: F(S) = 0: H(S) = 0: L(S) = 0: Z(S) = 0 2280 PRINT "ВВОД F("; S; "),H("; S; "),L("; S; ")" 2290 INPUT F(S), H(S), L(S): PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S) 2300 PRINT #1, "ФАКТОРЫ H("; S; ")="; H(S); "L("; S; ")="; L(S): GOSUB 2490 2302 GOSUB 2500: GOSUB 2510: GOSUB 2570 2304 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 2430 2310 FOR S = 1 TO X: F(S) = 0: H(S) = 0: L(S) = 0: K(S) = 0
166
2320 Z(S) = 0: PRINT "ВВОД F("; S; "),H("; S; "),L("; S; "),"; "K("; S; ")" 2330 INPUT F(S), H(S), L(S), K(S): PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S) 2340 PRINT #1, "ФАКТОРЫ H("; S; ")="; H(S); "L("; S; ")="; L(S) 2345 PRINT #1, "K("; S; ")="; K(S) 2350 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2520 2352 GOSUB 2600: PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 2430 2360 FOR S = 1 TO X: F(S) = 0: H(S) = 0: L(S) = 0: K(S) = 0 2370 M(S) = 0: Z(S) = 0: PRINT "ВВОД F("; S; "),H("; S; "),L("; S; ")" 2380 INPUT F(S), H(S), L(S): PRINT "ВВОД K("; S; "),M("; S; ")" 2390 INPUT K(S), M(S): PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S) 2400 PRINT #1, "ФАКТОРЫ H("; S; ")="; H(S); "L("; S; ")="; L(S) 2410 PRINT #1, "ФАКТОРЫ K("; S; ")="; K(S); "M("; S; ")="; M(S) 2420 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2520 2422 GOSUB 2530: GOSUB 2670 2425 PRINT #1, "Z("; S; ")="; Z(S): NEXT S 2430 PRINT "IF I0=10 GOTO 2150-ПРОВЕРКА ТОЧНОСТИ И РАСЧЕТЫ ПО МОДЕЛИ" 2431 PRINT "IF I0=11 GOTO 2820 -МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 2435 PRINT "IF I0=14 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 2436 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И" 2437 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 2440 PRINT "IF I0=12 GOTO 6830-КОНЕЦ" 2445 PRINT "ВВОД I0": INPUT I0 2450 IF I0 = 10 GOTO 2150 2460 IF I0 = 11 GOTO 2820 2465 IF I0 = 14 GOTO 7000 2470 IF I0 = 12 GOTO 6830 2480 V0 = -(A ^ N + B ^ N) / 2 2485 PRINT #1, "КОЭФФИЦИЕНТ ОРТОГОНАЛИЗАЦИИ": RETURN 2490 FOR J = 1 TO X: I(J) = F(J) ^ J1 + V1: NEXT J: RETURN 2500 FOR J = 1 TO X: P(J) = H(J) ^ J2 + V2: NEXT J: RETURN 2510 FOR J = 1 TO X: U(J) = L(J) ^ J3 + V3: NEXT J: RETURN 2520 FOR J = 1 TO X: Q(J) = K(J) ^ J4 + V4: NEXT J: RETURN 2530 FOR J = 1 TO X: V(J) = M(J) ^ J5 + V5: NEXT J: RETURN 2540 FOR J = 1 TO X: Z(J) = B(1) + B(2) * I(J): NEXT J: RETURN 2550 FOR J = 1 TO X: Z(J) = B(1) + B(2) * I(J) + B(3) * P(J) + B(4) * I(J) * P(J) 2560 NEXT J: RETURN 2570 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * P(J) + B(4) * I(J) * P(J) 2580 N4 = B(5) * U(J) + B(6) * I(J) * U(J) + B(7) * P(J) * U(J) 2590 Z(J) = N3 + N4 + B(8) * I(J) * P(J) * U(J) 2595 NEXT J: RETURN 2600 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * P(J) + B(4) * I(J) * P(J) 2610 N4 = B(5) * U(J) + B(6) * I(J) * U(J) + B(7) * P(J) * U(J) 2620 N5 = B(8) * I(J) * P(J) * U(J) + B(9) * Q(J) + B(10) * I(J) * Q(J) 2630 N6 = B(11) * P(J) * Q(J) + B(12) * I(J) * P(J) * Q(J) + B(13) * U(J) * Q(J) 2640 N7 = B(14) * I(J) * U(J) * Q(J) + B(15) * P(J) * U(J) * Q(J) 2650 Z(J) = N3 + N4 + N5 + N6 + N7 + B(16) * I(J) * P(J) * U(J) * Q(J) 2660 NEXT J: RETURN 2670 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * P(J) + B(4) * I(J) * P(J) 2680 N4 = B(5) * U(J) + B(6) * I(J) * U(J) + B(7) * P(J) * U(J) 2690 N5 = B(8) * I(J) * P(J) * U(J) + B(9) * Q(J) + B(10) * I(J) * Q(J) 2700 N6 = B(11) * P(J) * Q(J) + B(12) * I(J) * P(J) * Q(J) + B(13) * U(J) * Q(J) 2710 N7 = B(14) * I(J) * U(J) * Q(J) + B(15) * P(J) * U(J) * Q(J) 2720 R0 = B(16) * I(J) * P(J) * U(J) * Q(J) + B(17) * V(J) 2730 R4 = B(18) * I(J) * V(J) + B(19) * P(J) * V(J) + B(20) * I(J) * P(J) * V(J) 2740 R5 = B(21) * U(J) * V(J) + B(22) * I(J) * U(J) * V(J) 2750 R6 = B(23) * P(J) * U(J) * V(J) + B(24) * I(J) * P(J) * U(J) * V(J) 2760 Z2 = B(25) * Q(J) * V(J) + B(26) * I(J) * Q(J) * V(J)
167
2770 Z3 = B(27) * P(J) * Q(J) * V(J) + B(28) * I(J) * P(J) * Q(J) * V(J) 2780 Z4 = B(29) * U(J) * Q(J) * V(J) + B(30) * I(J) * U(J) * Q(J) * V(J) 2790 Z5 = B(31) * P(J) * U(J) * Q(J) * V(J) + B(32) * I(J) * P(J) * U(J) * Q(J) * V(J) 2800 Z(J) = N3 + N4 + N5 + N6 + N7 + R0 + R4 + R5 + R6 + Z2 + Z3 + Z4 + Z5 2810 NEXT J: RETURN 2820 PRINT #1, "МАТЕМАТИЧЕСКАЯ МОДЕЛЬ": GOTO 2830 2830 IF X = 2 GOTO 2880 2840 IF X = 4 GOTO 2900 2850 IF X = 8 GOTO 2930 2860 IF X = 16 GOTO 2975 2861 IF X = 32 GOTO 3070 2880 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)," 2890 IF X = 2 GOTO 3250 2900 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*P(J)+" 2910 PRINT #1, " +"; B(4); "*I(J)*P(J)," 2920 IF X = 4 GOTO 3250 2930 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*P(J)+" 2940 PRINT #1, " +"; B(4); "*I(J)*P(J)+"; B(5); "*U(J)+" 2950 PRINT #1, " +"; B(6); "*I(J)*U(J)+"; B(7); "*P(J)*U(J)+" 2960 PRINT #1, " +"; B(8); "*I(J)*P(J)*U(J)," 2970 IF X = 8 GOTO 3250 2975 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*P(J)+" 2990 PRINT #1, " +"; B(4); "*I(J)*P(J)+"; B(5); "*U(J)+" 3000 PRINT #1, " +"; B(6); "*I(J)*U(J)+"; B(7); "*P(J)*U(J)+" 3010 PRINT #1, " +"; B(8); "*I(J)*P(J)*U(J)+"; B(9); "*Q(J)+" 3020 PRINT #1, " +"; B(10); "*I(J)*Q(J)+"; B(11); "*P(J)*Q(J)+" 3030 PRINT #1, " +"; B(12); "*I(J)*P(J)*Q(J)+"; B(13); "*U(J)*Q(J)+" 3040 PRINT #1, " +"; B(14); "I(J)*U(J)*Q(J)+"; B(15); "*P(J)*U(J)*Q(J)+" 3050 PRINT #1, " +"; B(16); "I(J)*P(J)*U(J)*Q(J)," 3060 IF X = 16 GOTO 3250 3070 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*P(J)+" 3080 PRINT #1, " +"; B(4); "*I(J)*P(J)+"; B(5); "*U(J)+" 3090 PRINT #1, " +"; B(6); "*I(J)*U(J)+"; B(7); "*P(J)*U(J)+" 3100 PRINT #1, " +"; B(8); "*I(J)*P(J)*U(J)+"; B(9); "*Q(J)+" 3110 PRINT #1, " +"; B(10); "*I(J)*Q(J)+"; B(11); "*P(J)*Q(J)+" 3120 PRINT #1, " +"; B(12); "*I(J)*P(J)*Q(J)+"; B(13); "*U(J)*Q(J)+" 3130 PRINT #1, " +"; B(14); "I(J)*U(J)*Q(J)+"; B(15); "*P(J)*U(J)*Q(J)+" 3140 PRINT #1, " +"; B(16); "I(J)*P(J)*U(J)*Q(J)+"; B(17); "*V(J)+" 3150 PRINT #1, " +"; B(18); "*I(J)*V(J)+"; B(19); "P(J)*V(J)+" 3160 PRINT #1, " +"; B(20); "*I(J)*P(J)*V(J)+"; B(21); "*U(J)*V(J)+" 3170 PRINT #1, " +"; B(22); "*I(J)*U(J)*V(J)+"; B(23); "*P(J)*U(J)*V(J)+" 3180 PRINT #1, " +"; B(24); "*I(J)*P(J)*U(J)*V(J)+"; B(25); "*Q(J)*V(J)+" 3190 PRINT #1, " +"; B(26); "*I(J)*Q(J)*V(J)+"; B(27); "*P(J)*Q(J)*V(J)+" 3200 PRINT #1, " +"; B(28); "*I(J)*P(J)*Q(J)*V(J)+" 3210 PRINT #1, " +"; B(29); "*U(J)*Q(J)*V(J)+" 3220 PRINT #1, " +"; B(30); "*I(J)*U(J)*Q(J)*V(J)+" 3230 PRINT #1, " +"; B(31); "*P(J)*U(J)*Q(J)*V(J)+" 3240 PRINT #1, " +"; B(32); "*I(J)*P(J)*U(J)*Q(J)*V(J)," 3250 PRINT #1, "ГДЕ" 3260 PRINT #1, "I(J)=F(J)^"; J1; "+"; V1 3261 PRINT #1, "ОБОЗНАЧЕНИЕ:F(J)- 1-й ФАКТОР " 3270 IF X = 2 GOTO 3350 3280 PRINT #1, "P(J)=H(J)^"; J2; "+"; V2 3281 PRINT #1, "ОБОЗНАЧЕНИЕ:H(J)- 2-й ФАКТОР" 3290 IF X = 4 GOTO 3350 3300 PRINT #1, "U(J)=L(J)^"; J3; "+"; V3 3301 PRINT #1, "ОБОЗНАЧЕНИЕ:L(J)- 3-й ФАКТОР"
168
3310 IF X = 8 GOTO 3350 3320 PRINT #1, "Q(J)=K(J)^"; J4; "+"; V4 3321 PRINT #1, "ОБОЗНАЧЕНИЕ:K(J)- 4-й ФАКТОР" 3330 IF X = 16 GOTO 3350 3340 PRINT #1, "V(J)=M(J)^"; J5; "+"; V5 3341 PRINT #1, "ОБОЗНАЧЕНИЕ:M(J)- 5-й ФАКТОР" 3350 PRINT "IF I0=18 GOTO 1620-ПЕРЕХОДЫ" 3355 PRINT "IF I0=19 GOTO 2080-ПЕРЕХОДЫ" 3360 PRINT "IF I0=35 GOTO 610-ВВОД НОВЫХ Y(J)" 3365 PRINT "IF I0=44 GOTO 6830-КОНЕЦ" 3370 PRINT "IF I0=50 GOTO 40-НАЧАЛО" 3371 PRINT "IF I0=51 GOTO 2150-ПРОВЕРКА ТОЧНОСТИ И" 3372 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 3373 PRINT "IF I0=52 GOTO 7000-" 3376 PRINT " ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) " 3378 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 3379 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 3380 PRINT "ВВОД I0": INPUT I0 3390 IF I0 = 18 GOTO 1620 3400 IF I0 = 19 GOTO 2080 3410 IF I0 = 35 GOTO 610 3420 IF I0 = 44 GOTO 6830 3430 IF I0 = 50 GOTO 40 3440 IF I0 = 51 GOTO 2150 3445 IF I0 = 52 GOTO 7000 6830 CLOSE #1 6832 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ СМОТРИ В "; 6835 PRINT "ФАЙЛЕ "; FA$ 6840 END 7000 PRINT #1, "ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 7004 PRINT #1, " ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 7005 PRINT #1, " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ" 7006 PRINT #1, "И ПОСТРОЕНИЕ ГРАФИКОВ" 7030 PRINT "ВВОД I0=63 ПРИ Х=2,Х=4,Х=8,X=16,X=32" 7040 PRINT "IF I0=64 GOTO 40-НАЧАЛО" 7050 PRINT "IF I0=65 GOTO 6830-КОНЕЦ" 7060 INPUT I0 7090 IF I0 = 63 GOTO 7190 7100 IF I0 = 64 GOTO 40 7110 IF I0 = 65 GOTO 6830 7190 PRINT "ВВОД I0=73 ПРИ X=2,ВВОД I0=74 ПРИ X=4" 7200 PRINT "ВВОД I0=75 ПРИ X=8,ВВОД I0=76 ПРИ X=16" 7210 PRINT "ВВОД I0=77 ПРИ X=32": INPUT I0 7220 IF I0 = 73 GOTO 7270 7230 IF I0 = 74 GOTO 7350 7240 IF I0 = 75 GOTO 7450 7250 IF I0 = 76 GOTO 7590 7260 IF I0 = 77 GOTO 7770 7270 F3 = 0: F4 = 0: K5 = 0: PRINT "ФАКТОР F(1)=F3+F4" 7271 PRINT #1, "ФАКТОР F(1)=F3+F4" 7280 FOR J = 1 TO X: Z(J) = 0: NEXT J: X = 0 7290 PRINT "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7291 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7292 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7293 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7300 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4" 7310 INPUT X, F3, F4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4
169
7320 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7325 PRINT #1, "F("; K5; ")="; F(K5) 7330 GOSUB 2490: GOSUB 2540: PRINT #1, "Z("; K5; ")="; Z(K5) 7340 NEXT K5: GOTO 8000 7350 F3 = 0: F4 = 0: H3 = 0: H4 = 0: K5 = 0: PRINT "F(1)=F3+F4" 7360 FOR J = 1 TO X: F(J) = 0: Z(J) = 0: NEXT J: X = 0 7370 PRINT "F4,H4-ШАГ ПРИРАЩЕНИЯ 1, 2-ГО ФАКТОРОВ" 7375 PRINT "ФАКТОР H(1)=H3+H4" 7376 PRINT #1, "F4,H4-ШАГ ПРИРАЩЕНИЯ 1, 2-ГО ФАКТОРОВ" 7377 PRINT #1, "ФАКТОР H(1)=H3+H4" 7380 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4" 7390 INPUT X, F3, F4, H3, H4: PRINT #1, "X="; X; "F3="; F3 7400 PRINT #1, "F4="; F4; "H3="; H3; "H4="; H4 7410 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7415 PRINT #1, "F("; K5; ")= "; F(K5) 7420 H(K5) = H3 + K5 * H4: PRINT #1, "H("; K5; ")= "; H(K5) 7430 GOSUB 2490: GOSUB 2500: GOSUB 2550 7440 PRINT #1, "Z("; K5; ")="; Z(K5): NEXT K5: GOTO 8000 7450 F3 = 0: F4 = 0: H3 = 0: H4 = 0: L3 = 0: L4 = 0: K5 = 0 7460 PRINT "F(1)=F3+F4,H(1)=H3+H4,L(1)=L3+L4" 7461 PRINT #1, "F(1)=F3+F4,H(1)=H3+H4,L(1)=L3+L4" 7470 FOR J = 1 TO X: F(J) = 0: H(J) = 0: L(J) = 0: Z(J) = 0: NEXT J: X = 0 7480 PRINT "F4,H4,L4- ШАГ ПРИРАЩЕНИЯ 1, 2, 3-ГО ФАКТОРОВ" 7481 PRINT #1, "F4,H4,L4- ШАГ ПРИРАЩЕНИЯ 1, 2, 3-ГО ФАКТОРОВ" 7490 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4,L3,L4" 7500 INPUT X, F3, F4, H3, H4, L3, L4 7510 PRINT #1, "X="; X; "F3="; F3; "F4="; F4; "H3="; H3; "H4="; H4 7520 PRINT #1, "L3="; L3; "L4="; L4 7530 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7540 PRINT #1, "F("; K5; ")="; F(K5) 7550 H(K5) = H3 + K5 * H4: PRINT #1, "H("; K5; ")="; H(K5) 7560 L(K5) = L3 + K5 * L4: PRINT #1, "L("; K5; ")= "; L(K5) 7570 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2570 7580 PRINT #1, "Z("; K5; ")= "; Z(K5) 7585 NEXT K5: GOTO 8000 7590 F3 = 0: F4 = 0: H3 = 0: H4 = 0: L3 = 0: K3 = 0: K4 = 0: K5 = 0 7595 FOR J = 1 TO X: F(J) = 0: H(J) = O: L(J) = 0: K(J) = 0: Z(J) = 0: NEXT J: X = 0 7600 PRINT "F(1)=F3+F4:H1=H3+H4;L(1)=L3+L4" 7610 PRINT "K(1)=K3+K4" 7611 PRINT #1, "F(1)=F3+F4:H1=H3+H4;L(1)=L3+L4" 7612 PRINT #1, "K(1)=K3+K4" 7620 PRINT "F4,H4,L4,K4 - ШАГ ПРИРАЩЕНИЯ 1, 2, 3, 4-ГО ФАКТОРОВ" 7630 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4,"; 7640 PRINT "L3,L4,K3,K4" 7650 INPUT X, F3, F4, H3, H4, L3, L4, K3, K4 7670 PRINT #1, "X="; X; "F3="; F3; "F4="; F4; "H3="; H3; "H4="; H4 7680 PRINT #1, "L3="; L3; "L4="; L4; "K3="; K3; "K4="; K4 7690 FOR K5 = 1 TO X: F(K5) = F3 + K5 * K4 7700 PRINT #1, "F("; K5; ")="; F(K5): H(K5) = H3 + K5 * H4 7710 PRINT #1, "H("; K5; ")="; H(K5): L(K5) = L3 + K5 * L4 7720 PRINT #1, "L("; K5; ")="; L(K5): K(K5) = K3 + K5 * K4 7730 PRINT #1, "K("; K5; ")="; K(K5): GOSUB 2490 7740 GOSUB 2500: GOSUB 2510: GOSUB 2520 7750 GOSUB 2600: PRINT #1, "Z("; K5; ")="; Z(K5) 7760 NEXT K5: GOTO 8000 7770 F3 = 0: F4 = 0: H3 = 0: H4 = 0: L3 = 0: L4 = 0 7780 K3 = 0: K4 = 0: K5 = 0: M3 = 0: M4 = 0
170
7790 FOR J = 1 TO X: F(J) = 0: H(J) = 0: L(J) = 0 7800 K(J) = 0: M(J) = 0: Z(J) = 0: NEXT J: X = 0 7810 PRINT "F(1)=F3+F4;H(1)=H3+H4;L(1)=L3+L4" 7820 PRINT "K(1)=K3+K4;M(1)=M3+M4" 7830 PRINT "F4,H4,L4,K4,M4-ШАГ" 7840 PRINT "ПРИРАЩЕНИЯ 1, 2, 3, 4, 5-ГО ФАКТОРОВ" 7841 PRINT #1, "F(1)=F3+F4;H(1)=H3+H4;L(1)=L3+L4" 7842 PRINT #1, "K(1)=K3+K4;M(1)=M3+M4" 7843 PRINT #1, "F4,H4,L4,K4,M4-ШАГ" 7844 PRINT #1, "ПРИРАЩЕНИЯ 1 ,2 ,3 ,4 ,5-ГО ФАКТОРОВ" 7850 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4," 7860 PRINT "L3,L4,K3,K4,M3,M4" 7870 INPUT X, F3, F4, H3, H4, L3, L4, K3, K4, M3, M4 7890 PRINT #1, "X="; X; "F3="; F3; "F4="; F4; "H3="; H3 7900 PRINT #1, "H4="; H4; "L3="; L3; "L4="; L4 7910 PRINT #1, "K3="; K3; "K4="; K4; "M3="; M3; "M4="; M4 7920 FOR K5 = 1 TO X: F(K5) = F3 + K5 * K4 7930 PRINT #1, "F("; K5; ")="; F(K5): H(K5) = H3 + K5 * H4 7940 PRINT #1, "H("; K5; ")="; H(K5): L(K5) = L3 + K5 * L4 7950 PRINT #1, "L("; K5; ")="; L(K5): K(K5) = K3 + K5 * K4 7960 PRINT #1, "K("; K5; ")="; K(K5): M(K5) = M3 + K5 * M4 7970 PRINT #1, "M("; K5; ")="; M(K5): GOSUB 2490 7980 GOSUB 2500: GOSUB 2510: GOSUB 2520: GOSUB 2530 7990 GOSUB 2670: PRINT #1, "Z("; K5; ")="; Z(K5): NEXT K5 8000 PRINT #1, "ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5)": K8 = 0: K8 = Z(1) 8002 PRINT "ВВОД I0=90-ПРОДОЛЖЕНИЕ" 8004 INPUT I0 8010 FOR K5 = 1 TO X 8020 IF Z(K5) >= K8 THEN K8 = Z(K5) 8040 NEXT K5: PRINT #1, "MAX Z(K5)="; K8 8041 FOR K5 = 1 TO X 8042 IF Z(K5) = K8 THEN PRINT #1, "MAX Z("; K5; ")="; Z(K5) 8044 NEXT K5 8050 K7 = 0: K7 = Z(1) 8060 FOR K5 = 1 TO X 8070 IF Z(K5) <= K7 THEN K7 = Z(K5) 8090 NEXT K5: PRINT #1, "MIN Z(K5)="; K7 8091 FOR K5 = 1 TO X 8092 IF Z(K5) = K7 THEN PRINT #1, "MIN Z("; K5; ")="; Z(K5) 8093 NEXT K5: K6 = 0: PRINT #1, "MIN Z(K5)=К7,MAX Z(K5)=K8" 8094 PRINT #1, "K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8))" 8095 FOR K5 = 1 TO X: K6(K5) = (Z(K5) + ABS(K7)) / (ABS(K7) + ABS(K8)) 8096 PRINT #1, "K6("; K5; ")="; K6(K5): NEXT K5 8097 PRINT #1, "J5=ABS(K7)/(ABS(K7)+ABS(K8))" 8098 J5 = 0: J5 = ABS(K7) / (ABS(K7) + ABS(K8)): PRINT #1, "J5="; J5 8110 PRINT "IF I0=70 GOTO 7000-ПОВТОРЕНИЕ " 8111 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5) " 8114 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 8115 PRINT "IF I0=80 GOTO 9000-ПОСТРОЕНИЕ ГРАФИКА" 8120 INPUT I0 8125 IF I0 = 70 GOTO 7000 8130 IF I0 = 80 GOTO 9000 9000 K0 = 0: K3 = 0: K4 = 0: K4 = X: K7 = 0: K8 = 0: X0 = 0: Y0 = 0 9010 PRINT #1, "ПОСТРОЕНИЕ ГРАФИКА" 9015 PRINT #1, "ЗАВИСИМОСТЬ K6(K5) ОТ ФАКТОРА" 9020 PRINT #1, "K6(K5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 9025 PRINT "K5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ"
171
9030 PRINT "ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ " 9035 PRINT "ВВОД:X0-ОТСТУП ВПРАВО ПО ОСИ Х (ПРЕДПОЧТИТЕЛЬНО Х0=20)" 9036 PRINT " X0-ОТСТУП ВНИЗ ПО ОСИ Y (ПРЕДПОЧТИТЕЛЬНО Y0=180)" 9037 PRINT " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9038 PRINT " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9039 PRINT "ВВОД X0,Y0,K0,K3" 9045 INPUT X0, Y0, K0, K3 9050 PRINT #1, "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3; ",ГДЕ" 9051 PRINT #1, " X0-ОТСТУП ВПРАВО ПО ОСИ Х " 9052 PRINT #1, " Y0-ОТСТУП ВНИЗ ПО ОСИ Y " 9053 PRINT #1, " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9054 PRINT #1, " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9055 KEY OFF: CLS 9056 COLOR 0, 0: SCREEN 2 9057 FOR K5 = 1 TO K4: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9058 LINE (K7(K5) - X0, Y0)-(K7(K5) - X0, Y0 - K8(K5)) 9059 NEXT K5 9060 J6 = 0: J6 = X - 1: J7 = 0: J8 = 0: J9 = 0: K7 = 0: K8 = 0 9061 FOR K5 = 1 TO J6: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9062 J7(K5) = (K5 + 1) * K0: J8(K5) = K3 * K6(K5 + 1): J9 = K3 * J5 9063 LINE (K7(K5) - X0, Y0)-(J7(K5) - X0, Y0) 9064 LINE (K7(K5) - X0, Y0 - J9)-(J7(K5) - X0, Y0 - J9) 9065 LINE (K7(K5) - X0, Y0 - K8(K5))-(J7(K5) - X0, Y0 - J8(K5)) 9066 NEXT K5 9071 A$ = "" 9072 A$ = INKEY$: IF A$ = "" THEN 9072 9073 SCREEN 0: CLS : COLOR 2, 0 9074 PRINT "ВВОД I0=75 GOTO 9000-ПОВТОРЕНИЕ ПОСТРОЕНИЯ ГРАФИКА" 9075 PRINT "ВВОД I0=85 GOTO 7000-ПОВТОРЕНИЕ" 9076 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5)" 9078 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 9079 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 9080 PRINT "ВВОД I0=95 GOTO 6830-КОНЕЦ": PRINT 9081 INPUT I0 9082 IF I0 = 75 GOTO 9000 9090 IF I0 = 85 GOTO 7000 9095 IF I0 = 95 GOTO 6830 10150 PRINT #1, "1.1."; "A1="; A1; "Z(1)="; Z(1); "Z1(1)= "; Z1(1) 10160 PRINT #1, "1.2."; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10170 RETURN 10180 PRINT #1, "1.1."; "A2="; A2; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10190 PRINT #1, "1.2."; "A2="; A2; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10200 PRINT #1, "2.1."; "B2="; B2; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10210 PRINT #1, "2.2."; "B2="; B2; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10220 PRINT #1, "3.1."; "A1="; A1; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10230 PRINT #1, "3.2."; "A1="; A1; "B2="; B2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10240 PRINT #1, "4.1."; "B1="; B1; "A2="; A2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10250 PRINT #1, "4.2."; "B1="; B1; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10260 RETURN 10270 PRINT #1, "1.1."; "A2="; A2; "A3="; A3; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10280 PRINT #1, "1.2."; "A2="; A2; "A3="; A3; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10290 PRINT #1, "2.1."; "A2="; A2; "B3="; B3; "A1="; A1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 10300 PRINT #1, "2.2."; "A2="; A2; "B3="; B3; "B1="; B1; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 10310 PRINT #1, "3.1."; "B2="; B2; "A3="; A3; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10320 PRINT #1, "3.2."; "B2="; B2; "A3="; A3; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10330 PRINT #1, "4.1."; "B2="; B2; "B3="; B3; "A1="; A1; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 10340 PRINT #1, "4.2."; "B2="; B2; "B3="; B3; "B1="; B1; "Z(8)="; Z(8); "Z1(8)="; Z1(8)
172
10350 PRINT #1, "5.1."; "A1="; A1; "A3="; A3; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10360 PRINT #1, "5.2."; "A1="; A1; "A3="; A3; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10370 PRINT #1, "6.1."; "A1="; A1; "B3="; B3; "A2="; A2; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 10380 PRINT #1, "6.2."; "A1="; A1; "B3="; B3; "B2="; B2; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 10390 PRINT #1, "7.1."; "B1="; B1; "A3="; A3; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10400 PRINT #1, "7.2."; "B1="; B1; "A3="; A3; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10410 PRINT #1, "8.1."; "B1="; B1; "B3="; B3; "A2="; A2; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 10420 PRINT #1, "8.2."; "B1="; B1; "B3="; B3; "B2="; B2; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 10430 PRINT #1, "9.1."; "A1="; A1; "A2="; A2; "A3="; A3; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10440 PRINT #1, "9.2."; "A1="; A1; "A2="; A2; "B3="; B3; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 10450 PRINT #1, "10.1."; "A1="; A1; "B2="; B2; "A3="; A3; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10460 PRINT #1, "10.2."; "A1="; A1; "B2="; B2; "B3="; B3; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 10470 PRINT #1, "11.1."; "B1="; B1; "A2="; A2; "A3="; A3; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10480 PRINT #1, "11.2."; "B1="; B1; "A2="; A2; "B3="; B3; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 10490 PRINT #1, "12.1."; "B1="; B1; "B2="; B2; "A3="; A3; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10500 PRINT #1, "12.2."; "B1="; B1; "B2="; B2; "B3="; B3; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 10510 RETURN 10520 PRINT #1, "1.1."; "A2="; A2; "A3="; A3; "A4="; A4; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10530 PRINT #1, "1.2."; "A2="; A2; "A3="; A3; "A4="; A4; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10540 PRINT #1, "2.1."; "A2="; A2; "B3="; B3; "A4="; A4; "A1="; A1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 10550 PRINT #1, "2.2."; "A2="; A2; "B3="; B3; "A4="; A4; "B1="; B1; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 10560 PRINT #1, "3.1."; "A2="; A2; "A3="; A3; "B4="; B4; "A1="; A1; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 10570 PRINT #1, "3.2."; "A2="; A2; "A3="; A3; "B4="; B4; "B1="; B1; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 10580 PRINT #1, "4.1."; "A2="; A2; "B3="; B3; "B4="; B4; "A1="; A1; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 10590 PRINT #1, "4.2."; "A2="; A2; "B3="; B3; "B4="; B4; "B1="; B1; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 10600 PRINT #1, "5.1."; "B2="; B2; "A3="; A3; "A4="; A4; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10610 PRINT #1, "5.2."; "B2="; B2; "A3="; A3; "A4="; A4; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10620 PRINT #1, "6.1."; "B2="; B2; "B3="; B3; "A4="; A4; "A1="; A1; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 10630 PRINT #1, "6.2."; "B2="; B2; "B3="; B3; "A4="; A4; "B1="; B1; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 10640 PRINT #1, "7.1."; "B2="; B2; "A3="; A3; "B4="; B4; "A1="; A1; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 10650 PRINT #1, "7.2."; "B2="; B2; "A3="; A3; "B4="; B4; "B1="; B1; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 10660 PRINT #1, "8.1."; "B2="; B2; "B3="; B3; "B4="; B4; "A1="; A1; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 10670 PRINT #1, "8.2."; "B2="; B2; "B3="; B3; "B4="; B4; "B1="; B1; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 10680 PRINT #1, "9.1."; "A1="; A1; "A3="; A3; "A4="; A4; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10690 PRINT #1, "9.2."; "A1="; A1; "A3="; A3; "A4="; A4; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10700 PRINT #1, "10.1."; "A1="; A1; "B3="; B3; "A4="; A4; "A2="; A2; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 10710 PRINT #1, "10.2."; "A1="; A1; "B3="; B3; "A4="; A4; "B2="; B2; " Z(7) = "; Z(7); "Z1(7)="; Z1(7)
173
10720 PRINT #1, "11.1."; "A1="; A1; "A3="; A3; "B4="; B4; "A2="; A2; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 10730 PRINT #1, "11.2."; "A1="; A1; "A3="; A3; "B4="; B4; "B2="; B2; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 10740 PRINT #1, "12.1."; "A1="; A1; "B3="; B3; "B4="; B4; "A2="; A2; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 10750 PRINT #1, "12.2."; "A1="; A1; "B3="; B3; "B4="; B4; "B2="; B2; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 10760 PRINT #1, "13.1."; "B1="; B1; "A3="; A3; "A4="; A4; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10770 PRINT #1, "13.2."; "B1="; B1; "A3="; A3; "A4="; A4; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10780 PRINT #1, "14.1."; "B1="; B1; "B3="; B3; "A4="; A4; "A2="; A2; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 10790 PRINT #1, "14.2."; "B1="; B1; "B3="; B3; "A4="; A4; "B2="; B2; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 10800 PRINT #1, "15.1."; "B1="; B1; "A3="; A3; "B4="; B4; "A2="; A2; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 10810 PRINT #1, "15.2."; "B1="; B1; "A3="; A3; "B4="; B4; "B2="; B2; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 10820 PRINT #1, "16.1."; "B1="; B1; "B3="; B3; "B4="; B4; "A2="; A2; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 10830 PRINT #1, "16.2."; "B1="; B1; "B3="; B3; "B4="; B4; "B2="; B2; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 10840 PRINT #1, "17.1."; "A1="; A1; "A2="; A2; "A4="; A4; "A3="; A3; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 10850 PRINT #1, "17.2."; "A1="; A1; "A2="; A2; "A4="; A4; "B3="; B3; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 10860 PRINT #1, "18.1."; "A1="; A1; "B2="; B2; "A4="; A4; "A3="; A3; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 10870 PRINT #1, "18.2."; "A1="; A1; "B2="; B2; "A4="; A4; "B3="; B3; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 10880 PRINT #1, "19.1."; "A1="; A1; "A2="; A2; "B4="; B4; "A3="; A3; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 10890 PRINT #1, "19.2."; "A1="; A1; "A2="; A2; "B4="; B4; "B3="; B3; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 10900 PRINT #1, "20.1."; "A1="; A1; "B2="; B2; "B4="; B4; "A3="; A3; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 10910 PRINT #1, "20.2."; "A1="; A1; "B2="; B2; "B4="; B4; "B3="; B3; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 10920 PRINT #1, "21.1."; "B1="; B1; "A2="; A2; "A4="; A4; "A3="; A3; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 10930 PRINT #1, "21.2."; "B1="; B1; "A2="; A2; "A4="; A4; "B3="; B3; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 10940 PRINT #1, "22.1."; "B1="; B1; "B2="; B2; "A4="; A4; "A3="; A3; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 10950 PRINT #1, "22.2."; "B1="; B1; "B2="; B2; "A4="; A4; "B3="; B3; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 10960 PRINT #1, "23.1."; "B1="; B1; "A2="; A2; "B4="; B4; "A3="; A3; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 10970 PRINT #1, "23.2."; "B1="; B1; "A2="; A2; "B4="; B4; "B3="; B3; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 10980 PRINT #1, "24.1."; "B1="; B1; "B2="; B2; "B4="; B4; "A3="; A3; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 10990 PRINT #1, "24.2."; "B1="; B1; "B2="; B2; "B4="; B4; "B3="; B3; "Z(16)="; Z(16); "Z1(16)="; Z1(16)
174
11000 PRINT #1, "25.1."; "A2="; A2; "A3="; A3; "A1="; A1; "A4="; A4; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11010 PRINT #1, "25.2."; "A2="; A2; "A3="; A3; "A1="; A1; "B4="; B4; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 11020 PRINT #1, "26.1."; "A2="; A2; "B3="; B3; "A1="; A1; "A4="; A4; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11030 PRINT #1, "26.2."; "A2="; A2; "B3="; B3; "A1="; A1; "B4="; B4; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 11040 PRINT #1, "27.1."; "A2="; A2; "A3="; A3; "B1="; B1; "A4="; A4; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11050 PRINT #1, "27.2."; "A2="; A2; "A3="; A3; "B1="; B1; "B4="; B4; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 11060 PRINT #1, "28.1."; "A2="; A2; "B3="; B3; "B1="; B1; "A4="; A4; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 11070 PRINT #1, "28.2."; "A2="; A2; "B3="; B3; "B1="; B1; "B4="; B4; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 11080 PRINT #1, "29.1."; "B2="; B2; "A3="; A3; "A1="; A1; "A4="; A4; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11090 PRINT #1, "29.2."; "B2="; B2; "A3="; A3; "A1="; A1; "B4="; B4; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 11100 PRINT #1, "30.1."; "B2="; B2; "B3="; B3; "A1="; A1; "A4="; A4; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 11110 PRINT #1, "30.2."; "B2="; B2; "B3="; B3; "A1="; A1; "B4="; B4; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 11120 PRINT #1, "31.1."; "B2="; B2; "A3="; A3; "B1="; B1; "A4="; A4; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11130 PRINT #1, "31.2."; "B2="; B2; "A3="; A3; "B1="; B1; "B4="; B4; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 11140 PRINT #1, "32.1."; "B2="; B2; "B3="; B3; "B1="; B1; "A4="; A4; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 11150 PRINT #1, "32.2."; "B2="; B2; "B3"; B3; "B1="; B1; "B4="; B4; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 11160 RETURN
175
ПРОГРАММА LV0 (планы 21, 22, 23, 24, 25, Х = 2, Х = 4, Х = 8, Х = 16, Х = 32, с добавлением подпрограммы для Х = 32) 5 PRINT "ПРОГРАММА LV0,РАЗРАБОТКА А.А.ЧЕРНОГО" 6 CLS 7 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ LV0" 8 PRINT "ЗАНОСЯТСЯ В ФАЙЛ,ИМЯ КОТОРОГО НАДО ВВЕСТИ," 9 PRINT "НАПРИМЕР, ВВЕСТИ ИМЯ ФАЙЛА LV01" 10 INPUT "ВВОД ИМЕНИ ФАЙЛА ", FA$ 11 OPEN "O", #1, FA$ 17 PRINT #1, "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ LV0 ЗАНОСЯТСЯ В ФАЙЛ "; FA$ 40 PRINT "X=2,X=4,X=8,X=16,X=32" 41 PRINT #1, "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ LV0,РАЗРАБОТАННОЙ А.А. ЧЕРНЫМ" 42 DIM F(50), H(50), L(50), K(50), M(50), Y(32), I(50), P(50) 44 DIM U(50), Q(50), V(50), O(32), B(32), Z(50), G(20), T(32) 46 DIM K6(50), K7(50), K8(50), J7(50), J8(50), J9(50) 47 DIM Z1(50) 55 PRINT "КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 56 PRINT #1, "ВВОД X-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ " 60 INPUT X: PRINT #1, "X="; X 61 PRINT "ВВОД ВЕЛИЧИН ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 62 PRINT #1, "ВЕЛИЧИНЫ ФАКТОРОВ И ПОКАЗАТЕЛЕЙ СТЕПЕНИ" 70 PRINT "ВВОД A1,B1,J1": INPUT A1, B1, J1 75 PRINT #1, "A1="; A1; "B1="; B1; "J1="; J1 80 A = A1: B = B1: N = J1: GOSUB 2480 90 V1 = V0: PRINT #1, "V1="; V1: IF X = 2 GOTO 220 100 PRINT "ВВОД A2,B2,J2": INPUT A2, B2, J2 105 PRINT #1, "A2="; A2; "B2="; B2; "J2="; J2 110 A = A2: B = B2: N = J2: GOSUB 2480 120 V2 = V0: PRINT #1, "V2="; V2: IF X = 4 GOTO 220 130 PRINT "ВВОД A3,B3,J3": INPUT A3, B3, J3 135 PRINT #1, "A3="; A3; "B3="; B3; "J3="; J3 140 A = A3: B = B3: N = J3: GOSUB 2480 150 V3 = V0: PRINT #1, "V3="; V3: IF X = 8 GOTO 220 160 PRINT "ВВОД A4,B4,J4": INPUT A4, B4, J4 165 PRINT #1, "A4="; A4; "B4="; B4; "J4="; J4 170 A = A4: B = B4: N = J4: GOSUB 2480 180 V4 = V0: PRINT #1, "V4="; V4: IF X = 16 GOTO 220 190 PRINT "ВВОД A5,B5,J5": INPUT A5, B5, J5 195 PRINT #1, "A5="; A5; "B5="; B5; "J5="; J5 200 A = A5: B = B5: N = J5: GOSUB 2480 210 V5 = V0: PRINT #1, "V5="; V5: GOTO 220 215 REM ПЛАНЫ 220 F(1) = A1: F(2) = B1: IF X = 2 GOTO 580 230 H(1) = A2: H(2) = A2: F(3) = A1: H(3) = B2 240 F(4) = B1: H(4) = B2: IF X = 4 GOTO 580 250 L(1) = A3: L(2) = A3: L(3) = A3: L(4) = A3 260 F(5) = A1: H(5) = A2: L(5) = B3: F(6) = B1: H(6) = A2 270 L(6) = B3: F(7) = A1: H(7) = B2: L(7) = B3: F(8) = B1 280 H(8) = B2: L(8) = B3: IF X = 8 GOTO 580 290 K(1) = A4: K(2) = A4: K(3) = A4: K(4) = A4: K(5) = A4 300 K(6) = A4: K(7) = A4: K(8) = A4: F(9) = A1: H(9) = A2 310 L(9) = A3: K(9) = B4: F(10) = B1: H(10) = A2: L(10) = A3 320 K(10) = B4: F(11) = A1: H(11) = B2: L(11) = A3: K(11) = B4 330 F(12) = B1: H(12) = B2: L(12) = A3: K(12) = B4: F(13) = A1 340 H(13) = A2: L(13) = B3: K(13) = B4: F(14) = B1: H(14) = A2 350 L(14) = B3: K(14) = B4: F(15) = A1: H(15) = B2: L(15) = B3
176
360 K(15) = B4: F(16) = B1: H(16) = B2: L(16) = B3: K(16) = B4 370 IF X = 16 GOTO 580 380 M(1) = A5: M(2) = A5: M(3) = A5: M(4) = A5: M(5) = A5 390 M(6) = A5: M(7) = A5: M(8) = A5: M(9) = A5: M(10) = A5 400 M(11) = A5: M(12) = A5: M(13) = A5: M(14) = A5: M(15) = A5 410 M(16) = A5: F(17) = A1: H(17) = A2: L(17) = A3: K(17) = A4 420 M(17) = B5: F(18) = B1: H(18) = A2: L(18) = A3: K(18) = A4 430 M(18) = B5: F(19) = A1: H(19) = B2: L(19) = A3: K(19) = A4 440 M(19) = B5: F(20) = B1: H(20) = B2: L(20) = A3: K(20) = A4 450 M(20) = B5: F(21) = A1: H(21) = A2: L(21) = B3: K(21) = A4 460 M(21) = B5: F(22) = B1: H(22) = A2: L(22) = B3: K(22) = A4 470 M(22) = B5: F(23) = A1: H(23) = B2: L(23) = B3: K(23) = A4 480 M(23) = B5: F(24) = B1: H(24) = B2: L(24) = B3: K(24) = A4 490 M(24) = B5: F(25) = A1: H(25) = A2: L(25) = A3: K(25) = B4 500 M(25) = B5: F(26) = B1: H(26) = A2: L(26) = A3: K(26) = B4 510 M(26) = B5: F(27) = A1: H(27) = B2: L(27) = A3: K(27) = B4 520 M(27) = B5: F(28) = B1: H(28) = B2: L(28) = A3: K(28) = B4 530 M(28) = B5: F(29) = A1: H(29) = A2: L(29) = B3: K(29) = B4 540 M(29) = B5: F(30) = B1: H(30) = A2: L(30) = B3: K(30) = B4 550 M(30) = B5: F(31) = A1: H(31) = B2: L(31) = B3: K(31) = B4 560 M(31) = B5: F(32) = B1: H(32) = B2: L(32) = B3: K(32) = B4 570 M(32) = B5 580 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 585 PRINT "IF I0=7 GOTO 610-ПРОДОЛЖЕНИЕ" 590 INPUT I0: IF I0 = 6 GOTO 40 600 IF I0 = 7 GOTO 610 610 PRINT "ВВОД ВЕЛИЧИН ПОКАЗАТЕЛЕЙ ПО ПЛАНУ Y(J)" 611 PRINT #1, "ВВОД ВЕЛИЧИН ПОКАЗАТЕЛЕЙ В СООТВЕТСТВИИ С ПЛАНОМ Y(J)" 615 FOR J = 1 TO X: PRINT "ВВОД Y("; J; ")": INPUT Y(J) 620 PRINT #1, "Y("; J; ")="; Y(J): NEXT J 630 PRINT "IF I0=1 GOTO 610-ПОВТОРЕНИЕ ВВОДА ПОКАЗАТЕЛЕЙ" 635 PRINT "IF I0=2 GOTO 660-ПРОДОЛЖЕНИЕ" 640 PRINT "ВВОД I0": INPUT I0: IF I0 = 1 GOTO 610 650 IF I0 = 2 GOTO 660 660 IF X = 2 GOTO 710 670 IF X = 4 GOTO 720 680 IF X = 8 GOTO 730 690 IF X = 16 GOTO 740 700 IF X = 32 GOTO 760 710 GOSUB 2490: GOTO 780 720 GOSUB 2490: GOSUB 2500: GOTO 780 730 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOTO 780 740 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2520 750 GOTO 780 760 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2520 770 GOSUB 2530: GOTO 780 780 S = 0: O(1) = 0: FOR J = 1 TO X: S = S + Y(J): O(1) = O(1) + 1: NEXT J 790 B(1) = S / O(1): S = 0: O(2) = 0: FOR J = 1 TO X: S = S + I(J) * Y(J) 800 O(2) = O(2) + I(J) ^ 2: NEXT J: B(2) = S / O(2): IF X = 2 GOTO 1440 810 S = 0: O(3) = 0: FOR J = 1 TO X: S = S + P(J) * Y(J): O(3) = O(3) + P(J) ^ 2 820 NEXT J: B(3) = S / O(3): S = 0: O(4) = 0: FOR J = 1 TO X 830 S = S + I(J) * P(J) * Y(J): O(4) = O(4) + (I(J) * P(J)) ^ 2: NEXT J 840 B(4) = S / O(4): IF X = 4 GOTO 1440 850 S = 0: O(5) = 0 860 FOR J = 1 TO X: S = S + U(J) * Y(J): O(5) = O(5) + U(J) ^ 2 870 NEXT J: B(5) = S / O(5): S = 0: O(6) = 0: FOR J = 1 TO X 880 S = S + I(J) * U(J) * Y(J): O(6) = O(6) + (I(J) * U(J)) ^ 2: NEXT J
177
890 B(6) = S / O(6): S = 0: O(7) = 0: FOR J = 1 TO X: S = S + P(J) * U(J) * Y(J) 900 O(7) = O(7) + (P(J) * U(J)) ^ 2: NEXT J: B(7) = S / O(7): S = 0: O(8) = 0 910 FOR J = 1 TO X: S = S + I(J) * P(J) * U(J) * Y(J) 920 O(8) = O(8) + (I(J) * P(J) * U(J)) ^ 2: NEXT J: B(8) = S / O(8) 930 IF X = 8 GOTO 1440 940 S = 0: O(9) = 0: FOR J = 1 TO X 950 S = S + Q(J) * Y(J): O(9) = O(9) + Q(J) ^ 2: NEXT J: B(9) = S / O(9) 960 S = 0: O(10) = 0: FOR J = 1 TO X: S = S + I(J) * Q(J) * Y(J) 970 O(10) = O(10) + (I(J) * Q(J)) ^ 2: NEXT J: B(10) = S / O(10): S = 0 980 O(11) = 0: FOR J = 1 TO X: S = S + P(J) * Q(J) * Y(J) 990 O(11) = O(11) + (P(J) * Q(J)) ^ 2: NEXT J: B(11) = S / O(11): S = 0 1000 O(12) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * Q(J) * Y(J) 1010 O(12) = O(12) + (I(J) * P(J) * Q(J)) ^ 2: NEXT J: B(12) = S / O(12) 1020 S = 0: O(13) = 0: FOR J = 1 TO X: S = S + U(J) * Q(J) * Y(J) 1030 O(13) = O(13) + (U(J) * Q(J)) ^ 2: NEXT J: B(13) = S / O(13): S = 0 1040 O(14) = 0: FOR J = 1 TO X: S = S + I(J) * U(J) * Q(J) * Y(J) 1050 O(14) = O(14) + (I(J) * U(J) * Q(J)) ^ 2: NEXT J: B(14) = S / O(14): S = 0 1060 O(15) = 0: FOR J = 1 TO X: S = S + P(J) * U(J) * Q(J) * Y(J) 1070 O(15) = O(15) + (P(J) * U(J) * Q(J)) ^ 2: NEXT J: B(15) = S / O(15): S = 0 1080 O(16) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * U(J) * Q(J) * Y(J) 1090 O(16) = O(16) + (I(J) * P(J) * U(J) * Q(J)) ^ 2: NEXT J: B(16) = S / O(16) 1100 IF X = 16 GOTO 1440 1110 S = 0: O(17) = 0: FOR J = 1 TO X 1120 S = S + V(J) * Y(J): O(17) = O(17) + V(J) ^ 2: NEXT J: B(17) = S / O(17) 1130 S = 0: O(18) = 0: FOR J = 1 TO X: S = S + I(J) * V(J) * Y(J) 1140 O(18) = O(18) + (I(J) * V(J)) ^ 2: NEXT J: B(18) = S / O(18): S = 0 1150 O(19) = 0: FOR J = 1 TO X: S = S + P(J) * V(J) * Y(J) 1160 O(19) = O(19) + (P(J) * V(J)) ^ 2: NEXT J: B(19) = S / O(19): S = 0 1170 O(20) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * V(J) * Y(J) 1180 O(20) = O(20) + (I(J) * P(J) * V(J)) ^ 2: NEXT J: B(20) = S / O(20) 1190 S = 0: O(21) = 0: FOR J = 1 TO X: S = S + U(J) * V(J) * Y(J) 1200 O(21) = O(21) + (U(J) * V(J)) ^ 2: NEXT J: B(21) = S / O(21) 1210 S = 0: O(22) = 0: FOR J = 1 TO X: S = S + I(J) * U(J) * V(J) * Y(J) 1220 O(22) = O(22) + (I(J) * U(J) * V(J)) ^ 2: NEXT J: B(22) = S / O(22) 1230 S = 0: O(23) = 0: FOR J = 1 TO X: S = S + P(J) * U(J) * V(J) * Y(J) 1240 O(23) = O(23) + (P(J) * U(J) * V(J)) ^ 2: NEXT J: B(23) = S / O(23) 1250 S = 0: O(24) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * U(J) * V(J) * Y(J) 1260 O(24) = O(24) + (I(J) * P(J) * U(J) * V(J)) ^ 2: NEXT J: B(24) = S / O(24) 1270 S = 0: O(25) = 0: FOR J = 1 TO X: S = S + Q(J) * V(J) * Y(J) 1280 O(25) = O(25) + (Q(J) * V(J)) ^ 2: NEXT J: B(25) = S / O(25) 1290 S = 0: O(26) = 0: FOR J = 1 TO X: S = S + I(J) * Q(J) * V(J) * Y(J) 1300 O(26) = O(26) + (I(J) * Q(J) * V(J)) ^ 2: NEXT J: B(26) = S / O(26) 1310 S = 0: O(27) = 0: FOR J = 1 TO X: S = S + P(J) * Q(J) * V(J) * Y(J) 1320 O(27) = O(27) + (P(J) * Q(J) * V(J)) ^ 2: NEXT J: B(27) = S / O(27) 1330 S = 0: O(28) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * Q(J) * V(J) * Y(J) 1340 O(28) = O(28) + (I(J) * P(J) * Q(J) * V(J)) ^ 2: NEXT J: B(28) = S / O(28) 1350 S = 0: O(29) = 0: FOR J = 1 TO X: S = S + U(J) * Q(J) * V(J) * Y(J) 1360 O(29) = O(29) + (U(J) * Q(J) * V(J)) ^ 2: NEXT J: B(29) = S / O(29) 1370 S = 0: O(30) = 0: FOR J = 1 TO X: S = S + I(J) * U(J) * Q(J) * V(J) * Y(J) 1380 O(30) = O(30) + (I(J) * U(J) * Q(J) * V(J)) ^ 2: NEXT J: B(30) = S / O(30) 1390 S = 0: O(31) = 0: FOR J = 1 TO X: S = S + P(J) * U(J) * Q(J) * V(J) * Y(J) 1400 O(31) = O(31) + (P(J) * U(J) * Q(J) * V(J)) ^ 2: NEXT J: B(31) = S / O(31) 1410 S = 0: O(32) = 0: FOR J = 1 TO X: S = S + I(J) * P(J) * U(J) * Q(J) * V(J) * Y(J) 1420 O(32) = O(32) + (I(J) * P(J) * U(J) * Q(J) * V(J)) ^ 2: NEXT J 1430 B(32) = S / O(32) 1440 PRINT #1, "B(J) ДО АНАЛИЗА": FOR J = 1 TO X 1445 PRINT #1, "B("; J; ")="; B(J)
178
1450 NEXT J 1454 PRINT "ВВОД N0-КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 1456 PRINT #1, "N0-КОЛИЧЕСТВО ОПЫТОВ НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 1455 INPUT N0 1460 PRINT #1, "N0="; N0 1470 IF X = 2 GOTO 1520 1480 IF X = 4 GOTO 1530 1490 IF X = 8 GOTO 1540 1500 IF X = 16 GOTO 1550 1510 IF X = 32 GOTO 1560 1520 GOSUB 2540: GOTO 1570 1530 GOSUB 2550: GOTO 1570 1540 GOSUB 2570: GOTO 1570 1550 GOSUB 2600: GOTO 1570 1560 GOSUB 2670: GOTO 1570 1570 PRINT #1, "РАСЧЕТНЫЕ.ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ Z(J) ДО АНАЛИЗА B(J)" 1580 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 1590 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 1600 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J) * (100 / Y(J))" 1601 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 1602 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 1603 NEXT J 1604 PRINT "ВВОД F8=N0-1": INPUT F8: PRINT #1, "F8=N0-1="; N0; "-1="; F8 1620 PRINT "IF I0=3 GOTO 1710-ВВОД РЕЗУЛЬТАТОВ ОПЫТОВ" 1622 PRINT " НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ" 1625 PRINT "IF I0=4 GOTO 1760-ВВОД ДИСПЕРСИИ ОПЫТОВ" 1630 PRINT "IF I0=5 GOTO 2150-ПРОВЕРКА ТОЧНОСТИ И" 1633 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 1635 PRINT "IF I0=6 GOTO 40-НАЧАЛО" 1640 PRINT "IF I0=20 GOTO 6830-КОНЕЦ" 1641 PRINT "IF I0=25 GOTO 2820-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 1642 PRINT "IF I0=27 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 1646 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И" 1647 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 1650 PRINT "ВВОД I0": INPUT I0: IF I0 = 3 GOTO 1710 1660 IF I0 = 4 GOTO 1760 1670 IF I0 = 5 GOTO 2150 1680 IF I0 = 6 GOTO 40 1690 IF I0 = 20 GOTO 6830 1700 IF I0 = 25 GOTO 2820 1705 IF I0 = 27 GOTO 7000 1710 PRINT "ВВОД РЕЗУЛЬТАТОВ ОПЫТОВ " 1711 PRINT "НА СРЕДНЕМ УРОВНЕ " 1712 PRINT #1, "РЕЗУЛЬТАТЫ ОПЫТОВ "; 1713 PRINT #1, "НА СРЕДНЕМ УРОВНЕ ФАКТОРОВ " 1715 FOR J = 1 TO N0: PRINT "ВВОД G("; J; ")": INPUT G(J) 1720 PRINT #1, "G("; J; ")="; G(J): NEXT J: S = 0: FOR J = 1 TO N0: S = S + G(J) 1730 NEXT J: S0 = S / N0: PRINT "S0="; S0: S = 0: FOR J = 1 TO N0 1740 S = S + (G(J) - S0) ^ 2: NEXT J: U9 = S / F8 1745 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 1750 GOTO 1770 1760 PRINT "ВВОД U9-ДИСПЕРСИЯ ОПЫТОВ": INPUT U9 1761 PRINT #1, "ДИСПЕРСИЯ ОПЫТОВ U9="; U9 1770 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ T(J)": FOR J = 1 TO X 1780 T(J) = ABS(B(J) / SQR(U9 / O(J))): PRINT #1, "T("; J; ")="; T(J): NEXT J 1781 PRINT " ДЛЯ УРОВНЯ ЗНАЧИМОСТИ 5% " 1782 PRINT " ПРИ F8 2 ; 3 ; 4 ; 5 ; 6"
179
1783 PRINT "СООТВЕТСТВЕННО T0 4.303 ;3.182 ;2.776 ;2.571 ;2.447" 1784 PRINT "F8="; F8 1785 PRINT "ВВОД T0-ТАБЛИЧНЫЙ Т-КРИТЕРИЙ" 1790 PRINT "ВВОД T0": INPUT T0: PRINT #1, "ТАБЛИЧНЫЙ Т-КРИТЕРИЙ T0="; T0 1800 PRINT #1, "B(J) ПОСЛЕ АНАЛИЗА": FOR J = 1 TO X 1810 IF T(J) < T0 GOTO 1830 1820 IF T(J) >= T0 GOTO 1840 1830 B(J) = 0 1840 PRINT #1, "B("; J; ")="; B(J): NEXT J 1850 K9 = 0: FOR J = 1 TO X: IF B(J) = 0 GOTO 1852 1851 K9 = K9 + 1: NEXT J 1852 PRINT #1, "КОЛИЧЕСТВО СТАТИСТИЧЕСКИ ЗНАЧИМЫХ" 1853 PRINT #1, " КОЭФФИЦИЕНТОВ РЕГРЕССИИ K9="; K9 1862 PRINT "F9=X-1": F9 = X - 1: PRINT #1, "F9=X-1="; F9: CLS 1863 PRINT "! ! ЗНАЧЕНИЯ F-КРИТЕРИЯ F7 ДЛЯ 5%-ГО УРОВНЯ ЗНАЧИМОСТИ" 1864 PRINT "! !----------------------------------------------" 1865 PRINT "! F8! F9 " 1866 PRINT "! !----------------------------------------------" 1867 PRINT "! ! 1 ! 3 ! 7 ! 15...16 ! 30...31 !" 1868 PRINT "---------------------------------------------------" 1869 PRINT "! 2 ! 18.51 ! 19.16 ! 19.36 ! 19.43 ! 19.46 !" 1870 PRINT "! 3 ! 10.13 ! 9.28 ! 8.88 ! 8.69 ! 8.62 !" 1871 PRINT "! 4 ! 7.71 ! 6.59 ! 6.09 ! 5.84 ! 5.74 !" 1872 PRINT "! 5 ! 6.61 ! 5.41 ! 4.88 ! 4.6 ! 4.5 !" 1873 PRINT "! 6 ! 5.99 ! 4.76 ! 4.21 ! 3.92 ! 3.81 !" 1874 PRINT "!=================================================!" 1887 PRINT "F8="; F8; "F9="; F9 1890 PRINT "ВВОД ТАБЛИЧНОГО F7-ТАБЛИЧНЫЙ F-КРИТЕРИЙ" 1891 INPUT F7: PRINT #1, "ТАБЛИЧНЫЙ F-КРИТЕРИЙ F7="; F7 1900 IF X = 2 GOTO 1950 1910 IF X = 4 GOTO 1960 1920 IF X = 8 GOTO 1970 1930 IF X = 16 GOTO 1980 1940 IF X = 32 GOTO 1990 1950 GOSUB 2540: GOTO 2000 1960 GOSUB 2550: GOTO 2000 1970 GOSUB 2570: GOTO 2000 1980 GOSUB 2600: GOTO 2000 1990 GOSUB 2670: GOTO 2000 2000 PRINT #1, "РАСЧЕТНЫЕ ВЕЛИЧИНЫ ПОКАЗАТЕЛЯ "; 2005 PRINT #1, "Z(J) ПОСЛЕ АНАЛИЗА B(J)" 2010 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J): NEXT J 2011 PRINT #1, "ПРОВЕРКА ПО РАЗНОСТИ Y(J)-Z(J)" 2012 PRINT #1, "В ПРОЦЕНТАХ (Y(J)-Z(J) * (100 / Y(J))" 2013 FOR J = 1 TO X: PRINT #1, "Y("; J; ")-Z("; J; ")="; Y(J) - Z(J) 2014 PRINT #1, "(Y("; J; ")-Z("; J; ")) * (100 / Y("; J; ")) = "; (Y(J) - Z(J)) * (100 / Y(J)) 2015 NEXT J 2020 S = 0: FOR J = 1 TO X: S = S + (Z(J) - Y(J)) ^ 2: NEXT J 2025 F6 = S / (F9 * U9) 2030 PRINT #1, "РАСЧЕТНАЯ ВЕЛИЧИНА F-КРИТЕРИЯ F6="; F6 2040 IF F6 <= F7 GOTO 2042 2041 IF F6 > F7 GOTO 2043 2042 PRINT "АДЕКВАТНО": PRINT #1, "АДЕКВАТНО,ТАК КАК F6<=F7": GOTO 2044 2043 PRINT "НЕАДЕКВАТНО": PRINT #1, "НЕАДЕКВАТНО, ТАК КАК F6>F7": GOTO 2080 2044 PRINT #1, "CИСТЕМНОЕ ПРЕДСТАВЛЕНИЕ" 2045 PRINT #1, "ДЛЯ АНАЛИЗОВ РЕЗУЛЬТАТОВ РАСЧЕТОВ" 2046 PRINT #1, "ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ"
180
2047 S = 0: FOR J = 1 TO X: S = S + ABS(Z(J)): NEXT J 2048 Z1 = 0: FOR J = 1 TO X: Z1(J) = Z(J) / (S / X): NEXT J 2049 PRINT #1, "ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 2050 PRINT #1, "Z1(J)=Z(J)/(S/X), ГДЕ S - СУММА" 2051 PRINT #1, "АБСОЛЮТНЫХ ВЕЛИЧИН ПОКАЗАТЕЛЕЙ,S="; S 2052 PRINT #1, "S/X-СРЕДНЯЯ АРИФМЕТИЧЕСКАЯ ВЕЛИЧИНА, S/X="; S / X 2053 IF X = 2 GOTO 2058 2054 IF X = 4 GOTO 2058 2055 IF X = 8 GOTO 2058 2056 IF X = 16 GOTO 2058 2057 IF X = 32 GOTO 2070 2058 FOR J = 1 TO X: PRINT #1, "Z("; J; ")="; Z(J); "Z1("; J; ")="; Z1(J): NEXT J 2059 GOTO 2080 2070 GOSUB 11170: GOTO 2080 2080 PRINT "I0=7 GOTO 2150-ПРОВЕРКА ТОЧНОСТИ И" 2081 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 2085 PRINT "I0=8 GOTO 40-НАЧАЛО" 2090 PRINT "I0=17 GOTO 2820-МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 2091 PRINT "I0=9 GOTO 6830-КОНЕЦ" 2095 PRINT "IF I0=22 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 2096 PRINT " C ИСПОЛЬЗОВАНИЕМ ГРАФИКОВ И" 2097 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 2100 PRINT "ВВОД I0": INPUT I0 2110 IF I0 = 7 GOTO 2150 2120 IF I0 = 8 GOTO 40 2130 IF I0 = 17 GOTO 2820 2140 IF I0 = 9 GOTO 6830 2145 IF I0 = 22 GOTO 7000 2150 PRINT "ПРОВЕРКА ТОЧНОСТИ И РАСЧЕТЫ ПО МОДЕЛИ" 2151 PRINT "F(S),H(S),L(S),K(S),M(S)-1,2,3,4,5 ФАКТОРЫ," 2152 PRINT "ГДЕ S=X="; X; "-КОЛИЧЕСТВО ОПЫТОВ ПО ПЛАНУ" 2153 PRINT #1, "РАСЧЕТЫ ПО МОДЕЛИ" 2160 IF X = 2 GOTO 2210 2170 IF X = 4 GOTO 2240 2180 IF X = 8 GOTO 2270 2190 IF X = 16 GOTO 2310 2200 IF X = 32 GOTO 2360 2210 FOR S = 1 TO X: F(S) = 0: Z(S) = 0: PRINT "ВВОД F("; S; ")": 2220 INPUT F(S): PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S): GOSUB 2490 2230 GOSUB 2540: PRINT #1, "Z("; S; ")="; Z(S): NEXT S 2235 GOTO 2430 2240 FOR S = 1 TO X: F(S) = 0: H(S) = 0: Z(S) = 0 2250 PRINT "ВВОД F("; S; "),H("; S; ")": INPUT F(S), H(S) 2260 PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S); "H("; S; ")="; H(S) 2262 GOSUB 2490: GOSUB 2500: GOSUB 2550: GOTO 2264 2264 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 2430 2270 FOR S = 1 TO X: F(S) = 0: H(S) = 0: L(S) = 0: Z(S) = 0 2280 PRINT "ВВОД F("; S; "),H("; S; "),L("; S; ")" 2290 INPUT F(S), H(S), L(S): PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S) 2300 PRINT #1, "ФАКТОРЫ H("; S; ")="; H(S); "L("; S; ")="; L(S): GOSUB 2490 2302 GOSUB 2500: GOSUB 2510: GOSUB 2570: GOTO 2304 2304 PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 2430 2310 FOR S = 1 TO X: F(S) = 0: H(S) = 0: L(S) = 0: K(S) = 0 2320 Z(S) = 0: PRINT "ВВОД F("; S; "),H("; S; "),L("; S; "),"; "K("; S; ")" 2330 INPUT F(S), H(S), L(S), K(S): PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S) 2340 PRINT #1, "ФАКТОРЫ H("; S; ")="; H(S); "L("; S; ")="; L(S) 2345 PRINT #1, "K("; S; ")="; K(S)
181
2350 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2520 2352 GOSUB 2600: PRINT #1, "Z("; S; ")="; Z(S): NEXT S: GOTO 2430 2360 FOR S = 1 TO X: F(S) = 0: H(S) = 0: L(S) = 0: K(S) = 0 2370 M(S) = 0: Z(S) = 0: PRINT "ВВОД F("; S; "),H("; S; "),L("; S; ")" 2380 INPUT F(S), H(S), L(S): PRINT "ВВОД K("; S; "),M("; S; ")" 2390 INPUT K(S), M(S): PRINT #1, "ФАКТОРЫ F("; S; ")="; F(S) 2400 PRINT #1, "ФАКТОРЫ H("; S; ")="; H(S); "L("; S; ")="; L(S) 2410 PRINT #1, "ФАКТОРЫ K("; S; ")="; K(S); "M("; S; ")="; M(S) 2420 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2520 2422 GOSUB 2530: GOSUB 2670: GOTO 2425 2425 PRINT #1, "Z("; S; ")="; Z(S): NEXT S 2430 PRINT "IF I0=10 GOTO 2150-ПРОВЕРКА ТОЧНОСТИ И РАСЧЕТЫ ПО МОДЕЛИ" 2431 PRINT "IF I0=11 GOTO 2820 -МАТЕМАТИЧЕСКАЯ МОДЕЛЬ" 2435 PRINT "IF I0=14 GOTO 7000-ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 2436 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И" 2437 PRINT " ПОСТРОЕНИЕ ГРАФИКОВ" 2440 PRINT "IF I0=12 GOTO 6830-КОНЕЦ" 2445 PRINT "ВВОД I0": INPUT I0 2450 IF I0 = 10 GOTO 2150 2460 IF I0 = 11 GOTO 2820 2465 IF I0 = 14 GOTO 7000 2470 IF I0 = 12 GOTO 6830 2480 V0 = -(A ^ N + B ^ N) / 2 2485 PRINT #1, "КОЭФФИЦИЕНТ ОРТОГОНАЛИЗАЦИИ": RETURN 2490 FOR J = 1 TO X: I(J) = F(J) ^ J1 + V1: NEXT J: RETURN 2500 FOR J = 1 TO X: P(J) = H(J) ^ J2 + V2: NEXT J: RETURN 2510 FOR J = 1 TO X: U(J) = L(J) ^ J3 + V3: NEXT J: RETURN 2520 FOR J = 1 TO X: Q(J) = K(J) ^ J4 + V4: NEXT J: RETURN 2530 FOR J = 1 TO X: V(J) = M(J) ^ J5 + V5: NEXT J: RETURN 2540 FOR J = 1 TO X: Z(J) = B(1) + B(2) * I(J): NEXT J: RETURN 2550 FOR J = 1 TO X: Z(J) = B(1) + B(2) * I(J) + B(3) * P(J) + B(4) * I(J) * P(J) 2560 NEXT J: RETURN 2570 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * P(J) + B(4) * I(J) * P(J) 2580 N4 = B(5) * U(J) + B(6) * I(J) * U(J) + B(7) * P(J) * U(J) 2590 Z(J) = N3 + N4 + B(8) * I(J) * P(J) * U(J) 2595 NEXT J: RETURN 2600 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * P(J) + B(4) * I(J) * P(J) 2610 N4 = B(5) * U(J) + B(6) * I(J) * U(J) + B(7) * P(J) * U(J) 2620 N5 = B(8) * I(J) * P(J) * U(J) + B(9) * Q(J) + B(10) * I(J) * Q(J) 2630 N6 = B(11) * P(J) * Q(J) + B(12) * I(J) * P(J) * Q(J) + B(13) * U(J) * Q(J) 2640 N7 = B(14) * I(J) * U(J) * Q(J) + B(15) * P(J) * U(J) * Q(J) 2650 Z(J) = N3 + N4 + N5 + N6 + N7 + B(16) * I(J) * P(J) * U(J) * Q(J) 2660 NEXT J: RETURN 2670 FOR J = 1 TO X: N3 = B(1) + B(2) * I(J) + B(3) * P(J) + B(4) * I(J) * P(J) 2680 N4 = B(5) * U(J) + B(6) * I(J) * U(J) + B(7) * P(J) * U(J) 2690 N5 = B(8) * I(J) * P(J) * U(J) + B(9) * Q(J) + B(10) * I(J) * Q(J) 2700 N6 = B(11) * P(J) * Q(J) + B(12) * I(J) * P(J) * Q(J) + B(13) * U(J) * Q(J) 2710 N7 = B(14) * I(J) * U(J) * Q(J) + B(15) * P(J) * U(J) * Q(J) 2720 R0 = B(16) * I(J) * P(J) * U(J) * Q(J) + B(17) * V(J) 2730 R4 = B(18) * I(J) * V(J) + B(19) * P(J) * V(J) + B(20) * I(J) * P(J) * V(J) 2740 R5 = B(21) * U(J) * V(J) + B(22) * I(J) * U(J) * V(J) 2750 R6 = B(23) * P(J) * U(J) * V(J) + B(24) * I(J) * P(J) * U(J) * V(J) 2760 Z2 = B(25) * Q(J) * V(J) + B(26) * I(J) * Q(J) * V(J) 2770 Z3 = B(27) * P(J) * Q(J) * V(J) + B(28) * I(J) * P(J) * Q(J) * V(J) 2780 Z4 = B(29) * U(J) * Q(J) * V(J) + B(30) * I(J) * U(J) * Q(J) * V(J) 2790 Z5 = B(31) * P(J) * U(J) * Q(J) * V(J) + B(32) * I(J) * P(J) * U(J) * Q(J) * V(J) 2800 Z(J) = N3 + N4 + N5 + N6 + N7 + R0 + R4 + R5 + R6 + Z2 + Z3 + Z4 + Z5
182
2810 NEXT J: RETURN 2820 PRINT #1, "МАТЕМАТИЧЕСКАЯ МОДЕЛЬ": GOTO 2830 2830 IF X = 2 GOTO 2880 2840 IF X = 4 GOTO 2900 2850 IF X = 8 GOTO 2930 2860 IF X = 16 GOTO 2975 2861 IF X = 32 GOTO 3070 2880 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)," 2890 IF X = 2 GOTO 3250 2900 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*P(J)+" 2910 PRINT #1, " +"; B(4); "*I(J)*P(J)," 2920 IF X = 4 GOTO 3250 2930 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*P(J)+" 2940 PRINT #1, " +"; B(4); "*I(J)*P(J)+"; B(5); "*U(J)+" 2950 PRINT #1, " +"; B(6); "*I(J)*U(J)+"; B(7); "*P(J)*U(J)+" 2960 PRINT #1, " +"; B(8); "*I(J)*P(J)*U(J)," 2970 IF X = 8 GOTO 3250 2975 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*P(J)+" 2990 PRINT #1, " +"; B(4); "*I(J)*P(J)+"; B(5); "*U(J)+" 3000 PRINT #1, " +"; B(6); "*I(J)*U(J)+"; B(7); "*P(J)*U(J)+" 3010 PRINT #1, " +"; B(8); "*I(J)*P(J)*U(J)+"; B(9); "*Q(J)+" 3020 PRINT #1, " +"; B(10); "*I(J)*Q(J)+"; B(11); "*P(J)*Q(J)+" 3030 PRINT #1, " +"; B(12); "*I(J)*P(J)*Q(J)+"; B(13); "*U(J)*Q(J)+" 3040 PRINT #1, " +"; B(14); "I(J)*U(J)*Q(J)+"; B(15); "*P(J)*U(J)*Q(J)+" 3050 PRINT #1, " +"; B(16); "I(J)*P(J)*U(J)*Q(J)," 3060 IF X = 16 GOTO 3250 3070 PRINT #1, "Z(J)="; B(1); "+"; B(2); "*I(J)+"; B(3); "*P(J)+" 3080 PRINT #1, " +"; B(4); "*I(J)*P(J)+"; B(5); "*U(J)+" 3090 PRINT #1, " +"; B(6); "*I(J)*U(J)+"; B(7); "*P(J)*U(J)+" 3100 PRINT #1, " +"; B(8); "*I(J)*P(J)*U(J)+"; B(9); "*Q(J)+" 3110 PRINT #1, " +"; B(10); "*I(J)*Q(J)+"; B(11); "*P(J)*Q(J)+" 3120 PRINT #1, " +"; B(12); "*I(J)*P(J)*Q(J)+"; B(13); "*U(J)*Q(J)+" 3130 PRINT #1, " +"; B(14); "I(J)*U(J)*Q(J)+"; B(15); "*P(J)*U(J)*Q(J)+" 3140 PRINT #1, " +"; B(16); "I(J)*P(J)*U(J)*Q(J)+"; B(17); "*V(J)+" 3150 PRINT #1, " +"; B(18); "*I(J)*V(J)+"; B(19); "P(J)*V(J)+" 3160 PRINT #1, " +"; B(20); "*I(J)*P(J)*V(J)+"; B(21); "*U(J)*V(J)+" 3170 PRINT #1, " +"; B(22); "*I(J)*U(J)*V(J)+"; B(23); "*P(J)*U(J)*V(J)+" 3180 PRINT #1, " +"; B(24); "*I(J)*P(J)*U(J)*V(J)+"; B(25); "*Q(J)*V(J)+" 3190 PRINT #1, " +"; B(26); "*I(J)*Q(J)*V(J)+"; B(27); "*P(J)*Q(J)*V(J)+" 3200 PRINT #1, " +"; B(28); "*I(J)*P(J)*Q(J)*V(J)+" 3210 PRINT #1, " +"; B(29); "*U(J)*Q(J)*V(J)+" 3220 PRINT #1, " +"; B(30); "*I(J)*U(J)*Q(J)*V(J)+" 3230 PRINT #1, " +"; B(31); "*P(J)*U(J)*Q(J)*V(J)+" 3240 PRINT #1, " +"; B(32); "*I(J)*P(J)*U(J)*Q(J)*V(J)," 3250 PRINT #1, "ГДЕ" 3260 PRINT #1, "I(J)=F(J)^"; J1; "+"; V1 3261 PRINT #1, "ОБОЗНАЧЕНИЕ:F(J)- 1-й ФАКТОР " 3270 IF X = 2 GOTO 3350 3280 PRINT #1, "P(J)=H(J)^"; J2; "+"; V2 3281 PRINT #1, "ОБОЗНАЧЕНИЕ:H(J)- 2-й ФАКТОР" 3290 IF X = 4 GOTO 3350 3300 PRINT #1, "U(J)=L(J)^"; J3; "+"; V3 3301 PRINT #1, "ОБОЗНАЧЕНИЕ:L(J)- 3-й ФАКТОР" 3310 IF X = 8 GOTO 3350 3320 PRINT #1, "Q(J)=K(J)^"; J4; "+"; V4 3321 PRINT #1, "ОБОЗНАЧЕНИЕ:K(J)- 4-й ФАКТОР" 3330 IF X = 16 GOTO 3350
183
3340 PRINT #1, "V(J)=M(J)^"; J5; "+"; V5 3341 PRINT #1, "ОБОЗНАЧЕНИЕ:M(J)- 5-й ФАКТОР" 3350 PRINT "IF I0=18 GOTO 1620-ПЕРЕХОДЫ" 3355 PRINT "IF I0=19 GOTO 2080-ПЕРЕХОДЫ" 3360 PRINT "IF I0=35 GOTO 610-ВВОД НОВЫХ Y(J)" 3365 PRINT "IF I0=44 GOTO 6830-КОНЕЦ" 3370 PRINT "IF I0=50 GOTO 40-НАЧАЛО" 3371 PRINT "IF I0=51 GOTO 2150-ПРОВЕРКА ТОЧНОСТИ И" 3372 PRINT " РАСЧЕТЫ ПО МОДЕЛИ" 3373 PRINT "IF I0=52 GOTO 7000-" 3376 PRINT " ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5) " 3378 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 3379 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 3380 PRINT "ВВОД I0": INPUT I0 3390 IF I0 = 18 GOTO 1620 3400 IF I0 = 19 GOTO 2080 3410 IF I0 = 35 GOTO 610 3420 IF I0 = 44 GOTO 6830 3430 IF I0 = 50 GOTO 40 3440 IF I0 = 51 GOTO 2150 3445 IF I0 = 52 GOTO 7000 6830 CLOSE #1 6832 PRINT "РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ СМОТРИ В "; 6835 PRINT "ФАЙЛЕ "; FA$ 6840 END 7000 PRINT #1, "ВЫЧИСЛЕНИЯ ПОКАЗАТЕЛЕЙ Z(K5)" 7004 PRINT #1, " ПО МАТЕМАТИЧЕСКОЙ МОДЕЛИ" 7005 PRINT #1, " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ" 7006 PRINT #1, "И ПОСТРОЕНИЕ ГРАФИКОВ" 7030 PRINT "ВВОД I0=63 ПРИ Х=2,Х=4,Х=8,X=16,X=32" 7040 PRINT "IF I0=64 GOTO 40-НАЧАЛО" 7050 PRINT "IF I0=65 GOTO 6830-КОНЕЦ" 7060 INPUT I0 7090 IF I0 = 63 GOTO 7190 7100 IF I0 = 64 GOTO 40 7110 IF I0 = 65 GOTO 6830 7190 PRINT "ВВОД I0=73 ПРИ X=2,ВВОД I0=74 ПРИ X=4" 7200 PRINT "ВВОД I0=75 ПРИ X=8,ВВОД I0=76 ПРИ X=16" 7210 PRINT "ВВОД I0=77 ПРИ X=32": INPUT I0 7220 IF I0 = 73 GOTO 7270 7230 IF I0 = 74 GOTO 7350 7240 IF I0 = 75 GOTO 7450 7250 IF I0 = 76 GOTO 7590 7260 IF I0 = 77 GOTO 7770 7270 F3 = 0: F4 = 0: K5 = 0: PRINT "ФАКТОР F(1)=F3+F4" 7271 PRINT #1, "ФАКТОР F(1)=F3+F4" 7280 FOR J = 1 TO X: Z(J) = 0: NEXT J: X = 0 7290 PRINT "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7291 PRINT #1, "F4-ШАГ ПРИРАЩЕНИЯ ФАКТОРА" 7292 PRINT #1, "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7293 PRINT "X-КОЛИЧЕСТВО ЗНАЧЕНИЙ ФАКТОРА" 7300 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4" 7310 INPUT X, F3, F4: PRINT #1, "X="; X; "F3="; F3; "F4="; F4 7320 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7325 PRINT #1, "F("; K5; ")="; F(K5) 7330 GOSUB 2490: GOSUB 2540: PRINT #1, "Z("; K5; ")="; Z(K5) 7340 NEXT K5: GOTO 8000
184
7350 F3 = 0: F4 = 0: H3 = 0: H4 = 0: K5 = 0: PRINT "F(1)=F3+F4" 7360 FOR J = 1 TO X: F(J) = 0: Z(J) = 0: NEXT J: X = 0 7370 PRINT "F4,H4-ШАГ ПРИРАЩЕНИЯ 1, 2-ГО ФАКТОРОВ" 7375 PRINT "ФАКТОР H(1)=H3+H4" 7376 PRINT #1, "F4,H4-ШАГ ПРИРАЩЕНИЯ 1, 2-ГО ФАКТОРОВ" 7377 PRINT #1, "ФАКТОР H(1)=H3+H4" 7380 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4" 7390 INPUT X, F3, F4, H3, H4: PRINT #1, "X="; X; "F3="; F3 7400 PRINT #1, "F4="; F4; "H3="; H3; "H4="; H4 7410 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7415 PRINT #1, "F("; K5; ")= "; F(K5) 7420 H(K5) = H3 + K5 * H4: PRINT #1, "H("; K5; ")= "; H(K5) 7430 GOSUB 2490: GOSUB 2500: GOSUB 2550 7440 PRINT #1, "Z("; K5; ")="; Z(K5): NEXT K5: GOTO 8000 7450 F3 = 0: F4 = 0: H3 = 0: H4 = 0: L3 = 0: L4 = 0: K5 = 0 7460 PRINT "F(1)=F3+F4,H(1)=H3+H4,L(1)=L3+L4" 7461 PRINT #1, "F(1)=F3+F4,H(1)=H3+H4,L(1)=L3+L4" 7470 FOR J = 1 TO X: F(J) = 0: H(J) = 0: L(J) = 0: Z(J) = 0: NEXT J: X = 0 7480 PRINT "F4,H4,L4- ШАГ ПРИРАЩЕНИЯ 1, 2, 3-ГО ФАКТОРОВ" 7481 PRINT #1, "F4,H4,L4- ШАГ ПРИРАЩЕНИЯ 1, 2, 3-ГО ФАКТОРОВ" 7490 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4,L3,L4" 7500 INPUT X, F3, F4, H3, H4, L3, L4 7510 PRINT #1, "X="; X; "F3="; F3; "F4="; F4; "H3="; H3; "H4="; H4 7520 PRINT #1, "L3="; L3; "L4="; L4 7530 FOR K5 = 1 TO X: F(K5) = F3 + K5 * F4 7540 PRINT #1, "F("; K5; ")="; F(K5) 7550 H(K5) = H3 + K5 * H4: PRINT #1, "H("; K5; ")="; H(K5) 7560 L(K5) = L3 + K5 * L4: PRINT #1, "L("; K5; ")= "; L(K5) 7570 GOSUB 2490: GOSUB 2500: GOSUB 2510: GOSUB 2570: GOTO 7580 7580 PRINT #1, "Z("; K5; ")= "; Z(K5) 7585 NEXT K5: GOTO 8000 7590 F3 = 0: F4 = 0: H3 = 0: H4 = 0: L3 = 0: K3 = 0: K4 = 0: K5 = 0 7595 FOR J = 1 TO X: F(J) = 0: H(J) = O: L(J) = 0: K(J) = 0: Z(J) = 0: NEXT J: X = 0 7600 PRINT "F(1)=F3+F4:H1=H3+H4;L(1)=L3+L4" 7610 PRINT "K(1)=K3+K4" 7611 PRINT #1, "F(1)=F3+F4:H1=H3+H4;L(1)=L3+L4" 7612 PRINT #1, "K(1)=K3+K4" 7620 PRINT "F4,H4,L4,K4 - ШАГ ПРИРАЩЕНИЯ 1, 2, 3, 4-ГО ФАКТОРОВ" 7630 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4,"; 7640 PRINT "L3,L4,K3,K4" 7650 INPUT X, F3, F4, H3, H4, L3, L4, K3, K4 7670 PRINT #1, "X="; X; "F3="; F3; "F4="; F4; "H3="; H3; "H4="; H4 7680 PRINT #1, "L3="; L3; "L4="; L4; "K3="; K3; "K4="; K4 7690 FOR K5 = 1 TO X: F(K5) = F3 + K5 * K4 7700 PRINT #1, "F("; K5; ")="; F(K5): H(K5) = H3 + K5 * H4 7710 PRINT #1, "H("; K5; ")="; H(K5): L(K5) = L3 + K5 * L4 7720 PRINT #1, "L("; K5; ")="; L(K5): K(K5) = K3 + K5 * K4 7730 PRINT #1, "K("; K5; ")="; K(K5): GOSUB 2490 7740 GOSUB 2500: GOSUB 2510: GOSUB 2520 7750 GOSUB 2600: PRINT #1, "Z("; K5; ")="; Z(K5) 7760 NEXT K5: GOTO 8000 7770 F3 = 0: F4 = 0: H3 = 0: H4 = 0: L3 = 0: L4 = 0 7780 K3 = 0: K4 = 0: K5 = 0: M3 = 0: M4 = 0 7790 FOR J = 1 TO X: F(J) = 0: H(J) = 0: L(J) = 0 7800 K(J) = 0: M(J) = 0: Z(J) = 0: NEXT J: X = 0 7810 PRINT "F(1)=F3+F4;H(1)=H3+H4;L(1)=L3+L4" 7820 PRINT "K(1)=K3+K4;M(1)=M3+M4"
185
7830 PRINT "F4,H4,L4,K4,M4-ШАГ" 7840 PRINT "ПРИРАЩЕНИЯ 1, 2, 3, 4, 5-ГО ФАКТОРОВ" 7841 PRINT #1, "F(1)=F3+F4;H(1)=H3+H4;L(1)=L3+L4" 7842 PRINT #1, "K(1)=K3+K4;M(1)=M3+M4" 7843 PRINT #1, "F4,H4,L4,K4,M4-ШАГ" 7844 PRINT #1, "ПРИРАЩЕНИЯ 1 ,2 ,3 ,4 ,5-ГО ФАКТОРОВ" 7850 PRINT "ВВОД ПРИНЯТЫХ ВЕЛИЧИН X,F3,F4,H3,H4," 7860 PRINT "L3,L4,K3,K4,M3,M4" 7870 INPUT X, F3, F4, H3, H4, L3, L4, K3, K4, M3, M4 7890 PRINT #1, "X="; X; "F3="; F3; "F4="; F4; "H3="; H3 7900 PRINT #1, "H4="; H4; "L3="; L3; "L4="; L4 7910 PRINT #1, "K3="; K3; "K4="; K4; "M3="; M3; "M4="; M4 7920 FOR K5 = 1 TO X: F(K5) = F3 + K5 * K4 7930 PRINT #1, "F("; K5; ")="; F(K5): H(K5) = H3 + K5 * H4 7940 PRINT #1, "H("; K5; ")="; H(K5): L(K5) = L3 + K5 * L4 7950 PRINT #1, "L("; K5; ")="; L(K5): K(K5) = K3 + K5 * K4 7960 PRINT #1, "K("; K5; ")="; K(K5): M(K5) = M3 + K5 * M4 7970 PRINT #1, "M("; K5; ")="; M(K5): GOSUB 2490 7980 GOSUB 2500: GOSUB 2510: GOSUB 2520: GOSUB 2530 7990 GOSUB 2670: PRINT #1, "Z("; K5; ")="; Z(K5): NEXT K5 8000 PRINT #1, "ВЫЯВЛЕНИЕ MAX Z(K5) И MIN Z(K5)": K8 = 0: K8 = Z(1) 8002 PRINT "ВВОД I0=90-ПРОДОЛЖЕНИЕ" 8004 INPUT I0 8010 FOR K5 = 1 TO X 8020 IF Z(K5) >= K8 THEN K8 = Z(K5) 8040 NEXT K5: PRINT #1, "MAX Z(K5)="; K8 8041 FOR K5 = 1 TO X 8042 IF Z(K5) = K8 THEN PRINT #1, "MAX Z("; K5; ")="; Z(K5) 8044 NEXT K5 8050 K7 = 0: K7 = Z(1) 8060 FOR K5 = 1 TO X 8070 IF Z(K5) <= K7 THEN K7 = Z(K5) 8090 NEXT K5: PRINT #1, "MIN Z(K5)="; K7 8091 FOR K5 = 1 TO X 8092 IF Z(K5) = K7 THEN PRINT #1, "MIN Z("; K5; ")="; Z(K5) 8093 NEXT K5: K6 = 0: PRINT #1, "MIN Z(K5)=К7,MAX Z(K5)=K8" 8094 PRINT #1, "K6(K5)=(Z(K5)+ABS(K7))/(ABS(K7)+ABS(K8))" 8095 FOR K5 = 1 TO X: K6(K5) = (Z(K5) + ABS(K7)) / (ABS(K7) + ABS(K8)) 8096 PRINT #1, "K6("; K5; ")="; K6(K5): NEXT K5 8097 PRINT #1, "J5=ABS(K7)/(ABS(K7)+ABS(K8))" 8098 J5 = 0: J5 = ABS(K7) / (ABS(K7) + ABS(K8)): PRINT #1, "J5="; J5 8110 PRINT "IF I0=70 GOTO 7000-ПОВТОРЕНИЕ " 8111 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5) " 8114 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 8115 PRINT "IF I0=80 GOTO 9000-ПОСТРОЕНИЕ ГРАФИКА" 8120 INPUT I0 8125 IF I0 = 70 GOTO 7000 8130 IF I0 = 80 GOTO 9000 9000 K0 = 0: K3 = 0: K4 = 0: K4 = X: K7 = 0: K8 = 0: X0 = 0: Y0 = 0 9010 PRINT #1, "ПОСТРОЕНИЕ ГРАФИКА" 9015 PRINT #1, "ЗАВИСИМОСТЬ K6(K5) ОТ ФАКТОРА" 9020 PRINT #1, "K6(K5)-ОТНОСИТЕЛЬНАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ" 9025 PRINT "K5-НОМЕР ВЕЛИЧИНЫ ФАКТОРА И ПОКАЗАТЕЛЯ" 9030 PRINT "ВЕЛИЧИНЫ ФАКТОРОВ ЗАДАНЫ " 9035 PRINT "ВВОД:X0-ОТСТУП ВПРАВО ПО ОСИ Х (ПРЕДПОЧТИТЕЛЬНО Х0=20)" 9036 PRINT " X0-ОТСТУП ВНИЗ ПО ОСИ Y (ПРЕДПОЧТИТЕЛЬНО Y0=180)" 9037 PRINT " K0-ДЛИНА ГРАФИКА ПО ОСИ Х"
186
9038 PRINT " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9039 PRINT "ВВОД X0,Y0,K0,K3" 9045 INPUT X0, Y0, K0, K3 9050 PRINT #1, "X0="; X0; "Y0="; Y0; "K0="; K0; "K3="; K3; ",ГДЕ" 9051 PRINT #1, " X0-ОТСТУП ВПРАВО ПО ОСИ Х " 9052 PRINT #1, " Y0-ОТСТУП ВНИЗ ПО ОСИ Y " 9053 PRINT #1, " K0-ДЛИНА ГРАФИКА ПО ОСИ Х" 9054 PRINT #1, " K3-ВЫСОТА ГРАФИКА ПО ОСИ Y" 9055 KEY OFF: CLS 9056 COLOR 0, 0: SCREEN 2 9057 FOR K5 = 1 TO K4: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9058 LINE (K7(K5) - X0, Y0)-(K7(K5) - X0, Y0 - K8(K5)) 9059 NEXT K5 9060 J6 = 0: J6 = X - 1: J7 = 0: J8 = 0: J9 = 0: K7 = 0: K8 = 0 9061 FOR K5 = 1 TO J6: K7(K5) = K5 * K0: K8(K5) = K3 * K6(K5) 9062 J7(K5) = (K5 + 1) * K0: J8(K5) = K3 * K6(K5 + 1): J9 = K3 * J5 9063 LINE (K7(K5) - X0, Y0)-(J7(K5) - X0, Y0) 9064 LINE (K7(K5) - X0, Y0 - J9)-(J7(K5) - X0, Y0 - J9) 9065 LINE (K7(K5) - X0, Y0 - K8(K5))-(J7(K5) - X0, Y0 - J8(K5)) 9066 NEXT K5 9071 A$ = "" 9072 A$ = INKEY$: IF A$ = "" THEN 9072 9073 SCREEN 0: CLS : COLOR 2, 0 9074 PRINT "ВВОД I0=75 GOTO 9000-ПОВТОРЕНИЕ ПОСТРОЕНИЯ ГРАФИКА" 9075 PRINT "ВВОД I0=85 GOTO 7000-ПОВТОРЕНИЕ" 9076 PRINT " ВЫЧИСЛЕНИЙ ПОКАЗАТЕЛЕЙ Z(K5)" 9078 PRINT " С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ " 9079 PRINT " И ПОСТРОЕНИЕ ГРАФИКОВ" 9080 PRINT "ВВОД I0=95 GOTO 6830-КОНЕЦ": PRINT 9081 INPUT I0 9082 IF I0 = 75 GOTO 9000 9090 IF I0 = 85 GOTO 7000 9095 IF I0 = 95 GOTO 6830 11170 PRINT #1, "1.1."; "A2="; A2; "A3="; A3; "A4="; A4; "A5="; A5; "A1="; A1; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11180 PRINT #1, "1.2."; "A2="; A2; "A3="; A3; "A4="; A4; "A5="; A5; "B1="; B1; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11190 PRINT #1, "2.1."; "A2="; A2; "B3="; B3; "A4="; A4; "A5="; A5; "A1="; A1; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11200 PRINT #1, "2.2."; "A2="; A2; "B3="; B3; "A4="; A4; "A5="; A5; "B1="; B1; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 11210 PRINT #1, "3.1."; "A2="; A2; "A3="; A3; "B4="; B4; "A5="; A5; "A1="; A1; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 11220 PRINT #1, "3.2."; "A2="; A2; "A3="; A3; "B4="; B4; "A5="; A5; "B1="; B1; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 11230 PRINT #1, "4.1."; "A2="; A2; "B3="; B3; "B4="; B4; "A5="; A5; "A1="; A1; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 11240 PRINT #1, "4.2."; "A2="; A2; "B3="; B3; "B4="; B4; "A5="; A5; "B1="; B1; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 11250 PRINT #1, "5.1."; "B2="; B2; "A3="; A3; "A4="; A4; "A5="; A5; "A1="; A1; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11260 PRINT #1, "5.2."; "B2="; B2; "A3="; A3; "A4="; A4; "A5="; A5; "B1="; B1; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11270 PRINT #1, "6.1."; "B2="; B2; "B3="; B3; "A4="; A4; "A5="; A5; "A1="; A1; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 11280 PRINT #1, "6.2."; "B2="; B2; "B3="; B3; "A4="; A4; "A5="; A5; "B1="; B1; "Z(8)="; Z(8); "Z1(8)="; Z1(8)
187
11290 PRINT #1, "7.1."; "B2="; B2; "A3="; A3; "B4="; B4; "A5="; A5; "A1="; A1; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 11300 PRINT #1, "7.2."; "B2="; B2; "A3="; A3; "B4="; B4; "A5="; A5; "B1="; B1; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 11310 PRINT #1, "8.1."; "B2="; B2; "B3="; B3; "B4="; B4; "A5="; A5; "A1="; A1; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 11320 PRINT #1, "8.2."; "B2="; B2; "B3="; B3; "B4="; B4; "A5="; A5; "B1="; B1; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 11330 PRINT #1, "9.1."; "A2="; A2; "A3="; A3; "A4="; A4; "B5="; B5; "A1="; A1; "Z(17)="; Z(17); "Z1(17)="; Z1(17) 11340 PRINT #1, "9.2."; "A2="; A2; "A3="; A3; "A4="; A4; "B5="; B5; "B1="; B1; "Z(18)="; Z(18); "Z1(18)="; Z1(18) 11350 PRINT #1, "10.1."; "A2="; A2; "B3="; B3; "A4="; A4; "B5="; B5; "A1="; A1; "Z(21)="; Z(21); "Z1(21)="; Z1(21) 11360 PRINT #1, "10.2."; "A2="; A2; "B3="; B3; "A4="; A4; "B5="; B5; "B1="; B1; "Z(22)="; Z(22); "Z1(22)="; Z1(22) 11370 PRINT #1, "11.1."; "A2="; A2; "A3="; A3; "B4="; B4; "B5="; B5; "A1="; A1; "Z(25)="; Z(25); "Z1(25)="; Z1(25) 11380 PRINT #1, "11.2."; "A2="; A2; "A3="; A3; "B4="; B4; "B5="; B5; "B1="; B1; "Z(26)="; Z(26); "Z1(26)="; Z1(26) 11390 PRINT #1, "12.1."; "A2="; A2; "B3="; B3; "B4="; B4; "B5="; B5; "A1="; A1; "Z(29)="; Z(29); "Z1(29)="; Z1(29) 11400 PRINT #1, "12.2."; "A2="; A2; "B3="; B3; "B4="; B4; "B5="; B5; "B1="; B1; "Z(30)="; Z(30); "Z1(30)="; Z1(30) 11410 PRINT #1, "13.1."; "B2="; B2; "A3="; A3; "A4="; A4; "B5="; B5; "A1="; A1; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 11420 PRINT #1, "13.2."; "B2="; B2; "A3="; A3; "A4="; A4; "B5="; B5; "B1="; B1; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 11430 PRINT #1, "14.1."; "B2="; B2; "B3="; B3; "A4="; A4; "B5="; B5; "A1="; A1; "Z(23)="; Z(23); "Z1(23)="; Z1(23) 11440 PRINT #1, "14.2."; "B2="; B2; "B3="; B3; "A4="; A4; "B5="; B5; "B1="; B1; "Z(24)="; Z(24); "Z1(24)="; Z1(24) 11450 PRINT #1, "15.1."; "B2="; B2; "A3="; A3; "B4="; B4; "B5="; B5; "A1="; A1; "Z(27)="; Z(27); "Z1(27)="; Z1(27) 11460 PRINT #1, "15.2."; "B2="; B2; "A3="; A3; "B4="; B4; "B5="; B5; "B1="; B1; "Z(28)="; Z(28); "Z1(28)="; Z1(28) 11470 PRINT #1, "16.1."; "B2="; B2; "B3="; B3; "B4="; B4; "B5="; B5; "A1="; A1; "Z(31)="; Z(31); "Z1(31)="; Z1(31) 11480 PRINT #1, "16.2."; "B2="; B2; "B3="; B3; "B4="; B4; "B5="; B5; "B1="; B1; "Z(32)="; Z(32); "Z1(32)="; Z1(32) 11490 PRINT #1, "17.1."; "A1="; A1; "A3="; A3; "A4="; A4; "A5="; A5; "A2="; A2; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11500 PRINT #1, "17.2."; "A1="; A1; "A3="; A3; "A4="; A4; "A5="; A5; "B2="; B2; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11510 PRINT #1, "18.1."; "A1="; A1; "B3="; B3; "A4="; A4; "A5="; A5; "A2="; A2; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11520 PRINT #1, "18.2."; "A1="; A1; "B3="; B3; "A4="; A4; "A5="; A5; "B2="; B2; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 11530 PRINT #1, "19.1."; "A1="; A1; "A3="; A3; "B4="; B4; "A5="; A5; "A2="; A2; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 11540 PRINT #1, "19.2."; "A1="; A1; "A3="; A3; "B4="; B4; "A5="; A5; "B2="; B2; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 11550 PRINT #1, "20.1."; "A1="; A1; "B3="; B3; "B4="; B4; "A5="; A5; "A2="; A2; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 11560 PRINT #1, "20.2."; "A1="; A1; "B3="; B3; "B4="; B4; "A5="; A5; "B2="; B2; "Z(15)="; Z(15); "Z1(15)="; Z1(15)
188
11570 PRINT #1, "21.1."; "B1="; B1; "A3="; A3; "A4="; A4; "A5="; A5; "A2="; A2; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11580 PRINT #1, "21.2."; "B1="; B1; "A3="; A3; "A4="; A4; "A5="; A5; "B2="; B2; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11590 PRINT #1, "22.1."; "B1="; B1; "B3="; B3; "A4="; A4; "A5="; A5; "A2="; A2; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 11600 PRINT #1, "22.2."; "B1="; B1; "B3="; B3; "A4="; A4; "A5="; A5; "B2="; B2; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 11610 PRINT #1, "23.1."; "B1="; B1; "A3="; A3; "B4="; B4; "A5="; A5; "A2="; A2; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 11620 PRINT #1, "23.2."; "B1="; B1; "A3="; A3; "B4="; B4; "A5="; A5; "B2="; B2; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 11630 PRINT #1, "24.1."; "B1="; B1; "B3="; B3; "B4="; B4; "A5="; A5; "A2="; A2; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 11640 PRINT #1, "24.2."; "B1="; B2; "B3="; B3; "B4="; B4; "A5="; A5; "B2="; B2; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 11650 PRINT #1, "25.1."; "A1="; A1; "A3="; A3; "A4="; A4; "B5="; B5; "A2="; A2; "Z(17)="; Z(17); "Z1(17)="; Z1(17) 11660 PRINT #1, "25.2."; "A1="; A1; "A3="; A3; "A4="; A4; "B5="; B5; "B2="; B2; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 11670 PRINT #1, "26.1."; "A1="; A1; "B3="; B3; "A4="; A4; "B5="; B5; "A2="; A2; "Z(21)="; Z(21); "Z1(21)="; Z1(21) 11680 PRINT #1, "26.2."; "A1="; A1; "B3="; B3; "A4="; A4; "B5="; B5; "B2="; B2; "Z(23)="; Z(23); "Z1(23)="; Z1(23) 11690 PRINT #1, "27.1."; "A1="; A1; "A3="; A3; "B4="; B4; "B5="; B5; "A2="; A2; "Z(25)="; Z(25); "Z1(25)="; Z1(25) 11700 PRINT #1, "27.2."; "A1="; A1; "A3="; A3; "B4="; B4; "B5="; B5; "B2="; B2; "Z(27)="; Z(27); "Z1(27)="; Z1(27) 11710 PRINT #1, "28.1."; "A1="; A1; "B3="; B3; "B4="; B4; "B5="; B5; "A2="; A2; "Z(29)="; Z(29); "Z1(29)="; Z1(29) 11720 PRINT #1, "28.2."; "A1="; A1; "B3="; B3; "B4="; B4; "B5="; B5; "B2="; B2; "Z(31)="; Z(31); "Z1(31)="; Z1(31) 11730 PRINT #1, "29.1."; "B1="; B1; "A3="; A3; "A4="; A4; "B5="; B5; "A2="; A2; "Z(18)="; Z(18); "Z1(18)="; Z1(18) 11740 PRINT #1, "29.2."; "B1="; B1; "A3="; A3; "A4="; A4; "B5="; B5; "B2="; B2; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 11750 PRINT #1, "30.1."; "B1="; B1; "B3="; B3; "A4="; A4; "B5="; B5; "A2="; A2; "Z(22)="; Z(22); "Z1(22)="; Z1(22) 11760 PRINT #1, "30.2."; "B1="; B1; "B3="; B3; "A4="; A4; "B5="; B5; "A2="; A2; "Z(24)="; Z(24); "Z1(24)="; Z1(24) 11770 PRINT #1, "31.1."; "B1="; B1; "A3="; A3; "B4="; B4; "B5="; B5; "A2="; A2; "Z(26)="; Z(26); "Z1(26)="; Z1(26) 11780 PRINT #1, "31.2."; "B1="; B1; "A3="; A3; "B4="; B4; "B5="; B5; "B2="; B2; "Z(28)="; Z(28); "Z1(28)="; Z1(28) 11790 PRINT #1, "32.1."; "B1="; B1; "B3="; B3; "B4="; B4; "B5="; B5; "A2="; A2; "Z(30)="; Z(30); "Z1(30)="; Z1(30) 11800 PRINT #1, "32.2."; "B1="; B1; "B3="; B3; "B4="; B4; "B5="; B5; "B2="; B2; "Z(32)="; Z(32); "Z1(32)="; Z1(32) 11810 PRINT #1, "33.1."; "A1="; A1; "A2="; A2; "A4="; A4; "A5="; A5; "A3="; A3; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 11820 PRINT #1, "33.2."; "A1="; A1; "A2="; A2; "A4="; A4; "A5="; A5; "B3="; B3; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 11830 PRINT #1, "34.1."; "A1="; A1; "B2="; B2; "A4="; A4; "A5="; A5; "A3="; A3; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 11840 PRINT #1, "34.2."; "A1="; A1; "B2="; B2; "A4="; A4; "A5="; A5; "B3="; B3; "Z(7)="; Z(7); "Z1(7)="; Z1(7)
189
11850 PRINT #1, "35.1."; "A1="; A1; "A2="; A2; "B4="; B4; "A5="; A5; "A3="; A3; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 11860 PRINT #1, "35.2."; "A1="; A1; "A2="; A2; "B4="; B4; "A5="; A5; "B3="; B3; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 11870 PRINT #1, "36.1."; "A1="; A1; "B2="; B2; "B4="; B4; "A5="; A5; "A3="; A3; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 11880 PRINT #1, "36.2."; "A1="; A1; "B2="; B2; "B4="; B4; "A5="; A5; "B3="; B3; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 11890 PRINT #1, "37.1."; "B1="; B1; "A2="; A2; "A4="; A4; "A5="; A5; "A3="; A3; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 11900 PRINT #1, "37.2."; "B1="; B1; "A2="; A2; "A4="; A4; "A5="; A5; "B3="; B3; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 11910 PRINT #1, "38.1."; "B1="; B1; "B2="; B2; "A4="; A4; "A5="; A5; "A3="; A3; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 11920 PRINT #1, "38.2."; "B1="; B1; "B2="; B2; "A4="; A4; "A5="; A5; "B3="; B3; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 11930 PRINT #1, "39.1."; "B1="; B1; "A2="; A2; "B4="; B4; "A5="; A5; "A3="; A3; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 11940 PRINT #1, "39.2."; "B1="; B1; "A2="; A2; "B4="; B4; "A5="; A5; "B3="; B3; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 11950 PRINT #1, "40.1."; "B1="; B1; "B2="; B2; "B4="; B4; "A5="; A5; "A3="; A3; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 11960 PRINT #1, "40.2."; "B1="; B1; "B2="; B2; "B4="; B4; "A5="; A5; "B3="; B3; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 11970 PRINT #1, "41.1."; "A1="; A1; "A2="; A2; "A4="; A4; "B5="; B5; "A3="; A3; "Z(17)="; Z(17); "Z1(17)="; Z1(17) 11980 PRINT #1, "41.2."; "A1="; A1; "A2="; A2; "A4="; A4; "B5="; B5; "B3="; B3; "Z(21)="; Z(21); "Z1(21)="; Z1(21) 11990 PRINT #1, "42.1."; "A1="; A1; "B2="; B2; "A4="; A4; "B5="; B5; "A3="; A3; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 12000 PRINT #1, "42.2."; "A1="; A1; "B2="; B2; "A4="; A4; "B5="; B5; "B3="; B3; "Z(23)="; Z(23); "Z1(23)="; Z1(23) 12010 PRINT #1, "43.1."; "A1="; A1; "A2="; A2; "B4="; B4; "B5="; B5; "A3="; A3; "Z(25)="; Z(25); "Z1(25)="; Z1(25) 12020 PRINT #1, "43.2."; "A1="; A1; "A2="; A2; "B4="; B4; "B5="; B5; "B3="; B3; "Z(29)="; Z(29); "Z1(29)="; Z1(29) 12030 PRINT #1, "44.1."; "A1="; A1; "B2="; B2; "B4="; B4; "B5="; B5; "A3="; A3; "Z(27)="; Z(27); "Z1(27)="; Z1(27) 12040 PRINT #1, "44.2."; "A1="; A1; "B2="; B2; "B4="; B4; "B5="; B5; "B3="; B3; "Z(31)="; Z(31); "Z1(31)="; Z1(31) 12050 PRINT #1, "45.1."; "B1="; B1; "A2="; A2; "A4="; A4; "B5="; B5; "A3="; A3; "Z(18)="; Z(18); "Z1(18)="; Z1(18) 12060 PRINT #1, "45.2."; "B1="; B1; "A2="; A2; "A4="; A4; "B5="; B5; "B3="; B3; "Z(22)="; Z(22); "Z1(22)="; Z1(22) 12070 PRINT #1, "46.1."; "B1="; B1; "B2="; B2; "A4="; A4; "B5="; B5; "A3="; A3; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 12080 PRINT #1, "46.2."; "B1="; B1; "B2="; B2; "A4="; A4; "B5="; B5; "B3="; B3; "Z(24)="; Z(24); "Z1(24)="; Z1(24) 12090 PRINT #1, "47.1."; "B1="; B1; "A2="; A2; "B4="; B4; "B5="; B5; "A3="; A3; "Z(26)="; Z(26); "Z1(26)="; Z1(26) 12100 PRINT #1, "47.2."; "B1="; B1; "A2="; A2; "B4="; B4; "B5="; B5; "B3="; B3; "Z(30)="; Z(30); "Z1(30)="; Z1(30) 12110 PRINT #1, "48.1."; "B1="; B1; "B2="; B2; "B4="; B4; "B5="; B5; "A3="; A3; "Z(28)="; Z(28); "Z1(28)="; Z1(28) 12120 PRINT #1, "48.2."; "B1="; B1; "B2="; B2; "B4="; B4; "B5="; B5; "B3="; B3; "Z(32)="; Z(32); "Z1(32)="; Z1(32)
190
12130 PRINT #1, "49.1."; "A2="; A2; "A3="; A3; "A1="; A1; "A5="; A5; "A4="; A4; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 12140 PRINT #1, "49.2."; "A2="; A2; "A3="; A3; "A1="; A1; "A5="; A5; "B4="; B4; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 12150 PRINT #1, "50.1."; "A2="; A2; "B3="; B3; "A1="; A1; "A5="; A5; "A4="; A4; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 12160 PRINT #1, "50.2."; "A2="; A2; "B3="; B3; "A1="; A1; "A5="; A5; "B4="; B4; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 12170 PRINT #1, "51.1."; "A2="; A2; "A3="; A3; "B1="; B1; "A5="; A5; "A4="; A4; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 12180 PRINT #1, "51.2."; "A2="; A2; "A3="; A3; "B1="; B1; "A5="; A5; "B4="; B4; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 12190 PRINT #1, "52.1."; "A2="; A2; "B3="; B3; "B1="; B1; "A5="; A5; "A4="; A4; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 12200 PRINT #1, "52.2."; "A2="; A2; "B3="; B3; "B1="; B1; "A5="; A5; "B4="; B4; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 12210 PRINT #1, "53.1."; "B2="; B2; "A3="; A3; "A1="; A1; "A5="; A5; "A4="; A4; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 12220 PRINT #1, "53.2."; "B2="; B2; "A3="; A3; "A1="; A1; "A5="; A5; "B4="; B4; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 12230 PRINT #1, "54.1."; "B2="; B2; "B3="; B3; "A1="; A1; "A5="; A5; "A4="; A4; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 12240 PRINT #1, "54.2."; "B2="; B2; "B3="; B3; "A1="; A1; "A5="; A5; "B4="; B4; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 12250 PRINT #1, "55.1."; "B2="; B2; "A3="; A3; "B1="; B1; "A5="; A5; "A4="; A4; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 12260 PRINT #1, "55.2."; "B2="; B2; "A3="; A3; "B1="; B1; "A5="; A5; "B4="; B4; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 12270 PRINT #1, "56.1."; "B2="; B2; "B3="; B3; "B1="; B1; "A5="; A5; "A4="; A4; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 12280 PRINT #1, "56.2."; "B2="; B2; "B3="; B3; "B1="; B1; "A5="; A5; "B4="; B4; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 12290 PRINT #1, "57.1."; "A2="; A2; "A3="; A3; "A1="; A1; "B5="; B5; "A4="; A4; "Z(17)="; Z(17); "Z1(17)="; Z1(17) 12300 PRINT #1, "57.2."; "A2="; A2; "A3="; A3; "A1="; A1; "B5="; B5; "B4="; B4; "Z(25)="; Z(25); "Z1(25)="; Z1(25) 12310 PRINT #1, "58.1."; "A2="; A2; "B3="; B3; "A1="; A1; "B5="; B5; "A4="; A4; "Z(21)="; Z(21); "Z1(21)="; Z1(21) 12320 PRINT #1, "58.2."; "A2="; A2; "B3="; B3; "A1="; A1; "B5="; B5; "B4="; B4; "Z(29)="; Z(29); "Z1(29)="; Z1(29) 12330 PRINT #1, "59.1."; "A2="; A2; "A3="; A3; "B1="; B1; "B5="; B5; "A4="; A4; "Z(18)="; Z(18); "Z1(18)="; Z1(18) 12340 PRINT #1, "59.2."; "A2="; A2; "A3="; A3; "B1="; B1; "B5="; B5; "B4="; B4; "Z(26)="; Z(26); "Z1(26)="; Z1(26) 12350 PRINT #1, "60.1."; "A2="; A2; "B3="; B3; "B1="; B1; "B5="; B5; "A4="; A4; "Z(22)="; Z(22); "Z1(22)="; Z1(22) 12360 PRINT #1, "60.2."; "A2="; A2; "B3="; B3; "B1="; B1; "B5="; B5; "B4="; B4; "Z(30)="; Z(30); "Z1(30)="; Z1(30) 12370 PRINT #1, "61.1."; "B2="; B2; "A3="; A3; "A1="; A1; "B5="; B5; "A4="; A4; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 12380 PRINT #1, "61.2."; "B2="; B2; "A3="; A3; "A1="; A1; "B5="; B5; "B4="; B4; "Z(27)="; Z(27); "Z1(27)="; Z1(27) 12390 PRINT #1, "62.1."; "B2="; B2; "B3="; B3; "A1="; A1; "B5="; B5; "A4="; A4; "Z(23)="; Z(23); "Z1(23)="; Z1(23) 12400 PRINT #1, "62.2."; "B2="; B2; "B3="; B3; "A1="; A1; "B5="; B5; "B4="; B4; "Z(31)="; Z(31); "Z1(31)="; Z1(31)
191
12410 PRINT #1, "63.1."; "B2="; B2; "A3="; A3; "B1="; B1; "B5="; B5; "A4="; A4; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 12420 PRINT #1, "63.2."; "B2="; B2; "A3="; A3; "B1="; B1; "B5="; B5; "B4="; B4; "Z(28)="; Z(28); "Z1(28)="; Z1(28) 12430 PRINT #1, "64.1."; "B2="; B2; "B3="; B3; "B1="; B1; "B5="; B5; "A4="; A4; "Z(24)="; Z(24); "Z1(24)="; Z1(24) 12440 PRINT #1, "64.2."; "B2="; B2; "B3="; B3; "B1="; B1; "B5="; B5; "B4="; B4; "Z(32)="; Z(32); "Z1(32)="; Z1(32) 12450 PRINT #1, "65.1."; "A2="; A2; "A3="; A3; "A1="; A1; "A4="; A4; "A5="; A5; "Z(1)="; Z(1); "Z1(1)="; Z1(1) 12460 PRINT #1, "65.2."; "A2="; A2; "A3="; A3; "A1="; A1; "A4="; A4; "B5="; B5; "Z(17)="; Z(17); "Z1(17)="; Z1(17) 12470 PRINT #1, "66.1."; "A2="; A2; "B3="; B3; "A1="; A1; "A4="; A4; "A5="; A5; "Z(5)="; Z(5); "Z1(5)="; Z1(5) 12480 PRINT #1, "66.2."; "A2="; A2; "B3="; B3; "A1="; A1; "A4="; A4; "B5="; B5; "Z(21)="; Z(21); "Z1(21)="; Z1(21) 12490 PRINT #1, "67.1."; "A2="; A2; "A3="; A3; "B1="; B1; "A4="; A4; "A5="; A5; "Z(2)="; Z(2); "Z1(2)="; Z1(2) 12500 PRINT #1, "67.2."; "A2="; A2; "A3="; A3; "B1="; B1; "A4="; A4; "B5="; B5; "Z(18)="; Z(18); "Z1(18)="; Z1(18) 12510 PRINT #1, "68.1."; "A2="; A2; "B3="; B3; "B1="; B1; "A4="; A4; "A5="; A5; "Z(6)="; Z(6); "Z1(6)="; Z1(6) 12520 PRINT #1, "68.2."; "A2="; A2; "B3="; B3; "B1="; B1; "A4="; A4; "B5="; B5; "Z(22)="; Z(22); "Z1(22)="; Z1(22) 12530 PRINT #1, "69.1."; "B2="; B2; "A3="; A3; "A1="; A1; "A4="; A4; "A5="; A5; "Z(3)="; Z(3); "Z1(3)="; Z1(3) 12540 PRINT #1, "69.2."; "B2="; B2; "A3="; A3; "A1="; A1; "A4="; A4; "B5="; B5; "Z(19)="; Z(19); "Z1(19)="; Z1(19) 12550 PRINT #1, "70.1."; "B2="; B2; "B3="; B3; "A1="; A1; "A4="; A4; "A5="; A5; "Z(7)="; Z(7); "Z1(7)="; Z1(7) 12560 PRINT #1, "70.2."; "B2="; B2; "B3="; B3; "A1="; A1; "A4="; A4; "B5="; B5; "Z(23)="; Z(23); "Z1(23)="; Z1(23) 12570 PRINT #1, "71.1."; "B2="; B2; "A3="; A3; "B1="; B1; "A4="; A4; "A5="; A5; "Z(4)="; Z(4); "Z1(4)="; Z1(4) 12580 PRINT #1, "71.2."; "B2="; B2; "A3="; A3; "B1="; B1; "A4="; A4; "B5="; B5; "Z(20)="; Z(20); "Z1(20)="; Z1(20) 12590 PRINT #1, "72.1."; "B2="; B2; "B3="; B3; "B1="; B1; "A4="; A4; "A5="; A5; "Z(8)="; Z(8); "Z1(8)="; Z1(8) 12600 PRINT #1, "72.2."; "B2="; B2; "B3="; B3; "B1="; B1; "A4="; A4; "B5="; B5; "Z(24)="; Z(24); "Z1(24)="; Z1(24) 12610 PRINT #1, "73.1."; "A2="; A2; "A3="; A3; "A1="; A1; "B4="; B4; "A5="; A5; "Z(9)="; Z(9); "Z1(9)="; Z1(9) 12620 PRINT #1, "73.2."; "A2="; A2; "A3="; A3; "A1="; A1; "B4="; B4; "B5="; B5; "Z(25)="; Z(25); "Z1(25)="; Z1(25) 12630 PRINT #1, "74.1."; "A2="; A2; "B3="; B3; "A1="; A1; "B4="; B4; "A5="; A5; "Z(13)="; Z(13); "Z1(13)="; Z1(13) 12640 PRINT #1, "74.2."; "A2="; A2; "B3="; B3; "A1="; A1; "B4="; B4; "B5="; B5; "Z(29)="; Z(29); "Z1(29)="; Z1(29) 12650 PRINT #1, "75.1."; "A2="; A2; "A3="; A3; "B1="; B1; "B4="; B4; "A5="; A5; "Z(10)="; Z(10); "Z1(10)="; Z1(10) 12660 PRINT #1, "75.2."; "A2="; A2; "A3="; A3; "B1="; B1; "B4="; B4; "B5="; B5; "Z(26)="; Z(26); "Z1(26)="; Z1(26) 12670 PRINT #1, "76.1."; "A2="; A2; "B3="; B3; "B1="; B1; "B4="; B4; "A5="; A5; "Z(14)="; Z(14); "Z1(14)="; Z1(14) 12680 PRINT #1, "76.2."; "A2="; A2; "B3="; B3; "B1="; B1; "B4="; B4; "B5="; B5; "Z(30)="; Z(30); "Z1(30)="; Z1(30)
192
12690 PRINT #1, "77.1."; "B2="; B2; "A3="; A3; "A1="; A1; "B4="; B4; "A5="; A5; "Z(11)="; Z(11); "Z1(11)="; Z1(11) 12700 PRINT #1, "77.2."; "B2="; B2; "A3="; A3; "A1="; A1; "B4="; B4; "B5="; B5; "Z(27)="; Z(27); "Z1(27)="; Z1(27) 12710 PRINT #1, "78.1."; "B2="; B2; "B3="; B3; "A1="; A1; "B4="; B4; "A5="; A5; "Z(15)="; Z(15); "Z1(15)="; Z1(15) 12720 PRINT #1, "78.2."; "B2="; B2; "B3="; B3; "A1="; A1; "B4="; B4; "B5="; B5; "Z(31)="; Z(31); "Z1(31)="; Z1(31) 12730 PRINT #1, "79.1."; "B2="; B2; "A3="; A3; "B1="; B1; "B4="; B4; "A5="; A5; "Z(12)="; Z(12); "Z1(12)="; Z1(12) 12740 PRINT #1, "79.2."; "B2="; B2; "A3="; A3; "B1="; B1; "B4="; B4; "B5="; B5; "Z(28)="; Z(28); "Z1(28)="; Z1(28) 12750 PRINT #1, "80.1."; "B2="; B2; "B3="; B3; "B1="; B1; "B4="; B4; "A5="; A5; "Z(16)="; Z(16); "Z1(16)="; Z1(16) 12760 PRINT #1, "80.2."; "B2="; B2; "B3="; B3; "B1="; B1; "B4="; B4; "B5="; B5; "Z(32)="; Z(32); "Z1(32)="; Z1(32) 12770 RETURN
193
ПРОГРАММА НА ЯЗЫКЕ ТУРБО-ПАСКАЛЬ, РАЗРАБОТАННАЯ НА ОСНОВЕ ПРОГРАММЫ GL3
program tpgl1_1; uses graph,tpgl1_2; label 1,2,3,4,5; procedure OUT_F_H_L(PR:integer); begin if PR=73 then begin writeln(F0,'┌────┬─────────────────────┐'); writeln(F0,'│ │ Значение │'); writeln(F0,'│ J ├──────────┬──────────┤'); writeln(F0,'│ │ F(J) │ Z(J) │'); end; if PR=74 then begin writeln(F0,'┌────┬────────────────────────────────┐'); writeln(F0,'│ │ Значение │'); writeln(F0,'│ J ├──────────┬──────────┬──────────┤'); writeln(F0,'│ │ F(J) │ H(J) │ Z(J) │'); end; if PR=75 then begin write(F0,'┌────┬──────────────────────'); writeln(F0,'─────────────────────┐'); write(F0,'│ │ Значе'); writeln(F0,'ние │'); write(F0,'│ J ├──────────┬──────────┬'); writeln(F0,'──────────┬──────────┤'); write(F0,'│ │ F(J) │ H(J) │'); writeln(F0,' L(J) │ Z(J) │'); end; if PR=76 then begin write(F0,'┌────┬─────────────────────────────────'); writeln(F0,'─────────────────────┐'); write(F0,'│ │ Значение '); writeln(F0,' │'); write(F0,'│ J ├──────────┬──────────┬──────────┬'); writeln(F0,'──────────┬──────────┤'); write(F0,'│ │ F(J) │ H(J) │ L(J) │'); writeln(F0,' K(J) │ Z(J) │'); end; if PR=77 then begin write(F0,'┌────┬─────────────────────────────────'); writeln(F0,'────────────────────────────────┐'); write(F0,'│ │ Зна'); writeln(F0,'чение │'); write(F0,'│ J ├──────────┬──────────┬─────────'); writeln(F0,'─┬──────────┬──────────┬──────────┤');
194
write(F0,'│
│
F(J)
│
H(J)
│
L(J)
│');
writeln(F0,' K(J) │ M(J) │ Z(J) │'); end; if PR=73 then begin for J:=1 to X do begin writeln(F0,'├────┼──────────┼──────────┤'); writeln(F0,'│ ',J:2,' │',F[J]:10,'│',Z[J]:10,'│'); end; writeln(F0,'└────┴──────────┴──────────┘'); end; if PR=74 then begin for J:=1 to X do begin write(F0,'├────┼──────────┼'); writeln(F0,'──────────┼──────────┤'); write(F0,'│ ',J:2,' │',F[J]:10,'│'); writeln(F0,H[J]:10,'│',Z[J]:10,'│'); end; writeln(F0,'└────┴──────────┴──────────┴──────────┘'); end; if PR=75 then begin for J:=1 to X do begin write(F0,'├────┼──────────┼──────────┼'); writeln(F0,'──────────┼──────────┤'); write(F0,'│ ',J:2,' │',F[J]:10,'│'); writeln(F0,H[J]:10,'│',L[J]:10,'│',Z[J]:10,'│'); end; write(F0,'└────┴──────────┴──────────┴'); writeln(F0,'──────────┴──────────┘'); end; if PR=76 then begin for J:=1 to X do begin write(F0,'├────┼──────────┼──────────┼'); writeln(F0,'──────────┼──────────┼──────────┤'); write(F0,'│ ',J:2,' │',F[J]:10,'│',H[J]:10,'│'); writeln(F0,L[J]:10,'│',K[J]:10,'│',Z[J]:10,'│'); end; write(F0,'└────┴──────────┴──────────┴'); writeln(F0,'──────────┴──────────┴──────────┘'); end; if PR=77 then begin for J:=1 to X do begin write(F0,'├────┼──────────┼──────────┼────────'); writeln(F0,'──┼──────────┼──────────┼──────────┤'); write(F0,'│ ',J:2,' │',F[J]:10,'│',H[J]:10,'│'); write(F0,L[J]:10,'│',K[J]:10,'│',M[J]:10,'│'); writeln(F0,Z[J]:10,'│'); end;
195
write(F0,'└────┴──────────┴──────────┴──────────┴'); writeln(F0,'──────────┴──────────┴──────────┘'); end; end;{OUT_F_H_L} procedure GB2820; begin writeln(F0,'Математическая модель'); if X=2 then begin writeln(F0,'Z(J)=',B[1],'+',B[2],'*I(J),'); end; if X=4 then begin writeln('Z(J)=',B[1],'+',B[2],'*I(J)+',B[3],'*P(J)+'); writeln(F0,'+',B[4],'*I(J)*P(J),'); end; if X=8 then begin writeln(F0,'Z(J)=',B[1],'+',B[2],'*I(J)+',B[3],'*P(J)+'); writeln(F0,'+',B[4],'*I(J)*P(J)+',B[5],'*U(J)+'); writeln(F0,'+',B[6],'*I(J)*U(J)+',B[7],'*P(J)*U(J)+'); writeln(F0,'+',B[8],'*I(J)*P(J)*U(J),'); end; if X=16 then begin writeln(F0,'Z(J)=',B[1],'+',B[2],'*I(J)+',B[3],'*P(J)+'); writeln(F0,'+',B[4],'*I(J)*P(J)+',B[5],'*U(J)+'); writeln(F0,'+',B[6],'*I(J)*U(J)+',B[7],'*P(J)*U(J)+'); writeln(F0,'+',B[8],'*I(J)*P(J)*U(J)+',B[9],'*Q(J)+'); writeln(F0,'+',B[10],'*I(J)*Q(J)+',B[11],'*P(J)*Q(J)+'); writeln(F0,'+',B[12],'*I(J)*P(J)*Q(J)+',B[13],'*U(J)*Q(J)+'); writeln(F0,'+',B[14],'I(J)*U(J)*Q(J)+',B[15],'*P(J)*U(J)*Q(J)+'); writeln(F0,'+',B[16],'I(J)*P(J)*U(J)*Q(J),'); end; if X=32 then begin writeln(F0,'Z(J)=',B[1],'+',B[2],'*I(J)+',B[3],'*P(J)+'); writeln(F0,'+',B[4],'*I(J)*P(J)+',B[5],'*U(J)+'); writeln(F0,'+',B[6],'*I(J)*U(J)+',B[7],'*P(J)*U(J)+'); writeln(F0,'+',B[8],'*I(J)*P(J)*U(J)+',B[9],'*Q(J)+'); writeln(F0,'+',B[10],'*I(J)*Q(J)+',B[11],'*P(J)*Q(J)+'); writeln(F0,'+',B[12],'*I(J)*P(J)*Q(J)+',B[13],'*U(J)*Q(J)+'); writeln(F0,'+',B[14],'I(J)*U(J)*Q(J)+',B[15],'*P(J)*U(J)*Q(J)+'); writeln(F0,'+',B[16],'I(J)*P(J)*U(J)*Q(J)+',B[17],'*V(J)+'); writeln(F0,'+',B[18],'*I(J)*V(J)+',B[19],'P(J)*V(J)+'); writeln(F0,'+',B[20],'*I(J)*P(J)*V(J)+',B[21],'*U(J)*V(J)+'); writeln(F0,'+',B[22],'*I(J)*U(J)*V(J)+',B[23],'*P(J)*U(J)*V(J)+'); writeln(F0,'+',B[24],'*I(J)*P(J)*U(J)*V(J)+',B[25],'*Q(J)*V(J)+'); writeln(F0,'+',B[26],'*I(J)*Q(J)*V(J)+',B[27],'*P(J)*Q(J)*V(J)+'); writeln(F0,'+',B[28],'*I(J)*P(J)*Q(J)*V(J)+'); writeln(F0,'+',B[29],'*U(J)*Q(J)*V(J)+'); writeln(F0,'+',B[30],'*I(J)*U(J)*Q(J)*V(J)+'); writeln(F0,'+',B[31],'*P(J)*U(J)*Q(J)*V(J)+'); writeln(F0,'+',B[32],'*I(J)*P(J)*U(J)*Q(J)*V(J),'); end; if (X=2)or(X=4)or(X=8)or(X=16)or(X=32) then begin writeln(F0,'ГДЕ');
196
writeln(F0,'I(J)=F(J)^',J1,'+',V1); writeln(F0,'Обозначение:F(J)- 1-ый фактор '); end; if (X=4)or(X=8)or(X=16)or(X=32) then begin writeln(F0,'P(J)=H(J)^',J2,'+',V2); writeln(F0,'Обозначение:H(J)- 2-ой фактор'); end; if (X=8)or(X=16)or(X=32) then begin writeln(F0,'U(J)=L(J)^',J3,'+',V3); writeln(F0,'Обозначение:L(J)- 3-ий фактор'); end; if (X=16)or(X=32) then begin writeln(F0,'Q(J)=K(J)^',J4,'+',V4); writeln(F0,'Обозначение:K(J)- 4-ый фактор'); end; if (X=32) then begin writeln(F0,'V(J)=M(J)^',J5,'+',V5); writeln(F0,'Обозначение:M(J)- 5-ый фактор'); end; end;{GB2820} procedure GB7000; label 1; begin repeat writeln('Вычисления показателей Z(K5)'); writeln(' по математической модели'); writeln(' с ипользованием циклов'); writeln(' и построение графиков'); writeln(F0,'Вычисления показателей Z(K5)'); writeln(F0,' по математической модели'); writeln(F0,' с ипользованием циклов'); writeln(F0,' и построение графиков'); case X of 2: I0:=73; 4: I0:=74; 8: I0:=75; 16: I0:=76; 32: I0:=77; end; if I0=73 then begin F3:=0; F4:=0; K5:=0; writeln('Фактор F(1)=F3+F4'); for J:=1 to X do begin F[J]:=0; Z[J]:=0; end; writeln('F4-шаг приращения фактора'); writeln('X-количество значений фактора'); writeln('Ввод принятых величин X F3 F4'); writeln(F0,'F4-шаг приращения фактора'); writeln(F0,'X-количество значений фактора'); writeln(F0,'Ввод принятых величин X F3 F4'); readln(X,F3,F4);
197
writeln(F0,'X=',X,' F3=',F3,' F4=',F4); for K5:=1 to X do begin F[K5]:=F3+K5*F4; writeln('F(',K5,')=',F[K5]); end; GB2490; GB2540; for K5:=1 to X do writeln('Z(',K5,')=',Z[K5]); OUT_F_H_L(I0); end;{if} if I0=74 then begin F3:=0; F4:=0; H3:=0; H4:=0; K5:=0; writeln('Фактор F(1)=F3+F4'); writeln(F0,'Фактор F(1)=F3+F4'); for J:=1 to X do begin F[J]:=0; H[J]:=0; Z[J]:=0; end; writeln('F4-шаг приращения 1-го фактора'); writeln('Фактор H(1)=H3+H4'); writeln('H4-шаг приращения 2-го фактора'); writeln('X-количество значений 1,2-го фактора'); writeln('Ввод принятых величин X F3 F4 H3 H4'); writeln(F0,'F4-шаг приращения 1-го фактора'); writeln(F0,'Фактор H(1)=H3+H4'); writeln(F0,'H4-шаг приращения 2-го фактора'); writeln(F0,'X-количество значений 1,2-го фактора'); readln(X,F3,F4,H3,H4); writeln(F0,'X=',X,' F3=',F3,' F4=',F4); writeln(F0,'H3=',H3,' H4=',H4); for K5:=1 to X do begin F[K5]:=F3+K5*F4; writeln('F(',K5,')=',F[K5]); H[K5]:=H3+K5*H4; writeln('H(',K5,')=',H[K5]); end; GB2490; GB2500; GB2550; for K5:=1 to X do writeln('Z(',K5,')=',Z[K5]); OUT_F_H_L(I0); end;{if} if I0=75 then begin K5:=0; F3:=0; F4:=0; H3:=0; H4:=0; L3:=0; L4:=0; writeln('Факторы F(1)=F3+F4, H(1)=H3+H4, L(1)=L3+L4'); writeln(F0,'Факторы F(1)=F3+F4, H(1)=H3+H4, L(1)=L3+L4'); for J:=1 to X do begin F[J]:=0; H[J]:=0; L[J]:=0; Z[J]:=0; end; writeln('F4,H4,L4-шаг приращения 1,2,3-го фактора'); writeln('X-количество значений 1,2,3-го фактора');
198
writeln(F0,'F4,H4,L4-шаг приращения 1,2,3-го фактора'); writeln(F0,'X-количество значений 1,2,3-го фактора'); writeln('Ввод принятых величин'); writeln('X F3 F4 H3 H4 L3 L4'); readln(X,F3,F4,H3,H4,L3,L4); writeln(F0,'X=',X,' F3=',F3,' F4=',F4); writeln(F0,'H3=',H3,' H4=',H4); writeln(F0,'L3=',L3,' L4=',L4); for K5:=1 to X do begin F[K5]:=F3+K5*F4; writeln('F(',K5,')=',F[K5]); H[K5]:=H3+K5*H4; writeln('H(',K5,')=',H[K5]); L[K5]:=L3+K5*L4; writeln('L(',K5,')=',L[K5]); end; GB2490; GB2500; GB2510; GB2570; for K5:=1 to X do writeln('Z(',K5,')=',Z[K5]); OUT_F_H_L(I0); end;{if} if I0=76 then begin K5:=0; F3:=0; F4:=0; H3:=0; H4:=0; L3:=0; L4:=0; K3:=0; K4:=0; writeln('Факторы F(1)=F3+F4, H(1)=H3+H4, L(1)=L3+L4'); writeln('Факторы K(1)=K3+K4'); writeln(F0,'Факторы F(1)=F3+F4, H(1)=H3+H4, L(1)=L3+L4'); writeln(F0,'Факторы K(1)=K3+K4'); for J:=1 to X do begin F[J]:=0; H[J]:=0; L[J]:=0; K[J]:=0; Z[J]:=0; end; writeln('F4,H4,L4,K4-шаг приращения 1,2,3,4-го фактора'); writeln('X-количество значений 1,2,3,4-го фактора'); writeln(F0,'F4,H4,L4,K4-шаг приращения 1,2,3,4-го фактора'); writeln(F0,'X-количество значений 1,2,3,4-го фактора'); writeln('Ввод принятых величин'); writeln('X F3 F4 H3 H4 L3 L4 K3 K4'); readln(X,F3,F4,H3,H4,L3,L4,K3,K4); writeln(F0,'X=',X,' F3=',F3,' F4=',F4); writeln(F0,'H3=',H3,' H4=',H4); writeln(F0,'L3=',L3,' L4=',L4); writeln(F0,'K3=',K3,' K4=',K4); for K5:=1 to X do begin F[K5]:=F3+K5*F4; writeln('F(',K5,')=',F[K5]); H[K5]:=H3+K5*H4; writeln('H(',K5,')=',H[K5]); L[K5]:=L3+K5*L4; writeln('L(',K5,')=',L[K5]); K[K5]:=K3+K5*K4; writeln('K(',K5,')=',K[K5]);
199
end; GB2490; GB2500;GB2510; GB2520; GB2600; for K5:=1 to X do writeln('Z(',K5,')=',Z[K5]); OUT_F_H_L(I0); end;{if} if I0=77 then begin K5:=0; F3:=0; F4:=0; H3:=0; H4:=0; L3:=0; L4:=0; K3:=0; K4:=0; M3:=0; M4:=0; writeln('Факторы F(1)=F3+F4, H(1)=H3+H4, L(1)=L3+L4'); writeln('Факторы K(1)=K3+K4, M(1)=M3+M4'); writeln(F0,'Факторы F(1)=F3+F4, H(1)=H3+H4, L(1)=L3+L4'); writeln(F0,'Факторы K(1)=K3+K4, M(1)=M3+M4'); for J:=1 to X do begin F[J]:=0; H[J]:=0; L[J]:=0; K[J]:=0; M[J]:=0; Z[J]:=0; end; writeln('F4,H4,L4,K4,M4-шаг приращения 1,2,3,4,5-го фактора'); writeln('X-количество значений 1,2,3,4,5-го фактора'); write(F0,'F4,H4,L4,K4,M4-шаг приращения'); writeln(F0,' 1,2,3,4,5-го фактора'); writeln(F0,'X-количество значений 1,2,3,4,5-го фактора'); writeln('Ввод принятых величин'); writeln('X F3 F4 H3 H4 L3 L4 K3 K4 M3 M4'); readln(X,F3,F4,H3,H4,L3,L4,K3,K4,M3,M4); writeln(F0,'X=',X,' F3=',F3,' F4=',F4); writeln(F0,'H3=',H3,' H4=',H4); writeln(F0,'L3=',L3,' L4=',L4); writeln(F0,'K3=',K3,' K4=',K4); writeln(F0,'M3=',M3,' M4=',M4); for K5:=1 to X do begin F[K5]:=F3+K5*F4; writeln('F(',K5,')=',F[K5]); H[K5]:=H3+K5*H4; writeln('H(',K5,')=',H[K5]); L[K5]:=L3+K5*L4; writeln('L(',K5,')=',L[K5]); K[K5]:=K3+K5*K4; writeln('K(',K5,')=',K[K5]); M[K5]:=M3+K5*M4; writeln('M(',K5,')=',M[K5]); end; GB2490; GB2500; GB2510; GB2520; GB2530; GB2670; for K5:=1 to X do writeln('Z(',K5,')=',Z[K5]); OUT_F_H_L(I0); end;{if} writeln('Выявление MAX Z(K5) и MIN Z(K5)'); writeln('Ввод I0=90-продолжение'); K8:=0; K8:=Z[1]; readln(I0);
200
1:
for K5:=1 to X do if Z[K5]>=K8 then K8:=Z[K5]; writeln('MAX Z(K5)=',K8); writeln(F0,'MAX Z(K5)=',K8); for K5:=1 to X do if Z[K5]=K8 then begin writeln('MAX Z(',K5,')=',Z[K5]); writeln(F0,'MAX Z(',K5,')=',Z[K5]); end; K7:=0; K7:=Z[1]; for K5:=1 to X do if Z[K5]<=K7 then K7:=Z[K5]; begin writeln('MIN Z(K5)=',K7); writeln(F0,'MIN Z(K5)=',K7); end; for K5:=1 to X do if Z[K5]=K7 then begin writeln('MIN Z(',K5,')=',Z[K5]); writeln(F0,'MIN Z(',K5,')=',Z[K5]); end; writeln('MIN Z(K5)=K7, MAX Z(K5)=K8'); writeln('K6(K5)=(Z(K5)+abs(K7))/(abs(K7)+abs(K8))'); writeln(F0,'MIN Z(K5)=K7, MAX Z(K5)=K8'); writeln(F0,'K6(K5)=(Z(K5)+abs(K7))/(abs(K7)+abs(K8))'); for K5:=1 to X do begin KK6[K5]:=(Z[K5]+abs(K7))/(abs(K7)+abs(K8)); writeln('K6(',K5,')=',KK6[K5]); writeln(F0,'K6(',K5,')=',KK6[K5]); end; J5:=0; J5:=abs(K7)/(abs(K7)+abs(K8)); writeln('J5:=abs(K7)/(abs(K7)+abs(K8))'); writeln('J5=',J5); writeln(F0,'J5:=abs(K7)/(abs(K7)+abs(K8))'); writeln(F0,'J5=',J5); writeln('Если I0=70, то повторение'); writeln('вычисления показателей'); writeln('и построение графиков'); writeln('Если I0=80, то построение графика'); readln(I0); if I0=70 then GB7000; K0:=0; K3:=0; K4:=0; K4:=X; K7:=0; K8:=0; X0:=0; Y0:=0; writeln('Построение графика'); writeln('Зависимость KK6(K5) от фактора'); writeln('KK6(K5)-относительная величина показателя'); writeln('K5-номер величины фактора и показателя'); writeln('Величина фактора задана'); writeln('Ввод X0-отступ вправо по оси X'); writeln('(Предпочтительно X=40)'); writeln('Y0-отступ вниз по оси Y'); writeln('(Предпочтительно Y0=360)'); writeln('K0-длина графика по оси X'); writeln('K3-высота графика по оси Y');
201
writeln('Было X0=',X0,' Y0=',Y0); writeln('Было K0=',K0,' K3=',K3); writeln('Введите X0 Y0 K0 K3'); readln(X0,Y0,K0,K3); grDriver := Detect; InitGraph(grDriver, grMode,''); cleardevice; for K5:=1 to K4 do begin KK7[K5]:=K5*K0; KK8[K5]:=K3*KK6[K5]; line(round(KK7[K5]-X0),round(Y0), round(KK7[K5]-X0),round(Y0-KK8[K5])); end; J6:=0; J6:=X-1; J9:=0; K7:=0; K8:=0; J9:=K3*J5; for K5:=1 to J6 do begin KK7[K5]:=K5*K0; KK8[K5]:=K3*KK6[K5]; J7[K5]:=(K5+1)*K0; J8[K5]:=K3*KK6[K5+1]; line(round(KK7[K5]-X0),round(Y0), round(J7[K5]-X0),round(Y0)); line(round(KK7[K5]-X0),round(Y0-J9), round(J7[K5]-X0),round(Y0-J9)); line(round(KK7[K5]-X0),round(Y0-KK8[K5]), round(J7[K5]-X0),round(Y0-J8[K5])); end; readln; closegraph; writeln('Ввод I0=75, то повторение построения графика'); writeln('Ввод I0=85, то полное повторение построения графика'); writeln('Ввод I0=95, то выход из построения графика'); write('I0='); readln(I0); if I0=75 then goto 1; until not(I0=85); writeln(F0,'Построение графика'); writeln(F0,'Зависимость KK6(K5) от фактора'); writeln(F0,'KK6(K5)-относительная величина показателя'); writeln(F0,'K5-номер величины фактора и показателя'); writeln(F0,'Величина фактора задана'); writeln(F0,'Ввод X0-отступ вправо по оси X'); writeln(F0,'(Предпочтительно X=40)'); writeln(F0,'Y0-отступ вниз по оси Y'); writeln(F0,'(Предпочтительно Y0=360)'); writeln(F0,'K0-длина графика по оси X'); writeln(F0,'K3-высота графика по оси Y'); writeln(F0,'X0=',X0,' Y0=',Y0); writeln(F0,'K0=',K0,' K3=',K3); end;{GB7000} procedure tablF9; begin writeln('Значения F7 для 5% уровня знач-ти'); writeln('┌───┬───────────────────────────┐'); writeln('│ │ F9 │');
202
writeln('│F8 ├────┬─────┬─────┬─────┬────┤'); writeln('│ │ 1 │ 3 │ 7 │ 15 │ 31 │'); writeln('├───┼────┼─────┼─────┼─────┼────┤'); writeln('│ 2 │19.0│19.16│19.36│19.42│9.46│'); writeln('├───┼────┼─────┼─────┼─────┼────┤'); writeln('│ 3 │9.55│ 9.28│ 8.88│ 8.71│8.62│'); writeln('├───┼────┼─────┼─────┼─────┼────┤'); writeln('│ 4 │6.94│ 6.59│ 6.09│ 5.87│5.74│'); writeln('├───┼────┼─────┼─────┼─────┼────┤'); writeln('│ 5 │5.79│ 5.41│ 4.88│ 4.64│4.5 │'); writeln('├───┼────┼─────┼─────┼─────┼────┤'); writeln('│ 6 │5.14│ 4.76│ 4.21│ 3.96│3.81│'); writeln('└───┴────┴─────┴─────┴─────┴────┘'); end; procedure OUT_Z_B; begin writeln(F0,'Расчетные показатели Z(J) до анализа B(J)'); writeln('Расчетные показатели Z(J) до анализа B(J)'); writeln(F0,'┌────┬────────────────────────────────┐'); writeln(F0,'│ │ Значение │'); writeln(F0,'│ J ├──────────┬──────────┬──────────┤'); writeln(F0,'│ │ Y(J) │ Z(J) │ Y(J)-Z(J)│'); for J:=1 to X do begin writeln(F0,'├────┼──────────┼──────────┼──────────┤'); writeln(F0,'│ ',J:2,' │',Y[J]:10,'│',Z[J]:10,'│', (Y[J]-Z[J]):10,'│'); writeln('│ ',J:2,' │',Y[J]:10,'│',Z[J]:10,'│', (Y[J]-Z[J]):10,'│'); end; writeln(F0,'└────┴──────────┴──────────┴──────────┘'); end; {========================Основная программа=======================} begin 1: for J:=1 to 25 do writeln; writeln(' Программа на языке Турбо-Паскаль состоит из двух'); writeln(' файлов (tpgl1_1, tpl1_2). Математическое'); writeln('моделирование на основе планирования экспериментов.'); writeln(' Переложение с языка Бейсик программы GGL3.'); writeln(' Разработка Черного А.А.'); writeln('Введите имя файла для вывода отчета (без расширения)'); readln(NAME); Assign(F0, (NAME+'.dat')); Rewrite(F0); writeln(F0,'Выполнение программы математического моделирования'); writeln(F0,' tpgl1_1. (Программа на языке Турбо-Паскаль).'); writeln('X=2,4,8,16,32'); J:=0;X:=0;F3:=0;F4:=0;H3:=0;H4:=0; L3:=0;L4:=0;K3:=0;K4:=0;K5:=0; K7:=0;K8:=0;K0:=0;X0:=0;Y0:=0;J5:=0; J6:=0;J9:=0;S:=0; writeln('Если X=0, то выход из программы'); write('X=');readln(X); writeln(F0,'X=',X); for J:=1 to X do begin F[J]:=0; H[J]:=0; L[J]:=0; Z[J]:=0; KK5[J]:=0;
203
KK6[J]:=0; KK7[J]:=0; J7[J]:=0; J8[J]:=0; JJ9[J]:=0; end; case X of 2: begin vvod21; GB2480(A1,B1,J1,V1); writeln(F0,'V1=',V1); writeln('V1=',V1); end; 4: begin vvod21; GB2480(A1,B1,J1,V1); writeln(F0,'V1=',V1); writeln('V1=',V1); vvod22; GB2480(A2,B2,J2,V2); writeln(F0,'V2=',V2); writeln('V2=',V2); end; 8: begin vvod21; GB2480(A1,B1,J1,V1); writeln(F0,'V1=',V1); writeln('V1=',V1); vvod22; GB2480(A2,B2,J2,V2); writeln(F0,'V2=',V2); writeln('V2=',V2); vvod23; GB2480(A3,B3,J3,V3); writeln(F0,'V3=',V3); writeln('V3=',V3); end; 16: begin vvod21; GB2480(A1,B1,J1,V1); writeln(F0,'V1=',V1); writeln('V1=',V1); vvod22; GB2480(A2,B2,J2,V2); writeln(F0,'V2=',V2); writeln('V2=',V2); vvod23; GB2480(A3,B3,J3,V3); writeln(F0,'V3=',V3); writeln('V3=',V3); vvod24; GB2480(A4,B4,J4,V4); writeln(F0,'V4=',V4); writeln('V4=',V4); end; 32: begin vvod21; GB2480(A1,B1,J1,V1); writeln(F0,'V1=',V1); writeln('V1=',V1); vvod22;
204
GB2480(A2,B2,J2,V2); writeln(F0,'V2=',V2); writeln('V2=',V2); vvod23; GB2480(A3,B3,J3,V3); writeln(F0,'V3=',V3); writeln('V3=',V3); vvod24; GB2480(A4,B4,J4,V4); writeln(F0,'V4=',V4); writeln('V4=',V4); vvod25; GB2480(A5,B5,J5,V5); writeln(F0,'V5=',V5); writeln('V5=',V5); end; 0: goto 2; else goto 2; end;{case} if (X=2)or(X=4)or(X=8)or(X=16)or(X=32) then begin F[1]:=A1; F[2]:=B1; end; if (X=4)or(X=8)or(X=16)or(X=32) then begin H[1]:=A2; H[2]:=A2; F[3]:=A1; H[3]:=B2; F[4]:=B1; H[4]:=B2; end; if (X=8)or(X=16)or(X=32) then begin L[1]:=A3; L[2]:=A3; L[3]:=A3; L[4]:=A3; F[5]:=A1; H[5]:=A2; L[5]:=B3; F[6]:=B1; H[6]:=A2; L[6]:=B3; F[7]:=A1; H[7]:=B2; L[7]:=B3; F[8]:=B1; H[8]:=B2; L[8]:=B3; end; if (X=16)or(X=32) then begin K[1]:=A4; K[2]:=A4; K[3]:=A4; K[4]:=A4; K[5]:=A4; K[6]:=A4; K[7]:=A4; K[8]:=A4; F[9]:=A1; H[9]:=A2; L[9]:=A3; K[9]:=B4; F[10]:=B1; H[10]:=A2; L[10]:=A3; K[10]:=B4; F[11]:=A1; H[11]:=B2; L[11]:=A3; K[11]:=B4; F[12]:=B1; H[12]:=B2; L[12]:=A3; K[12]:=B4; F[13]:=A1; H[13]:=A2; L[13]:=B3; K[13]:=B4; F[14]:=B1; H[14]:=A2; L[14]:=B3; K[14]:=B4; F[15]:=A1; H[15]:=B2; L[15]:=B3; K[15]:=B4; F[16]:=B1; H[16]:=B2; L[16]:=B3; K[16]:=B4; end; if X=32 then begin M[1]:=A5; M[2]:=A5; M[3]:=A5; M[4]:=A5; M[5]:=A5; M[6]:=A5; M[7]:=A5; M[8]:=A5; M[9]:=A5; M[10]:=A5; M[11]:=A5; M[12]:=A5; M[13]:=A5; M[14]:=A5; M[15]:=A5; M[16]:=A5; F[17]:=A1; H[17]:=A2; L[17]:=A3; K[17]:=A4; M[17]:=B5; F[18]:=B1; H[18]:=A2; L[18]:=A3; K[18]:=A4; M[18]:=B5; F[19]:=A1; H[19]:=B2; L[19]:=A3; K[19]:=A4; M[19]:=B5; F[20]:=B1; H[20]:=B2; L[20]:=A3; K[20]:=A4; M[20]:=B5; F[21]:=A1; H[21]:=A2; L[21]:=B3; K[21]:=A4; M[21]:=B5; F[22]:=B1; H[22]:=A2; L[22]:=B3; K[22]:=A4;
205
M[22]:=B5; F[23]:=A1; H[23]:=B2; L[23]:=B3; M[23]:=B5; F[24]:=B1; H[24]:=B2; L[24]:=B3; M[24]:=B5; F[25]:=A1; H[25]:=A2; L[25]:=A3; M[25]:=B5; F[26]:=B1; H[26]:=A2; L[26]:=A3; M[26]:=B5; F[27]:=A1; H[27]:=B2; L[27]:=A3; M[27]:=B5; F[28]:=B1; H[28]:=B2; L[28]:=A3; M[28]:=B5; F[29]:=A1; H[29]:=A2; L[29]:=B3; M[29]:=B5; F[30]:=B1; H[30]:=A2; L[30]:=B3; M[30]:=B5; F[31]:=A1; H[31]:=B2; L[31]:=B3; M[31]:=B5; F[32]:=B1; H[32]:=B2; L[32]:=B3; M[32]:=B5; end; 3:writeln('----------<Меню 1>------------'); writeln('Если I0=6, то переход в начало'); writeln('Если I0=7, то продолжение'); write('I0='); readln(I0); if I0=6 then goto 1; writeln('Ввод величин показателей Y[J]'); writeln(F0,'Показатели Y(J)'); for J:=1 to X do begin write('Y(',J,')='); readln(Y[J]); writeln(F0,'Y(',J,')=',Y[J]); end; case X of 2: GB2490; 4: begin GB2490; GB2500; end; 8: begin GB2490; GB2500; GB2510; end; 16: begin GB2490; GB2500; GB2510; GB2520; end; 32: begin GB2490; GB2500; GB2510; GB2520; GB2530; end; end;{case} GB780; case X of 4: GB810; 8: begin GB810; GB850; end; 16: begin GB810; GB850; GB940; end; 32: begin GB810; GB850; GB940; GB1110; end; end;{case} writeln(' B(J) до анализа'); writeln(F0,' B(J) до анализа'); for J:=1 to X do
206
K[23]:=A4; K[24]:=A4; K[25]:=B4; K[26]:=B4; K[27]:=B4; K[28]:=B4; K[29]:=B4; K[30]:=B4; K[31]:=B4; K[32]:=B4;
begin writeln('B(',J,')=',B[J]); writeln(F0,'B(',J,')=',B[J]); end; case X of 2: GB2540; 4: GB2550; 8: GB2570; 16: GB2600; 32: GB2670; end; OUT_Z_B; 4:writeln('-----------------<Меню 2>--------------------'); writeln('Если I0=3, то ввод результатов опытов'); writeln('на среднем уровне факторов'); writeln('Если I0=4, то ввод дисперсии опытов'); writeln('Если I0=5, то проверка точности и расчеты по модели'); writeln('Если I0=6, то переход в начало программы'); writeln('Если I0=20, то переход в конец программы'); writeln('Если I0=25, то вывод математической модели'); writeln('Если I0=27, то вычисление показателей Z(K5)'); writeln('с использованием циклов и построение графика'); writeln('Если I0=30, то переход к меню 1'); write('Ввод I0='); readln(I0); if I0=6 then goto 1; if I0=20 then goto 2; if I0=5 then goto 5; if I0=30 then goto 3; if I0=25 then begin GB2820; goto 2; end; if I0=27 then begin GB7000; goto 2; end; if (I0=3)or(I0=4) then begin writeln('Ввод N0-количество опытов на среднем уровне факторов'); readln(N0); writeln(F0,'N0-количество опытов на среднем уровне факторов'); writeln(F0,'N0=',N0); writeln('Ввод F8=N0-1'); readln(F8); writeln(F0,'F8=N0-1=',F8); end; if I0=3 then begin writeln('Ввод G(J)-результаты опытов'); writeln('на среднем уровне факторов'); writeln(F0,'Ввод G(J)-результаты опытов'); writeln(F0,'на среднем уровне факторов'); for J:=1 to N0 do begin write('G(',J,')='); readln(G[J]); writeln(F0,'G(',J,')=',G[J]); end; SS:=0; for J:=1 to N0 do SS:=SS+G[J]; S0:=SS/N0; writeln('S0=',S0);
207
SS:=0; writeln(F0,'S0=',S0); for J:=1 to N0 do SS:=SS+(G[J]-S0)*(G[J]-S0); U9:=SS/F8; writeln('Дисперсия опытов U9=',U9); writeln(F0,'Дисперсия опытов U9=',U9); end; if I0=4 then begin writeln('Ввод U9-дисперсия опытов'); readln(U9); writeln(F0,'U9-дисперсия опытов =',U9); end; if not(I0=5) then begin writeln(' Расчетные величины T(J)'); writeln(F0,'Расчетные величины T(J)'); for J:=1 to X do begin T[J]:=abs(B[J]/sqrt(U9/O[J])); writeln('T(',J,')=',T[J]); writeln(F0,'T(',J,')=',T[J]); end; writeln('┌──────────────────────────────────┐'); writeln('│ Для уровня значимости 5% │'); writeln('├────┬─────┬─────┬─────┬─────┬─────┤'); writeln('│ F8 │ 2 │ 3 │ 4 │ 5 │ 6 │'); writeln('├────┼─────┼─────┼─────┼─────┼─────┤'); writeln('│ T0 │4,303│3,182│2.776│2,571│2,447│'); writeln('└────┴─────┴─────┴─────┴─────┴─────┘'); writeln('F8=N0-1=',N0,'-1=',F8:1); writeln('Ввод T0-табличного T-критерия'); readln(T0); writeln(F0,'T-критерий T0=',T0); writeln(' B(J) после анализа'); writeln(F0,' B(J) после анализа'); for J:=1 to X do begin if T[J]
208
F9:=X-1; tablF9; writeln('F8=',F8:2,' F9=',F9:2); writeln('Ввод F7-табличного F-критерия'); readln(F7); writeln(F0,'Табличный F-критерий F7=',F7); case X of 2: GB2540; 4: GB2550; 8: GB2570; 16: GB2600; 32: GB2670; end;{case} writeln('Расчетные величины показателя'); writeln(' Z(J) после анализа B(J)'); writeln(F0,'Расчетные величины показателя'); writeln(F0,'Z(J) после анализа B(J)'); for J:=1 to X do begin writeln('Z(',J,')=',Z[J]); writeln(F0,'Z(',J,')=',Z[J]); end; SS:=0; for J:=1 to X do SS:=SS+(Z[J]-Y[J])*(Z[J]-Y[J]); F6:=SS/(F9*U9); writeln('Расчетная величина F-критерия F6=',F6); writeln(F0,'Расчетная величина F-критерия F6=',F6); if F6<=F7 then begin writeln('Адекватно, так как F6<=F7'); writeln(F0,'Адекватно, так как F6<=F7'); end; if F6>F7 then begin writeln('Неадекватно, так как F6>F7'); writeln(F0,'Неадекватно, так как F6>F7'); end; case X of 2: OUT_F_H_L(73); 4: OUT_F_H_L(74); 8: OUT_F_H_L(75); 16: OUT_F_H_L(76); 32: OUT_F_H_L(77); end; end; 5:writeln('----------<Меню 3--------------'); writeln('Если I0=7, то проверка точности'); writeln('и расчеты по модели'); writeln('Если I0=8, то переход в начало'); writeln('Если I0=17, то математическая модель'); writeln('Если I0=22, то вычисления'); writeln('показателей Z(K5) с использованием'); writeln('циклов и построение графиков'); writeln('Если I0=9, то выход из программы'); writeln('Если I0=25, то переход к меню 1'); writeln('Если I0=27, то переход к меню 2'); write('Ввод I0=');
209
readln(I0); if I0=8 then goto 1; if I0=9 then goto 2; if I0=25 then goto 3; if I0=27 then goto 4; if I0=17 then begin GB2820; goto 2; end; if I0=22 then begin GB7000; goto 5; end; writeln('Проверка точности и расчеты по модели'); writeln('F(S), H(S), L(S), K(S), M(S) - 1,2,3,4,5 факторы'); writeln('где S=X=',X,'-количество опытов по плану'); writeln('расчеты по модели'); writeln(F0,'Проверка точности и расчеты по модели'); writeln(F0,'F(S), H(S), L(S), K(S), M(S) - 1,2,3,4,5 факторы'); writeln(F0,'где S=X=',X,'-количество опытов по плану'); writeln(F0,'Результаты расчетов по модели'); if X=2 then begin for S:=1 to X do begin F[S]:=0; Z[S]:=0; writeln('Ввод F(',S,')'); readln(F[S]); GB2490; GB2540; writeln('Z(',S,')=',Z[S]); end; OUT_F_H_L(73); end; if X=4 then begin for S:=1 to X do begin F[S]:=0; H[S]:=0; Z[S]:=0; writeln('Ввод F(',S,') H(',S,')'); readln(F[S],H[S]); GB2490; GB2500; GB2550; writeln('Z(',S,')=',Z[S]); end; OUT_F_H_L(74); end; if X=8 then begin for S:=1 to X do begin F[S]:=0; H[S]:=0; Z[S]:=0; L[S]:=0; writeln('Ввод F(',S,') H(',S,') L(',S,')'); readln(F[S],H[S],L[S]); GB2490; GB2500; GB2510; GB2570; writeln('Z(',S,')=',Z[S]); end; OUT_F_H_L(75); end; if X=16 then begin for S:=1 to X do begin F[S]:=0; H[S]:=0; K[S]:=0; L[S]:=0; Z[S]:=0;
210
writeln('Ввод F(',S,') H(',S,') L(',S,') K(',S,')'); readln(F[S],H[S],L[S]); GB2490; GB2500; GB2510; GB2520; GB2600; writeln('Z(',S,')=',Z[S]); end; OUT_F_H_L(76); end; if X=32 then begin for S:=1 to X do begin F[S]:=0; H[S]:=0; L[S]:=0; K[S]:=0; M[S]:=0; Z[S]:=0; writeln('Ввод F(',S,') H(',S,') L(',S,')'); readln(F[S],H[S],L[S]); writeln('Ввод K(',S,') M(',S,')'); readln(K[S],M[S]); GB2490; GB2500; GB2510; GB2520; GB2530; GB2670; writeln('Z(',S,')=',Z[S]); end; OUT_F_H_L(77); end; 2:writeln('----------------<Меню 4------------------'); writeln('Если I0=10, то проверка точности'); writeln('и расчеты по модели'); writeln('Если I0=14, то вычисления '); writeln('показателей Z(K5) с использованием'); writeln('циклов и построение графиков'); writeln('Если I0=35, то переход к меню 1'); writeln('Если I0=18, то переход к меню 2'); writeln('Если I0=19, то переход к меню 3'); writeln('Если I0=50, то переход в начало программы'); writeln('Если I0=44, то выход из программы'); write('Ввод I0='); readln(I0); if (I0=11) then goto 1; if I0=18 then goto 4; if (I0=19)or(I0=10) then goto 5; if I0=35 then goto 3; if I0=14 then begin GB7000; goto 2; end; writeln('Конец работы'); close(F0); end.{Конец программы}
211
unit tpgl1_2; Interface type artp=array[1..50] of real; var J6,K5,S,J,I0,X,N0,K9,K4,F8,F9:integer; G1,T1,A1,C1,E1,D1,B1,J1,O1,A2,E2,B2,J2,O2,A3:real; H1,K1,L1,F1,M1,I1,P1,E3,B3,J3,O3,V1,U1,Q1,V2,U2,Q2:real; P2,F2,I2,H2,M2,N3,N4,N5,N6,N7,R3,R4,R0,R5,R6:real; S0,J5,S1,V3,U3,Q3,U9,F7,SO,F6,Z2,Z3,Z4,Z5:real; J9,L3,SS,L4,H4,H3,F3,F4,C2,D2,T2,V4,V5,M3,M4:real; A4,B4,A5,B5,J4,T0,G2,K2,L2,K7,K8,X0,Y0,K0,K3:real; J7,J8,JJ9,KK5,KK6,KK7,KK8,F,H,V,L,Y,I,K,M,P,Q,U,O,B,Z,G,T:artp; NAME:string[8]; F0:TEXT; grDriver,grMode: Integer; function ste(Q,A:real):real; procedure VVOD21; procedure VVOD22; procedure VVOD23; procedure VVOD24; procedure VVOD25; procedure GB780; procedure GB810; procedure GB850; procedure GB940; procedure GB1110; procedure GB2480(A,B,N:real; var V0:real); procedure GB2490; procedure GB2500; procedure GB2510; procedure GB2520; procedure GB2530; procedure GB2540; procedure GB2550; procedure GB2570; procedure GB2600; procedure GB2670; Implementation function ste(Q,A:real):real; {Функция возведения в степень} begin if A<0 then exit else begin if Q=0 then A:=1E-20; if A=0 then ste:=1 else ste:=exp(A*ln(Q)); end; end;{ste} procedure VVOD21; begin writeln('Ввод A1 B1 J1'); readln(A1,B1,J1); writeln(F0,'A1=',A1,' B1=',B1); writeln(F0,'J1=',J1); end; procedure VVOD22; begin writeln('Ввод A2 B2 J2'); readln(A2,B2,J2); writeln(F0,'A2=',A2,' B2=',B2); writeln(F0,'J2=',J2); end; procedure VVOD23; begin writeln('Ввод A3 B3 J3'); readln(A3,B3,J3); writeln(F0,'A3=',A3,' B3=',B3); writeln(F0,'J3=',J3); end;
212
procedure VVOD24; begin writeln('Ввод A4 B4 J4'); readln(A4,B4,J4); writeln(F0,'A3=',A3,' B3=',B3); writeln(F0,'J3=',J3); end; procedure VVOD25; begin writeln('Ввод A5 B5 J5'); readln(A5,B5,J5); writeln(F0,'A3=',A3,' B3=',B3); writeln(F0,'J3=',J3); end; procedure GB780; begin SS:=0; O[1]:=0; for J:=1 to X do begin SS:=SS+Y[J]; O[1]:=O[1]+1; end; B[1]:=SS/O[1]; SS:=0; O[2]:=0; for J:=1 to X do begin SS:=SS+I[J]*Y[J]; O[2]:=O[2]+I[J]*I[J]; end; B[2]:=SS/O[2]; end; procedure GB810; begin SS:=0; O[3]:=0; for J:=1 to X do begin SS:=SS+P[J]*Y[J]; O[3]:=O[3]+P[J]*P[J]; end; B[3]:=SS/O[3]; SS:=0; O[4]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*Y[J]; O[4]:=O[4]+(I[J]*P[J])*(I[J]*P[J]); end; B[4]:=SS/O[4]; end;{GB810} procedure GB850; begin SS:=0; O[5]:=0; for J:=1 to X do begin SS:=SS+U[J]*Y[J]; O[5]:=O[5]+U[J]*U[J]; end; B[5]:=SS/O[5]; SS:=0; O[6]:=0;
213
for J:=1 to X do begin SS:=SS+I[J]*U[J]*Y[J]; O[6]:=O[6]+(I[J]*U[J])*(I[J]*U[J]); end; B[6]:=SS/O[6]; SS:=0; O[7]:=0; for J:=1 to X do begin SS:=SS+P[J]*U[J]*Y[J]; O[7]:=O[7]+(P[J]*U[J])*(P[J]*U[J]); end; B[7]:=SS/O[7]; SS:=0; O[8]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*U[J]*Y[J]; O[8]:=O[8]+(I[J]*P[J]*U[J])*(I[J]*P[J]*U[J]); end; B[8]:=SS/O[8]; end;{GB850} procedure GB940; begin SS:=0; O[9]:=0; for j:=1 to X do begin SS:=SS+Q[J]*Y[J]; O[9]:=O[9]+Q[J]*Q[J]; end; B[9]:=SS/O[9]; SS:=0; O[10]:=0; for J:=1 to X do begin SS:=SS+I[J]*Q[J]*Y[J]; O[10]:=O[10]+(I[J]*Q[J])*(I[J]*Q[J]); end; B[10]:=SS/O[10]; SS:=0; O[11]:=0; for J:=1 to X do begin SS:=SS+P[J]*Q[J]*Y[J]; O[11]:=O[11]+(P[J]*Q[J])*(P[J]*Q[J]); end; B[11]:=SS/O[11]; SS:=0; O[12]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*Q[J]*Y[J]; O[12]:=O[12]+(I[J]*P[J]*Q[J])*(I[J]*P[J]*Q[J]); end; B[12]:=SS/O[12]; SS:=0; O[13]:=0; for J:=1 to X do begin SS:=SS+U[J]*Q[J]*Y[J]; O[13]:=O[13]+(U[J]*Q[J])*(U[J]*Q[J]); end; B[13]:=SS/O[13];
214
SS:=0; O[14]:=0; for J:=1 to X do begin SS:=SS+I[J]*U[J]*Q[J]*Y[J]; O[14]:=O[14]+(I[J]*U[J]*Q[J])*(I[J]*U[J]*Q[J]); end; B[14]:=SS/O[14]; SS:=0; O[15]:=0; for J:=1 to X do begin SS:=SS+P[J]*U[J]*Q[J]*Y[J]; O[15]:=O[15]+(P[J]*U[J]*Q[J])*(P[J]*U[J]*Q[J]); end; B[15]:=SS/O[15]; SS:=0; O[16]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*U[J]*Q[J]*Y[J]; O[16]:=O[16]+(I[J]*P[J]*U[J]*Q[J])*(I[J]*P[J]*U[J]*Q[J]); end; B[16]:=SS/O[16]; end;{GB940} procedure GB1110; begin SS:=0; O[17]:=0; for J:=1 to X do begin SS:=SS+V[J]*Y[J]; O[17]:=O[17]+V[J]*V[J]; end; B[17]:=SS/O[17]; SS:=0; O[18]:=0; for J:=1 to X do begin SS:=SS+I[J]*V[J]*Y[J]; O[18]:=O[18]+(I[J]*V[J])*(I[J]*V[J]); end; B[18]:=SS/O[18]; SS:=0; O[19]:=0; for J:=1 to X do begin SS:=SS+P[J]*V[J]*Y[J]; O[19]:=O[19]+(P[J]*V[J])*(P[J]*V[J]); end; B[19]:=SS/O[19]; SS:=0; O[20]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*V[J]*Y[J]; O[20]:=O[20]+(I[J]*P[J]*V[J])*(I[J]*P[J]*V[J]); end; B[20]:=SS/O[20]; SS:=0; O[21]:=0; for J:=1 to X do begin SS:=SS+U[J]*V[J]*Y[J]; O[21]:=O[21]+(U[J]*V[J])*(U[J]*V[J]); end;
215
B[21]:=SS/O[21]; SS:=0; O[22]:=0; for J:=1 to X do begin SS:=SS+I[J]*U[J]*V[J]*Y[J]; O[22]:=O[22]+(I[J]*U[J]*V[J])*(I[J]*U[J]*V[J]); end; B[22]:=SS/O[22]; SS:=0; O[23]:=0; for J:=1 to X do begin SS:=SS+P[J]*U[J]*V[J]*Y[J]; O[23]:=O[23]+(P[J]*U[J]*V[J])*(P[J]*U[J]*V[J]); end; B[23]:=SS/O[23]; SS:=0; O[24]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*U[J]*V[J]*Y[J]; O[24]:=O[24]+(I[J]*P[J]*U[J]*V[J])*(I[J]*P[J]*U[J]*V[J]); end; B[24]:=SS/O[24]; SS:=0; O[25]:=0; for J:=1 to X do begin SS:=SS+Q[J]*V[J]*Y[J]; O[25]:=O[25]+(Q[J]*V[J])*(Q[J]*V[J]); end; B[25]:=SS/O[25]; SS:=0; O[26]:=0; for J:=1 to X do begin SS:=SS+I[J]*Q[J]*V[J]*Y[J]; O[26]:=O[26]+(I[J]*Q[J]*V[J])*(I[J]*Q[J]*V[J]); end; B[26]:=SS/O[26]; SS:=0; O[27]:=0; for J:=1 to X do begin SS:=SS+P[J]*Q[J]*V[J]*Y[J]; O[27]:=O[27]+(P[J]*Q[J]*V[J])*(P[J]*Q[J]*V[J]); end; B[27]:=SS/O[27]; SS:=0; O[28]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*Q[J]*V[J]*Y[J]; O[28]:=O[28]+(I[J]*P[J]*Q[J]*V[J])*(I[J]*P[J]*Q[J]*V[J]); end; B[28]:=SS/O[28]; SS:=0; O[29]:=0; for J:=1 to X do begin SS:=SS+U[J]*Q[J]*V[J]*Y[J]; O[29]:=O[29]+(U[J]*Q[J]*V[J])*(U[J]*Q[J]*V[J]); end; B[29]:=SS/O[29]; SS:=0; O[30]:=0;
216
for J:=1 to X do begin SS:=SS+I[J]*U[J]*Q[J]*V[J]*Y[J]; O[30]:=O[30]+(I[J]*U[J]*Q[J]*V[J])*(I[J]*U[J]*Q[J]*V[J]); end; B[30]:=SS/O[30]; SS:=0; O[31]:=0; for J:=1 to X do begin SS:=SS+P[J]*U[J]*Q[J]*V[J]*Y[J]; O[31]:=O[31]+(P[J]*U[J]*Q[J]*V[J])*(P[J]*U[J]*Q[J]*V[J]); end; B[31]:=SS/O[31]; SS:=0; O[32]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*U[J]*Q[J]*V[J]*Y[J]; O[32]:=O[32]+(I[J]*P[J]*U[J]*Q[J]*V[J])* (I[J]*P[J]*U[J]*Q[J]*V[J]); end; B[32]:=SS/O[32]; end;{GB1110} procedure GB2480(A,B,N:real; var V0:real); begin V0:=-(ste(A,N)+ste(B,N))/2; write('Коэффициент ортогонализации '); write(F0,'Коэффициент ортогонализации '); end;{GB2480} procedure GB2490; begin for J:=1 to X do I[J]:=ste(F[J],J1)+V1; end;{GB2490} procedure GB2500; begin for J:=1 to X do P[J]:=ste(H[J],J2)+V2; end;{GB2500} procedure GB2510; begin for J:=1 to X do U[J]:=ste(L[J],J3)+V3; end;{GB2510} procedure GB2520; begin for J:=1 to X do Q[J]:=ste(K[J],J4)+V4; end;{GB2520} procedure GB2530; begin for J:=1 to X do V[J]:=ste(M[J],J5)+V5; end;{GB2530} procedure GB2540; begin for J:=1 to X do Z[J]:=B[1]+B[2]*I[J]; end;{GB2540}
217
procedure GB2550; begin for J:=1 to X do Z[J]:=B[1]+B[2]*I[J]+B[3]*P[J]+B[4]*I[J]*P[J]; end;{GB2550} procedure GB2570; begin for J:=1 to X do begin N3:=B[1]+B[2]*I[J]+B[3]*P[J]+B[4]*I[J]*P[J]; N4:=B[5]*U[J]+B[6]*I[J]*U[J]+B[7]*P[J]*U[J]; Z[J]:=N3+N4+B[8]*I[J]*P[J]*U[J]; end; end;{GB2570} procedure GB2600; begin for J:=1 to X do begin N3:=B[1]+B[2]*I[J]+B[3]*P[J]+B[4]*I[J]*P[J]; N4:=B[5]*U[J]+B[6]*I[J]*U[J]+B[7]*P[J]*U[J]; N5:=B[8]*I[J]*P[J]*U[J]+B[9]*Q[J]+B[10]*I[J]*Q[J]; N6:=B[11]*P[J]*Q[J]+B[12]*I[J]*P[J]*Q[J]+B[13]*U[J]*Q[J]; N7:=B[14]*I[J]*U[J]*Q[J]+B[15]*P[J]*U[J]*Q[J]; Z[J]:=N3+N4+N5+N6+N7+B[16]*I[J]*P[J]*U[J]*Q[J]; end; end;{GB2600} procedure GB2670; begin for J:=1 to X do begin N3:=B[1]+B[2]*I[J]+B[3]*P[J]+B[4]*I[J]*P[J]; N4:=B[5]*U[J]+B[6]*I[J]*U[J]+B[7]*P[J]*U[J]; N5:=B[8]*I[J]*P[J]*U[J]+B[9]*Q[J]+B[10]*I[J]*Q[J]; N6:=B[11]*P[J]*Q[J]+B[12]*I[J]*P[J]*Q[J]+B[13]*U[J]*Q[J]; N7:=B[14]*I[J]*U[J]*Q[J]+B[15]*P[J]*U[J]*Q[J]; R0:=B[16]*I[J]*P[J]*U[J]*Q[J]+B[17]*V[J]; R4:=B[18]*I[J]*V[J]+B[19]*P[J]*V[J]+B[20]*I[J]*P[J]*V[J]; R5:=B[21]*U[J]*V[J]+B[22]*I[J]*U[J]*V[J]; R6:=B[23]*P[J]*U[J]*V[J]+B[24]*I[J]*P[J]*U[J]*V[J]; Z2:=B[25]*Q[J]*V[J]+B[26]*I[J]*Q[J]*V[J]; Z3:=B[27]*P[J]*Q[J]*V[J]+B[28]*I[J]*P[J]*Q[J]*V[J]; Z4:=B[29]*U[J]*Q[J]*V[J]+B[30]*I[J]*U[J]*Q[J]*V[J]; Z5:=B[31]*P[J]*U[J]*Q[J]*V[J]+B[32]*I[J]*P[J]*U[J]*Q[J]*V[J]; Z[J]:=N3+N4+N5+N6+N7+R0+R4+R5+R6+Z2+Z3+Z4+Z5; end; end;{GB2670} begin end.
218
ПРОГРАММА НА ЯЗЫКЕ ТУРБО-ПАСКАЛЬ, РАЗРАБОТАННАЯ НА ОСНОВЕ ПРОГРАММЫ GN3
program tpg3_1; {Математическое моделирование} uses tpg3_3, tpg3_2; label 1,2,3,4,5; procedure VV_DAN; begin case X of 4: begin VVOD41; GB3710(A1,B1,C1,D1,J1,O1,P1,V1,U1,Q1,I1,M1,F1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1); writeln('I1=',I1,' M1=',M1,' F1=',F1); writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1); writeln(F0,'I1=',I1,' M1=',M1,' F1=',F1); end; 16:begin VVOD41; GB3710(A1,B1,C1,D1,J1,O1,P1,V1,U1,Q1,I1,M1,F1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1); writeln('I1=',I1,' M1=',M1,' F1=',F1); writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1); writeln(F0,'I1=',I1,' M1=',M1,' F1=',F1); VVOD42; GB3710(A2,B2,C2,D2,J2,O2,P2,V2,U2,Q2,I2,M2,F2); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V2=',V2,' U2=',U2,' Q2=',Q2); writeln('I2=',I2,' M2=',M2,' F2=',F2); writeln(F0,'V2=',V2,' U2=',U2,' Q2=',Q2); writeln(F0,'I2=',I2,' M2=',M2,' F2=',F2); end; 20:begin VVOD41; GB3710(A1,B1,C1,D1,J1,O1,P1,V1,U1,Q1,I1,M1,F1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1); writeln('I1=',I1,' M1=',M1,' F1=',F1); writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1); writeln(F0,'I1=',I1,' M1=',M1,' F1=',F1); VVOD52; GB3860(A2,C2,E2,D2,B2,J2,O2,P2,T2,V2,U2, Q2,I2,M2,F2,G2,H2,K2,L2); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V2=',V2,' U2=',U2,' Q2=',Q2);
219
writeln('I2=',I2,' M2=',M2,' F2=',F2); writeln('G2=',G2,' H2=',H2,' K2=',K2); writeln('L2=',L2); writeln(F0,'V2=',V2,' U2=',U2,' Q2=',Q2); writeln(F0,'I2=',I2,' M2=',M2,' F2=',F2); writeln(F0,'G2=',G2,' H2=',H2,' K2=',K2); writeln(F0,'L2=',L2); end; 5: begin VVOD51; GB3860(A1,B1,C1,D1,E1,J1,O1,P1,T1,V1,U1, Q1,I1,M1,F1,G1,H1,K1,L1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1); writeln('I1=',I1,' M1=',M1,' F1=',F1); writeln('G1=',G1,' H1=',H1,' K1=',K1); writeln('L1=',L1); writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1); writeln(F0,'I1=',I1,' M1=',M1,' F1=',F1); writeln(F0,'G1=',G1,' H1=',H1,' K1=',K1); writeln(F0,'L1=',L1); end; 25:begin VVOD51; GB3860(A1,B1,C1,D1,E1,J1,O1,P1,T1,V1,U1, Q1,I1,M1,F1,G1,H1,K1,L1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1); writeln('I1=',I1,' M1=',M1,' F1=',F1); writeln('G1=',G1,' H1=',H1,' K1=',K1); writeln('L1=',L1); writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1); writeln(F0,'I1=',I1,' M1=',M1,' F1=',F1); writeln(F0,'G1=',G1,' H1=',H1,' K1=',K1); writeln(F0,'L1=',L1); VVOD52; GB3860(A2,C2,E2,D2,B2,J2,O2,P2,T2,V2,U2, Q2,I2,M2,F2,G2,H2,K2,L2); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V2=',V2,' U2=',U2,' Q2=',Q2); writeln('I2=',I2,' M2=',M2,' F2=',F2); writeln('G2=',G2,' H2=',H2,' K2=',K2); writeln('L2=',L2); writeln(F0,'V2=',V2,' U2=',U2,' Q2=',Q2); writeln(F0,'I2=',I2,' M2=',M2,' F2=',F2); writeln(F0,'G2=',G2,' H2=',H2,' K2=',K2); writeln(F0,'L2=',L2); end; 15:begin VVOD31; GB3660(A1,E1,B1,J1,O1,V1,U1,Q1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1); writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1);
220
VVOD52; GB3860(A2,C2,E2,D2,B2,J2,O2,P2,T2,V2,U2, Q2,I2,M2,F2,G2,H2,K2,L2); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V2=',V2,' U2=',U2,' Q2=',Q2); writeln('I2=',I2,' M2=',M2,' F2=',F2); writeln('G2=',G2,' H2=',H2,' K2=',K2); writeln('L2=',L2); writeln(F0,'V2=',V2,' U2=',U2,' Q2=',Q2); writeln(F0,'I2=',I2,' M2=',M2,' F2=',F2); writeln(F0,'G2=',G2,' H2=',H2,' K2=',K2); writeln(F0,'L2=',L2); end; 3: begin VVOD31; GB3660(A1,E1,B1,J1,O1,V1,U1,Q1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1); writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1); end; 12:begin VVOD31; GB3660(A1,E1,B1,J1,O1,V1,U1,Q1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1); writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1); VVOD42; GB3710(A2,C2,D2,B2,J2,O2,P2,V2,U2,Q2,I2,M2,F2); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V2=',V2,' U2=',U2,' Q2=',Q2); writeln('I2=',I2,' M2=',M2,' F2=',F2); writeln(F0,'V2=',V2,' U2=',U2,' Q2=',Q2); writeln(F0,'I2=',I2,' M2=',M2,' F2=',F2); end; 9: begin VVOD31; GB3660(A1,E1,B1,J1,O1,V1,U1,Q1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1); writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1); VVOD32; GB3660(A2,E2,B2,J2,O2,V2,U2,Q2); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V2=',V2,' U2=',U2,' Q2=',Q2); writeln(F0,'V2=',V2,' U2=',U2,' Q2=',Q2); end; 27:begin VVOD31; GB3660(A1,E1,B1,J1,O1,V1,U1,Q1); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V1=',V1,' U1=',U1,' Q1=',Q1);
221
writeln(F0,'V1=',V1,' U1=',U1,' Q1=',Q1); VVOD32; GB3660(A2,E2,B2,J2,O2,V2,U2,Q2); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V2=',V2,' U2=',U2,' Q2=',Q2); writeln(F0,'V2=',V2,' U2=',U2,' Q2=',Q2); VVOD33; GB3660(A3,E3,B3,J3,O3,V3,U3,Q3); writeln('Коэффициенты ортогонализации'); writeln(F0,'Коэффициенты ортогонализации'); writeln('V3=',V3,' U3=',U3,' Q3=',Q3); writeln(F0,'V3=',V3,' U3=',U3,' Q3=',Q3); end; end;{case} end;{VV_DAN} procedure OUT_Z_B; begin writeln('Расчетные показатели Z(J) до анализа B(J)'); writeln(F0,'Расчетные показатели Z(J) до анализа B(J)'); writeln(F0,'┌────┬────────────────────────────────┐'); writeln(F0,'│ │ Значение │'); writeln(F0,'│ J ├──────────┬──────────┬──────────┤'); writeln(F0,'│ │ Y(J) │ Z(J) │ Y(J)-Z(J)│'); for J:=1 to X do begin writeln(F0,'├────┼──────────┼──────────┼──────────┤'); write(F0,'│ ',J:2,' │',Y[J]:10,'│',Z[J]:10,'│'); writeln(F0,(Y[J]-Z[J]):10,'│'); write('│ ',J:2,' │',Y[J]:10,'│',Z[J]:10,'│'); writeln((Y[J]-Z[J]):10,'│'); end; writeln(F0,'└────┴──────────┴──────────┴──────────┘'); end; {================================================================ Основная программа =================================================================} begin 1: for J:=1 to 25 do writeln; writeln(' Программа на языке Турбо-Паскаль состоит из трех'); writeln(' файлов (tpg3_1, tpg3_2, tpg3_3). Математическое'); writeln('моделирование на основе планирования экспериментов.'); writeln(' Переложение с языка Бейсик программы GGN3.'); writeln(' Разработка Черного А.А.'); writeln('Введите имя файла для вывода отчета (без расширения)'); readln(NAME); Assign(F0, (NAME+'.dat')); Rewrite(F0); writeln(F0,'Выполнение программы математического моделирования'); writeln(F0,' tpg3_1. (Программа на языке Турбо-Паскаль).'); writeln('X=3,4,5,9,12,15,16,20,25,27'); J:=0;X:=0;F3:=0;F4:=0;H3:=0;H4:=0; L3:=0;L4:=0;K3:=0;K4:=0;K5:=0; K7:=0;K8:=0;K0:=0;X0:=0;Y0:=0;J5:=0; J6:=0;J9:=0;S:=0; writeln('Если X=0, то выход из программы'); write('X=');readln(X); writeln(F0,'X=',X);
222
for J:=1 to X do begin F[J]:=0; H[J]:=0; L[J]:=0; Z[J]:=0; KK5[J]:=0; KK6[J]:=0; KK7[J]:=0; J7[J]:=0; J8[J]:=0; JJ9[J]:=0; end; VV_DAN; if X=0 then goto 2; PR_MOD; 3:writeln('----------<Меню 1>------------'); writeln('Если I0=6, то переход в начало'); writeln('Если I0=7, то продолжение и'); writeln('ввод величин показателей Y(J)'); write('I0='); readln(I0); if I0=6 then goto 1; writeln('Ввод величин показателей Y(J)'); writeln(F0,'Показатели Y(J)'); for J:=1 to X do begin write('Y(',J,')='); readln(Y[J]); writeln(F0,'Y(',J,')=',Y[J]); end; case X of 3: GB4150; 4: GB4210; 5: GB4290; 9: begin GB4150; GB4170; end; 12:begin GB4150; GB4250; end; 15:begin GB4150; GB4340; end; 16:begin GB4210; GB4250; end; 20:begin GB4210; GB4340; end; 25:begin GB4290; GB4340; end; 27:begin GB4150; GB4170; GB4190; end; end;{case} GB1410; case X of 4: GB2000; 5: begin GB2000; GB2020; end; 9: begin GB1480; end; 12:begin GB1480; GB1600; end; 15:begin GB1480; GB1600; GB1670; end; 16:begin GB1480; GB1600; GB1930; end; 20:begin GB1480; GB1600; GB1670; GB1730; end;
223
25:begin GB1480; GB1600; GB1670; GB1730; GB1830; end; 27:begin GB1480; GB2040; end; end; writeln('B(J) до анализа'); writeln(F0,'B(J) до анализа'); for J:=1 to X do begin writeln('B(',J,')=',B[J]); writeln(F0,'B(',J,')=',B[J]); end; case X of 3: GB4390; 4: GB4400; 5: GB4420; 9: GB4450; 12:GB4490; 15:GB4530; 16:GB4580; 20:GB4630; 25:GB4690; 27:GB4770; else goto 2; end; OUT_Z_B; 4:writeln('-----------------<Меню 2>--------------------'); writeln('Если I0=3, то ввод результатов опытов'); writeln('на среднем уровне факторов'); writeln('Если I0=4, то ввод дисперсии опытов'); writeln('Если I0=5, то проверка точности и расчеты по модели'); writeln('Если I0=6, то переход в начало программы'); writeln('Если I0=20, то переход в конец программы'); writeln('Если I0=25, то вывод математической модели'); writeln('Если I0=27, то вычисление показателей Z(K5)'); writeln('с использованием циклов и построение графика'); writeln('Если I0=30, то переход к меню 1'); write('Ввод I0='); readln(I0); if I0=6 then goto 1; if I0=20 then goto 2; if I0=30 then goto 3; if I0=25 then begin GB4880; goto 2; end; if I0=27 then begin GB7000; goto 2; end; if (I0=3)or(I0=4) then begin writeln('Ввод N0-количество опытов на среднем уровне факторов'); readln(N0); writeln(F0,'Количество опытов на среднем уровне факторов N0=',N0); writeln('Ввод F8=N0-1'); readln(F8); writeln(F0,'F8=N0-1=',F8); end; if I0=3 then begin writeln('Ввод G(J)-результаты опытов'); writeln('на среднем уровне факторов'); writeln(F0,'G(J)-результаты опытов'); writeln(F0,'на среднем уровне факторов'); for J:=1 to N0 do
224
begin write('G(',J,')='); readln(G[J]); writeln(F0,'G(',J,')=',G[J]); end; SS:=0; for J:=1 to N0 do SS:=SS+G[J]; S0:=SS/N0; writeln('S0=',S0); SS:=0; for J:=1 to N0 do SS:=SS+(G[J]-S0)*(G[J]-S0); U9:=SS/F8; writeln('Дисперсия опытов U9=',U9); writeln(F0,'Дисперсия опытов U9=',U9); end; if I0=4 then begin writeln('Ввод U9-дисперсия опытов'); readln(U9); writeln(F0,'Дисперсия опытов U9=',U9); end; if not(I0=5) then begin writeln('Расчетные величины T(J)'); writeln(F0,'Расчетные величины T(J)'); for J:=1 to X do begin T[J]:=abs(B[J]/sqrt(U9/O[J])); writeln('T(',J,')=',T[J]); writeln(F0,'T(',J,')=',T[J]); end; writeln('┌──────────────────────────────────┐'); writeln('│ Для уровня значимости 5% │'); writeln('├────┬─────┬─────┬─────┬─────┬─────┤'); writeln('│ F8 │ 2 │ 3 │ 4 │ 5 │ 6 │'); writeln('├────┼─────┼─────┼─────┼─────┼─────┤'); writeln('│ T0 │4,303│3,182│2.776│2,571│2,447│'); writeln('└────┴─────┴─────┴─────┴─────┴─────┘'); writeln('F8=N0-1=',N0,'-1=',F8:1); writeln('Ввод T0-табличного T-критерия'); readln(T0); writeln(F0,'Табличный T-критерий T0=',T0:5:3); writeln('B(J) после анализа'); writeln(F0,'B(J) после анализа'); for J:=1 to X do begin if T[J]
225
F9:=X-1; writeln('F9=',F9); writeln(F0,'Количество статистически значимых'); writeln(F0,'коэффициентов регрессии'); writeln(F0,'K9=',K9); writeln(F0,'F9=X-1'); F9:=X-1; writeln(F0,'F9=',F9); tablF9; writeln('F8=',F8:2,' F9=',F9:2); writeln('Ввод F7-табличного F-критерия'); readln(F7); writeln(F0,'Табличный F-критерий F7=',F7); case X of 3: GB4390; 4: GB4400; 5: GB4420; 9: GB4450; 12:GB4490; 15:GB4530; 16:GB4580; 20:GB4630; 25:GB4690; 27:GB4770; else goto 2; end; writeln('Расчетные величины показателя'); writeln('Z(J) после анализа B(J)'); writeln(F0,'Расчетные величины показателя'); writeln(F0,'Z(J) после анализа B(J)'); for J:=1 to X do begin writeln('Z(',J,')=',Z[J]); writeln(F0,'Z(',J,')=',Z[J]); end; SS:=0; for J:=1 to X do SS:=SS+(Z[J]-Y[J])*(Z[J]-Y[J]); F6:=SS/(F9*U9); writeln('Расчетная величина F-критерия F6=',F6); writeln(F0,'Расчетная величина F-критерия F6=',F6); if F6<=F7 then begin writeln('Адекватно, так как F6<=F7'); writeln(F0,'Адекватно, так как F6<=F7'); end; if F6>F7 then begin writeln('Неадекватно, так как F6>F7'); writeln(F0,'Неадекватно, так как F6>F7'); end; case X of 3: OUT_F_H_L(73); 4: OUT_F_H_L(73); 5: OUT_F_H_L(73); 9: OUT_F_H_L(74); 12:OUT_F_H_L(74); 15:OUT_F_H_L(74);
226
16:OUT_F_H_L(74); 20:OUT_F_H_L(74); 25:OUT_F_H_L(74); 27:OUT_F_H_L(75); end; end; 5:writeln('----------<Меню 3--------------'); writeln('Если I0=7, то проверка точности'); writeln('и расчеты по модели'); writeln('Если I0=8, то переход в начало'); writeln('Если I0=17, то математическая модель'); writeln('Если I0=22, то вычисления'); writeln('показателей Z(K5) с использованием'); writeln('циклов и построение графиков'); writeln('Если I0=9, то выход из программы'); writeln('Если I0=25, то переход к меню 1'); writeln('Если I0=27, то переход к меню 2'); write('Ввод I0='); readln(I0); if I0=8 then goto 1; if I0=9 then goto 2; if I0=25 then goto 3; if I0=27 then goto 4; if I0=17 then begin GB4880; goto 2; end; if I0=22 then begin GB7000; goto 2; end; writeln('Проверка точности и расчеты по модели'); writeln('F(S), H(S), L(S) - 1,2,3 факторы'); writeln('где S=X=',X,'-количество опытов по плану'); writeln('расчеты по модели'); writeln(F0,'Проверка точности и расчеты по модели'); writeln(F0,'F(S), H(S), L(S) - 1,2,3 факторы'); writeln(F0,'где S=X=',X,'-количество опытов по плану'); writeln(F0,'расчеты по модели'); if (X=3)or(X=4)or(X=5)then begin for S:=1 to X do begin F[S]:=0; Z[S]:=0; writeln('Ввод F(',S,')'); readln(F[S]); case X of 3: begin GB4150; GB4390; end; 4: begin GB4210; GB4400; end; 5: begin GB4290; GB4420; end; else goto 2; end;{case} writeln('Z(',S,')=',Z[S]); end;{for} OUT_F_H_L(73); end;{if} if (X=9)or(X=12)or(X=15)or(X=16)or(X=20)or(X=25)then begin
227
for S:=1 to X do begin F[S]:=0; Z[S]:=0; H[S]:=0; writeln('Ввод F(',S,')',' H(',S,')'); readln(F[S],H[S]); case X of 9: begin GB4150; GB4170; GB4450; end; 12:begin GB4150; GB4250; GB4490; end; 15:begin GB4150; GB4340; GB4530; end; 16:begin GB4210; GB4250; GB4580; end; 20:begin GB4210; GB4340; GB4630; end; 25:begin GB4290; GB4340; GB4690; end; else goto 2; end;{case} writeln('Z(',S,')=',Z[S]); end;{for} OUT_F_H_L(74); end;{if} if X=27 then begin for S:=1 to X do begin writeln('Ввод F(',S,')',' H(',S,')',' L(',S,')'); readln(F[S],H[S],L[S]); GB4150; GB4170; GB4190; GB4770; writeln('Z(',S,')=',Z[S]); end;{for} OUT_F_H_L(75); end;{if} 2:writeln('----------------<Меню 4------------------'); writeln('Если I0=10, то проверка точности'); writeln('и расчеты по модели'); writeln('Если I0=14, то вычисления '); writeln('показателей Z(K5) с использованием'); writeln('циклов и построение графиков'); writeln('Если I0=35, то переход к меню 1'); writeln('Если I0=18, то переход к меню 2'); writeln('Если I0=19, то переход к меню 3'); writeln('Если I0=50, то переход в начало программы'); writeln('Если I0=44, то выход из программы'); write('Ввод I0='); readln(I0); if I0=11 then goto 1; if I0=18 then goto 4; if (I0=19)or(I0=10) then goto 5; if I0=35 then goto 3;
228
if I0=14 then begin GB7000; goto 2; end; writeln('Конец работы'); close(F0); end.{Конец программы}
229
unit TPG3_2; Interface type artp=array[1..50] of real; var J6,K5,S,J,I0,X,N0,K9,K4,F8,F9:integer; G1,T1,A1,C1,E1,D1,B1,J1,O1,A2,E2,B2,J2,O2,A3:real; H1,K1,L1,F1,M1,I1,P1,E3,B3,J3,O3,V1,U1,Q1,V2,U2,Q2:real; P2,F2,I2,H2,M2,N3,N4,N5,N6,N7,R3,R4,R0,R5,R6:real; S0,J5,S1,V3,U3,Q3,U9,F7,SO,F6:real; J9,L3,SS,L4,H4,H3,F3,F4,C2,D2,T2:real; T0,G2,K2,L2,K7,K8,X0,Y0,K0,K3:real; J7,J8,JJ9,KK5,KK6,KK7,KK8,F,H,V,L,Y,I,K,M,P,Q,U,O,B,Z,G,T:artp; NAME:string[8]; F0: Text; procedure GB3660(A,B,E,N,R:real; var V0,U0,Q0:real); procedure GB3710(A,B,C,D,N,R,S:real; var V0,U0,Q0,I0,M0,F0:real); procedure GB3860(A,B,C,D,E,N,R,S,W:real; var V0,U0,Q0,I0,M0,F0,G0,H0,K0,L0:real); function ste(Q,A:real):real; procedure GB1410; procedure GB1480; procedure GB1600; procedure GB1670; procedure GB1730; procedure GB1830; procedure GB1930; procedure GB2000; procedure GB2020; procedure GB2040; procedure GB4150; procedure GB4210; procedure GB4290; procedure GB4170; procedure GB4190; procedure GB4250; procedure GB4340; procedure GB4400; procedure GB4420; procedure GB4450; procedure GB4490; procedure GB4530; procedure GB4580; procedure GB4630; procedure GB4690; procedure GB4390; procedure GB4770; Implementation function ste(Q,A:real):real; {Функция возведения в степень} begin if A<0 then begin A:=abs(A); if Q=0 then Q:=1E-5; ste:=1/exp(A*ln(Q)); end else begin if Q=0 then Q:=1E-5; if A=0 then ste:=1 else ste:=exp(A*ln(Q)); end; end;{ste} procedure GB1410; begin SS:=0; O[1]:=0; for J:=1 to X do begin SS:=SS+Y[J]; O[1]:=O[1]+1; end; B[1]:=SS/O[1]; SS:=0; O[2]:=0; for J:=1 to X do begin SS:=SS+I[J]*Y[J]; O[2]:=O[2]+I[J]*I[J]; end;
230
B[2]:=SS/O[2]; SS:=0; O[3]:=0; for J:=1 to X do begin SS:=SS+K[J]*Y[J]; O[3]:=O[3]+K[J]*K[J]; end; B[3]:=SS/O[3]; end;{GB1410} procedure GB1480; begin SS:=0; O[4]:=0; for J:=1 to X do begin SS:=SS+P[J]*Y[J]; O[4]:=O[4]+P[J]*P[J]; end; B[4]:=SS/O[4]; SS:=0; O[5]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*Y[J]; O[5]:=O[5]+(I[J]*P[J])*(I[J]*P[J]); end; B[5]:=SS/O[5]; SS:=0; O[6]:=0; for J:=1 to X do begin SS:=SS+Q[J]*Y[J]; O[6]:=O[6]+Q[J]*Q[J]; end; B[6]:=SS/O[6]; SS:=0; O[7]:=0; for J:=1 to X do begin SS:=SS+I[J]*Q[J]*Y[J]; O[7]:=O[7]+(I[J]*Q[J])*(I[J]*Q[J]); end; B[7]:=SS/O[7]; SS:=0; O[8]:=0; for J:=1 to X do begin SS:=SS+P[J]*K[J]*Y[J]; O[8]:=O[8]+(P[J]*K[J])*(P[J]*K[J]); end; B[8]:=SS/O[8]; SS:=0; O[9]:=0; for J:=1 to X do begin SS:=SS+K[J]*Q[J]*Y[J]; O[9]:=O[9]+(K[J]*Q[J])*(K[J]*Q[J]); end; B[9]:=SS/O[9]; end;{GB1480} procedure GB1600; begin SS:=0; O[10]:=0; for J:=1 to X do begin SS:=SS+U[J]*Y[J]; O[10]:=O[10]+U[J]*U[J]; end; B[10]:=SS/O[10]; SS:=0; O[11]:=0; for J:=1 to X do
231
begin SS:=SS+I[J]*U[J]*Y[J]; O[11]:=O[11]+(I[J]*U[J])*(I[J]*U[J]); end; B[11]:=SS/O[11]; SS:=0; O[12]:=0; for J:=1 to X do begin SS:=SS+K[J]*U[J]*Y[J]; O[12]:=O[12]+K[J]*U[J]*K[J]*U[J]; end; B[12]:=SS/O[12]; end;{GB1600} procedure GB1670; begin SS:=0; O[13]:=0; for J:=1 to X do begin SS:=SS+V[J]*Y[J]; O[13]:=O[13]+V[J]*V[J]; end; B[13]:=SS/O[13]; SS:=0; O[14]:=0; for J:=1 to X do begin SS:=SS+I[J]*V[J]*Y[J]; O[14]:=O[14]+I[J]*V[J]*I[J]*V[J]; end; B[14]:=SS/O[14]; SS:=0; O[15]:=0; for J:=1 to X do begin SS:=SS+K[J]*V[J]*Y[J]; O[15]:=O[15]+K[J]*V[J]*K[J]*V[J]; end; B[15]:=SS/O[15]; end;{GB1670} procedure GB1730; begin SS:=0; O[16]:=0; for J:=1 to X do begin SS:=SS+L[J]*Y[J]; O[16]:=O[16]+L[J]*L[J]; end; B[16]:=SS/O[16]; SS:=0; O[17]:=0; for J:=1 to X do begin SS:=SS+P[J]*L[J]*Y[J]; O[17]:=O[17]+(P[J]*L[J])*(P[J]*L[J]); end; B[17]:=SS/O[17]; SS:=0; O[18]:=0; for J:=1 to X do begin SS:=SS+Q[J]*L[J]*Y[J]; O[18]:=O[18]+(Q[J]*L[J])*(Q[J]*L[J]); end; B[18]:=SS/O[18]; SS:=0; O[19]:=0; for J:=1 to X do begin SS:=SS+L[J]*U[J]*Y[J];
232
O[19]:=O[19]+(L[J]*U[J])*(L[J]*U[J]); end; B[19]:=SS/O[19]; SS:=0; O[20]:=0; for J:=1 to X do begin SS:=SS+L[J]*V[J]*Y[J]; O[20]:=O[20]+(L[J]*V[J])*(L[J]*V[J]); end; B[20]:=SS/O[20]; end;{GB1730} procedure GB1830; begin SS:=0; O[21]:=0; for J:=1 to X do begin SS:=SS+M[J]*Y[J]; O[21]:=O[21]+M[J]*M[J]; end; B[21]:=SS/O[21]; SS:=0; O[22]:=0; for J:=1 to X do begin SS:=SS+P[J]*M[J]*Y[J]; O[22]:=O[22]+(P[J]*M[J])*(P[J]*M[J]); end; B[22]:=SS/O[22]; SS:=0; O[23]:=0; for J:=1 to X do begin SS:=SS+Q[J]*M[J]*Y[J]; O[23]:=O[23]+(Q[J]*M[J])*(Q[J]*M[J]); end; B[23]:=SS/O[23]; SS:=0; O[24]:=0; for J:=1 to X do begin SS:=SS+U[J]*M[J]*Y[J]; O[24]:=O[24]+(U[J]*M[J])*(U[J]*M[J]); end; B[24]:=SS/O[24]; SS:=0; O[25]:=0; for J:=1 to X do begin SS:=SS+M[J]*V[J]*Y[J]; O[25]:=O[25]+(M[J]*V[J])*(M[J]*V[J]); end; B[25]:=SS/O[25]; end;{GB1830} procedure GB1930; begin SS:=0; O[13]:=0; for J:=1 to X do begin SS:=SS+L[J]*Y[J]; O[13]:=O[13]+L[J]*L[J]; end; B[13]:=SS/O[13]; SS:=0; O[14]:=0; for J:=1 to X do begin SS:=SS+P[J]*L[J]*Y[J]; O[14]:=O[14]+(P[J]*L[J])*(P[J]*L[J]); end;
233
B[14]:=SS/O[14]; SS:=0; O[15]:=0; for J:=1 to X do begin SS:=SS+Q[J]*L[J]*Y[J]; O[15]:=O[15]+(Q[J]*L[J])*(Q[J]*L[J]); end; B[15]:=SS/O[15]; SS:=0; O[16]:=0; for J:=1 to X do begin SS:=SS+L[J]*U[J]*Y[J]; O[16]:=O[16]+(L[J]*U[J])*(L[J]*U[J]); end; B[16]:=SS/O[16]; end;{GB1930} procedure GB2000; begin SS:=0; O[4]:=0; for J:=1 to X do begin SS:=SS+L[J]*Y[J]; O[4]:=O[4]+L[J]*L[J]; end; B[4]:=SS/O[4]; end;{GB2000} procedure GB2020; begin SS:=0; O[5]:=0; for J:=1 to X do begin SS:=SS+M[J]*Y[J]; O[5]:=O[5]+M[J]*M[J]; end; B[5]:=SS/O[5]; end;{GB2020} procedure GB2040; begin SS:=0; O[10]:=0; for J:=1 to X do begin SS:=SS+U[J]*Y[J]; O[10]:=O[10]+U[J]*U[J]; end; B[10]:=SS/O[10]; SS:=0; O[11]:=0; for J:=1 to X do begin SS:=SS+I[J]*U[J]*Y[J]; O[11]:=O[11]+(I[J]*U[J])*(I[J]*U[J]); end; B[11]:=SS/O[11]; SS:=0; O[12]:=0; for J:=1 to X do begin SS:=SS+P[J]*U[J]*Y[J]; O[12]:=O[12]+(P[J]*U[J])*(P[J]*U[J]); end; B[12]:=SS/O[12]; SS:=0; O[13]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*U[J]*Y[J];
234
O[13]:=O[13]+(I[J]*P[J]*U[J])*(I[J]*P[J]*U[J]); end; B[13]:=SS/O[13]; SS:=0; O[14]:=0; for J:=1 to X do begin SS:=SS+V[J]*Y[J]; O[14]:=O[14]+V[J]*V[J]; end; B[14]:=SS/O[14]; SS:=0; O[15]:=0; for J:=1 to X do begin SS:=SS+I[J]*V[J]*Y[J]; O[15]:=O[15]+(I[J]*V[J])*(I[J]*V[J]); end; B[15]:=SS/O[15]; SS:=0; O[16]:=0; for J:=1 to X do begin SS:=SS+P[J]*V[J]*Y[J]; O[16]:=O[16]+(P[J]*V[J])*(P[J]*V[J]); end; B[16]:=SS/O[16]; SS:=0; O[17]:=0; for J:=1 to X do begin SS:=SS+U[J]*K[J]*Y[J]; O[17]:=O[17]+(U[J]*K[J])*(U[J]*K[J]); end; B[17]:=SS/O[17]; SS:=0; O[18]:=0; for J:=1 to X do begin SS:=SS+U[J]*Q[J]*Y[J]; O[18]:=O[18]+(U[J]*Q[J])*(U[J]*Q[J]); end; B[18]:=SS/O[18]; SS:=0; O[19]:=0; for J:=1 to X do begin SS:=SS+I[J]*P[J]*V[J]*Y[J]; O[19]:=O[19]+(I[J]*P[J]*V[J])*(I[J]*P[J]*V[J]); end; B[19]:=SS/O[19]; SS:=0; O[20]:=0; for J:=1 to X do begin SS:=SS+I[J]*U[J]*Q[J]*Y[J]; O[20]:=O[20]+(I[J]*U[J]*Q[J])*(I[J]*U[J]*Q[J]); end; B[20]:=SS/O[20]; SS:=0; O[21]:=0; for J:=1 to X do begin SS:=SS+P[J]*U[J]*K[J]*Y[J]; O[21]:=O[21]+(P[J]*U[J]*K[J])*(P[J]*U[J]*K[J]); end; B[21]:=SS/O[21]; SS:=0; O[22]:=0; for J:=1 to X do begin SS:=SS+K[J]*V[J]*Y[J]; O[22]:=O[22]+(K[J]*V[J])*(K[J]*V[J]); end; B[22]:=SS/O[22]; SS:=0; O[23]:=0;
235
for J:=1 to X do begin SS:=SS+Q[J]*V[J]*Y[J]; O[23]:=O[23]+(Q[J]*V[J])*(Q[J]*V[J]); end; B[23]:=SS/O[23]; SS:=0; O[24]:=0; for J:=1 to X do begin SS:=SS+I[J]*Q[J]*V[J]*Y[J]; O[24]:=O[24]+(I[J]*Q[J]*V[J])*(I[J]*Q[J]*V[J]); end; B[24]:=SS/O[24]; SS:=0; O[25]:=0; for J:=1 to X do begin SS:=SS+P[J]*K[J]*V[J]*Y[J]; O[25]:=O[25]+(P[J]*K[J]*V[J])*(P[J]*K[J]*V[J]); end; B[25]:=SS/O[25]; SS:=0; O[26]:=0; for J:=1 to X do begin SS:=SS+U[J]*K[J]*Q[J]*Y[J]; O[26]:=O[26]+(U[J]*K[J]*Q[J])*(U[J]*K[J]*Q[J]); end; B[26]:=SS/O[26]; SS:=0; O[27]:=0; for J:=1 to X do begin SS:=SS+K[J]*Q[J]*V[J]*Y[J]; O[27]:=O[27]+(K[J]*Q[J]*V[J])*(K[J]*Q[J]*V[J]); end; B[27]:=SS/O[27]; end;{GB2040} procedure GB3660(A,B,E,N,R:real; var V0,U0,Q0:real); var L2,N0,R0,N3,N4,N5:real; begin N0:=(ste(A,N)+ste(B,N)+ste(E,N))/3; R0:=(ste(A,R)+ste(B,R)+ste(E,R))/3; L2:=2*N; N3:=(ste(A,L2)+ste(B,L2)+ste(E,L2))/3; N4:=N+R; N5:=(ste(A,N4)+ste(B,N4)+ste(E,N4))/3; V0:=-N0; U0:=(N0*R0-N5)/(N3-N0*N0); Q0:=-(R0+U0*N0); end;{GB3660} procedure GB3710(A,B,C,D,N,R,S:real; var V0,U0,Q0,I0,M0,F0:real); var N0,R0,S0,L2,N3,K2,R3,N4,N5,N6,N7,R4,R5,P0,Z1,Z2,Z3:real; begin N0:=(ste(A,N)+ste(B,N)+ste(C,N)+ste(D,N))/4; R0:=(ste(A,R)+ste(B,R)+ste(C,R)+ste(D,R))/4; S0:=(ste(A,S)+ste(B,S)+ste(C,S)+ste(D,S))/4; L2:=2*N; N3:=(ste(A,L2)+ste(B,L2)+ste(C,L2)+ste(D,L2))/4; K2:=2*R; R3:=(ste(A,K2)+ste(B,K2)+ste(C,K2)+ste(D,K2))/4; N4:=N+R; N5:=(ste(A,N4)+ste(B,N4)+ste(C,N4)+ste(D,N4))/4; N6:=N+S;
236
N7:=(ste(A,N6)+ste(B,N6)+ste(C,N6)+ste(D,N6))/4; R4:=R+S; R5:=(ste(A,R4)+ste(B,R4)+ste(C,R4)+ste(D,R4))/4; V0:=-N0; U0:=(N0*R0-N5)/(N3-N0*N0); Q0:=-(R0+U0*N0); P0:=(N0*S0-N7)/(N3-N0*N0); Z1:=R0*S0-R5+P0*(N0*R0-N5); Z2:=U0*(N0*S0-N7)+U0*P0*(N0*N0-N3); Z3:=R3-R0*R0+2*U0*(N5-N0*R0); I0:=(Z1+Z2)/(Z3+(N3-N0*N0)*U0*U0); M0:=I0*U0+P0; F0:=-(S0+I0*R0+M0*N0); end;{GB3710} procedure GB3860(A,B,C,D,E,N,R,S,W:real; var V0,U0,Q0,I0,M0,F0,G0,H0,K0,L0:real); var N0,R0,S0,W0,L2,N3,K2,R3,M2,S3,N4,N5:real; N6,N7,N8,N9,R4,R5,R6,R7,S4,S5,P0:real; Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z0,Z8,Z9,T7:real; T8,T9,G3,G4,G5,G6,G7:real; begin N0:=(ste(A,N)+ste(B,N)+ste(C,N)+ste(D,N)+ste(E,N))/5; R0:=(ste(A,R)+ste(B,R)+ste(C,R)+ste(D,R)+ste(E,R))/5; S0:=(ste(A,S)+ste(B,S)+ste(C,S)+ste(D,S)+ste(E,S))/5; W0:=(ste(A,W)+ste(B,W)+ste(C,W)+ste(D,W)+ste(E,W))/5; L2:=2*N; N3:=(ste(A,L2)+ste(B,L2)+ste(C,L2)+ste(D,L2)+ste(E,L2))/5; K2:=2*R; R3:=(ste(A,K2)+ste(B,K2)+ste(C,K2)+ste(D,K2)+ste(E,K2))/5; M2:=2*S; S3:=(ste(A,M2)+ste(B,M2)+ste(C,M2)+ste(D,M2)+ste(E,M2))/5; N4:=N+R; N5:=(ste(A,N4)+ste(B,N4)+ste(C,N4)+ste(D,N4)+ste(E,N4))/5; N6:=N+S; N7:=(ste(A,N6)+ste(B,N6)+ste(C,N6)+ste(D,N6)+ste(E,N6))/5; N8:=N+W; N9:=(ste(A,N8)+ste(B,N8)+ste(C,N8)+ste(D,N8)+ste(E,N8))/5; R4:=R+S; R5:=(ste(A,R4)+ste(B,R4)+ste(C,R4)+ste(D,R4)+ste(E,R4))/5; R6:=R+W; R7:=(ste(A,R6)+ste(B,R6)+ste(C,R6)+ste(D,R6)+ste(E,R6))/5; S4:=S+W; S5:=(ste(A,S4)+ste(B,S4)+ste(C,S4)+ste(D,S4)+ste(E,S4))/5; V0:=-N0; U0:=(N0*R0-N5)/(N3-N0*N0); Q0:=-(R0+U0*N0); P0:=(N0*S0-N7)/(N3-N0*N0); Z1:=R0*S0-R5+P0*(N0*R0-N5); Z2:=U0*(N0*S0-N7)+U0*P0*(N0*N0-N3); Z3:=R3-R0*R0+2*U0*(N5-N0*R0); I0:=(Z1+Z2)/(Z3+(N3-N0*N0)*U0*U0); M0:=I0*U0+P0; F0:=-(S0+I0*R0+M0*N0); Z4:=R0+U0*N0; Z5:=Z4*N0-N5-U0*N3;
237
Z6:=R3+U0*N5-Z4*R0-Z5*U0; Z7:=Z4*S0+Z5*P0-R5-U0*N7; Z0:=(N0*W0-N9)/(N3-N0*N0); Z8:=Z5*Z0+Z4*W0-R7-U0*N9; Z9:=S3+I0*R5+M0*N7; T7:=R5+I0*R3+M0*N5; T8:=N7+I0*N5+M0*N3; T9:=S0+I0*R0+M0*N0; G3:=S5+I0*R7+M0*N9; G4:=T9*N0-T8; G5:=Z9-T9*S0-G4*P0; G6:=T9*R0-T7+G4*U0; G7:=G4*Z0+T9*W0-G3; G0:=(Z6*G7+Z8*G6)/(Z6*G5-Z7*G6); H0:=(G0*Z7+Z8)/Z6; K0:=G0*P0+H0*U0+Z0; L0:=-(W0+G0*S0+H0*R0+K0*N0); end;{GB3860} procedure GB4150; begin for J:=1 to X do begin I[J]:=ste(F[J],J1)+V1; K[J]:=ste(F[J],O1)+U1*ste(F[J],J1)+Q1; end; end;{GB4150} procedure GB4210; begin for J:=1 to X do begin I[J]:=ste(F[J],J1)+V1; K[J]:=ste(F[J],O1)+U1*ste(F[J],J1)+Q1; L[J]:=ste(F[J],P1)+I1*ste(F[J],O1)+M1*ste(F[J],J1)+F1; end; end;{Gb4210} procedure GB4290; begin for J:=1 to X do begin I[J]:=ste(F[J],J1)+V1; K[J]:=ste(F[J],O1)+U1*ste(F[J],J1)+Q1; L[J]:=ste(F[J],P1)+I1*ste(F[J],O1)+M1*ste(F[J],J1)+F1; M[J]:=ste(F[J],T1)+G1*ste(F[J],P1)+H1*ste(F[J],O1) +K1*ste(F[J],J1)+L1; end; end;{GB4290} procedure GB4170; begin for J:=1 to X do begin P[J]:=ste(H[J],J2)+V2; Q[J]:=ste(H[J],O2)+U2*ste(H[J],J2)+Q2; end; end;{GB4170} procedure GB4190; begin for J:=1 to X do begin
238
U[J]:=ste(L[J],J3)+V3; V[J]:=ste(L[J],O3)+U3*ste(L[J],J3)+Q3; end; end;{GB4190} procedure GB4250; begin for J:=1 to X do begin P[J]:=ste(H[J],J2)+V2; Q[J]:=ste(H[J],O2)+U2*ste(H[J],J2)+Q2; U[J]:=ste(H[J],P2)+I2*ste(H[J],O2)+M2*ste(H[J],J2)+F2; end; end;{GB4250} procedure GB4340; begin for J:=1 to X do begin P[J]:=ste(H[J],J2)+V2; Q[J]:=ste(H[J],O2)+U2*ste(H[J],J2)+Q2; U[J]:=ste(H[J],P2)+I2*ste(H[J],O2)+M2*ste(H[J],J2)+F2; V[J]:=ste(H[J],T2)+G2*ste(H[J],P2)+H2*ste(H[J],O2) +K2*ste(H[J],J2)+L2; end; end;{GB4340} procedure GB4400; begin for J:=1 to X do Z[J]:=B[1]+B[2]*I[J]+B[3]*K[J]+B[4]*L[J]; end;{GB4400} procedure GB4420; begin for J:=1 to X do Z[J]:=B[1]+B[2]*I[J]+B[3]*K[J]+B[4]*L[J]+B[5]*M[J]; end;{GB4420} procedure GB4450; begin for J:=1 to X do begin N3:=B[1]+B[2]*I[J]+B[3]*K[J]+B[4]*P[J]; N4:=B[5]*I[J]*P[J]+B[6]*Q[J]+B[7]*I[J]*Q[J]; N5:=B[8]*P[J]*K[J]+B[9]*K[J]*Q[J]; Z[J]:=N3+N4+N5; end; end;{GB4450} procedure GB4490; begin for J:=1 to X do begin N3:=B[1]+B[2]*I[J]+B[3]*K[J]+B[4]*P[J]; N4:=B[5]*I[J]*P[J]+B[6]*Q[J]+B[7]*I[J]*Q[J]+B[8]*P[J]*K[J]; N5:=B[9]*K[J]*Q[J]+B[10]*U[J]+B[11]*I[J]*U[J]; Z[J]:=N3+N4+N5+B[12]*K[J]*U[J]; end; end;{GB4490} procedure GB4530; begin for J:=1 to X do begin
239
N3:=B[1]+B[2]*I[J]+B[3]*K[J]+B[4]*P[J]; N4:=B[5]*I[J]*P[J]+B[6]*Q[J]+B[7]*I[J]*Q[J]+B[8]*P[J]*K[J]; N5:=B[9]*K[J]*Q[J]+B[10]*U[J]+B[11]*I[J]*U[J]; N6:=B[12]*K[J]*U[J]+B[13]*V[J]+B[14]*I[J]*V[J]; Z[J]:=N3+N4+N5+N6+B[15]*K[J]*V[J]; end; end;{GB4530} procedure GB4580; begin for J:=1 to X do begin N3:=B[1]+B[2]*I[J]+B[3]*K[J]+B[4]*P[J]; N4:=B[5]*I[J]*P[J]+B[6]*Q[J]+B[7]*I[J]*Q[J]+B[8]*P[J]*K[J]; N5:=B[9]*K[J]*Q[J]+B[10]*U[J]+B[11]*I[J]*U[J]+B[12]*K[J]*U[J]; N6:=B[13]*L[J]+B[14]*P[J]*L[J]+B[15]*Q[J]*L[J]; Z[J]:=N3+N4+N5+N6+B[16]*L[J]*U[J]; end; end;{GB4580} procedure GB4630; begin for J:=1 to X do begin N3:=B[1]+B[2]*I[J]+B[3]*K[J]+B[4]*P[J]; N4:=B[5]*I[J]*P[J]+B[6]*Q[J]+B[7]*I[J]*Q[J]+B[8]*P[J]*K[J]; N5:=B[9]*K[J]*Q[J]+B[10]*U[J]+B[11]*I[J]*U[J]; N6:=B[12]*K[J]*U[J]+B[13]*V[J]+B[14]*I[J]*V[J]+B[15]*K[J]*V[J]; N7:=B[16]*L[J]+B[17]*P[J]*L[J]+B[18]*Q[J]*L[J]+B[19]*L[J]*U[J]; Z[J]:=N3+N4+N5+N6+N7+B[20]*L[J]*V[J]; end; end;{GB4630} procedure GB4690; begin for J:=1 to X do begin N3:=B[1]+B[2]*I[J]+B[3]*K[J]+B[4]*P[J]; N4:=B[5]*I[J]*P[J]+B[6]*Q[J]+B[7]*I[J]*Q[J]+B[8]*P[J]*K[J]; N5:=B[9]*K[J]*Q[J]+B[10]*U[J]+B[11]*I[J]*U[J]; N6:=B[12]*K[J]*U[J]+B[13]*V[J]+B[14]*I[J]*V[J]+B[15]*K[J]*V[J]; N7:=B[16]*L[J]+B[17]*P[J]*L[J]+B[18]*Q[J]*L[J]+B[19]*L[J]*U[J]; R3:=B[20]*L[J]*V[J]+B[21]*M[J]+B[22]*P[J]*M[J]; R4:=B[23]*Q[J]*M[J]+B[24]*U[J]*M[J]+B[25]*M[J]*V[J]; Z[J]:=N3+N4+N5+N6+N7+R3+R4; end; end;{GB4690} procedure GB4390; begin for J:=1 to X do Z[J]:=B[1]+B[2]*I[J]+B[3]*K[J]; end;{GB4390} procedure GB4770; begin for J:=1 to X do begin N3:=B[1]+B[2]*I[J]+B[3]*K[J]+B[4]*P[J]; N4:=B[5]*I[J]*P[J]+B[6]*Q[J]+B[7]*I[J]*Q[J]+B[8]*P[J]*K[J]; N5:=B[9]*K[J]*Q[J]+B[10]*U[J]+B[11]*I[J]*U[J]+B[12]*P[J]*U[J]; N6:=B[13]*I[J]*P[J]*U[J]+B[14]*V[J]+B[15]*I[J]*V[J]; N7:=B[16]*P[J]*V[J]+B[17]*U[J]*K[J]+B[18]*U[J]*Q[J];
240
R0:=B[19]*I[J]*P[J]*V[J]+B[20]*I[J]*U[J]*Q[J]; R4:=B[21]*P[J]*U[J]*K[J]+B[22]*K[J]*V[J]+B[23]*Q[J]*V[J]; R5:=B[24]*I[J]*Q[J]*V[J]+B[25]*P[J]*K[J]*V[J]; R6:=B[26]*U[J]*K[J]*Q[J]+B[27]*K[J]*Q[J]*V[J]; Z[J]:=N3+N4+N5+N6+N7+R0+R4+R5+R6; end; end;{GB4770} end.
241
unit TPG3_3; Interface uses graph, tpg3_2; var grDriver: Integer; grMode: Integer; procedure PR_MOD; procedure procedure GB7000; procedure procedure VVOD32; procedure procedure VVOD41; procedure
GB4880; VVOD31; VVOD33; VVOD42;
procedure VVOD51; procedure VVOD52; procedure tablF9; procedure OUT_F_H_L(PR:integer); Implementation procedure VVOD31; begin writeln('Ввод A1 E1 B1 J1 O1'); readln(A1,E1,B1,J1,O1); writeln(F0,'A1=',A1,' E1=',E1,' B1=',B1); writeln(F0,'J1=',J1,' O1=',O1); end;{VVOD31} procedure VVOD32; begin writeln('Ввод A2 E2 B2 J2 O2'); readln(A2,E2,B2,J2,O2); writeln(F0,'A2=',A2,' E2=',E2,' B2=',B2); writeln(F0,'J2=',J2,' O2=',O2); end;{VVOD32} procedure VVOD33; begin writeln('Ввод A3 E3 B3 J3 O3'); readln(A3,E3,B3,J3,O3); writeln(F0,'A3=',A3,' E3=',E3,' B3=',B3); writeln(F0,'J3=',J3,' O3=',O3); end;{VVOD33} procedure VVOD41; begin writeln('Ввод A1 C1 D1 B1 J1 O1 P1'); readln(A1,C1,D1,B1,J1,O1,P1); writeln(F0,'A1=',A1,' C1=',C1,' D1=',D1); writeln(F0,'B1=',B1,' J1=',J1,' O1=',O1); writeln(F0,'P1=',P1); end;{VVOD41} procedure VVOD42; begin writeln('Ввод A2 C2 D2 B2 J2 O2 P2'); readln(A2,C2,D2,B2,J2,O2,P2); writeln(F0,'A2=',A2,' C2=',C2,' D2=',D2); writeln(F0,'B2=',B2,' J2=',J2,' O2=',O2); writeln(F0,'P2=',P2); end;{VVOD42} procedure VVOD51; begin writeln('Ввод A1 C1 E1 D1 B1 J1 O1 P1 T1'); readln(A1,C1,E1,D1,B1,J1,O1,P1,T1); writeln(F0,'A1=',A1,' C1=',C1,' E1=',E1); writeln(F0,'D1=',D1,' B1=',B1,' J1=',J1);
242
writeln(F0,'O1=',O1,' P1=',P1,' T1=',T1); end;{VVOD51} procedure VVOD52; begin writeln('Ввод A2 C2 E2 D2 B2 J2 O2 P2 T2'); readln(A2,C2,E2,D2,B2,J2,O2,P2,T2); writeln(F0,'A2=',A2,' C2=',C2,' E2=',E2); writeln(F0,'D2=',D2,' B2=',B2,' J2=',J2); writeln(F0,'O2=',O2,' P2=',P2,' T2=',T2); end;{VVOD52} procedure PR_MOD; begin case X of 3: begin F[1]:=A1; F[2]:=B1; F[3]:=E1; end; 4: begin F[1]:=A1; F[2]:=B1; F[3]:=C1; F[4]:=D1; end; 5: begin F[1]:=A1; F[2]:=B1; F[3]:=C1; F[4]:=D1; F[5]:=E1; end; 9: begin F[1]:=A1; H[1]:=A2; F[2]:=B1; H[2]:=A2; F[3]:=A1; H[3]:=B2; F[4]:=B1; H[4]:=B2; F[5]:=A1; H[5]:=E2; F[6]:=B1; H[6]:=E2; F[7]:=E1; H[7]:=A2; F[8]:=E1; H[8]:=B2; F[9]:=E1; H[9]:=E2; end; 12:begin F[1]:=A1; H[1]:=A2; F[2]:=B1; H[2]:=A2; F[3]:=A1; H[3]:=B2; F[4]:=B1; H[4]:=B2; F[5]:=E1; H[5]:=A2; F[6]:=E1; H[6]:=B2; F[7]:=A1; H[7]:=C2; F[8]:=B1; H[8]:=D2; F[9]:=A1; H[9]:=D2; F[10]:=B1; H[10]:=C2; F[11]:=E1; H[11]:=C2; F[12]:=E1; H[12]:=D2; end; 15:begin F[1]:=A1; H[1]:=A2; F[2]:=B1; H[2]:=A2; F[3]:=A1; H[3]:=B2; F[4]:=B1; H[4]:=B2; F[5]:=A1; H[5]:=E2; F[6]:=B1; H[6]:=E2; F[7]:=E1; H[7]:=A2; F[8]:=E1; H[8]:=B2; F[9]:=E1; H[9]:=E2; F[10]:=A1; H[10]:=C2; F[11]:=B1; H[11]:=D2; F[12]:=A1; H[12]:=D2; F[13]:=B1; H[13]:=C2; F[14]:=E1; H[14]:=C2; F[15]:=E1; H[15]:=D2; end; 16:begin F[1]:=A1; H[1]:=A2; F[2]:=B1; H[2]:=A2; F[3]:=A1; H[3]:=B2; F[4]:=B1; H[4]:=B2; F[5]:=A1; H[5]:=C2; F[6]:=B1; H[6]:=C2; F[7]:=A1; H[7]:=D2; F[8]:=B1; H[8]:=D2; F[9]:=C1; H[9]:=A2; F[10]:=C1; H[10]:=C2; F[11]:=C1; H[11]:=D2; F[12]:=C1; H[12]:=B2; F[13]:=D1; H[13]:=A2; F[14]:=D1; H[14]:=C2; F[15]:=D1; H[15]:=D2; F[16]:=D1; H[16]:=B2; end; 20:begin F[1]:=A1; H[1]:=A2; F[2]:=B1; H[2]:=A2; F[3]:=A1; H[3]:=B2; F[4]:=B1; H[4]:=B2; F[5]:=A1; H[5]:=E2; F[6]:=B1; H[6]:=E2; F[7]:=A1; H[7]:=C2; F[8]:=B1; H[8]:=D2; F[9]:=A1; H[9]:=D2; F[10]:=B1; H[10]:=C2; F[11]:=C1; H[11]:=A2; F[12]:=C1; H[12]:=C2; F[13]:=C1;
243
H[13]:=E2; F[14]:=C1; H[14]:=D2; F[15]:=C1; H[15]:=B2; F[16]:=D1; H[16]:=A2; F[17]:=D1; H[17]:=C2; F[18]:=D1; H[18]:=E2; F[19]:=D1; H[19]:=D2; F[20]:=D1; H[20]:=B2; end; 25:begin F[1]:=A1; H[1]:=A2; F[2]:=B1; H[2]:=A2; F[3]:=A1; H[3]:=B2; F[4]:=B1; H[4]:=B2; F[5]:=A1; H[5]:=E2; F[6]:=B1; H[6]:=E2; F[7]:=E1; H[7]:=A2; F[8]:=E1; H[8]:=B2; F[9]:=E1; H[9]:=E2; F[10]:=A1; H[10]:=C2; F[11]:=B1; H[11]:=D2; F[12]:=A1; H[12]:=D2; F[13]:=B1; H[13]:=C2; F[14]:=E1; H[14]:=C2; F[15]:=E1; H[15]:=D2; F[16]:=C1; H[16]:=A2; F[17]:=C1; H[17]:=C2; F[18]:=C1; H[18]:=E2; F[19]:=C1; H[19]:=D2; F[20]:=C1; H[20]:=B2; F[21]:=D1; H[21]:=A2; F[22]:=D1; H[22]:=C2; F[23]:=D1; H[23]:=E2; F[24]:=D1; H[24]:=D2; F[25]:=D1; H[25]:=B2; end; 27:begin F[1]:=A1; H[1]:=A2; L[1]:=A3; F[2]:=B1; H[2]:=A2; L[2]:=A3; F[3]:=A1; H[3]:=B2; L[3]:=A3; F[4]:=B1; H[4]:=B2; L[4]:=A3; F[5]:=A1; H[5]:=A2; L[5]:=B3; F[6]:=B1; H[6]:=A2; L[6]:=B3; F[7]:=A1; H[7]:=B2; L[7]:=B3; F[8]:=B1; H[8]:=B2; L[8]:=B3; F[9]:=A1; H[9]:=E2; L[9]:=E3; F[10]:=B1; H[10]:=E2; L[10]:=E3; F[11]:=E1; H[11]:=A2; L[11]:=E3; F[12]:=E1; H[12]:=B2; L[12]:=E3; F[13]:=E1; H[13]:=E2; L[13]:=A3; F[14]:=E1; H[14]:=E2; L[14]:=B3; F[15]:=A1; H[15]:=A2; L[15]:=E3; F[16]:=B1; H[16]:=A2; L[16]:=E3; F[17]:=A1; H[17]:=B2; L[17]:=E3; F[18]:=B1; H[18]:=B2; L[18]:=E3; F[19]:=A1; H[19]:=E2; L[19]:=A3; F[20]:=B1; H[20]:=E2; L[20]:=A3; F[21]:=A1; H[21]:=E2; L[21]:=B3; F[22]:=B1; H[22]:=E2; L[22]:=B3; F[23]:=E1; H[23]:=A2; L[23]:=A3; F[24]:=E1; H[24]:=B2; L[24]:=A3; F[25]:=E1; H[25]:=A2; L[25]:=B3; F[26]:=E1; H[26]:=B2; L[26]:=B3; F[27]:=E1; H[27]:=E2; L[27]:=E3; end; end; end; procedure GB4880; begin writeln(F0,'Математическая модель'); if X=3 then writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J),'); if X=9 then begin writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J)+'); writeln(F0,'+',B[4]:10,'*P(J)+',B[5]:10,'*I(J)*P(J)+'); writeln(F0,'+',B[6]:10,'*Q(J)+',B[7]:10,'*I(J)*Q(J)+'); writeln(F0,'+',B[8]:10,'*P(J)*K(J)+',B[9]:10,'*K(J)*Q(J),'); end; if X=27 then begin writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J)+'); writeln(F0,'+',B[4]:10,'*P(J)+',B[5]:10,'*I(J)*P(J)+'); writeln(F0,'+',B[6]:10,'*Q(J)+',B[7]:10,'*I(J)*Q(J)+'); writeln(F0,'+',B[8]:10,'*P(J)*K(J)+',B[9]:10,'*K(J)*Q(J)+'); writeln(F0,'+',B[10]:10,'*U(J)+',B[11]:10,'*I(J)*U(J)+'); writeln(F0,'+',B[12]:10,'*P(J)*U(J)+',B[13]:10,'*I(J)*P(J)*U(J)+'); writeln(F0,'+',B[14]:10,'*V(J)+',B[15]:10,'*I(J)*V(J)+');
244
writeln(F0,'+',B[16]:10,'*P(J)*V(J)+',B[17]:10,'*U(J)*K(J)+'); writeln(F0,'+',B[18]:10,'*U(J)*Q(J)+',B[19]:10,'*I(J)*P(J)*V(J)+'); writeln(F0,'+',B[20]:10,'*I(J)*U(J)*Q(J)+',B[21]:10,'*P(J)*U(J)*K(J)+'); writeln(F0,'+',B[22]:10,'*K(J)*V(J)+',B[23]:10,'*Q(J)*V(J)+'); writeln(F0,'+',B[24]:10,'*I(J)*Q(J)*V(J)+',B[25]:10,'*P(J)*K(J)*V(J)+'); writeln(F0,'+',B[26]:10,'*U(J)*K(J)*Q(J)+',B[27]:10,'*K(J)*Q(J)*V(J),'); end; if (X=3) or (X=27) or (X=9) then begin writeln(F0,'ГДЕ'); writeln(F0,'I(J)=F(J)^',J1:10,'+',V1:10,','); writeln(F0,'K(J)=F(J)^',O1:10,'+',U1:10,'*F(J)^',J1:10,'+',Q1:10); end; if (X=9) or (X=27) then begin writeln(F0,'P(J)=H(J)^',J2:10,'+',V2:10,','); writeln(F0,'Q(J)=H(J)^',O2:10,'+',U2:10,'*H(J)^',J2:10,'+',Q2:10); end; if X=27 then begin writeln(F0,'U(J)=L(J)^',J3:10,'+',V3:10,','); write(F0,'V(J)=L(J)^',O3:10,'+',O3:10,'+',U3:10,'*L(J)^'); writeln(F0,J3:10,'+',Q3:10); end; if X=4 then begin writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J)+'); writeln(F0,'+',B[4]:10,'*L(J),'); end; if X=5 then begin writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J)+'); writeln(F0,'+',B[4]:10,'*L(J)+',B[5]:10,'*M(J),'); end; if X=12 then begin writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J)+'); writeln(F0,'+',B[4]:10,'*P(J)+',B[5]:10,'*I(J)*P(J)+'); writeln(F0,'+',B[6]:10,'*Q(J)+',B[7]:10,'*I(J)*Q(J)+'); writeln(F0,'+',B[8]:10,'*P(J)*K(J)+',B[9]:10,'*K(J)*Q(J)+'); writeln(F0,'+',B[10]:10,'*U(J)+',B[11]:10,'*I(J)*U(J)+'); writeln(F0,'+',B[12]:10,'*K(J)*U(J),'); end; if X=15 then begin writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J)+'); writeln(F0,'+',B[4]:10,'*P(J)+',B[5]:10,'*I(J)*P(J)+'); writeln(F0,'+',B[6]:10,'*Q(J)+',B[7]:10,'*I(J)*Q(J)+'); writeln(F0,'+',B[8]:10,'*P(J)*K(J)',B[9]:10,'*K(J)*Q(J)+'); writeln(F0,'+',B[10]:10,'*U(J)+',B[11]:10,'*I(J)*U(J)+'); writeln(F0,'+',B[12]:10,'*K(J)*U(J)+',B[13]:10,'*V(J)+'); writeln(F0,'+',B[14]:10,'*I(J)*V(J)+',B[15]:10,'*K(J)*V(J),'); end;
245
if X=16 then begin writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J)+'); writeln(F0,'+',B[4]:10,'*P(J)+',B[5]:10,'I(J)*P(J)+'); writeln(F0,'+',B[6]:10,'*Q(J)+',B[7]:10,'*I(J)*Q(J)+'); writeln(F0,'+',B[8]:10,'*P(J)*K(J)+',B[9]:10,'*K(J)*Q(J)+'); writeln(F0,'+',B[10]:10,'*U(J)+',B[11]:10,'*I(J)*U(J)+'); writeln(F0,'+',B[12]:10,'*K(J)*U(J)+',B[13]:10,'*L(J)+'); writeln(F0,'+',B[14]:10,'*P(J)*L(J)+',B[15]:10,'*Q(J)*L(J)+'); writeln(F0,'+',B[16]:10,'*L(J)*U(J),'); end; if X=20 then begin writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J)+'); writeln(F0,'+',B[4]:10,'*P(J)+',B[5]:10,'*I(J)*P(J)+'); writeln(F0,'+',B[6]:10,'*Q(J)+',B[7]:10,'*I(J)+Q(J)+'); writeln(F0,'+',B[8]:10,'*P(J)*K(J)+',B[9]:10,'*K(J)*Q(J)+'); writeln(F0,'+',B[10]:10,'*U(J)+',B[11]:10,'*I(J)*U(J)+'); writeln(F0,'+',B[12]:10,'*K(J)*U(J)+',B[13]:10,'*V(J)+'); writeln(F0,'+',B[14]:10,'*I(J)*V(J)+',B[15]:10,'*I(J)*V(J)+'); writeln(F0,'+',B[16]:10,'*L(J)+',B[17]:10,'*P(J)*L(J)+'); writeln(F0,'+',B[18]:10,'*Q(J)*L(J)+',B[19]:10,'*L(J)*U(J)+'); writeln(F0,'+',B[20]:10,'*L(J)*V(J),'); end; if X=25 then begin writeln(F0,'Z(J)=',B[1]:10,'+',B[2]:10,'*I(J)+',B[3]:10,'*K(J)+'); writeln(F0,'+',B[4]:10,'*P(J)+',B[5]:10,'*I(J)*P(J)+'); writeln(F0,'+',B[6]:10,'*Q(J)+',B[7]:10,'*I(J)*Q(J)+'); writeln(F0,'+',B[8]:10,'*P(J)*Q(J)+',B[9]:10,'*K(J)*Q(J)+'); writeln(F0,'+',B[10]:10,'*U(J)+',B[11]:10,'*I(J)*U(J)+'); writeln(F0,'+',B[12]:10,'*K(J)*U(J)+',B[13]:10,'*V(J)+'); writeln(F0,'+',B[14]:10,'*I(J)*V(J)+',B[15]:10,'*I(J)*V(J)+'); writeln(F0,'+',B[16]:10,'*L(J)+',B[17]:10,'*P(J)*L(J)+'); writeln(F0,'+',B[18]:10,'*Q(J)*L(J)+',B[19]:10,'*L(J)*U(J)+'); writeln(F0,'+',B[20]:10,'*L(J)*V(J)+',B[21]:10,'*M(J)+'); writeln(F0,'+',B[22]:10,'*P(J)*M(J)+',B[23]:10,'*Q(J)*M(J)+'); writeln(F0,'+',B[24]:10,'*U(J)*M(J)+',B[25]:10,'*M(J)*V(J),'); end; if (X=4)or(X=5)or(X=12)or(X=15)or(X=16)or (X=20)or(X=20)or(X=25) then begin writeln(F0,'ГДЕ'); writeln(F0,'I(J)=F(J)^',J1:10,'+',V1:10,','); writeln(F0,'K(J)=F(J)^',O1:10,'+',U1:10,'*F(J)^',J1:10,'+',Q1:10); end; if (X=4)or(X=5)or(X=16)or(X=20)or(X=25)then begin writeln(F0,'L(J)=F(J)^',P1:10,'+',I1:10,'*F(J)^',O1:10,'+'); writeln(F0,'+',M1:10,'F(J)^',J1:10,'+',F1:10); end; if (X=5)or(X=25) then begin writeln(F0,'M(J)=F(J)^',T1:10,'+',G1:10,'*F(J)^',P1:10,'+'); writeln(F0,'+',H1:10,'*F(J)^',O1:10,'+',K1:10,'*F(J)^',I1:10,'+',L1:10); end; if (X=12)or(X=15) or (X=16) or (X=20) or (X=25) then
246
begin writeln(F0,'P(J)=H(J)^',J2:10,'+',V2:10,','); writeln(F0,'Q(J)=H(J)^',O2:10,'+',U2:10,'*H(J)^',J2:10,'+',Q2:10,','); writeln(F0,'U(J)=H(J)^',P2:10,'+',I2:10,'*H(J)^',O2:10,'+'); writeln(F0,'+',M2:10,'*H(J)^',J2:10,'+',F2:10); end; if (X=12) or (X=15) or (X=20) or (X=25) then begin writeln(F0,'V(J)=H(J)^',T2:10,'+',G2:10,'*H(J)^',P2:10,'+'); writeln(F0,'+',H2:10,'*H(J)^',O2:10,'+',K2:10,'*H(J)^',J2:10,'+'); writeln(F0,'+',L2:10); end; end;{GB4880} procedure GB7000; label 1; begin repeat if (X=3)or(X=4)or(X=5) then I0:=61; if (X=9)or(X=12)or(X=15)or(X=16)or(X=20)or(X=25) then I0:=62; if X=27 then I0:=63; if I0=61 then begin case X of 3: I0:=73; 4: I0:=74; 5: I0:=75; end; F3:=0; F4:=0; K5:=0; writeln('Фактор F(1)=F3+F4'); for J:=1 to X do begin F[J]:=0; Z[J]:=0; end; writeln('F4-шаг приращения фактора'); writeln('X-количество значений фактора'); writeln('Ввод принятых величин X F3 F4'); readln(X,F3,F4); writeln(F0,'F4-шаг приращения фактора'); writeln(F0,'X-количество значений фактора'); writeln(F0,'X=',X,' F3=',F3,' F4=',F4); for K5:=1 to X do begin F[K5]:=F3+K5*F4; writeln('F(',K5,')=',F[K5]); end;{for} case I0 of 73:begin GB4150; GB4390; end; 74:begin GB4210; GB4400; end; 75:begin GB4290; GB4420; end; end;{case} for K5:=1 to X do writeln('Z(',K5,')=',Z[K5]);
247
OUT_F_H_L(73); end;{if} if I0=62 then begin case X of 9: I0:=76; 12:I0:=77; 15:I0:=78; 16:I0:=79; 20:I0:=80; 25:I0:=81; end; F3:=0; F4:=0; H3:=0; H4:=0; K5:=0; writeln('Фактор F(1)=F3+F4'); writeln(F0,'Фактор F(1)=F3+F4'); for J:=1 to X do begin F[J]:=0; H[J]:=0; Z[J]:=0; end; writeln('F4-шаг приращения 1-го фактора'); writeln('Фактор H(1)=H3+H4'); writeln('H4-шаг приращения 2-го фактора'); writeln('X-количество значений 1,2-го фактора'); writeln('Ввод принятых величин X F3 F4 H3 H4'); writeln(F0,'F4-шаг приращения 1-го фактора'); writeln(F0,'Фактор H(1)=H3+H4'); writeln(F0,'H4-шаг приращения 2-го фактора'); writeln(F0,'X-количество значений 1,2-го фактора'); readln(X,F3,F4,H3,H4); writeln(F0,'X=',X,' F3=',F3,' F4=',F4); writeln(F0,'H3=',H3,' H4=',H4); for K5:=1 to X do begin F[K5]:=F3+K5*F4; writeln('F(',K5,')=',F[K5]); H[K5]:=H3+K5*H4; writeln('H(',K5,')=',H[K5]); case I0 of 76:begin GB4150; GB4170; GB4450; end; 77:begin GB4150; GB4250; GB4490; end; 78:begin GB4150; GB4340; GB4530; end; 79:begin GB4210; GB4250; GB4580; end; 80:begin GB4210; GB4340; GB4630; end; 81:begin GB4290; GB4340; GB4690; end;
248
end;{case} writeln('Z(',K5,')=',Z[K5]); end;{for} for K5:=1 to X do writeln('Z(',K5,')=',Z[K5]); OUT_F_H_L(74); end;{if} if I0=63 then begin K5:=0; F3:=0; F4:=0; H3:=0; H4:=0; L3:=0; L4:=0; writeln('Факторы F(1)=F3+F4, H(1)=H3+H4, L(1)=L3+L4'); writeln(F0,'Факторы F(1)=F3+F4, H(1)=H3+H4, L(1)=L3+L4'); for J:=1 to X do begin F[J]:=0; H[J]:=0; L[J]:=0; Z[J]:=0; end; X:=0; writeln('F4,H4,L4-шаг приращения 1,2,3-го фактора'); writeln('X-количество значений 1,2,3-го фактора'); writeln(F0,'F4,H4,L4-шаг приращения 1,2,3-го фактора'); writeln(F0,'X-количество значений 1,2,3-го фактора'); writeln('Ввод принятых величин'); writeln('X,F3,F4,H3,H4,L3,L4'); readln(X,F3,F4,H3,H4,L3,L4); writeln(F0,'X=',X,' F3=',F3,' F4=',F4); writeln(F0,'H3=',H3,' H4=',H4); writeln(F0,'L3=',L3,' L4=',L4); for K5:=1 to X do begin F[K5]:=F3+K5*F4; writeln('F(',K5,')=',F[K5]); H[K5]:=H3+K5*H4; writeln('H(',K5,')=',H[K5]); L[K5]:=L3+K5*L4; writeln('L(',K5,')=',L[K5]); GB4150; GB4170; GB4190; GB4770; end;{for} for K5:=1 to X do writeln('Z(',K5,')=',Z[K5]); OUT_F_H_L(75); end;{if} writeln('Выявление MAX Z(K5) и MIN Z(K5)'); writeln(F0,'Выявление MAX Z(K5) и MIN Z(K5)'); writeln('Ввод I0=90-продолжение'); K8:=0; K8:=Z[1]; readln(I0); for K5:=1 to X do if Z[K5]>=K8 then K8:=Z[K5]; writeln('MAX Z(K5)=',K8); writeln(F0,'MAX Z(K5)=',K8); for K5:=1 to X do if Z[K5]=K8 then begin writeln('MAX Z(',K5,')=',Z[K5]); writeln(F0,'MAX Z(',K5,')=',Z[K5]); end;
249
K7:=0; K7:=Z[1]; for K5:=1 to X do if Z[K5]<=K7 then K7:=Z[K5]; writeln('MIN Z(K5)=',K7); writeln(F0,'MIN Z(K5)=',K7); for K5:=1 to X do if Z[K5]=K7 then begin writeln('MIN Z(',K5,')=',Z[K5]); writeln(F0,'MIN Z(',K5,')=',Z[K5]); end; writeln('MIN Z(K5)=K7, MAX Z(K5)=K8'); writeln('K6(K5)=(Z(K5)+abs(K7))/(abs(K7)+abs(K8))'); writeln(F0,'MIN Z(K5)=K7, MAX Z(K5)=K8'); writeln(F0,'K6(K5)=(Z(K5)+abs(K7))/(abs(K7)+abs(K8))'); for K5:=1 to X do begin KK6[K5]:=(Z[K5]+abs(K7))/(abs(K7)+abs(K8)); writeln('K6(',K5,')=',KK6[K5]); writeln(F0,'K6(',K5,')=',KK6[K5]); end; J5:=0; J5:=abs(K7)/(abs(K7)+abs(K8)); writeln('J5:=abs(K7)/(abs(K7)+abs(K8))'); writeln('J5=',J5); writeln(F0,'J5:=abs(K7)/(abs(K7)+abs(K8))'); writeln(F0,'J5=',J5); writeln('Если I0=70, то повторение'); writeln('вычисления показателей'); writeln('и построение графиков'); writeln('Если I0=80, то построение графика'); readln(I0); if I0=70 then GB7000; 1: K0:=0; K3:=0; K4:=0; K4:=X; K7:=0; K8:=0; X0:=0; Y0:=0; writeln('Построение графика'); writeln('Зависимость KK6(K5) от фактора'); writeln('KK6(K5)-относительная величина показателя'); writeln('K5-номер величины фактора и показателя'); writeln('Величина фактора заданы'); writeln('Ввод X0-отступ вправо по оси X'); writeln('(Предпочтительно X=5)'); writeln('Y0-отступ вниз по оси Y'); writeln('(Предпочтительно Y0=180)'); writeln('K0-длина графика по оси X'); writeln('K3-высота графика по оси Y'); writeln('Было X0=',X0,' Y0=',Y0); writeln('Было K0=',K0,' K3=',K3); writeln('Введите X0 Y0 K0 K3'); readln(X0,Y0,K0,K3); grDriver := Detect; InitGraph(grDriver, grMode,''); cleardevice; for K5:=1 to K4 do begin KK7[K5]:=K5*K0; KK8[K5]:=K3*KK6[K5]; line(round(KK7[K5]-X0),round(Y0),
250
round(KK7[K5]-X0),round(Y0-KK8[K5])); end; J6:=0; J6:=X-1; J9:=0; K7:=0; K8:=0; J9:=K3*J5; for K5:=1 to J6 do begin KK7[K5]:=K5*K0; KK8[K5]:=K3*KK6[K5]; J7[K5]:=(K5+1)*K0; J8[K5]:=K3*KK6[K5+1]; line(round(KK7[K5]-X0),round(Y0), round(J7[K5]-X0),round(Y0)); line(round(KK7[K5]-X0),round(Y0-J9), round(J7[K5]-X0),round(Y0-J9)); line(round(KK7[K5]-X0),round(Y0-KK8[K5]), round(J7[K5]-X0),round(Y0-J8[K5])); end; readln; closegraph; writeln('Ввод I0=75, то повторение построения графика'); writeln('Ввод I0=85, то полное повторение построения графика'); writeln('Ввод I0=95, то выход из программы'); write('I0='); readln(I0); if I0=75 then goto 1; until not(I0=85); writeln(F0,'Построение графика'); writeln(F0,'Зависимость KK6(K5) от фактора'); writeln(F0,'KK6(K5)-относительная величина показателя'); writeln(F0,'K5-номер величины фактора и показателя'); writeln(F0,'Величина фактора задана'); writeln(F0,'Ввод X0-отступ вправо по оси X'); writeln(F0,'(Предпочтительно X=5)'); writeln(F0,'Y0-отступ вниз по оси Y'); writeln(F0,'(Предпочтительно Y0=180)'); writeln(F0,'K0-длина графика по оси X'); writeln(F0,'K3-высота графика по оси Y'); writeln(F0,'X0=',X0,' Y0=',Y0); writeln(F0,'K0=',K0,' K3=',K3); writeln(F0,'где'); writeln(F0,'X0-отступ вправо по оси X'); writeln(F0,'Y0-отступ вниз по оси Y'); writeln(F0,'K0-длина графика по оси X'); writeln(F0,'K3-длина графика по оси Y'); end;{GB7000} procedure tablF9; begin write(' Значения F7 для 5% уровня'); writeln('значимости'); write('┌───┬──────────────────────────────────'); writeln('───────────────────────┐'); write('│ │ F9 '); writeln(' │'); write('│F8 ├────┬─────┬─────┬─────┬────┬─────┬'); writeln('─────┬─────┬─────┬─────┤');
251
write('│ │ 2 │ 3 │ 4 │ 8 │ 11 │ 14 │'); writeln('15-16│19-20│ 24 │26-30│'); write('├───┼────┼─────┼─────┼─────┼────┼─────┼'); writeln('─────┼─────┼─────┼─────┤'); write('│ 2 │19.0│19.16│19.25│19.37│19.4│19.42│'); writeln('19.43│19.44│19.45│19.46│'); write('├───┼────┼─────┼─────┼─────┼────┼─────┼'); writeln('─────┼─────┼─────┼─────┤'); write('│ 3 │9.55│ 9.28│ 9.12│ 8.84│8.76│ 8.71│'); writeln(' 8.69│ 8.66│ 8.64│ 8.62│'); write('├───┼────┼─────┼─────┼─────┼────┼─────┼'); writeln('─────┼─────┼─────┼─────┤'); write('│ 4 │6.94│ 6.59│ 6.39│ 6.04│5.93│ 5.87│'); writeln(' 5.84│ 5.8 │ 5.77│ 5.74│'); write('├───┼────┼─────┼─────┼─────┼────┼─────┼'); writeln('─────┼─────┼─────┼─────┤'); write('│ 5 │5.79│ 5.41│ 5.19│ 4.82│ 4.7│ 4.64│'); writeln(' 4.6 │ 4.56│ 4.53│ 4.5 │'); write('├───┼────┼─────┼─────┼─────┼────┼─────┼'); writeln('─────┼─────┼─────┼─────┤'); write('│ 6 │5.14│ 4.76│ 4.53│ 4.15│4.03│ 3.96│'); writeln(' 3.92│ 3.87│ 3.84│ 3.81│'); write('└───┴────┴─────┴─────┴─────┴────┴─────┴'); writeln('─────┴─────┴─────┴─────┘'); end; procedure OUT_F_H_L(PR:integer); begin if PR=73 then begin writeln(F0,'┌────┬─────────────────────┐'); writeln(F0,'│ │ Значение │'); writeln(F0,'│ J ├──────────┬──────────┤'); writeln(F0,'│ │ F(J) │ Z(J) │'); end; if PR=74 then begin writeln(F0,'┌────┬────────────────────────────────┐'); writeln(F0,'│ │ Значение │'); writeln(F0,'│ J ├──────────┬──────────┬──────────┤'); writeln(F0,'│ │ F(J) │ H(J) │ Z(J) │'); end; if PR=75 then begin write(F0,'┌────┬──────────────────────────'); writeln(F0,'─────────────────┐'); write(F0,'│ │ Значение'); writeln(F0,' │'); write(F0,'│ J ├──────────┬──────────┬────'); writeln(F0,'──────┬──────────┤'); write(F0,'│ │ F(J) │ H(J) │ '); writeln(F0,'L(J) │ Z(J) │'); end; if PR=73 then begin for J:=1 to X do begin writeln(F0,'├────┼──────────┼──────────┤'); writeln(F0,'│ ',J:2,' │',F[J]:10,'│',Z[J]:10,'│');
252
end; writeln(F0,'└────┴──────────┴──────────┘'); end; if PR=74 then begin for J:=1 to X do begin write(F0,'├────┼──────────┼──────────┼'); writeln(F0,'──────────┤'); write(F0,'│ ',J:2,' │',F[J]:10,'│',H[J]:10); writeln(F0,'│',Z[J]:10,'│'); end; writeln(F0,'└────┴──────────┴──────────┴──────────┘'); end; if PR=75 then begin for J:=1 to X do begin write(F0,'├────┼──────────┼──────────┼'); writeln(F0,'──────────┼──────────┤'); write(F0,'│ ',J:2,' │',F[J]:10,'│',H[J]:10,'│'); writeln(F0,L[J]:10,'│',Z[J]:10,'│'); end; write(F0,'└────┴──────────┴──────────┴'); writeln(F0,'──────────┴──────────┘'); end; end; end.
253
ТЕМЫ ДЛЯ КОНТРОЛЬНЫХ ЗАДАНИЙ Представление информации в ЭВМ. Реализация цикла «для» в языке программирования Турбо-бейсик. Назначение ЭВМ. Основные устройства ЭВМ. Оператор ввода данных в языке программирования Турбо-бейсик. Единицы измерения информации. Оператор печати PRINT в языке программирования Турбо-бейсик. Системы счисления. Оператор цикла с предусловием в языке программирования Турбобейсик. 9. Средства общения человек и ЭВМ. 10. Организация цикла. 11. Программирование, как вид человеческой деятельности. 12. Операторы присваивания в языке программирования Турбо-бейсик. 13. Этапы решения с помощью ЭВМ. 14. Операторы PRINT, USING в языке программирования Турбо-бейсик. 15. Алгоритмы и их свойства. 16. Реализация ветвлений в языке программирования Турбо-бейсик. 17. Средства описания алгоритмов. 18. Организация цикла «пока» с помощью операторов условного и безусловного переходов. 19. Блок-схема (графическое представление описания алгоритма). 20. Операторы выбора ON, SELECT в языке программирования Турбобейсик. 21. Алгоритмический язык. 22. Использование оператора DRAW для построения ломанных. 23. Команда повторения (цикл «пока»). 24. Язык программирования Турбо-бейсик. Алфавит. Переменные и константы. 25. Команда повторения (цикл «для»). 26. Операторы LOCATE, WRITE. 27. Команда ветвления и ее виды. 28. Запись арифметических выражений на языке программирования Турбо-бейсик. 29. Типы величин. Отношения между величинами. Условия. 30. Сложенные циклические процессы в языке программирования Турбо-бейсик. 31. Литейные алгоритмы. 32. Массивы. Одномерные массивы. 33. Алгоритмы разветвляющей структуры. 1. 2. 3. 4. 5. 6. 7. 8.
254
34. Символьные переменные и функции. 35. Алгоритмы циклической структуры. 36. Массивы. Двумерные массивы. 37. История развития вычислительной техники. 38. Графика Турбо-бейсика: операторы COLOR, SCREEN, PRESENT, POINT. 39. Роль ЭВМ в современном обществе. 40. Перестановка элементов одномерного массива. 41. Алгоритмы работы с табличными величинами. 42. Специальные приемы с целыми числами. 43. Алгоритмы работы с литерными величинами. 44. Организация ввода-вывода элементов массива. 45. Команда присваивания. 46. Преобразование двумерного массива. 47. Исполнение алгоритмов. 48. Операции над символьными переменными. 49. Построение алгоритмов для решения задач. 50. Построение дуг и секторов в языке программирования Турбо-бейсик. 51. Обработка информации на ЭВМ. 52. Графика Турбо-бейсика: операторы LINE, CIRCLE, PAINT. 53. Информация – первичное понятие информатики. 54. Организация диалога в языке программирования Турбо-бейсик. 55. Обработка элементов одномерного массива. 56. Потоки информации. Информационные сети. 57. Обработка элементов двумерного массива. 58. Программы для решения литейного производства на ЭВМ. 59. Программы математического моделирования. 60. Оптимизация и прогнозирование процессов с применением ЭВМ. 61. Решение изобретательских задач с использованием вычислительной техники.
255
КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Почему исходное уравнение для выявления математической модели выбрано в виде ряда (многочлена), почему оно называется уравнением регрессии, а его коэффициенты – коэффициентами регрессии? 2. В каких случаях факторы, влияющие на показатель процесса, считаются существенными, как производится выбор интервалов варьирования факторов? 3. Зачем выполняется регрессионный анализ? 4. Почему показатели степени факторов надо принимать буквенными? 5. В каких случаях матрица становится ортогональной, зачем надо делать матрицу ортогональной, от чего зависит количество коэффициентов ортогональности? 6. На основе чего и как выявляются коэффициенты ортогональности? 7. Можно ли определять коэффициенты регрессии независимо друг от друга, если матрица не будет ортогональной? 8. Почему рационально выполнять параллельные опыты на среднем уровне факторов, сколько надо проводить таких опытов, как определяется дисперсия опытов? 9. В чем преимущества независимого определения коэффициентов регрессии? 10. Почему дисперсия в определении коэффициентов регрессии рассчитываются независимо друг от друга, и как это делается? 11. Как определяют расчетные t-критерии, с чем их сравнивают, в каких случаях коэффициенты регрессии – значимые, а в каких – незначимые? сравнивают введенные величины показателей с 12. Зачем рассчитанными (по разностям и в процентах)? 13. О чем свидетельствует незначимость коэффициентов регрессии? 14. Как определяется адекватность и точность математической модели? выявляются уравнения регрессии двухфакторного, 15. Как трехфакторного, многофакторного процесса? 16. Почему совпадает количество опытов в плане и количество членов в уравнении регрессии? 17. Почему для каждого фактора отдельно выявляются коэффициенты ортогонализации? 18. Почему надо выполнять расчеты на ЭВМ с такой точностью, какую может обеспечить вычислительная машина? 19. В каких случаях рационально применять язык программирования Бейсик?
256
20. Каков алгоритм математического моделирования, почему надо до рассмотрения компьютерных программ изучить язык программирования Бейсик, можно ли не зная операторов языка Бейсик рассматривать и анализировать программы на этом языке? каких частей состоят программы математического 21. Из моделирования? 22. Почему расчеты по математическим моделям надо выполнять, используя общую программу математического моделирования? 23. Как выполняются расчеты по математическим моделям и графические построения? 24. Каковы преимущества представления результатов расчетов в абсолютных и относительных величинах, как выявляются максимальные и минимальные величины? 25. Почему выполнение программ надо заносить в файлы? 26. Можно ли оптимизировать, прогнозировать процессы, изобретать на основе моделирования? 27. Как выявляются факторы, существенно влияющие на показатели процесса, как можно уменьшить количество факторов, что дает применение комплексных факторов? 28. Почему надо изменять масштабы при графических построениях и что при этом достигается? 29. В каких случаях следует применять разные методы моделирования? 30. Какова эффективность моделирования, в чем заключаются преимущества изложенных выше методик математического моделирования? 31. Зачем в компьютерных программах предусмотрены различные переходы и можно ли их применять, если использовать не язык Бейсик, а другие языки программирования? 32. Что дает применение в компьютерных программах управляющей величины Х? 33. Чем отличается аппроксимация от математического моделирования, в каких случаях надо применять многократно аппроксимацию? 34. Какие части компьютерных программ относятся к аппроксимации, выявлению математической модели, выполнению расчетов по математической модели, поиску максимальных и минимальных величин показателей, графическому построению зависимости показателя от фактора? 35. Почему по программе строятся графики и как это выполняется? 36. Можно ли многократно изменять масштабы графических построений и если можно, то зачем это надо делать?
257
37. Почему для выбора показателей степени фактора в исходном уравнении надо несколько раз использовать часть компьютерной программы, которая предусматривает аппроксимацию и в каких случаях после рассмотрения результатов аппроксимации можно переходить к математическому моделированию? 38. Что дает использование аппроксимации в комплексных компьютерных программах, как проверяется точность полученных результатов аппроксимации, а затем и математических моделей? 39. Почему использование файлов упрощает компьютерные программы на языке Бейсик, как выполняется анализ результатов выполнения программ при рассмотрении файлов, можно ли из файлов исключить ненужные сведения и добавлять необходимые для разъяснения полученных данных? 40. Как достигается универсальность компьютерных программ? 41. Почему математическое моделирование позволяет выполнять фундаментальные научные исследования, какие результаты моделирования рационально вносить в научные отчеты и использовать при разработке изобретений?
258
ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
1. Какие известны по литературным источникам методы математического моделирования, их недостатки? 2. Как устранены недостатки существующих методов математического моделирования в изложенной выше разработке? 3. Что такое математическая модель, зачем надо ее выявлять и как ее анализировать? 4. Как производится выбор показателей процесса, существенных факторов, планов проведения экспериментов, как выполняются эксперименты для математического моделирования? 5. Почему для выявления математических моделей выбраны уравнения в виде рядов (многочленов), как называются эти уравнения и коэффициенты при каждом члене многочлена? 6. Как объяснить применение при математическом моделировании понятия регрессии? 7. Соответствует ли количество коэффициентов регрессии в уравнении регрессии количеству уровней фактора (для однофакторного процесса)? 8. В каких случаях матрицы определения коэффициентов регрессии становятся ортогональными и зачем надо добиваться ортогональности матриц? 9. Сколько надо определить коэффициентов ортогонализации, если принять два, три, четыре, пять уровней фактора (для однофакторного процесса)? 10. Почему нерационально применять больше пяти уровней фактора? 11. Равно ли количество членов многочлена и коэффициентов регрессии количеству опытов по плану проведения экспериментов (при полном факторном эксперименте)? 12. Почему показатели степени фактора в уравнении регрессии приняты буквенными? 13. Можно ли изменять величины показателей степени фактора при выявлении математических моделей и если можно, то в каких случаях, сколько раз, какие величины показателей степени рационально принимать первоначально и в последующем, что является критерием правильности выбора показателей степени фактора? 14. Как определяются коэффициенты регрессии при ортогональности матрицы? 15. Какие преимущества достигаются при определении коэффициентов регрессии независимо друг от друга?
259
16. По какому критерию выявляется статистическая значимость коэффициентов регрессии? 17. Как выявляется дисперсия опытов, почему лучше проводить серию параллельных одинаковых опытов на среднем уровне факторов, как определить средние уровни факторов, сколько надо выполнять одинаковых опытов на среднем уровне факторов? 18. По какой формуле выполняется расчет дисперсии опытов? 19. Почему дисперсии в определении коэффициентов регрессии рассчитываются независимо друг от друга, является ли это следствием ортогональности матриц? 20. По какому критерию проверяется адекватность математической модели? 21. Как оценивается фактическая точность математической модели? 22. Можно ли использовать для выявления математической модели комплексные факторы и факторы в виде зависимости одного фактора от другого или ряда других факторов, каковы особенности анализа математической модели при комплексных факторах? 23. Как выявляются уравнения регрессии при влиянии на показатель двух и трех факторов? 24. Почему рационально применять различные методы моделирования (моделирование на основе теории подобия, теории размерностей, математическое моделирование) и как следует выполнять в этом случае анализ результатов моделирования? 25. Что является критерием истины и как подтвердить истинность данных, рассчитанных по математическим моделям? 26. Какие особенности моделирования многофакторного процесса? 27. Каков алгоритм математического моделирования для программирования применительно к использованию ЭВМ? 28. В чем заключаются преимущества языка программирования Бейсик, какие операторы языка Бейсик использованы в разработанных программах? 29. Можно ли совершенствовать, оптимизировать, прогнозировать, автоматизировать процессы, разрабатывать изобретения на основе математических моделей? 30. Как достигается экономичность исследовательской работы при последующем математическом моделировании? 31. В чем заключается фундаментальность исследований и какое значение имеет математическое моделирование при выполнении таких исследований? 32. Необходимо ли применять математическое моделирование при выполнении научно-исследовательских, диссертационных работ, каковы
260
могут быть направления дальнейшего совершенствования методики математического моделирования?
261
ЛИТЕРАТУРА 1. Черный А.А. Математическое моделирование применительно к литейному производству: Учебн. пособие. - Пенза: Пенз. гос. ун-та, 1998. – 121 с. 2. Фигурнов В.Э. IBM PC для использования. Краткий курс. – М.: ИНФРА-М, 1997. – 480 с. 3. Программирование на языке Бейсик для персональных ЭВМ/ З.П. Вострикова, О.Ю. Вострикова, С.С. Туева. – М.: Машиностроение, 1993. – 352 с. конструкционных материалов: Учебник для 4. Технология машиностроительных специальностей вузов/ А.М. Дальский, И.А. Артунова, Т.М. Барсуков идр.; Под общей редакцией А.М. Дальского. 2-е изд., переработанное и дополненное – М.: Машиностроение, 1985. – 448 с. А.А. Практика планирования экспериментов и 5. Черный математического моделирования процессов. – Саратов: Изд-во Сарат.ун-та, 1984. – 103 с. 6. Каймин В.А. Информатика: Учебник. – 2-е изд., перераб. и доп. – М.: ИНФРА _ М, 2002. – 272 с. – (Серия « Высшее образование). 7. Фридланд А.Я., Ханамирова Л.С., Фридланд И.А. Информатика. Толковый словарь основных терминов. Издание 2-е. – М., «Издательство ПРИОР», 1998. – 240 с. 8. Маковский В.А., Похлебаев В.И. Бейсик. – М.: Издательство стандартов, 1992. – 75 с. – (Я работаю на персональном компьютере; Вып.3). 9. Маковский В.А., Похлебаев В.И. Первые встречи с IBM PC. – М.: Издательство стандартов, 1992. – 48 с. – (Я работаю на персональном компьютере; Вып.1). 10. Маковский В.А., Похлебаев В.И. IBM PC на моем рабочем месте. – М.: Издательство стандартов, 1992. – 46 с. – (Я работаю на персональном компьютере; Вып.5). 11. Маковский В.А., Похлебаев В.И. Текстовой процессор ЛЕКСИКОН. – М.: Издательство стандартов, 1992. – 31 с. – (Я работаю на персональном компьютере; Вып.4). 12. Фаронов В.В. Турбо Паскаль (в 3-х книгах. Книга 1. Основы Турбо Паскаля. – М.: Учебно-инженерный центр « МВТУ-ФЕСТО ДИДАКТИК», 1992. – 304 с. 13. Ступин Ю.В., Семененко В.А. Основы программирования: Учебное пособие для ПТУ. – М.: Машиностроение, 1986. – 240 с.
262
14. Курдюмов А.В., Тен Э.Б. Расчет оптимального состава шихты на ЭВМ. – М.: «Металлургия», 1984. – 73 с. 15. Михайлов В.Ю., Степаннинко В.М. Современный Бейсик для IBM PC. Среда, язык, программирование. – М.: Изд-во МАИ, 1993. –288 с. 16.Черный А.А. Математическое моделирование при планировании экспериментов на двух уровнях факторов: учебное пособие / А.А. Черный. – Пенза: Информационно-издательский центр ПГУ, 2006. – 36 с. 17. Черный А.А. Математическое моделирование при планировании экспериментов на трех уровнях факторов: учебное пособие / А.А. Черный. – Пенза: Информационно-издательский центр ПГУ, 2006. – 80 с. 18. Черный А.А. Математическое моделирование при планировании экспериментов на четырех уровнях факторов: учебное пособие / А.А. Черный. – Пенза: Информационно-издательский центр ПГУ, 2006. – 92 с. 19. Черный А.А. Математическое моделирование при планировании экспериментов на пяти уровнях факторов: учебное пособие / А.А. Черный. – Пенза: Информационно-издательский центр ПГУ, 2006. – 40 с. 20. Черный А.А. Математическое моделирование при планировании экспериментов на трех, четырех, пяти уровнях факторов и при неодинаковом количестве уровней первого и второго факторов: учебное пособие / А.А. Черный. – Пенза: Информационноиздательский центр ПГУ, 2006. – 56 с. 21. Черный А.А. Применение математического моделирования для прогнозирования свойств сплавов // Математическое и компьютерное моделирование естественнонаучных и социальных проблем: сборник статей I Международной научно-технической конференции молодых специалистов, аспирантов и студентов. – Пенза: Пензенский государственный университет, АНОО «Приволжский Дом знаний», 2007. – С. 135-139. 22. Черный А.А. Математическое моделирование в литейном производстве: учебное пособие / А.А. Черный. – Пенза: Информационно-издательский центр ПГУ, 2007. – 192 с. 23. Черный А.А. Компьютерные программы математического моделирования и расчетов по математическим моделям: Учеб. пособие. – Пенза: Изд-во Пенз. гос. ун-та, 2006. – 197 с. (Электронное учебное пособие).
263
24.Маковский В.А., Похлебаев В.И. Бейсик. – М.: Издательство стандартов, 1992. – 75 с. (Я работаю на персональном компьютере; Вып. 3). 25.Фаронов В.В. Турбо-Паскаль (в 3-х книгах). Книга 1. Основы ТурбоПаскаля. – М.: Учебно-инженерный центр «МВТУ-ФЕСТО ДИДАКТИК», 1992. – 304 с. 26.Черный А.А. Компьютерные дополненные программы математического моделирования и расчетов по математическим моделям: учебное пособие/А.А. Черный.-Пенза: Информационноиздательский центр ПензГУ, 2008.-356с.
264
СОДЕРЖАНИЕ ВВЕДЕНИЕ ………………………………………………………………..3 СОСТАВЛЯЩИЕ ЧАСТИ КОМПЬЮТЕРА И ПЕРИФЕРИЙНЫЕ УСТРОЙСТВА ……………………………………………………………4 Состав персонального компьютера …………………………………….. Достоинства CD-ROM …………………………………………………… Записывающие оптические и магнитооптические накопители ………. Накопители на магнитной ленте (стримеры) и накопители на сменных дисках …………………………………………………………... Назначение управляющих клавиш ………………………………………. Периферийные устройства ……………………………………………… Интерпретаторы …………………………………………………………. Компиляторы …………………………………………………………….. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ …………..22 Машино-ориентированные языки ……………………………………… Машинный язык ………………………………………………………… Языки символического кодирования ………………………………….. Автокады ………………………………………………………………… Макрос …………………………………………………………………… Машино-независимые языки …………………………………………… Проблемно-ориентированные языки …………………………………… Универсальные языки …………………………………………………… Диалоговые языки ………………………………………………………. Непроцедурные языки ………………………………………………….. РАЗВИТИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ …………………….27 Ассемблер ………………………………………………………………… Лисп ………………………………………………………………………. Фортран ………………………………………………………………….. Бейсик ……………………………………………………………………. Рефал …………………………………………………………………….. Пролог и Пролог ++ ……………………………………………………… Лекс ………………………………………………………………………. Си ………………………………………………………………………… Си ++………………………………………………………………………. СОСТАВНЫЕ ЭЛЕМЕНТЫ СИСТЕМ ПРОГРАММИРОВАНИЯ ….37 МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ………………………….44
265
ОСОБЕННОСТИ РАБОТЫ НА ПЕРСОНАЛЬНЫХ ЭВМ ……………48 ОПЕРАТОРЫ ЯЗЫКА ПРОГРАМИРОВАНИЯ БЕЙСИК ……………54 ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ ………………………….70 ОСНОВНЫЕ ЭТАПЫ ПОДГОТОВКИ К РЕШЕНИЮ ЗАДАЧ НА ЭВМ ……………………………………………………………………… 82 ПРОГРАММА МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ НА ЯЗЫКЕ БЕЙСИК …………………………………………………… 86 ВЫЯВЛЕНИЕ МАТЕМАТИЧЕСКОЙ МОДЕЛИ ГАЗОДИНАМИЧЕСКОГО ПРОЦЕССА В ШАХТЕ ГАЗОВОЙ ВАГРАНКИ…………91 ПРОГРАММЫ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ НА ОСНОВЕ ПРОГРАММ VN0, VL0 С ДОБАВЛЕНИЯМИ ПОДПРОГРАММ СИСТЕМНОГО ПРЕДСТАВЛЕНИЯ ДЛЯ АНАЛИЗОВ РЕЗУЛЬТАТОВ РАСЧЕТОВ……………………… 112 ПРОГРАММА NW3 (планы 31, 32, 33, Х = 3, Х = 9, Х =27)……………..113 ПРОГРАММА NW4 (планы 41, 42, Х = 4, Х = 16)……………………….125 ПРОГРАММА NW5 (планы 51, 52, Х = 5, Х = 25)……………………….135 ПРОГРАММА NW6 (планы 31, 41, 51, 3 · 4, 3 · 5, 4 · 5, Х = 3, Х = 4, Х = 5, Х = 12, Х = 15, Х = 20)………………………………………146 ПРОГРАММА LV1 (планы 21, 22, 23, 24, 25, Х = 2, Х = 4, Х = 8, Х = 16, с добавлением подпрограмм, Х = 32 – без добавления подпрограмм)…………………………………………………161 ПРОГРАММА LV0 (планы 21, 22, 23, 24, 25, Х = 2, Х = 4, Х = 8, Х = 16, Х = 32, с добавлением подпрограммы для Х = 32)………………176 ПРОГРАММА НА ЯЗЫКЕ ТУРБО-ПАСКАЛЬ, РАЗРАБОТАННАЯ НА ОСНОВЕ ПРОГРАММЫ GL3………………………………………..194 ПРОГРАММА НА ЯЗЫКЕ ТУРБО-ПАСКАЛЬ, РАЗРАБОТАННАЯ НА ОСНОВЕ ПРОГРАММЫ GN3………………………………..………..219 ТЕМЫ ДЛЯ КОНТРОЛЬНЫХ ЗАДАНИЙ ……………………………. .254 КОНТРОЛЬНЫЕ ВОПРОСЫ……………………………………………..256
266
ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ…………………………………… 259 ЛИТЕРАТУРА …………………………………………………………… 262
267
Анатолий Алексеевич Черный ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА В ИНЖЕНЕРНЫХ РАСЧЕТАХ И МОДЕЛИРОВАНИИ
_____________________________________________________ Издательство Пензенского государственного университета. Пенза, Красная, 40