Задачи по программированию на 1С

18.04.17

Разработка - Математика и алгоритмы

Сборник задач по программированию. Начало...

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Задачи по программированию
.epf 12,30Kb ver:1.0.1
7
7 Скачать (1 SM) Купить за 1 850 руб.

Введение

Изначально была поставлена задача написать решение пяти задач по программированию языком 1С.

Было решено писать на управляемых формах для ускорения создания элементов на форме.

Задачи:

  1. Задана точка с координатами (x,y) и треугольник с координатами вершин (x1,y1),(x2,y2),(x3,y3).Определить, лежит ли точка внутри или вне треугольника.
  2. Дан одномерный числовой массив. Перестроить массив таким образом, чтобы вначале следовали отрицательные элементы, затем нули и после располагались положительные элементы массива. Порядок следования среди положительных и отрицательных элементов должен быть сохранен прежним.
  3. Число называется совершенным, если оно равно сумме всех своих делителей, меньших его самого. Определить, является ли введенное с клавиатуры число совершенным
  4. Для заданных, а, b, с вычислить z = max (min (a, b), с). Не прибегая к функциям min и max.
  5. Требуется найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц. Входные данные: последовательности нулей и единиц. Выходные данные: число (длина цепочки)

Решения

Решение задачи 1:

Считаются произведения (1, 2, 3 - вершины треугольника, 0 - точка):
(x1 - x0) * (y2 - y1) - (x2 - x1) * (y1 - y0)
(x2 - x0) * (y3 - y2) - (x3 - x2) * (y2 - y0)
(x3 - x0) * (y1 - y3) - (x1 - x3) * (y3 - y0)
Если они одинакового знака, то точка внутри треугольника, если что-то из этого - ноль, то точка лежит на стороне, иначе точка вне треугольника.

Решение задачи 2:

Запись данных из формы в тип 1С "массив" и затем сортировка массива пузырьком.

Решение задачи 3:

Совершенные числа считаются, когда сумма всех своих делителей, меньших его самого:

  • 1-е совершенное число — 6 имеет следующие собственные делители: 1, 2, 3; их сумма равна 6.
  • 2-е совершенное число — 28 имеет следующие собственные делители: 1, 2, 4, 7, 14; их сумма равна 28.
  • 3-е совершенное число — 496 имеет следующие собственные делители: 1, 2, 4, 8, 16, 31, 62, 124, 248; их сумма равна 496.
  • 4-е совершенное число — 8128 имеет следующие собственные делители: 1, 2, 4, 8, 16, 32, 64, 127, 254, 508, 1016, 2032, 4064; их сумма равна 8128.

Реализация идет через цикл счетчика "делитель", пока делитель числа меньше или равен его половины. Когда делитель делится на число без остатка, то его можно суммировать. Если результат суммы равен вводимому числу после завершения цикла, то число совершенное.

Решение задачи 4:

Результат получаем без использования функции "Макс" и "Мин", используя только сравнение.

Решение задачи 5:

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

Все задачи реализованы в виде одной обработки!

P.S. Если материал вам помог, поблагодарите автора, поставив звездочку!

обработка УФ управляемая форма задача задачи по программиронию

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    3165    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7556    user1959478    51    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3111    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    10905    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4361    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

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

23.11.2022    3531    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9042    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DrAku1a 1745 19.04.17 07:58 Сейчас в теме
2. Создать два временных массива (один для отрицательных чисел, второй для положительных), затем пройтись по основному массиву цикл "Для каждого" - разложить числа в каждый из массивов, затем исходный массив очистить и заполнить сперва из первого массива, потом из второго.

3. Цикл можно уменьшить ещё вдвое, если обрабатывать ещё и результат деления (кроме 1) - т.е. 8128 / 2 = 4064 => берём числа 2 и 4064.

4. Если A<>B, то можно получить по формуле
max(a, b) = a * ((a-b) + |a-b|) / 2(a-b) + b * ((b-a) + |b-a|) / 2(b-a)
min(a, b) = b * ((a-b) + |a-b|) / 2(a-b) + a * ((b-a) + |b-a|) / 2(b-a)
4. comptr 35 19.04.17 09:31 Сейчас в теме
(1) 2. Ещё нужен массив под нули.
3. И перебирать тогда до корня из числа, а не до половины.
7. Xershi 1555 19.04.17 23:24 Сейчас в теме
(1) 2. Сортировку пузырьком сделать для массив отрицательных и положительных и затем добавить массив нулей чтобы сохранить порядок?
3. Заниматься излишней оптимизацией зачем?
4. Решение через чур громоздкое для простого условия. В математичку не лез и лишний код писать зачем?
8. DrAku1a 1745 20.04.17 02:25 Сейчас в теме
(7) 2. Не понял. По условию - нужно сохранить порядок следования отрицательных и положительных чисел, сохранив их порядок, так? Разве сортировка пузырьком - не изменит порядка? Или при сортировке - перемещаются только числа с разными знаками?
3. Оптимизация. Бывают ситуации, когда это нужно, бывают - когда это нецелесообразно. Но знать и уметь - нужно!
4. Данное решение - для математической задачи "Для двух разных чисел вычислить максимум и минимум не прибегая к функциям или сравнению".
2. TODD22 19 19.04.17 09:08 Сейчас в теме
Было решено писать на управляемых формах для ускорения обработки элементов форм.

не много не понял... как УФ ускоряет обработку элементов формы?
DrAku1a; DAnry; +2 Ответить
5. Xershi 1555 19.04.17 19:49 Сейчас в теме
(2) тем что уф рисует элементы сама. Под обработкой речь идет о вводе элементов на форму.
9. TODD22 19 20.04.17 04:28 Сейчас в теме
(5)Тогда наверное надо было написать "для ускорения создания элементов на форме". А не "ускорения обработки элементов формы".
10. Xershi 1555 20.04.17 12:12 Сейчас в теме
(9) спасибо за комментарий, так и отредактирую!
3. comptr 35 19.04.17 09:20 Сейчас в теме

Порядок следования среди положительных и отрицательных элементов должен быть сохранен прежним.
...
Решение задачи 2:
Запись данных из формы в тип 1С "массив" и затем сортировка массива пузырьком.

Сортировка изменит порядок.
6. Xershi 1555 19.04.17 22:21 Сейчас в теме
(3) были сомнения по этому поводу. Но проверить позиции технически нельзя без написания велосипеда, оставил пока в таком виде как "есть".
11. scientes 295 03.11.22 11:36 Сейчас в теме
Задача 5
Функция ЗадачаМаксимальнаяДлинаЦепочки(вхСтрока) экспорт
	список=новый СписокЗначений;
	список.ЗагрузитьЗначения(СтрРазделить(вхСтрока,"1"));
	список.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
	
	возврат (СтрДлина(список.Получить(0)));
КонецФункции	
Показать
12. scientes 295 03.11.22 11:53 Сейчас в теме
3 задача

В 18 веке Эйлер показал , что любое четное совершенное число имеет вид 2^(n-1)*(2^n - 1). Таким образом, если число четное, то можно на первом шаге проверить это утверждение. Если оно не выполняется, то число несовершенное. Если выполняется, то надо искать сумму множителей числа. Есть ли нечетные совершенные числа пока неизвестно.
Оставьте свое сообщение