Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 1 my Visio 2011.doc
Скачиваний:
4
Добавлен:
26.09.2019
Размер:
801.28 Кб
Скачать

Лабораторная работа №2

Графическое описание алгоритма. Блок-схемы.

Теоретическая часть

1 Microsoft Office Visio 2003

Microsoft Office Visio 2003 графический редактор, который позволяет создавать …

Создание нового документа для рисования блок-схемы. Для запуска графического редактора Microsoft Office Visio 2003 необходимо выбрать команду Пуск– Программы- Microsoft-Office - Microsoft Office Visio 2003.

Microsoft Office Visio 2003 предоставляет широкий набор графических шаблонов для создания различных схем и диаграмм. Для создания блок-схемвкатегориишаблонов (на левой панели) необходимо выбрать Business Process, а в подкатегории Basic Flowchart (см. рис.1).

Рис. 1 Диалоговое окно создания нового документа

с применением стандартных шаблонов

В новом документе слева расположена панель, на которой располагаются все элементы, из которых строиться блок-схема.

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

Для прорисовки линий необходимо включить панель рисования Drawing Tools, нажав на панели инструментов кнопку Drawing Tools и в открывшейся панели инструментов выбрать элемент рисования линии Line Tool , после чего курсором мыши прорисовать линию.

Линию можно преобразовать в стрелки, для этого необходимо выделить линию и в раскрывающемся списке Line Ends выбрать требуемый вид стрелки.

Кнопка на панели инструментов Text Tool позволяет создать текстовую надпись вне элементов.

Кнопка на панели инструментов Pointer Tool позволяет выделить элемент для перемещения. Удерживаю клавишу Shift можно выделить сразу несколько элементов для перемещения или редактирования.

Группировка элементов. Чтобы все элементы созданной блок-схемы можно было копировать и перемещать как один элемент их необходимо сгруппировать.

Для этого первоначально необходимо выделить всеэлементы блок-схемы (удерживая клавишу Shift мышью выделить все элементы либо удерживая левую клавишу мыши обвести прямоугольником все элементы блок-схемы) и потом выбрать пункт Shape – Grouping – Group. Пункт меню Shape – Grouping – Ungroup позволяет разгруппировать элементы, для того чтобы их можно было поотдельности перемещать и редактировать.

Задание 1: Запустить Microsoft Off ice Visio и создать новый документ для прорисовки блок-схем.

2 Графическое представление конструкций выбора

2.1. Конструкция выбора if. Конструкция выбора используется для избрания одного из альтернативных направлений действий.

Например, предположим, что проходной балл на экзамене равен 60. Оператор псевдокода

Если оценка студента больше или равна 60

Вывести на экран «Экзамен сдан»

Графически данный алгоритм представляется следующим образом:

Задание 2 Нарисовать блок-схемурешения следующей задачи: «Присутствуют ли назанятие все студенты группы».

Задание 3 Сгруппировать блок-схему и скопировать ее в отчет по предыдущей лабораторной работе, разместив после словесного описания данного алгоритма.

2.2.Конструкция выбора if /else. В конструкции выбора if указанное действие выполняется только тогда, когда условие истинно; в противном случае действие пропускается. Конструкция выбора if/else дает программисту возможность указать, что в зависимости от того, является ли условие истинным или ложным, должны выполняться различные действия. Например, оператор псевдокода

Если оценка студента больше или равна 60

Вывести на экран «Экзамен сдан»

иначе

Вывести на экран «Экзамен не сдан»

выводит на экран «Экзамен сдан», если оценка студента больше или равна 60, либо выводит «Экзамен не сдан», если оценка студента меньше 60. В любом случае после вывода на экран «выполняется» следующий по порядку оператор псевдокода. Тело для ветви else также записано с отступом.

Графически данный алгоритм представляется следующим образом:

Задание 4 Нарисовать блок-схему решения следующей задачи: «Определить максимальное и минимальное значения из двух различных вещественныхчисел».

Задание 5 Сгруппировать блок-схему и скопировать ее в отчет по предыдущей лабораторной работе, разместив после словесного описания данного алгоритма.

Вложенные конструкции if/else служат для проверки составных условий, при этом одни конструкции if/else помещаются внутри других конструкций if/else.

Например, следующий оператор псевдокода будет печатать

А для экзаменационных оценок, больших или равных 90,

В для экзаменационных оценок, больших или равных 80,

С для экзаменационных оценок, больших или равных 70,

D для экзаменационных оценок, больших или равных60,

F для всех других оценок.

Если оценка студента больше или равна 90

Вывести «А»

иначе

сли оценка студента больше или равна 80

Вывести «В»

иначе

сли оценка студента больше или равна 70

Вывести «С»

иначе

сли оценка студента больше или равна 60

Вывести «D»

иначе

Вывести «F»

Графически данный алгоритм представляется следующим образом:

Задание 6 Нарисовать блок-схемы решения следующих задач:

а) Определить максимальное и минимальное значения из трех различных вещественных чисел.

б) Найти сумму двух наибольших из тех различных чисел.

в) Найти произведение двух наименьших из тех различных чисел.

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

3. Конструкция повторения while. Конструкция повторения позволяет программисту специфицировать многократное выполнение действия до тех пор, пока некоторое условие остается истинным. Оператор псевдокода

Пока в моем списке покупок еще остаются пункты

Сделать следующую покупку и вычеркнуть соответствующий пункт

описывает повторяющиеся действия, происходящие во время поездки за покупками.

Условие «в моем списке покупок еще остаются пункты» может быть истинным или ложным.

Если оно истинно, то выполняется действие «Сделать следующую покупку и вычеркнуть соответствующий пункт из списка». Это действие будет многократно выполняться до тех пор, пока условие будет оставаться истинным. Оператор(ы), содержащийся в конструкции повторения while, составляет тело этой конструкции.

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

Графически данный алгоритм представляется следующим образом:

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

Словесное описание алгоритмарешения данной задачи, полученное методом нисходящего пошагового уточнения, имеет следующий вид:

Инициализировать итоговую сумму нулем

Инициализировать счетчик нулем

Ввести первую оценку

Пока пользователь не ввел контрольного значения

Прибавить эту оценку к текущему итогу

Прибавить единицу к счетчикуоценок

Ввести следующую оценку (возможно, контрольное значение)

Если счетчик не равен нулю

Присвоить переменной average сумму, деленную на счетчик

Вывести на экранa аverage

иначе

Вывести на экран «Небыло ввода оценок»

Графически данный алгоритм представляется следующим образом:

Задание 8 Нарисовать блок-схему решения следующей задачи: «Необходимо определить общую зарплату для каждого из нескольких служащих. Компания платит «обычную зарплату» за первые 40 часов, отработанных каждым служащим, и «полуторную зарплату» за все время, отработанное сверх 40 часов. Вводиться ФИО служащих компании, число часов, отработанных каждым служащим за последнюю неделю, и почасовой тариф каждого служащего. Программа должна определить и отобразить на экране его общую зарплату. Количество сотрудников сразу точно неизвестно, для завершения выполнения программы необходимо использовать контрольное значение».

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

4. Вложенный конструкции повторения.

Рассмотрим следующую постановку задачи: Колледж предлагает платный курс для подготовки студентов к сдаче государственного экзамена на получение диплома брокера по недвижимости. В прошлом году несколько студентов из прослушавших этот курс сдавали экзамен на получение диплома. Естественно, что колледж хотел бы знать, насколько успешно его студенты сдали этот экзамен. Необходимо написать программу для обобщения результатов экзамена. Есть список этих 10 студентов. Напротив фамилии каждого студента проставлена 1, если студент сдалэкзамен, и 2, если он экзамен не сдал.

Программа должна анализировать результаты экзамена следующим образом:

1. Ввестирезультаткаждогоэкзамена (т.е. 1 или 2). При каждом очередном запросе результата экзамена отображать на экране сообщение «Введите результат».

2. Подсчитать количество результатов каждого типа.

3. Отобразить краткую сводку результатов экзамена, указав количество студентов, сдавших экзамен, и количество студентов, его не сдавших.

4.Если экзамен сдали более 8 студентов, вывести сообщение «Повысить плату за курс».

После тщательного изучения постановки задачи можно сделать следующие наблюдения:

1. Программа должна обработать 10 результатов экзамена. Будет использован цикл, управляемый счетчиком.

2. Каждый результат экзамена представляет собой число, 1 или 2. Всякий раз, когда программа считывает результат экзамена, она должна определять, является ли это число 1 или 2. В алгоритме необходимо проверять на 1. Если число не равно 1, предполагается, что это 2.

3. Используются два счетчика — один для подсчета числа студентов, сдавших экзамен, и другой для подсчета числа студентов, его не сдавших.

4. После того, как программа обработает все результаты, онадолжнарешить, сдали ли экзамен более 8 студентов.

Словесное описание алгоритма решения данной задачи, полученное методом нисходящего пошагового уточнения, имеет следующий вид:

Инициализировать нулем количество сданныхэкзаменов

Инициализировать нулем количество несданныхэкзаменов

Инициализируйте счетчик студентов единицей

Пока счетчик студентов меньше или равен десяти

Ввести следующий результат экзамена

Если студент сдалэкзамен

Прибавить единицу к счетчику сданныхэкзаменов

иначе

Прибавить единицук счетчику несданныхэкзаменов

Прибавить единицук счетчику студентов

Вывести количество сданных экзаменов

Вывести количество несданных экзаменов

Если экзамен сдали более восьми студентов

Вывести «Повысить плату за курс»

Графически данный алгоритм представляется следующим образом:

Задание 10 Нарисовать блок-схемурешения следующей задачи: «Известны оценки каждого изучеников класса по физике. Посчитать количество пятерок, количество четверок, количествотроекиколичестводвоек»

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