· i, j (целые числа), lampt (тип lamp) - временные переменные.
Для нахождения максимального расстояния между светильниками необходимо ввести значения fl, enom, kz, a, h. Должны быть введены данные в массив edhs.
Для подбора лампы необходимо ввести значения enom, a, h, l. Должны быть введены данные в массивы edhs, lamps.
При нахождении максимального расстояния между светильниками необходим следующий порядок операций:
1.
Расчет
относительной освещенности:
e=1000*enom*kz*h2/(2*fl);
2. Нахождение соотношения d/h;
3. Нахождение d по известному соотношению d/h и h;
4. Проверка выполнение условия d<=a;
5.
Нахождение l по формуле: .
При подборе лампы необходим следующий порядок операций:
1. Нахождение d по известным l и a: ;
2. Нахождение e по известному отношению d/h;
3. Расчет необходимого потока: fl=1000*enom*kz*h2/(2*e);
4. Сортировка ламп по возрастанию мощности;
5. Нахождение лампы дающей необходимый поток при наименьшей мощности.
В начале выполнения алгоритма необходимо ввести значение переменной atc. Переменная atc определяет задачу решаемую алгоритмом. Если act=1, алгоритм определяет максимальное расстояние между светильниками. Если act=2 – производит подбор лампы.
Если введено act=1:
1.
Расчет
относительной освещенности:
e=1000*enom*kz*h2/(2*fl).
2. Нахождение соотношения d/h. Присваиваем переменной i значение edhc. Уменьшаем значение i до тех пор, пока не перестанет выполнятся одно из условий edhs[i].e<e или i>1. Невыполнение условия edhs[i].e<e говорит о нахождении необходимого значения освещенности.
3. Нахождение d по известному соотношению d/h и h.
4. Проверка выполнение условия d<=a. Если условие выполняется, вывод сообщения о невозможности расчета l. Завершение выполнения. Если не выполняется – переходим к нахождению l.
5. Нахождение l по формуле: . После нахождения l вывод значения и завершение работы.
Если act=2:
1. Нахождение d по известным l и a: ;
2. Нахождение e по известному отношению d/h. Присваиваем переменной i значение 1. Увеличиваем значение i до тех пор, пока не перестает выполнятся одно из условий edhs[i].dh<dh или i<edhc.
3. Расчет необходимого потока: fl=1000*enom*kz*h2/(2*e).
4. Сортировка ламп по возрастанию мощности. Переменной i присваивается значение 1. Переменной j значение i+1. Если выполняется условие lamps[i].p>lamps[j].p, меняем lamps[i] и lamps[j] местами. Увеличиваем значение j на 1, пока оно не достигнет edhc. Если j достигло значения edhc, увеличиваем значение i на 1, возвращаемся к присвоению j значения i+1, и т.д. пока i не больше edhc-1. Таким образом, при увеличении i на 1, вложенный цикл по переменной j проходит от i+1 до edhc. Значение поля p i-го элемента сравнивается со значением p всех элементов после i-го. i-й элемент обменивается своим значением с элементом, поле p которого имеет меньшее значение. В результате, когда значение j достигает edhc, i-ый элемент получает значение с минимальным полем p. i увеличивается и вновь получает минимальное значение из оставшихся элементов. В начале массива до элемента i располагаются элементы, отсортированные по возрастанию значения поля p.
5. Нахождение лампы дающей необходимый поток при наименьшей мощности. Увеличиваем значение i от 1 пока выполняются условия lamps[i].fl<fl и i<lampsc. Далее проверяем выполнение lamps[i].fl>=fl. Если выполняется, выводим название лампы, характеристики которой хранятся в lamps[i] (поскольку элементы отсортированы по возрастанию мощности, найденный элемент будет иметь минимальную мощность). Если нет – значит в массиве не оказалось лампы, подходящей по потоку. Вывод сообщения о невозможности подбора лампы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.