К. Йенсен, Н. Вирт - Паскаль - Руководство для пользователя (1109480), страница 35
Текст из файла (страница 35)
Имена 1прп1 и Оп1рп1„если они используются, относятся к неявно описанным параметрам программы, представляющим собой текстовые файлы.' Описание 8: выражения В фактор (множитель) теперь может входить нмя границы для совмепгаемого массива-ггвраметра. Порядок вычисления выражений декларируется как зависящий от реализации. Изменено определение операции гпод. Конструктор любого множественного типа теперь может быть н упакованным, н неупакованным. Описание йг операторы Ужесточаются правила, связанные с доступностью меток через оператор перехода. Метка оператора варианта называется индексом варианта (сазе сопз1ап!).
Управляющая переменная оператора цикла с шагом становится просто локальной переменной. В оператор цикла с шагом добавляются некоторые ограничения, и его действие определяется более строго. Описание 1бл блоки, области действия и активации Определяются понятия точки программы (ргопгагп-ро(п1), точки активации (ас11ча(юп-ро!п1), области действия для определения или описания (введения) меток и имен. 244 Паскаль. Руководство для пользователя Описание 11: процедуры и функции Вводятся директивы, относящиеся к процедурам и функциям; директива !огзуагб становится стандартной. Добавляются в качестве параметров совмегцаемые (соп!оггпап1) массивы; вводится концепция совмеьцаельости (соп!оггпаЬ|- )Иу) и появляются совмещаемые типы. Для формальных процедуральных или функциональных параметров (т.
е. процедур или функций, фигурирующих как формальные параметры) теперь требуется полная спецификация всего списка параметров. Вводится концепция конгруэнтности списков паральетров. Использование поля признака в качестве фактического параметра-переменной не .допускается. Изменяется спецификация массива-параметра как упакованного или неупакованного.
Теперь строго определяются функции и процедуры,.работающие с файлами, состояния переменной-файла и буферной переменной. Описание !2ь текстовые файлы, ввод и вывод Вводится стандартная процедура Раде, у нее допускается параметр — файл.
Действие процедуры изменяется. Для списка фактических параметров процедур и'г!!е и чгг!(е(п вводится особый синтаксис — конструкций «Список параметров выводаз (Юп1е рагагпе1ег )!з(). Точно определяется смысл «весового» (зу!б!и) поля при форматировании в процедурах чег(1е и втйе(п. Описание 13: программы Для программы допускаются параметры; определяется их смысл.
Описание 14: согласованность со стандартом ИСО 7185 Дается определение согласованной програлелеы и согласованного процессора. Объясняются требования согласованности (сотрйапсе) со стандартом ИСО Паскаля. ПРИЛОЖЕНИЕ 6 ПРИМЕРЫ ПРОГРАММ В этом приложении мы приводим два примера: первый иллюстрирует процесс разработки программы с помощью метода пошагового уточнения [2], а второй дает модель переносимой программы. Пример 1: Ргоцтагп 1зНАРайпдготе Необходимо написать программу, которая будет отыскивать в интервале от 1 до 100 все целые числа, квадраты которых представляют собой палиндромы. Например, 1! в квадрате составит 121 — а это палиндром.
Палиндромом называется в некотором алфавите строка символов, одинаково читающаяся в любом направлении. Если игнорировать пробелы и знаки пунктуации, то палиндромами являются следующие английские фразы: "!адат" "а !пап, а р!ап, а сапа!, Рапап~а" "пес, логе, 1 О$еееп$! А $аеп петег ргетеаца а 1а$пеаа: 1 гпе$ оп сов". Пример 1, итаг П ргоигав 1а1ЬАРа1$п$$гове(0оерпЬИ Ье0$п Р$пдА111поекегаргов11о100ИЬоае3$$оагеадгеРа1$пдгпиеа епг ( 1а1$АРа1$п$$гове ) Пример 1, шаг 2: ргокгав 1а1$АРа1$п$)гово(0оероо); ( Поиск всех целых от 1 до 100, квадраты которых — палиндромы.
) сопао Мах!пои = 100; 24б Паскаль. Руководства для аальзаватвля Суре 1псйапйе = 1..Иах!иову наг И; 1псйапйе; Ьей!и (ог И := 1 Со Иах!вов до 1! Ра1!пбгове(Зцг(И)) СЬеп Иг!Се1п(И, ' яцоагед 1я а ра1!пдгоие.') епб ( 1я1САРа1!пегове ) Лрилге)у 1, шаг 3: ргойгаи 1я1САРа1!пегове(0осроС); ( Поиск всех целых от 1 до 100, квадраты которых — папиндромы, 1 сопяС Иахгиои = 100; Суре 1псйапйе = 1..Мах1иои; уаг И: 1псйапйе; !опсС!оп Ра1!пегове(Зцоаге: 1псейег): Воо1еап; чаг ИР1асея = 1..5 ( 5 = Ео010(Зцг(Мах!вов)) + 1 ) Ьей!и ( Ра1!пбгоие ) Сгасар!В!Ся; Ра1!пегове := СпесАЗуввесгу(1, ИР1асея) епб ( Ра1!пегове ); Ьей!п !ог И := 1 Со Иахгиои до !! Ра1!пдгове(Зцг(И)) СЬеп Иг!Се1п(И, ' яцоагеб !я а ра1!пдгове.') епб ( 1я1САРа1!пбгове ) .
Приломгеиие 6. Примеры программ 247 Пример 1, игаг 4С ргоВгаи 151САРа1!П6гове(ВО!РОС); ( Поиск всех целых от 1 до 100, квадраты которых — палиндромы. ) СОП5С Иах(ваи = 100; Суре 1псйапВе = 1..Иах1иав; наг И: 1пСИапВе; !Опсс!оп Ра1!пегове(Зцааге: 1псеВег); Воо1еап; СОП5С Р1асеа = 5 ( = Тгапс(СОВ10(Зцг(Мах!вав))) + 1 ); Суре ИР1асеа =. )..Р1асеа; 3!ПВ1е0!В!С = 0..9; О!В!Суес = аггау [ИР1асеа) о! З!ПВ1е0!В!С; наг ИВ1С5: О!В!Снес; 3!те; ИР1асеа; ргосеааге Сгасп010!Са; ЬеВ[п 3!ае := 1; иИ1е Зцааге > 9 6о ЬеВ(п 010105[%те):= Зцааге во6 10; Зцааге := Зцааге 6!и 10; 3!те := 3!ае + 1 еп6; ИВ!Са[З!Се) := Зцааге еп6 ( Сгасйр!Вс05 ); !апсС!оп СЬесИЗуввесгу(се!С, В!ВЬС: ИР1асеа): Воа1еап; ЬеВ!п .
1! Ее(С = КСКЬС Сйеп СйесКБуввеСгу .= Сгсе . е1яе !! О!К!Ся($.е!Ц = К!К!Се(К!КЬЦ Сйеп СЬесКБувве(гу:= СйесКБувпеягу(Ее(С + 1, К!ВАС вЂ” 1) е1яе бйесКВуввеСгу:= !а1яе еп!) ( СйесКБуввеСгу ); Ьеяз ° ( Ра!зпдгаве ) Сгасер!В!Ся; Рз1!пегове := Спесузуввесгу(1, Бые) еп4 ( Ра1!запеве ); Ьеезп !сг К := 1 Сз Мах!пзв Ре т! Ра1!пргеве(заг(И]) Спел Е Иг!Се!п(И, ' япзагер !я а ра1!пагсве.') епд ( 1я)САРз1!пагсве ) . Пример 2: Ргоседоге цеае)((аб) х Кергезеп(а((оп Обобщенная процедура чтения целых чисел, записанных в позиционной системе с любым основанием от 2 до 16. суре Кая!х = 2..)б; ргесеааге Кеаррар!хрергеяепсаС!ап (чаг е: гехс; ( содеРжит представление ) чаг Е:.Все1еап; ( указывает на ошибку ) чаг Гц 1пСееег; ( если ошибок нет, то-результат К: Кза!х (основание представления) ( КеарйагцхрергезепсаС1еп рассчитана на ".з, что текстовый файл Г готов дпя чтения и з нем находится последовательность суперцифр, образующая целое число ло основанию Н.
Суперцифрами являются: ! Вместо прописных букв моххно использовать строчные. Параметр Е указывает, что встретипзсь одна из следующих ошибок: (1) Текстовый файл не поставлен в начало последовательности суперцифр. (1) Последовательность задает число, превосходящее Мах!пт. (3) В последовательности суперцифр есть цифра, не относяцшяся к основанию К. ) суре 0 й!Ьйапае = 0..15; чаг О: О!й!Сйапйе, Ч: Воо1еап; 5: О..йах1ПС; Ьей!и ] Сопчег!ЕхЬепдед0!й!! ] 'А','В','С','0','Е','Г' ]; х! У !Ьеп саяе С о! 'О': 0 := О; '1': 0:= 1; '2': 0:= 2; '3': О 'О''. 0 := 4; '5': 0:= 5; '6': 0:= 6; '7': Р 'В'. 0:.= В; '9': 0:= 9; 'А','а': 0 := 10; 'В','о': 0:= 11; 'С','с'.
0 '0','б': 0:= 13; 'Е','.е': 0 := 14' 'Г','!': О епя епЧ ] СопчегСЕхеепреар!й!С ); 3 7 = 15! Ьей!п ] йеаяйая!хйергеяепоао!оп ] Е:= Сгее, СопчегСЕхеепбеПОхй!Ь(Г 1,Ч,Р); !! Ч Спев Ьейхп Е := !а1зе, 5:=. О, гереаЬ !! 0 < й ЬЬеп !! (Иаххпе — О) о!ч й >= $ Спеп Ьей!и 5 '= " ч й + 0; ВеЬ(Г); СопчегаЕх!епбейр!й!Ь(Г 1,Ч,Р); епп е1яе Е := Ьгче е1зе Е:= Сгче епе!1 Е ог ьо1 Ч; х! по! Е ЧЬег Х:= 5 епя спя ( йеаяйаа!хйергезепсаохоп ) . ргоседпге СопчегСЕхсеппеЧО!е!6(С: СЬаг; чаг Ч: Воо1еап; чаг 0: 0161сйапйе); ] СопчегЬЕхЬепдея0!й!! определнет, относитсн пи С к супериифрам, Ъ' указывает допустимость С и если ч' = тгие, заносит в Е7 числовое значение Этой суперцифрЫ ] ПРИЛОЖЕНИЕ 7 МНОЖЕСТВО СИМВОЛОВ АЬС11 Множество символов АЯСП (АгпеНсап 8(апдагд Сог(е (ог 1п1оггпабоп 1п1егсЬапце — американский стандартный код для обмена информацией) представляет собой принятый в США вариант международного кода, известного под названием кода ИСО.
Он определяет кодировку 128 символов. Предусматривается и существование национального варианта двенадцати таких символов, как, например, символ стоимости — 1)х Основное множество из 128 символов разбивается на 95 «графических» символов, которые могут быть напечатаны, и ЗЗ «управляющих» символа — с их помощью управляют устройствами. Управляющий символ «возврат» (Ьас(сзрасе) используется специально для «наложения» одного символа на другой, это необходимо в некоторых языках. Вот зги ЗЗ иправляюи(их символа'": АСК Подтверждение (Асйпохч!едяе) ВЕЕ Звонок (Веп) ВЬ Возврат на шаг (Васйзрасе) СА)Ч Аннулирование (Сапсе!) СЕ Возврат каретки (Сагпаяе )(е1нгп) ОС! Управление устройством 1 (Оечясе Сон!го! 1) ОС2 Управление устройством 2 (Оечлсе Соп!го! 2) ОСЗ Управление устройством 3 (Оеч!се Соп1го! 3) ОС4 Управление устройством 4 (Оечже Соп1го! 4) ОЕЕ Вычеркивание (Ое!е(е) ОЕЕ Авторегнстр 1 (Оа(а Ыпй Езсаре) ЕМ Конец носнтеля (Епд о! Мегннш) Е(ЧЯ Кто таму (Епцшгу) ЕОТ Конец передачи (Епб о! Тгапшп!зз!оп) ЕЗС Авторегнстр 2 (Езсаре) ЕТВ Конец блока (Епд о1 Тгапзпввяоп В!осй) ЕТХ Конец текста (Епд о! Тех1) ЕЕ Перевод формата (Гогш Еееб) Гз Разделитель файла (Ейе зерага1ог) 0$ Разделитель группы (Огоцр Зерага(ог) * Русские названия управлявшая символов (кроме З()В) взяты нз ГОСТ !3032 — 67.
— Примеч. лер. Приложение 7. Множество символов ЛЗСП 25! Горизонтальная табуляпия (Нопзоп1а! Таь) Перевод строки (Тз(пе Реей) Отрицание (Некаите Асйпотт!ег)ке) Пусто (Нци) Разделитель записи (Кесогб Зерага1ог) )Татинский регистр (5(НИ !п) Национальный регистр (5Ь|И Он() Начало заголовка (51аг1 о! Неагйпя) Начало текста (51аг1 о! Тех1) Подстановка (5цЬзбйн1е) Синхронизация (Зупскгопоцз !б!е) Разделитель злеиента записи (()п!1 Зерага1ог) Вертикальная табуляция (Чег1ма! ТаЬ) А теперь все 128 силгеолоег 00 16 32 48 64 80 96 112 О! ИОЕ ЗОН 2 ~ ЗТХ 3 ( ЕТХ 4 1 ЕОТ 5 ЕИО 6! АСК ВЕС 8 ! 9 1 10 3 и 12 ! 13 ! 14 15 ВЗ НТ СГ ЧТ ГГ СН ЗО 51 Семиразрядный код для символа представляет собой сумму.номера строки и номера столбца. Например, код для символа с)— 7+ 64 = 71.