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

Содержание

Слайд 2

Зачем нужны символьные строки?

симтаб s[1:80] | массив символов

элементы массива – отдельные объекты
сложно

Зачем нужны символьные строки? симтаб s[1:80] | массив символов элементы массива –
работать со строками переменной длины

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

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

литерный тип

Слайд 3

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

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

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

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

ввод s

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

вывод s

Отдельный символ:

s[4]:=

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

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

цел n
n:= длин(s)

лит s

Слайд 4

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

алг Замена а на б
нач
лит s
вывод

Символьные строки алг Замена а на б нач лит s вывод 'Введите
'Введите строку: '
ввод s
цел i
нц для i от 1 до длин(s)
если s[i] = 'а' то
s[i]:= 'б'
все
кц
вывод s
кон

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

Слайд 5

Задачи

«A»: Ввести с клавиатуры символьную строку и заменить в ней все буквы

Задачи «A»: Ввести с клавиатуры символьную строку и заменить в ней все
«а» на «б» и все буквы «б» на «а» (заглавные на заглавные, строчные на строчные).
Пример:
Введите строку:
ааббААББссСС
Результат:
ббааББААссСС

Слайд 6

Задачи

«B»: Ввести с клавиатуры символьную строку и определить, сколько в ней слов.

Задачи «B»: Ввести с клавиатуры символьную строку и определить, сколько в ней
Словом считается последовательности непробельных символов, отделенная с двух сторон пробелами (или стоящая с краю строки). Слова могут быть разделены несколькими пробелами, в начале и в конце строки тоже могут быть пробелы.
Пример:
Введите строку:
Вася пошел гулять
Найдено слов: 3

Слайд 7

Задачи

«C»: Ввести с клавиатуры символьную строку и найдите самое длинное слово и

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

Слайд 8

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

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

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

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

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

Срез:

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

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

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

Слайд 9

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

Вставка:

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

что

куда

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

Удаление:

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

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

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

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

Слайд 10

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

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

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

что

где

Слайд 11

Пример обработки строк

Задача: Ввести имя, отчество и фамилию. Преобразовать их к формату

Пример обработки строк Задача: Ввести имя, отчество и фамилию. Преобразовать их к
«фамилия-инициалы».
Пример:
Введите имя, отчество и фамилию:
Василий Алибабаевич Хрюндиков
Результат:
Хрюндиков В.А.

Алгоритм:
найти первый пробел и выделить имя
удалить имя с пробелом из основной строки
найти первый пробел и выделить отчество
удалить отчество с пробелом из основной строки
«сцепить» фамилию, первые буквы имени и фамилии, точки, пробелы…

Алибабаевич Хрюндиков

Хрюндиков

Хрюндиков В.А.

Слайд 12

Пример обработки строк

алг FIO
нач
лит s, name, name2
цел n
вывод 'Введите

Пример обработки строк алг FIO нач лит s, name, name2 цел n
имя, отчество и фамилию'
ввод s
n:= позиция(' ', s);
name:= s[1:n-1] | вырезать имя
удалить(s, 1, n)
n:= позиция(' ', s)
name2:= s[1:n-1] | вырезать отчество
удалить(s, 1, n) | осталась фамилия
s:= s + ' ' + name[1] + '.' + name2[1] + '.'
вывод s
кон

Слайд 13

Задачи

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

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

Слайд 14

Задачи

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

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

Слайд 15

Задачи

«C»: Напишите программу, которая заменяет во всей строке одну последовательность символов на

Задачи «C»: Напишите программу, которая заменяет во всей строке одну последовательность символов
другую.
Пример:
Введите строку:
(X > 0) and (Y < X) and (Z > Y) and (Z <> 5)
Что меняем: and
Чем заменить: &
Результат
(X > 0) & (Y < X) & (Z > Y) & (Z <> 5)

Слайд 16

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

Из строки в число:

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

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

Из числа в строку:

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

цел N, вещ X, лит s, лог OK

да или нет

Слайд 17

Задачи

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

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

«B»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются только знаки «+» или «–»). Выражение вводится как символьная строка, все числа целые.
Пример:
Введите выражение:
12-3+45
Ответ: 54

Имя файла: Символьные-строки.pptx
Количество просмотров: 38
Количество скачиваний: 0