stify"> then begin Write ( Введіть відстань до фінішу - gt; );
{$ I-} {директива, яка вимикає автоматичну генерацію об'єктного коду - необхідно для уникнення помилки введення значення} (ss);
{$ I +} {директива, яка включає автоматичну генерацію об'єктного коду} (ioresult lt; gt; 0) {якщо виникла помилка - в даному випадку, введено некоректне значення}
or (ss lt; 1) then {якщо введене значення менше допустимого}
begin
textcolor (4);
writeln ( Помилка! Відстань задано невірно! );
textcolor (14);
continue; {повернення на початок циклу}
endf:=true; {ознака того, що значення введено коректно};
{Аналочічним чином реалізований введення двох інших параметрів} f1=false then
begin write ( Введіть бажане час фінішу (секунди) - gt; );
{$ I -} (tf);
{$ I +} (ioresult lt; gt; 0) or (tf lt;=0) then begin
textcolor (4);
writeln ( Помилка! Час фінішу введено невірно! );
textcolor (14);
continue; endf1:=true ;; f2=false then begin
write ( Введіть інтервал виведення повідомлень на екран (секунди) - gt; );
{$ I-} ReadLn (tin);
{$ I +} (ioresult lt; gt; 0) or (tin lt;=0) or (tin gt;=tf) then begin
textcolor (4); ( Помилка! Інтервал виведення повідомлень введено невірно! );
textcolor (14) ;; f2:=true;
end; (f=true) and (f1=true) and (f2=true); {Умова виходу з циклу - всі три параметра введені вірно}
Writeln ( Press any key ... );
ch:=readkey; {Очікування натискання будь-якої клавіші}:=# 0 ;; {завершення процедури}
Наступна процедура, яку ми розглянемо відповідає за емуляцію роботи персонального комп'ютера в режимі реального временіpunkt2; {Процедура, відповідна пункту 2 меню} vnp, tvr, h, min, s, ds, t: word; {описуємо локальні змінні, що застосовуються в даній процедурі}
vr: integer;, vs, vsz, vszs, sp, v, vsr, vrk: real;
begin;
if (tf=0) then begin {перевірка - чи введені вихідні дані}
textcolor (13); writeln; writeln;
writeln ( Спочатку необхідно ввести вихідні дані! );
readkey; textcolor (14);
exit; {завершення роботи процедури}
end; (h, min, s, ds); {Виклик поточного часу}
vnp:=s + (min * 60) + (h * 3600); {час старту в секундах}
sound (3000); delay (2000); nosound; {звуковий сигнал}
TextColor (12); {Установка кольору часу } (40,1); ( Час старту - gt;: ); (h, годину ??raquo;, min, хв , s, сек ); {виводимо на екран час старту} (13); ( : 15, Умовні позначення ); (14); ( Час з моменту старту - gt; TPR ); ( Пройдений до даного моменту часу шлях- gt; PRS ); ( Середня швидкість на відрізку - gt; VS ); ( Середня швидкість до даного моменту часу - gt; VSZ ); ( Час, що залишився до моменту фінішу - gt; TOST ); ( Рекомендована швидкість на початку шляху- gt; , ss/tf: 4: 4);
writeln; (13); ( : 15, Поїхали! );
textcolor (14); t:=0 ;; {ініціалізація генератора випадкових чисел}
i:=0; vs:=0; j:=0; {обнуляем змінні}:=round (ss/tf); {рекомендована середня швидкість}
repeat {початок прогону} (h, min, s, ds);:=s + (min * 60) + (h * +3600); (vs=0) then for i:=1 to 10 do
begin
{нехай на заданому інтервалі швидкість змінюється випадковим чином в межах + - 1-ца від рекомендованої 10 раз}
v:=(random (2 * 100) + 100 * (vr - 1))/100;:=vs + v ;; (tvr gt; vnp) and ((tvr-vnp) mod tin=0) and ((tvr-vnp) gt; t) and ((tf-t) gt; tin) then begin
t:=tvr-vnp; {різниця між часом старту і поточним часом}
write ( TPR - gt; , t, | );
vsz:=vsz + vs; {середня швидкість, рекомендована до даного моменту часу}:=j + 10; {загальне число вимірів швидкості}:=vsz/j; :=vs/10; {Середня швидкість на відрізку}:=rs + vs * tin; {пройдений до даного моменту часу шлях}
write ( PRS- gt; , rs: 3: 3, | ); ( VS - gt; , vs: 3: 3, | ); :=0; ( VSZ- gt; , vszs: 3: 3, | ); ( TOST- gt; , tf-t, | ); :=(ss-rs)/(tf-t);
writeln ( Рекомендована швидкість- gt; , vrk...