Расчет уличного освещения, страница 4

   readln(enom);                                 {                }

   write('Введите коэффициент запаса: ');        {     ДАННЫХ     }

   readln(kz);                                   {                }

   write('Введите ширину дороги (м): ');         {                }

   readln(a);                                    {                }

   write('Введите высоту светильника (м): ');    {                }

   readln(h);                                    {                }

  end;

 2: begin

   write('Введите освещенность дороги (лк): ');          {                }

   readln(enom);                                         {                }

   write('Введите ширину дороги (м): ');                 {      ВВОД      }

   readln(a);                                            {                }

   write('Введите высоту светильника (м): ');            {     ДАННЫХ     }

   readln(h);                                            {                }

   write('Введите расстояние между светильниками (м): ');{                }

   readln(l);                                            {                }

  end;

 end;

end;

begin

 writeln('Определить максимальное расстояние между светильниками - 1');

 writeln('Подобрать лампу - 2');

 write('(1,2)? ');

 readln(act);

 vvod;

 if act=1 then begin

  e:=1000*enom*kz*h*h/(2*fl); {расчет относительной освещенности}

  {Найдем максимальное соотношение d/h}

  {Поскольку данные отсортированы по возрастанию, его можно найти

  последовательным перебором с конца, пока не найдем запись с необходимой e)}

  i:=edhc;

  while ((edhs[i].e<e) and (i>1)) do

   dec(i);

  d:=edhs[i].dh*h;

  if d<=a then writeln('Слишком широкая дорога!')

  else begin

   l:=2*sqrt(d*d-a*a);

   writeln('Максимальное расстояние между светильниками: ',l:5:2,' м');

  end;

 end;

 if act=2 then begin

  d:=sqrt(l*l/4+a*a); {расчет d}

  i:=1;

  while (edhs[i].dh<d/h) and (i<edhc) do inc(i);   { находим e }

  e:=edhs[i].e*2;                                  {           }

  fl:=1000*enom*h*h*1.5/e; {расчет необходимого потока}

  {отсортируем таблицу с параметрами ламп по возрастанию мощности}

  for i:=1 to lampsc-1 do

   for j:=i+1 to lampsc do

    if lamps[i].p>lamps[j].p then begin

     lampt:=lamps[i];

     lamps[i]:=lamps[j];

     lamps[j]:=lampt;

    end;

  {последовательным перебором найдем лампу с необходимым потоком}

  i:=1;

  while (lamps[i].fl<fl) and (i<lampsc) do inc(i);

   if lamps[i].fl>=fl then writeln('Выбрана лампа ',lamps[i].name,'-',lamps[i].p)

   else writeln('Слишком широкая дорога!');

 end;

 readln;

end.

Пример работы

Определить максимальное расстояние между светильниками - 1

Подобрать лампу - 2

(1,2)? 1

Введите поток (лм): 5600

Введите освещенность дороги (лк): 0.5

Введите коэффициент запаса: 1.5

Введите ширину дороги (м): 10

Введите высоту светильника (м): 8

Максимальное расстояние между светильниками: 21.12 м

Определить максимальное расстояние между светильниками - 1

Подобрать лампу - 2

(1,2)? 2

Введите освещенность дороги (лк): 0.5

Введите ширину дороги (м): 10

Введите высоту светильника (м): 8

Введите расстояние между светильниками (м): 21

Выбрана лампа ДРЛ-125


Список используемой литературы

1.  Кнорринг Г. М. Светотехнические расчеты в установках искусственного освещения.

2.  Справочная книга по светотехнике/Под ред. Ю. Б. Айзенберга.

3.  Фаронов В. В. Turbo Pascal 7.0. Начальный курс. Учебное пособие.