program qst_b_podprog;
uses crt;
var
n,m,cycl00:shortint;
x:array [1..100] of real;
y:array [1..100] of real;
st:string;
middle_x,middle_y,delta_x,delta_y,summa_x,summa_y:real;
label
lab1,lab2,lab3,lab4,lab5,lab6,lab7,lab8;
procedure qst_disp;
begin
clrscr;
writeln ('Задание Б, вариант №13.');
gotoxy (1,3);
writeln ('УСЛОВИЕ: Найти средние значения и стандартные отклонения для элементов');
writeln ('         массивов X(N) и y(M). N<=100, M<=100.');
gotoxy (1,10);
write ('Ok? (нажмите ввод) ');
readln (st);
clrscr;
end;
procedure caclfunction;
begin
summa_x:=0;
summa_y:=0;
for cycl00:=1 to n do begin
summa_x:=summa_x+x[cycl00];
end;
middle_x:=summa_x/n;
for cycl00:=1 to m do begin
summa_y:=summa_y+y[cycl00];
end;
middle_y:=summa_y/m;
delta_x:=middle_x-middle_y;
delta_y:=middle_y-middle_x;
writeln ('Среднее значение массива X равно ',middle_x:5:5);
writeln ('Среднее значение массива Y равно ',middle_y:5:5);
writeln ('Среднее отклонение X от Y равно ',delta_x:5:5);
writeln ('Среднее отклонение Y от X равно ',delta_y:5:5);
gotoxy (1,10);
write ('Нажмите ввод для выхода.');
readln (st);
end;
begin
qst_disp;
writeln ('Введите размер массивов X(N) и Y(M), но не более 100 элементов:');
goto lab2;
lab1: clrscr;
writeln ('Число элементов массивов не больше 100 по условию. Повторите ввод.');
lab2: write ('M=? ');
readln (m);
if m>100 then goto lab1;
if m<3 then writeln ('Минимальное значение M и N = 3. M=3');
if m<3 then m:=3;
goto lab4;
lab3: clrscr;
writeln ('Число элементов массивов не больше 100 по условию. Повторите ввод.');
lab4: write ('N=? ');
readln (n);
if n>100 then goto lab3;
if n<3 then writeln ('Минимальное значение M и N = 3. N=3');
if n<3 then n:=3;
lab5: write ('Введёте элементы массивов вручную, или сгенерировать их самостоятельно (E/G)? ');
readln (st);
if st<>'E' then if st<>'e' then if st<>'G' then if st<>'g' then goto lab5;
if st='E' then goto lab6;
if st='e' then goto lab6;
if st='G' then goto lab7;
if st='g' then goto lab7;
lab6: clrscr;
writeln ('Вводим значения элементов массива X(',n,');');
for cycl00:=1 to n do begin
write ('X(',cycl00,')=? ');
readln (X[cycl00]);
end;
writeln ('Вводим значения элементов массива Y(',m,'):');
for cycl00:=1 to m do begin
write ('Y(',cycl00,')=? ');
readln (y[cycl00]);
end;
clrscr;
writeln ('Ввод данных закончен.');
goto lab8;
lab7: clrscr;
for cycl00:=1 to n do begin
(x[cycl00]):=int(random(100));
end;
for cycl00:=1 to m do begin
(y[cycl00]):=int(random(100));
end;
clrscr;
writeln ('Числа сгенерированны и занесены в массивы.');
write ('Нажмите ввод.');
readln (st);
clrscr;
lab8: caclfunction;
clrscr;
end.