вторник, 13 марта 2012 г.

Основные понятия программирования

Программирование - это раздел информатики, изучающий методы и приемы составления программ для компьютеров. Кроме того, программирование - это подготовка задачи к решению ее на компьютере.
Программа - это последовательность команд, понятных компьютеру.
Программа записывается в виде символов, к числу которых относятся латинские и русские буквы, цифры, знаки препинания и знаки операций.
Требования, предъявляемые к программе
1. Минимальные требования к компьютеру, на котором работает программа.
2. Ясность входных и выходных данных и простота программы.
3. Минимальное время создания программы и простота ее изменения.
4. Минимальное время работы программы, минимум занимаемой памяти и минимум использованных в программе операторов.
Чтобы программа удовлетворяла этим противоречивым требованиям, необходимо обладать искусством программирования.
Свойства программ - выполнимость, мобильность, правильность, эффективность.
Выполнимость - возможность выполнения программы на данном типе компьютеров.
Мобильность - возможность переноса программы на другой тип компьютеров.
Правильность программы - правильность результатов, получаемых с помощью данной программы.
Эффективность - минимум времени выполнения, минимум машинной памяти и других ресурсов компьютера.
Языки программирования - языки для записи программ для компьютеров. Это совокупность средств и правил представления алгоритма в виде, приемлемом для компьютера.
Оператор - выражение обозначающее и описывающее какую-либо операцию.
Типы языков программирования: машинные, машинно-ориентированные, алгоритмические, логические, функциональные, учебные, инструментальные, диалоговые, графические и т.д.
Алгоритмический язык - это формальный язык, предназначенный для записи алгоритмов.
Системы программирования - это набор средств ввода, редактирования, трансляции и выполнения программ на ЭВМ.
Транслятор - это комплекс программ, обеспечивающий перевод программы, написанной на символическом языке, в совокупность машинных команд.
Компилятор - это транслятор, обеспечивающий перевод программы, написанной на алгоритмическом языке, в совокупность машинных команд без ее выполнения в компьютере.
Интерпретатор - это транслятор, обеспечивающий перевод каждой конструкции алгоритмического языка в машинные команды и одновременное выполнение этой конструкции в компьютере.
Все системы (языки) программирования имеют свой транслятор, компилятор и интерпретатор.
Виды языков программирования:
1. Машинно-ориентированные языки (языки ассемблера).
2. Языки высокого уровня.
3. Командные языки баз данных.
Примеры языков программирования высокого уровня: Фортран, Алгол, Бейсик (Basic), Паскаль (Pascal), Си++, Пролог, Лисп, Форт и др.

Основные понятия языка программирования Турбо Паскаль
План


Некоторые сведения о системе программирования Турбо Паскаль.
Структура программы на Паскале.
Элементы языка Турбо Паскаль.
Арифметические операции и выражения.
Стандартные функции.
Оператор присваивания.


1. Некоторые сведения о системе программирования Турбо Паскаль


Язык Паскаль был разработан в 1971 году Никласом Виртом первоначально для целей обучения программированию. В настоящее время он получил широкое распространение по ряду объективных причин.
Во-первых, по своей идеологии Паскаль наиболее близок к современной методике и технологии программирования. В частности, он достаточно полно отражает идеи структурного программирования, что довольно хорошо видно даже из основных управляющих структур языка.
Во-вторых, Паскаль хорошо приспособлен для применения технологии разработки программ сверху-вниз (пошаговой детализации).
В-третьих, Паскаль содержит большое разнообразие различных структур данных, что обеспечивает простоту алгоритмов, а следовательно снижение трудоемкости при разработке программ.
Система программирования Turbo Pascal предназначена для выполнения этапов решения задачи на алгоритмическом языке Паскаль и включает в себя три главные компоненты: 1) редактор текстов; 2) компилятор; 3) исполнительную систему.
С помощью встроенного в систему текстового редактора можно формировать в памяти любые тексты, не только программы на Паскале. В частности, это могут быть исходные данные решаемой задачи в текстовой форме. Текст программы, созданный редактором, можно сохранить на диске в виде файла с именем следующего формата <имя файла>.раs, где pas — это стандартное расширение имени файла, созданного системным редактором. Имя файла задается пользователем.
Компиляция - это процесс перевода программы на язык машинных команд. Компилятор переводит программу с языка Паскаль на язык машинных команд. При этом проверяется соответствие программы правилам языка программирования (синтаксический и семантический контроль). При обнаружении ошибки компьютер выдает сообщение о ней пользователю и прекращает работу. В результате компиляции Turbo Pascal создает исполняемый файл с тем же именем, что и файл, содержащий программу, но с расширением ехе. Впоследствии этот файл может быть выполнен, как любой другой исполняемый файл.
Выполнение программы остается под контролем исполнительной системы. Она, в частности, помогает обнаружить ошибку в программе, если при исполнении произошел сбой. Пользователю сообщается причина сбоя и указывается место, где он случился в Паскаль-программе, происходит автоматический возврат в режим редактирования.
Turbo Pascal позволяет редактировать, компилировать, компоновать и выполнять Паскаль-программы. При этом пользователю предоставляется высокая скорость компиляции, удобство работы с компьютером и мощная библиотека процедур и функций.


2. Структура программы на Паскале


Программа на Паскале в общем случае состоит из нескольких файлов. Один из них содержит главную программу, а остальные – модули. Главная программа состоит из заголовка, блока и заканчивается точкой — признаком конца программы. В свою очередь, блок содержит разделы описаний и раздел операторов. В общем случае «скелет» программы можно представить следующим образом:
Спецификация программы }
program <имя программы> (заголовок программы);
uses (раздел объявления модулей);
label (раздел объявления меток);
const (раздел объявления констант);
type (раздел объявления типов);
var (раздел объявления переменных);
procedure(function) (раздел объявления подпрограмм: процедур или функций);
begin
<операторы > (раздел операторов, обязательная часть);
end.
Все указанные разделы отделяются друг от друга точкой с запятой.
Раздел операторов должен обязательно присутствовать в любой программе и является основным. Предшествующие разделы носят характер описаний и не обязательно содержаться в программе.
Заголовок программы состоит из зарезервированного слова program и имени программы (со списком параметров, заключенных в круглые скобки). Завершается заголовок точкой с запятой.
В Turbo Pascal имеются особенности в структуре программы. Так, заголовок программы необязателен и игнорируется компилятором. Порядок размещения разделов произвольный, можно создавать несколько одинаковых разделов. Единственное правило, которое необходимо выдерживать, - в любом месте программы можно использовать лишь элементы (метки, типы, константы, переменные, подпрограммы и т. д.), которые были определены ранее по тексту программы или являются предопределенными элементами языка. Исключением из этого правила может быть лишь определение типа-указателя через неопределенный до этого тип. Однако этот тип в дальнейшем должен быть обязательно определен.
Операторы в разделе операторов отделяются друг от друга точкой с запятой. Перед end точка с запятой не ставится, однако ее наличие не является ошибкой, а лишь означает присутствие между последним исполняемым оператором и служебным словом end еще одного оператора - пустого оператора. Заканчивается программа словом end, после которого обязательно ставится точка.
В начале программы необходимо располагать ее спецификацию – комментарий в фигурных скобках, содержащий назначение программы, данные о программисте, дату создания программы.
Язык программирования Паскаль является языком структурного программирования. В нем есть все необходимые управляющие конструкции для структурного построения программы. Наглядность такому построению придает структуризация внешнего вида текста программы. Основной используемый для этого прием — сдвиги строк, которые должны подчиняться следующим правилам:
конструкции одного уровня вложенности записываются на одном вертикальном уровне (начинаются с одной позиции в строке);
вложенная конструкция записывается смещенной по строке на несколько позиций вправо относительно внешней для нее конструкции.


3. Элементы языка Турбо Паскаль


Алфавит языка состоит из множества символов, включающих:
Латинские буквы: от A до Z (прописные) и от а до z. (строчные);
Знак подчеркивания _;
Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
Специальные символы: + — * / (знаки арифметических операций), = <> <= >= (операции отношения), : = (операции присваивания), [ ] . , ( ) : ; { } ^ @ $ # ‘ (ограничители). К спецсимволам относятся служебные слова, смысл которых определен однозначно (begin, end, for, div и т.д.).
Пробел — символ пробела (ASCI1-32) и все управляющие символы кода ASCII (от 0 до 31).
Идентификаторы. Идентификатором называется символическое имя определенного программного объекта. Такими объектами являются имена констант, переменных, типов данных, процедур и функций, программ. Идентификатор — это любая последовательность букв и цифр, начинающаяся с буквы. В Турбо Паскале к буквам приравнивается также знак подчеркивания. Строчные и прописные буквы в идентификаторах и служебных словах не различаются. Например: max, MAX, MaX и mAx — одно и то же имя. Длина идентификатора может быть произвольной, но значащими являются только первые 63 символа.
Комментарии. Конструкции, заключенные в фигурные скобки {} или в скобки вида (* *) являются комментариями, могут занимать несколько строк и игнорируются компилятором.
Строка, начинающаяся с символов {$ или (*$, является директивой компилятора. За этими символами следует мнемоника команды компилятора. Буквы русского алфавита употребляются только в комментариях, в литерных и текстовых константах.


4. Арифметические операции и выражения


Знаки операций предназначены для обозначения тех или иных арифметических, логических или других действий. Они бывают двух типов: состоящие из небуквенных символов (например, +, -, * и т.д.) и буквенные операции (например, not, mod, div и т. д.), представляющие собой зарезервированные слова. Операции над данными делятся на унарные (применимые к одному операнду) и бинарные (применимые к двум операндам). Приведем примеры бинарных арифметических операций (в таблице буква I обозначает целые типы, R — вещественные типы):

Знак
Выражение
Типы операндов
Тип результата
Операция
+
А+В
R,R
I,I
I,R; R,I
R
I
R
Сложение
-
А-В
R,R
I,I
I,R; R,I
R
I
R
Вычитание
*
А*В
R,R
I,I
I,R; R,I
R
I
R
Умножение
/
А/В
R,R
I,I
I,R; R,I
R
R
R
Вещественное деление
Div
A div B
I, I
I
Целое деление
Mod
A mod B
I, I
I
Остаток от деления


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


Описание: Основные понятия языка программирования Турбо Паскаль


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


5. Стандартные функции


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

Обращение
Тип аргумента
Тип результата
Тип действия
pi
-
R
Число π
abs(x)
I, R
I, R
Модуль (абсолютная величина) числа х
sqr(x)
I, R
I, R
Квадрат х
sqrt(x)
I, R
R
Корень квадратный из х (х≥0)
sin(x)
I, R
R
Синус х (х в радианах)
cos(x)
I, R
R
Косинус х (х в радианах)
arctan(x)
I, R
R
Арктангенс х (результат в радианах)
exp(x)
I, R
R
Экспонента е в степени х (е≈2,71828)
ln(x)
I, R
R
Натуральный логарифм х (x>0)
trunc(x)
R
I
Целая часть х
int(x)
I, R
R
Целая часть х
round(x)
R
I
Округление х до ближайшего целого
frac(x)
I, R
R
Дробная часть х
random
-
I
Случайное число [0,1)
random(x)
I
R
Случайное число [0,х)
dec(x,[n])
I
I
Уменьшение х на n, при отсутствии n – на 1
inc(x,[n])
I
I
Увеличение х на n, при отсутствии n – на 1
odd(x)
Longint
Boolean
true, если значение x нечетное;
false, если x четное
ord(x)
любой порядковый
Longint
Порядковый номер значения х в его типе. Если х – символ, то функция возвращает код символа
pred(x)
любой порядковый
тот же, что для x
Предыдущее относительно х значение в его типе
succ(x)
любой порядковый
тот же, что для x
Следующее относительно х значение в его типе
chr(x)
Byte
Char
Определяет символ с указанным кодом (х – число, определяющее код символа)


Турбо Паскале не содержит некоторые часто используемые математические функции, поэтому при их вычислении используют эквивалентные математические формулы:

Функция
Эквивалентная математическая формула
Запись в программе
ax
Описание: Основные понятия языка программирования Турбо Паскаль
exp(x*ln(a))
tg(x)
Описание: Основные понятия языка программирования Турбо Паскаль
sin(x)/cos(x)
arcsin(x)
Описание: Основные понятия языка программирования Турбо Паскаль
arctan(x/sqrt(1-x*x))
arccos(x)
Описание: Основные понятия языка программирования Турбо Паскаль
arctan(sqrt(1-x*x)/x)
logax
Описание: Основные понятия языка программирования Турбо Паскаль
ln(x)/ln(a)


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


6. Оператор присваивания


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


Var
х, а : real;
. . . . .
х:=2.5;
а:=1.25;
х:=х+а;


После выполнения этих операторов переменная х будет иметь значение 3.75, так как первоначально произойдет вычисление выражения х + а в виде сложения двух констант: 2.5+ 1.25 = 3.75, а затем это значение присваивается переменной х (предыдущее значение х, равное 2.5, заменится новым - 3.75).
Следует обратить внимание на следующее правило: типы переменной и выражения должны быть одинаковыми. Исключение составляет случай, когда выражение имеет целый тип, а переменная — вещественный.

Комментариев нет:

Отправить комментарий