printУчебные материалы

printРазделы

Основы разработки и анализа алгоритмов

Введение: Парадигмы программирования

Язык С
Тест "Программирование на языке С"
Визуализаторы структур данных

Объектно-ориентированный подход
Язык С++
Паттерны проектирования
Задания для лабораторных работ
Темы для курсовой работы
Тест "Объектно-ориентированное программирование на языке С++"
Вопросы к экзамену

Функциональное программирование
Функциональное программирование на Scheme и Kotlin
Задания для лабораторных работ
Тест "Функциональное программирование"

Логическое программирование
Задания для лабораторных работ
Тест "Логическое программирование"

Регулярные выражения
Задачи по регулярным выражениям в Blockly
Тест "Регулярные выражения"
Разработка компиляторов и интерпретаторов

Реляционная алгебра

Для прохождения тестов необходимо зарегистрироваться на сайте

Среда Blockly

download blockly.7z (274.4Kb) Среда Blockly для обучения программированию

Среда FLIDE 0.4 для курса функционального и логического программирования

download flide.7z (53.6Mb) текстовый редактор SciTE + интерпретаторы языков Prolog, Scheme, Kotlin, HFL

Среда MinIDE v4.5.4

download MinIDE.7z (72.6Mb) текстовый редактор SciTE+компилятор MinGW C/C++ 13.2 +UMLet + полезные дополнения (список см. ниже)

Эмулятор процессора MMIX и устройств http://mmix.cs.hm.edu/

download mmix.7z (1.5Mb) Запуск примеров из папок run.cmd

Библиотеки и заголовочные файлы LLVM+SciTE для MinGW64

download mingw64-LLVM-SciTE.7z (38.9Mb) Сам компилятор качать с https://winlibs.com/ версию UCRT runtime с LLVM

printЗамечания к среде MinIDE

Кроме редактора SciTE и компилятора MinGW C/C++ 13.2, поддерживающего практически все возможности C++23 и C23, среда MinIDE содержит:
- отладчик GDB 13.2 и плагин для SciTE, позволяющий выполнять отладку в редакторе
- справку cppreference.com за август 2023
- библиотеки winbgim (простая 2D графика с возможностью загрузки/сохранения изображений и печати), coniow и pdcurses (улучшенный консольный ввод-вывод), boost.multiprecision (многоразрядная арифметика, только cpp_int, cpp_bin_float, cpp_dec_float), plog (журналирование), nuklear (графический интерфейс пользователя), pipes (альтернатива ranges), boost/ut (тестирование), fmt (форматирование из C++23), rxcpp ("реактивное программирование")
- фреймворки google test/mock/gunit для модульного и функционального тестирования и имитации объектов (тест модуля должен имя вида "имямодуля_unittest.cpp", тест функции "имяфункции_featuretest.cpp", сценарий для тестирования на языке Gherkin – "имяфункции.feature").
- инструменты caio, RE/flex, bison для создания трансляторов
- утилита astyle для форматирования текста программы
- система управления изменениями fossil
- редактор UMLet для рисования UML и ER-диаграмм, интерактивных прототипов интерфейсов пользователя, схем алгоритмов для отчетов по курсовым работам, конечных автоматов и диаграмм состояний (с возможностью симуляции и генерации кода на C++), рисования графиков (для работы редактора необходим JRE)
- библиотека luaaa и интерпретатор lua 5.4
- интерпретаторы quickjs, python
- подсказка/автодополнение по функциям/глобальным переменным текущего проекта, стандартной библиотеки С, C++, coniow и winbgim, gtest
- cpp2front для Сpp2 Г.Саттера

Для работы на старых Windows 7 и 8 может потребоваться установка библиотек Visual C++

Для установки необходимо 350 Мб свободного места на диске.
Не давать имена с пробелами вашим файлам.
При установке компилятора в папку с русскими буквами (например, на Рабочий стол) перед подключением заголовочных файлов из boost/multiprecision добавить строчки
#define BOOST_EXCEPTION_DISABLE
#define BOOST_DISABLE_ASSERTS

Для перенаправления стандартного ввода на файл в меню Вид –> Параметры –> В поле 1 указать <input.txt. Для интерактивной работы лучше запускать программу в отдельном окне.

В настройках сокращений есть 3 заготовки для программ: hello, gtest, gunit, gunitl и utest. Для применения нужно ввести имя и нажать Ctrl-B.

При использовании в модуле unicode-строк L"" и символов L'' название модуля должно начинаться с префикса uc. Для компиляции такого модуля будут использоваться ключи с указанием кодировки исходного файла.

Для включения OpenMP выбрать пункт меню "Настройки"/"Открыть файл локальных настроек" и указать строку с дополнительными ключами компилятора:
compile.flags=-fopenmp -fmodules-ts
Для добавления дополнительных библиотек (например, winmm, включающую PlaySound) можно указать:
compile.libs=winmm
Аналогично в локальных настройках указывается следующая настройка для создания проекта из всех файлов папки:
build.goal=all
При установке данной настройки пункт меню "Собирать из …" меняется на "Собирать из всех". По умолчанию построение выполняется только из текущего файла. Имя исполняемого файла совпадает с именем текущего файла, таким образом можно работать с несколькими программами одновременно без перекомпиляции.

Во внутренней консоли можно выполнять командные строки, например:
make all
program.exe <input.txt
dir /b
make clean
и вычислять выражения командой:
=2*2
Если необходимо повторить команду, вычисления или ввод, то можно выбрать предыдущую подходящую строку и нажать Enter в конце строки. При необходимости перед вводом можно изменить эту строку.

Изменения в v4.5.3

Добавлен интерпретатор python 3.9 (GDB), автодополнение по <concepts>, <ranges>

Изменения в v4.5.4

Добавлен пример с модулями C++20.

printИнтерпретатор Python

https://thonny.org/ (12.3Mb) интерпретатор Python 3.10 и среда Thonny
https://www.anaconda.com/download/ (898Mb) интерпретатор Python 3.11, математические библиотеки (аналоги Matlab и Mathematica) и среды Spyder, Jupyter Notebook
loading