Сайт о программировании, математике и моделировании
Записи с метками С++
Анализ существующих средств создания многоагентных систем (МАС)
11 Январь
Традиционно под агентом понимается некоторая автономная сущность в составе информационной системы, решающая определенную подзадачу этой системы. Агент представляет собой самостоятельную программную реализацию, имеющую возможность принимать воздействие из внешнего мира, определять свою реакцию на это воздействие и осуществлять эту реакцию. В одиночку агенты не смогут решить всех задач поставленных перед ними, потому особую ценность имеют многоагентные системы – системы, в которых предусмотрено взаимодействие агентов, каждый из которых решает задачи необходимые для выполнения поставленной цели.
Базовым инструментом разработки многоагентных систем, позволяющим создавать, уничтожать, интерпретировать, запускать и перемещать агентов является агентная платформа. Основными функциями агентных платформ являются: Читать дальше >
Язык Ассемблер
3 Декабрь
Ассемблер (от англ. assemble — собирать) — компилятор с языка ассемблера в команды машинного языка. Русифицированное название — мнемокод. Предназначен для представления в удобном (мнемоническом) виде машинные коды команд. Обеспечивает наиболее эффективное использование ресурсов системы (процессор, память, периферия). Используется в «узких» местах — требуется большое быстродействие, ограничение по размеру оперативной памяти и другие. Ассемблером также называют иногда саму систему команд центрального процессора. Читать дальше >
Что такое язык ассемблера?
3 Декабрь
Язык ассемблера позволяет программисту пользоваться текстовыми мнемоническими (то есть легко запоминаемыми человеком) кодами, по своему усмотрению присваивать символические имена регистрам компьютера и памяти, а также задавать удобные для себя способы адресации. Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант, использовать в программе комментарии и др. Читать дальше >
Работа со строками на С++
3 Декабрь
Постановка задачи:
Написать программу, демонстрирующую работу с объектами двух типов: SymbString (символьная строка) DecString (десятичная строка). Каждый объект должен иметь идентификатор(в виде произвольной строки символов) и одно или несколько полей для хранения состояния(текущего значения) объекта.
Клиенту (функции main) должны быть доступны следующие основные операции:
- Создать объект
- Удалить объект
- Показать значение объекта Читать дальше >
Заполнение матрицы элементами, окаймляющими элемент Akl, определенным образом
3 Декабрь
Постановка задачи:
Матрицу А(m, n) заполнить следующим образом. Для заданных k и l элементу akl присвоить значение 1; элементам, окаймляющим его (соседним с ним по вертикали, горизонтали и диагоналям) – значение 2; элементам следующего окаймления – значение 3 и так далее до заполнения всей матрицы. Читать дальше >
Задача про два отрезка на прямой и их общие точки
3 Декабрь
Постановка задачи:
Два отрезка на прямой заданы координатами своих концов. Определить, имеют ли эти отрезки общие точки, и если имеют, то длину общей части. Замечание. Необходимо рассмотреть различные случаи взаимной ориентации отрезков. Тестирование должно предусмотреть все такие ситуации.
Решение:
Пусть А и В – два отрезка, с координатами своих концов [а1, а2] и [b1, b2] соответственно. a1, b1 –левые координаты, a2, b2 – правые координаты отрезков А и В. Читать дальше >
Нахождение наибольшего общего делителя двух натуральных чисел
3 Декабрь
Постановка задачи:
Найти наибольший общий делитель (НОД) двух введенных натуральных чисел, используя алгоритм Евклида (алгоритм Евклида: вычитаем из большего меньшее до тех пор, пока они не сравняются, полученное в результате число и есть НОД).
Решение:
Наибольшим общим делителем (НОД) двух целых чисел называется такое наибольшее по модулю число, которое делит эти два числа. Так как натуральные числа это положительные целые числа, то при вводе двух чисел а и b должно проверяться условие, что они больше нуля. Читать дальше >
Вычисление длины окружности и площади круга одного и того же радиуса R
3 Декабрь
Постановка задачи:
Вычислить длину окружности и площадь круга одного и того же радиуса R. И площадь вписанного в эту окружность равнобедренного треугольника. Читать дальше >
Разработка программы реализующей алгоритм Рабина-Миллера на С++
1 Декабрь
При выборе языка написания программы главными критериями являлись скорость выполнения и трудоемкость написания. С++ является одним из наиболее распространенных современных языков программирования. Язык С++ хорошо зарекомендовал себя эффективностью, лаконичностью записи алгоритмов, логической стойкостью программ. Ключевым понятием С++ является класс. Класс – это определяемый пользователем тип. Классы обеспечивают упрятывание данных, их инициализацию, неявное преобразование пользовательских типов, динамическое задание типов, контролируемое пользователем управление памятью и средства для перегрузки операций. В языке С++ концепции контроля типов и модульного построения программ реализованы более полно, чем в С. Кроме того, С++ содержит усовершенствования, прямо с классами не связанные: символические константы, функции-подстановки, стандартные значения параметров функций, перегрузка имен функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены все возможности С эффективной работы с основными объектами, отражающими аппаратную «реальность» (разряды, байты, слова, адреса и т.д.). Это позволяет достаточно эффективно реализовывать пользовательские типы. Читать дальше >
Выбор среды программирования для вычислений с большими числами
1 Декабрь
В тех областях, где необходимо проводить вычисления с большими числами, важную роль играет эффективность выбора языка программирования. Оценить её можно по времени работы алгоритмов реализованных на этом языке. Предположительно, наиболее выгодно использовать языки программирования низкого уровня, в частности Ассемблер. Читать дальше >