metod_15.03.04_atppp_oaip_up_2016 (1016600), страница 3
Текст из файла (страница 3)
Этот идентификатор может использоваться для определения новых, болеесложных типов данных, либо для описания переменных в разделе описанияпеременных.Type идентификатор = тип;идентификатор = тип;Идентификатор, использованный при определении некоторого типа,может употребляться в последующих определениях типов.Описание типов.13Общий вид: Type идентификатор = тип;Пример. TYPE NUMBER = INTEGER;INDEX = -1...99;VALUE = - 999...999;LIST = ARRAY [INDEX] OF VALUE;COLOR = (RED, GREEN, BLUE);EXT = REAL;Описание переменных.Общий вид: Var - идентификатор, идентификатор: типПример. VAR R1, R2, R3: INTEGER;V1, V2, X1: REAL;EGUAL: BOOLEAN;WORD1: CHAR;2.7. Операторы в программеЛюбая программа на языке Паскаль начинается со слова PROGPAM изаканчивается словом END.
(с точкой). Вслед за словом PROGRAMзаписывается имя программы, которое ей дает автор. Все имена(идентификаторы) записываются с использованием только 26 букв латинскогоалфавита и 10 арабских цифр. При этом все идентификаторы должныотличаться друг от друга. Вся первая строчка программы называетсязаголовком программы.Во второй строке программы вслед за словом VAR через запятуюперечислены идентификаторы А, В, Х1 и т.д. С помощью слова REALуказывается, что значения, которые могут принимать эти переменные, должныбыть вещественными. Они могут быть также и целыми, поскольку целые числаявляются подмножеством вещественных чисел.
Вся вторая строка программыпредставляет собой раздел описания переменных.VAR A, B, C, X1, X2: REALВ этой строке необходимо описать все переменные, которые затем будутиспользованы в программе. Если некоторая переменная в разделе описанияпеременных не указана, а в тексте программы используется, то компиляторвыдаст соответствующее диагностическое сообщение об ошибке.Компилятор - системная программа, осуществляющая трансляцию всейисходной программы в машинный язык. Согласно правилам не только языкаПаскаль, все идентификаторы (в том числе и идентификаторы переменных)должны быть описаны. Такую форму задания переменных диктует надежностьпрограммы.Эти переменные и вообще все данные записываются в файл.Файл - это набор данных.
Это может быть:1) совокупность величин, взаимосвязанных по каким либо признакам,обозначенная одним именем и хранящаяся во внешней памяти ЭВМ как единоецелое;2) хранящаяся в памяти ЭВМ программа решения конкретной задачи.В ЭВМ обеспечивается доступ к файлам по именам, файлы при необходимостипереписываются из внешнего ЗУ (ВЗУ) во внутреннюю память (ОЗУ), из нее вовнешнюю, а также на устройство вывода.14Наборы данных (файлы) можно определить как совокупность данных,состоящую из последовательности логически связанных записей.2.7.1. Операторные скобкиВся оставшаяся часть программы представляет собой раздел операторов изаключена между словами BEGIN и END.
Любая последовательностьоператоров, заключенная между словами BEGIN и END, называется составнымоператором. Таким образом, раздел операторов - это составной оператор. В немописываются все алгоритмические действия, которые необходимо выполнитьнад исходными данными для получения результата.2.7.2. Операторы вводаЧасто первыми действиями, выполняемыми программой, являютсядействия по вводу данных. В языке Паскаль для этой цели служит процедурачтения READ, например, READ(A, B, C);С ее помощью вводятся значения переменных А, В, С. После выполненияпроцедуры чтения значения переменных определены, и их можно использоватьв других вычислениях.
Сначала необходимо задать значение переменной итолько затем ее можно использовать. Если это требование не выполнено, тозначениепеременнойсчитаетсянеопределеннымииспользоватьнеопределенное значение в вычислениях нельзя.Любые два числа из списка вводимых величин должны отделяться другот друга, по крайней мере, одним пробелом.2.7.3. Оператор присваиванияОператор присваивания с помощью знака присваивания := разбивается на2 части: левую и правую. В правой части записывается выражение, значениекоторого необходимо вычислить.
После вычисления выражения оноприсваивается переменной, стоящей в левой части.D : = SQR(B) - 4 * A * C;D=B*B-4AC;В языке Паскаль обязательно указываются все знаки операций (* - знакумножения).В языке Паскаль отсутствует операция возведения в степень, но длявозведения в квадрат предусмотрена стандартная функция SQR./ - знак операции деленияВ операторах присвоения часто в левой и правой частях стоят одни и теже идентификаторы, например: X := X + 1. Этот оператор имеет следующийсмысл: необходимо взять текущее значение Х, изменить его в соответствии сдействиями, указанными в правой части, и полученное значение взять вкачестве нового текущего значения Х.С помощью оператора присваивания можно задавать начальные значенияпеременным.
Так, вместо процедурыREAD(A, B, C);И последующего ввода значений, 5, 3, 2 можно было бы записать триоператора присваивания:A := 5; B := 3; C := 2;Однако такая форма задания исходных данных для программы вряд лиможет быть признана удовлетворительной. Программа оказывается15“привязанной” к данным. В этом случае для выполнения программы с новымиисходными данными необходимо сначала исправить три оператораприсваивания и перекомпилировать программу. В случае использованияпроцедуры чтения подобной привязки программы к данным нет.
Тогда привыполнении вычислений для новых исходных данных необходимо изменитьлишь сами исходные данные.2.7.4. Оператор условного переходаКроме перечисленных операторов существуют еще условные операторы,имеющие вид:IF условие THEN оператор1 ELSE оператор2Каждый условный оператор осуществляет выбор одной из альтернатив.Этот выбор определяется значением условия, которое стоит после разделителяIF. Условие может принимать два значения: истина или ложь. Если значениеусловия истина, то выполняется оператор1, а вслед за ним оператор, стоящий завсем условным оператором.
Если значение условия ложь, то выполняетсяоператор2, а вслед за ним оператор, стоящий за всем условным оператором.Таким образом, в результате выполнения условного оператора будет выбран ивыполнен один из операторов, стоящих внутри условного оператора. В языкеПаскаль разрешается использовать сокращенную форму условного оператора,имеющего вид:IF условие THEN оператор.В этой форме условного оператора отсутствует часть ELSE.Соответственно модифицируется и правило его выполнения. Если значениеусловия есть истина, то выполняется оператор, стоящий внутри условногооператора. В противном случае весь условный оператор пропускается.Пример.
Если Х = 1, сделать Х = 2; если Х = 2, сделать Х = 1.IF X = 1 THEN X := 2;IF X = 2 THEN X := 1;Это неверно при Х=1. Правильное решение:IF X = 1 THEN X := 2 ELSEIF X :=2 THEN X :=1;Процедура вывода WRITELN выдает на печать сообщения. Онозаключается в круглые скобки, а его текст - в апострофы.После разделителей THEN и ELSE может стоять один оператор. Для тогочтобы обойти синтаксическое ограничение, имеется составной оператор,служащий средством группирования других операторов. Составной оператор это один оператор. Поэтому, если после любого из разделителей THEN илиELSE по сути решения задачи требуется записать более одного оператора, тонеобходимо использовать составной оператор. Он начинается со слова BEGINи заканчивается словом END.
Между ними может располагаться любаяпоследовательность операторов.Для ввода и вывода данных предусмотрены процедуры:READREADLNWRITE16WRITELNОсновной процедурой ввода является READ. с ее помощью можнопрочитать любое число исходных данных, указав в круглых скобкахидентификаторы тех переменных, которым необходимо присвоить значения.Процедура READLN (А) считывает данные из одной строки иобеспечивает переход к началу следующей строки. Процедура READLN безпараметров осуществляет переход к началу следующей строки.READLN(A, B, C, D); эквивалентноREAD(A); READ(B); READ(C); READ(D); READLN;Для вывода данных используются процедуры WRITE и WRITELN.Различие между ними такое же, как между READ и READLN. WRITELNначинает сообщение с новой строки, а WRITE помещает в выходную записьсообщения друг за другом.Пример.