Простые, но интересные задачки по программированию

Публикация № 70024

Разработка - Практика программирования

73
Простенькие задачки по программированию на сообразительность.
Зарядка для ума.

Прислал работодатель в качестве тестового задания. Некоторые уж совсем простые. Ответы опубликую позже в файле.

В комментариях наверняка будут ответы, так что кому интересно решить самостоятельно не проматывайте вниз.

Задача 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.

 

Ссылки по теме:

http://macedu.narod.ru/edu/summary/prog-exe.html

 

73

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. DoctorRoza 10.05.10 17:23 Сейчас в теме
Хорошие задачи .. )) .. а первая вообще из 10 класса средней школы!! :)
2. YVolohov 686 10.05.10 18:54 Сейчас в теме
Задачи понравились, +

Кстати для первой:
А = А + В;
В = А - В;
А = А - В;
Трям; minikos; Evg-Lylyk; +3 Ответить
64. JaneP 12 01.03.13 16:34 Сейчас в теме
(2) YVolohov,
Другое решение:
b=b-a
a=a+b
b=a-b
73. 20!8 01.02.18 11:14 Сейчас в теме
3. YVolohov 686 10.05.10 19:02 Сейчас в теме
Для третьей задачи всего одна строка:

B = 2 - A;
tornado_storm; timeforlive; freeek; Светлый ум; JaneP; odin777; Evg-Lylyk; +7 1 Ответить
17. e.kogan 1849 11.05.10 15:38 Сейчас в теме
(3) А вот и нет. B = 1+(A=0);
Kesak; i_a; KeyMaster; Evg-Lylyk; +4 Ответить
18. YVolohov 686 11.05.10 19:25 Сейчас в теме
Согласно условию задачи:
если А = 0 тогда В = 2
если А = 1 тогда В = 1

если же считать по формуле в (17)
если А = 0 тогда В = 1
если А = 1 тогда В = 2
19. Evg-Lylyk 2695 11.05.10 23:15 Сейчас в теме
(18) да не все правильно. В 1С Число(Истина) = 1; Число(Ложь) = 0 вот и результат
20. YVolohov 686 11.05.10 23:54 Сейчас в теме
(19) Действительно правильно. А я сначала не врубился.
22. ll13 1039 12.05.10 00:22 Сейчас в теме
(19),(20) Только вот зачем? Смотрите сами, зачем городить огород:
1 - операция сравнения
2 - неявное приведение типа (Булево->Число)
3 - Сложение

Ведь В зависит от А линейно => B = 2 - A более логично ... :)
23. Evg-Lylyk 2695 12.05.10 01:47 Сейчас в теме
(22) Да согласен сложнее. Зато тоже правильно и по другому.
И возможно человек просто не прочитал "А может принимать значение 0 или 1" и написал просто замену
Если (А = 0) Тогда
    B = 2;
Иначе
    В = 1;
КонецЕсли;

для любых значений А
70. premierex 25.06.16 15:43 Сейчас в теме
(22) ll13, см. мой предыдущий комментарий.
74. Jokemas 13.03.18 17:21 Сейчас в теме
(19)
(24) Зачем так сложно? В форме рисуем числовое поле, (число1 же), вбиваем туда любое число и считаем факториал.

Процедура КнопкаВыполнитьНажатие(Кнопка)

Счетчик = 1;
Факториал = 1;

Пока Счетчик <= Число1 Цикл

Факториал = Факториал * Счетчик;

Счетчик = Счетчик + 1;

КонецЦикла;

Сообщить(Факториал);

КонецПроцедуры
75. Jokemas 133 13.03.18 17:24 Сейчас в теме
(19)
(24) Зачем так сложно? В форме рисуем числовое поле, (число1 же), вбиваем туда любое число и считаем факториал.

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
        Счетчик = 1;
	Факториал = 1;
	Пока Счетчик <= Число1 Цикл
		Факториал = Факториал * Счетчик;
		Счетчик = Счетчик + 1;		
	КонецЦикла;
	
	Сообщить(Факториал);	
	
КонецПроцедуры
Показать
76. spacecraft 13.03.18 17:51 Сейчас в теме
(75) и чему там получится 0! ?
77. Jokemas 133 14.03.18 01:30 Сейчас в теме
(76)
единице, конечно =)

Переменная счетчик = 1, переменная факториал = 1, 1*1 сколько будет? =)))). По определению факториал 0 = 1, поэтому переменные начинаются с 1, исключая возможность умножения на 0 =)
78. Jokemas 133 14.03.18 02:30 Сейчас в теме
(75)
Так, ну отвечая на вопрос я описал только факториал, а само решение Задачи будет таким:
Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	Счетчик = 1;
	Факториал = 1;
	Результат = 1;
	
	М = Новый Массив;
		
	Пока Счетчик <= Число1 Цикл
		 
		Факториал = Факториал * Счетчик;
		М.Добавить(Факториал);
		Результат = Результат*М[Счетчик-1];
		Счетчик = Счетчик + 1;	
				
	КонецЦикла;
	Сообщить(Факториал);
	Сообщить(Результат);
	
КонецПроцедуры
Показать


Просто все эти факториалы фигачим в массив, который перемножаем.
55. Dolly_EV 267 17.05.10 10:18 Сейчас в теме
(18)(19)(20) в (17) проверка УСЛОВИЯ (Истина/Ложь), что по условию задачи низзя ;)
56. Evg-Lylyk 2695 17.05.10 11:35 Сейчас в теме
(55) По условии задачи нельзя использовать условных операторов например ?.
В решении B = 1+(A=0); нет условных операторов.
69. premierex 25.06.16 15:35 Сейчас в теме
(3) YVolohov, При А = 100, например, результат будет явно не верным.
4. YVolohov 686 10.05.10 19:36 Сейчас в теме
Задача №5

КоличествоЭлементов = Массив.Количество();
СуммаЧиселМассива = 0;
СуммаЧиселРяда = 0;

Для Счетчик = 1 По КоличествоЭлементов Цикл
СуммаЧиселМассива = СуммаЧиселМассива + Массив[Счетчик - 1];
СуммаЧиселРяда = СуммаЧиселРяда + Счетчик;
КонецЦикла;

Сообщить(СуммаЧиселРяда - СуммаЧиселМассива);
Evg-Lylyk; +1 Ответить
6. Evg-Lylyk 2695 10.05.10 20:48 Сейчас в теме
(4) Можно чуток попроще. Сумма чисел арифметической прогрессии равна (Начало+Конец) * (Количество / 2). Пример: 1-100; Сумма = (1+101) *(100/2) = 5050 т.к. пропущенное число только одно разница между суммой массива и полной прогрессией и будет то число.
pm74; YVolohov; +2 Ответить
5. kosilov 256 10.05.10 19:54 Сейчас в теме
ТекA=0;
ТекB=0;
КвоА = A.Количество();
КвоВ = B.Количество();
Для Сч = 1 По КвоА + КвоВ Цикл
    если ТекA<КвоА и (ТекB=КвоВ  ИЛИ A[ТекA]<B[ТекB]) тогда
        Сообщить("A[" + ТекA + "]=" + A[ТекA]);
        ТекA = ТекA + 1;
    иначе
        Сообщить("B[" + ТекB + "]=" + B[ТекB]);
        ТекB = ТекB + 1;
    КонецЕсли;
КонецЦикла;

Показать
el7; Evg-Lylyk; +2 Ответить
7. Поручик 4333 10.05.10 22:59 Сейчас в теме
>>> Прислал работодатель в качестве тестового задания.
Надо было послать этого работодателя. На три буквы, например в лес.
wowik; KapasMordorov; +2 Ответить
8. awa 2509 11.05.10 09:16 Сейчас в теме
Ну и для второй задачки ответ:
Функция F(N)
	Результат = 1;
	Для Ин = 2 По N Цикл
		Результат = Результат * Pow(Ин, N - Ин + 1);
	КонецЦикла;
	Возврат Результат;
КонецФункции // F(N)
pm74; Evg-Lylyk; +2 Ответить
9. Evg-Lylyk 2695 11.05.10 11:55 Сейчас в теме
(8) неверно
При N=4 правильно (1! = 1) * (2! =2) * (3! = 6) *(4! = 24) = 144
У вас результат 1*(2^3 = 8)*(3^2=9)*(4^1) = 288
10. awa 2509 11.05.10 12:02 Сейчас в теме
(9) 1*2*6*24=288 (с) calc
Или у нас калькуляторы разные? (в уме я считать не умею!)
11. Evg-Lylyk 2695 11.05.10 12:10 Сейчас в теме
(10) Сорри моя ошибка все верно
12. Nefertary 112 11.05.10 12:36 Сейчас в теме
13. marat_n 110 11.05.10 12:56 Сейчас в теме
Я даже догадываюсь, что за работодатель :)
Нормальный тест. Сразу отфильтровывают тех, кто подумать не может. Только присылать его как-то бессмысленно, ибо есть гугл и время не ограничено.
15. Evg-Lylyk 2695 11.05.10 13:43 Сейчас в теме
(13)
Я даже догадываюсь, что за работодатель

напиши пожалуйста в личку
Свою задачу эти задачки решают. Я допустим взял на заметку.
(12) Для A=0 B= 2
А у вас 2^0=1
14. YAN 1369 11.05.10 13:22 Сейчас в теме
Хорошая зарядка для ума, вот обработку даже захотелось сделать :)
Прикрепленные файлы:
ВО_задачки.epf
wowik; Светлый ум; Evg-Lylyk; +3 Ответить
16. ll13 1039 11.05.10 15:04 Сейчас в теме
1). A=A+B; B=A-B; A=A-B
2). Расчет факториала выносим в рекурсивную функцию(по условию задачи использование рекурсии не запрещено), а сами n! перемножаем в цикле.
3). B = 2 - A
Evg-Lylyk; +1 Ответить
21. ildarovich 6742 12.05.10 00:00 Сейчас в теме
Задача 4
ё = 0;
Для Сч  = 1 По А.Количество() + В.Количество() Цикл
	ж = (Сч - 1 - ё) = В.Количество() ИЛИ ё < А.Количество() И А[ё] < В[Сч - 1 - ё];
	Сообщить(?(ж, "А[" + ё + "]=" + А[ё], "В[" + (Сч - 1 - ё) + "]=" + В[Сч - 1 - ё]));
	ё = ё + ж
КонецЦикла
Evg-Lylyk; +1 Ответить
30. ildarovich 6742 12.05.10 09:54 Сейчас в теме
Вот выпендрЁЖный вариант (21), если немного отступить от "буквы" задания
ёж = 0; 
Для уж  = 0 По А.Количество() + В.Количество() - 1 Цикл 
   що = (уж - ёж) = В.Количество() ИЛИ ёж < А.Количество() И А[ёж] < В[уж - ёж]; 
   Сообщить(?(що, "а" + ёж + "=" + А[ёж], "в" + (уж - ёж) + "=" + В[уж - ёж])); 
   ёж = ёж + що 
КонецЦикла

Можно еще сократить одну строку, если дважды вычислять "що".
А по скорости было бы сравнить интересно...
24. Jogeedae 38 12.05.10 02:56 Сейчас в теме
:!: код может и ошибочный, но алгоритм мне нравицо :D
Задача 4:
Для сч = 1 По ?(а>б,а,б) Цикл
	Асч = ?(сч>а,неопределено,А[сч]);
	Бсч = ?(сч>б,неопределено,Б[сч]);
	Сообщить(?(Асч>Бсч,Асч,Бсч));
	Сообщить(?(Асч<Бсч,Асч,Бсч));
КонецЦикла;


*точно ошибочный :)

вот вроде бы правильное решение:
счА = 0;
счБ = 0;
Пока НЕ (счА=а И счБ=б) Цикл
	Если (счА<а) И ((мА[счА] <= мБ[счБ-(счБ=б)]) ИЛИ (счБ=б)) Тогда
		Сообщить(мА[счА]);
		счА = счА + 1;
	КонецЕсли;
	Если (счБ<б) И ((мБ[счБ] <= мА[счА-(счА=а)]) ИЛИ (счА=а)) Тогда
		Сообщить(мБ[счБ]);
		счБ = счБ + 1;
	КонецЕсли;
КонецЦикла;
Показать
26. Jogeedae 38 12.05.10 05:40 Сейчас в теме
в (24) по сравнению с вариантом (21) итераций как будто меньше :D
27. Креатив 57 12.05.10 07:58 Сейчас в теме
вероятно так заработает тоже, но по скорости уступит (24)
счА = 0;
счБ = 0;
вра = ма[1];
врб = мб[1];
Пока 1=1 Цикл
   Если вра <  врб  Тогда
      Сообщить(вра);
      счА = счА + 1;
   Иначе
      Сообщить(врб);
      счБ = счБ + 1;
   КонецЕсли;
   Если счА>а  Тогда
       вра = мб[б];
   Иначе
       вра = ма[счА];
   КонецЕсли;
   Если счБ>б  Тогда
       врб = ма[а];
   Иначе
       врб = мб[счБ];
   КонецЕсли;
   Если (счБ>б) и (счА>а)  Тогда
      Прервать;
   КонецЕсли;
КонецЦикла;
Показать

25. costy_admin 44 12.05.10 05:36 Сейчас в теме
// чА число А
// чБ Число Б
чА = (чА+чБ)-чА;
чБ = (чА+чБ)-чБ;
// НчА конечный результат число А
// НчБ конечный результат числа Б
при учете что числа положительные....

28. salex10 12.05.10 08:55 Сейчас в теме
Для (25) 1-я задача, я так понимаю
чА = (чА+чБ)-чА;
чБ = (чА+чБ)-чБ;
- в последнем варажении уже чА=чБ, поэтому чБ будет = чБ

мое решение:
А = А - Б
Б = Б + А
А = Б - А
annak2980; Evg-Lylyk; +2 Ответить
29. salex10 12.05.10 09:10 Сейчас в теме
2-я задача - рекурсия скорее всего
3-я: В = 2 - А
4-я:
счА = 1;
счВ = 1;
Для Сч = 1 По а + в Цикл
Если счА > а Тогда
Если счВ > в Тогда
Прервать;
Иначе
Сообщить(В[счВ]);
счВ = счВ + 1;
Конецесли;
ИначеЕсли А[счА] < B[счВ] Тогда
Сообщить(А[счА]);
счА = счА + 1;
Иначе
Сообщить(В[счВ]);
счВ = счВ + 1;
Конецесли;
Конеццикла;
31. Spitfire 95 12.05.10 10:25 Сейчас в теме
вторая задача легко пишется и без рекурсии:
F_n = 1;
n_fact = 1;
i = 1;
while i<=n do
   n_fact = n_fact * i;
   F_n = F_n * n_fact;
   i = i +1;
end;
Return F_n;
Показать
freeek; Elolaz; Evg-Lylyk; +3 Ответить
36. Evg-Lylyk 2695 12.05.10 11:48 Сейчас в теме
(31) Я решил аналогично
РезультатФункции = 1; ФакториалДляПоследнегоСч = 1;
Для Сч = 2 По Н Цикл
	ФакториалДляПоследнегоСч = ФакториалДляПоследнегоСч * Сч;
	РезультатФункции = РезультатФункции * ФакториалДляПоследнегоСч;
КонецЦикла;

(32) в решении
A=A+B;....
есть момент - переполнение (выход за границы типа) хотя в 1С это наверно не актуально ну в вашем решении этот момент более актуален
(33) Правильно конечно, но в 1С нет XOR (вариант с XOR более универсален он обменяет значениями не только числа)
32. Vasilina2009 12.05.10 10:26 Сейчас в теме
1. Решение: при b<>0
a = a*b
b=a/b
a=a/b
user751607; karagiosis; Evg-Lylyk; +3 Ответить
33. Spitfire 95 12.05.10 10:29 Сейчас в теме
для первой задачи, если нужно поменять местами не числовые переменные (а произвольные двоичные данные), то можно написать так:
a = a xor b;
b = b xor a;
a = a xor b;

тут xor - оператор логического исключающего ИЛИ
34. Vashenko 12.05.10 10:59 Сейчас в теме
1. a=a*b=20; b=a/b=5; a=a/b=4
2. F=1; Для K=1 По n Цикл F=F*(K)^(n-K+1) КонецЦикла
3. B=2-A
4. Для Сч=1 По а+b Цикл
ТекНомерА=0; ТекНомерB=0;
Если А[ТекНомерА+Сч]>B[ТекНомерB+Сч] Тогда
ТекНомерА=ТекНомерА+1; Сообщить(А[ТекНомерА]);
Иначе
ТекНомерB=ТекНомерB+1; Сообщить(B[ТекНомерB]);
КонецЕсли
37. Evg-Lylyk 2695 12.05.10 11:54 Сейчас в теме
(34), (35) неверно 4
Вынести за цикл:
ТекНомерА=0; ТекНомерB=0;

Заменить
Если А[ТекНомерА+Сч]>B[ТекНомерB+Сч] Тогда

на
Если А[ТекНомерА]<B[ТекНомерB] Тогда

по возрастанию
и еще учесть что массив А полностью меньше массива Б
40. Vashenko 12.05.10 13:20 Сейчас в теме
(37) спасибо за поправки. накалякал просто идеи без проверки :)
35. Vashenko 12.05.10 11:04 Сейчас в теме
1. a=a*b=20; b=a/b=5; a=a/b=4
2. F=1; Для K=1 По n Цикл F=F*(K)^(n-K+1) КонецЦикла
3. B=2-A
4. Для Сч=1 По а+b Цикл
ТекНомерА=0; ТекНомерB=0;
Если А[ТекНомерА+Сч]>B[ТекНомерB+Сч] Тогда
ТекНомерА=ТекНомерА+1; Сообщить(А[ТекНомерА]);
Иначе
ТекНомерB=ТекНомерB+1; Сообщить(B[ТекНомерB]);
КонецЕсли
38. chea06 131 12.05.10 12:41 Сейчас в теме
вероятно был у этого же работодателя, только решал эти задачи на месте на листке. И кстати в задании не сказано, что задачи надо решать методами 1С :)
39. vet7777 517 12.05.10 12:55 Сейчас в теме
в 3 задаче я не сразу заметил условие что "А может принимать значение 0 или 1"
и решил ее при условии, что А может принимать любое значение - положительное, отрицательное или 0.

а вы попробуйте! задача гораздо интереснее получается. 8-)
41. ll13 1039 12.05.10 13:47 Сейчас в теме
(39) Это очень плохо, если Вы даже условие прочитать не можете правильно, что же дальше то будет, когда до реализации дойдёт :o
Я бы такого работника не взял :D
44. e.kogan 1849 12.05.10 15:53 Сейчас в теме
(41) Жизнь научила, что думать надо сразу универсально :) иначе бы А было Булевым.
Evg-Lylyk; +1 Ответить
46. ll13 1039 12.05.10 17:02 Сейчас в теме
(44) В институте научили, что самое главное правильно понять и усвоить условия задачи.
Если это сделано - то пол задачи решено :)
42. vet7777 517 12.05.10 14:02 Сейчас в теме
я просто усложнил задачу...
мне по барабану что ты там думаешь, я бы тебя тоже не взял 8-)
ты реши с тем условием, что я написал, потом пальцы кидай ;)
43. Necytij 12.05.10 15:45 Сейчас в теме
Задачки все десткие, но, честно говоря, над последней пришлось подумать минутку... :oops:
45. e.kogan 1849 12.05.10 16:29 Сейчас в теме
На четвёртую задачку: не оттестированный, но вроде корректный вариант
ТекущийЭлементА=0;
ТекущийЭлементБ=0;
КвоА=А.Количество();
КвоБ=Б.Количество();
ТекстВыполнить="ТекущийЭлемент#=ТекущийЭлемент#+1;
|Сообщить(""число ""+#[ТекущийЭлемент#]+"" - ""+й+"" элемент упорядоченного массива, ""+ТекущийЭлемент#+"" элемент массива #"")";
Для й=0 по КвоА + КвоБ Цикл
	ВыводимА=Не (ТекущийЭлементА>КвоА);
	ВыводимБ=Не (ТекущийЭлементБ>КвоБ);
	Если Не (ВыводимА или ВыводимБ) Тогда Прервать; КонецЕсли; //оба массива кончились
	Если ВыводимА и ВыводимБ Тогда 
		ВыводимА=(А[ТекущийЭлементА]>Б[ТекущийЭлементБ]);
	КонецЕсли;
	Выполнить(СтрЗаменить(ТекстВыполнить,"#",?(ВыводимА,"А","Б")));		
КонецЦикла;
Показать

47. e.kogan 1849 12.05.10 17:06 Сейчас в теме
(45) Однако при числовом реквизите А "защиту от дурака" лучше поставить ;) мало ли что пользователь введёт? Или до того проверку влепить, или делать неявным приведением значения.
Во всяком случае наши преподаватели обязательно попробуют ввести при проверке А=3 8-)
48. o.nikolaev 12.05.10 22:26 Сейчас в теме
Я тоже их на месте решал. И работодатель известный :) Что-то не верю в то что их прислали... ;)
49. breyn 13.05.10 09:48 Сейчас в теме
50. Kondrat 10 13.05.10 10:14 Сейчас в теме
Для первой задачки:
не так изящно, но все же....

а=Строка(а)+"*"+Строка(б);
б=Число(Лев(а,Найти(а,"*")-1));
а=Число(Сред(а,Найти(а,"*")+1));
51. Hitcher 86 13.05.10 15:26 Сейчас в теме
Задача 3. Решение для любого значения А :D

Попытка
В = 1/А;
В = 2;
Исключение
В = 1 ;
КонецПопытки;
dmbarchenkov; freeek; VoShk; +3 Ответить
52. ll13 1039 13.05.10 16:55 Сейчас в теме
(51) Ну ты дружок замутил ... Попытка ... Исключение ... КонецПопытки
Одна из самых медленных конструкций в 1С ...
53. Поручик 4333 13.05.10 17:23 Сейчас в теме
54. vet7777 517 14.05.10 08:47 Сейчас в теме
а теперь решите в таком варианте:
Написать функцию B=F(A) на встроенном языке 1С, при следующих условиях:
1. если А=0, то B=2, иначе B=1
2. полученное однострочное выражение, должно выполняться в табло 1С при различных значениях A
3. не допускается использование условных операторов (например , ?(А = 0;2;1)), не допускается использование попыток/исключений (что в общем то в табло и не получится :).

PS: мы в конторе уже напридумывали 3 варианта решения.
57. maxis33 42 24.05.10 09:50 Сейчас в теме
Мне тоже такие присылали по почте. Довольно занятно было порешать, даже без особой цели устроиться к ним на работу:)
58. vodyanoy 27.05.10 17:14 Сейчас в теме
Да, работодатель известный. Года 3 назад у них в офисе я эти задачки решал на листочке. Странно, что они их до сих пор совсем не изменили.
По поводу 2-й задачки. Тут кто-то рекурсию предлагал. Я тоже тогда рекурсию замутил. Меня, естественно, завернули с этой мыслью несуразной :D , т.к. циклов должно быть по условию всего ОДИН, а рекурсия это уже совсем не один. Не додумался тогда сходу, ну да ладно.
59. Mogidin 128 04.06.10 10:54 Сейчас в теме
1) # a=4 b=5
a=a+b # a=9 b=5
b=a-b # a=9 b=4
a=a-b # a=5 b=4

2) Результат=1; Элемент=1;
Для Инд=1 По Н Цикл
Элемент=Элемент*Инд;
Результат=Результат*Элемент;
КонецЦикла;
# Результат = F(n)

3) B=2-A

4) Инд1=1; Инд2=1; Эл1=А[Инд1]; Эл2=В[Инд2];
Для Инд=1 По а+в Цикл
Если (Эл1<Эл2) И (Инд1<а) Тогда
Сообщить(Эл1); Инд1=Инд1+1; Эл1=А[Инд1];
Иначе
Сообщить(Эл2); Инд2=Инд2+1; Эл2=В[Инд2];
КонецЕсли;
КонецЦикла;

5) Контроль=0; Сумма=0;
Для Инд=1 По Н Цикл
Контроль=Контроль+Инд;
Сумма=Сумма+А[Инд];
КонецЦикла;
Пропавший=Контроль-Сумма;

*везде подразумевается индексация массивов с 1
odin777; rom-x; Evg-Lylyk; +3 Ответить
60. romech 3 15.11.10 11:31 Сейчас в теме
1) подразумевается, что оба числа не равны нулю, в другом случае делается проверка и решение очевидно. Итак решение: b=b*a; a=b/a; b=b/a
2)Значение = 1;
Для н=1 по нн Цикл
Значение = Значение * Значение * н;
н = н + 1;
КонецЦикла
3)В = 2 - А
4) и 5) думаю много похожих решений уже есть. А теперь почитаю, чего написали другие =)
61. Oleg_nsk 22.11.10 10:56 Сейчас в теме
Задача №5

Сум = А.Количество();
Для н = 0 По А.Количество()-1 Цикл
Сум = Сум - А[н] + н;
КонецЦикла;
Сообщить(Сум);
62. Oleg_nsk 22.11.10 11:00 Сейчас в теме
Задача №4

ИндА = 0;
ИндБ = 0;
Для н = 1 По (КолА + КолБ) Цикл
Если (КолА = ИндА) и (КолБ = ИндБ) Тогда
Прервать;
ИначеЕсли (КолА = ИндА) и Не (КолБ = ИндБ) Тогда
Сообщить(Б[ИндБ]);
ИндБ = ИндБ+1;
ИначеЕсли Не (КолА = ИндА) и (КолБ = ИндБ) Тогда
Сообщить(А[ИндА]);
ИндА = ИндА+1;
ИначеЕсли А[ИндА] < Б[ИндБ] Тогда
Сообщить(А[ИндА]);
ИндА = ИндА+1;
ИначеЕсли А[ИндА] > Б[ИндБ] Тогда
Сообщить(Б[ИндБ]);
ИндБ = ИндБ+1;
ИначеЕсли А[ИндА] = Б[ИндБ] Тогда
Сообщить(А[ИндА]);
Сообщить(Б[ИндБ]);
ИндА = ИндА+1;
ИндБ = ИндБ+1;
КонецЕсли;
КонецЦикла;
63. rom-x 152 06.10.11 15:16 Сейчас в теме
1) а = а + (b - a)
b = b - (b - a)

2) Перем Факт, Рез, Знач;
Рез = 1; Знач = 1;
Для ин= 1 По Факт Цикл
Знач = Знач*ин;
Рез = Рез*Знач;
КонецЦикла;

3) B = (B + A) - A
71. premierex 25.06.16 15:46 Сейчас в теме
(63) rom-x,
2) Перем Факт, Рез, Знач;
Рез = 1; Знач = 1;
Для ин= 1 По Факт Цикл
Знач = Знач*ин;
Рез = Рез*Знач;
КонецЦикла;

Переменная Факт не инициализирована, 1С сразу выдаст сообщение об ошибке о невозможности приведения переменной Факт к типу "Число".
65. gangstar94 28.11.14 10:28 Сейчас в теме
Ответ на первую задачу из 10 класса :
А=4;
Б=5;
Если А=4 тогда
А=5 ;
Иначе Сообщить("Условие не выполнено") ;
КонецЕсли ;
Если Б=5 тогда
Б=4
Иначе Сообщить ("Условие не выполнено") ;
КонецЕсли ;
АА="А="+А ;
ББ="Б="+Б ;
Сообщить (АА);
Сообщить (ББ);
66. Evg-Lylyk 2695 28.11.14 12:52 Сейчас в теме
(65)
Задача 1.
Объявлены две числовые переменные a и b. Необходимо сделать так, чтобы без объявления других переменных в результате работы алгоритма значения переменных поменялись местами. Например, если изначально a = 4, b = 5, то в результате алгоритма стало a = 5, b = 4. Применять можно только операции присваивания и арифметические операции с числами и значениями переменных.
Решение:
b=b-a
a=a+b
b=a-b
67. i_a 11.04.15 13:40 Сейчас в теме
В = Число((А = 0)+1)
, для любого значения А.
Спасибо автору данной публикации.
68. KapasMordorov 428 25.06.16 10:40 Сейчас в теме
http://www.forum.mista.ru/topic.php?id=368453&page=1
Пост 6.
Всё-таки надо было гуглить и тогда бы прочитал местный пост Поручика.
79. Jokemas 133 16.03.18 21:54 Сейчас в теме
5 Задача
Имеется НЕУПОРЯДОЧЕННЫЙ массив из n различных целых чисел от 0 до n (0,1,…,j-1,j+1,….,n). Необходимо за один цикл определить недостающее число j:
Ну ок, нигде не написано, что нельзя его упорядочить...

Функция СортировкаСпискомЗначений(Массив) Экспорт
	м = новый СписокЗначений;
	М.ЗагрузитьЗначения(Массив);
	м.СортироватьПоЗначению(НаправлениеСортировки.Возр);
	Возврат М.ВыгрузитьЗначения();
КонецФункции
//------------------------
Процедура КнопкаВыполнитьНажатие(Кнопка)

М = Новый Массив;

М.Добавить(0);                    
М.Добавить(2);
М.Добавить(5);
М.Добавить(7);
М.Добавить(6);
М.Добавить(1);
М.Добавить(3);
М.Добавить(4);
М.Добавить(8);
М.Добавить(10);

уМ = СортировкаСпискомЗначений(М);

Для Счетчик = 1 По уМ.Количество() - 1 Цикл 
Если уМ[Счетчик] - уМ[Счетчик-1] > 1  Тогда
	Результат = уМ[Счетчик]-1;
	Сообщить("Не хватает: " + Результат);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
80. kostya_whiskas 70 19.06.18 17:21 Сейчас в теме
(79)
n = М.Количество()+1;
k = (n+1)*n/2;
Для Сч = 0 По n-2 Цикл
k = k - М[Сч];
КонецЦикла;
Сообщить(k);

где (n+1)*n/2; - сумма всех чисел в массиве
вычитанием элементов из этой суммы определяем недостающее число
stas1976; +1 Ответить
81. wowkos 11.10.19 14:04 Сейчас в теме
Оставьте свое сообщение

См. также

Приватный блокчейн и 1С популярно 6

Статья no Нет файла Бесплатно (free) Практика программирования Блокчейн

Две предыдущие публикации на эту тему были сфокусированы преимущественно на технической стороне вопроса. Кроме того, их содержание оказалось понятным не каждому специалисту. В этой статье я постараюсь обяснить для всех и, что говорится, «на пальцах»: что такое приватный блокчейн, когда и зачем его следует применять и на что обратить внимание при использовании этой технологии в 1С.

02.09.2019    1798    mkalimulin    140       

Кодогенерация и метагенерация в 1С 25

Статья Программист Нет файла Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

В своем докладе на конференции INFOSTART EVENT 2018 EDUCATION Дмитрий Белозеров рассказал о разработке инструмента, позволяющего программно работать с метаданными 1С и писать скрипты для выполнения тех же действий, которые выполняет разработчик в конфигураторе –  с какими сложностями и нюансами пришлось столкнуться, и что получилось в итоге.

26.08.2019    4359    kirovsbis    28       

Интеграция сценарного тестирования в процесс разработки 81

Статья Программист Нет файла Бесплатно (free) Практика программирования Разработка

Разработчик системы «Тестер» Дмитрий Решитко в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION показывает, что процесс тестирования можно очень плотно интегрировать в процесс разработки, что внедрение тестирования – это возможность развития программиста как такового, позволяющая ему упорядочивать ход мыслей и оставаться «в фокусе». Навыки построения процесса кодирования на стыке с тестированием сокращают время на концентрацию, освобождают от страха перед изменениями и улучшают память разработчика.

08.07.2019    4822    grumagargler    7       

Управляй качеством кода 1С с помощью SonarQube 234

Статья Программист Нет файла Россия Бесплатно (free) Практика программирования

Управляй техническом долгом проектов 1С с помощью SonarQube. В статье рассматривается пример применения SonarQube при разработке.

07.07.2019    18146    olegtymko    196       

Выгрузка документа по условию 5

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    5621    m-rv    2       

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    8320    m-rv    16       

О времени и 1С 208

Статья Программист Нет файла Бесплатно (free) Практика программирования Разработка

Основы и особенности работы со временем в 1С. Как избавиться от боли при работе в разных часовых поясах. Что такое момент времени. И другое.

01.04.2019    16669    YPermitin    59       

Пример создания bridge (http api - tcp) для ККТ "Касса №1" ("К1-Ф") 5

Статья Системный администратор Программист Нет файла Россия Кассовые операции Бесплатно (free) Практика программирования Разработка ККМ

Пример создания bridge (http api - tcp) для ККТ "Касса №1" ("К1-Ф"). Данная статья будет полезна интеграторам, программистам, тем кто работает (интегрирует, разрабатывает) различное ТО либо железки. Версия и релиз технологической платформы не имеет значения.

17.03.2019    3243    dmarenin    0       

Быстрее чем INSERT! BULK-операции и примеры использования 112

Статья Системный администратор Программист Нет файла Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Разработка Внешние источники данных Перенос данных из 1C8 в 1C8

Microsoft SQL Server поддерживает так называемые BULK-операции, используемые для быстрого изменения больших объемов данных в базе. В статье пойдет речь о практических примерах их использования. Все примеры сделаны в контексте платформы 1С (а как иначе).

09.03.2019    10717    YPermitin    38       

Как писать понятные коммиты 68

Статья Программист Нет файла Россия Бесплатно (free) Практика программирования Разработка

Как писать сообщения коммитов так, чтобы потом не было мучительно больно.

06.03.2019    8177    Scorpion4eg    35       

Расширяем свой багаж 2

Статья Программист Нет файла Бесплатно (free) Практика программирования Разработка

Алгоритм решения возможной нетиповой задачи на собеседовании.

29.01.2019    3552    scientes    15       

Подготовка ребёнка* к ЕГЭ по информатике. Часть четвертая 4

Статья Программист Нет файла Бесплатно (free) Практика программирования Разработка

Решение систем логических уравнений повышенного уровня сложности.

25.01.2019    3277    vasilev2015    0       

Подготовка ребенка* к ЕГЭ по информатике. Часть вторая 2

Статья Программист Нет файла Бесплатно (free) Практика программирования

Примеры на Паскале. Если сам родитель* - поддержи ! Если сам водила - посигналь !

19.01.2019    3646    vasilev2015    0       

Подготовка к ЕГЭ сына - школьника (по информатике) 9

Статья Программист Нет файла Бесплатно (free) Практика программирования

Примеры на Паскале. Если сам отец - поддержи ! Если сам водила - посигналь !

17.01.2019    4099    vasilev2015    50       

Быстрая отладка экранных форм документов и справочников 19

Статья Программист Нет файла Бесплатно (free) Практика программирования

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

18.12.2018    4841    milkers    19       

1С + asterisk (автоматический обзвон) часть 1 38

Статья Системный администратор Программист Нет файла Россия Бесплатно (free) Практика программирования WEB Телефония, SIP

Пример реализации автообзвона (с обработкой ответа на отвечающей стороне) с использованием ami asterisk. Данная статья может быть полезна программистам, интеграторам, администраторам. Версия и релиз технологической платформы не имеет значения.

29.11.2018    7673    dmarenin    9       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 127

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    22052    ids79    40       

Развитие 1С программиста 51

Статья Программист Нет файла Бесплатно (free) Практика программирования Личная эффективность

Делюсь своим опытом и видением развития 1С программиста.

17.10.2018    14363    pashamak    62       

Вспомогательные инструкции в коде 1С 105

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    21367    tormozit    100       

Записки про metadata.js 54

Статья Программист Нет файла Бесплатно (free) Практика программирования

Отличительные особенности разработки на metadata.js

31.07.2018    9528    1c-intelligence    59       

Учебный курс. Повышение качества разработки. Ошибки программы 97

Статья Программист Нет файла Бесплатно (free) Практика программирования Математика и алгоритмы Рефакторинг и качество кода

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Лекции № 3,4,5. Эти лекции посвящены ошибкам программ, их классификации и способам исправления

10.07.2018    16149    Артано    92       

Автоматизируй это! 150

Статья Системный администратор Программист Нет файла Бесплатно (free) Практика программирования

Здравствуйте. Меня зовут Виталий Онянов. Я работаю в компании ФТО. Мы занимаемся внедрением и поддержкой ERP-систем, в том числе и на 1С. Сегодня я хотел бы поделиться нашим опытом автоматизации своих задач и рассказать о том, какие регламентные задания мы настраиваем на серверах наших клиентов. Возможно, кому-то покажется, что это совсем простые и очевидные вещи, но я в своей работе периодически вижу разработчиков, которые делают какие-то задачи руками изо дня в день, и мне бы хотелось донести до них мысль о том, что многие из этих задач можно и нужно автоматизировать.

02.07.2018    16610    Tavalik    12       

Повышаем эффективность разработки правил обмена 124

Статья Программист Нет файла v8 КД ОС Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    19938    olegtymko    47       

Как сделать запрос на изменение данных 75

Статья Программист Нет файла v8 v8::Запросы 1cv8.cf Бесплатно (free) Практика программирования

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    21923    m-rv    21       

Учебный курс. Повышение качества разработки. Вводная лекция, часть 2 49

Статья Программист Нет файла Бесплатно (free) Практика программирования Математика и алгоритмы

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Лекция №2. Эта лекция посвящена абстракциям, их свойствами и практическому применению в рамках классических парадигм программирования.

24.05.2018    11039    Артано    36       

Строим графы средствами 1С (без GraphViz) 43

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    17742    slozhenikin_com    19       

Распределение расходов пропорционально продажам 9

Статья Программист Пользователь Нет файла v8 v8::ОУ УТ10 УУ Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Бесплатно (free) Практика программирования

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    11898    Rustig    9       

Велостыли: Регламентные задания 16

Статья Программист Нет файла Россия Бесплатно (free) Практика программирования

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

09.05.2018    10581    dsdred    28       

Веб-разработка на 1Script. Глава 2 64

Статья Программист Нет файла Бесплатно (free) Практика программирования WEB

Продолжение учебника по веб-разработке с помощью фреймворка Oscript.Web. Структура приложения, основные объекты, URL-маршрутизация, универсальная консоль серверов 1С.

22.04.2018    12447    Evil Beaver    27       

Доброе программирование, или сказки для программистов 8

Статья Программист Нет файла Бесплатно (free) Практика программирования

Я попробовал составить список хорошего и доброго, что помогает читающему код жить легче. Возможно, остальные программисты меня поддержат))

03.03.2018    6425    Gladkov_Anton    9       

Минимализмы 3 354

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    36855    ildarovich    44       

Веб-разработка на 1Script. Глава 1 250

Статья Программист Нет файла Бесплатно (free) Практика программирования

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

12.02.2018    26024    Evil Beaver    97       

Версионирование правил обмена в Git 64

Статья Программист Нет файла Windows Бесплатно (free) Практика программирования

Статья рассказывает о принципах работы скриптов, позволяющих применять систему контроля версий git и подход gitflow для версионирования правил обмена.

15.12.2017    13209    bforce    22