ЛАБОРАТОРНАЯ РАБОТА № 6
Тема: Использование символьного и строкового типа данных в программе на Pascal
Цель работы: Изучение возможностей обработки данных строкового и символьного типа
Пояснения к работе Символьный тип данных
Значениями символьного типа Char являются элементы конечного и упорядоченного множества символов. Чаще всего используются символы американского стандарта ASCII. Значения типа Char записываются одним символом (например, ‘*’, ‘S’, ‘2’). В рамках этого типа десятичные цифры упорядочены в соответствии с их числовыми значениями (например, ‘5’<’6’). Буквы упорядочены в алфавитном порядке (например, ‘B’<’C’). Стандартные функции работы с символьным типом
Ord(W)
| Определение порядкового номера символа W
| Chr(N)
| Определение символа по его порядковому номеру N
|
Символы с кодами от 0 до 127 составляют так называемую основную таблицу кодов ASCII. Эта часть идентична на всех IBM- совместимых компьютерах. Цифрам от 0 до 9 соответствуют коды от 48 до 57, буквам латинского алфавита от A до Z - коды от 65 до 90, буквам от a до z – от 97 до 122, буквам русского алфавита от А до Я – коды от 128 до 159. Строковый тип данных Тип данных String предназначен для хранения последовательности символов. Строка должна быть заключена в апострофы. Максимальная длина строки указывается в квадратных скобках. Если она не указана, максимальная длина полагается 255. Важной особенностью является то, что к каждому символу строки возможен доступ по его номеру. Стандартные функции и процедуры работы со строковым типом
ПРОЦЕДУРЫ
| Delete(S, P, N)
| Удаление N символов из строки S, начиная с позиции P
| Insert (W, S, P)
| В строку S , начиная с позиции P, вставляется строка W. Если результат превысит 255 символов, строка обрывается
| Str(V, S)
| Число V преобразуется в строку, результат в S
| Val (S, V, W)
| Если строка состоит только из цифр, то они преобразуются в числовое значение переменной V, значение W равно0. в противном случае, когда строка состоит не только из цифр, - преобразование не выполнится, W <>0 признак ошибки
| ФУНКЦИИ
| Copy(S, P, N)
| Из строки S, начиная с позиции P , выбирается N символов
| Length(S)
| Определяется длина строки S, т.е. число символов из которых она состоит
| Pos(W, S)
| В строке S отыскивается первое вхождение строки W (номер позиции). Если вхождение нет, то выдается 0
| Concat(S1, S2, …Sn)
или S1+S2+… +Sn
| Строки S1, S2, …Sn записываются одна за другой . Если результат превысит 255 символов, строка обрывается.
| Trim(S)
| Удаление начальных и конечных пробелов строки
|
Пример выполнения работы: Условие
Организовать цикл ввода символов и вывода его кода. Ввод закончить если введена точка
VAR
B: Char;
BEGIN
Rereat
Readln(b);
Writeln(Ord(b));
Until b=’.’;
END.
| Условие:
Ввести строку. Вывести первые два символа и два последних символа через тире
VAR
S, s1,s2, w: String;
K: Integer;
BEGIN
Readln(S);
S1:=copy(S,1,2);
K:=Length(S);
S2:=copy(S,k-1,2);
W:=S1+’-‘+S2;
Writeln(W);
END.
|
Контрольные вопросы В чем разница между символьной и строковой величинами?
Какова максимально возможная длина строки?
Перечислить функции, которые используются для работы с символьными и со строковыми данными.
Варианты к лабораторной работе №6 (ваш номер по журналу соответствует номеру варианта)
№
| Задание 1
Задание 2
Задание 3
| 1
| Ввести слово. Вывести “да”, если первый и последний символ совпадает, в противном случае вывести “нет”.
| Ввести строку. Определить количество цифр, которые она содержит.
| Ввести строку. Удалить из нее все буквы А.
| 2
| Ввести слово. Первую и последнюю букву поменять местами.
| Ввести строку. Определить каких букв больше А или О.
| Ввести строку и слово. Удалить слово из строки, если она в ней содержится.
| 3
| Ввести слово. Определить является ли оно десятичной записью целого числа.
| Определить сколько раз в строке встречается сочетание “ht”.
| Ввести строку, содержащую формулу. Определить правильно ли в ней расставлены скобки (т.е. находится ли справа от каждой открывающейся скобки соответствующая ей закрывающаяся скобка).
| 4
| Вывести первое слово в исходной строке.
| Ввести строку. Подсчитать , сколько в ней букв R, K, L.
| Ввести строку. Изменить ее так, чтобы все латинские буквы стали заглавные.
| 5
| Ввести слово .Вывести его без первой и последней буквы.
| Ввести строку. Заменить в ней каждую точку на троеточие.
| Ввести строку. Определить сколько раз в строке встречается каждый символ (например, дано kooaaooa, результат а- 3 раза, о -4 раза, к – 1 раз).
| 6
| Удалить среднюю букву при нечетной длине строки и две средние буквы при четной длине строки.
| Вывести второе слово в исходной строке.
| Ввести строку. Найти длину самого короткого слова.
| 7
| Ввести строку. Вывести вторую половину строки.
| Определить сколько раз встречается “о” в первом слове строки.
| Ввести строку. Слова, следующие за точкой и первое слово должны начинаться с заглавной буквы. Исправить строку, если это не так.
| 8
| Ввести строку. Определить содержится ли в первой половине слова +
| Ввести строку. Вывести на экран слова, содержащие три буквы.
| Ввести строку, содержащую латинские буквы. Определить, каких букв больше заглавных или строчных.
| 9
| Ввести строку, которая содержит символ +. Определить, сколько символов следует после него.
| Ввести строку. «Задвоить» каждый символ строки (например, дано ABCD, результат AABBCCDD).
| Ввести строку. Удалить из нее все буквы А и О.
| 10
| Ввести слово, в котором содержится буква А, причем не на последнем месте. Вывести символ, следующий за А.
| Определить количество слов в строке, которые начинаются и заканчиваются одним и тем же символом.
| Ввести строку из нескольких слов. Разделитель слов пробел. Удалить лишние пробелы, оставив только один пробел между словами.
| 11
| Ввести слово. Вывести слово, полученное путем перестановки местами половинок введенного слова.
| Ввести строку. Подсчитать , сколько в ней символов * D F H.
| Ввести строку. Удалить из нее все цифры.
| 12
| В строке есть одна точка с запятой; определить количество символов до нее и после.
| Ввести строку. Определить сколько раз встречается сочетание abc.
| Ввести строку. Изменить ее так, чтобы все латинские буквы стали строчными.
| 13
| Ввести число N и один символ сформировать строку, в которой символ повторяется N_раз .
| Ввести строку. Заменить в ней строчные буквы на заглавные.
| Ввести два слова. Определить можно ли из букв первого слова составить второе слово.
| 14
| Ввести строку. Удалить из нее все буквы О.
| Ввести строку. Определить количество заглавных букв.
| Ввести строку. Заменить в ней сочетание NO на YES.
| 15
| Ввести строку. Если перед символом стоит знак #, то заменить символ на точку.
| Ввести строку, содержащую одну открывающуюся скобку и одну закрывающуюся. Удалить текст между скобками.
| Ввести строку. В конец каждого слова добавить сочетание СЛА.
| 16
| Ввести число, определяющее стоимость покупки (например 123, 50). Вывести строку, определяющую стоимость с использованием текста (123 руб. 50 копеек).
| Ввести имя, отчество и фамилию человека (в одну переменную). Определить пол человека (по отчеству).
| Ввести строку, в которой каждое слово зашифровано – записано наоборот. Расшифровать текст.
| 17
| Ввести строку. Удалить первое слово.
| В введенном тексте сочетание “and” заменить на “or”.
| Ввести строку. Определить количество слов, содержащих букву Z
| 18
| Ввести строку. Вывести символы до первой точки.
| Ввести строку. Подсчитать , сколько в ней символов * = +
| Ввести число N и строку. Определить сколько раз символ строки с номером N встречается в строке.
| 19
| Ввести строку, которая содержит двоеточие. Определить сколько символов ему предшествует.
| Ввести строку. Удалить те символы строки, перед которыми стоит $ (его то же удалять).
| Ввести строку. Вывести каждый второй символ строки.
| 20
| Ввести строку. Определить содержится ли во второй половине слова символ =
| Ввести строку и слово. Определить сколько раз слово встречается в строке.
| Ввести строку, содержащую цифры. Определить является ли она записью восьмеричного числа.
| 21
| Ввести строку. Удалить из нее все буквы А.
| Ввести строку. Определить содержит ли она символы отличные от латинских заглавных букв.
| Ввести строку, содержащую цифры. Определить является ли она записью шестнадцатеричного числа.
| 22
| Ввести строку. Вывести символы до первого двоеточия.
| Ввести строку. Вывести последнее слово.
| Ввести целое число. Вывести его представление с разделением на триады цифр (например, дано 1000450, результат 1 000 450 ).
| 23
| Ввести строку. Удалить последнее слово.
| Ввести строку. Найти длину самого длинного слова.
| Ввести строку. Заменить в ней заглавные буквы на строчные.
| 24
| Ввести строку. Удалить из нее сочетания РHP.
| Ввести строку. Определить сколько раз в последнем слове встречается K.
| Ввести строку. Подсчитать самую длинную последовательность подряд идущих букв А.
| 25
| Ввести слово, в котором содержится сочетание АB, причем не на последнем месте. Вывести символ, следующий за АB.
| Ввести строку, содержащую одну открывающуюся скобку и одну закрывающуюся. Вывести текст между скобками.
| Ввести строку, состоящую из латинских букв. Заменить каждую букву строки на букву, следующую за ней по алфавиту (например, a-b, b-c, z – a).
| 26
| Ввести строку из нескольких слов. Вывести последний символ первого слова.
| Ввести строку, содержащую цифры. Определить является ли она записью двоичного числа.
| Ввести строку. Удалить из нее все латинские буквы.
| 27
| Ввести строку. Вывести второе слово.
| Ввести строку. Определить количество заглавных букв.
| Ввести строку. Определить сколько слов начинается и заканчивается на одну и ту же букву.
| 28
| Ввести строку. После каждой запятой вставить пробел.
| Ввести строку из нескольких слов. Вывести первый символ последнего слова.
| Составить программу перевода десятичного числа в двоичное.
| 29
| Ввести строку из нескольких слов. Вывести первый символ второго слова.
| Ввести строку. Определить сколько раз в ней встречается сочетание TAG.
| Ввести строку. Удалить из нее все символы, которые не являются латинскими буквами.
| 30
| Ввести слово. Вывести его без двух первых и двух последних символов.
| Ввести строку, состоящую из латинских букв. Заменить каждую букву строки на букву, предшествующей по алфавиту (например, a-z, b-a, c – b).
| Ввести строку. Вывести текст, содержащийся между первой и второй точкой.
| 31
| Ввести слово. Вывести второй и предпоследний символ.
| Ввести строку. Зашифровать ее, заменив каждый символ его кодом
| Ввести зашифрованный текст (см. Задание 2) Расшифровать его.
|
|