Базовый курс. Занятие №4

Приступайте к четвертому занятию базового курса.

ps. На этой странице не нужно отчитываться о выполнении ДЗ.

комментария 4 на “Базовый курс. Занятие №4”

  1. Сергей Бауэр 28.04.2012 в 14:09

    <code>

    Перем глОбед Экспорт;
    Процедура ПриНачалеРаботыСистемы()
     
     ДатаТек = ТекущаяДата();
     ДатаНачала=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 09:05:38″);
     ДатаОкончания=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 18:11:42″);
     Если (ДатаТек < ДатаНачала) или (ДатаТек > ДатаОкончания) Тогда
      Предупреждение(“Сейчас заходить в конфигурацию нельзя”);
      ЗавершитьРаботуСистемы(Ложь);
     Иначе
      ВыборВариантаОбеда();
     КонецЕсли;
     
    КонецПроцедуры
    Процедура ПередЗавершениемРаботыСистемы(Отказ)
     
     ДатаТек = ТекущаяДата();
     ДатаНачала=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 09:05:38″);
     ДатаОкончания=Дата(Формат(ДатаТек, “ДФ=””дд.ММ.гггг”””)+” 18:11:42″);
     РезультатВыбора = Новый СписокЗначений;
     Режим = РежимДиалогаВопрос.ДаНет;
     Если (ДатаТек > ДатаНачала) или (ДатаТек < ДатаОкончания) Тогда
      Ответ=Вопрос(“Рабочий День еще не закончился, Вы уверены что хотите закончить работу в программе?”,Режим,0);
      Если Ответ = КодВозвратаДиалога.Нет Тогда
       Отказ = Истина;
      КонецЕсли;
     КонецЕсли;
     
    КонецПроцедуры
    Процедура ВыборВариантаОбеда()
     
     ВариантОбеда = Новый СписокЗначений;
     ВариантОбеда.Добавить(“курица”);
     ВариантОбеда.Добавить(“рыба”);
     ВариантОбеда.Добавить(“мясо”);
     ВариантОбеда.ОтметитьЭлементы(“Какой вариант обеда Вы предпочитаете?”);
     глОбед = Новый Массив;
     Для Каждого Эл Из ВариантОбеда Цикл
      Если Эл.Пометка=Истина Тогда
       глОбед.Добавить(Эл);
      КонецЕсли 
     КонецЦикла; 
     Если  глОбед.Количество()=0 Тогда
      ВыборВариантаОбеда();
     Иначе
      ЗаданиеСтруктурыЧисла();
     КонецЕсли; 
     
    КонецПроцедуры
    Процедура ЗаданиеСтруктурыЧисла()
     Числа = Новый Структура();
     Х = “Число332″;
     Для Перемен = 1 По 1000 Цикл
      Количество = 0; 
      Для Делитель = 1 По Перемен Цикл
       Если Перемен%Делитель=0 Тогда
        Количество=Количество+1;
       КонецЕсли; 
      КонецЦикла;
      Ключ=”Число”+ Формат(Перемен,”ЧГ=””);
      Если Количество<3 Тогда
       Числа.Вставить(Ключ,”Простое”);
      Иначе 
       Числа.Вставить(Ключ,”Не простое”);
      КонецЕсли; 
     КонецЦикла;
     Сообщить(“Число591 – ” + Числа.Число591);
     Результат=Числа.Свойство(Х);
     Если Результат = Истина Тогда
      Сообщить(Х +” – ” +Числа[Х]);
     КонецЕсли; 
    КонецПроцедуры
     </code>

  2. Карташев Максим 25.04.2012 в 08:16

    <code>
    Перем глОбед Экспорт;
    Перем Счетчик;
     
    Функция ПроверкаРабочегоВремени()
                Год = Год(ТекущаяДата());
                Месяц = Месяц(ТекущаяДата());
                День = День(ТекущаяДата());
                Если Дата(Год,Месяц,День,09,05,38) < Дата(ТекущаяДата()) И Дата(ТекущаяДата()) < Дата(Год,Месяц,День,18,11,42)
                            Тогда Возврат Истина;
                Иначе Возврат Ложь;
                КонецЕсли;
    КонецФункции
     
    Процедура ПриНачалеРаботыСистемы()
                Если ПроверкаРабочегоВремени() = Ложь Тогда
                            Предупреждение (“Работа в система возможна только в рабочее время”);
                            ЗавершитьРаботуСистемы (Истина);
                Иначе
                            ВыборОбеда();
                КонецЕсли;
    КонецПроцедуры
     
    Процедура ПередЗавершениемРаботыСистемы(Отказ)
                Год = Год(ТекущаяДата());
                Месяц = Месяц(ТекущаяДата());
                День = День(ТекущаяДата());
                Если Дата(Год,Месяц,День,09,05,38) < Дата(ТекущаяДата()) И Дата(ТекущаяДата()) < Дата(Год,Месяц,День,18,11,42) Тогда       
                            Если Вопрос(“Закончить работу в системе в рабочее время?”, РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
                                       Отказ = Истина;
                            КонецЕсли;
                КонецЕсли
    КонецПроцедуры
     
    Процедура ВыборОбеда()
                Обед = Новый СписокЗначений;
                Обед.Добавить(“Курица”);
                Обед.Добавить(“Рыба”);
                Обед.Добавить(“Мясо”);
                Обед.ОтметитьЭлементы(“Необходимо выбрать обед!”);
                глОбед = Новый Массив;
                Для Каждого Строка Из Обед Цикл
                            Если Строка.Пометка Тогда
                                       глОбед.Добавить(Строка.Значение);
                            КонецЕсли;
                КонецЦикла;
                Если глОбед.Количество() = 0 Тогда
                            ВыборОбеда();
                Иначе Предупреждение (“Хорошего рабочего дня”);
                            СтруктураЧисел();
                КонецЕсли;
    КонецПроцедуры
     
    Процедура СтруктураЧисел()
                Переменная = “Число332”;
                Числа = Новый Структура;
                Для Счетчик=1 По 1000 Цикл
                            Числа.Вставить(“Число” + Формат(Счетчик, “ЧГ=0”), ПроверкаПростоеЧисло());
                КонецЦикла;
                Сообщить (Числа[“Число591”]);
                Сообщить (Числа[Переменная]);
    КонецПроцедуры
     
    Функция ПроверкаПростоеЧисло()
                СписокДелителей = Новый Массив;
                Для Перебор = 1 по Счетчик Цикл
                            Если Счетчик % Перебор = 0 Тогда
                                       СписокДелителей.Добавить(Перебор);
                            КонецЕсли;
                КонецЦикла;
                Если СписокДелителей.Количество() > 2 Тогда
                            Возврат “Не простое”;
                Иначе
                            Возврат “Простое”;
                КонецЕсли;
    КонецФункции
    </code>