Загрузил ajiaha

Отчет по заданию -10-2

// получение даты из строкового представления даты в виде ДД.ММ.ГГГГ
Функция дд_мм_гггг2дата(дд_мм_гггг_стр) // найдено в I-net
Возврат Дата(дд_мм_гггг_стр + " 00:00:00");
КонецФункции
Функция число_пятниц(имя_файла)
Попытка
даты = Новый ЧтениеТекста;
даты.Открыть(имя_файла);
Исключение
Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]");
Возврат -1;
КонецПопытки;
чис_пятниц = 0;
Пока Истина Цикл
строка = даты.ПрочитатьСтроку();
Если строка = Неопределено Тогда
Прервать
КонецЕсли;
дата = дд_мм_гггг2дата(строка);
чис_пятниц = чис_пятниц + тест_даты(дата, 5);
КонецЦикла;
даты.Закрыть();
Возврат чис_пятниц;
КонецФункции // число_пятниц
Функция число_вторников(имя_файла)
Попытка
даты = Новый ЧтениеТекста;
даты.Открыть(имя_файла);
Исключение
Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]");
Возврат -1;
КонецПопытки;
чис_вторников = 0;
Пока Истина Цикл
строка = даты.ПрочитатьСтроку();
Если строка = Неопределено Тогда
Прервать
КонецЕсли;
дата = дд_мм_гггг2дата(строка);
чис_вторников = чис_вторников + тест_даты(дата, 2);
КонецЦикла;
даты.Закрыть();
Возврат чис_вторников;
КонецФункции // число_вторников
Функция число_сред(имя_файла)
Попытка
даты = Новый ЧтениеТекста;
даты.Открыть(имя_файла);
Исключение
Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]");
Возврат -1;
КонецПопытки;
чис_сред = 0;
Пока Истина Цикл
строка = даты.ПрочитатьСтроку();
Если строка = Неопределено Тогда
Прервать
КонецЕсли;
дата = дд_мм_гггг2дата(строка);
чис_сред = чис_сред + тест_даты(дата, 3);
КонецЦикла;
даты.Закрыть();
Возврат чис_сред;
КонецФункции // число_сред
Функция тест_даты(дата, тест)
Возврат ДеньНедели(дата) = тест;
КонецФункции // тест_даты
Функция число_четвергов(имя_файла)
Попытка
даты = Новый ЧтениеТекста;
даты.Открыть(имя_файла);
Исключение
Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]");
Возврат -1;
КонецПопытки;
чис_четвергов = 0;
Пока Истина Цикл
строка = даты.ПрочитатьСтроку();
Если строка = Неопределено Тогда
Прервать
КонецЕсли;
дата = дд_мм_гггг2дата(строка);
чис_четвергов = чис_четвергов + тест_даты(дата, 4);
КонецЦикла;
даты.Закрыть();
Возврат чис_четвергов;
КонецФункции // число_четвергов
Процедура ПриНачалеРаботыСистемы()
чис_пятниц = число_пятниц("N:\даты.txt");
чис_вторников = число_вторников("N:\даты.txt");
чис_сред = число_сред("N:\даты.txt");
чис_четвергов = число_четвергов("N:\даты.txt");
КонецПроцедуры
Перем Min;
Перем Max;
// x <= Min + D ? => Истина / Ложь
Функция тест_числа(x, D)
Возврат x <= Min + D;
КонецФункции // тест_числа
// x >= Max - D ? => Истина / Ложь
Функция тест_числа2(x, D)
Возврат x >= Max - D;
КонецФункции // тест_числа2
// Нахождение минимального числа в файле
Функция минимум(имя_файла)
Попытка
числа = Новый ЧтениеТекста;
числа.Открыть(имя_файла);
Исключение
Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]");
Возврат Неопределено;
КонецПопытки;
мин = 9999999999999;
Пока Истина Цикл
строка = числа.ПрочитатьСтроку();
Если строка = Неопределено Тогда
Прервать
КонецЕсли;
число = 0 + строка;
Если число < мин Тогда
мин = число
КонецЕсли;
КонецЦикла;
числа.Закрыть();
Возврат мин;
КонецФункции // минимум
// Нахождение максимального числа в файле
Функция максимум(имя_файла)
Попытка
числа = Новый ЧтениеТекста;
числа.Открыть(имя_файла);
Исключение
Сообщить("ОШИБКА: Проблема с файлом ["+имя_файла+"]");
Возврат Неопределено;
КонецПопытки;
макс = 0;
Пока Истина Цикл
строка = числа.ПрочитатьСтроку();
Если строка = Неопределено Тогда
Прервать
КонецЕсли;
число = 0 + строка;
Если число > макс Тогда
макс = число
КонецЕсли;
КонецЦикла;
числа.Закрыть();
Возврат макс;
КонецФункции // максимум
// подсчет числа_чисел_по_условию
Функция число_чисел_по_условию(имя_файла,D)
числа = Новый ЧтениеТекста;
числа.Открыть(имя_файла);
N = 0;
Пока Истина Цикл
строка = числа.ПрочитатьСтроку();
Если строка = Неопределено Тогда
Прервать
КонецЕсли;
число = 0 + строка;
Если тест_числа(число,D) Тогда
N=N+1
КонецЕсли;
КонецЦикла;
числа.Закрыть();
Возврат N;
КонецФункции // число_чисел_по_условию
// подсчет числа_чисел_по_условию_МАКСИМУМ
Функция число_чисел_по_условию_максимум(имя_файла,D)
числа = Новый ЧтениеТекста;
числа.Открыть(имя_файла);
N = 0;
Пока Истина Цикл
строка = числа.ПрочитатьСтроку();
Если строка = Неопределено Тогда
Прервать
КонецЕсли;
число = 0 + строка;
Если тест_числа2(число,D) Тогда
N=N+1
КонецЕсли;
КонецЦикла;
числа.Закрыть();
Возврат N;
КонецФункции // число_чисел_по_условию_максимум
Процедура ПриНачалеРаботыСистемы()
D = 10;
Min = минимум("N:\числа.txt");
Max = максимум("N:\числа.txt");
Если Min = Неопределено Тогда
Сообщить("ОШИБКА: Min не найдено!");
Возврат;
КонецЕсли;
Если Max = Неопределено Тогда
Сообщить("ОШИБКА: Min не найдено!");
Возврат;
КонецЕсли;
чисел_D = число_чисел_по_условию("N:\числа.txt",D);
чисел_D_максимум = число_чисел_по_условию_максимум("N:\числа.txt",D)
КонецПроцедуры // ПриНачалеРаботыСистемы()