При решении задач в различных областях деятельности приходится строить различные модели. Модель– формализованное представление реального объекта, процесса или явления, выраженное различными средствами: математическим соотношением, числами, текстами, графиками, рисунками, словесным описанием, материальным объектом. Адекватная модель (верно отображающая важнейшие особенности реальных объектов или явлений), позволяет спрогнозировать поведение объекта в той или иной ситуации, описать процесс развития явления во времени, вовремя получить и использовать нужную информацию.
Виды моделей
- по области использования – учебные, опытные, игровые, имитационные, научно-исследовательские модели;
- по временному фактору – статические и динамические модели;
- по форме представления модели – математические, геометрические, словесные, логические, специальные (ноты, химические формулы и т.п.).
- по способу представления модели делят на:
û информационные – совокупность знаковой информации, характеризующая свойства и состояние объекта, процесса или явления, делят на знаковые и вербальные;
û предметные (материальные) – глобус, макет здания, модели кристаллических решеток и т.д.
Типы информационных моделей
По отражению систем объектов с различными структурами, делятся на 3 типа:
- табличные (реляционные) – содержат перечень однотипных объектов;
- иерархические (древовидные) – содержат объекты, распределенные по уровням;
- сетевые – применяются для систем со сложной структурой.
2. Алгоритмизация.
После построения модели необходимо выполнить обработку информации (данных), связанных с данной моделью. Последовательность действий, которую необходимо выполнить над исходными данными, чтобы достичь поставленной цели, принято называть алгоритмом.
Алгоритмом называется последовательность четких однозначных указаний, которые, будучи применены к определенным имеющимся данным, обеспечивают получение требуемого результата.
Свойства алгоритмов
1. определенность (детерминированность) – каждая команда алгоритма должна определять однозначное действие исполнителя (т.е. четкое исполнение команд приводит к одному и тому же, заранее определенному результату);
2. понятность – алгоритм, составленный для конкретного исполнителя, должен включать только свою систему команд и не должен быть рассчитан на принятие каких-либо самостоятельный решений исполнителем, не предусмотренных составлением алгоритма (нельзя повару поручить работу токаря);
3. результативность (конечность) – исполнение алгоритма должно завершиться за конечное число шагов;
4. возможность исполнения – в тех или иных конкретных условиях;
5. дискретность– разделение выполнения решения задачи на отдельные операции, выполняемые исполнителем по определенным командам;
6. массовость (универсальность) – обеспечивающие решения всего класса задач данного типа (не является обязательным).
Процесс разработки алгоритма называется алгоритмизацией.
Способы представления алгоритмов
1. словесный – состоит из словесного перечня действий в виде предложений. Недостаток – отсутствие четкой формализации и наглядности выполнения процесса. Достоинство – можно описывать алгоритмы с любой степенью детализации.
2. формульно-словесный – основан на задании инструкций о выполнении конкретных действий в четкой последовательности в сочетании со словесными пояснениями. Этот способ более компактен, но не является строго формальным.
3. табличный– задается в виде таблиц и расчетных форм. Наиболее часто используется в экономических расчетах.
4. операторный– вычислительный процесс изображается в виде последовательности символов (операторов). Они обозначают группы стандартных и нестандартных операций, реализующих законченную процедуру с указанием связи между отдельными операторами. Этот способ значительно упрощает составление программы для компьютера, вместо операторов подставляются соответствующие команды, недостаток – малая наглядность.
5. графический– на языке блок-схемы;
блок-схема– графическая интерпретация алгоритма, представляющая набор геометрических фигур, каждая из которых изображает какую-либо операцию или действие. Форма символов и правила составления схем алгоритмов установлены государственными стандартами: ГОСТ 19.701-90 «Схемы алгоритмов, программ, данных и систем».
Основные элементы для построения блок-схем:
Наименованиеблока
Графическое представление блока
Функция блока
процесс
формирование новых значений, выполнение арифметических или логических операций или действий, результаты которых запоминаются в оперативной памяти ЭВМ
решение – проверкаусловий
а) выбор одного из двухнаправлений выполнения алгоритма в зависимости от некоторого условия;
б) выбор одного из «n» направлений выполнения алгоритма в зависимости от некоторых условий при n>2;
модификация
организация циклических конструкций;
предопределенный процесс
вычисление по подпрограмме, использование ранее созданных и отдельно описанных алгоритмов;
начало-конец программы
вход и выход в подпрограммах;
ввод-вывод данных
связь алгоритма с внешним миром; вывод может осуществляться на бумагу, на экран монитора, на магнитный диск или ленту;
направление линий потока
стрелки в любом направлении.
Одним из основных методов современной технологии алгоритмов является метод структурного проектирования. Любой алгоритм может быть построен из комбинаций тех базовых структур:
(a) Линейный алгоритм (следование) – последовательность блоков, каждый из которых имеет по одному входу и по одному выходу, и выполняется в программе один раз;
(b) Разветвляющийся алгоритм (развилка) – алгоритм, в котором в зависимости от значений некоторого признака производится выбор одного из нескольких направлений, называемых ветвями. В основе организации разветвления лежит проверка логического условия, которое может быть истинно или ложно. Частный вид логического условия – это операции типа =, ≠, ≤, ≥, >, <.
да нет
(c) Циклический алгоритм (повтор) – в зависимости от выполнения или невыполнения какого-либо условия выполняется повторяющаяся последовательность действий, называющаяся телом цикла. Вложенным называется цикл, находящийся внутри тела другого цикла. Различают циклы с предусловием и постусловием:
Цикл с предусловием Цикл с постусловием
По способу организации выхода из цикла можно разделить:
1. арифметические– количество повторений заранее известно или может быть легко вычислено;
2. итерационные– количество повторений заранее не известно.
3. Программирование.
Основные понятия
Языки программирования – специально разработанные искусственные языки, предназначенные исключительно для записи алгоритмов, исполнение которых поручается ЭВМ.
Обычный разговорный язык состоит из четырех основных элементов: символов, слов, словосочетаний и предложений. Алгоритмический язык содержит подобные элементы, только слова называют элементарными конструкциями, словосочетания – выражениями, предложения – операторами. Алгоритмический язык (как и любой другой язык), образуют три его составляющие: алфавит, синтаксис и семантика.
Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т.д.), которые могут быть использованы при написании программы.
Синтаксис – правила построения из символов алфавита специальных конструкций, с помощью которых составляется алгоритм.
Семантика – система правил толкования конструкций языка.
Таким образом, программа составляется с помощью соединения символов алфавита в соответствии с синтаксическими правилами и с учетом правил.
Программа – это последовательность инструкций, предназначенных для выполнения компьютером. В настоящее время программы оформляются в виде текста, который записывается в файлы.
Программирование – это теоретическая и практическая деятельность решения задачи средствами конкретного языка программирования и оформления полученных результатов в виде программы.
Технологический процесс разработки программы на некотором языке программирования включается:
– редактирование – написание и исправление исходного текста программы (или ее части в виде текстового файла);
– компиляция – перевод исходного текста программы в машинные коды;
– отладка – локализация и исправление ошибок (синтаксических, времени выполнения – недопустимые действия, алгоритмической), выявленных во время исполнения программы.
После окончательной отладки программа документируется, т.е. к ней прилагается описание назначения программы и инструкция по эксплуатации.
4. Классификация языков программирования.
Существуют различные классификации языков программирования.
а) в наиболее распространенной они делятся на языки:
- низкого уровня– машинные языки и языки символического кодирования (Автокод, Ассемблер).Все языки низкого уровня ориентированы на определенный тип компьютера, т. е. являются машинно-зависимыми. Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.);
- высокого уровня – Фортран, Алгол, Кобол, Паскаль, Бейсик, Си, Пролог и т.д., они машинно-независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов, но занимают больше памяти и медленнее выполняются, чем программы на машинных языках;
- сверхвысокого уровня – Pythlon, Lua, Ruby.
Языки высокого уровня работают через трансляционные программы –трансляторы, которые преобразуют исходный код в последовательность команд машинного языка. Создание испольняемого файла исходного текста программы предполагает выполнение процессов – компиляции и компоновки. Существует два основных вида трансляторов:
- интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и сразу же их выполняют;
- компиляторы, которые сканируют исходный код для создания текста программы на машинном языке, которая затем выполняется отдельно.
б) другая классификация:
- вычислительные (Фортран, Паскаль, Алгол, Бейсик, Си и др.);
- языки символьной обработки (Лисп, Пролог, Снобол и др. )
5. Образец работы в программе Free Pascal.
1. Запустить программу Free Pascal.
2. Создать новый файл – в горизонтальном меню выбрать пункт File → команду New from template…
3. Выбрать из доступных шаблонов – Program → Ok.
4. В появившемся окне ввести название программы – primer_1→Ok.
В появившемся окне ввести список, подключаемых модулей – Ctr, Graph→Ok.
6. В появившемся окне набрать всю программу строго по образцу –
Program primer_1;
Uses Ctr, Graph;
Var
D,r,e,x,y: Integer;
Begin
d:=Detect;
InitGraph(d,r,’’);
x:=GetmaxX Div 7;
y:=GetmaxY Div 7;
Rectangle(x,y,6*x,6*y);
SetViewPort(x+1,y+1,6*x-1,6*y-1,ClipOn);
Repeat
SetColor(succ(Random(White)));
SetLineStyle(0,0,2*Random(2)+1);
x:=Random(GetMaxX);
y:=Random(GetMaxY);
Circle(x,y,Random(GetMaxY Div 4));
Delay(50);
Until KeyPressed;
CloseGraph;
End.
7. Сохранить файл с таким же именем, как программа – primer_1.
8. Далее программу необходимо скомпилировать – выбрать в горизонтальном меню пунк Compile → команду Compile.
9. Если в программе нет ошибок, то появится надпись – Press any key и тогда можно нажать любую клавишу.
10. Чтобы запустить программу – выбрать в горизонтальном меню пункт Run – команду Run.
11. В результате выполнения данной команды получится следующая картинка.