Алгоритмизация и визуальное программирование

Тип работы:
Методичка
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ

КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ

Кафедра прикладной математики

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

по курсам «Информатика» и «Алгоритмизация и программирование»

для самостоятельной работы студентов

всех специальностей

Алгоритмизация и визуальное программирование

Составитель: И.Н. Гатауллин

Казань 2008

УДК 621. 313

Методические указания по курсам «Информатика» и «Алгоритмизация и программирование» для самостоятельной работы студентов всех специальностей. Алгоритмизация и визуальное программирование. Казанский государственный архитектурно-строительный университет; Сост.: И. Н. Гатауллин. — Казань, 2008. — 22 с.

Данные методические указания предназначены для самостоятельной работы студентов всех специальностей и используются при выполнении лабораторных и контрольных работ по курсам «Информатика» и «Алгоритмизация и программирование» на языке Visual Basic.

Табл. нет, библиогр. назв. 4

Рецензент — Р. Б. Салимов, доктор физ. -мат. наук, профессор

© Казанский государственный архитектурно — строительный университет, 2008 г.

1. ОСНОВЫ АЛГОРИТМИЗАЦИИ

1.1 Общие сведения об алгоритмах

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

Как наука, информатика изучает общие закономерности, свойственные информационным процессам. Объектом приложения информатики являются самые различные области практической деятельности, для которых она стала непрерывным источником самых современных технологий. Разнообразные информационные технологии, функционирующие в разных видах человеческой деятельности (управлении производственным процессом, проектировании, финансовых операциях, образовании и т. п.), имеют общие черты и в то же время существенно различаются между собой.

Информатика — новая научная область, которая опирается на традиционные науки: электронику, теорию информации, искусственный интеллект.

Основными составляющими современной информатики являются:

1. Вычислительная техника.

2. Программирование.

3. Теоретическая информатика.

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

алгоритм программа данные массив

1.2 От алгоритма к решению задачи

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

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

Итак, перед нами стоит задача. У нас есть некоторая цель A, к которой мы не можем прийти сразу. Поэтому мы должны стремиться найти подходящий образ действий для её достижения. От желания достичь цели возникает мысль о некоторых средствах. Наша цепочка суждений содержит много «если»:

A если В; В если С; …; X если Y.

Это можно назвать составлением плана.

Начав с Y, которое есть «начало», необходимо следовать к заветной цели. Таким образом, составление плана и его реализация идут в противоположных направлениях.

От, А мы начинаем думать в начале, достигаем его в конце. Движение в направление цели можно считать как прямое движение, а при составление плана мы продвигаемся в обратном направлении. Этот метод можно назвать составлением плана в обратном направлении или методом анализа, что по смыслу означает «решение от конца к началу». Если мы направляемся от объекта Y к A, то такой метод называется составлением плана в прямом направлении или синтезом.

1.3 Свойство и этапы построения алгоритма

Алгоритм представляет собой строгую систему правил, определённую последовательность действий над некоторыми объектами.

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

Алгоритм — это точно определённое описание способа решения задачи в виде конечной последовательности действие.

Основные свойства алгоритмов следующие:

1. Результативность. Алгоритм имеет некоторое число входных величин — аргументов. Цель выполнения алгоритма — получение конкретного результата, имеющего вполне определенное отношение к исходным данным.

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

3. Массовость. Можно применять один и тот же алгоритм для решения множества однотипных задач, различающихся данными.

4. Дискретность. Алгоритм представлен в виде конечной последовательности шагов: решение задачи алгоритм сводит к решению отдельных более простых задач.

5. Эффективность. Алгоритм может быть выполнен не просто за конечное, а за разумно конечное время.

6. Конечность. Действую в соответствии с алгоритмом, за конечное число шагов обязательно получается решение задачи.

7. Компактность. Это свойство предполагает лаконичность изложения алгоритма.

1.4 Графическое представление алгоритмов

Алгоритм можно представить различными способами: с помощью графического или словесного описания, в виде таблицы, последовательностью формул, записанным на алгоритмическом языке (языке программирования). Графическое описание алгоритма (блок — схема) имеет ряд преимуществ благодаря наглядности, обеспечивающей высокую «читаемость» алгоритма и явное отображение управления в нём.

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

/

/

— начало и конец блок — схемы;

/

/

— блок ввода и вывода информации;

/

/

— блок вычисления арифметических выражений;

/

/

— блок проверки условий;

/

/

— блок обращения к процедуре;

/

/

— ссылка (перенос блок — схемы на другую страницу).

Блок — схема — это ориентированный граф, указывающий порядок исполнения команд алгоритма. Вершины такого графа могут быть одного из трёх типов (рис. 1. 1):

/

/

a б в

Рис. 1.1 Три типа вершин графа: а — функциональная; б — предикатная; в — объединяющая

Функциональная вершина (F) имеет один вход и один выход. Предикатная вершина (P) имеет один вход и два выхода, в этом случае функция P передаёт управление по одной из ветвей в зависимости от значения P (t означает «истина», f «ложь»). Объединяющая вершина («слияния») (U), обеспечивает передачу управления от одного из двух входов к выходу. Из данных элементарных блок — схем можно построить четыре блок — схемы (рис. 1. 2):

а) композиция, или следование;

б) альтернатива, или ветвление;

в) итерация, или цикл, с предусловием;

г) итерация, или цикл, с постусловием.

/

/

Рис. 1.2 Основные алгоритмические структуры: а; б; в; г

Блок — схема альтернатива может иметь и сокращенную форму, в которой отсутствует ветвь F2 (рис. 1. 3, а). Развитием блок — схемы типа альтернатива является блок — схема выбор (рис. 1. 3, б).

/

/

Рис. 1.3 Развитые структуры типа альтернатива: а; б

1.5 Принципы структурной алгоритмизации

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

Умение образовывать из базовых структур их суперпозиции в соответствии с указаниями конкретной задачи — одно из важнейших в программировании. На рис. 1.4 приведен простейшие пример структурной реализации алгоритмов работы с величинами.

Пример. Нахождение суммы 10 чисел. Надо ввести в память компьютера 10 чисел и найти сумму всех элементов. (Рис. 1.4 а; б).

/

/

Рис. 1.4 Нахождение суммы 10 чисел: а; б.

Допустим, надо ввести в память компьютера 10 чисел и суммировать те из них, которые положительны. Ясно, что ввод — операция циклическая, а внутри этого цикла находится развилка, в которой проверяется знак числа и производится суммирование. Схематически соответствующая суперпозиция изображена на рис. 1.5. Так как выражение, управляющее циклом, проверяется в самом начале, то в случае, если условие сразу окажется ложным, операторы циклической части «F» могут вообще не выполняться. Операторы циклической части «F» должны изменять переменную, влияющую на значение логического выражения, иначе программа «зациклится» — будет выполняться бесконечно. На рис. 1.6 представлен алгоритм для нахождения максимального элемента и его номера. Схематические изображения нескольких суперпозиций базовых алгоритмических структур представлены на рис. 1.7 — 1. 10. Еще одним важным компонентом структурного подхода к разработке алгоритмов является модульность. Модуль — это последовательность логически связанных операций, оформленных как отдельная часть программы. Использование модулей имеет следующие преимущества:

1) возможность создания программы несколькими программистами;

2) простота проектирования и последующих модификаций программы;

3) упрощение отладки программы — поиски и устранения в ней ошибок;

4) возможность использования готовых библиотек наиболее употребительных модулей.

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

На следующем этапе эти задачи в свою очередь разбиваются на более мелкие подчиненные подзадачи и так далее, до уровня относительно небольших подзадач, которые требуют для решения небольших модулей в 3 — 5 строк. Такой метод проектирования программ позволяет преодолевать проблему сложности разработки программ. Пример. Ввести в память компьютера 10 чисел и найти сумму положительных элементов (рис. 1. 5).

/

/

Рис. 1.5. Алгоритм типа «развилка, вложенная в цикл», для нахождения суммы положительных чисел из 10 возможных

Пример. Ввести в память компьютера 10 чисел. Надо найти максимальный элемент и его номер (рис. 1. 6).

/

/

Рис. 1.6 Алгоритм для нахождения максимального элемента и его номера

/

/

Рис. 1.7. Алгоритм типа «цикл, Рис. 1.8. Алгоритм типа вложенный в неполную „цикл в цикле“ развилку»

/

/

Рис. 1.9 Алгоритм типа Рис. 1. 10. Иллюстрация трехкратного «развилка в развилке». вложения одной базовой структуры в другую

Пример 1. Даны два массива случайных чисел xi и yi (i=1,10).

Составить блок-схему и программу. Значения переменных xi, yi и констант m, n ввести по ходу выполнения программы. Вычислить

где m — номер варианта, n — последнее значение номера группы.

Решение. Введены следующие обозначения:

minx — минимальный элемент массива;

maxy — максимальный элемент массива;

sy — сумма элементов массива;

sz — сумма элементов массива;

pz — произведение элементов массива.

Работа выполняется в следующей последовательности:

1. Запустить VISUAL BASIC. В окне New Project выбрать Стандартный. EXE вкладки New (новый) и кликнуть по кнопке «Открыть».

2. На экране появится новый проект и форма Project1 — Form1 (Form), содержание которой нужно заполнить необходимыми компонентами, с помощью которых можно будет выполнить необходимые вычисления.

3. Во-первых, необходимы элементы, которые будут использоваться для ввода данных m и n. Используем для этой цели элементы Text1 и Text2. Во-вторых, необходимы элементы, в которых будут отражены результаты вычисления minx, maxy, sy, sz, R и P. Используем для этой цели элементы Text3, Text4, Text5, Text6, Text7 и Text8. В-третьих, необходимы элементы, в которых будут отражены результаты ввода случайных элементов массивов и вычисленные элементы массива. Используем для этой цели элементы List1, List2 и List3.

4. Для оформления надписей для обозначения текстовых окон Text1, Text2, Text3, Text4, Text5, Text6, Text7, Text8, Text9, List1, List2 и List3 можно использовать метки Label1, Label2, Label3, Label4, Label5, Label6, Label7, Label8, Label9, Label10, Label11 и Label12 соответственно.

5. Для выполнения функций вычисления необходима одна кнопка Command1. Это будет «Старт». Вторая кнопка Command2 выполняет функцию завершения работы приложения — кнопка «Финиш».

6. Теперь следует все указанные выше компоненты вынести на форму. Для этого на панели стандартных элементов находим значок одного из компонент, активизируем его и «переносим» на форму: рисуем условный прямоугольник в том месте формы, где будет предположительно находиться этот элемент, учитывая при этом его размеры.

7. Аналогичные действия выполняем поочередно для каждого элемента, пока на форме не появятся все 24 элементов.

8. Далее изменяем свойства объектов, используя страницу свойств Properties. Для изменения свойств элементов следует активизировать элемент — выделить его на форме. Далее для выделенного элемента в окне свойств можно вносить изменения: для Command1 изменить свойство Caption = `Старт`, для Command2 — свойство Caption = `Финиш`. Для остальных элементов задать значения свойств:

Label1. Caption = `Введите значение m=`

Label2. Caption = `Введите значение n=`

Label3. Caption = `Вывод значения minx=`

Label4. Caption = `Вывод значения maxy=`

Label5. Caption = `Вывод значения sy=`

Label6. Caption = `Вывод значения sz=`

Label12. Caption = `Вывод значения pz=`

Label7. Caption = `Вывод значения R=` `

Label8. Caption = `Вывод значения P=`

Label9. Caption = `Исходный массив X (i) `

Label10. Caption = `Исходный массив Y (i)

Label11. Caption = `Массив Z (i)

Заготовку формы для примера 1 с измененными свойствами смотрите на рис. 1. 11.

Рис. 1. 11 Заготовка формы для примера 1 с измененными свойствами

9. Для создания программного кода в проводнике проекта или в меню View выбрать команду Code.

В окне Project1 — Form1 (Code) выбрать в списке General название кнопки 1 и кликнуть по ней. В результате появится заготовка записи программного кода для Command1 с инициированием для нее события Click. Значения m, n пользователь должен ввести в окна Text1, Text2. Но в текстовом окне данные получаются также текстовые, типа Single. Поэтому используем функцию Val () для перевода в числовой тип Single, который объявлен для переменных m, n в начале программы в операторе Dim. Для вывода значений minx, maxy, sy, sz, R, P, используется функция Round (), которая округляет количество знаков после запятой до трех.

10. Аналогичные действия выполняем в отношении кнопки 2. Для Command2 будет выполняться одно действие — закрыть приложение. Это выполняет команда End.

11. Программный код для примера 1 (см. блок — схему линейного вычислительного процесса на рис. 1. 12.) будет иметь вид:

Private Sub Command1_Click ()

Rem Расчётно-графическая работа 3−1, вариант 13

Dim X (10), Y (10), Z (10), XB (10), YB (10), ZB (10) As Single, i As Integer

Dim m, n, sy, sz, pz, minx, maxy, P, R As Single

m = Val (Text1. Text)

n = Val (Text2. Text)

For i = 1 To 10

X (i) = 30 * Rnd — 30 * Rnd

XB (i) = Str (Round (X (i), 3))

List1. AddItem (XB (i))

Next i

For i = 1 To 10

Y (i) = 50 * Rnd — 50 * Rnd

YB (i) = Str (Round (Y (i), 3))

List2. AddItem (YB (i))

Next i

minx = X (1)

For i = 2 To 10

If X (i) < minx Then

minx = X (i)

End If

Next i

Text3. Text = Round (minx, 3)

maxy = Y (1)

For i = 2 To 10

If Y (i) > maxy Then

maxy = Y (i)

End If

Next i

Text4. Text = Round (maxy, 3)

For i = 1 To 10

If minx < maxy Then

Z (i) = (X (i) — Y (i)) ^ 2 / m

ElseIf minx > maxy Then

Z (i) = (X (i) + Y (i)) / n

Else

Z (i) = X (i) / Y (i)

End If

Rem ZB (i) = Str (Round (Z (i), 3))

List3. AddItem (Z (i))

Next i

sy = 0

For i = 1 To 7

sy = sy + Y (i)

Next i

Text5. Text = Round (sy, 3)

sz = 0

For i = 4 To 10

sz = sz + Z (i)

Next i

Text6. Text = Round (sz, 3)

pz = 1

For i = 1 To 10

pz = pz * (Z (i) / (X (i) + Y (i))) ^ 2

Next i

Text9. Text = Round (pz, 3)

If Int ((13 * m — n) / 2) < (13 * m — n) / 2 Then R = sz Else R = sy

Text7. Text = Round (R, 3)

P = R * Abs (m * pz) ^ (1 / 3)

Text8. Text = Round (P, 3)

End Sub

Private Sub Command2_Click ()

End

End Sub

12. Для сохранения проекта надо выполнить команду меню File (файл) > Save Project As (Сохранить проект как). В диалоговом окне Save File As (Сохранить файл как) выбрать название диска, на котором должна быть создана папка для хранения файлов нового проекта. Далее для сохранения формы, следует набрать имя файла в поле ввода File Name (Имя файла), например Primer1, и нажать клавишу «Enter». Форма Form1 будет сохранена в файле с расширением Primer1. frm.

13. После сохранения формы следует сохранить проект. В VISUAL BASIC это происходит автоматически, после чего должно появиться диалоговое окно Save Project As -Сохранить проект. Следует набрать то же имя Primer1−1 и нажать клавишу «Enter». Файл проекта будет сохранен с расширением Primer1−1. vbp.

14. Теперь запустить проект на выполнение. Выбираем команду Run > Start или Shift+F5. В поле Text1 нужно ввести значение m, в поле Text2 — значение m — после чего нажать кнопку «Старт». В окнах Text3, Text4, Text5, Text6, Text7, Text8, List1, List2 и List3 появились значения minx, maxy, sy, sz, R, P,. Для завершения работы приложения следует нажать кнопку «Финиш».

Рис. 1. 12. Блок — схема вычислительного процесса

Ввод исходных данных m, n,.

Рис. 1. 12 (продолжение 1). Блок — схема вычислительного процесса

Определение и вывод данных minx, maxy

Рис. 1. 12 (продолжение 2). Блок — схема вычислительного процесса

Определение и вывод данных z (i)

Рис. 1. 12 (продолжение 3). Блок — схема вычислительного процесса

Определение и вывод данных sy, sz

Рис. 1. 12 (продолжение 4). Блок — схема вычислительного процесса

Определение и вывод данных pz, R, P

ЗАКЛЮЧЕНИЕ

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

В этой работе были рассмотрены решения конкретных типовых задач:

1) определение суммы положительных элементов массива;

2) определение максимального элемента массива и его номера.

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

Дополнительная литература

С.В. Симонович и др. Информатика. Базовый курс. Санкт-Петербург: Издательский дом Питер. 2002, — 640 с.

А.В. Могилев, Н. И. Пак, Е. К. Хеннер. Информатика. — 3-е изд., перераб. и доп. — М.: Издательский центр «Академия», 2004, — 848 с.

М.Д. Князева. Программирование на Visual Basic 6. Учеб. Пособие. -М.: КУДИЦ-ОБРАЗ, 2006. — 176с.

Методические указания к лабораторным работам по дисциплине: «Алгоритмизация и программирование». Основы визуального программирования. /Сост.: И. Н. Гатауллин, Ф. Г. Габбасов. — Казань, КГАСУ, 2008. 61 с.

. ur

ПоказатьСвернуть
Заполнить форму текущей работой