Охарактеризовать алфавит, идентификаторы и структуру типов данных языка программирования Pascal
Наимен.функц. | Результ. Вычисл-я | Наимие фун. | Резуль. Выч-ия |
abs(x) | абсолютное значение (модуль) x | Sqr(x) | значение х в квадрате |
sin(x) | синус x (в радианах) | Exp(x) | значение экспоненты в степени х |
cos(x) | косинус x (в радианах) | Ln(x) | натуральный логарифм х |
arctan(x | арктангенс х | Frac(x) | дробная часть х |
Sqrt(x) | квадратный корень из х | Int(x) | целая часть х |
При записи программ языка Pascal разрешены следующие символы:
· буквы латинского алфавита от А до Z (в любом регистре), а также знак подчеркивания _;
· цифры от 0 до 9;
· специальные символы > < = + - / * [ ] ( ) { } . , : ^ @ ’ $ # ;
· пары символов (их нельзя разделять пробелами) <> <= >= := .. (* *) (. .)
Также при создании программ могут использоваться некоторые зарезервированные слова, например: array, begin, end и др.
Примечание. Буквы русского алфавита (а-я, А-Я) могут быть использованы в программах только в качестве строковых выражений и должны быть заключены в апострофы, например ’Введите значение переменной’.
Для обозначения констант, переменных, процедур, функций и т.д. в программах применяются идентификаторы – неделимые последовательности символов алфавита.
Идентификаторы могут иметь длину до 127 символов, но значащими являются только первые 63 символа. Идентификатор должен начинаться с буквы или символа подчеркивания, не должен содержать пробелов и специальных символов, например: K, SUM, _P, N1.
Любые данные, т.е. константы, переменные, значения функций или выражений характеризуются в Pascal своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Общая структура типов данных языка Pascal приведена на рисунке.
I – параметр цикла N – количество повторов цикла |
К простым типам относят порядковые и вещественные типы. Порядковые типы отличаются тем, что каждый из них имеет конечное число значений, и, следовательно, каждому из значений можно сопоставить некоторое целое число – его порядковый номер. Количество же значений вещественных типов настолько велико, что сопоставить с каждым из них целое число не представляется возможным.
Примеры простых типов языка Pascal: целый тип Integer (диапазон допустимых значений от –32768 до 32767), длинное целое Longint (диапазон значений от –2147483648 до 2147483647), вещественный тип Real, логический тип Boolean, символьный тип Char.
В отличие от простых типов, любой из структурированных (составных) типов характеризуется множественностью образующих этот тип элементов, т.е. переменная или константа структурированного типа всегда имеет несколько компонентов.
43 Привести основные арифметические и логические операции языка Pascal. Дать примеры стандартных математических функций языка Pascal
К арифметическим операциям языка программирования Pascal относятся сложение (+), вычитание (-), умножение (*), деление (/), целая часть от деления (div), нахождение остатка от деления (mod). Операции div и mod записываются по тем же правилам, что и обычные арифметические операции, но при этом, например, 7 div 3=2; 7 mod 3=1;
Основными логическими операциями языка Pascal являются логическое «и» (and), логическое «или» (or), отрицание (not);
Приоритет выполнения операций в выражениях:
1) унарная операция not;
2) мультипликативные операции *, / , div, mod, and;
3) аддитивные +, - , or;
4) операции отношений (больше (>), меньше (<), равно (=), неравно (<>), больше либо равно (>=), меньше либо равно (<=)).
Приоритет операций убывает в указанном порядке, т.е. в первую очередь в выражениях выполняются унитарные операции, в последнюю очередь – операции отношений.
Действия в выражении выполняются слева направо с соблюдением старшинства. Для изменения порядка выполнения действий используются круглые скобки.
При записи выражений языка Pascal также могут использоваться различные встроенные процедуры и функции. Наиболее часто употребляемые функции называют стандартными; они не требуют предварительного описания в программе.
Примеры стандартных математических функций языка Pascal:
Например, математическое выражение записывается на языке Pascal как SQRT(ABS(SIN(X))).
44 Охарактеризовать структуру программ языка Pascal
Общая структура программ языка Pascal имеет вид:
· Заголовок программы;
· Раздел подключения модулей;
· Раздел описаний;
· Раздел исполняемых операторов.
Заголовок программы создается при помощи служебного слова program и имеет вид program nаме, где nаме – задаваемое автором имя программы. Заголовок программы несет чисто смысловую нагрузку и может отсутствовать, однако его рекомендуется использовать для быстрого распознавания нужных программ.
Раздел подключения модулей состоит из зарезервированного слова Uses и списка подключаемых стандартных и пользовательских библиотечных модулей, например, Uses Graph.
В разделе описаний объявляются идентификаторы используемых в программе типов, констант, переменных, а также метки, процедуры и функции. Раздел описаний может состоять из следующих подразделов, которые могут следовать в произвольном порядке:
· описание меток (осуществляется с помощью служебного слова label);
· описание констант (с помощью служебного слова const);
· описание типов (с помощью слова type);
· описание переменных (при помощи слова var);
· описание процедур (с помощью служебного слова procedure);
· описание функций (с помощью слова function).
Раздел исполняемых операторов начинается с ключевого слова begin и заканчивается словом end с точкой на конце (end.). Данный раздел представляет собой выполняемую часть программы. Операторы могут располагаться при этом в строках программы произвольно, в любом количестве в одной строке. Обязательное условие – все операторы программы должны отделяться друг от друга символом «;» («точка с запятой»).
Любой из разделов программы - раздел описаний или раздел операторов - может быть пустым, т.е. может не содержать никаких описаний или исполняемых операторов.
45 Охарактеризовать оператор присваивания и операторы ввода и вывода данных языка программирования Pascal. Привести форматы вывода данных
Оператор присваивания (:=) предписывает выполнить выражение, заданное в его правой части и присвоить результат переменной, указанной в левой части. Переменная и выражения должны быть совместимы по типу.
Примеры присваивания: а:=21; х:=a mod 2; y:=sin(x); z:=x+y;
Для организации ввода данных в языке Pascal используется процедура Read.
В общем случае данная процедура имеет вид Read(a1, а2, а3, … ), где a1, а2, а3, … - список вводимых переменных, например, Read(x, y).
Как только в программе встречается процедура Read, программа приостанавливает свою работу и ожидает ввода с клавиатуры соответствующих значений. При этом данные значения будут по очереди присваиваться переменным, перечисленным в списке ввода. После нажатия клавиши Enter выполнение программы продолжается с оператора, следующего за Read.
В списке ввода значения разделяются между собой пробелами. Присваивание значений выполняется слева направо в соответствии с порядком следования переменных в процедуре Read.
Кроме процедуры Read, Pascal допускает использование процедуры ввода ReadLn (сокращение от ReadLine). Различие между данными процедурами состоит в том, что после выполнения ReadLn дальнейшее считывание данных будет осуществляться с новой строки, т.е. осуществляется переход к следующей строке экрана.
Процедура, выводящая содержимое переменных на экран, называется процедурой вывода данных.
В Pascal данная процедура записывается как Write(p1, p2, р3, …), где p1, p2, р3, … - список констант и/или переменных, разделенных запятой, например, Write ('Сумма=', S).
Процедура Write осуществляет вывод значений выражений, приведенных в списке, на текущую строку до ее заполнения. Для перехода к следующей строке экрана используется процедура WriteLn (сокращение от WriteLine).
В процедурах вывода Write и Writeln имеется возможность задания ширины полей вывода данных. Например, если s:=71.341893, то при использовании формата вывода вида Writeln(s:5:2) вывод s будет производиться в форме с фиксированной точкой в 5 позиций (включая отрицательный знак и точку), из которых 2 позиции будет отведено для вывода цифр дробной части, т.е. в виде 71.34.
При выводе значений переменных целого типа задается количество позиций для числа (включая отрицательный знак), например, Writeln(i:8). В случае вывода значений символьных и строковых переменных формат определяет число позиций для вывода значения текста.
Если формат вывода не задавать, то значения целых и строковых переменных выводятся полностью, а вещественных - в форме с плавающей точкой с количеством цифр, соответствующих типу переменной, т.е. парой чисел вида <мантисса>Е<порядок>. Символ «Е» при этом имеет значение «умножить на 10 в степени».
46 Охарактеризовать операторы ветвления языка Pascal
Для организации ветвления в языке программирования Pascal используются так называемые условный оператор и оператор выбора (множественного ветвления).
Условный оператор используется в случаях, когда в алгоритме решения задачи предусмотрено два альтернативных пути, т.е. ход действий зависит от выполнения некоторого заданного условия - так называемого логического выражения (см. рисунок).
Рисунок Блок-схема алгоритма ветвления
Условный оператор языка Pascal имеет следующий общий вид:
IF <условие> THEN <оператор 1> ELSE <оператор 2>;
Здесь IF, THEN, ELSE – зарезервированные слова (если, то, иначе), <условие> – логическое выражение, <оператор1> и <оператор2> – простые либо составные операторы.
Логические выражения могут принимать одно из двух значений: TRUE (истина) и FALSE (ложь). Простейшими логическими выражениями являются выражения отношения, например, Х<5.
Пример. Определить, принадлежит ли заданное вещественное число х интервалу [0.5, 1.5].
Решение задачи:
program pr;
var x:real;
begin
writeln('введите x');
readln(x);
if (x>=0.5) and (x<=1.5) then writeln('принадлежит') else writeln('нет');
end.
Часть «ELSE оператор2» может не использоваться. Данную форму оператора IF называют сокращенной.
Кроме условного оператора, в качестве управляющей структуры часто используется оператор множественного выбора CASE. Эта структура позволяет переходить на одну из ветвей в зависимости от значения заданного выражения (селектора выбора).
В конструкции CASE вычисляется некоторое выражение и выбирается ветвь, значение метки которой совпадает со значением данного выражения. Если в последовательности нет метки со значением, равным выражению, то управление передается оператору, следующему за служебным словом ELSE.
Вид оператора выбора:
CASE <выражение> OF
A1 : <оператор 1>;
A2 : <оператор 2>;
...
AN : <оператор N>
ELSE <оператор N+1>
END;
Любой из указанных операторов <оператор 1>, <оператор 2> и т.д. может являться как простым, так и составным оператором; <выражение> может иметь любой порядковый тип.
47 Привести общий вид и пример использования оператора цикла с параметром FOR языка программирования Pascal
Блок-схема, соответствующая циклу с параметром языка Pascal, представлена на рисунке.Здесь i – параметр цикла; i0 – начальное значение параметра; iT – конечное значение параметра.
Рисунок Блок-схема цикла с параметром
Оператор цикла с параметром имеет следующий формат:
For i:=i0 to iT do <оператор>;
Здесь For, to, do– зарезервированные слова («для», «до», «выполнить»);
i – параметр цикла - переменная типа INTEGER (точнее, в общем случае, любого порядкового типа);
i0, iT - начальное и конечное значение – выражение того же типа;
<оператор> - простой или составной оператор языка Pascal, образующий тело цикла (повторяющуюся последовательность действий).
Шаг приращения параметра при этом постоянен и равняется +1, число повторений <оператора> при этом составляет iT- i0+1.
Пример. Вычислить функцию f=x+e-x при х=0, 1, 2, …, 10.
Возможный текст программы:
program calc_f;
var f: real;
x: integer;
begin
for x:=0 to 10 do
begin
f:=x+exp(-x);
writeln(‘x=’, x, ‘f=’, f);
end
end.
Существует и другая форма записи оператора For, при которой шаг приращения параметра принимает значение –1. В этом случае оператор For будет иметь вид For i:=i0 downto iT do <оператор>;