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

Содержание

Слайд 2

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

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

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

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

лит s | символьная строка

литерный тип

Слайд 3

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

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

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

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

ввод s

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

вывод s

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

цел

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

лит s

Слайд 4

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

лит s
вывод 'Введите пароль: '
ввод s
если s = 'sEzAm' то
вывод

Сравнение строк лит s вывод 'Введите пароль: ' ввод s если s
'Слушаюсь и повинуюсь!'
иначе
вывод 'Пароль неправильный'
все

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

Слайд 5

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

лит s
s1:= 'паровоз'
s2:= 'пароход'
если s1 < s2 то
вывод s1, '

Сравнение строк лит s s1:= 'паровоз' s2:= 'пароход' если s1 вывод s1,
< ', s2
иначе
если s1 = s2 то
вывод s1, ' = ', s2
иначе
вывод s1, ' > ', s2
все
все

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

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

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

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

«в»: код 226

«х»: код 245

Слайд 6

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

s[4]:= 'a'

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

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

цел i
нц для i от 1 до длин(s)
если s[i]='э' то
s[i]:='е'
все
кц

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

Слайд 7

Задачи

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

Задачи «A»: Напишите программу, которая вводит строку, состоящую только из точек и
Х, и заменяет в ней все точки на нули и все буквы X на единицы.
Пример:
Введите строку: ..X.XX.
Двоичный код: 0010110

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

Слайд 8

Задачи

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

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

Слайд 9

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

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

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

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

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

Срез:

s:= '123456789'
s1:= s[3:7] | '34567'

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

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

Слайд 10

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

Вставка:

s:= '123456789'
вставить('ABC', s, 3) | '12ABC3456789'

что

куда

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

Удаление:

s:= '123456789'
удалить(s, 3,

Операции со строками Вставка: s:= '123456789' вставить('ABC', s, 3) | '12ABC3456789' что
6) | '129'

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

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

Слайд 11

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

s:= 'Здесь был Вася.'
n:= позиция('с', s)
если n > 0 то

Поиск в строках s:= 'Здесь был Вася.' n:= позиция('с', s) если n
вывод 'Номер символа ', n
иначе
вывод 'Символ не найден.'
все

что

где

Слайд 12

Задачи

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

Задачи «A»: Ввести с клавиатуры в одну строку фамилию и имя, разделив
пробелом. Вывести первую букву имени с точкой и потом фамилию.
Пример:
Введите фамилию и имя:
Иванов Петр
П. Иванов

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

Слайд 13

Задачи

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

Задачи «C»: Ввести адрес файла и «разобрать» его на части, разделенные знаком
Каждую часть вывести в отдельной строке.
Пример:
Введите адрес файла:
C:/Фото/2015/Байкал/shaman.jpg
C:
Фото
2015
Байкал
shaman.jpg

Слайд 14

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

Целое число:

цел N, лит s, лог OK
s:= '123'
N:=

Преобразования «строка» → «число» Целое число: цел N, лит s, лог OK
лит_в_цел(s, OK) | N = 123
если не OK то вывод 'Ошибка!' все

да или нет

вещ X, лит s, лог OK
s:= '123.456';
X:= лит_в_вещ(s, OK) | X = 123.456
если не OK то вывод 'Ошибка!' все

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

Слайд 15

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

цел N, вещ X, лит s
N:= 123
s:= цел_в_лит(N) |

Преобразования «число» → «строка» цел N, вещ X, лит s N:= 123
'123'
X:= 123.456
s:= вещ_в_лит(X) | '123.456'

Слайд 16

Задачи

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

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

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