лр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.
-
Каждое вхождение подстроки У в строку Х размножить в ней А раз.
-
Каждый знак строки Х размножить в ней А раз.
-
Известно, что слова в предложении отделены пробелами. Буквы каждого слова в предложении записать в обратном порядке.
-
Известно, что слова в предложении отделены пробелами. В каждом слове у первой буквы поменять регистр (превратить из строчной в прописную и наоборот).
-
Массив слов упорядочить в соответствии с заданным алфавитом.
-
В заданной строке найти самую длинную последовательность одинаковых знаков.
-
Известно, что слова в предложении отделены пробелами. Разбить ее на две строки с одинаковым количеством слов.
-
Задано слово. Вывести на экран все возможные комбинации букв, входящих в это слово. В каждую комдинацию должны входить все буквы слова.
-
Из заданного числа удалить заданную цифру и показать полученное число.
-
Задан текст и алфавит. Найти самую последнюю букву алфавита, использованную в тексте.
-
Заданы два предложения и некоторая буква. В каком предложении этих букв больше?
-
Задано предложение и два слова. Сколько всего таких слов в предложении?
-
Задана строка. Какой ее символ имеет наибольший код? Сколько раз встречается этот символ?
-
Задана строка. Упорядочить ее символы по неубыванию их кодов.
-
Задана строка. Все цифры в нем заменить соответствующими словами.
-
Задана строка. Удалить из нее все нечетные цифры.