Программное
обеспечение ЭВМ. Система программирования: основные функции и компоненты. Структура и синтаксис программы,
арифметические операции и математические функции языка Паскаль.
Современный компьютер представляет собой двуединую систему, состоящую из аппаратной части (технических устройств) и информационной части (программного обеспечения). ПО – это совокупность программ, хранящихся на устройствах долговременной памяти компьютера и предназначенных для массового использования. Существует классификация ПО, согласно которой все программы делятся на системные, прикладные и системы программирования.
Прикладное ПО – это программы, которые позволяют решать задачи пользователя. К прикладному ПО относят инструментальные программные средства общего назначения (текстовые редакторы, графические редакторы, СУБД, табличные процессоры и др.), инструментальные программные средства специального назначения (экспертные системы, системы мультимедиа, гипертекстовые системы и др.) и программные средства профессионального уровня, ориентированные на достаточно узкую предметную область (АСНИ – автоматизированные системы научных исследований, САПР – системы автоматизированного проектирования, АСУ – автоматизированные системы управления и др.).
Системное ПО – это программы, предназначенные для обслуживания самого компьютера и управления работой его устройств. Системное ПО состоит из операционной системы и сервисных программ. Операционная система дополняет аппаратные средства компьютера, позволяя прикладным программам обращаться к внешним устройствам, а пользователю управлять работой машины с помощью соответствующих команд. Сервисные программы служат следующим целям: с их помощью производится начальная разметка дисков, установка параметров внешних устройств, тестирование оперативной памяти и др. аппаратуры, выдача информации на печать, стыковка с другой машиной или локальной сетью и др.
Системы программирования – это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования. Системы программирования предоставляют сервисные возможности программистам для разработки их собственных компьютерных программ. Разработку средств системного ПО и систем программирования принято называть системным программированием; разработку прикладных программ называют прикладным программированием.
Разработка любого системного и прикладного ПО осуществляется с помощью систем программирования, в состав которых входят:
§ трансляторы с языков высокого уровня;
§ средства редактирования, компоновки и загрузки программ;
§ макроассемблеры (машинно-ориентированные языки);
§ отладчики машинных программ.
Транслятор – это комплекс программ, обеспечивающий перевод программы, написанной на символическом языке, в совокупность машинных кодов. В зависимости от функционального назначения выделяют два основных вида трансляторов: компилятор и интерпретатор.
Компилятор – это транслятор, обеспечивающий перевод программы с алгоритмического языка на машинный без ее выполнения.
Интерпретатор – это транслятор, обеспечивающий перевод каждой конструкции алгоритмического языка в машинный код с одновременным исполнением.
Отладчики – это специальные программы, предназначенные для трассировки (отслеживания выполнения программы в пооператорном варианте), идентификации места и вида ошибок в программе, «наблюдения» за изменением значений переменных, выражений и т.д.
Системы программирования, как правило, включают в себя:
§ текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;
§ загрузчик программы (Load), позволяющий выбрать из директории нужный текстовый файл программы;
§ запускатель программ (Run), осуществляющий процесс выполнения программы;
§ компилятор (Compile);
§ отладчик (Debug);
§ диспетчер файлов (File), предоставляющий возможность выполнять операции с файлами: сохранение, поиск, уничтожение и т.п.
Ядро системы программирования составляет язык. Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.
Существующие языки программирования можно разделить на две группы:
1) процедурные: - низкого уровня,
- высокого уровня,
2) непроцедурные: - объектно-ориентированные,
- декларативные.
Процедурные (или алгоритмические) программы представляют собой систему предписаний для решения конкретной задачи. Роль компьютера сводится к механическому выполнению этих предписаний.
Языки низкого уровня (машинно-ориентированные) позволяют создавать программы из машинных кодов. С ними трудно работать, но созданные с их помощью программы занимают меньше места в памяти и работают быстрее (н-р, языки Автокоды, Ассемблеры).
Программы на языках высокого уровня близки к естественному (английскому) языку и представляют набор заданных команд.
ЯП высокого уровня имеют следующие достоинства:
- алфавит языка значительно шире машинного, это делает его гораздо более выразительным;
- конструкции команд отражают содержательные виды обработки данных и задаются в удобном для человека виде;
- используется аппарат переменных и действия с ними;
- поддерживается широкий набор типов данных.
К процедурным языкам относятся такие языки программирования, как Algol, Fortran, Basic, Pascal, C.
Примером языков ООП являются C++, Java.
Классами декларативных языков являются функциональные языки (н-р, Lisp) и логические языки (н-р, Prolog).
Структура и синтаксис программы, арифметические операции и
математические функции языка Паскаль
Каждый ЯП имеет алфавит, словарный запас, грамматику, синтаксис.
Алфавит – фиксированный для данного
языка набор основных символов, допускаемых для составления текста программы на
этом языке.
Синтаксис – система правил, определяющих допустимые конструкции ЯП из букв алфавита.
В языке Паскаль все компоненты формируются из множества символов кода ASCII. Элементы алфавита можно условно разделить на 4 группы:
1. Символы, используемые в идентификаторах.
2. Разделители.
3. Специальные символы.
4. Неиспользуемые символы.
Идентификатор – это имя любого объекта программы, которое может включать буквы, цифры и символ подчеркивания. В качестве букв используются 26 латинских букв от A до Z. В идентификаторах цифры могут присутствовать, но не стоять на первой позиции.
Разделители используются для отделения друг от друга идентификаторов, чисел, зарезервированных слов. В качестве разделителя можно использовать, например, пробел, «Enter». В любом месте программы, где можно поместить один разделитель, можно поместить их любое количество и в любом сочетании. Это позволяет сделать программу удобной и читабельной.
Специальные символы: знаки пунктуаций, знаки операций, зарезервированные слова.
Знаки пунктуаций:
{} – комментарий,
[] – выделение индексов массивов, элементов множеств, размеров строки,
() – выделение выражений, списков параметров,
' («апостроф») – для выделения символа или строковой константы,
:= - присваивание значения переменной, типизированной константы или функции,
; - разделение предложений программы,
: - отделение переменной от типа,
, - разделение элементов списка,
.. – разделение границ диапазона,
. – обозначение конца программы, отделение в вещественном числе целой части от дробной, отделение полей в записи.
Знаки операций: состоят из небуквенных символов (+, – , *, / ), состоят из буквенных символов (div, mod и др.)
Зарезервированные слова – это служебные слова, которые используются только по своему прямому назначению и их переопределять нельзя (begin, procedure, function и др.).
Неиспользуемые символы: некоторые символы кодировки ASCII, например, %, “, включая буквы русского алфавита не используются в языке Паскаль.
Любая программа на языке Паскаль является текстовым файлом с собственным именем и расширением .pas.
Составные части программы:
1. Заголовок: PROGRAM <имя>
2. Раздел описаний
3. begin
4. Раздел операторов
5. end.
Раздел описаний предназначен для объявления всех встречающихся в программе данных и их характеристик: имя, тип, возможные значения. Этот раздел в свою очередь содержит объявление меток, констант, типов, переменных, процедур и функций. Эти разделы должны располагаться в строго перечисленном порядке.
Метки объявляются label,
Константы const,
Типы type,
Переменные var,
Процедуры procedure,
Функции function.
Постоянные величины (константы) чаще всего бываю числовыми или символьными. Значения символьных констант заключаются в апострофы. Постоянные величины описываются в разделе констант по схеме:
Const <имя> = <константа>
Например, const
pi = 3.14159; k = -15; s = '
площадь ';
Переменные описываются в разделе описания переменных по схеме:
Var <список имен
переменных>: <тип>
Например, var a, b, c: real;
k, l: integer;
p: boolean;
Описание перечисляемого типа выполняется в разделе типов по схеме:
Type <имя
типа> = <список имен>
Например, type days = (mon, tue, wed, thu, fri, sat, san);
var d: days;
В разделе операторов записывается последовательность действий, исполняемых оператором. Они разделяются между собой «;».
Ввод исходных данных с клавиатуры происходит по оператору
read (<список переменных>) или
readln (<список переменных>).
Вывод результатов производится по оператору
write (<список вывода>) или
writeln (<список вывода>).
Математические функции: sqr(x), sqrt(x), abs(x), sin(x), cos(x), tan(x), ln(x), int(x) – целая часть от x, random(x) – случайное число в диапазоне от 0 до x, round(x) – целое число, полученное из вещественного по правилу округления и др.