Можно ли короче написать код? - Turbo Pascal
Формулировка задачи:
Можно ли короче написать код?
там продолжение такое же и очень много
Листинг программы
- if (MrkTypeOpen = 'PL' and PBT > 800 and PBT <= 1600)
- or (MrkTypeOpen = 'PP' and LBT > 800 and LBT <= 1600) then QtyOtv:=1;
- if (MrkTypeOpen = 'PL' and PBT > 1600 and PBT <= 2200)
- or (MrkTypeOpen = 'PP' and LBT > 1600 and LBT <= 2200) then QtyOtv:=2;
- if (MrkTypeOpen = 'PL' and PBT > 2200 and PBT <= 2360)
- or (MrkTypeOpen = 'PP' and LBT > 2200 and LBT <= 2360) then QtyOtv:=3;
Решение задачи: «Можно ли короче написать код?»
textual
Листинг программы
- const
- nLimits = 3;
- Limits: array [0..nLimits] of Integer = (800, 1600, 2200, 2360);
- var
- i, QtyOtv: Integer;
- ...
- QtyOtv:=0;
- for i:=1 to nLimits do
- if (MrkTypeOpen='PL') and (PBT>Limits[i-1]) and (PBT<=Limits[i]) or
- (MrkTypeOpen='PP') and (LBT>Limits[i-1]) and (LBT<=Limits[i]) then
- begin
- QtyOtv := i; Break;
- end;
Объяснение кода листинга программы
- В начале кода объявляются необходимые переменные: nLimits, Limits, i, QtyOtv.
- Переменная nLimits инициализируется значением 3.
- Переменная Limits инициализируется массивом из 4 чисел: 800, 1600, 2200, 2360.
- Переменная i инициализируется значением 1.
- Переменная QtyOtv инициализируется значением 0.
- Затем идет цикл for, который выполняется от 1 до nLimits (используется оператор
to
для указания диапазона). - Внутри цикла проверяется условие:
- Если MrkTypeOpen равно 'PL' и PBT больше Limits[i-1] и меньше или равно Limits[i], или
- Если MrkTypeOpen равно 'PP' и LBT больше Limits[i-1] и меньше или равно Limits[i], то выполняется следующий блок кода:
- QtyOtv присваивается значение i.
- Цикл прерывается командой Break.
- После завершения цикла выводится значение переменной QtyOtv.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д