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

Учебник Информатики

.pdf
Скачиваний:
54
Добавлен:
23.02.2015
Размер:
560.16 Кб
Скачать

Федеральное агентство по образованию ГОУ ВПО «Уральский государственный технический университет – УПИ

имени первого Президента России Б.Н. Ельцина»

Д.В. Опарин

АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ QBASIC

Учебное электронное текстовое издание Подготовлено кафедрой «Интеллектуальные информационные технологии»

Научный редактор: доцент, канд. техн. наук В.Г. Томашевич

Конспект лекций по дисциплине «Информатика» для студентов всех форм обучения всех специальностей.

Подробно рассмотрены основные положения двух разделов дисциплины «Информатика» «Алгоритмы и алгоритмизация» и «Программирование вычислительных задач с использованием алгоритмического языка высокого уровня». Пособие знакомит с работой в среде программирования QBasic, технологией решения вычислительных задач. Материал пособия может быть использован для самостоятельного изучения основ программирования.

© ГОУ ВПО УГТУ-УПИ, 2009

Екатеринбург

2009

Оглавление

Алгоритмы и способы их описания...........................................................................

4

Алгоритм и его свойства..................................................................................

4

Способы описания алгоритмов........................................................................

5

Графический способ или язык графических символов.................................

6

Типы алгоритмов.........................................................................................................

9

Алгоритм линейной структуры (следование) ................................................

9

Алгоритм разветвляющейся структуры (ветвление).....................................

9

Алгоритм циклической структуры (повторение) ..........................................

9

Система программирования QBasic ........................................................................

11

Среда системы программирования QBasic...................................................

11

Прогон и отладка программы ........................................................................

14

Справочная служба системы программирования QBasic ...........................

14

Алгоритмический язык QBasic ................................................................................

15

Символы языка................................................................................................

15

Типы данных....................................................................................................

16

Преобразования типов....................................................................................

18

Простейшие конструкции языка....................................................................

18

Структура программы.....................................................................................

22

Программирование алгоритмов линейной структуры................................

27

Организация ввода и вывода данных в QBasic ............................................

27

Программирование алгоритмов разветвляющейся структуры...................

31

Программирование алгоритмов циклической структуры...........................

35

Программирование типовых алгоритмов вычислений .........................................

39

Вложенные циклы...........................................................................................

39

Цикл с несколькими одновременно изменяющимися параметрами..........

39

Запоминание результатов...............................................................................

41

Вычисление суммы.........................................................................................

42

Вычисление произведения.............................................................................

43

2

 

Нахождение наибольшего значения..............................................................

43

Нахождение наименьшего значения.............................................................

45

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

46

Введение...........................................................................................................

46

Объявление подпрограмм ..............................................................................

46

Функция .................................................................................................

46

Процедура..............................................................................................

48

Формальные и фактические параметры........................................................

51

Работа с файлами.......................................................................................................

51

Способы доступа к файлам............................................................................

51

Операции над файлами...................................................................................

52

Открытие файла...............................................................................................

52

Режимы работы с файлами.............................................................................

53

Последовательная запись данных в файл.....................................................

53

Последовательное считывание данных из файла ........................................

54

Закрытие файлов .............................................................................................

54

Библиографический список......................................................................................

55

3

Алгоритмы и способы их описания

Алгоритм и его свойства

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

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

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

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

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

4

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

Во-вторых, система величин, получаемых в какой-то не начальный момент, однозначно определяется системой величин, полученных в предшествующие моменты времени. Это свойство называется детерминированностью.

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

В-четвёртых, процесс построения величин должен быть конечным и давать результат, т.е. решение задачи. Это свойство называется результативно-

стью.

Интуитивное определение алгоритма не даёт оснований для сомнений, если речь идёт о найденном алгоритме решения конкретной задачи. Положение принципиально меняется, когда возникает алгоритмическая проблема, решение которой не найдено, и требуется установить, имеет ли она вообще решение, т.е. нужно доказать либо существование алгоритма, либо его отсутствие.

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

Способы описания алгоритмов

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

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

5

Структурно-стилизованный способ основан на формализованном пред-

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

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

В графическом способе для изображения структур алгоритмов используется набор блочных символов, соединённых линиями передачи управления (перехода). Этот способ иногда ещё называется способом блок-схем. Основными его особенностями являются краткость и выразительность.

Рассмотренные способы описания алгоритмов имеют существенный недостаток: записи предписаний не могут непосредственно восприниматься ЭВМ. Поэтому эти способы используются только для предварительной работы с алгоритмом. Средствами описания алгоритма, позволяющими ввести в память компьютера и затем выполнить заданные предписания для получения искомых результатов, являются языки программирования.

Программный способ и состоит в записи алгоритма по правилам языка программирования. Эта запись называется исходной программой на данном языке. Как правило, программы пишутся на языках высокого уровня, т.е. на языках программирования, не зависящих от особенностей конкретной ЭВМ и ориентированных на широкий круг пользователей. Одним из таких языков является язык QBasic.

Графический способ или язык графических символов

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

6

соответствует геометрическая фигура, представленная в виде блочного символа (блока), называемого символом действия.

да нет

Текст

комментария

пуск-останов (начало и конец алгоритма, вход и выход в подпрограмме)

ввод-вывод (ввод и вывод в общем случае без указания устройства ввода-вывода ЭВМ)

процесс (вычислительное действие или группа вычислительных действий)

предопределённый процесс (вычисления с по-

мощью подпрограммы)

решение (разветвление в алгоритме, проверка условий)

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

соединитель (разрыв линий перехода на одной или разных страницах)

комментарии (пояснения, описания содержания подпрограмм и т.д.)

Рис. 1. Наиболее часто употребляемые символы действия

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

7

снизу вверх или справа налево, то направление линии перехода указывается стрелкой.

Форма символов действия и правила составления схем алгоритмов установлены государственными стандартами. Наиболее часто употребляемые символы действия приведены на рис. 1.

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

 

следование

нет

 

 

да

нет

да

 

 

повторение

 

ветвление

 

 

Рис. 2. Базовые управляющие конструкции

Рассмотрим типовые конструкции алгоритмов, построенных на основе базовых структур.

8

Типы алгоритмов

Алгоритм линейной структуры (следование)

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

Алгоритм разветвляющейся структуры (ветвление)

Алгоритм разветвляющейся структуры – это такая схема, в которой предусмотрено разветвление требуемой последовательности действий на два направления в зависимости от результата проверки заданного условия («да» – «нет»). Каждое направление называется ветвью. В общем случае количество ветвей в алгоритме разветвляющейся структуры не обязательно равно двум.

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

Алгоритм циклической структуры (повторение)

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

Схема организации алгоритма циклической структуры показана на рис. 3.

9

 

1

 

 

Начало

1

 

2

 

xn, xk, h

Начало

 

3

2

 

 

x = xn

xn, xk, h

 

 

3

 

нет

x = xn, xk, h

4

4

x xk

 

да

Повторяемый участок

5

 

Повторяемый участок

5

 

6x = x + h

Конец

 

 

«модификация»

7

 

 

 

Конец

 

 

«решение + процесс»

Рис. 3. Общая схема организации алгоритма циклической структуры

Для организации алгоритма циклической структуры можно использовать специальный символ «модификация» (обычно для цикла с известным заранее числом повторений), либо символ «решение» с символами «процесс» (обычно для цикла с неизвестным заранее числом повторений).

На рис. 3 представлены два варианта организации алгоритма циклической структуры в зависимости от некоторого параметра цикла x, изменяющегося от начального значения xn до конечного значения xk с шагом h. И в том, и в другом вариантах схема организации алгоритма должна содержать действия, задающие начальное значение параметра цикла, правило его изменения для перехода к новому повторению, а также условие выхода из цикла или нахождения в нём.

10