Тема 3. Ресурсы торгового предприятия.
7. В чем заключается вклад Н.Д.Кондратьева в отечественную и мировую экономическую науку? Var N: Integer; X: Char; Begin X:='L'; { В символьную переменную X записали символ V } Writeln(X); N:=0rd (X); { Функция Ord возвращает код символа, занесенного в переменную X, то есть код буквы 'L' } Writeln(N); Х:='А'; Writeln(X); X:=Chr (N); { Функция Chr возвращает символ по заданному коду. Сейчас в переменной X оказался символ 'L' - именно его код мы только что записали в переменную N } Writeln(X); Readln End. При выполнении программа выведет на экран следующее: L А L Пример 3.2. Ввод символов с клавиатуры Program Letter2; Var X,Y:Char; Begin writeln ('Введите несколько символов:'); readln(X): Writeln(X); writeln('Введите еще несколько символов:'); Readln(X.Y); Writeln(X.Y); Readln End. Запустив программу на выполнение, введите с клавиатуры последовательность символов (например, ABC) и нажмите Enter. Программа выведет единственный символ: А В ответ на второе предложение введите с клавиатуры CAT. На экране получим следующее: СА ЗАМЕЧАНИЕ Переменная типа Char принимает только один символ из введенной строки. При вводе символы не заключаются в апострофы. Таким образом, в первом случае из введенных символов запомнится только один, во втором — два. Можно определять и символьные константы: const Leto = 'X'; Тип Char — порядковый тип! В таблице кодов вы могли заметить такую закономерность: Таким образом, для каждого элемента типа Char всегда есть предшествующий и последующий элементы. Такой тип данных называется порядковым. Тип Char — порядковый тип. Тип Integer также является порядковым. Пример 3.3. Стандартные функции, применяемые к порядковому типу Program Letter3; Var Х1, Х2, ХЗ, Х4: Char; Begin X1:='L'; Writeln(X1); X2:=Pred (X1); { Функция Pred возвращает предшествующий элемент относительно значения переменной XI } Writeln ('Pred=',Х2); X3:=Succ (XI); { Функция Succ возвращает последующий элемент относительно значения переменной XI } writeln('Succ=',ХЗ); Readln End. При выполнении программа выведет на экран следующее: L Pred=K Succ=M Задание 3.1. Напишите программу расшифровки 4-буквенного однословного сообщения. Для получения 4 букв нужно ввести 3 строки: v из первой строки прочесть только первую букву; v из второй строки прочесть только первую букву; v из третьей строки прочесть первую и вторую буквы. Далее расшифровать полученные четыре буквы по такому алгоритму: вместо первой и третьей букв подставить соответственно буквы, отстоящие от них по алфавиту на две буквы назад, а вторую и четвертую буквы оставить без изменения. Для проверки возьмите пример, приведенный ниже. Ввод: FINISHED OR PENDING? На выводе должно быть слово «D0NE». Задание 3.2. Известно, что коды прописных (заглавных) букв латинского алфавита следуют в таблице непрерывно друг за другом. Коды строчных букв латиницы также следуют непрерывно друг за другом на расстоянии 32 символов от прописных (ниже по таблице). Если ord('А') = 65, то ord('А')+32 = 97, и это код строчной буквы «а», то есть chr (ord ('А') + 32) = 'а’. Напишите программу, в которой вы вводите прописную букву (только латиницу!), а получаете ее строчный эквивалент, и наоборот, по строчной букве получаете соответствующую прописную. ЗАМЕЧАНИЕ С русскими символами такого порядка нет из-заa особенностей организации кодовой таблицы. В частности, строчные буквы в таблице следуют не подряд, а с разрывом в середине алфавита. Выводы 1. Все символы хранятся в компьютере в виде кодов. 2. Обычно для кодирования символов применяется таблица ASCII. 3. Каждому символу соответствует свой код. 4. Для преобразования символов в коды и обратно применяют функции ord и chr. 5. Тип Char является порядковым типом. 6. Коды буквы латинского алфавита идут последовательно. 7. Русские буквы хранятся в таблице символов ASCII с разрывом в последовательности кодов. 8. Для получения следующего и предыдущего символа используют соответственно функции succ и pred. Контрольные вопросы 1. Сколько всего различных символов кодируется таблицей ASCII? 2. Какой объем памяти требуется для кодирования одного символа? А для 15 символов? 3. Какой тип данных в Паскале предназначен для хранения символьной информации? Сколько символов можно поместить в одну переменную этого типа? 4. Какой код у буквы «F»? Какой символ кодируется кодом 87? 5. В программе определены 3 переменные (а, b, с: char;). В ответ на инструкцию readln(b,a,c); пользователь ввел текст Леша. В каком месте памяти оказалась каждая из введенных букв? 6. Каков будет результат выполнения инструкции c:=succ(pred(succ('D')))? 7. Какое значение получит переменная i в операторе i:= pred (ord (T') - 2)? Тема 3. Ресурсы торгового предприятия.
|