Компьютерная технология играет решающую роль в численном исследовании различных математических моделей, которые разрабатываются, например, в атомной и ядерной физике, в гидродинамике атмосферы и океана, в обороне, при освоении космоса и т. д. Многие из таких моделей настолько сложны, что ручные вычисления по ним заняли бы сотни, тысячи и даже миллионы лет математическая; (даже при большом количестве расчетчиков).
Математической моделью называют систему математических соотношений, описывающих процесс или явление, а операции по составлению и изучению таких моделей называют математическим моделированием.
Например, второй закон Ньютона можно изложить словами, а можно описать математической моделью: F = та (это модель равноускоренного прямолинейного движения). Математические модели широко применяются не только в физике и технике, но и в других областях: в социологии, экономике, биологии, географии, экологии и др. Например, в Вычислительном центре Академии наук под руководством академика Н.Н.Моисеева была разработана математическая модель возможных последствий ядерной войны на планете Земля. На основании этой модели, с использованием мощных компьютеров, были проведены численные эксперименты, которые показали, как наивны надежды некоторых людей пережить возможную катастрофу. Этими экспериментами впервые доказано, что людей погубит не ударная волна, не световое излучение и радиация (от которых можно как-то защититься). Людей погубит... мороз, «ядерная зима», которая наступит на многие годы в результате подъема в атмосферу огромных облаков сажи и пепла от взрывов и пожаров. Эта сажа будет задерживать солнечные лучи, и температура на Земле резко понизится.
Эту модель следует называть именно математической, хотя она и описывает физический процесс. Существует термин «физическая модель», которым обозначают прибор или установку, имитирующие тот или иной физический процесс.
Информационные модели. В информатике и компьютерной технологии широко используются так называемые информационные. модели объектов, процессов, явлений. Что такое информационная модель? В целом это очень широкое понятие. Трудно дать общее, строгое и в то же время понятное определение информационной модели. Иногда информационной моделью называют просто набор неких величин, которые содержат необходимую нам информацию об объекте, системе объектов, процессе или явлении. Под это определение попадает очень широкий класс информационных моделей (например, модель города, исторической эпохи, транспортной сети и т. д.). Фундаментальные понятия этих моделей: объект (нечто, информационная; существующее и различимое; например, видеокассета), атрибут (свойство, характеристика объекта; например, название фильма), значение атрибута (например, «Новые Центурионы»).
Информационной моделью объекта или набора объектов -совокупность атрибутов (характеристик) данного объекта (объектов) вместе с числовыми или иными значениями этих атрибутов.
Алгоритмизация и программирование – основа современной информационной технологии
Алгоритм — это конечная последовательность однозначных предписаний, исполнение которых позволяет с помощью конечного числа шагов получить решение задачи, однозначно определяемое исходными данными.
Термин «алгоритм» — транскрипция имени великого узбекского математика Мухаммеда аль-Хорезми (Мухаммеда из Хорезма, области в нынешней республике Узбекистан). Мухаммед аль-Хорезми еще в IX веке разработал правила выполнения четырех действий арифметики. Многие годы понятие «алгоритм» использовалось математиками для описания правил решения математических задач. Например, существуют алгоритм вычисления квадратного корня положительного числа, алгоритм нахождения наибольшего общего делителя двух чисел и многие другие. Однако не следует считать алгоритм чисто математическим понятием. Каждый из нас с раннего детства, даже не замечая этого, ежедневно решает задачи, для описания которых используется тот или иной алгоритм, сформулированный в виде конечной последовательности однозначных предписаний.
Входя в кабину телефона-автомата, вы видите на стене четкий алгоритм, однозначно описывающий ваши действия, цель которых — разговор с другом: снять трубку, опустить монету, набрать номер и т. д. Носителями алгоритмов являются фоторецептурные справочники, инструкции по использованию бытовой аппаратуры (от утюга до видеомагнитофона), медицинские рекомендации и описания гимнастических упражнений, даже банки и упаковки с продуктами (например, приготовленная чашка кофе — результат исполнения алгоритма). Каждый алгоритм создается конкретным автором (человеком или группой людей) в результате обобщения прошлого опыта или технологических разработок и рассчитан на конкретного исполнителя. Алгоритмы «бытовой сферы» (иногда их называют интуитивными) всегда предполагают определенный уровень предварительной подготовки исполнителя и потому излагаются приблизительно, без перечисления ряда промежуточных операций, способ выполнения которых (тоже алгоритм!) избирается самим исполнителем.
Автор кулинарного рецепта предполагает, что хозяйка умеет включать и выключать газовую или электрическую плиту, регулировать нагрев; в инструкции по применению водоэмульсионной краски не описывается техника вскрытия банки (взять консервный нож или поддеть крышку тупым предметом...) и т. д.
Не только в быту, но и в технике, и даже в математике многие алгоритмы формулируются неточно, приблизительно. Например, цель математика — описать последовательность операций в общей и абстрактной форме: математический алгоритм не рассматривает способы подготовки и контроля исходных данных, форматы представления результатов, действия при особых ситуациях (например, если делитель слишком мал или множитель слитком велик). При подготовке алгоритмов, исполнителем которых является компьютер, приходится учитывать, что уровень его предварительной подготовки близок к нулю, что самый «умный» компьютер «глупее» шестилетней девочки. Процесс подготовки задания для компьютера можно разделить на два общих этапа:
1) создание укрупненного алгоритма (требования к исходным данным и результатам, постановка задачи, описание точной схемы решения с указанием всех особых ситуаций);
2) изложение укрупненного алгоритма на языке, понятном машине, — иначе, составление программы задания (задачи).
При таком подходе необходимо:
1) создать строгую систему условных обозначений для записи команд в понятной для человека форме (язык программирования);
2) создать программу-посредника, которая переводила бы такие команды на язык, понятный машине.
Программа—набор инструкций на машинном языке, хранящийся в виде файла на диске, который можно загрузить в РС для выполнения.
Раньше программы приходилось писать в машинных кодах. Сейчас существует множество языков программирования. Hа языке программирования можно писать множество программ, пользуясь единственной программой-переводчиком. «Грамматические» правила языка программирования формулируются предельно четко и не допускают вольного расположения отдельных элементов команды и знаков препинания (иначе программа-посредник «не поймет» ваши указания). Каждая команда имеет строго определенный синтаксис (правила записи). Например, если установлено, что условие «если» надо писать по-английски (if) нельзя ставить запятую, то всякая иная запись такой команды будет воспринята программой-посредником как ошибка. Команды на языке программирования часто называют операторами или инструкциями. Последовательность таких команд, реализующих тот или иной алгоритм, называют программой на исходном языке или просто исходным текстом. Это напоминает нам, что, кроме исходного текста, конкретная программа может иметь еще и машинный код, который непосредственно исполняется на машине. Существует два типа программ-посредников, работающих с исходными текстами. Программа-компилятор (от слова compile — составлять, собирать) переводит исходный текст в машинный код и записывает его на диск в форме исполняемого (загрузочного) файла. После этого программа выполняется независимо от исходного текста. Раньше программы-компиляторы называли просто и точно — трансляторами (переводчиками). Программа-интерпретатор всегда работает совместно с исходным текстом. Она разбирает каждую инструкцию исходного текста (интерпретирует ее) и немедленно исполняет (т. е. файл на машинном языке не создается). Программа в режиме интерпретации работает гораздо медленнее, чем такая же программа в машинном коде. Это связано с тем, что каждую инструкцию приходится разбирать во время выполнения (а не заранее, как при компиляции). Многие инструкции в программе выполняются многократно, — и при каждом выполнении интерпретируются заново. Поэтому всюду, где возможно, стремятся заменить режим интерпретации режимом компиляции. Правда, интерпретация имеет и свои преимущества: с ее помощью проще отлаживать программу. Иногда пользуются режимом «псевдокомпиляции»: ускоряют интерпретацию за счет предварительного запоминания тех или иных элементов разобранных команд в памяти машины. В наше время машинные коды не используются, и каждая программа для компьютера составляется на том или ином языке программирования. Существует очень много языков, однако все они, как правило, содержат средства описания данных, арифметические операторы (подобные с = а+Ь), средства управления и организации циклов (подобные if), средства ввода и вывода информации. Многие языки пользуются похожими принципами организации программ, но — разным синтаксисом.. Чем принципиально отличаются естественные языки от языков программирования? Естественные языки возникают и развиваются по объективным законам, не зависящим от воли людей. Если вы изучите, например, английский язык, вам уже проще освоить, скажем, немецкий: вы приобрели опыт и интуицию, которые позволят вам хотя бы иногда догадываться о значении тех или иных слов, о связях слов и т. п. Слова и синтаксис языков программирования придумываются искусственно. Например, вы освоили язык С и твердо знаете, что смысловые блоки исходного текста (составные операторы) выделяются фигурными скобками: {...}.