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

Разработка программы проверки знания таблицы умножения

Содержание:

ВВЕДЕНИЕ

Развитие аппаратных и программных средств привело к появлению многочисленных и разнообразных языков программирования. Перед программистом стоят сложные задачи как написания, так и отладки программы. Язык С++ наиболее распространённый и современный, язык- универсальный, который включает в себя средства высокоуровневых и низкоуровневых языков программирования. Он используется в разработке операционных систем, прикладных программ, видео игр, драйверов устройств и т.д. В наше время, когда идет перестройка экономики на цифровую, требуются специалисты для написания программ в разных областях науки и экономики.

Тема курсовой работы является актуальной, потому что язык С++ является гибким, эффективным и удобным инструментом для реализации программ в разных интегрированных средах разработки, таких как Microsoft Visual Studio C++, Borland C++ Builder, Dew C++, Eclipse, Net Beans.

Объектом изучения является “Программирование”, предметом исследования выступает язык программирования С++.

Цель работы: приобрести теоретические знания и практические умения в написании программ на С++.

Задачи для достижения поставленной цели:

- изучить теоретические основы развития языков программирования;

- ознакомиться с языком программирования С++;

- разработать программу проверки знания таблицы умножения.

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

Основные авторы: Белева Л.Ф. [2], Букунов С.В. [3], Васильев А.Н. [4], Кадырова Г.Р. [8], Трофимов В.В., Павловская Т.А. [17], Тюльпинова Н. В. [18].

Глава 1. Языки программирования

1.1 История развития

Первые программы писались на машинном языке, то есть в машинных кодах. Первая такая программа была запущена в 1948г. в Англии. Процесс создания программ был трудоемким и громоздким, поэтому программисты решили переложить на ЭВМ всю их работу, приводящую к ошибкам. Вначале попытались заменить числовые коды машинных операций на мнемонические символьные обозначения, так же появились специальные программы- трансляторы, которые преобразовывали язык написания программы в машинный язык. Так в 1950 г. в процессе автоматизации появился язык Ассемблер (мнемонический). Это был один из наиболее важных этапов в развитии технологии программирования. Команды языка Ассемблер соответствуют командам процессора, зависимость от типа процессора является недостатком языка. Однако при этом, максимальное использование аппаратных особенностей машины дает возможность выполнять сразу алгоритм и создавать эффективные программы. Язык Ассемблер относится к языкам программирования низкого уровня, сколько различных компьютеров, столько же и языков Ассемблера. Машинный язык и язык Ассемблер относятся к машинно- зависимым языкам.

Языки программирования высокого уровня создавались в разное время для решения различных задач, они ближе к естественному человеческому языку. Писать программы проще, языки освобождают программиста от детализации программы на слишком мелкие машинные команды. Программист, имея конкретную задачу подбирает наиболее подходящий язык программирования, подготавливает текст на этом языке, а транслятор переводит программу на машинный язык. Трансляторы бывают двух видов: компиляторы – позволяют читать и переводить всю программу целиком на машинный язык (Turbo Pascal, C, C++, C#, Delphi), интерпретаторы - переводят программу построчно, строка за строкой (Basic, Logo, HTML, XHL и др.). После компиляции исходная программа и компилятор уже не нужны, если же используется интерпретатор, то программа будет интерпретироваться при каждом выполнении. Программа скомпилированная, будет работать быстрее, а интерпретируемую проще исправлять. Использовать языки программирования высокого уровня можно на любой ЭВМ, они являются машинно- независимыми. [18]

1.2 Классификация

Классификация по основным признакам:

1.По стилю написания.

Процедурные. Основная программа – процедура, результат получается с помощью определенных алгоритмов (Pascal, C, Ada, Fortran, Basic, Pl/1).

Непроцедурные – функциональные, логические.

Функциональные языки – для вычисления некоторой функции, основной элемент- рекурсия (Lisp, ML и Haskell).

Логические языки – главное понятие – отношение без описания действий (Prolog).

Объектно- ориентированные – в терминах классов и объектов, со своими свойствами и поведением (C++).

2.По типу решаемых задач.

Задачи искусственного интеллекта (Haskell, C++, Matlab, Python, Lisp, Java).

Задачи вычислительного характера (Algol, Cobol, Ada, Basic, Pl/1, Fortran, Pascal).

Параллельное программирование (Ada, Erland, Modula-3).

Написание операционных систем (C, C++).

Разработка интерфейса, программ- оболочек (Accembler, C++, Java, C).

Обработка данных, оформление документов (Perl, SQL, HTML, Seqvel).

3.По отношению к аппаратуре

Машинно- зависимые – языки низкого уровня (Accembler)

Машинно-независимые – языки высокого уровня (Pascal, Algol, Basic, C++, Pl/1, Delphi, Ada и др.).

4. По областям применения.

Специализированные – для конкретной предметной области (Perl, SMP, Logo).

Универсальные - для широкого круга задач (С++, Delphi, Java, Pascal, Algol,C, Pl/1).

1.3 Характеристики основных универсальных языков высокого уровня и область их применения

Fortran – первый язык программирования. Появился в 1954г., был разработан группой программистов корпорацией IBM (США) под руководством доктора Д. Бэкуса. Образован из двух слов formula translator, что означает переводчик формул. Разрабатывался для сложных вычислительных расчетов.

Algol. Язык разработан европейскими учеными под руководством П. Наура, стандартизирован в 1960 году. Состоит из двух слов algorithmic language, то есть алгоритмический язык. Использовался специалистами в прикладной математике, в области экспериментальной и технической физики.

Cobol. Появился в 1960г., для создания коммерческих приложений. Состоит из слов common business- oriented language и обозначает, язык ориентированный на бизнес.

Basic. Разработан профессорами Д. Кемени и Т. Куртцем в 1964г. в Дартмутском колледже (США), для обучения студентов языку программирования (для начинающих программистов). Аббревиатура языка включает в себя beginner’s all purpose symbolic instruction code, что переводится как многоцелевой язык символических инструкций для начинающих. Более простой язык для обучения и работы чем Fortran.

Pascal. Создан европейским профессором Н. Виртом (Швецария) в 1968 – 1969г. для обучения студентов основам алгоритмизации и программирования. Назван в честь французского ученого Б. Паскаля. В основном используется для простых вычислительных расчетов, для создания обучающихся и тестированных программ, программ – оболочек. Pascal является продолжением языка algol. В 1970 г. профессор Н. Вирт разработал новый язык программирования Modula, а в 1986г. новый язык Oberon.

C. в 1972г. сотрудник фирмы Bell Laboratories (США) для разработки операционной системы Unix создал язык программирования C. В нём сочетаются возможности языков высокого и низкого уровней. Bell Laboratories доказала, что операционная система может быть написана на языке высокого уровня.

C++. В 1980г. Б. Страуструп сотрудник фирмы Bell Laboratories создал язык C++, объектно- ориентированный язык. Используется в среде операционных систем Unix, DOC и Windows.

С/C++ являются базовыми для таких языков как Java и С#.

Java – платформенно- независимый язык для создания интерактивных веб- страниц, появился в 1995г, был разработан компанией Sun Microsystems.

C# создан группой специалистов компании Microsoft для разработки приложений для платформы Microsoft.net Framework. Используется для создания операционных систем и веб -приложений.

Ada. Появился в 1983г. для нужд Министерства обороны США, является сложным для освоения. Применяется в военной, авиационной, железнодорожной и других областях.

Delphi. Специалисты фирмы Borland на базе языка Pascal, используя языки C и C++ создали язык объектно- ориентированного визуального программирования. Используют для разработки приложений.

Lisp. Создан Д. Маккарти в 1958г., основная структура данных в форме списка, что отражается в названии List Processing, для работ по искусственному интеллекту. В настоящее время применяется для промышленного программирования.

Prolog. Появился в 1972г., автор А. Коллироэ, Programming in Logic- язык логического программирования. Создан для разработки интеллектуальных программ и систем. Основан на проверке предположений в базе знаний.

Pl/1. Корпорацией IBM в 1964г был создан язык Pl/1 – язык программирования номер один, для замены Cobol и Fortran, но в связи со сложностями написания и отладки программ не имел широкого использования. [8], [17], [18]

1.4 Объектно- ориентированный язык программирования C++

Введение в язык. В объектно- ориентированных языках главной единицей является объект – это абстрактная сущность, как и реальный объект он обладает собственными атрибутами и характерным поведением, и может быть идентифицирован (имеет имя). Объект можно классифицировать по классам, к которому он принадлежит. В иерархии классов каждый класс занимает определенное место. Поэтому можно утверждать, что объект есть экземпляр некоторого класса. Язык С++ основан на трех основополагающих концепциях: инкапсуляция, полиморфизм и наследование.

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

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

Наследование – объект наследует свойства другого объекта при этом добавляет свои характерные свойства. Наследование поддерживает концепцию иерархии классов, которая делает управляемыми большие потоки информации. Порожденный класс наследует всё от родителей добавляя свои характеристики. Наследование дает возможность описание объекта по классу, к которому он относится, со своими уникальными свойствами. [4]

Базовые элементы языка программирования С++. В основе любого языка программирования лежат: алфавит, синтаксис и семантика. Алфавит- команды и другие конструкции языка образуются из набора символов. Синтаксис- записи команд выполняются по определённым правилам, совокупность правил и есть синтаксис. Семантика- совокупность правил и выполнения конструкции языка. Основные элементы языка - буквы, слова, словосочетания и предложения, только в языке программирования слова называются- лексемами, словосочетания- выражениями или операндами, предложения- операторами. Алфавит включает в себя следующие символы: латинские буквы (заглавные, прописные) и знак нижнего подчеркивания, арабские цифры, специальные знаки (знаки арифметических операций, синтаксические знаки и знаки равенств и т.д.), пробельные символы (пробел, символ табуляции, символы перехода на новую строку). С помощью символов алфавита в C++ строятся слова (лексемы).

Лексемы имеют пять типов: идентификаторы, ключевые слова (зарезервированные), знаки операций, литералы, разделители (скобки, точка, запятая, пробельные символы).

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

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

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

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

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

Для создания программ (алгоритмов) нужны данные, а это множество величин (число, символ, строка, таблица). В программировании величины бывают переменные со своим именем, типом и значением, константы- значение которых остается постоянным, в программе используется ключевое слово const. [2], [8]

Структура программы языка C++. Функции, задающие действия в С++ и которые нужно выполнить, начинаются с функции main- это главная и обязательная функция. Слово main должно писаться вместе с круглыми скобками main (). Сразу за ними располагаются фигурные скобки, где размещается основной код программы, {} – тело программы. Тело программы: объявление переменных, операторы присваивания и ввода, операторы преобразования исходных данных, а также операторы и функции для вывода результатов на экран. Если перед main () стоит int- это означает, что по завершению работы, функция возвращает значение, результат возвращается за резервированным словом return, return 0- работа функции завершилась в нормальном режиме, без ошибки. Если void- функция не возвращает никакого значения.

В ЭВМ информация вводится с помощью клавиатуры, а выводом служит дисплей. Операторы- это указания компьютеру для совершения действия. Окончание оператора- (;). В С++ для ввода / вывода информации используются операции: операция вывода – это <<, а операция ввода – это >>, не смотря на это, функции printf() и scanf() по- прежнему доступны.

Оператор cout << переменная- выводит строку на экран дисплея.

Для вывода значений с клавиатуры используется следующая форма оператор cin>> переменная.

Оператор endl, так называемый манипулятор переводит курсор в начало следующей строки.

Директивы препроцессора в C++ начинаются с символа #, её завершением является перевод на новую строку. Директива “#include” дана для определения файлов и библиотек, которые надо подключить в код программы. Директив в С++ много, директива “using” позволяет ввести в программу объекты из различных пространств имён.

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

Для строковых констант значение задается один раз и сохраняется. Существует два способа интерпретации строковых констант, в одном строка как массив символов, в другом- как объект класса. Символ 'n' называется управляющей или escape – последовательности, следующий вывод текста начинается с новой строки.

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

Комментарии (подсказка) в программе позволяют понять, что делают те или иные части программы, компилятор их игнорирует. В C++ присутствует два типа: однострочный и многострочный. Однострочный на строке после //, многострочный /* комментарии*/ может размещаться на нескольких строках.

Для любой сложной задачи можно составить программу используя три структуры: следование, ветвления, цикл, они являются базовыми конструкциями. Следование- последовательное выполнение двух или более операторов. Ветвление- выполнение действия от логического условия (true или false). Цикл- многократное выполнение оператора.

Оператор выбора (ветвление) if в зависимости от логического условия выбирает одно из двух продолжений программы, существует форма if else. Если же вариантов выбора намного больше используется специальный оператор swith.

Операторы цикла: for, while, do while реализующие циклический процесс. Телом цикла называется повторяющая последовательность действий. Шагом или итерацией называется проход цикла. При использовании оператора for количество шагов известно, если нам не известно сколько шагов должен произвести цикл, то пользуются операторами while и do while.

В языке C++ существуют специальные операторы перехода цикла: continue, break, return. С помощью оператора continue происходит переход к следующему шагу цикла, break прерывает цикл, и управление передается следующему оператору, return- выход из функции. Если цикл находится внутри другого цикла он называется вложенным.

Типы данных. Типы данных показывают сколько в памяти компьютера они занимают места. Они делятся на основные и составные. К основным или стандартным, которые ещё называются арифметические, то есть используются в арифметических операциях относятся шесть типов: int, char, wchar_t, bool – целые типы, float, double – с плавающей точкой. Для составных типов основные дополняются четырьмя спецификаторами, которые уточняют диапазон значений: short- короткий, long- длинный, signed- знаковый, unsigned- без знаковый.

Целый тип int- к нему относятся все целые числа, размер которых зависит от компьютера и компилятора. Диапазон значений от -2147483648 до +2147483647. Для 16 – разрядного процессора int занимает 2 байта, для 32 - разрядного процессора- 4 байта.

Short int (короткий целый)- не может быть больше чем int, диапазон значений от -32768 до +32767, под числом требуется 2 байта.

Long int (длинный целый)- не может быть меньше чем int, диапазон значений от -2147483648 до +2147483648, под число требуется 4 байта.

Каждый тип может быть знаковым или без знаковым, тип unsigned только положительные числа.

Целым константам в соответствии с их видом приписывается тот или иной тип, если константа типа long то приписывается суффикс L или l после числа, если unsigned то U или u.

Символьный тип char- любые символы, которым отводится один байт. Может быть со знаком в диапазоне от -128 до 127, без знака от 0 до 255.

Символьные константы записываются 'A', 'a'.

Расширенный тип wchar_t- для работы с набором символов для которых недостаточно одного байта.

Логический тип bool- специальный тип для представления логических значений, величины принимают только значение true (правда) или +false (ложь). В С++ 0- соответствует false, любое другое число- true.

Вещественные числа float, вещественные числа с плавающей точкой double и long double- записываются в виде десятичных дробей или в виде мантиссы и порядка. Float- с одинарной точностью, составляет семь десятичных значащих цифр, занимает 4 байта. Double- двойной точностью, составляет 15 значащих чисел, занимает 8 байт. Long double- с расширенной точностью составляет 19 значащих цифр занимает 10 байт. Тип константы указывается с помощью суффиксов F, f (float) после числа, или l,L (long double). Вещественная константа по умолчанию- double.

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

Язык C++ - типизированный язык, всякая величина принадлежит к какому- либо типу. Во время выполнения программы величина переменной может меняться.

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

Язык С++ позволяет также работать с массивами, указателями, ссылками, классами и объектами. [3], [4]

Глава 2. Разработка программы проверки знания таблицы умножения

2.1 Цель работы

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

1. Номер задания

2. Дата выполнения

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

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

1. 10 или 9 верных ответов – “отлично”

2. 8 или 7 верных ответов – “хорошо”

3. 6 верных ответов – “удовлетворительно”

4. 5 или меньше – “плохо”

Результат тестирования необходимо сохранить в файл, содержащий данные:

1. Номер задания

2. Дата выполнения

3. Количество верных ответов

4. Оценку

Меню программы должно содержать пять частей:

1.Ввод данных

2.Переход к тестированию

3.Оценка

4.Результаты

5.Выход

2.2 Разработка программы на языке C++

Мы можем разделить код программы на три части:

1. Начало

2. Тестирование

3. Оценка

Каждая программа на языке C++ сначала подключает библиотеки, необходимые для работы. Теперь нам необходимо запустить функцию считывания и сохранения в глобальных переменных значений, введенных пользователем (Номер задания и Дата выполнения) (рис 1).

C:\Users\Пользователь\Documents\skrinshot\скриншот 1.jpg

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

Далее при помощи оператора do-while запускаем цикл вывода на экран сгенерированных программой примеров и ввода ответов ученика. Цикл используется для выполнение однотипных операций, здесь это вывод примеров и запись ответов (рис 2).

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

1. Запуск цикла

2. Генерация примера

3. Вывод на экран (примера)

4. Ожидание ответа

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

6. Завершение выполнения цикла при определенном условии.

C:\Users\Пользователь\Documents\skrinshot\скриншот 2.jpg

Рисунок 2 - Скриншот цикла тестирования и анализа ответов

Далее при помощи оператора if мы анализируем правильные ответы ученика и записываем в файл (рис. 3).

C:\Users\Пользователь\Documents\skrinshot\скриншот 3.jpg

Рисунок 3- Скриншот анализа правильных ответов и запись результатов в файл.

Выводим на экран оценку и количество верных ответов из файла на экран (рис. 4).

C:\Users\Пользователь\Documents\skrinshot\скриншот 4.jpg

Рисунок 4- Скриншот вывода оценки на экран.

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

C:\Users\Пользователь\Documents\skrinshot\скриншот 5.jpg

Рисунок 5- Скриншот основной функции программы.

На этом этапе, написание кода можно считать завершённым и можно переходить к процессу компиляции и отладки. В результате работы компилятора мы получаем готовую программу в виде исполняемого EXE файла (Приложение 1 “Таблица_умножения.exe”).

После запуска файла программа запрашивает количество вопросов в тесте (рис.6).

C:\Users\Пользователь\Documents\skrinshot\скриншот 6.jpg

Рисунок 6- Скриншот запроса количества вопросов в тесте.

После ввода количества вопросов (в нашем случае десять), нажимаем Ввод и попадаем в меню программы (рис. 7).

C:\Users\Пользователь\Documents\skrinshot\скриншот 7.jpg

Рисунок 7- Скриншот меню программы.

После выбора первого пункта меню программа запрашивает номер задания и дату выполнения (рис. 8).

C:\Users\Пользователь\Documents\skrinshot\скриншот 8.jpg

Рисунок 8- Скриншот ввода данных.

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

C:\Users\Пользователь\Documents\skrinshot\скриншот 9.jpg

Рисунок 9- Скриншот прохождения теста.

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

C:\Users\Пользователь\Documents\skrinshot\скриншот 10.jpg

Рисунок 10- Скриншот оценки знаний таблицы умножения.

Также, программа ведет запись результатов тестирования в файл, номера заданий, даты прохождения тестов, количества правильных ответов. Просмотр результатов тестов осуществляется выбором четвёртого пункта меню “Результаты” (рис11).

C:\Users\Пользователь\Documents\skrinshot\скриншот 11.jpg

Рисунок 11- Скриншот чтения результатов тестов из файла.

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

ЗАКЛЮЧЕНИЕ

В главе первой рассмотрен теоретический материал в области развития языков программирования, классификация по разным признакам, а также рассмотрены характеристики языков высокого уровня и области их применения (Fortran, Cobol, Basic, Pascal, C/C++, Java, C#, Ada, Prolog, Delphi, Lisp, Pl/1). Изучен язык программирования C++, его синтаксис и структура. В языке используются: переменные, константы и литералы. Даны основные типы данных с диапазонами значений. Перечислены основные группы управляющих конструкций- операторы выбора и операторы цикла.

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

Вывод: С++ является языком широкого использования для создания любых видов программ.

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

1.Баженова И.Ю., Сухомлин В. А. Введение в программирование: учебное пособие. – Москва: Интернет – Университет информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2020. – 326c.

2. Белева Л.Ф. Программирование на языке С++: учебное пособие. – Саратов: Ай Пи Эр Медиа, 2018. – 81с.

3. Букунов С.В. Основы программирования на языке С++: учебное пособие. Санкт – Петербург: Санкт – Петербургский государственный архитектурно – строительный университет, ЭБС АСВ, 2015.- 201с.

4. Васильев А. Н. Самоучитель на С++ с примерами и задачами. – СПб: Наука и техника, 2016.- 480c.

5. Зоткин С.П. Программирование на языке высокого уровня С/ C++: конспект лекций. – Москва: Московский государственный строительный университет, Ай Пи Эр Медиа, ЭБС АСВ, 2016ю -140с.

6. Зырянов К.И., Кисленко Н.П. Программирование на С++: учебное пособие. – Новосибирский государственный архитектурно – строительный университет (Сибстрин), Новосибирск: НГАСУ, 2017. – 128c.

7. Исакова К.А., Майкотов М.Н., Беделов К.А. Высокоуровневые методы программирования: учебно- методический комплекс. – Алматы: Нур – Принт, 2012. - 102c.

8. Кадырова Г.Р. Основы алгоритмизации и программирования: учебное пособие. –Ульяновск: Ул ГТУ, 2014. - 95с.

9. Кирнос В.Н. Информатика 2. Основы алгоритмизации и программирования на языке С++: учебно – методическое пособие. – Томск: Эль Контент, 2013. – 160с.

10. Лахов А.Я., Борщиков Р.Е. Виртуальное программирование на основе библиотеки MFC. Методические указания к лабораторным работам по курсу визуальное программирование. – Саратов: вузовское образование, 2016. – 57c.

11. Липпман С., Лажойе Ж. Язык программирования С++: учебное пособие. - Саратов: Профобразование, 2019. – 1104с.

12. Мордашев А.М., Панкратов А.С., Салпагаров С.И. Задачи по программированию на C/С++: учебно - методическое пособие. – Москва: Российский Университет дружбы народов, 2017. – 72c.

13. Павловская Т.А. С/C++ Программирование на языке высокого уровня: учебное пособие. – СПб: Питер, 2013. – 461с.

14. Петров В.Ю. Информатика. Алгоритмизация и программирование. Часть 1: учебное пособие. – Санкт – Петербург: Университет ИТМО, 2016. – 93c.

15. Сорокин А.А. Объектно – ориентированное программирование: учебное пособие. Курс лекций. – Ставрополь: Северо- Кавказский федеральный университет, 2014.- 174c.

16. Токманцев Т.Б. Алгоритмические языки и программирование: учебное пособие. – Екатеринбург: Уральский федеральный университет, ЭБС АСВ, 2013. – 104с.

17. Трофимов В.В., Павловская Т.А. Основы алгоритмизации и программирования: учебное пособие. – М: Издательство Юрайт, 2019. -137с.

18. Тюльпинова Н.В. Алгоритмизация и программирование: учебное пособие. – Саратов: Вузовское образование, 2019. – 200c.

19. Устинов В.В. Основы алгоритмизации и программирование: часть 2. – Новосибирск: Новосибирский государственный технический университет, 2013. - 32c.

20. Фридман А.А. Язык программирования С++: учебное пособие. – Москва: Интернет – Университет Информационных Технологий (ИНТУИТ), 2016. - 218с.

21. Поисковая система Google //www.google.ru