Условия задач:
Манипуляция с символами строки
1 – «Дублирование символов» идею решения см. стр 22
Дано слово. Записать каждый символ по два раза.
Формат ввода: Формат вывода:
s – слово s1 - новое слово
Пример ввода: Пример вывода:
дождь ддоожжддьь
Манипуляция с символами строки
– «Запись символов через черточку» идею решения см. стр 22
Дано слово. Между всеми буквами вставить символ '-'.
Формат ввода: Формат вывода:
s - слово s1 - новое слово
Пример ввода: Пример вывода:
дождь д-о-ж-д-ь
Манипуляция с символами строки
– «Добавление» идею решения см. стр 22
Дано слово. Добавить к слову это же слово, но только перевернутое.
Формат ввода: Формат вывода:
s – слово s1 - новое слово
Пример ввода: Пример вывода:
дождь дождььджод
Манипуляция с символами строки
– «Извлечение чисел из строки» идею решения см. стр 22
Дано слово. Сформировать новое слово, в котором будут находится все цифры.
Формат ввода: Формат вывода:
s – слово p - новое слово
Пример ввода: Пример вывода:
A1B222a3cdjhs42442124 1222342442124
Манипуляция с символами строки
– «Извлечение чисел из строки – 2» идею решения см. стр 22
Дано предложение, состоящее из двух слов и в конце предложения стоит точка. Первое слово - существительное, второе слово - число. Надо вывести число.
Формат ввода: Формат вывода:
s – предложение p - число
Пример ввода: Пример вывода:
МИСТИКА 18237. 18237
Манипуляция с символами строки
– «Удаление ненужных символов в слове»
идею решения см. стр 23
Дано слово. Удалить ненужные символы, '12abc,.' , в слове.
Формат ввода: Формат вывода:
s – слово p - новое слово
Пример ввода: Пример вывода:
1МbИСaТ,ИКА2. МИСТИКА
Манипуляция с символами строки
– «Циклический сдвиг символов слова»
идею решения см. стр 23
Дано слово. Сместить символы в слове на 3 позиции вправо. Или другими словами выполнить циклический сдвиг слова на 3 позиции вправо.
Формат ввода: Формат вывода:
s - слово s1 - новое слово
Пример ввода: Пример вывода:
дождь ждьдо
Манипуляция с символами строки
– «Одинаковые подряд идущие символы»
идею решения см. стр 23
Дано слово. Если встречаются подряд одинаковые символы то вывести их.
Формат ввода: Формат вывода:
s - слово new - новое слово
Пример ввода: Пример вывода:
kdbbfjgkdjbnbbbbghjhjgkkk bbbbbbkkk
Манипуляция с символами строки
– «Все различные символы» идею решения см. стр 23
Дано слово. Вывести новое слово, состоящее из различных символов. Формат ввода: Формат вывода:
s – слово new - новое слово
Пример ввода: Пример вывода:
kdbbfjgkdjbnbbbbghjhjgkkk kdbfjgnh
Манипуляция с символами строки
– «Сортировка символов строки» идею решения см. стр 24
Дано слово. Отсортировать символы строки в порядке возрастания. Формат ввода: Формат вывода:
s - слово p - новое слово
Пример ввода: Пример вывода:
ГИМНАСТИКА ААГИКМНСТ
Пример ввода: Пример вывода:
6723 2367
Поиск в слове
1 – « Все цифры?» идею решения см. стр 24
Дано слово. Определить, состоит ли слово из одних цифр.
Формат ввода: Формат вывода:
s – слово Yes/No
Пример ввода: Пример вывода:
How No
Пример ввода: Пример вывода:
123456 Yes
Поиск в слове
2 – «Хоть одна цифра?» идею решения см. стр 24
Дано слово. Проверить, есть ли в составе слова цифры.
Формат ввода: Формат вывода:
s - слово Yes/No
Пример ввода: Пример вывода:
How No
Пример ввода: Пример вывода:
It567ае Yes
Поиск в слове
3 – «Группа повторяющихся символов»
идею решения см. стр 25
Дано слово. Определить, есть ли в нем группа повторяющихся символов длиной более двух символов.
Формат ввода: Формат вывода:
s - слово Yes/No
Пример ввода: Пример вывода:
kdbbfjgkdjbnbbbbghjhjgkkk Yes
Поиск в слове
4 – «Встречаемость символов в строке»
идею решения см. стр 25
Дано два слова. Если все символы первого слова встречаются во втором слове (символы могут встречаться не по порядку), то вывести 'Yes', иначе - 'No'.
Формат ввода: Формат вывода:
s1 - первое слово Yes/No
s2 - второе слово
Пример ввода: Пример вывода:
МИСТИКА Yes
ГИМНАСТИКА
Пример ввода: Пример вывода:
ГРИМ No
ГИМНАСТИКА
Предложение и массив слов
1 – «Предложение = массив слов» идею решения см. стр 25
Дано предложение. Сформировать массив слов.
Формат ввода: Формат вывода:
p - предложение s[1] - первое слово
s[2] - второе слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
На улице идет дождь На
улице
идет
дождь
Предложение и массив слов
2 – «Массив слов = предложение» идею решения см. стр 26
Дан массив слов. Сформировать предложение.
Формат ввода: Формат вывода:
n - количество слов p - предложение
s[1] - первое слово
s[2] - второе слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
4 How is it going
How
is
it
going
Предложение и массив слов
3 – «Интересное предложение» идею решения см. стр 26
Дан массив слов. Сформировать предложение из слов массива, где вместо пробелов, между словами, будут находиться символы '***', а в конце предложения будут стоять символы - '**!'.
Формат ввода: Формат вывода:
n - количество слов p - предложение
s[1] - первое слово
s[2] - второе слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
4 На***улице***идет***дождь**!
На
улице
идет
дождь
Предложение и массив слов
4 – «Предложение и точка» идею решения см. стр 26
Дан массив слов. Вывести все слова, кроме последнего слова, через символ '_', а после последнего слова поставить символ '.' .
Формат ввода: Формат вывода:
n - количество слов p - предложение
s[1] - первое слово
s[2] - второе слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
4 На_улице_идет_дождь.
На
улице
идет
дождь
Предложение и массив слов
5 – «Два массива слов» идею решения см. стр 26
Дан массив предложений, где в каждом предложении есть два слова, между которыми один пробел. Надо сформировать два массива слов, где в первом массиве будут находиться слова до пробела, а во втором массиве - слова после пробела.
Формат ввода: Формат вывода:
n - количество слов s1[1] - первое слово первого массива
s[1] - первое предложение s1[2] - второе слово первого массива
s[2] - второе предложение ...
... s1[n] - последнее слово первого массива
s[n] - последнее предложение s2[1] - первое слово второго массива
s2[2] - второе слово второго массива
...
s2[n] - последнее слово второго массива
Пример ввода: Пример вывода:
4 Can
Can Just I
I a help
help moment you
you officer Just
a
moment
officer
Длина слов
1 – «Подсчет длины слов в массиве» идею решения см. стр 26
Дан массив слов. Вывести длины слов этого массива.
Формат ввода: Формат вывода:
n - количество слов d[1] - длина первого слова
s[1] - первое слово d[2] - длина второго слова
s[2] - второе слово ...
... d[n] - длина последнего слова
s[n] - последнее слово
Пример ввода: Пример вывода:
4 3
How 2
is 2
it 5
going
Длина слов
2 – «Слова длиной равной 3» идею решения см. стр 27
Дан массив слов. Вывести слова длиной равной 3.
Формат ввода: Формат вывода:
n - количество слов p[1] - первое слово
s[1] - первое слово p[2] - второе слово
s[2] - второе слово ...
... p[k] - последнее слово
s[n] - последнее слово
Пример ввода: Пример вывода:
4 How
How
is
it
going
Длина слов
3 – «Четная длина у слов» идею решения см. стр 27
Дан массив слов. Вывести слова, у которых длина четная.
Формат ввода: Формат вывода:
n - количество слов p[1] - первое слово
s[1] - первое слово p[2] - второе слово
s[2] - второе слово ...
... p[n] - последнее слово
s[n] - последнее слово
Пример ввода: Пример вывода:
4 is it
How
is
it
going
Длина слов
4 – «Слова с максимальной длиной»
идею решения см. стр 27
Дан массив слов. Сформировать массив слов максимальной длины. Формат ввода: Формат вывода:
n - количество слов p[1] - первое слово
s[1] - первое слово p[2] - второе слово
s[2] - второе слово ...
... p[m] - последнее слово
s[n] - последнее слово
Пример ввода: Пример вывода:
5 slowl
How going
is
slowl
it
going
Длина слов
5 – «Поиск слов максимальной длины с номером»
идею решения см. стр 27
Дан массив слов. Найти слова, первое и последнее, максимальной длины с номерами. Вывести их номера.
Формат ввода: Формат вывода:
n - количество слов Nom1 - номер первого слова
s[1] - первое слово Nom2 - номер последнего слова
s[2] - второе слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
6 3
How 5
is
slowl
it
going
f
Длина слов
6 – «Три самых длинных слова»
идею решения см. стр 28
Дан массив слов. Вывести 3 самых длинных слова в порядке их ввода.
Формат ввода: Формат вывода:
n - количество слов s1 - первое слово
s[1] - первое слово s2 - второе слово
s[2] - второе слово s3 - третье слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
4 How
How is
is going
it
going
Длина слов
7 – «Три самых коротких слова» идею решения см. стр 29
Дан массив слов. Вывести 3 самых коротких слова в порядке их ввода.
Формат ввода: Формат вывода:
n - количество слов s1 - первое слово
s[1] - первое слово s2 - второе слово
s[2] - второе слово s3 - третье слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
4 How
How is
is it
it
going
Длина слов
8 – «Сортировка длин со словами» идею решения см. стр 30
Дан массив слов. Вывести слова в порядке возрастания длин, то есть сначала односимвольные, затем двухсимвольные и т. д. слова.
Формат ввода: Формат вывода:
n - количество слов p[1] - первое слово
s[1] - первое слово p[2] - второе слово
s[2] - второе слово ...
... p[n] - последнее слово
s[n] - последнее слово
Пример ввода: Пример вывода:
4 is
How it
is How
it going
going
Манипуляция словами
1 – «Перевертыши» идею решения см. стр 30
Дан массив слов. Вывести слова, которые являются "перевертышами".
Формат ввода: Формат вывода:
n - количество слов p[1] - первое слово
s[1] - первое слово p[2] - второе слово
s[2] - второе слово ...
... p[k] - последнее слово
s[n] - последнее слово
Пример ввода: Пример вывода:
4 issi
How itkti
issi
itkti
going
Манипуляция словами
2 – «Есть ли подстрока в слове?» идею решения см. стр 30
Дан массив слов и подстрока p. Вывести слова, которые содержат в себе подстроку p.
Формат ввода: Формат вывода:
p – подстрока p[1] - первое слово
n - количество слов p[2] - второе слово
s[1] - первое слово ...
s[2] - второе слово p[k] - последнее слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
i is
4 it
How going
is
it
going
Манипуляция словами
3 – «Уменьшить слово» идею решения см. стр 30
Дан массив слов. Сократить каждое слово, длиной более 6 символов, поставив после четвертой буквы точку, а остаток отбросив. В результате вывести все слова.
Формат ввода: Формат вывода:
n - количество слов p[1] - первое слово
s[1] - первое слово p[2] - второе слово
s[2] - второе слово ...
... p[k] - последнее слово
s[n] - последнее слово
Пример ввода: Пример вывода:
4 How
How is
is it
it goin.
goinglen
Манипуляция словами
4 – «Есть ли слово?» идею решения см. стр 31
Дан массив слов и одно слово. Вывести слова, которые после 3 символа равны перевернутому исходному слову.
Формат ввода: Формат вывода:
sl - слово p[1] - первое слово
n - количество слов p[2] - второе слово
s[1] - первое слово ...
s[2] - второе слово p[k] - последнее слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
gn going
4
How
is
it
going
Манипуляция словами
5 – «Совпадение k символов» идею решения см. стр 31
Дан массив слов. Вывести слова, в которых k первых букв совпадают с k последними буквами.
Формат ввода: Формат вывода:
k - количество символов p[1] - первое слово
n - количество слов p[2] - второе слово
s[1] - первое слово ...
s[2] - второе слово p[k] - последнее слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
1 going
4
How
is
it
going
Манипуляция словами
6 – «Совпадение k-символов – 2» идею решения см. стр 31
Дан массив слов. Вывести слова, в которых k первых совпадают с к последними буквами, взятыми в обратном порядке.
Формат ввода: Формат вывода:
k - количество символов p[1] - первое слово
n - количество слов p[2] - второе слово
s[1] - первое слово ...
s[2] - второе слово p[k] - последнее слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
2 issi
4 itkti
How
issi
itkti
going
Манипуляция словами
7 – «Отсортировать слова по алфавиту»
идею решения см. стр 31
Дан массив слов. Отсортировать слова по алфавиту из массива слов. Сформировать предложение и вывести его.
Формат ввода: Формат вывода:
n - количество слов p - предложение
s[1] - первое слово
s[2] - второе слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
4 дождь идет на улице
на
улице
идет
дождь
Поиск в массиве слов
1 – «Поиск слова в массиве» идею решения см. стр 32
Дан массив слов и слово. Если исходное слово есть в массиве слов, то вывести - Yes, иначе - No.
Формат ввода: Формат вывода:
sl – слово Yes / No
n - количество слов
s[1] - первое слово
s[2] - второе слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
идет Yes
4
На
улице
идет
дождь
Пример ввода: Пример вывода:
непогода No
4
На
улице
идет
дождь
Поиск в массиве слов идею решения см. стр 32
2 – «Поиск слова в массиве с номером»
Дан массив слов и слово. Если исходное слово есть в массиве слов, то вывести номер этого слова, иначе - No.
Формат ввода: Формат вывода:
sl - слово i (номер) / No
n - количество слов
s[1] - первое слово
s[2] - второе слово
...
s[n] - последнее слово
Пример ввода: Пример вывода:
идет 3
4
На
улице
идет
дождь
Пример ввода: Пример вывода:
непогода No
4
На
улице
идет
дождь
Поиск в массиве слов
3 – «Поиск различных слов» идею решения см. стр 32
Дан массив слов. Сформировать и вывести новый массив слов из различных слов исходного масива.
Формат ввода: Формат вывода:
n - количество слов p[1] - первое слово
s[1] - первое слово p[2] - второе слово
s[2] - второе слово ...
... p[m] - последнее слово
s[n] - последнее слово
Пример ввода: Пример вывода:
9 На
На улице
улице идет
идет дождь
дождь -
На непогода
улице
-
непогода
На
Поиск в массиве слов идею решения см. стр 32
4 – «Найти последнее слово в массиве»
Дан массив слов. Найти в массиве последнее слово в котором есть 'kkk'.
Формат ввода: Формат вывода:
n - количество слов Z - последнее слово в массиве в котором есть 'kkk'
S[1] - первое слово
S[2] - второе слово
...
S[n] - последнее слово
Пример ввода: Пример вывода:
6 kkkbus
Wherekkk
is
the
kkkbus
stop
?
Поиск в массиве слов
5 – «Сравнение двух массивов» идею решения см. стр 33
Дано 2 массива слов. Сравнить два массива слов, если они между собой равны, то вывести 'Yes', иначе - 'No'.
Формат ввода: Формат вывода:
n - количество слов первого и второго массивов слов Yes/No
s1[1] - первое слово первого массива
s1[2] - второе слово первого массива
...
s1[n] - последнее слово первого массива
s2[1] - первое слово второго массива
s2[2] - второе слово второго массива
...
s2[n] - последнее слово второго массива
Пример ввода: Пример вывода: Пример ввода: Пример вывода:
6 Yes 6 No
Ver Ver
is is
it it
going going
hart hart
das das
Ver Ver
is is
it it’s
going going
hart hart
das das
Идеи решений задач из элементарных алгоритмов:
Манипуляция с символами строки
1 – «Дублирование символов» текст программы см. стр 34
Ввести слово S
D = длина слова
Цикл по всем символам слова ( переменная i )
Вывести символ S[i] и символ S[i]
Манипуляция с символами строки текст программы см. стр 34
2 – «Запись символов через черточку»
Ввести слово S
D = длина слова
Цикл по i от 1 до предпоследнего символа слова ( до D-1 )
Вывести символ S[i] и символ '-'
Вывести последний символ ( S[D] )
Манипуляция с символами строки
3 – «Добавление» текст программы см. стр 34
Ввести слово S
D = длина слова
P = перевернутое слово S
Вывести слово S и слово P
Манипуляция с символами строки
4 – «Извлечение чисел из строки» текст программы см. стр 35
Ввести слово S
D = длина слова S
X = '1234567890'
P = пустая строка
Цикл по всем символам слова ( переменная i)
Если символ слова (S[i]) есть в строке Х
то P = P + S[i]
Вывести строку P
Манипуляция с символами строки
5 – «Извлечение чисел из строки – 2»
текст программы см. стр 35
Ввести предложение S
pr = позиция пробела в строке S
pt = позиция точки в строке S
P = часть слова с позиции pr + 1 до pt
Вывести число P
Манипуляция с символами строки
6 – «Удаление ненужных символов в слове»
текст программы см. стр 35
Ввести слово
X = '12abc,.' - строка с ненужными символами
P = пустая строка
d = длина слова S
Цикл по i от 1 до d
Если символа S[i] нет в строке X
то P = P + символ S[i]
Вывести P
Манипуляция с символами строки
7 – «Циклический сдвиг символов слова»
текст программы см. стр 36
Ввести слово S
D = длина слова
P = последние три символа + первые D-3 символа
Вывести слово ( P )
Манипуляция с символами строки
8 – «Одинаковые подряд идущие символы»
текст программы см. стр 36
Ввести слово S
S = S + символ '_'
D = длина слова
P = пустая строка
Цикл от 1 до предпоследнего символа ( переменная i )
Если S [i] = S [i+1]
то P = P + символ слова ( S [i] )
иначе Если p пустой строке
то P = P + S [i]
Вывести P ( write P )
P = пустая строка
Манипуляция с символами строки
9 – «Все различные символы» текст программы см. стр 36
Ввести слово S
D = длина слова
W = первый символ слова S (S[1])
Цикл по i от 2 до последнего символа
Если символа нет в строке W
то W = W + символ слова (S[i])
Вывести W
Манипуляция с символами строки
10 – «Сортировка символов строки»
текст программы см. стр 37
Ввести слово
d = длина слова S
Цикл по i от 1 до d-1
Цикл по j от 1 до d-1
Если символ S[j] ( больше ) символа S[j+1]
то C = S[j]
S[j] = S[j+1]
S[j+1] = С
Вывести S
Поиск в слове
1 – « Все цифры?» текст программы см. стр 37
Ввести слово S
D = длина слова S
X = '1234567890'
i = 1
Пока ( i
Перейти к следующему символу (i=i+1)
Если i D
то Вывести Yes
иначе Вывести No
Поиск в слове
Поиск в слове
2 – «Хоть одна цифра?» текст программы см. стр 38
Ввести слово S
D = длина слова S
X = '1234567890'
i = 1
Пока ( i
Перейти к следующему символу (i = i + 1)
Если i D
то Вывести Yes
иначе Вывести No
Поиск в слове
3 – «Группа повторяющихся символов»
текст программы см. стр 38
Ввести слово S
D = длина слова S
X = '1234567890'
i = 1
Пока ( i D - 2 ) и
( ( текущий символ (S[i]) не равен следующему символу (S[i+1]) ) или
( S[i] не равен S[i+2] ) ) делать
Перейти к следующему символу (i = i + 1)
Если i D - 2
то Вывести No
иначе Вывести Yes
Поиск в слове
4 – «Встречаемость символов в строке»
текст программы см. стр 39
Ввести слово SL_1
Ввести слово SL_2
d = длина слова SL_1
i = 1
Пока (id) и (символ SL_1[i] есть в слове SL_2) делать
Увеличить i на 1
Если id
то Вывести Yes
иначе Вывести No
Предложение и массив слов
1 – «Предложение = массив слов» текст программы см. стр 39
Ввести предложение S
S = S + пробел
D = длина предложения S
n = 0
Z = пустая строка
Цикл по всем символам ( переменная i)
Если символ не равен пробелу { символ - S[i] }
то Z = Z + символ
иначе n = n + 1
P[n] = Z
Z = пустая строка
Цикл по i от 1 до n делать
Вывести текущее слово { слово - P[i] }
Предложение и массив слов
2 – «Массив слов = предложение» текст программы см. стр 40
Ввести массив слов S
P = пустая строка
Цикл по всем словам P = P + текущее слово + пробел
Вывести предложение P
Предложение и массив слов
3 – «Интересное предложение» текст программы см. стр 40
Ввести массив слов S
P = пустая строка
Цикл по i от 1 до последнего слова
P = P + S[i] + '***'
Удаляем последний символ из строки P
( последний ненужный символ '*' )
P = P + '!'
Вывести P
Предложение и массив слов
4 – «Предложение и точка» текст программы см. стр 40
Ввести массив слов S
Цикл по i от 1 до предпоследнего слова
Вывести слово и символ '_'
(write (S[i],'_'))
Вывести последнее слово и символ '.'
(write (S[n],'.'), где n - количество слов)
Предложение и массив слов
5 – «Два массива слов» текст программы см. стр 41
Ввести массив предложений S
Цикл по всем предложениям ( переменная i)
Z = S[i]
D = длина строки Z
P = позиция пробела в строке Z
S1[i] = слово до пробела из строки Z
S2[i] = слово после пробела из строки Z
Цикл по всем словам (переменная i) Вывести слово S1[i]
Цикл по всем словам (переменная i) Вывести слово S2[i]
Длина слов
1 – «Подсчет длины слов в массиве» текст программы см. стр 41
Ввести массив слов S
Цикл по всем словам ( переменная i )
D[i] = длина слова S[i]
Цикл по всем словам
Вывести длины слов ( D[i] )
Длина слов
2 – «Слова длиной равной 3» текст программы см. стр 41
Ввести массив слов S
Цикл по всем словам ( переменная i )
D[i] = длина слова S[i]
Цикл по всем словам ( переменная i )
Если D[i] = 3 то вывести S[i]
Длина слов
3 – «Четная длина у слов» текст программы см. стр 42
Ввести массив слов S
Цикл по всем словам ( переменная i )
D[i] = длина слова S[i]
Цикл по всем словам ( переменная i )
Если D[i] четное число ( (D[i] mod 2) = 0 )
то вывести S[i]
Длина слов
4 – «Слова с максимальной длиной» текст программы см. стр 42
Ввести массив слов S
Цикл по всем словам ( переменная i)
D[i] = длина слова S[i]
Max = максимальный элемент в массиве D
Цикл по всем словам (переменная i)
Если D[i] = Max то вывести слово S[i]
Длина слов
5 – «Поиск слов максимальной длины с номером»
текст программы см. стр 43
Ввести массив слов S
Цикл по всем словам ( переменная i)
D[i] = длина слова S[i]
Max = длина первого слова (D[1])
Nom1 = 1 - номер первого слова
Цикл по i от 2 до последнего слова
Если D[i] Max
то Max = D[i]
Nom1 = i
Nom2 = 1 - номер последнего слова
Цикл по всем словам
Если D[i] = Max
то Nom2 = i
Вывести Nom1
Вывести Nom2
Длина слов
6 – «Три самых длинных слова» текст программы см. стр 43
Ввести массив слов S
Цикл по всем словам ( переменная i)
D[i] = длина слова S[i]
Поиск максимального числа в массиве D с номером k1:
Max = длина первого слова (D[1])
k1 = 1 - номер первого слова с его максимальной длиной
Цикл от 2 до последнего слова ( переменная i )
Если D[i]
то Max = D[i]
k1 = i
D[k1] = 0 (ноль) - для того чтобы не найти слово с номером k1
Поиск максимального числа в массиве D с номером k2:
Mах = длина первого слова (D[1])
k2 = 1 - номер первого слова с его максимальной длиной
Цикл от 2 до последнего слова ( переменная i )
Если D[i]
то Mах = D[i]
k2 = i
D[k2] = 0 (ноль)-для того чтобы не найти слово с номером k2
Поиск максимального числа в массиве D с номером k3:
Mах = длина первого слова (D[1])
k3 = 1 - номер первого слова с его максимальной длиной
Цикл от 2 до последнего слова ( переменная i )
Если D[i]
то Mах = D[i]
k3 = i
Сортируем три числа k1, k2 и k3:
Если k1 k2 то Nom = k1, k1 = k2, k2 = Nom
Если k2 k3 то Nom = k2, k2 = k3, k3 = Nom
Если k1 k2 то Nom = k1, k1 = k2, k2 = Nom
Вывести слово S с номером k1 ( S[k1] )
Вывести слово S с номером k2 ( S[k2] )
Вывести слово S с номером k3 ( S[k3] )
Длина слов
7 – «Три самых коротких слова» текст программы см. стр 44
Ввести массив слов S
Цикл по всем словам ( переменная i)
D[i] = длина слова S[i]
Найти в массиве D минимальное число и его номер k1:
Min = длина первого слова (D[1])
k1 = 1 - номер первого слова с его минимальной длиной
Цикл от 2 до последнего слова ( переменная i )
Если D[i]
то Min = D[i]
k1 = i
D[k1] = самое большое число ( maxlongint )
для того чтобы не найти слово с номером k1
Найти в массиве D минимальное число и его номер k2:
Min = длина первого слова (D [1])
k2 = 1 - номер первого слова с его минимальной длиной
Цикл от 2 до последнего слова ( переменная i )
Если D[i]
то Min = D[i]
k2 = i
D[k2] = самое большое число ( maxlongint )
для того чтобы не найти слово с номером k2
Найти в массиве D минимальное число и его номер k3:
Min = длина первого слова (D [1])
k3 = 1 - номер первого слова с его минимальной длиной
Цикл от 2 до последнего слова ( переменная i )
Если D[i]
то Min = D[i]
k3 = i
Сортируем три числа k1, k2 и k3:
Если k1 k2 то Nom = k1, k1 = k2, k2 = Nom
Если k2 k3 то Nom = k2, k2 = k3, k3 = Nom
Если k1 k2 то Nom = k1, k1 = k2, k2 = Nom
Вывести слово с номером k1 ( S[k1] )
Вывести слово с номером k2 ( S[k2] )
Вывести слово с номером k3 ( S[k3] )
Длина слов
8 – «Сортировка длин со словами» текст программы см. стр 45
Ввести массив слов S
Цикл по всем словам ( переменная i )
D[i] = длина слова S[i]
Сортируем массив D и одновременно массив S:
Цикл от 1 до предпоследнего слова ( переменная i )
Цикл от 1 до предпоследнего слова ( переменная j )
Если D[j] D[j+1]
то k = D[j] Z = S[j]
D[j] = D[j+1] S[j] = S[j+1]
D[j+1] = k S[j+1] = Z
Вывести массив слов S
Манипуляция словами
1 – «Перевертыши» текст программы см. стр 45
Ввести массив слов S
Цикл по всем словам
P = слово ( S [i] )
Z = перевернутое слово P
Если Z = P
то вывести P ( writeln P )
Манипуляция словами
2 – «Есть ли подстрока в слове?» текст программы см. стр 46
Ввести подстроку P
Ввести массив слов S
Цикл по всем словам ( переменная i )
Если подстрока P есть в слове S[i]
то вывести слово S[i] ( writeln S[i] )
Манипуляция словами
3 – «Уменьшить слово» текст программы см. стр 46
Ввести массив слов S
Вычислить длину слов D в массиве S
Цикл по всем словам
Если D[i] 6
то S[i] = первый символ слова S[i] ( S[i,1] ) +
S[i,2] + S[i,3] + S[i,4] + символ '.'
Цикл по всем совам
Вывести слово S[i] ( writeln S[i] )
Манипуляция словами
4 – «Есть ли слово?» текст программы см. стр 47
Ввести слово SL
Ввести массив слов S
P = перевернутое слово SL
Цикл по всем словам ( переменная i )
D[i] = длина слова S[i]
Цикл по всем словам ( переменная i )
Если ( D[i] 3 ) и
(часть слова S[i] c 4 символа и до конца слова= P )
то Вывести слово S[i]
Манипуляция словами
5 – «Совпадение k символов» текст программы см. стр 47
Ввести k
Ввести массив слов S
Цикл по всем словам ( переменная i )
D[i] = длина слова S[i]
Цикл по всем словам ( переменная i )
Если ( D[i] k ) и
(первые k символов слова S[i] =
последним k символам слова S[i])
то вывести слово S[i]
Манипуляция словами
6 – «Совпадение k-символов – 2» текст программы см. стр 48
Ввести k
Ввести массив слов S
Цикл по всем словам ( переменная i )
P = текущее слово S[i]
Z = перевернутое слово P
Q = первые k символов слова P
X = первые k символов слова Z
Если Q = X
то вывести слово P
Манипуляция словами текст программы см. стр 48
7 – «Отсортировать слова по алфавиту»
Ввести n - количество слов
Ввести массив слов
Цикл по i от 1 до n-1
Цикл по j от 1 до n-1
Если символ S[j] ( не равен ) символу S[j+1]
то P = S[j]
S[j] = S[j+1]
S[j+1] = P
Сформировать предложение P
Вывести P
Поиск в массиве слов
1 – «Поиск слова в массиве» текст программы см. стр 49
Ввести слово SL
Ввести n - количество слов в массиве S
Ввести массив S
i = 1
Пока ( i и ( SL S [i] ) делать i = i + 1
Если i n
то Вывести No
иначе Вывести Yes
Поиск в массиве слов
2 – «Поиск слова в массиве с номером»
текст программы см. стр 49
Ввести слово SL
Ввести n - количество слов в массиве S
Ввести массив S
i = 1
Пока ( i и ( SL S [i] ) делать i = i + 1
Если i n
то Вывести No
иначе Вывести i
Поиск в массиве слов
3 – «Поиск различных слов» текст программы см. стр 50
Ввести n - количество слов массива S
Ввести массив слов S[i]
P[1] = S[1] - P[1] - первое слово
kp = 1 - количество слов нового массива P
Цикл по i от 1 до n
j = 1
Пока ( j P[j] ) делать j = j + 1
Если j kp
то kp = kp + 1, P[kp] = S[i]
Цикл по i от 1 до kp
Вывести слово P[i]
Поиск в массиве слов
4 – «Найти последнее слово в массиве»
текст программы см. стр 50
Ввести n - количество слов в массиве
Ввести массив слов S
i = n
Пока (i=1) и ('kkk' нет в слове S[i]) делать i=i-1
Z = S[i]
Вывести Z
Поиск в массиве слов
5 – «Сравнение двух массивов» текст программы см. стр 51
Ввести количество слов n
Ввести массив слов S_1
Ввести массив слов S_2
i = 1
Пока (i
Если in
то Вывести Yes
иначе Вывести No
Решения задач из элементарных алгоритмов:
Манипуляция с символами строки
1 – «Дублирование символов»
Program stroki;
Var
s : string;
d,i : longint;
begin
readln(s); d:=length(s);
For i:=1 to d do write(s[i],s[i]);
end.
Манипуляция с символами строки
2 – «Запись символов через черточку»
Program stroki;
Var
s : string;
d,i : longint;
begin
readln(s); d:=length(s);
For i:=1 to d-1 do write(s[i],'-');
write(s[d]);
end.
Манипуляция с символами строки
3 – «Добавление»
Program stroki;
Var
s,p : string;
d,i : longint;
begin
readln(s); d:=length(s);
p:='';
For i:=1 to d do p:=s[i]+p;
writeln(s,p);
end.
Манипуляция с символами строки
4 – «Извлечение чисел из строки»
Program stroki;
Var
s,p,x : string;
d,i : longint;
begin
readln(s);
d:=length(s);
x:='1234567890';
p:='';
For i:=1 to d do
if pos(s[i],x)0
then p:=p+s[i];
writeln(p);
end.
Манипуляция с символами строки
5 – «Извлечение чисел из строки – 2»
Program stroki;
Var
s,p : string;
pr,pt : longint;
begin
read(s);
pr:=pos(' ',s);
pt:=pos('.',s);
p:=copy(s,pr+1,pt-pr-1);
write(p);
end.
Манипуляция с символами строки
6 – «Удаление ненужных символов в слове»
Program stroki;
Var
s,p,x : string;
i,d : longint;
begin
readln(s);
x:='12abc,.';
p:='';
d:=length(s);
For i:=1 to d do
if pos(s[i],x)=0 then p:=p+s[i];
writeln(p);
end.
Манипуляция с символами строки
7 – «Циклический сдвиг символов слова»
Program stroki;
Var
s,p : string;
d,i : longint;
begin
readln(s); d:=length(s);
p:=copy(s,d-2,3)+copy(s,1,d-3);
writeln(p);
end.
Манипуляция с символами строки
8 – «Одинаковые подряд идущие символы»
Program stroki;
Var
s,p : string;
d,i,j : longint;
begin
readln(s); s:=s+'_'; d:=length(s); p:='';
For i:=1 to d-1 do
if s[i]=s[i+1]
then p:=p+s[i]
else begin
if p'' then p:=p+s[i];
write(p);
p:='';
end;
end.
Манипуляция с символами строки
9 – «Все различные символы»
Program stroki;
Var
s,w : string;
i,d : longint;
begin
readln(s); d:=length(s);
w:=s[1];
For i:=2 to d do
if pos(s[i],w)=0 then w:=w+s[i];
write(w);
end.
Манипуляция с символами строки
10 – «Сортировка символов строки»
Program stroki;
Var
s : string;
c : char;
i,j,d : longint;
begin
readln(s);
d:=length(s);
For i:=1 to d-1 do
For j:=1 to d-1 do
if s[j]s[j+1]
then begin
c:=s[j];
s[j]:=s[j+1];
s[j+1]:=c;
end;
writeln(s);
end.
Поиск в слове
1 – « Все цифры?»
Program stroki;
Var
s,x : string;
d,i : longint;
begin
readln(s); d:=length(s);
x:='1234567890';
i:=1;
While (i0) do i:=i+1;
if id
then writeln('Yes')
else writeln('No');
end.
Поиск в слове
2 – «Хоть одна цифра?»
Program stroki;
Var
s,x : string;
d,i : longint;
begin
readln(s); d:=length(s);
x:='1234567890';
i:=1;
While (i
if id
then writeln('No')
else writeln('Yes');
end.
Поиск в слове
3 – «Группа повторяющихся символов»
Program stroki;
Var
s : string;
i,d : longint;
begin
readln(s); d:=length(s);
i:=1;
While (is[i+1]) or (s[i]s[i+2])) do i:=i+1;
if i(d-2)
then writeln('No')
else writeln('Yes');
end.
Поиск в слове
4 – «Встречаемость символов в строке»
Program stroki;
Var
sl1,sl2 : string;
i,d : longint;
begin
readln(sl1);
readln(sl2);
d:=length(sl1);
i:=1;
While (i0) do i:=i+1;
if id
then writeln('Yes')
else writeln('No');
end.
Предложение и массив слов
1 – «Предложение = массив слов»
Program stroki;
Var
p : array [1..100] of string;
s,z : string;
i,d,n : longint;
begin
readln(s); s:=s+' '; d:=length(s);
n:=0; z:='';
For i:=1 to d do
if s[i]' '
then z:=z+s[i]
else begin
n:=n+1;
p[n]:=z;
z:='';
end;
For i:=1 to n do writeln(p[i]);
end.
Предложение и массив слов
2 – «Массив слов = предложение»
Program stroki;
Var
s : array [1..100] of string;
p : string;
i,n : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
p:='';
For i:=1 to n do p:=p+s[i];
writeln(p);
end.
Предложение и массив слов
3 – «Интересное предложение»
Program stroki;
Var
s : array [1..20] of string;
p : string;
i,n : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
p:='';
For i:=1 to n do p:=p+s[i]+'***';
Delete(p,length(p),1);
p:=p+'!';
writeln(p);
end.
Предложение и массив слов
4 – «Предложение и точка»
Program stroki;
Var
s : array [1..20] of string;
i,n : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n-1 do write(s[i],'_');
write(s[n],'.');
end.
Предложение и массив слов
5 – «Два массива слов»
Program stroki;
Var
s1,s2,s : array [1..50] of string;
i,n,p : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do
begin
p:=pos(' ',s[i]);
s2[i]:=copy(s[i],p+1,length(s[i])-p);
s1[i]:=copy(s[i],1,p-1);
end;
For i:=1 to n do writeln(s1[i]);
For i:=1 to n do writeln(s2[i]);
end.
Длина слов
1 – «Подсчет длины слов в массиве»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
i,n : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
For i:=1 to n do writeln(d[i]);
end.
Длина слов
2 – «Слова длиной равной 3»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
i,n : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
For i:=1 to n do
if d[i]=3 then writeln(s[i]);
end.
Длина слов
3 – «Четная длина у слов»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
i,n : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
For i:=1 to n do
if (d[i] mod 2)=0 then writeln(s[i]);
end.
Длина слов
4 – «Слова с максимальной длиной»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
i,n,max : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
max:=d[1];
For i:=2 to n do
if d[i]max then max:=d[i];
For i:=1 to n do
if d[i]=max then writeln(s[i]);
end.
Длина слов
5 – «Поиск слов максимальной длины с номером»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
i,n,max,nom1,nom2 : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
max:=d[1]; nom1:=1;
For i:=2 to n do
if d[i]max then begin max:=d[i]; nom1:=i; end;
nom2:=1;
For i:=1 to n do
if d[i]=max then nom2:=i;
writeln(nom1);
writeln(nom2);
end.
Длина слов
6 – «Три самых длинных слова»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
z : string;
i,j,n,k1,max,k2,k3 : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
max:=d[1]; k1:=1;
For i:=2 to n do
if d[i]max then begin max:=d[i]; k1:=i; end;
d[k1]:=0;
max:=d[1]; k2:=1;
For i:=2 to n do
if d[i]max then begin max:=d[i]; k2:=i; end;
d[k2]:=0;
max:=d[1]; k3:=1;
For i:=2 to n do
if d[i]max then begin max:=d[i]; k3:=i; end;
if k1k2 then begin max:=k1; k1:=k2; k2:=max; end;
if k2k3 then begin max:=k2; k2:=k3; k3:=max; end;
if k1k2 then begin max:=k1; k1:=k2; k2:=max; end;
writeln(s[k1],' ',s[k2],' ',s[k3]);
end.
Длина слов
7 – «Три самых коротких слова»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
z : string;
i,j,n,min,k1,k2,k3,nom : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
min:=d[1]; k1:=1;
For i:=2 to n do
if d[i]
d[k1]:=maxlongint;
min:=d[1]; k2:=1;
For i:=2 to n do
if d[i]
d[k2]:=maxlongint;
min:=d[1]; k3:=1;
For i:=2 to n do
if d[i]
if k1k2 then begin nom:=k1; k1:=k2; k2:=nom; end;
if k2k3 then begin nom:=k2; k2:=k3; k3:=nom; end;
if k1k2 then begin nom:=k1; k1:=k2; k2:=nom; end;
writeln(s[k1]);
writeln(s[k2]);
writeln(s[k3]);
end.
Длина слов
8 – «Сортировка длин со словами»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
z : string;
i,j,n,k : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
For i:=1 to n-1 do
For j:=1 to n-1 do
if d[j]d[j+1]
then begin
k:=d[j]; z:=s[j];
d[j]:=d[j+1]; s[j]:=s[j+1];
d[j+1]:=k; s[j+1]:=z;
end;
For i:=1 to n do writeln(s[i]);
end.
Манипуляция словами
1 – «Перевертыши»
Program stroki;
Var
s : array [1..100] of string;
p,z : string;
i,n,j,d : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do
begin
p:=s[i]; d:=length(p); z:='';
For j:=1 to d do z:=p[j]+z;
if z=p then writeln(p);
end;
end.
Манипуляция словами
2 – «Есть ли подстрока в слове?»
Program stroki;
Var
s : array [1..100] of string;
p : string;
i,n : longint;
begin
readln(p);
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do
if pos(p,s[i])0 then writeln(s[i]);
end.
Манипуляция словами
3 – «Уменьшить слово»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
p : string;
i,n : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
For i:=1 to n do
if d[i]6
then s[i]:=s[i,1]+s[i,2]+s[i,3]+s[i,4]+'.';
For i:=1 to n do writeln(s[i]);
end.
Манипуляция словами
4 – «Есть ли слово?»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
sl,p : string;
i,n,dl : longint;
begin
readln(sl);
readln(n);
For i:=1 to n do readln(s[i]);
dl:=length(sl); p:='';
For i:=1 to dl do p:=sl[i]+p;
For i:=1 to n do d[i]:=length(s[i]);
For i:=1 to n do
if (d[i]3) and (copy(s[i],4,d[i]-3)=p)
then writeln(s[i]);
end.
Манипуляция словами
5 – «Совпадение k символов»
Program stroki;
Var
s : array [1..100] of string;
d : array [1..100] of longint;
i,n,k : longint;
begin
readln(k);
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do d[i]:=length(s[i]);
For i:=1 to n do
if (d[i]k) and (copy(s[i],1,k)=
copy(s[i],d[i]-k+1,k))
then writeln(s[i]);
end.
Манипуляция словами
6 – «Совпадение k-символов – 2»
Program stroki;
Var
s : array [1..100] of string;
p,z,q,x : string;
i,j,n,d,k : longint;
begin
readln(k);
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do
begin
p:=s[i]; d:=length(p); z:='';
For j:=1 to d do z:=p[j]+z;
q:=copy(p,1,k);
x:=copy(z,1,k);
if q=x then writeln(p);
end;
end.
Манипуляция словами
7 – «Отсортировать слова по алфавиту»
Program stroki;
Var
s : array [1..100] of string;
p : string;
i,j,n : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n-1 do
For j:=1 to n-1 do
if s[j]s[j+1]
then begin
p:=s[j];
s[j]:=s[j+1];
s[j+1]:=p;
end;
p:='';
For i:=1 to n do p:=p+s[i]+' ';
writeln(p);
end.
Поиск в массиве слов
1 – «Поиск слова в массиве»
Program stroki;
Var
s,p : array [1..20] of string;
sl : string;
i,kp,n,j : longint;
begin
readln(sl);
readln(n);
For i:=1 to n do readln(s[i]);
i:=1;
While (is[i]) do i:=i+1;
if in
then writeln('No')
else writeln('Yes');
end.
Поиск в массиве слов
2 – «Поиск слова в массиве с номером»
Program stroki;
Var
s,p : array [1..20] of string;
sl : string;
i,kp,n,j : longint;
begin
readln(sl);
readln(n);
For i:=1 to n do readln(s[i]);
i:=1;
While (is[i]) do i:=i+1;
if in
then writeln('No')
else writeln(i);
end.
Поиск в массиве слов
3 – «Поиск различных слов»
Program stroki;
Var
s,p : array [1..20] of string;
i,kp,n,j : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
For i:=1 to n do p[i]:='';
p[1]:=s[1]; kp:=1;
For i:=1 to n do
begin
j:=1;
While (jp[j]) do j:=j+1;
if jkp
then begin kp:=kp+1; p[kp]:=s[i]; end;
end;
For i:=1 to kp do writeln(p[i]);
end.
Поиск в массиве слов
4 – «Найти последнее слово в массиве»
Program stroki;
Var
s : array [1..100] of string;
z : string;
n,i : longint;
begin
readln(n);
For i:=1 to n do readln(s[i]);
i:=1;
While (i
z:=s[n-i+1];
write(z);
end.
Поиск в массиве слов
5 – «Сравнение двух массивов»
Program stroki;
Var
s1,s2 : array [1..100] of string;
i,n : longint;
begin
readln(n);
For i:=1 to n do readln(s1[i]);
For i:=1 to n do readln(s2[i]);
i:=1;
While (i
if in
then writeln('Yes')
else writeln('No');
end.
48