Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОПС_ЛР_1_2009.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
158.72 Кб
Скачать

Пример № 2.

Задание

Дан текстовый файл, символами которого являются русские или латинские буквы. Распечатать его, заменив символами «-» латинские буквы четных строк и на символы «_» русские буквы каждой 3-ей строки. В начале каждой пятой строки вывести восклицательный знак.

Исходный текстовый файл:

проtyu

yнг

шlp

yui

щ

дuio

Текстовый файл после выполнения преобразования:

проtyu

-нг

_lp

---

_---

Исходная таблица решений (показана частично, столбцы с 11 по 31 пропущены).

1

2

3

4

5

6

7

8

9

10

32

условия

Русская /латинская буква

0

0

0

0

0

0

0

0

0

0

1

Четная / нечетная строка

0

0

0

0

0

0

0

0

1

1

1

Третья / иная строка

0

0

0

0

1

1

1

1

0

0

1

Пятая / иная строка

0

0

1

1

0

0

1

1

0

0

1

Начало строки

0

1

0

1

0

1

0

1

0

1

1

действия

Печать «!»

+

+

+

Печать «-»

+

+

Печать «_»

+

Печать исходного символа

+

+

+

+

+

+

+

+

Первое значение каждого условия соответствует знаку «1», второе – знаку «0».

Действия выполняются сверху вниз, т.е. для последнего столбца сначала будет напечатан «!», а потом «_».

Оптимизация таблицы решений.

Объединяем пары столбцов с одинаковыми действиями и комбинациями условий, которые отличаются в одной позиции.

Таблица решений с объединенными колонками. Первый этап (показана частично, столбцы с 11 по 31 пропущены).

1,2

2

3,7

4,8

5,6

6

7

8

9,10

10

32

условия

Русская /латинская буква

0

0

0

0

0

0

0

0

0

0

1

Четная / нечетная строка

0

0

0

0

0

0

0

0

1

1

1

Третья / иная строка

0

0

(0)*

(0)*

1

1

1

1

0

0

1

Пятая / иная строка

0

0

1

1

0

0

1

1

0

0

1

Начало строки

(0)*

1

0

1

(0)*

1

0

1

(0)*

1

1

действия

Печать «!»

+

+

+

Печать «-»

+

+

Печать «_»

+

Печать исходного символа

+

+

+

+

+

+

+

+

Таблица решений с объединенными колонками. Второй этап (показана частично, столбцы с 11 по 31 пропущены).

1,2,5,6

3,7

4,8

5,6

9,10

32

условия

Русская /латинская буква

0

0

0

0

0

1

Четная / нечетная строка

0

0

0

0

1

1

Третья / иная строка

(0)*

*

*

1

0

1

Пятая / иная строка

0

1

1

0

0

1

Начало строки

*

0

1

*

*

1

действия

Печать «!»

+

+

Печать «-»

+

Печать «_»

+

Печать исходного символа

+

+

+

+

Столбцы 1,2 и 5,6 можно объединить, т.к. выполняются одинаковые действия, в пятом условии в обоих столбцах стоит знак безразличия (*), а третье условие имеет разные значения.

Таблица решений с объединенными колонками. Третий этап (показана частично, столбцы с 11 по 31 пропущены).

1,2,5,6

3,7

4,8

9,10

32

условия

Русская /латинская буква

0

0

0

0

1

Четная / нечетная строка

0

0

0

1

1

Третья / иная строка

*

*

*

0

1

Пятая / иная строка

0

1

1

0

1

Начало строки

*

0

1

*

1

действия

Печать «!»

+

+

Печать «-»

+

Печать «_»

+

Печать исходного символа

+

+

+

Первые по порядку два столбца (1,2,5,6 и 3,7) объединить нельзя, т.к. в пятом условии в первом столбце стоит знак безразличия (*), а во втором — 0 (отрицательное значение условия «начало строки»). Если выполнить объединение, то значения трех последних условий будут безразличны и выявить начало пятой строки будет нельзя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]