 
        
        лр7_оп
.docx
	ЛР 7  ОП   
Методические указания для выполнения
лабораторных работ
по курсу «Основы программирования»
Лабораторная работа № 7 . Обработка строк. Flow-формы и диаграммы Насси-Шнейдермана.
Цель лабораторной работы: получение навыков работы со строками; запись алгоритма в виде flow-форм и диаграмм Насси-Шнейдермана.
Задание
Написать и отладить программу, выполняющую задание. В программе организовать меню. Все действия (ввод данных, обработка по заданию, печать на экран ответа) выполнять в процедурах, которые вызываются по команде пользователя. Не использовать глобальные перемнные. Построить flow-формы и диаграммы Насси-Шнейдермана для каждой процедуры и для основной программы.
Теоретические сведения.
Flow-формы и диаграммы Насси-Шнейдермана относятся к визуальным языкам спецификации процессов. Визуальные языки проектирования являются относительно новой, оригинальной методикой разработки спецификаций процесса. Они базируются на основных идеях структурного программирования и позволяют определять потоки управления с помощью специальных иерархически организованных схем.
Каждый символ FLOW-формы имеет вид прямоугольника и может быть вписан в любой внутренний прямоугольник любого другого символа. Символы помечаются с помощью предложений на естественном языке, языке программирования или с использованием математической нотации.
Символы FLOW-форм приведены на Error: Reference source not found. Каждый символ является блоком обработки. Каждый прямоугольник внутри любого символа также представляет собой блок обработки.


Дальнейшее развитие FLOW-формы получили в диаграммах Насси-Шнейдермана. На этих диаграммах символы последовательной обработки и цикла изображаются также, как и соответствующие символы FLOW-форм. В символах условного выбора и case-выбора собственно условие располагается в верхнем треугольнике, выбираемые варианты - на нижних сторонах треугольника, а блоки обработки - под выбираемыми вариантами (Рис. 2).

Следует отметить, что визуальные языки проектирования поддерживаются автоматической кодогенерацией, позволяют осуществлять декомпозицию вычислительных процессов. Их основной недостаток - трудность модификации при изменении деталей.
Пример визуальной спецификации процессов
На Рис. 1 приведен пример использования Flow-форм при проектировании спецификации процесса, обеспечивающего упорядочивание определенным образом элементов массива и являющегося фрагментом алгоритма сортировки методом "поплавка". На Рис. 2 решение той же задачи представлено с помощью диаграммы Насси-Шнейдермана.

Рис. 1. Пример FLOW-формы

Рис. 2. Диаграмма Насси-Шнейдермана.
Порядок выполнения
- 
Получить вариант задания у преподавателя 
- 
Написать и отладить программу 
- 
Нарисовать flow-формы и диаграммы Насси-Шнейдермана для процедур и основной программы 
- 
Подготовить отчет 
- 
Представить распечатку отчета преподавателю, защитить отчет (ответить на вопросы преподавателя по проделанной работе), показать выполнение программы по шагам и изменения значений переменных в окне просмотра. 
Требования к отчету
Отчет должен содержать:
- 
Титульный лист 
- 
Номер варианта и текст задания 
- 
flow-формы для процедур и основной программы 
- 
Диаграммы Насси-Шнейдермана для процедур и основной программы 
- 
Листинг программы 
- 
Копию экрана с результатом работы программы 
Варианты заданий
- 
Указать ближайший к началу строки знак, встречающийся в ней ровно А раз. 
- 
Входит ли заданный знак Х во фрагмент строки, предшествующий первому знаку У? 
- 
Известно, что слова в предложении отделены пробелами. Сколько слов в предложении. 
- 
Заданы числа Х и У. вычислить значение выражения Х*У-Z, если известно, что Z представляет собой произведение Х*У, из которого вычеркнуты все цифры 5. 
- 
Каждое вхождение подстроки У в строку Х размножить в ней А раз. 
- 
Каждый знак строки Х размножить в ней А раз. 
- 
Известно, что слова в предложении отделены пробелами. Буквы каждого слова в предложении записать в обратном порядке. 
- 
Известно, что слова в предложении отделены пробелами. В каждом слове у первой буквы поменять регистр (превратить из строчной в прописную и наоборот). 
- 
Массив слов упорядочить в соответствии с заданным алфавитом. 
- 
В заданной строке найти самую длинную последовательность одинаковых знаков. 
- 
Известно, что слова в предложении отделены пробелами. Разбить ее на две строки с одинаковым количеством слов. 
- 
Задано слово. Вывести на экран все возможные комбинации букв, входящих в это слово. В каждую комдинацию должны входить все буквы слова. 
- 
Из заданного числа удалить заданную цифру и показать полученное число. 
- 
Задан текст и алфавит. Найти самую последнюю букву алфавита, использованную в тексте. 
- 
Заданы два предложения и некоторая буква. В каком предложении этих букв больше? 
- 
Задано предложение и два слова. Сколько всего таких слов в предложении? 
- 
Задана строка. Какой ее символ имеет наибольший код? Сколько раз встречается этот символ? 
- 
Задана строка. Упорядочить ее символы по неубыванию их кодов. 
- 
Задана строка. Все цифры в нем заменить соответствующими словами. 
- 
Задана строка. Удалить из нее все нечетные цифры. 
