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

Простые задачки к собеседованию на программирование в 1С Предприятие

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

Мне неоднократно приходилось сталкиваться с подобными собеседованиями и различными задачками на них. Я даже непроизвольно стал коллекционировать некоторые из них. Иногда мне пишут новички с просьбой выложить ту или иную задачку. Что ж друзья, это действительно полезная вещь и я теперь буду время от времени их выкладывать, чтобы вы могли сами прорешать эти задачи.

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

Задача 1.

Объявлены две числовые переменные a и b. Необходимо сделать так, чтобы без объявления других переменных в результате работы алгоритма значения переменных поменялись местами. Например, если изначально a = 4, b = 5, то в результате алгоритма стало a = 5, b = 4. Применять можно только операции присваивания и арифметические операции с числами и значениями переменных.

Задача 2.

За один цикл вычислить значение функции F(n) = 1!*2!*3!…*n!., где n! = 1*2*3*…*n.

Задача 3.

Убрать условный оператор «Если» из следующего блока (А может принимать значение 0 или 1):

Если (А = 0) Тогда
B = 2;
Иначе
В = 1;
КонецЕсли;

Не допускается использование ЛЮБЫХ других условных операторов (например, ?(А = 0;2;1))

Задача 4.

Имеются два массива данных А и B (а и в – количества элементов массива). Известно, что оба массива упорядочены по возрастанию. Необходимо написать алгоритм, проходящий по этим массивам за 1 цикл вида:

Для Сч = 1 По а + в Цикл

и выдающий значения обоих массивов в порядке возрастания т.е. как бы объединив оба массива и отсортировав их по возрастанию.

Задача 5.

Имеется неупорядоченный массив из n различных целых чисел от 0 до n (0,1,…,j-1,j+1,….,n). Необходимо за один цикл определить недостающее число j.

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

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

Решения

Решение задачи 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. Если материал вам помог, поблагодарите автора, поставив звездочку!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *