Первый Московский Образовательный Комплекс
Основы алгоритмизации и программирования
Язык программирования Турбо Паскаль
Практическая работа №6
Работа со строковыми переменными
Методические указания
Разработала преподаватель Ивлиева А.Л.
Москва, 2015
Практическая работа №6.
Работа со строковыми переменными
Цель работы: | Научиться объявлять строковые переменные и применять процедуры и функции для строк. |
Теоретическая справка
Максимальная длина строки в Паскаль 255 символов. Строки называются динамическими, потому что могут иметь меньшую длину в пределах объявленных границ. Строка объявляется в разделе VAR:
var имя: STRING [длина];
Длину строки указывать необязательно, тогда будет объявлена строка длиной 255 символов.
При попытке записать в переменную строку длиннее, чем объявлена, лишняя часть будет отсечена.
Значением строки может быть любая последовательность символов, заключенная в апострофы.
Строки можно сливать, присваивать и сравнивать.
Строки соединяются с помощью знака «+».
Например:
S1:=’город’;
S2:=’Москва’;
S:=S1+’ ‘+S2; {S=’город Москва’}
Строки равны, если имеют одинаковую длину и посимвольно эквивалентны.
Процедуры и функции | Назначение |
Редактирование строк | |
LENGTH(S) | Выдает текущую длину строки Например: S:=’магазин’; n:=LENGTH(S); {n=7} |
COPY(S,N,L) | Возвращает подстроку длиной L, начинающуюся с позиции N строки S Например: S:=’автоматизация’; S1:=COPY(S,3,5); {S1=’томат’} |
DELETE(S,N,L) | Удаляет подстроку длиной L, начинающуюся с позиции N строки S Например: S:=’автоматизация’; DELETE(S,8,6); {S=’автомат’} |
INSERT(SUB,S,N) | Вставляет подстроку SUB, начиная с позиции N строки S Например: S1:=’пока’; S2:=’лом’; INSERT(S2,S1,3); {S1=’поломка’} |
POS(SUB,S) | Ищет первое вхождение подстроки SUB в строку S и возвращает номер первого символа SUB в S или 0, если S не содержит SUB Например: S:=’магазин’; n:=POS(‘а’,S); {n=2} m:=POS(‘газ’,S); {m=3} p:=POS(‘о’,S); {p=0} |
|
Процедуры преобразования | |
STR(X,S) | Преобразует числовое значение Х в строковое S. Возможно задание формата для Х |
VAL(S,X,Y) | Преобразует строковое значение S (строка цифр) в значение числовой переменной Х. Если преобразование не может быть выполнено, то в переменную Y записывается номер символа строки, который явился причиной неудачи преобразования. Если преобразование выполнено успешно, то значение Y равно нулю. |
Пример:
Написать программу, которая делает из слова «строитель» слова «тир» и «тело».
program strings1;
uses crt;
var str,str1,str2:string[20];
n:integer;
begin
clrscr;
write('Введите слово:');
readln(str);
n:=length(str);
writeln('Длина введенного слова:',n);
str1:=copy(str,2,1)+copy(str,5,1)+copy(str,3,1);
str2:=copy(str,6,3)+copy(str,4,1);
writeln('Первое слово:',str1);
writeln('Второе слово:',str2);
readln
end.
Пример:
Написать программу, которая заменяет в слове "сверток" "ток" на "ло"
program string2;
uses crt;
var s:string;
n:integer;
begin
CLRSCR;
s:='сверток';
n:=pos('ток',s);
delete(s,n,3);
insert('ло',s,n);
writeln('Получилось слово ',s);
readln;
end.
Задание (на 3)
1. Определить сколько букв в слове автоматизация. Из слова автоматизация составить слова зима и заяц.
Program str_1;
Введите строку
автоматизация
n= 13 зима заяц
2. Определить сколько букв в слове технолог. Из слова технолог составить слова холл и лоно.
program str_ 2;
|
Введите строку
технолог
длина слова технолог = 8 холл лоно
3. Определить сколько букв в слове таблица. Из слова составить слова бита и бал.
Program str_3;
таблица
бита бал
4. Выведите строку погода хорошая
Program str_4;
5. Выведите строку Студент колледжа.
Program str_5;
Составьте программу, которая позволяет поменять местами данные, размещенные на двух разных строках и поместить их на одной строке. Строки, состоящие из двух слов, разделённых пробелом, вводятся с клавиатуры.
program str_6;
Введите в строку фамилию и имя
Сергей Шишков
Введите в строку фамилию и имя
Вячеслав Иванов
Поменяли местами, получилось = Вячеслав Иванов, Сергей Шишков
Введите предложение
судья свистит в свисток
Количество слов в предложении начинающихся буквой «с» = 3
7. Заменить в слове монах подстроку нах на ряки.
program str_7;
Введите строку
монах
Введите строку
ряки
моряки длина полученного слова= 6
8. Заменить в слове ведро подстроку др на сл.
program str_8;
Введите строку
ведро
Введите строку
сл
весло
9. Заменить в слове воск подстроку ск на да.
Program str_9;
воск
да
вода
10. Определить местоположение буквы р в слове информатика.
Program str_10;
11. Написать программу, которая по введенному символу выводит его код, соответствующий таблице Asci
Program str_11;
C
67
12. Написать программу, которая по введенному коду выведет символ, соответствующий таблице Asci.
Program str12;
65
A
Задания на 4
13. Из слова кипарис составить слово рапира.
Program str_13;
Введите строку: кипарис
рапира
14. Написать программу, которая выводит строку в обратном порядке.
Program str_14;
Введите строку: кипарис
|
сирапик
15. Используя процедуру VAL написать программу для преобразования строковой переменной в числовую, учитывая, что CODE - целая величина. Code=0,если нет ошибки).
7908 0
16. Составьте программу, которая предлагает ввести с клавиатуры две строки s и t и выводит на экран более длинную строку.
program str_16;
Введите строку s
институт
Введите строку t
группа
Более длинная строка =институт
17. Написать программу, которая удаляет из введенной с клавиатуры строки начальные пробелы.
Program str_17;
Введите строку
Студент 1 курса
Длина введенной строки 18
Студент 1 курса
Длина преобразованной строки = 15
18. Написать программу, которая по введенному символу выведет его код, соответствующий таблице Asci, и, наоборот, по введенному коду выведет соответствующий кодовой таблице Asci символ.
program str_18;
Ответ: L 76 L
19. Подсчитайте, сколько слов во введенном предложении начинается с буквы «c».
Program str_19;
Составьте программу, которая позволяет переставить местами, введенные с клавиатуры через пробел, Вашу фамилию и имя.
Введите в строку два слова разделяя их пробелом
Медведев Владислав
Пробел находится на позиции 9
Поменяли слова местами, получилось: Владислав Медведев
21. Введите в 2 строки свою фамилию и имя и определите, какая из них длиннее.
program str_21;
Введите фамилию: Медведев
Введите имя: Владислав
имя Владислав длиннее фамилии Медведев
22. Используя процедуру преобразования числовой переменной в строковую (STR), написать программу, которая выведет на экран Цена 100 рублей. Изначально переменная С:=100 целочисленная.
ОТВЕТ: Цена 100 руб
На 5
23. Написать программу, которая определяет длину введенной строки и количество пробелов в ней.
Program str_23;
Введите строку
Весна - это лучшее время года.
Количество символов = 30
Количество пробелов = 5
24. Написать программу, которая выводит на экран введенную строку в «телеграфном» стиле (буквы сообщения должны выдаваться по одной с некоторой задержкой). (Используйте процедуру sleep(500).
program str_24;
Рейс №56 задерживается!
25. Написать программу в которой следует определить количество символов и точек в введенной строке, состоящей из нескольких предложений.
program str_25;
Сегодня понедельник. До праздника осталось несколько дней.
длина строки 58. Количество точек 2.
26. Напишите программу, которая выводит код введенного пользователем символа. Программа должна завершать работу в результате введения точки.
Program str_26;
Ответ: Введите символ и нажмите.
Для завершения работы программы введите точку.
->5
Символ: *5 Код: 53
->.
Символ: *. Код: 46
Пока.....
27. Написать программу, которая проверяет, есть ли в введенной строке цифры и определяет их количество.
Program str_27;
Введите строку
15 января 2017 года мне исполнится 18 лет.
В строке есть цифры. Их 8.
28. Написать программу, которая проверяет, является ли введенная с клавиатуры строка целым числом.
Program str_28;
Введите строку
76.,8
Это строка