Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
studentam.doc
Скачиваний:
3
Добавлен:
13.11.2019
Размер:
829.95 Кб
Скачать

Информатика — это наука, изучающая все аспекты получения, хранения, преобразования, передачи и использования информации. Информатика стала развиваться с середины нашего столетия, когда появились специальные устройства — компьютеры, ориентированные на хранение и преобразование информации, и произошла компьютерная революция.

История создания ЭВМ

 

. Многие тысячи лет назад для счета использовались счетные палочки, камешки и т.д. Одно из первых устройств — абак, похожее на русские счеты, было создано около пяти тысяч лет назад в Вавилоне (на территории нынешних Ирана и Ирака).

В 1614 г. шотландский математик Джон Непер (1550—1617) изобрел таблицы логарифмов. Принцип их заключается в том, что каждому числу соответствует свое специальное число — логарифм. Логарифмы очень упрощают деление и умножение. Например, для умножения двух чисел достаточно сложить их логарифмы. Результат находят в таблице логарифмов.

В 1642 г. французский математик Блез Паскаль (1623—1662) сконструировал счетное устройство, чтобы облегчить труд своего отца — налогового инспектора, которому приходилось делать немало сложных вычислений. Данное устройство представляло собой смонтированную в деревянном корпусе систему зубчатых колес вращающих наборные диски с цифрами. Результат вычислений считывался в специально прорезанных в корпусе окошечках.

В 1673 г. Готфрид Вильгельм Лейбниц сконструировал арифмометр, позволяющий механически выполнять четыре арифметических действия.

В 1833 г. английский математик Чарльз Бэббидж детально разработал проект аналитической машины ("вычислительного помощника"), которая должна была стать первой универсальной вычислительной машиной выполняющей вычисления без участия человека. Для этого она должна была уметь исполнять программы, вводимые с помощью перфокарт (карт из плотной бумаги с информацией, наносимой с помощью отверстий, они в это время уже широко употреблялись в ткацких станках), и иметь «склад» для запоминания данных и промежуточных результатов (в современной терминологии — память). Бэббиджу помогала математик Ада Ловлас (1815—1852) - первый программист леди. Она создала для машины несколько программ, которые хранились на специальных перфорированных картах.

В 1937 г. Алан Тьюринг предложил универсальную схему вычислений, которая обладала всеми необходимыми признаками универсальной вычислительной машины.

В 1943 г. американец Говард Эйкен с помощью работ Бэббиджа на основе техники XX в. — электромеханических реле — смог построить на одном из предприятий фирмы IBM (International Business Machine corp.) вычислительную машину под названием «Марк—1». Еще раньше идеи Бэббиджа были переоткрыты немецким инженером Конрадом Цузе, который в 1941 г. построил аналогичную машину.

В 1946 г. Джон П. Экерт (род. 1919) и Джон В. Могли (1907—1980) разработали один из первых компьютеров для армии США— ENIAC (электронный числовой интегратор и калькулятор) на электронных лампах.

В 1945 г. к работе Могли и Экерта был привлечен знаменитый математик Джон фон Нейман, который подготовил доклад об этой машине. Доклад был разослан многим ученым и получил широкую известность, поскольку в нем фон Нейман ясно и просто сформулировал общие принципы функционирования универсальных вычислительных устройств, т.е. компьютеров.

В 1949 г. английским исследователем Морисом Уилксом был построен первый компьютер, в котором были воплощены принципы фон Неймана.

Технология ЭВМ постепенно совершенствовалась, габариты компьютеров уменьшались, а их возможности увеличивались.

На первых компьютерах применялись электронные лампы.

В 1948 г их заменили транзисторы, которые изобрели трое американских ученых — Джон Бардин (род. 1908), Уолтер Браттэйн (1902-1987) и Уильям Шокли (1910-1989). За свое изобретение они получили в 1956 г Нобелевскую премию по физике.

В наши дни компактные калькуляторы и компьютеры используют микросхемы, состоящие из многих тысяч транзисторов. Они стали гораздо более мощными, но подавляющее большинство из них сделано в соответствии с теми принципами, которые изложил в своем докладе в 1945 г. Джон фон Нейман.

 

Принципы фон Неймана

 

В своем докладе Джон фон Нейман описал, как должен быть устроен компьютер для того, чтобы он был универсальным и эффективным устройством для обработки информации.

 

Прежде всего компьютер должен иметь следующие устройства:

  • арифметическо-логическое устройство, выполняющее арифметические и логические операции;

  • устройство управления, которое организует процесс выполнения программ;

  • запоминающее устройство, или память для хранения программ и данных;

  • внешние устройства для ввода-вывода информации.  

  • Память компьютера должна состоять из некоторого количества пронумерованных ячеек.

  • в каждой ячейке могут находиться или обрабатываемые данные, или инструкции программ.

  • Все ячейки памяти должны быть одинаково легко доступны для других устройств компьютера.

Вот каковы должны быть связи между устройствами компьютера (одинарные линии показывают управляющие связи, двойные — информационные):  

Арифметическо- логическое устройство

Устройство управления

Внешние устройства

 

 

 

 

 

Запоминающие устройства

 

В общих чертах работу компьютера можно описать так:

  • с помощью внешнего устройства в память компьютера вводится программа.

  • Устройство управления считывает содержимое ячейки памяти, где находится первая команда (инструкция) программы, и организует ее выполнение.

  • Как правило, после выполнения одной команды устройство управления начинает выполнять команду из ячейки памяти, которая находится непосредственно за только что выполненной командой.

Однако этот порядок может быть изменен с помощью команд передачи управления (перехода). Это позволяет организовать выполнение одной и той же последовательности команд в программе много раз (цикл) и создавать достаточно сложные программы (ветвление).

  • Поскольку внешние устройства, как правило, работают значительно медленнее, чем остальные части компьютера, управляющее устройство может приостанавливать выполнение программы до завершения операции ввода-вывода.

  • Все результаты выполненной программы должны быть ею выведены на внешние устройства компьютера, после чего компьютер переходит в режим ожидания сигналов от внешних устройств.

Особенности современных компьютеров

 

Схема устройства современных компьютеров несколько отличается от приведенной выше.

  • Арифметическо-логическое устройство и устройство управления, как правило, объединены в единое устройство — центральный процессор.

  • Процесс выполнения программ может прерываться для выполнения неотложных действий, связанных с поступившими сигналами от внешних устройств компьютера — прерываний.

  • Параллельная обработка данных на нескольких процессорах.

Поколения ЭВМ

Развитие вычислительной техники в послевоенное время принято рассматривать с точки зрения смены поколений компьютеров. Каждое поколение в начальный момент развития характеризуется качественным скачком в росте основных характеристик компьютера, вызванным обычно переходом на новую элементную базу, а также относительной стабильностью архитектурных и технологических решений. Под поколением естественно понимать модели ЭВМ, которые характеризуются одинаковыми технологическими и программными решениями (элементная база, логическая архитектура, программное обеспечение). Разбиение поколений компьютеров по годам весьма условно. В то время, как начиналось активное использование компьютеров одного поколения, создавались предпосылки для возникновения следующего. Кроме элементной базы используются следующие показатели развития компьютеров одного поколения: быстродействие, архитектура, программное обеспечение, уровень развития внешних устройств. В соответствии с этими показателями выделяют четыре реальных поколения ЭВМ. Первую электронно-вакуумную лампу создал Ли Де Форест в 1906 г. В 1948 г. в американской фирме Bell Telephone Laboratories физики Уильям Шокли, Уолтер Браттейн и Джон Бардин создали транзистор. В 1956 г. за это достижение им была присуждена Нобелевская премия. В 1954 г. компания Texas Instruments объявила о начале серийного производства транзисторов, а в 1956 г. ученые Массачусетского технологического института создали первый полностью построенный на транзисторах компьютер TX-Q. В 1958 г. инженер компании Texas Instruments Джек Килби предложил идею интегральной микросхемы – кремниевого кристалла, на который монтируются миниатюрные транзисторы и другие элементы. Первый образец такой микросхемы занимал чуть больше одного квадратного сантиметра площади  и был несколько миллиметров толщиной. В 1964 г. компания IBM выпустила компьютер IBM System 360, построенный на основе интегральных микросхем. В 1969 г. компания «Intel» выпустила микропроцессор, представляющий собой микросхему, на которой сосредоточено обрабатывающее устройство с собственной системой команд. Практически сразу микропроцессоры получили широкое применение в различных системах управления от космических аппаратов до бытовых приборов. Появились большие  (БИС) и сверхбольшие (СБИС) интегральные схемы, включающие сотни тысяч и даже миллионы элементов на один кристалл. Это позволило продолжить уменьшение размеров и стоимости компьютеров, повысить их производительность и надежность.

 Все х86-процессоры, вплоть до Pentium 4,  являлись CISC-процессорами. CISC (англ. Complex Instruction Set Computing) – концепция проектирования процессоров, которая характеризуется следующим набором свойств: - нефиксированное значение длины команды; - кодирование арифметических действий в одной инструкции; - небольшое число регистров, каждый из которых выполняет строго определенную функцию.

Принцип «более компактные и простые инструкции выполняются быстрее» соответствует RISC-архитектуре процессоров. RISC (англ. Reduced Instruction Set Computer)  – компьютер с сокращённым набором команд. Простая архитектура позволяет удешевить процессор, поднять тактовую частоту, а также распараллелить исполнение команд между несколькими блоками исполнения. Первые RISC-процессоры были разработаны в начале 1980-х годов в Стэнфордском и Калифорнийском университетах США. Они выполняли небольшой (50–100) набор команд.

Развитие программного обеспечения

 

Начало 50-х годов - появление языков низкого уровня — ассемблер. Позволяет писать программы не на машинном языке, а с использованием мнемонических обозначений машинных команд, имен точек программы и т.д. Программы на ассемблере очень просто переводятся в машинные команды, это делается с помощью специальной программы, которая также называется ассемблером.

1955 г. - появление языков программирования высокого уровня. Первый коммерчески используемый язык программирования высокого уровня Фортран был разработан в 1958 г. в фирме IBM под руководством Джона Бэкуса. Этот язык был предназначен, прежде всего, для научных вычислений и он (в усовершенствованном варианте) до сих пор широко используется в данной области. Для других применений было разработано множество различных языков высокого уровня, но широкое распространение получили лишь немногие из них, в частности Си и Си++, Паскаль, Бейсик, Лого, Форт, Лисп, Пролог и др.

С 1966 г. - почти все средние и большие ЭВМ работали под управлением ОС. 70-е годы - появление систем с разделением времени и компьютерных сетей.  

История ПЭВМ

 

Компьютеры 1-го и 2-го поколений К середине 60-х годов появились компактные внешние устройства для компьютеров, что позволило фирме Digital Equipment выпустить в 1965 г. первый миникомпьютер PDP—8 размером с холодильник и стоимостью 20 тыс. дол. Но к тому времени был подготовлен еще один шаг к миниатюризации компьютеров.

В 1958 г. Джек Килби придумал, как на одной пластине полупроводника получить несколько транзисторов.

В 1959 г. Роберт Нойс (будущий основатель фирмы Intel) изобрел более совершенный метод, позволивший создавать на одной пластине и транзисторы, и все необходимые соединения между ними. Полученные электронные схемы стали называться интегральными схемами, или чипами.

В 1968 г. фирма Burroughs выпустила первый компьютер на интегральных схемах.

В 1970 г. фирма Intel начала продавать интегральные схемы памяти. В том же году был сделан еще один важный шаг на пути к персональному компьютеру — Маршиан Эдвард Хофф из той же фирмы Intel сконструировал интегральную схему, аналогичную по своим функциям центральному процессору большой ЭВМ.

Так появился первый микропроцессор Intel-4004, который был выпущен в продажу в конце 1970 г. Конечно, возможности Intel-4004 были куда скромнее, чем у центрального процессора большой ЭВМ, — он работал гораздо медленнее и мог обрабатывать одновременно только 4 бита информации (процессоры больших ЭВМ обрабатывали 16 или 32 бита одновременно).

В 1973 г. фирма Intel выпустила 8-битовый микропроцессор Intel-8008.

в 1974 г. — его усовершенствованную версию Intel-8080, которая до конца 70-х годов стала стандартом для микрокомпьютерной индустрии.

Вначале эти микропроцессоры использовались только электронщиками-любителями и в различных специализированных устройствах.

в 1974 г. несколько фирм объявили о создании на основе микропроцессора Intel-8008 компьютера, т.е. устройства, выполняющего те же функции, что и большая ЭВМ.

В начале 1975 г. появился первый коммерчески распространяемый компьютер Альтаир-8800, построенный на основе микропроцессора Intel-8080. Этот компьютер, разработанный фирмой MITS, продавался по цене около 500$. Хотя возможности его были весьма ограничены (оперативная память составляла всего 256 байт, клавиатура и экран отсутствовали), его появление было встречено с большим энтузиазмом.

В конце 1975 г. Пол Аллен и Билл Гейтс (будущие основатели фирмы Microsoft) создали для компьютера «Альтаир» интерпретатор языка Basic, что позволило пользователям достаточно просто общаться с компьютером и легко писать для него программы. Это также способствовало популярности компьютеров.

 

Появление IBM PC

 

1979 г. фирма IBM решила попробовать свои силы на рынке персональных компьютеров. Прежде всего, в качестве основного микропроцессора компьютера был выбран новейший тогда 16-разрядный микропроцессор Intel—8088. Его использование позволило значительно увеличить потенциальные возможности компьютера, так как новый микропроцессор позволял работать с 1 Мбайтом памяти, а все имевшиеся тогда компьютеры были ограничены 64 Кбайтами. В компьютере были использованы и другие комплектующие различных фирм, а его программное обеспечение было поручено разработать небольшой фирме Miu-Obafi.

В августе 1981 г. новый компьютер под названием IBM PC был официально представлен публике и вскоре после этого он приобрел большую популярность у пользователей. Через один-два года компьютер IBM PC занял ведущее место на рынке, вытеснив модели 8-битовых компьютеров. Фактически IBM PC стал стандартом персонального компьютера. Сейчас такие компьютеры («совместимые с IBM PC») составляют около 90% всех производимых в мире персональных компьютеров.

 

Принцип открытой архитектуры

 

В IBM PC была заложена возможность усовершенствования его отдельных частей и использования новых устройств. Фирма IBM сделала компьютер не единым неразъемным устройством, а обеспечила возможность его сборки из независимо изготовленных частей аналогично детскому конструктору. При этом методы сопряжения устройств с компьютером IBM PC не только не держались в секрете, но и были доступны всем желающим. Этот принцип, называемый принципом открытой архитектуры, наряду с другими достоинствами обеспечил потрясающий успех компьютеру IBM PC, но лишил фирму IBM возможности единолично пользоваться плодами этого успеха.

Как же устроен этот «конструктор»?

  • На основной электронной плате компьютера IBM PC (системной, или материнской, плате) размещены только те блоки, которые осуществляют обработку информации (вычисления).

  • Схемы, управляющие всеми остальными устройствами компьютера — монитором, дисками, принтером и т.д., реализованы на отдельных платах, которые вставляются в стандартные разъемы на системной плате — слоты.

  • К электронным схемам подводится электропитание из единого блока питания, а для удобства и надежности все это заключается в общий металлический или пластмассовый корпус — системный блок.

Развитие компьютеров IBM PC

 

В 1983 г. был выпущен компьютер IBM PC XT, имеющий встроенный жесткий диск.

В 1985 г. — компьютер IBM PC AT на основе нового микропроцессора Intel-80286, работающий в 3-4 раза быстрее IBM PC XT.

Первые компьютеры на основе микропроцессоров Intel-80386 были выпущены уже не IBM. Компьютеры на основе микропроцессоров Intel—80386SX, 80486, и Pentium, мониторы типа SuperVGA 800х600 и 1024х768 были разработаны уже не IBM, а различными другими фирмами. Наибольшее влияние на развитие компьютеров типа IBM PC теперь оказывает не IBM, а фирма Intel — производитель микропроцессоров, являющихся «мозгом» IBM PC, и фирма Microsoft — разработчик операционной системы MS DOS, графической операционной оболочки Windows и многих других используемых на IBM PC программ.

 

Понятие архитектуры ЭВМ

 

 

С середины 60-х годов существенно изменился подход к созданию вычислительных машин. Вместо независимой разработки аппаратуры и некоторых средств математического обеспечения стала проектироваться система, состоящая из совокупности аппаратных (hardware) и программных (software) средств. При этом на первый план выдвинулась концепция их взаимодействия. Так возникло принципиально новое понятие — архитектура ЭВМ.

Под архитектурой ЭВМ понимается совокупность общих принципов организации аппаратно-программных средств и их характеристик, определяющая функциональные возможности ЭВМ при решении соответствующих классов задач.

Архитектура ЭВМ охватывает широкий круг проблем, связанных с построением комплекса аппаратных и программных средств и учитывающих множество факторов. Среди этих факторов важнейшими являются: стоимость, сфера применения, функциональные возможности, удобство эксплуатации, а одним из главных компонентов архитектуры являются аппаратные средства. Основные компоненты архитектуры ЭВМ можно представить в виде схемы, показанной на рисунке.

Архитектуру вычислительного средства следует отличать от его структуры. Структура вычислительного средства определяет его конкретный состав на некотором уровне детализации (устройства, блоки узлы и т. д.) и описывает связи внутри средства во всей их полноте. Архитектура же определяет правила взаимодействия составных частей вычислительного средства, описание которых выполняется в той мере, в какой это необходимо для формирования правил их взаимодействия. Она регламентирует не все связи, а наиболее важные, которые должны быть известны для более грамотного использования данного средства.

Так, пользователю ЭВМ безразлично, на каких элементах выполнены электронные схемы, схемно или программно реализуются команды и т. д. Важно другое: как те или иные структурные особенности ЭВМ связаны с возможностями, предоставляемыми пользователю, какие альтернативы реализованы при создании машины и по каким критериям принимались решения, как связаны между собой характеристики отдельных устройств, входящих в состав ЭВМ, и какое влияние они оказывают на общие характеристики машины. Иными словами, архитектура ЭВМ действительно отражает круг проблем, относящихся к общему проектированию и построению вычислительных машин и их программного обеспечения.

К лассификация ЭВМ

 

 

Чтобы судить о возможностях ЭВМ, их принято разделять на группы по определенным признакам, т. е. классифицировать. Сравнительно недавно классифицировать ЭВМ по различным признакам не составляло большого труда. Важно было только определить признак классификации, например: но назначению, по габаритам, по производительности, по стоимости, по элементной базе и т. д.

 

Например: С развитием технологии производства ЭВМ классифицировать их стало все более затруднительно, ибо стирались грани между такими важными характеристиками, как производительность, емкость внутренней и внешней памяти, габариты, вес, энергопотребление и др. Например, персональный компьютер, для размещения которого достаточно стола, имеет практически такие же возможности и технические характеристики, что и достаточно совершенная в недавнем прошлом ЭВМ Единой системы (ЕС), занимающая машинный зал в сотни квадратных метров. Поэтому разделение ЭВМ по названным признакам нельзя воспринимать как классификацию по техническим параметрам. Это, скорее, эвристический подход, где большой вес имеет предполагаемая сфера применения компьютеров.

С этой точки зрения классификацию вычислительных машин по таким показателям, как габариты и производительность, можно представить следующим образом: • сверхпроизводительные ЭВМ и системы (супер-ЭВМ);

• большие ЭВМ (универсальные ЭВМ общего назначения);

• средние ЭВМ;

• малые или мини-ЭВМ;

• микро-ЭВМ;

• персональные компьютеры;

• микропроцессоры.

 самые ранние вычислительные машины были полностью механическими системами. Тем не менее уже в 1930-х годах телекоммуникационная промышленность предложила разработчикам новые, электромеханические компоненты (реле), а в 1940-х были созданы первые полностью электронные компьютеры, имевшие в своей основе вакуумные электронные лампы. Это были ЭВМ 1-го поколения.

В 1950–60-х годах на смену лампам пришли полупроводники –транзисторы (2-е поколение),

а в конце 1960-х – начале 1970-х годов – полупроводниковые интегральные схемы (3-е поколение).

ЭВМ 4-го поколения построены на микропроцессорах.

Одним из первых полупроводников были точечные диоды на основе сульфида свинца (Pb) и окиси олова (Sn) в детекторных радиоприемниках. Позже были разработаны полупроводники на основе германия (Ge), еще позже – на основе кремния (Si).

М. Флинн предложил классифицировать архитектуру ЭВМ согласно числу потоков команд и данных: 1. Вычислительная система с одним потоком команд и данных (однопроцессорная ЭВМ – SISD, Single Instruction stream over a Single Data stream). 2. Вычислительная система с общим потоком команд (SIMD, Single Instruction, Multiple Data – одиночный поток команд и множественный поток данных). 3. Вычислительная система со множественным потоком команд и одиночным потоком данных (MISD, Multiple Instruction Single Data – конвейерная ЭВМ). 4. Вычислительная система со множественным потоком команд и данных (MIMD, Multiple Instruction Multiple Data). В MISD архитектуре, подобно конвейеру, каждый процессор одновременно с другими может выполнять свою операцию над выходными данными предыдущего.

Основные характеристики вычислительной техники

К основным характеристикам вычислительной техники относятся ее эксплуатационно-технические характеристики, такие, как быстродействие, емкость памяти, точность вычислений и др.

Быстродействие ЭВМ рассматривается в двух аспектах. С одной стороны, оно характеризуется количеством элементарных операций, выполняемых центральным процессором в секунду. Под элементарной операцией понимается любая простейшая операция типа сложения, пересылки, сравнения п т. д. С другой стороны, быстродействие ЭВМ существенно зависит от организации ее памяти. Время, затрачиваемое на поиск необходимой информации в памяти, заметно сказывается на быстродействии ЭВМ.

В зависимости от области применения выпускаются ЭВМ с быстродействием от нескольких сотен тысяч до миллиардов операций в секунду. Для решения сложных задач возможно объединение нескольких ЭВМ в единый вычислительный комплекс с требуемым суммарным быстродействием.

Наряду с быстродействием часто пользуются понятием производительность. Если первое обусловлено, главным образом, используемой в ЭВМ системой элементов, то второе связано с ее архитектурой и разновидностями решаемых задач. Даже для одной ЭВМ такая характеристика, как быстродействие, не является величиной постоянной. В связи с этим различают: пиковое быстродействие, определяемое тактовой частотой процессора без учета обращения к оперативной памяти; номинальное быстродействие, определяемое с учетом времени обращения к оперативной памяти; системное быстродействие, определяемое с учетом системных издержек на организацию вычислительного процесса; эксплуатационное, определяемое с учетом характера решаемых задач (состава операций или их «смеси»).

Емкость, или объем, памяти определяется максимальным количеством информации, которое можно разместить в памяти ЭВМ. Обычно емкость памяти измеряется в байтах. Как уже отмечалось, память ЭВМ подразделяется на внутреннюю и внешнюю. Внутренняя, или оперативная память, по своему объему у различных классов машин различна и определяется системой адресации ЭВМ. Емкость внешней памяти из-за блочной структуры и съемных конструкций накопителей практически неограничена.

Точность вычислений зависит от количества разрядов, используемых для представления одного числа. Современные ЭВМ комплектуются 32- или 64-разрядными микропроцессорами, что вполне достаточно для обеспечения высокой точности расчетов в самых разнообразных приложениях. Однако, если этого мало, можно использовать удвоенную или утроенную разрядную сетку.

Система команд — это перечень команд, которые способен выполнить процессор ЭВМ. Система команд устанавливает, какие конкретно операции может выполнять процессор, сколько операндов требуется указать в команде, какой вид (формат) должна иметь команда для ее распознания. Количество основных разновидностей команд невелико. С их помощью ЭВМ способны выполнять операции сложения, вычитания, умножения, деления, сравнения, записи в память, передачи числа из регистра в регистр, преобразования из одной системы счисления в другую и т. д. При необходимости выполняется модификация команд, учитывающая специфику вычислений. Обычно в ЭВМ используется от десятков до сотен команд (с учетом их модификации). На современном этапе развития вычислительной техники используются два основных подхода при формировании системы команд процессора. С одной стороны, это традиционный подход, связанный с разработкой процессоров с полным набором команд, — архитектура CISC (Complete Instruction Set Computer — компьютер с полным набором команд). С другой стороны, это реализация в ЭВМ сокращенного набора простейших, но часто употребляемых команд, что позволяет упростить аппаратные средства процессора и повысить его быстродействие — архитектура RISC (Reduced Instruction Set Computer — компьютер с сокращенным набором команд).

Стоимость ЭВМ зависит от множества факторов, в частности от быстродействия, емкости памяти, системы команд и т. д. Большое влияние на стоимость оказывает конкретная комплектация ЭВМ и, в первую очередь, внешние устройства, входящие в состав машины. Наконец, стоимость программного обеспечения ощутимо влияет на стоимость ЭВМ.

Надежность ЭВМ — это способность машины сохранять свои свойства при заданных условиях эксплуатации в течение определенного промежутка времени. Количественной оценкой надежности ЭВМ, содержащей элементы, отказ которых приводит к отказу всей машины, могут служить следующие показатели:

• вероятность безотказной работы за определенное время при данных условиях

эксплуатации; • наработка ЭВМ на отказ;

• среднее время восстановления машины и др.

Для более сложных структур типа вычислительного комплекса или системы понятие «отказ» не имеет смысла. В таких системах отказы отдельных элементов приводят к некоторому снижению эффективности функционирования, а не к полной потере работоспособности в целом.

Важное значение имеют и другие характеристики вычислительной техники, например: универсальность, программная совместимость, вес, габариты, энергопотребление и др. Они принимаются во внимание при оценивании конкретных сфер применения ЭВМ.  

Системы счисления

 

Совокупность приемов наименования и записи чисел называется счислением. Под системой счисления понимается способ представления любого числа с помощью ограниченного алфавита символов, называемых цифрами. Счисление представляет собой частный случай кодирования, где слово, записанное с использованием определенного алфавита и по определенным правилам, называется кодом. Применительно к счислению это код числа.

Позиционные и непозиционные системы счисления.

Различают позиционные и непозиционные системы счисления. В непозиционных системах счисления каждое число обозначается соответствующей совокупностью символов. Характерным представителем непозиционных систем является римская система счисления со сложным способом записи чисел и громоздкими правилами выполнения арифметических операций. Например, запись MCMXCIX означает, что записано число 1999 (М — тысяча, С — сто, Х — десять, V — пять, I — единица и т. д.).

Позиционные системы счисления обладают большими преимуществами в наглядности представления чисел и в простоте выполнения арифметических операций.

В позиционной системе счисления значение числа определяется не только набором входящих в него цифр, но и их местом (позицией) в последовательности цифр, изображающих это число, например, числа 127 и 721.

Позиционной является десятичная система счисления, используемая в повседневной жизни. Помимо десятичной существуют другие позиционные системы счисления, и некоторые из них нашли применение в информатике.

Количество символов, используемых в позиционной системе счисления, называется ее основанием. Его обозначают обычно буквой q. В десятичной системе счисления используется десять символов (цифр): 0, 1, 2, 3,4, 5, 6, 7, 8, 9, и основанием системы является число десять.

Особое место среди позиционных систем счисления занимают системы со степенными весами разрядов, в которых веса смежных позиций цифр (разрядов) отличаются по величине в постоянное количество раз, равное основанию q системы счисления.

В общем случае в такой позиционной системе счисления с основанием q любое число Х может быть представлено в виде полинома разложения:    (1.1)

где: A(q) — запись числа в системе счисления с основанием q;

q — основание системы счисления;

ai — целые числа, меньше q;

п — число разрядов (позиций) в целой части числа;

т — число разрядов в дробной части числа.

Например: Для обозначения используемой системы счисления ее основание указывается в индексе. Изображение числа A в виде последовательности коэффициентов a. полинома является его условной сокращенной записью (кодом).

A(q)=an-1 an-2…a1a0,a-1…a-m      (1.2)

Запятая отделяет целую часть числа от дробной и служит началом отсчета значений веса каждой позиции (разряда).

В информатике применяют позиционные системы счисления с недесятичным основанием: двоичную, восьмеричную и шестнадцатеричную, т. е. системы счисления с основанием q = 2k , где k=1,3,4.

Двоичная система счисления

Наибольшее распространение получила двоичная система счисления, В этой системе для представления любого числа используются два символа — цифры 0 и 1. Основание системы счисления q = 2.

Произвольное число с помощью формулы (1.1) можно представить в виде разложения по степеням двойки. Тогда условная сокращенная запись в соответствии с (1.2) означает изображение числа в двоичной системе счисления (двоичный код числа), где ai =0 или 1.

Например: 15,625=1•23+1•22+1•21+1•20+ 1•2-1+0•2-2+1•2-3= 1111,101(2) Двоичное представление числа требует примерно в 3,3 раза большего числа разрядов, чем его десятичное представление. Тем не менее, применение двоичной системы счисления создает большие удобства для работы ЭВМ, т. к. для представления в машинеразряда двоичного числа может быть использован любой запоминающий элемент, имеющий два устойчивых состояния.

Восьмеричная система счисления.

В восьмеричной системе счисления алфавит состоит из восьми символов (цифр): 0, 1 ... 7. Основание системы счисления q = 8. Для записи произвольного числа в восьмеричной системе счисления необходимо по формуле (1.1) найти его разложение по степеням восьмерки, а затем воспользоваться условной сокращенной записью (1.2).

Например, десятичное число 53(10) = 65(8)

Шестнадцатеричная система счисления.

В шестнадцатеричной системе счисления алфавит включает в себя 16 символов (цифр и букв) : 0, 1 ... 9, А, В, С, D, Е, F. Основание системы счисления q = 16. Для записи произвольного числа в этой системе счисления необходимо по формуле (1.1) найти его разложение по степеням 16, а по формуле (1.2) — код.

Например: 31(10)=1F(16)

Двоично-десятичное кодирование.

Наряду с двоичными кодами, которыми оперирует ЭВМ, для ввода и вывода десятичных чисел (данных) используют специальное двоично-десятичное кодирование. При двоично-десятичном кодировании каждая десятичная цифра заменяется тетрадой (четверкой) двоичных цифр, а сами тетрады записываются последовательно в соответствии с порядком следования десятичных цифр. При обратном преобразовании двоично-десятичного кода в десятичный исходный код разбивается на тетрады вправо и влево от запятой, которые затем заменяются десятичными цифрами.

Таким образом, при двоично-десятичном кодировании фактически не производится перевод числа в новую систему счисления, а мы имеем дело с двоично-кодированной десятичной системой счисления.

Например, десятичное число 12(10) = C(16)= 14(8)= 1100(2)= 00010010(2-10).

 

Преобразование чисел

 

ЭВМ работают с двоичными кодами, пользователю удобнее иметь дело с десятичными или шестнадцатеричными. Поэтому возникает необходимость перевода числа из одной системы счисления в другую.

Преобразование числа Х из системы счисления с основанием q в систему счисления с основанием р осуществляется по правилу замещения или по правилу деления-умножения на основание системы счисления.

Правило замещения

Правило замещения предусматривает выполнение арифметических операций с кодами чисел в новой системе счисления. Поэтому оно чаще всего используется для преобразования чисел из недесятичной системы счисления в десятичную.

Пример.111011,011(2)= 1•24 +0•23 +1•22 +0•21 +l•20+0•2-1+l•2-2+l•2-3= 59, 375.  

Правило деления-умножения Правило деления-умножения предусматривает выполнение арифметических операций с кодами чисел в исходной системе счисления с основанием q, поэтому его удобно применять для преобразования десятичных чисел в любые другие позиционные системы счисления. Правила преобразования целых чисел и правильных дробей различны. Для преобразования целых чисел используется правило деления, а для преобразования правильных дробей — правило умножения. Для преобразования смешанных чисел используются оба правила соответственно для целой и дробной частей числа.

Правило деления используется для преобразования целого числа, записанного в q-ичной системе счисления, в р-ичную. В этом случае необходимо последовательно делить исходное q-ичное число и получаемые частные на новое основание р, представленное в q-ичной системе счисления. Деление продолжают до тех пор, пока очередное частное не станет меньше р. После замены полученных остатков и последнего частного цифрами р-ичной системы счисления записывается код числа в повои системе счисления. При этом старшей цифрой является последнее частное, а следующие за ней цифры соответствуют остаткам, записанным в последовательности, обратной их получению.

Правило умножения используется для преобразования дробного числа, записанного в q-нчнон системе счисления, в р-ичпую. В этом случае необходимо последовательно умножать исходную дробь и дробные части получающихся произведений на основание р, представленное в исходной q-ичной системе счисления. Целые числа получаемых произведений, замененные цифрами р-ичной системы счисления, и дают последовательность цифр в новой р-ичной системе.

Умножение необходимо производить до получения в искомом р-ичном коде цифры того разряда, вес которого меньше веса младшего разряда исходной q-ичной дроби. При этом в общем случае получается код приближенно, и всегда с недостатком значения дроби. Поэтому в случае обратного преобразования (р-ичпого кода дроби в q-ичный) результат может не совпадать с исходным значением q-ичной дроби.

Пример.75,35(10)=1001011,01011…(2) .

Для получения частных и остатков по правилу деления для целой части числа удобно использовать формулу записи, известную под названием «деление в столбик», а для получения р-ичного кода дробной части числа по правилу умножения — форму записи, известную под названием «умножение столбиком». Применительно к рассматриваемому примеру имеем:

 

Таким образом, в результате преобразования получаем 75,35(10) = 1001011,01011...(2). Как следует из примера, процесс перевода дробной части можно продолжить до бесконечности. ЭВМ оперирует числами, представленными конечными наборами цифр. Поэтому дроби округляют в соответствии с правилами преобразования и весом младшего разряда исходной дроби.

Преобразование чисел из двоичной системы счисления в восьмеричную, шестнадцатеричную и обратно осуществляется по упрощенным правилам с учетом того, что основания этих систем счисления кратны целой степени 2, т. е. 8=23 , а 16=24 . Это означает, что при преобразовании восьмеричного кода числа в двоичный, необходимо каждую восьмеричную цифру заменить соответствующим трехзначным двоичным кодом (триадой).

При преобразовании шестнадцатеричного кода числа в двоичный необходимо каждую шестнадцатеричную цифру заменить четырехзначным двоичным кодом (тетрадой).

При преобразовании двоичного кода в восьмеричный или шестнадцатеричный двоичный код делится соответственно на триады или тетрады влево и вправо от запятой (точки), разделяющей целую и дробные части числа. Затем триады (тетрады) заменяются восьмеричными (шестнадцатеричными) цифрами.

Например:  Если при разбиении двоичного кода в крайних триадах (тетрадах) недостает цифр до нужного количества, они дополняются нулями. Соответственно, «лишние» нули слева и справа, не вошедшие в триады (тетрады) отбрасываются.

Классификация программного обеспечения

 Уровни программного обеспечения вычислительной системы представляют собой пирамиду, где каждый следующий уровень опирается на программное обеспечение предшествующих уровней. Базовый уровень является низшим уровнем программного обеспечения. Отвечает за взаимодействие с базовыми аппаратными средствами. Базовое программное обеспечение содержится в составе базового аппаратного обеспечения и сохраняется в специальных микросхемах постоянного запоминающего устройства (ПЗУ), образуя базовую систему ввода-вывода BIOS. Программы и данные записываются в ПЗУ на этапе производства и не могут быть изменены во время эксплуатации. Комплект программ, находящихся в ПЗУ, образует базовую систему ввода-вывода (BIOS). Основное назначение программ этого пакета состоит в том, чтобы проверить состав и работоспособность вычислительной системы и обеспечить взаимодействие с клавиатурой, монитором, жестким диском. Программы, входящие в BIOS, позволяют наблюдать на экране диагностические сообщения, сопровождающие загрузку компьютера, а также вмешиваться в ход запуска с помощью клавиатуры. Системный уровень  является переходным. Программы этого уровня обеспечивают взаимодействие других программ компьютера с программами базового уровня и непосредственно с аппаратным обеспечением. Конкретные программы, предназначенные для взаимодействия с конкретными устройствами, называют драйверами. Другой класс программ системного уровня отвечает за взаимодействие с пользователем. Служебный уровень. Программы этого уровня взаимодействуют как с программами базового уровня, так и с программами системного уровня. Назначение служебных программ (утилит) состоит в автоматизации работ по проверке и настройке компьютерной системы, а также в улучшении функций системных программ. Прикладной уровень. Программное обеспечение этого уровня представляет собой комплекс прикладных программ, с помощью которых на конкретном рабочем месте выполняются конкретные задания (производственные, творческие, развлекательные, учебные и т.п.).

Совокупность программ для компьютера образует программное обеспечение (ПО). По функциональному признаку различают системное и прикладное программное обеспечение. В первом приближении все программы, работающие на компьютере, можно условно разделить на три категории (смотри рисунок):

1. прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ;

2. системные программы, выполняющие различные вспомогательные функции, например:

  • управление ресурсами компьютера;

  • создание копий используемой информации;

  • проверка работоспособности устройств компьютера;

  • выдача справочной информации о компьютере и др.;

3. инструментальные программные системы, облегчающие процесс создания новых программ для компьютера.

 

 

При построении классификации ПО нужно учитывать тот факт, что стремительное развитие вычислительной техники и расширение сферы приложения компьютеров резко ускорили процесс эволюции программного обеспечения.

Если раньше можно было по пальцам перечислить основные категории ПО — операционные системы, трансляторы, пакеты прикладных программ, то сейчас ситуация коренным образом изменилась.

Развитие ПО пошло как вглубь (появились новые подходы к построению операционных систем, языков программирования и т.д.), так и вширь (прикладные программы перестали быть прикладными и приобрели самостоятельную ценность).

Соотношение между требующимися программными продуктами и имеющимися на рынке меняется очень быстро. Даже классические программные продукты, такие, как операционные системы, непрерывно развиваются и наделяются интеллектуальными функциями, многие из которых ранее относились только к интеллектуальным возможностям человека.

Кроме того, появились нетрадиционные программы, классифицировать которые по устоявшимся критериям очень трудно, а то и просто невозможно, как, например, программа — электронный собеседник.

На сегодняшний день можно сказать, что более или менее определённо сложились следующие группы программного обеспечения:

  • операционные системы и оболочки;

  • системы программирования (трансляторы, библиотеки подпрограмм, отладчики и т.д.);

  • инструментальные системы;

  • интегрированные пакеты программ;

  • динамические электронные таблицы;

  • системы машинной графики;

  • системы управления базами данных (СУБД);

  • прикладное программное обеспечение.

Структура программного обеспечения показана на рисунке. Разумеется, эту классификацию нельзя считать исчерпывающей, но она более или менее наглядно отражает направления совершенствования и развития программного обеспечения.  

 

Системное программное обеспечение

 

Системное (базовое) ПО - программное обеспечение, включающее в себя операционные системы, сетевое ПО, сервисные программы, а также средства разработки программ (трансляторы, редакторы связей, отладчики и пр.).

Основные функции операционных систем (ОС) заключаются в управлении ресурсами (физическими и логическими) и процессами вычислительных систем. Физическими ресурсами являются: оперативная намять, процессор, монитор, печатающее устройство, магнитные и оптические диски. К логическим ресурсам можно отнести программы, файлы, события и т. д. Под процессом понимается некоторая последовательность действий, предписанная соответствующей программой и используемыми ею данными.

В настоящее время существует большое количество ОС, разработанных для ЭВМ различных типов. На ЭВМ Единой Системы (ЕС ЭВМ), например, используются такие операционные системы, как СВМ и ОС ЕС, на малых ЭВМ (СМ-4, СМ-1420 и др.) - ОС РВ и RSX-11 М, на ПЭВМ - DOS 6.22, Windows 95, Windows NT, Unix, OS/ 2.

Сетевое ПО предназначено для управления общими ресурсами в распределенных вычислительных системах: сетевыми накопителями на магнитных дисках, принтерами, сканерами, передаваемыми сообщениями и т. д. К сетевому ПО относят ОС, поддерживающие работу ЭВМ в сетевых конфигурациях (так называемые сетевые ОС), а также отдельные сетевые программы (пакеты), используемые совместно с обычными, не сетевыми ОС.

Например, большое распространение получили следующие сетевые ОС: NetWare 4.1 (4)ирма Novell), Windows NT Server 3.5 (фирма Microsoft) и LAN Server 4.0 Advanced (фирма IBM).

Для расширения возможностей операционных систем и предоставления набора дополнительных услуг используются сервисные программы. Их можно разделить на следующие группы:

  • интерфейсные системы;

  • оболочки операционных систем;

  • утилиты.

Интерфейсные системы являются естественным продолжением операционной системы и модифицируют как пользовательский, так и программный интерфейсы, а также реализуют дополнительные возможности по управлению ресурсами ЭВМ. В связи с тем, что развитая интерфейсная система может изменить весь пользовательский интерфейс, часто их также называют операционными системами. Эго относится, например, к Windows 3.11 и Windows 3.11 for Work Groups (для рабочих групп).

Оболочки операционных систем, в отличие от интерфейсных систем, модифицируют только пользовательский интерфейс, предоставляя пользователю качественно новый интерфейс по сравнению с реализуемым операционной системой. Такие системы существенно упрощают выполнение часто запрашиваемых функций, например, таких операций с файлами, как копирование, переименование и уничтожение, а также предлагают пользователю ряд дополнительных услуг. В целом, программы-оболочки заметно повышают уровень пользовательского интерфейса, наиболее полно удовлетворяя потребностям пользователя.

На ПЭВМ широко используются такие программы-оболочки, как Norton Commander и DOS Navigator.

Утилиты предоставляют пользователям средства обслуживания компьютера и его ПО. Они обеспечивают реализацию следующих действий:

  • обслуживание магнитных дисков;

  • обслуживание файлов и каталогов;

  • предоставление информации о ресурсах компьютера;

  • шифрование информации;

  • защита от компьютерных вирусов;

  • архивация файлов и др.

Существуют отдельные утилиты, используемые для решения одного из перечисленных действий, и многофункциональные утилиты. В настоящее время для ПЭВМ среди многофункциональных утилит одним из наиболее совершенных является комплект утилит Norton Utilities. Существуют его версии для использования в среде DOS и Windows.

Средства разработки программ используются для разработки нового программного обеспечения как системного, так и прикладного.  

Прикладное программное обеспечение

Прикладным называется ПО, предназначенное для решения определенной целевой задачи из проблемной области. Часто такие программы называют приложениями. Спектр проблемных областей в настоящее время весьма широк.

Из всего разнообразия прикладного ПО выделяют группу наиболее распространенных программ (типовые пакеты и программы), которые можно использовать во многих областях человеческой деятельности.

К типовому прикладному ПО относят следующие программы:

• текстовые процессоры;

• табличные процессоры;

• системы иллюстративной и деловой графики (графические процессоры);

• системы управления базами данных;

• экспертные системы;

• программы математических расчетов, моделирования и анализа экспериментальных данных. Предлагаемые на рынке ПО приложения, в общем случае, могут быть выполнены как отдельные программы либо как интегрированные системы. Интегрированными системами обычно являются экспертные системы, программы математических расчетов, моделирования и анализа экспериментальных данных, а также офисные системы. Примером мощной и широко распространенной интегрированной системы является офисная система Microsoft Office.  

Операционные системы

 

Операционная система (ОС) - система программ, предназначенная для управления устройствами ЭВМ, управления обработкой и хранением данных, обеспечения пользовательского интерфейса.

Операционная система обычно хранится во внешней памяти компьютера — на диске. При включении компьютера она считывается с дисковой памяти и размещается в ОЗУ. Этот процесс называется загрузкой операционной системы.

В функции операционной системы входит:

• осуществление диалога с пользователем; • ввод-вывод и управление данными; • планирование и организация процесса обработки программ; • распределение ресурсов (оперативной памяти и кэша, процессора, внешних устройств); • запуск программ на выполнение; • всевозможные вспомогательные операции обслуживания; • передача информации между различными внутренними устройствами; • программная поддержка работы периферийных устройств (дисплея, клавиатуры, дисковых накопителей, принтера и др.).

В зависимости от количества одновременно обрабатываемых задач и числа пользователей, которых могут обслуживать ОС, различают четыре основных класса операционных систем:

1. однопользовательские однозадачные, которые поддерживают одну клавиатуру и могут работать только с одной (в данный момент) задачей;

2. однопользовательские однозадачные с фоновой печатью, которые позволяют помимо основной задачи запускать одну дополнительную задачу, ориентированную, как правило, на вывод информации на печать. Это ускоряет работу при выдаче больших объёмов информации на печать;

3. однопользовательские многозадачные, которые обеспечивают одному пользователю параллельную обработку нескольких задач. Например, к одному компьютеру можно подключить несколько принтеров, каждый из которых будет работать на "свою" задачу;

4. многопользовательские многозадачные, позволяющие на одном компьютере запускать несколько задач нескольким пользователям. Эти ОС очень сложны и требуют значительных машинных ресурсов.

В различных моделях компьютеров используют операционные системы с разной архитектурой и возможностями. Для их работы требуются разные ресурсы. Они предоставляют разную степень сервиса для программирования и работы с готовыми программами.

Операционная система для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные компоненты:

• программы управления вводом/выводом; • программы, управляющие файловой системой и планирующие задания для компьютера; • процессор командного языка, который принимает, анализирует и выполняет команды, адресованные операционной системе. Каждая операционная система имеет свой командный язык, который позволяет пользователю выполнять те или иные действия: • обращаться к каталогу; • выполнять разметку внешних носителей; • запускать программы; • ... другие действия.

Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память и их запуск, осуществляет командный процессор операционной системы.

Для управления внешними устройствами компьютера используются специальные системные программы — драйверы. Драйверы стандартных устройств образуют в совокупности базовую систему ввода-вывода (BIOS), которая обычно заносится в постоянное ЗУ компьютера.

Современные операционные системы для ПЭВМ отличаются друг от друга, прежде всего ориентацией на машины определенного класса, поддерживаемыми ими режимами обработки, предоставляемыми сервисными возможностями. Примерами ОС для ПЭВМ являются СР/М, MS DOS, OS/2 Warp (IBM), Windows 95 (Microsoft).   Загрузка операционной системы. Этап 1. После проведения самотестирования специальная программа, содержащаяся в BIOS, начинает поиск загрузчика операционной системы. Происходит поочередное обращение к имеющимся в компьютере дискам (гибким, жестким, CD-ROM) и поиск на определенном месте (в первом, так называемом загрузочном секторе диска) наличия специальной программы Master Boot (программы – загрузчика операционной системы). Этап 2. Если диск системный и программа-загрузчик оказывается на месте, то она загружается в оперативную память и ей передается управление работой компьютера. Этап 3. Программа ищет файлы операционной системы на системном диске. Этап 4. Загружаются файлы операционной системы в оперативную память в качестве программных модулей. Этапы загрузки операционной системы Если системные диски в компьютере отсутствуют, на экране монитора появляется сообщение «Non system disk», и компьютер «зависает», то есть загрузка операционной системы прекращается и компьютер остается неработоспособным.

Понятие алгоритма

 

Для составления программы, предназначенной для решения на ЭВМ какой-либо задачи, требуется составление алгоритма ее решения — точного предписания, которое определяет процесс, ведущий от исходных данных к требуемому конечному результату.

Алгоритм - предписание, однозначно задающее процесс преобразования исходной информации в виде последовательности элементарных дискретных шагов, приводящих за конечное число их применений к результату.

Алгоритм - это точная инструкция. Однако не всякая инструкция есть алгоритм. Инструкция становится алгоритмом только тогда, когда она удовлетворяет определенным требованиям.

Алгоритм однозначен, если при применении к одним и тем же данным он даст один и тот же результат. Но как по описанию алгоритма определить, однозначен он или нет. В каком случае шаги считаются элементарными.

  Применительно к ЭВМ алгоритм определяет вычислительный процесс, начинающийся с обработки некоторой совокупности возможных исходных данных и направленный на получение определенных этими исходными данными результатов. Термин вычислительный процесс распространяется и на обработку других видов информации, например, символьной, графической или звуковой

Свойства алгоритма

 

Если вычислительный процесс заканчивается получением результатов, то говорят, что соответствующий алгоритм применим к рассматриваемой совокупности исходных данных. В противном случае говорят, что алгоритм неприменим к совокупности исходных данных. Любой применимый алгоритм обладает следующими основными свойствами:

  • дискретностью;

  • определенностью;

  • результативностью;

  • массовостью.

Дискретность – последовательное выполнение простых или ранее определённых (подпрограммы) шагов. Преобразование исходных данных в результат осуществляется дискретно во времени.

Определенность состоит в совпадении получаемых результатов независимо от пользователя и применяемых технических средств (однозначность толкования инструкций).

Результативность означает возможность получения результата после выполнения конечного количества операций.

Массовость заключается в возможности применения алгоритма к целому классу однотипных задач, различающихся конкретными значениями исходных данных (разработка в общем виде).

Для задания алгоритма необходимо описать следующие его элементы:

  • набор объектов, составляющих совокупность возможных исходных данных, промежуточных и конечных результатов;

  • правило начала;

  • правило непосредственной переработки информации (описание последовательности действий);

  • правило окончания;

  • правило извлечения результатов.

Алгоритм всегда рассчитан на конкретного исполнителя. В нашем случае таким исполнителем является ЭВМ. Для обеспечения возможности реализации на ЭВМ алгоритм должен быть описан на языке, понятном компьютеру, то есть на языке программирования.

Понятия алгоритма и программы разграничены не очень чётко. Обычно программой называют окончательный вариант алгоритма решения задачи, ориентированный на конкретного пользователя.

Таким образом, можно дать следующее определение программы для ЭВМ:

Программа - это описание алгоритма и данных на некотором языке программирования, предназначенное для последующего автоматического выполнения.  

Способы описания алгоритмов

 

К основным способам описания алгоритмов можно отнести следующие:

  • словесно-формульный (на естественном языке);

  • структурный или блок-схемный;

  • с использованием специальных алгоритмических языков;

  • с помощью граф-схем (граф - совокупность точек и линий, в которой каждая линия соединяет две точки. Точки называются вершинами, линии - рёбрами);

  • с помощью сетей Петри.

Одним из свойств алгоритма является дискретность — возможность расчленения процесса вычислений, предписанных алгоритмом, на отдельные этапы, возможность выделения участков программы с определенной структурой. Можно выделить пять простейших структур:

  • Следование (последовательность двух или более операций);

  • Ветвление (выбор направления);

  • Повторение (цикл «до» и цикл «пока»);

  • Обход;

  • Множественный выбор.

Заметим при этом, что две последние структуры можно реализовать, используя структуру типа ветвление. Таким образом, любой вычислительный процесс может быть представлен как комбинация трёх элементарных алгоритмических структур. Соответственно, вычислительные процессы, выполняемые на ЭВМ по заданной программе, можно разделить на три основных вида:

1.линейные; 2.ветвящиеся; 3.циклические

Этапы решения задач на ЭВМ

 

На ЭВМ могут решаться задачи различного характера, например: научно-инженерные; разработки системного программного обеспечения; обучения; управления производственными процессами и т. д. В процессе подготовки и решения на ЭВМ научно-инженерных задач можно выделить следующие этапы:

  • постановка задачи;

  • математическое описание задачи;

  • выбор и обоснование метода решения;

  • алгоритмизация вычислительного процесса;

  • составление программы;

  • отладка программы;

  • решение задачи на ЭВМ и анализ результатов.

В задачах другого класса некоторые этапы могут отсутствовать, например, в задачах разработки системного программного обеспечения отсутствует математическое описание.

Перечисленные этапы связаны друг с другом. Например, анализ результатов может показать необходимость внесения изменений в программу, алгоритм или даже в постановку задачи. Для уменьшения числа подобных изменений необходимо на каждом этапе по возможности учитывать требования, предъявляемые последующими этапами. В некоторых случаях связь между различными этапами, например, между постановкой задачи и выбором метода решения, между составлением алгоритма и программированием, может быть настолько тесной, что разделение их становится затруднительным.  

Постановка задачи

 

На данном этапе формулируется цель решения задачи и подробно описывается ее содержание. Анализируются характер и сущность всех величин, используемых в задаче, и определяются условия, при которых она решается. Корректность постановки задачи является важным моментом, так как от нее в значительной степени зависят другие этапы.

 

Математическое описание задачи

 

Настоящий этап характеризуется математической формализацией задачи, при которой существующие соотношения между величинами, определяющими результат, выражаются посредством математических формул. Так формируется математическая модель явления с определенной точностью, допущениями и ограничениями. При этом в зависимости от специфики решаемой задачи могут быть использованы различные разделы математики и других дисциплин.

Математическая модель должна удовлетворять по крайней мере двум требованиям: реалистичности и реализуемости.

Под реалистичностью понимается правильное отражение моделью наиболее существенных черт исследуемого явления.

Реализуемость достигается разумной абстракцией, отвлечением от второстепенных деталей, чтобы свести задачу к проблеме с известным решением. Условием реализуемости является возможность практического выполнения необходимых вычислений за отведенное время при доступных затратах требуемых ресурсов.

Реализуемость достигается разумной абстракцией, отвлечением от второстепенных деталей, чтобы свести задачу к проблеме с известным решением. Условием реализуемости является возможность практического выполнения необходимых вычислений за отведенное время при доступных затратах требуемых ресурсов.

 

Выбор и обоснование метода

 

Модель решения задачи с учетом ее особенностей должна быть доведена до решения при помощи конкретных методов решения. Само по себе математическое описание задачи в большинстве случаев трудно перевести на язык машины. Выбор и использование метода решения задачи позволяет привести решение задачи к конкретным машинным операциям. При обосновании выбора метода необходимо учитывать различные факторы и условия, в том числе точность вычислений, время решения задачи на ЭВМ, требуемый объем памяти и другие.

Одну и ту же задачу можно решить различными методами, при этом в рамках каждого метода можно составить различные алгоритмы.

 Декомпозиция – научный метод, использующий структуру задачи и позволяющий заменить решение одной большой задачи решением серии меньших задач. В общей теории систем доказано, что большинство систем может быть декомпозировано на базовые представления подсистем. К ним относят: последовательное (каскадное) соединение элементов, параллельное соединение элементов, соединение с помощью обратной связи. Проблема проведения декомпозиции состоит в том, что в сложных системах отсутствует однозначное соответствие между законом функционирования подсистем и алгоритмом, его реализующим. Поэтому осуществляется формирование нескольких вариантов (или одного варианта, если система отображена в виде иерархической структуры) декомпозиции системы.

Алгоритмизация вычислительного процесса

 

На данном этапе составляется алгоритм решения задачи согласно действиям, задаваемым выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, и устанавливается последовательность выполнения блоков. Разрабатывается блок-схема алгоритма.  

 

 

Составление программы

 

При составлении программы алгоритм решения задачи переводится на конкретный язык программирования. Для программирования обычно используются языки высокого уровня, поэтому составленная программа требует перевода ее на машинный язык ЭВМ. После такого перевода выполняется уже соответствующая машинная программа.  

 

 

Отладка программы

 

Отладка заключается в поиске и устранении синтаксических и логических ошибок в программе.

В ходе синтаксического контроля программы транслятором выявляются конструкции и сочетания символов, недопустимые с точки зрения правил их построения или написания, принятых в данном языке. Сообщения об ошибках ЭВМ выдает программисту, при этом вид и форма выдачи подобных сообщений зависят от вида языка и версии используемого транслятора.

После устранения синтаксических ошибок проверяется логика работы программы в процессе ее выполнения с конкретными исходными данными. Для этого используются специальные методы, например, в программе выбираются контрольные точки, для которых вручную рассчитываются промежуточные результаты. Эти результаты сверяются со значениями, получаемыми ЭВМ в данных точках при выполнении отлаживаемой программы. Кроме того, для поиска ошибок могут быть использованы отладчики, выполняющие специальные действия на этапе отладки, например, удаление, замена или вставка отдельных операторов или целых фрагментов программы, вывод или изменение значений заданных переменных.  

 

Решение задачи на ЭВМ и анализ результатов

 

После отладки программы ее можно использовать для решения прикладной задачи. При этом обычно выполняется многократное решение задачи на ЭВМ для различных наборов исходных данных. Получаемые результаты интерпретируются и анализируются специалистом или пользователем, поставившим задачу.

 

Разработанная программа длительного использования устанавливается на ЭВМ, как правило, в виде готовой к выполнению машинной программы. К программе прилагается документация, включая инструкцию для пользователя. Чаще всего при установке программы на диск для ее последующего использования помимо файлов с исполняемым кодом устанавливаются различные вспомогательные программы (утилиты, справочники, настройщики и т. д.), а также необходимые для работы программ разного рода файлы с текстовой, графической, звуковой и другой информацией.

 

Компиляция и интерпретация программ

 

ЭВМ непосредственно выполняет программы на машинном языке программирования данной ЭВМ. При этом программа представляет собой набор отдельных команд компьютера. Эти команды являются достаточно «простыми», например, сложение, умножение, сравнение или пересылка отдельных данных. Каждая команда содержит в себе сведения о том, какая операция должна быть выполнена (код операции), с какими операндами (адреса данных или непосредственно сами данные) выполняются вычисления и куда (адрес) должен быть помещен результат.

Машинные языки были первыми языками программирования. Программирование на них затруднительно ввиду того, что, во-первых, эти языки различны для каждого типа ЭВМ, во-вторых, являются трудоемкими для большинства пользователей по причине необходимости знания особенностей конкретной ЭВМ и большого количества реализуемых ею операций (команд). Данные языки обычно используются для разработки системных программ, при этом чаще всего применяются специальные символические языки — Ассемблеры, близкие к соответствующим машинным языкам.

Человеку свойственно формулировать и решать задачи в выражениях более общего характера, чем команды ЭВМ. Поэтому с развитием программирования появились языки, ориентированные па более высокий уровень абстракции при описании решаемой на ЭВМ задачи. Эти языки получили название языков высокого уровня. Их теоретическую основу составляют алгоритмические языки, например, Паскаль, Си, Бейсик, Фортран, PL/1.

Для перевода программы, написанной на языке высокого уровня, в соответствующую машинную программу используются языковые процессоры. Различают два вида языковых процессоров: интерпретаторы и трансляторы.

Интерпретатор — это программа, которая получает исходную программу и по мере распознавания конструкций входного языка реализует действия, описываемые этими конструкциями.

Транслятор — это программа, которая принимает исходную программу и порождает на своем выходе программу, записываемую на объектном языке программирования (объектную программу). В частном случае объектным может служит машинный язык, и в этом случае полученную на выходе транслятора программу можно сразу же выполнить на ЭВМ. В общем случае объектный язык необязательно должен быть машинным или близким к нему (автокодом). В качестве объектного языка может служить и некоторый промежуточный язык.

Для промежуточного языка может быть использован другой транслятор или интерпретатор — с промежуточного языка на машинный. Транслятор, использующий в качестве входного язык, близкий к машинному (автокод или язык Ассемблера) традиционно называют Ассемблером. Транслятор с языка высокого уровня называют компилятором.

 

Одним из важнейших признаков классификации языков программирования является принадлежность их к одному из стилей, основными из которых являются следующие стили:

  • процедурный,

  • функциональный,

  • логический,

  • объектно-ориентированный.  

Процедурное программирование

 

Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».

Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании.

Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти, то есть значений исходных данных, в заключительное, то есть в результаты. Таким образом, с точки зрения программиста имеются программа и память, причем первая последовательно обновляет содержимое последней.

Процедурные языки характеризуются следующими особенностями:

  • необходимостью явного управления памятью, в частности, описанием переменных;

  • малой пригодностью для символьных вычислений;

  • отсутствием строгой математической основы;

  • высокой эффективностью реализации па традиционных ЭВМ.

Одним из важнейших классификационных признаков процедурного языка является его уровень. Уровень языка программирования определяется семантической (смысловой) емкостью его конструкций и степенью его ориентации на программиста. Язык программирования частично ликвидирует разрыв между методами решения различного рода задач человеком и вычислительной машиной. Чем более язык ориентирован на человека, тем выше его уровень. Дадим краткую характеристику реализованным на ПЭВМ языкам программирования в порядке возрастания их уровня.

Двоичный язык является непосредственно машинным языком. В настоящее время такие языки программистами практически не применяются.

Язык Ассемблера — это язык, предназначенный для представления в удобочитаемой символической форме программ, записанных на машинном языке. Он позволяет программисту пользоваться мнемоническими кодами операций, присваивать удобные имена ячейкам и областям памяти, а также задавать наиболее удобные схемы адресации.

Язык Макроассемблера является расширением языка Ассемблера путем включения в него макросредств. С их помощью в программе можно описывать последовательности инструкций с параметрами — макроопределения. После этого программист может использовать снабженные аргументами макрокоманды, которые в процессе ассемблирования программы автоматически замещаются макрорасширениями. Макрорасширение представляет собой макроопределение с подставленными вместо параметров аргументами.

Другими словами, язык Макроассемблера представляет средства определения и использования новых, более мощных команд как последовательности базовых инструкций, что несколько повышает его уровень.

Языки Ассемблера и Макроассемблера применяются системными программистами-профессионалами с целью использования всех возможностей оборудования ЭВМ и получения эффективной по времени выполнения и по требуемому объему памяти программы. На этих языках обычно разрабатываются относительно небольшие программы, входящие в состав системного программного обеспечения: драйверы, утилиты и другие.

Язык программирования С (Си) первоначально был разработан для реализации операционной системы UNIX в начале 70-х годов. В последующем приобрел высокую популярность среди системных и прикладных программистов. В настоящее время этот язык реализован па большинстве ЭВМ.

В С сочетаются достоинства современных высокоуровневых языков в части управляющих конструкций и структур данных с возможностями доступа к аппаратным средствам ЭВМ на уровне, который обычно ассоциируется с языком низкого уровня типа языка Ассемблера. Язык С имеет синтаксис, обеспечивающий краткость программы, а компиляторы способны генерировать эффективный объектный код.

Одна из наиболее существенных особенностей С состоит в нивелировании различий между выражениями и операторами, что приближает его к функциональным языкам. В частности, выражение может обладать побочным эффектом присваивания, а также может использоваться в качестве оператора. Нет также четкой границы между процедурами и функциями, более того, понятие процедуры не вводится вообще.

Синтаксис языка затрудняет программирование и восприятие составленных программ. Отсутствует и строгая типизация данных, что предоставляет дополнительные возможности программисту, но не способствует написанию надежных программ.

Basic (BeginnersAll-purposeSymbolicInstructionCode) — многоцелевой язык символических инструкций для начинающих) представляет собой простой язык программирования, разработанный в 1964 году для использования новичками. Он был разработан как простейший язык для непосредственного общения человека с вычислительной машиной. Поэтому первоначально работа велась в интерактивном режиме с использованием интерпретаторов. В настоящее время для этого языка имеются также и компиляторы.

Согласно концепциям, заложенным в Basic, этот язык в смысле строгости и стройности является антиподом языка Pascal. В частности, в нем широко распространены различные правила умолчания, что считается плохим тоном в большинстве языков программирования подобного типа.

Basic широко распространен на ЭВМ различных типов и очень популярен в среде программистов, особенно начинающих. Существует множество диалектов этого языка, мало совместимых между собой. Basic активно поглощает многие концепции и новинки из других языков. Поэтому он достаточно динамичен, и нельзя однозначно определить его уровень.

Pascal является одним из наиболее популярных среди прикладных программистов процедурным языком программирования, особенно для ПЭВМ. Разработанный в 1970 году швейцарским специалистом в области вычислительной техники профессором Н. Виртом, язык назван в честь французского математика и по замыслу автора предназначался для обучения программированию. Однако язык получился настолько удачным, что стал одним из основных инструментов прикладных и системных программистов при решении задач вычислительного и информационно-логического характера. В 1979 году был подготовлен проект описания языка — Британский стандарт языка программирования PascalBS6192, который стал также и международным стандартом ISO 7185.

В языке Pascal реализован ряд концепций, рассматриваемых как основа «дисциплинированного» программирования и заимствованных впоследствии разработчиками многих языков. Одним из существенных признаков языка Pascal является последовательная и достаточно полная реализация концепции структурного программирования. Причем это осуществляется не только путем упорядочивания связей между фрагментами программы по управлению, но и за счет структуризации данных. Кроме того, в языке реализована концепция определения новых типов данных на основе уже имеющихся. Этот язык, в отличие от языка С, является строго типизированным. Pascal характеризуется:

  • высоким уровнем;

  • широкими возможностями;

  • стройностью, простотой и краткостью;

  • строгостью, способствующей написанию эффективных и надежных программ;

  • высокой эффективностью реализации на ЭВМ.

Pascal реализован на ЭВМ различных типов, но наиболее распространен и развит для ПЭВМ. В настоящее время широко используются такие версии этого языка для ПЭВМ, как BorlandPascal и TurboPascal.

 

Функциональное программирование

 

Сущность функционального (аппликативного) программирования определена А. П. Ершовым как «... способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы па части является введение имени для функции, а единственным правилом композиции — оператор суперпозиции функции. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления».

Роль основной конструкции в функциональных языках играет выражение. К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций. Функция трактуется как однозначное отображение из Х^ в X, где Х — множество выражений.

Аппликативный язык программирования включает следующие элементы:

  • классы констант, которыми могут манипулировать функции;

  • набор базовых функций, которые программист может использовать без предварительного объявления и описания;

  • правила построения новых функций из базовых;

  • правила формирования выражений на основе вызовов функций.

Программа представляет собой совокупность описаний функций и выражения, которые необходимо вычислить. Данное выражение вычисляется посредством редукции, то есть серии упрощений, до тех пор, пока это возможно по следующим правилам: вызовы базовых функций заменяются соответствующими значениями; вызовы небазовых функций заменяются их телами, в которых параметры замещены аргументами.

Функциональное программирование не использует концепцию памяти как хранилища значений переменных. Операторы присваивания отсутствуют, вследствие чего переменные обозначают не области памяти, а объекты программы, что полностью соответствует понятию переменной в математике. В принципе, можно составлять программы и вообще без переменных. Кроме того, нет существенных различий между константами и функциями, то есть между программами и данными. В результате этого функция может быть значением вызова другой функции и может быть элементом структурированного объекта. Число аргументов при вызове функции не обязательно должно совпадать с числом параметров, указанных при ее описании. Перечисленные свойства характеризуют аппликативные языки как языки программирования очень высокого уровня.

Первым таким языком был LISP (LISTProcessing — обработка списков), созданный в 1959 году. Цель его создания состояла в организации удобства обработки символьной информации. Существенная черта этого языка — унификация программных структур и структур данных: все выражения записываются в виде списков.

 

Логическое программирование

 

Новую область — логическое, или реляционное программирование, — открыло появление языка PROLOG {Пролог} (PROgramminginLOGic — программирование в терминах логики). Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Так, имеется свыше 15 различных его реализации на ПЭВМ. Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта, рассматриваемых в данном учебном пособии.

Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общезначимости логической формулы, построенной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Это свидетельствует о декларативности языка логического программирования. Она метко выражена в формуле Р. Ковальского: «алгоритм = логика + управление». Языки логического программирования характеризуются:

  • высоким уровнем;

  • строгой ориентацией на символьные вычисления;

  • возможностью инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные;

  • возможной логической неполнотой, поскольку зачастую невозможно выразить в программе определенные логические соотношения, а также невозможно получить из программы все выводы правильные.

Логические программы, в принципе, имеют небольшое быстродействие, так как вычисления осуществляются методом проб и ошибок, поиском с возвратами к предыдущим шагам.

 

Обьектно-ориентированое программирование

 

Прототипом объектно-ориентированного программирования послужил ряд средств, входящих в состав языка SIMULA-67. Но в самостоятельный стиль оно оформилось с появлением языка SMALLTALK, разработанного А. Кеем в 1972 году и первоначально предназначенного для реализации функций машинной графики.

В основе объектно-ориентированного стиля программирования лежит понятие объекта, а суть его выражается формулой: «объект = данные + процедуры». Каждый объект интегрирует в себе некоторую структуру данных и доступные только ему процедуры обработки этих данных, называемые методами. Объединение данных и процедур в одном объекте называется инкапсуляцией и присуще объектно-ориентированному программированию.

Для описания объектов служат классы. Класс определяет свойства и методы объекта, принадлежащего этому классу. Соответственно, любой объект можно определить как экземпляр класса.

Программирование рассматриваемого стиля заключается в выборе имеющихся или создании новых объектов и организации взаимодействия между ними. При создании новых объектов свойства объектов могут добавляться или наследоваться от объектов-предков. В процессе работы с объектами допускается полиморфизм — возможность использования методов с одинаковыми именами для обработки данных разных типов.

К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java.

Язык C++ был разработан в начале 80-х годов Б. Страуструпом, сотрудником лаборатории Bell корпорации AT&T. Им была создана компактная компилирующая система, в которой за основу был взят язык С, дополненный элементами языков BCPL,Simula-67 и Algol-68. К июлю 1983 года появился язык С с классами, а чуть позднее — C++. К 1990 году была выпущена третья версия языка C++, принятая комитетом ANSI в качестве исходного материала для его стандартизации.

В 1990 году сотрудник корпорации Sun Д. Гослинг на основе расширения C++ разработал объектно-ориентированный язык Oak, основным достоинством которого было обеспечение сетевого взаимодействия различных по типу устройств. Новая интегрируемая в Internet версия языка, получила название Java. Первый броузер, который поддерживал язык Java, разработан программистом корпорации Sun П. Нафтоном и получил название HotJava. С января 1995 года Java получает распространение в Internet.

Согласно официальному определению авторов, Java является простым объектно-ориентированным и архитектурно-нейтральным языком интерпретирующего типа, обеспечивающим надежность, безопасность и переносимость, обладающим высокой производительностью в сочетании с многопоточностью и динамичностью.

Принципиальной разницей между Java и C++ является то, что первый из них является интерпретируемым, а второй — компилируемым. Синтаксис языков практически полностью совпадает.

С точки зрения возможностей собственно объектно-ориентированных средств язык Java обладает рядом преимуществ перед языком C++. Так, язык Java демонстрирует более гибкую и мощную систему инкапсуляции информации. Механизм наследования, реализованный в Java, обязывает к более строгому подходу к программированию, что улучшает надежность и понимаемость кода. Язык же C++ обладает сложной, неадекватной и трудной для понимания системой наследования. Возможности динамического связывания объектов одинаково хорошо представлены в обоих языках, однако, синтаксическая избыточность C++ заставляет и здесь отдать предпочтение языку Java.

В силу своей конструктивности идеи объектно-ориентированного программирования используются во многих универсальных процедурных языках. Так, например, в состав интегрированной системы программирования на языке PASCAL (корпорации BorlandInternational) версии 5.5 входит специальная библиотека объектно-ориентированного программирования TurboVision.

В последнее время многие программы, в особенности объектно-ориентированные, реализуются как системы визуального программирования. Отличительной особенностью таких систем является мощная среда разработки программ из готовых «строительных блоков», позволяющая создать интерфейсную часть программного продукта в диалоговом режиме, практически без кодирования программных операций. К числу объектно-ориентированных систем визуального программирования относятся: VisualBasic, Delphi, C++ Builder и Visual C++.

Информационное моделирование Объект, система, модель, моделирование

В своей деятельности человек повсеместно использует модели, то есть создает образ, копию того объекта, с которым ему приходится иметь дело. Продумывая план действий, представляя результат своих действий, человек строит модель на уровне мысли.      Модель - это искусственно созданный объект, дающий упрощенное представление о реальном объекте, процессе или явлении, отражающий существенные стороны изучаемого объекта с точки зрения цели моделирования. Моделирование - это построение моделей, предназначенных для изучения и исследования объектов, процессов или явлений.      Объект, для которого создается модель, называют оригиналом или прототипом. Любая модель не является абсолютной копией своего оригинала, она лишь отражает некоторые его качества и свойства, наиболее существенные для выбранной цели исследования. При создании модели всегда присутствуют определенные допущения и гипотезы.      Системный подход позволяет создавать полноценные модели. Особенности системного подхода заключаются в следующем. Изучаемый объект рассматривается как система, описание и исследование элементов которой не выступает как сама цель, а выполняется с учетом их места (наличие подзадач). В целом объект не отделяется от условий его существования и функционирования. Объект рассматривается как составная часть чего-то целого (сам является подзадачей). Один и тот же исследуемый элемент рассматривается как обладающий разными характеристиками, функциями и даже принципами построения. При системном подходе на первое место выступают не только причинные объяснения функционирования объекта, но и целесообразность включения его в состав других элементов. Допускается возможность наличия у объекта множества индивидуальных характеристик и степеней свободы. Альтернативы решения задач сравниваются в первую очередь по критерию "стоимость-эффективность".      Создание универсальных моделей - это следствие использование системного подхода.      Моделирование (эксперимент) может быть незаменимо. Мы не можем, например, устроить ядерную катастрофу, чтобы выяснить масштабы возможного заражения, а с помощью компьютера возможен расчет (и достаточно точный) интересующих исследователей параметров.      Моделирование - исследование явлений, процессов или систем объектов путем построения и изучения их моделей - это основной способ научного познания. В информатике данный способ называется вычислительный эксперимент и основывается он на трех основных понятиях: модель - алгоритм - программа.      Использование компьютера при моделировании возможно по трем направлениям:      1. Вычислительное - прямые расчеты по программе.      2. Инструментальное - построение базы знаний, для преобразования ее в алгоритм и программу.      3. Диалоговое - поддержание интерфейса между исследователем и компьютером.

Виды моделей. Информационная модель

Модель - общенаучное понятие, означающее как идеальный, так и физический объект анализа. Важным классом идеальных моделей является математическая модель - в ней изучаемое явление или процесс представлены в виде абстрактных объектов или наиболее общих математических закономерностей, выражающих либо законы природы, либо внутренние свойства самих математических объектов, либо правила логических рассуждений.      Границы между моделями различных типов или классов, а также отнесение модели к какому-то типу или классу чаще всего условны. Рассмотрим наиболее распространенные признаки, по которым классифицируются модели:

  • цель использования;

  • область знаний;

  • фактор времени;

  • способ представления.

По целям использования выделяются модели учебные, опытные, имитационные, игровые, научно-технические.      По области знаний выделяются модели биологические, экономические, исторические, социологические и т.д.      По фактору времени разделяются модели динамические и статические. Статическая модель отражает строение и параметры объекта, поэтому ее называют также структурной. Она описывает объект в определенный момент времени, дает срез информации о нем. Динамическая модель отражает процесс функционирования объекта или изменения и развития процесса во времени.      Любая модель имеет конкретный вид, форму или способ представления, она всегда из чего-то и как-то сделана или представлена и описана. В этом классе, прежде всего, модели рассматриваются как материальные и нематериальные.      Материальные модели - это материальные копии объектов моделирования.      Они всегда имеют реальное воплощение, воспроизводят внешние свойства или внутреннее строение, либо действия объекта-оригинала. Примеры: глобус - модель формы земного шара, кукла - модель внешнего вида человека, робот - модель действий человека на вредном производстве. Материальное моделирование использует экспериментальный (опытный) метод познания.      Нематериальное моделирование использует теоретический метод познания. По-другому его называют, абстрактным, идеальным. Абстрактные модели, в свою очередь, делятся на воображаемые и информационные.      Информационная модель - это совокупность информации об объекте, описывающая свойства и состояние объекта, процесса или явления, а также связи и отношения с окружающим миром.      Информационные модели представляют объекты в виде, словесных описаний, текстов, рисунков, таблиц, схем, чертежей, формул и т.д. Информационную модель нельзя потрогать, у нее нет материального воплощения, она строится только на информации. Ее можно выразить на языке описания (знаковая модель) или языке представления (наглядная модель).      Одна и та же модель одновременно относится к разным классам деления. Например, программы, имитирующие движение тел (автомобиля, снаряда, маятника, лифта и пр.). Такие программы используются на уроках физики (область знания) с целями обучения (цель использования). В то же время они являются динамическими, так как учитывают положение тела в разные моменты времени, и алгоритмическими по способу реализации.      Рассмотрим подробнее класс информационных моделей с позиции способов представления информации. Форма представления информационной модели зависит от способа кодирования (алфавита) и материального носителя.      Воображаемое (мысленное или интуитивное) моделирование - это мысленное представление об объекте. Такие модели формируются в воображении человека и сопутствуют его сознательной деятельности. Они всегда предшествуют созданию материального объекта, материальной и информационной модели, являясь одним из этапов творческого процесса. Например, музыкальная тема в мозгу композитора - интуитивная модель музыкального произведения.      Вербальное моделирование (относится к знаковым) - это представление информационной модели средствами естественного разговорного языка (фонемами). Мысленная модель, выраженная в разговорной форме, называется вербальной (от латинского слова verbalize - устный). Форма представления такой модели - устное или письменное сообщение. Примерами являются литературные произведения, информация в учебных пособиях и словарях, инструкции пользования устройством, правила дорожного движения.      Наглядное (выражено на языке представления) моделирование - это выражение свойств оригинала с помощью образов. Например, рисунки, художественные полотна, фотографии, кинофильмы. При научном моделировании понятия часто кодируются рисунками - иконическое моделирование. Сюда же относятся геометрические модели - информационные модели, представленные средствами графики.

Образно-знаковое моделирование использует знаковые образы какого-либо вида: схемы, графы, чертежи, графики, планы, карты (см. Рис.3). Например, географическая карта, план квартиры, родословное дерево, блок-схема алгоритма. К этой группе относятся структурные информационные модели, создаваемые для наглядного изображения составных частей и связей объектов. Наиболее простые и распространенные информационные структуры - это таблицы, схемы, графы, блок-схемы, деревья.      Знаковое (символическое выражено на языке описания) моделирование (рис. 4) использует алфавиты формальных языков: условные знаки, специальные символы, буквы, цифры и предусматривает совокупность правил оперирования с этими знаками. Примеры: специальные языковые системы, физические или химические формулы, математические выражения и формулы, нотная запись и т. д. Программа, записанная по правилам языка программирования, является знаковой моделью.

Одним из наиболее распространенных формальных языков является алгебраический язык формул в математике, который позволяет описывать функциональные зависимости между величинами. Составление математической модели во многих задачах моделирования хоть и промежуточная, но очень существенная стадия.      Математическая модель - способ представления информационной модели, отображающий связь различных параметров объекта через математические формулы и понятия.      В тех случаях, когда моделирование ориентировано на исследование моделей с помощью компьютера, одним из его этапов является разработка компьютерной модели.      Компьютерная модель - это созданный за счет ресурсов компьютера виртуальный образ, качественно и количественно отражающий внутренние свойства и связи моделируемого объекта, иногда передающий и его внешние характеристики.      Компьютерная модель представляет собой материальную модель, воспроизводящую внешний вид, строение или действие моделируемого объекта посредством электромагнитных сигналов. Разработке компьютерной модели предшествуют мысленные, вербальные, структурные, математические и алгоритмические модели.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]