СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Задачи на строки

Категория: Информатика

Нажмите, чтобы узнать подробности

Условия задач - Идеи решений - Решения. Решение задач с использованием символьных величин методом погружения

Просмотр содержимого документа
«Задачи на строки»

Условия задач:

Манипуляция с символами строки

1 – «Дублирование символов» идею решения см. стр 22

Дано слово. Записать каждый символ по два раза.

Формат ввода: Формат вывода:

s – слово s1 - новое слово

Пример ввода: Пример вывода:

дождь ддоожжддьь


Манипуляция с символами строки

  1. «Запись символов через черточку» идею решения см. стр 22

Дано слово. Между всеми буквами вставить символ '-'.

Формат ввода: Формат вывода:

s - слово s1 - новое слово

Пример ввода: Пример вывода:

дождь д-о-ж-д-ь


Манипуляция с символами строки

  1. «Добавление» идею решения см. стр 22

Дано слово. Добавить к слову это же слово, но только перевернутое.

Формат ввода: Формат вывода:

s – слово s1 - новое слово

Пример ввода: Пример вывода:

дождь дождььджод


Манипуляция с символами строки

  1. «Извлечение чисел из строки» идею решения см. стр 22

Дано слово. Сформировать новое слово, в котором будут находится все цифры.

Формат ввода: Формат вывода:

s – слово p - новое слово

Пример ввода: Пример вывода:

A1B222a3cdjhs42442124 1222342442124

Манипуляция с символами строки

  1. «Извлечение чисел из строки – 2» идею решения см. стр 22

Дано предложение, состоящее из двух слов и в конце предложения стоит точка. Первое слово - существительное, второе слово - число. Надо вывести число.

Формат ввода: Формат вывода:

s – предложение p - число

Пример ввода: Пример вывода:

МИСТИКА 18237. 18237


Манипуляция с символами строки

  1. «Удаление ненужных символов в слове»

идею решения см. стр 23

Дано слово. Удалить ненужные символы, '12abc,.' , в слове.

Формат ввода: Формат вывода:

s – слово p - новое слово

Пример ввода: Пример вывода:

1МbИСaТ,ИКА2. МИСТИКА


Манипуляция с символами строки

  1. «Циклический сдвиг символов слова»

идею решения см. стр 23

Дано слово. Сместить символы в слове на 3 позиции вправо. Или другими словами выполнить циклический сдвиг слова на 3 позиции вправо.

Формат ввода: Формат вывода:

s - слово s1 - новое слово

Пример ввода: Пример вывода:

дождь ждьдо










Манипуляция с символами строки

  1. «Одинаковые подряд идущие символы»

идею решения см. стр 23

Дано слово. Если встречаются подряд одинаковые символы то вывести их.

Формат ввода: Формат вывода:

s - слово new - новое слово

Пример ввода: Пример вывода:

kdbbfjgkdjbnbbbbghjhjgkkk bbbbbbkkk


Манипуляция с символами строки

  1. «Все различные символы» идею решения см. стр 23

Дано слово. Вывести новое слово, состоящее из различных символов. Формат ввода: Формат вывода:

s – слово new - новое слово

Пример ввода: Пример вывода:

kdbbfjgkdjbnbbbbghjhjgkkk kdbfjgnh



Манипуляция с символами строки

  1. «Сортировка символов строки» идею решения см. стр 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