Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основы программирования на языке QBasic

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

Языки программирования высокого уровня, которые в настоящее время являются основными в практике разработки программного обеспечения, очень многообразны. Есть универсальные языки программирования высокого уровня – такие, как C/ C++, Pascal, Basic. С их помощью можно решать задачи из любых предметных областей. Есть специальные языки программирования высокого уровня, которые оснащены специальными функциями и средствами решения задач из конкретных сфер человеческой деятельности.

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

Объектом исследования курсовой работы является язык программирования высокого уровня QBasic.

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

Цель курсовой работы – изучение теоретических и практических основ программирования на языке QBascic.

Задачи курсовой работы:

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

1 ИСТОРИЯ РАЗВИТИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

1.1 Эволюция вычислительной техники

История развития языков программирования тесно связана с историей развития вычислительной техники.

Люди всегда старались автоматизировать процесс вычислений, тем самым сняв с себя обязанность по выполнению рутинных операций. Кроме того, поручение счета различным устройствам минимизирует возможность возникновения ошибки и исключает фактор субъективизма. [14]

Специалисты считают, что первым устройством автоматизации вычислений были счеты. История и место их появления точно неизвестны, но предполагается, что счеты были изобретены шумерами (народность южной Месопотамии) около 5000 лет назад. Такое примитивное устройство как счеты (рисунок 1) позволило проводить достаточно сложные вычисления гораздо быстрее, чем это мог бы сделать человек.

Рисунок 1 – Современные счеты

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

Начало механического этапа развития вычислительной техники датируют серединой 17 века, окончание – концом 19 века. Одним из самых заметных изобретений этого периода считается разностная машина Чарльза Беббиджа (рисунок 2).

Рисунок 2 – Чарльз Беббидж

Машина, изобретенная и построенная Беббиджем, автоматизировала вычисления путем аппроксимации функций многочленами и вычисления конечных разностей. Эту машину считают универсальным вычислительным прибором, так как она имеет встроенную возможность приближённого представления в многочленах логарифмов и тригонометрических функций.[1]

На рисунке 3 представлена копия машины Беббиджа, которая выставлена в лондонском музее науки.

Рисунок 3 – Копия разностной машины Бэббиджа

Позже, между 1833 и 1842 годами, Чарльз Бэббидж спроектировал и делал попытки построить аналитическую машину. Хотя она так и не была им построена, именно ее считают первым прообразом компьютера. По замыслу Бэббиджа данное устройство должно было быть запрограммировано на производство любых вычислений. Вычислительная машина для ввода данных и указания порядка необходимых вычислений использовала перфокарты.[13]

Первым программистом мира считают дочь английского поэта лорда Байрона графиню Аду Августу Лавлейс (рисунок 4). Именно она описала три первые в мире вычислительные программы, составленные для машины Бэббиджа. [14] В описании были введены понятия, и сегодня не потерявшие своей актуальности - понятие рабочих ячеек (рабочих переменных) и идея последовательного изменения их содержания, идея цикла - одной из фундаментальных конструкций структурного программирования. В своей работе Лавлейс высказала также догадку о том, что вычислительные операции могут выполняться не только с числами, но и с другими объектами

Рисунок 4 – Ада Лавлейс

Следующий этап развития вычислительной техники – электромеханический, он длился всего лишь 60 лет. Это отрезок времени между изобретением в 1887 году первого табулятора до 1946 года, когда возникла самая первая электронно-вычислительная машина. Новые машины, действие которых основывалось на электроприводе и электрическом реле, позволяли производить вычисления со значительно большей скоростью и точностью, однако процессом счёта по-прежнему должен был управлять человек.

Типичный пример электромеханического вычислительного устройства – компьютеры серии Z, изобретение немецкого инженера Конрада Цузе. Эти машины были разработаны на основе двоичной логики, имели память и возможность программирования, хотя и ограниченную. В компьютерах Z был представлен ряд новшеств – например, реализована арифметика с плавающей запятой. Замена сложной в реализации десятичной системы на двоичную сделала машины Цузе более надёжными.[5] На рисунке 5 представлен компьютер Z3 и его разработчик Конрад Цузе.

Рисунок 5 – Конрад Цузе и компьютер Z3

История электронно-вычислительных машин, которые сегодня называют компьютерами, ведет свой отсчет с 1946 года, с появления машины ENIAC (рисунок 6).

Рисунок 6 – Первая ЭВМ – ENIAC

ENIAC содержал 18 тысяч вакуумных ламп, занимал площадь 167 квадратных метров, весил 30 тонн и потреблял мощность 150 киловатт.[1]

На сегодняшний день выделяют 5 (иногда – 4, объединяя 4 и 5 поколения) поколений электронно-вычислительных машин, различающихся по элементной базе, объему оперативной памяти, быстродействию и способам программирования. [2] Классификация компьютеров по поколениям представлена на рисунке 7.

Рисунок 7 – Поколения ЭВМ

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

1.2 Эволюция языков программирования

Язык программирования — совокупность ключевых слов (словарь) и система правил (грамматических и синтаксических) для конструирования операторов, состоящих из групп или строк чисел, букв, знаков препинания и других символов, с помощью которых пользователи передают компьютеру набор команд.[17]

Язык программирования представляет собой правила представления данных и записи алгоритмов их обработки для автоматического исполнения их компьютером. Иначе говоря, язык программирования - это средство создания программных моделей объектов и явлений внешнего мира.

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

Алгоритм - это формальное описание способа решения задачи в виде конечной последовательности действий, входящих в систему команд исполнителя.[4]

В качестве движущих сил развития языков программирования можно выделить:

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

Выделяют следующие уровни языков программирования:

  1. Языки программирования низкого уровня.
  2. Языки программирования высокого уровня.[13]

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

Языки программирования высокого уровня максимально приближены к естественному языку человека. В программах, написанных на языках высокого уровня, особенности компьютерных систем не учитываются, поэтому легко осуществляется перенос программ на уровне исходных текстов на другие платформы. Программы на языках программирования высокого уровня проще разрабатывать и отлаживать.[16]

Подробная классификация языков программирования представлена на рисунке 8.

Рисунок 8 – Классификация языков программирования

В следующей главе рассмотрены основные алгоритмические структуры и их реализация на языке программирования высокого уровня QBasic.

2 ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

2.1 Общие принципы построения алгоритмов

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

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

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

Каждый исполнитель оснащен специальным устройством управления, которое принимает алгоритмы и осуществляет их исполнение. Все устройства управления ориентированы на «понимание» основных алгоритмических структур - последовательное выполнение действий, ветвления и циклы.[12]

В роли исполнителей могут выступать человек, компьютер, робот-манипулятор, станок с программным управлением (рисунок 9).

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

1. Детерминированность - обеспечение определенности и однозначности результата выполнения алгоритма при заданных исходных условиях.

2. Дискретность – любой алгоритм может быть представлен в виде отдельных элементарных действий, которые могут быть выполнены исполнителем.

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

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

Рисунок 9 – Исполнители алгоритмов

Существует несколько общепринятых способов описания алгоритмов:

  • словесный;
  • с помощью блок-схем (графический способ);
  • на алгоритмическом языке;
  • с помощью языка программирования.[8]

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

Словесный способ не получил широкого распространения, так как словесные описания:

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

Рисунок 10 – Словесное описание алгоритма

Чаще всего при проектировании алгоритмов используют графическое изображение алгоритма в виде блок-схемы, когда каждому действию соответствует определенный блок (геометрическая фигура).[19] Пример алгоритма в форме блок-схемы представлен на рисунке 11.

Рисунок 11 – Блок-схема алгоритма перехода дороги

Алгоритмический язык представляет собой искусственный язык псевдокодов. Пример представлен на рисунке 12.

Рисунок 12 – Алгоритм решения квадратного уравнения на алгоритмическом языке

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

При формировании алгоритмов рекомендовано применять следующие основные принципы.

  1. Принцип поэтапной детализации алгоритма (иначе этот принцип называют «проектирование сверху вниз»). При реализации этого принципа алгоритм первоначально разрабатывают в форме укрупненных блоков (разбиение задачи на подзадачи), а затем выполняют постепенную детализацию этих блоков.
  2. Принцип разработки «от главного к второстепенному», который предполагает составление алгоритма, начиная с главной конструкции. При реализации этого принципа иногда достраивают алгоритм в обратном направлении, например, от конца к середине.
  3. Принцип структурирования, который декларирует использование в программе только типовых алгоритмических структур при разработке алгоритма. При использовании в алгоритме нетиповых структур (например, цикл с дополнительными выходами из цикла в теле цикла или злоупотребление безусловного перехода) существенно осложняет чтение и отладку алгоритма.[10]

Основными алгоритмическим структурами являются:

  • следование (линейный алгоритм);
  • ветвление (разветвляющийся алгоритм);
  • цикл (циклический алгоритм).

Грамотно разработанный алгоритм, как правило, состоит из комбинации основных алгоритмических структур.[15]

Наглядно представить, как работает та или иная алгоритмическая структура, можно на примере графических операторов.

2.1 Следование

Следование – определяет линейную последовательность действий. Каждый блок при этом может содержать как простые операторы, так и сложную структуру. Блок должен строго иметь один вход и один выход.[6]

Блок-схема линейной алгоритмической структуры представлена на рисунке 13.

Рисунок 13 – Следование

Пример реализации линейной алгоритмической конструкции представлен в таблице 1.

Таблица 1 – Пример реализации следования

Программа на QBasic

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

CLS

SCREEN 7

CIRCLE (20, 20), 15, 14

LINE (50, 50)-(100, 75), 3, BF

CIRCLE (120, 130), 70, 12, , , .3

PAINT (120, 130), 5, 12

В данном примере последовательно выполняются согласно алгоритму следующие действия:

  • строится окружность желтого цвета;
  • строится голубой закрашенный прямоугольник;
  • строится эллипс красного цвета;
  • внутренняя область эллипса заливается сиреневой заливкой.

2.2 Ветвление

Ветвление является реализацией альтернативы. В ходе выполнения программы управление передается одному из двух блоков в зависимости от истинности или ложности заданного условия. После выполнения одного из блоков происходит выход из ветвления, и программа продолжает выполнение.[3]

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

На рисунках 14 и 15 представлены блок-схемы полной и краткой форм ветвления.

Рисунок 14 – Полная форма ветвления

Рисунок 15 – Краткая форма ветвления

Пример реализации разветвляющейся алгоритмической конструкции представлен в таблице 2.

Таблица 2 – Примеры реализации ветвления

Программа на QBasic

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

CLS

SCREEN 7

INPUT "Vvedite 1 ili 2"; N

IF N = 1 THEN

CIRCLE (160, 90), 50, 1

ELSE

LINE (120, 70)-(200, 110), 6, B

END IF

CLS

SCREEN 7

INPUT "Vvedite 1 ili 2"; N

IF N = 1 THEN

CIRCLE (160, 90), 50, 1

ELSE

LINE (120, 70)-(200, 110), 6, B

END IF

CLS

SCREEN 7

INPUT " a = "; a

IF a MOD 2 = 0 THEN

CIRCLE (160, 90), 50, 1

PAINT (160, 90), 14, 1

END IF

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

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

2.3 Цикл

Цикл реализовывает повторение некоторой группы действий (тело цикла) при разных значениях переменной цикла. Закон изменения переменной цикла задается параметрами цикла.[11]

Различают несколько видов циклического алгоритма. В QBasic реализованы три из них – итерационный цикл, цикл с предусловием и цикл с постусловием (блок-схемы представлены на рисунках 16 – 17).

Рисунок 16 – Блок-схема итерационного цикла

А – начальное значение переменной цикла, В – конечное значение переменной цикла, step – шаг цикла.

Цикл с предусловием

Цикл с постусловием

Рисунок 17 – Блок-схемы цикла с постусловием и цикла с предусловием

Пример реализации разветвляющейся алгоритмической конструкции представлен в таблице 3.

Таблица 3 – Примеры реализации циклов

Программа на QBasic

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

Итерационный цикл

CLS

SCREEN 7

RANDOMIZE TIMER

FOR i = 1 TO 10

CIRCLE (160, 90), i * 10, RND * 15 + 1

NEXT i

Цикл с предусловием

CLS

SCREEN 7

RANDOMIZE TIMER

x = 10

WHILE x < 200

LINE (x + 10, 50)-(x + 30, 80), RND * 15 + 1, B

x = x + 30

WEND

Цикл с постусловием

CLS

SCREEN 7

RANDOMIZE TIMER

x = 10: y = 10

DO

CIRCLE (x, y), RND * 15 + 1, RND * 20 + 10

x = x + 20: y = y + 20

LOOP UNTIL (x >= 220 OR y >= 120)

3 РАЗРАБОТКА ПРОГРАММ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ QBASIC

3.1 Разработка программ с использованием оператора цикла

Принцип работы оператора цикла можно хорошо понять, выполняя программы с использованием графики и внося изменения в параметры цикла.

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

Две следующие программы являются модификациями первой программы – в обе добавлен еще один цикл (то есть использованы вложенные циклы – схема представлена на рисунке 18, а). [18]

Рисунок 18 – Допустимая (а, б) и недопустимая (в) схемы использования нескольких циклов в программе

Код программы, рисующей окружности малого радиуса на окружности большего радиуса (okr1.bas)

R = 120

R1 = 10

N = 20

SCREEN 12

CIRCLE (320, 240), R,4

P = 2 * 3.14 / N

FOR I = 1 TO N

X = COS(P * I) * R

Y = SIN(P * I) * R

CIRCLE (320 + X, 240 + Y), R1,14

NEXT I

Результат выполнения программы представлен на рисунке 19.

Рисунок 19 – Результат выполнения программы okr1.bas

В программе R – радиус большой окружности, R1 – радиус маленьких окружностей, N – их количество.

Параметры цикла:

  • начальное значение переменной цикла 1;
  • конечное значение переменной цикла N (20);
  • шаг цикла не указан (step отсутствует), по умолчанию он равен 1.

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

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

Код программы okr2.bas

R = 120

R1 = 10

N = 20

SCREEN 12

FOR R = 120 TO 20 STEP -20

CIRCLE (320, 240), R, 4

P = 2 * 3.14 / N

FOR I = 1 TO N

X = COS(P * I) * R

Y = SIN(P * I) * R

CIRCLE (320 + X, 240 + Y), R1, 14

NEXT I

NEXT R

Внешний цикл регламентирует изменение радиуса большой окружности.

Параметры внешнего цикла:

  • начальное значение переменной цикла 120;
  • конечное значение переменной цикла 20;
  • шаг цикла 20.

Цикл является убывающим, так как переменная цикла изменяется от большего значения к меньшему значению с отрицательным шагом.[7]

Результат выполнения программы представлен на рисунке 20.

Рисунок 20 – Результат выполнения программы okr2.bas

На рисунке видно, что на каждой окружности красного цвета (радиус этих окружностей циклически меняется) размещены 20 окружностей радиуса 10 желтого цвета.

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

Код программы okr2.bas

R = 120

R1 = 10

N = 20

SCREEN 12

FOR R1 = 60 TO 120 STEP 20

CIRCLE (320, 240), R, 4

P = 2 * 3.14 / N

FOR I = 1 TO N

X = COS(P * I) * R

Y = SIN(P * I) * R

CIRCLE (320 + X, 240 + Y), R1, 14

NEXT I

NEXT R1

Результат выполнения программы представлен на рисунке 21.

Рисунок 21 – Результат выполнения программы okr3.bas

На рисунке видна единственная красная окружность и множество желтых окружностей различного радиуса.

3.2 Разработка программ с оператором условного перехода

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

Программа демонстрирует работу оператора условного перехода в полной форме. Блок-схема работы программы показана на рисунке 22. В случае, если пользователь вводит четное число – программа выводит на экран условное изображение девочки. При вводе нечетного числа программа рисует условное изображение мальчика.

Рисунок 22 – Блок-схема алгоритма программы usl1.bas

Код программы usl1.bas (основная программа)

DECLARE SUB GIRL ()

DECLARE SUB BOY ()

CLS

SCREEN 12

INPUT " N = "; N

IF N MOD 2 = 0 THEN

CALL GIRL

ELSE

CALL BOY

END IF

END

Результаты выполнения программы представлены на рисунках 23 - 24

Рисунок 23 – Результат выполнения программы usl1.bas при N=12

Код подпрограммы GIRL

SUB GIRL

CIRCLE (320, 180), 30, 15

LINE (320, 210)-(370, 300), 3

LINE (270, 300)-(320, 210), 3

LINE (270, 300)-(370, 300), 3

LINE (305, 300)-(305, 340), 15

LINE (335, 300)-(335, 340), 15

LINE (315, 140)-(325, 150), 14, B

LINE (325, 140)-(340, 125), 14

LINE (340, 125)-(340, 150), 14

LINE (325, 150)-(340, 150), 14

LINE (300, 125)-(315, 140), 14

LINE (300, 125)-(300, 150), 14

LINE (300, 150)-(315, 150), 14

END SUB

Рисунок 24 - Результат выполнения программы usl1.bas при N=25

Код подпрограммы BOY

SUB BOY

CIRCLE (320, 180), 30, 15

LINE (295, 210)-(345, 300), 13, B

LINE (305, 300)-(305, 340), 15

LINE (330, 300)-(340, 340), 15

END SUB

Программа выполняет одну из подпрограмм в зависимости от четности числа, введенного пользователем.

ЗАКЛЮЧЕНИЕ

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

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

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

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

Цель курсовой работы реализована, задачи выполнены.

СПИСОК ЛИТЕРАТУРЫ

  1. Абрамов С.А. и др. Задачи по программированию. - М.: Наука, 2015. – 200 с.
  2. Алексеев В.Е. и др. Вычислительная техника и программирование. Практикум по программированию. - М.: Высшая школа, 2017.- 451 с.
  3. Бобровский С. Программирование на языке QBasic для школьников и студентов. – М.:Инфорком-Пресс, ДЕСС, 2011. – 427 с.
  4. Голубь Н.Г., Кириленко Е.Г. Алгоритмические языки и программирование: Методические рекомендации по выполнению контрольных и лабораторных работ, часть 1. – Харьков:ХАИ, 2017. – 31 с.
  5. Дайтибегов Д. - М., Черноусов Е.А. Основы алгоритмизации и алгоритмические языки. - М.: ФиС, 2015.- 563 с.
  6. Залогова, Л.А. Компьютерная графика. Элективный курс: Учебное пособие / Л.А. Залогова. - М.: БИНОМ. ЛЗ, 2016. - 213 c.
  7. Зельднер Г. А. Программируем на языке QBasic 4.5, 4-е издание. – М.: ABF, 2017. – 448 с.
  8. Каспер Э. Освоим QBasic играючи!- М.:Радио и связь. – 2015.- 263 с.
  9. Кетков Ю. В. Практика программирования: Visual Basic, C++ Builder, Delphi. Самоучитель (+ дискета) / Юлий Кетков , Александр Кетков. - М.: БХВ-Петербург, 2018. - 464 c.
  10. Логиновский, А.Н. Инженерная 3D-компьютерная графика: Учебное пособие для бакалавров / А.Н. Логиновский. - М.: Юрайт, 2017. - 464 c.
  11. Мельникова О. И., Бонюшкина А. Ю. Начала программирования на языке QBasic: Учебное пособие. - М.: ЭКОМ, 2016. - 200с.
  12. Миронов, Д.Ф. Компьютерная графика в дизайне: Учебник / Д.Ф. Миронов. - СПб.: БХВ-Петербург, 2015. - 560 c.
  13. Могилев А.В. Информатика. – М., Просвещение , 2017. – 816 с.
  14. Могилёв А.В., Пак Н.И., Хеннер Е.К. Информатика: Учеб. пособие для студ. пед. вузов / Под ред. Е.К. Хеннера. - М., Academia, 2018. – 348 с.
  15. Немцова, Т.И. Практикум по информатике. Компьютерная графика и Web-дизайн. Практикум: Учебное пособие / Т.И. Немцова. - М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2016. - 288 c.
  16. Пантюхин, П.Я. Компьютерная графика. В 2-х т.Т. 1. Компьютерная графика: Учебное пособие / П.Я. Пантюхин. - М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2017. - 88 c.
  17. Семашко Г.Л. Программирование для всех. – М.: Наука, 2016. – 325 с.
  18. Ставнистый Н.Н. Qbasic в математике. Решение задач с помощью компьютера. Ч1. – М.: СОЛОН-Р, 2018. – 143 с.
  19. Тозик, В.Т. Компьютерная графика и дизайн: Учебник для нач. проф. образования / В.Т. Тозик, Л.М. Корпан. - М.: ИЦ Академия, 2015. - 208 c.