Программирование (Паскаль). § 19. Символьные строки

Содержание

Слайд 2

Что такое символьная строка? Символьная строка – это последовательность символов. Хочется:

Что такое символьная строка?

Символьная строка – это последовательность символов.

Хочется:
строка – единый

объект
длина строки может меняться во время работы программы

var s: string; { символьная строка }

строковый тип

Слайд 3

Символьные строки Присваивание: s:= 'Вася пошёл гулять'; Ввод с клавиатуры: readln(s);

Символьные строки

Присваивание:

s:= 'Вася пошёл гулять';

Ввод с клавиатуры:

readln(s);

Вывод на экран:

writeln(s);

Длина строки:

var n:

integer;
n:= Length(s);

var s: string;

ввод до конца строки

Слайд 4

Сравнение строк var s: string; ... writeln('Введите пароль: '); readln(s); if

Сравнение строк

var s: string;
...
writeln('Введите пароль: ');
readln(s);
if s='sEzAm' then
write('Слушаюсь и повинуюсь!')
else

write('Пароль неправильный');

стоит раньше в отсортированном списке

Слайд 5

Сравнение строк var s1, s2: string; ... s1:= 'паровоз'; s2:= 'пароход';

Сравнение строк

var s1, s2: string;
...
s1:= 'паровоз';
s2:= 'пароход';
if s1 < s2 then

write(s1, '<', s2)
else
if s1 = s2 then
write(s1, '=', s2)
else
write(s1, '>', s2);

паровоз < пароход

первые отличающиеся буквы

паровоз
пароход

Сравниваем с начала:

«в»: код 1074

«х»: код 1093

Слайд 6

Посимвольная обработка строк s[4]:= 'a'; Задача. Ввести строку и заменить в

Посимвольная обработка строк

s[4]:= 'a';

Задача. Ввести строку и заменить в ней все

буквы «э» на буквы «е».

var i: integer;
...
for i:=1 to length(s) do
if s[i]='э' then
s[i]:='е';

для каждого символа строки

Слайд 7

Задачи «A»: Напишите программу, которая вводит строку, состоящую только из точек

Задачи

«A»: Напишите программу, которая вводит строку, состоящую только из точек и

букв Х, и заменяет в ней все точки на нули и все буквы X на единицы.
Пример:
Введите строку: ..X.XX.
Двоичный код: 0010110

«B»: Напишите программу, которая в символьной строке заменяет все нули на единицы и наоборот. Остальные символы не должны измениться.
Пример:
Введите строку: 10а01Bx1010c
Инверсия: 01a10Bx0101c

Слайд 8

Задачи «С»: Введите битовую строку и дополните её последним битом, который

Задачи

«С»: Введите битовую строку и дополните её последним битом, который должен

быть равен 0, если в исходной строке чётное число единиц, и равен 1, если нечётное (в получившейся строке должно всегда быть чётное число единиц).
Пример:
Введите битовую строку: 01101010110
Результат: 011010101100
Слайд 9

Операции со строками Объединение (конкатенация) : s1:= 'Привет' ; s2:= 'Вася'

Операции со строками

Объединение (конкатенация) :

s1:= 'Привет' ;
s2:= 'Вася' ;
s

:= s1 + ', ' + s2 + '!' ;

'Привет, Вася!'

Срез (выделение части строки):

s:= '123456789' ;
s1:= copy(s,3,5); { '34567' }

с какого символа

сколько символов

Слайд 10

Операции со строками Вставка: s:= '123456789’; insert('ABC', s, 3) ; {

Операции со строками

Вставка:

s:= '123456789’;
insert('ABC', s, 3) ; { '12ABC3456789' }

что

куда

с какого

символа

Удаление:

s:= '123456789';
delete(s, 3, 6); { '129' }

с какого символа

сколько символов

Слайд 11

Поиск в строках s:= 'Здесь был Вася.'; n:= pos('с', s); if

Поиск в строках

s:= 'Здесь был Вася.';
n:= pos('с', s);
if n > 0

then
write('Номер символа ', n)
else
write('Символ не найден.');

что

где

Слайд 12

Задачи «A»: Ввести с клавиатуры в одну строку фамилию и имя,

Задачи

«A»: Ввести с клавиатуры в одну строку фамилию и имя, разделив

их пробелом. Вывести первую букву имени с точкой и потом фамилию.
Пример:
Введите фамилию и имя:
Иванов Петр
П. Иванов

«B»: Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести фамилию и инициалы.
Пример:
Введите фамилию, имя и отчество:
Иванов Петр Семёнович
П.С. Иванов

Слайд 13

Задачи «C»: Ввести адрес файла и «разобрать» его на части, разделенные

Задачи

«C»: Ввести адрес файла и «разобрать» его на части, разделенные знаком

'/'. Каждую часть вывести в отдельной строке.
Пример:
Введите адрес файла:
C:/Фото/2015/Байкал/shaman.jpg
C:
Фото
2015
Байкал
shaman.jpg
Слайд 14

Преобразования «строка» → «число» Целое число: var r: integer; ... s:=

Преобразования «строка» → «число»

Целое число:

var r: integer;
...
s:= '123';
val(s, N, r);

{ N = 123 }

номер первого ошибочного символа

var r: integer;
...
s:='123.456';
val(s, X, r); { X = 123.456}

Вещественное число:

Слайд 15

Преобразования «число» → «строка» n:= 123; str(N, s); { s =

Преобразования «число» → «строка»

n:= 123;
str(N, s); { s = '123' }
x:=

123.456;
str(X, s); { s = '1.234560E+002' }
str(X:10:3, s); { s = ' 123.456' }
Слайд 16

Задачи «A»: Напишите программу, которая вычисляет сумму двух чисел, введенную в

Задачи

«A»: Напишите программу, которая вычисляет сумму двух чисел, введенную в форме

символьной строки. Все числа целые.
Пример:
Введите выражение:
12+3
Ответ: 15

«B»: Напишите программу, которая вычисляет сумму трёх чисел, введенную в форме символьной строки. Все числа целые.
Пример:
Введите выражение:
12+3+45
Ответ: 60