Бухгалтерия / Говнокод #8128 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
Итак, у вас есть два стека с ограничением на размер - N. Стеки поддерживают операции push, pop, top.
pop пустого стека, как и push заполненного стека вызывает соответствующее исключение.
Необходимо из этих двух стеков смоделировать стек с таким же размером, но с дополнительным свойством -\
push заполненного стека вызывает затирание последнего элемента стека, push(41,[1,2,3]) -> [41,1,2] ,\
где N=3.
Время пошло. Язык программирования любой.

Да, это не говнокод, но 90% кандидатов не могут ее решить. (Наверное, потому, что язык собеседования - 1С)

alexoy alexoy, (Updated )

Комментарии (78, +78)

Бухгалтерия / Говнокод #8111 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
Я подхожу к терминалу и включаю 1С.
Сегодня пояснять ничего не надо.
Не звенит "Поясните мысль"
В желтом пламени гори, ненавижу, 1С!

Накипело

alexoy alexoy, (Updated )

Комментарии (10, +10)

Бухгалтерия / Говнокод #8090 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
Процедура ПриОткрытии()	
	Таймер();
	ПодключитьОбработчикОжидания("Таймер",1);	 
КонецПроцедуры

Процедура Таймер()	
	Если ИспользоватьНапоминание Тогда
		Если ТекущаяДата() = ВремяНапоминания Тогда
			Предупреждение(ТекстНапоминания);
		КонецЕсли;
	КонецЕсли;
	Если НачалоДня(ТекущаяДата()) + 13*60*60 > ТекущаяДата() Тогда
		ЗаголовокДляУстановки = Формат(Дата('00010101') + (НачалоДня(ТекущаяДата()) + 13*60*60 - ТекущаяДата()), "ДФ=HH:mm:ss");
		Если Прав(ЭтаФорма.Заголовок,1) <> "\" и Прав(ЭтаФорма.Заголовок,1) <> "|" и Прав(ЭтаФорма.Заголовок,1) <> "/" и Прав(ЭтаФорма.Заголовок,1) <> "-" тогда
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " \";
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "\" Тогда
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки + "  |"; 
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "|" Тогда
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " /";
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "/" Тогда
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " --";
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "-" Тогда   
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " \";
		КонецЕсли;	
	ИначеЕсли НачалоДня(ТекущаяДата()) + 14*60*60 > ТекущаяДата() тогда		
		Если Прав(ЭтаФорма.Заголовок,1) <> "\" и Прав(ЭтаФорма.Заголовок,1) <> "|" и Прав(ЭтаФорма.Заголовок,1) <> "/" и Прав(ЭтаФорма.Заголовок,1) <> "-" тогда
			ЭтаФорма.Заголовок = "??:??:??" + " \"; 
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "\" Тогда
			ЭтаФорма.Заголовок = "??:??:??" + "  |"; 
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "|" Тогда
			ЭтаФорма.Заголовок = "??:??:??" + " /";
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "/" Тогда
			ЭтаФорма.Заголовок = "??:??:??" + " --";
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "-" Тогда   
			ЭтаФорма.Заголовок = "??:??:??" + " \";
		КонецЕсли;
	ИначеЕсли НачалоДня(ТекущаяДата()) + 18*60*60 > ТекущаяДата() Тогда
		ЗаголовокДляУстановки = Формат(Дата('00010101') + (НачалоДня(ТекущаяДата()) + 18*60*60 - ТекущаяДата()), "ДФ=HH:mm:ss");
		Если Прав(ЭтаФорма.Заголовок,1) <> "\" и Прав(ЭтаФорма.Заголовок,1) <> "|" и Прав(ЭтаФорма.Заголовок,1) <> "/" и Прав(ЭтаФорма.Заголовок,1) <> "-" тогда
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки  + " \"; 
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "\" Тогда
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки + "  |"; 
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "|" Тогда
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " /";
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "/" Тогда
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " --";
		ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "-" Тогда   
			ЭтаФорма.Заголовок = ЗаголовокДляУстановки + " \";
		КонецЕсли;
	Иначе
		Если Формат(ТекущаяДата(), "ДФ=dddd") = "пятница" тогда
			Если Прав(ЭтаФорма.Заголовок,1) <> ")" тогда
				ЭтаФорма.Заголовок = "С Пятницей!!! :)";
			Иначе
				ЭтаФорма.Заголовок = "С Пятницей!!! xD";
			КонецЕсли; 
		Иначе
			Если Прав(ЭтаФорма.Заголовок,1) <> "\" и Прав(ЭтаФорма.Заголовок,1) <> "|" и Прав(ЭтаФорма.Заголовок,1) <> "/" и Прав(ЭтаФорма.Заголовок,1) <> "-" тогда
				ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + " \"; 
			ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "\" Тогда
				ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + "  |"; 
			ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "|" Тогда
				ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + " /";
			ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "/" Тогда
				ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + " --";
			ИначеЕсли Прав(ЭтаФорма.Заголовок,1) = "-" Тогда   
				ЭтаФорма.Заголовок = "ХХ.ХХ.ХХ" + " \";
			КонецЕсли;	
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

Текст процедуры обработчика ожидания обработки, показывающей время до обеда и до окончания рабочего дня.

EvilWisp EvilWisp, (Updated )

Комментарии (5, +5)

Бухгалтерия / Говнокод #8061 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
Лично я 1С не люблю. И вообще лучше не говорить об этом, настроение портится...
Цикл ВЦикле Открывающая_Скобка От Ноль до Двадцать_Один Закрывающая_Скобка
Начало_цикла
Печать Кавычка Один С - Обратный_Слеш Кавычка Говно Обратный_Слеш Кавычка Кавычка Точка_С_Запятой
Конец_цикла

Конечно это фантазия, но представьте что случилос бы, если бы 1С писали люди, \
 которые не смогли осилить не только английский язык, но и цифры и знаки пунктуации.
К тому же бухгалтерия предлагает отвратительнейшие задачи, которые предлагается решать на отвратительнейшем языке.
Бюрократический ад пишется на бюрократическом языке. Зачем английский язык, если есть русский?
Помоему это какая-то особая программа по порабощению русского народа. Русские дети хотели стать космонавтами,\
 а их осадили прямо в кресло с мерцающим монитором и программой такой бюрократически-желтой иконкой.
Боже упаси вас от продукции этой компании!

alexoy alexoy, (Updated )

Комментарии (22, +22)

Бухгалтерия / Говнокод #8046 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
//делает паузу с округлением до целого числа секунд - 1000, 2000 и т.д.
//Использует ВводСтроки с таймаутом, который работает даже если окно теряет фокус ввода.
Процедура Sleep(Таймаут)
    Предупреждение("Таймаут " + Строка(Таймаут) + " секунд", Таймаут, "Sleep");
	ОбработкаПрерыванияПользователя();
КонецПроцедуры  

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	Если НЕ ВремяНачалаВыполнения = Дата(1,1,1) Тогда
		Пока Истина = Истина Цикл
			ОбработкаПрерыванияПользователя();
			Sleep(45); //Шаг 45 секунд.	
			Если Час(ТекущаяДата()) = Час(ВремяНачалаВыполнения) И Минута(ТекущаяДата()) >= Минута(ВремяНачалаВыполнения) Тогда
				Прервать;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
        
        //Далее идет обработка перепроведения документов

КонецПроцедуры

Интересная версия выполнить процедуру по времени

AndreyEvtyushin AndreyEvtyushin, (Updated )

Комментарии (5, +5)

Бухгалтерия / Говнокод #7995 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
Процедура Кнопка1Нажатие(Элемент)
	// Вставить содержимое обработчика.
	//орг=элементыформы.организация.Значение;

запрос1=новый запрос;
запрос1.текст=""выбрать * из регистрсведений.регионыорганизаций где  регион=&регион"";
запрос1.УстановитьПараметр(""регион"",регион);
выборка=запрос1.Выполнить().Выбрать();
запрос2=новый запрос;
пока выборка.Следующий()цикл
	орг=выборка.организация;
	//Сообщить(выборка.Количество()); 
	запрос2.Текст=""выбрать * из регистрсведений.сведенияосотруднике где организация=&орг и ""+
""должность=&должн"";

запрос2.УстановитьПараметр(""орг"", орг);
запрос2.УстановитьПараметр(""должн"",должность);
выборка2=запрос2.Выполнить().Выбрать();
 если выборка2.Количество()>2 тогда
сообщить(строка(орг )+"" - ""+строка(выборка2.количество()));
конецесли;
конеццикла

КонецПроцедуры

Задание было такое
Написать интерфейс для выборки данных о количестве заместителей генерального директора в каждой организации, работающей в n-й области, где таковых заместителей более двух.

Авторское решение приведено в первозданном виде.

glavdir glavdir, (Updated )

Комментарии (30, +30)