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