Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лр7_оп

.docx
Скачиваний:
12
Добавлен:
02.04.2015
Размер:
29.41 Кб
Скачать

ЛР 7 ОП 5

Методические указания для выполнения

лабораторных работ

по курсу «Основы программирования»

Лабораторная работа № 7 . Обработка строк. Flow-формы и диаграммы Насси-Шнейдермана.

Цель лабораторной работы: получение навыков работы со строками; запись алгоритма в виде flow-форм и диаграмм Насси-Шнейдермана.

Задание

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

Теоретические сведения.

Flow-формы и диаграммы Насси-Шнейдермана относятся к визуальным языкам спецификации процессов. Визуальные языки проектирования являются относительно новой, оригинальной методикой разработки спецификаций процесса. Они базируются на основных идеях структурного программирования и позволяют определять потоки управления с помощью специальных иерархически организованных схем.

Каждый символ FLOW-формы имеет вид прямоугольника и может быть вписан в любой внутренний прямоугольник любого другого символа. Символы помечаются с помощью предложений на естественном языке, языке программирования или с использованием математической нотации.

Символы FLOW-форм приведены на Error: Reference source not found. Каждый символ является блоком обработки. Каждый прямоугольник внутри любого символа также представляет собой блок обработки.

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

Следует отметить, что визуальные языки проектирования поддерживаются автоматической кодогенерацией, позволяют осуществлять декомпозицию вычислительных процессов. Их основной недостаток - трудность модификации при изменении деталей.

Пример визуальной спецификации процессов

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

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

Рис. 2. Диаграмма Насси-Шнейдермана.

Порядок выполнения

  1. Получить вариант задания у преподавателя

  2. Написать и отладить программу

  3. Нарисовать flow-формы и диаграммы Насси-Шнейдермана для процедур и основной программы

  4. Подготовить отчет

  5. Представить распечатку отчета преподавателю, защитить отчет (ответить на вопросы преподавателя по проделанной работе), показать выполнение программы по шагам и изменения значений переменных в окне просмотра.

Требования к отчету

Отчет должен содержать:

  1. Титульный лист

  2. Номер варианта и текст задания

  3. flow-формы для процедур и основной программы

  4. Диаграммы Насси-Шнейдермана для процедур и основной программы

  5. Листинг программы

  6. Копию экрана с результатом работы программы

Варианты заданий

  1. Указать ближайший к началу строки знак, встречающийся в ней ровно А раз.

  2. Входит ли заданный знак Х во фрагмент строки, предшествующий первому знаку У?

  3. Известно, что слова в предложении отделены пробелами. Сколько слов в предложении.

  4. Заданы числа Х и У. вычислить значение выражения Х*У-Z, если известно, что Z представляет собой произведение Х*У, из которого вычеркнуты все цифры 5.

  5. Каждое вхождение подстроки У в строку Х размножить в ней А раз.

  6. Каждый знак строки Х размножить в ней А раз.

  7. Известно, что слова в предложении отделены пробелами. Буквы каждого слова в предложении записать в обратном порядке.

  8. Известно, что слова в предложении отделены пробелами. В каждом слове у первой буквы поменять регистр (превратить из строчной в прописную и наоборот).

  9. Массив слов упорядочить в соответствии с заданным алфавитом.

  10. В заданной строке найти самую длинную последовательность одинаковых знаков.

  11. Известно, что слова в предложении отделены пробелами. Разбить ее на две строки с одинаковым количеством слов.

  12. Задано слово. Вывести на экран все возможные комбинации букв, входящих в это слово. В каждую комдинацию должны входить все буквы слова.

  13. Из заданного числа удалить заданную цифру и показать полученное число.

  14. Задан текст и алфавит. Найти самую последнюю букву алфавита, использованную в тексте.

  15. Заданы два предложения и некоторая буква. В каком предложении этих букв больше?

  16. Задано предложение и два слова. Сколько всего таких слов в предложении?

  17. Задана строка. Какой ее символ имеет наибольший код? Сколько раз встречается этот символ?

  18. Задана строка. Упорядочить ее символы по неубыванию их кодов.

  19. Задана строка. Все цифры в нем заменить соответствующими словами.

  20. Задана строка. Удалить из нее все нечетные цифры.