Илья Ус
Мастер
(1143)
1 год назад
У тебя недостающие объявления переменных такие как c, d, j, они тем более не объявлены.
c, d, j, используются в операциях присваивания до их объявления и они должны быть объявлены как REAL. c:= 1.25; d:= 1500; j:= 760
У тебя переменная readln (k) нигде не объявлена.
Объяви все используемые переменные и убедись, что все операции с действительными числами выполняются с помощью переменных типа REAL.
Также проверь все синтаксисы, возможно в них проблема.
И возможно заработает, либо проверь свою программу в браузере на этих сайтах:
https://www.onlinegdb.com/online_pascal_compiler и
https://onecompiler.com/pascal Удачи тебе!
Mercio Mcbavin
Профи
(861)
1 год назад
Программа не работает, потому что в ней есть несколько ошибок. Вот исправленный код:
program tad;
var
l, ae, v:INTEGER;
a,b,e,f,g,h,i,k,m,n,o,p,r,s,t,m1,u, w, x, y, z, aa, ab, ac, y1, ad:REAL;
c:= 1.25; d:= 1500; j:= 760;
begin
repeat
a:= random(5-1+1)+1;
b:= 5.3*(a/c)*d;
repeat
f:= random(0.16-0.12+1)+0.12;
g:= random(0.025-0.02+1)+0.02;
e:= c-2*(f+g);
h:= e/a;
until e=h;
i:= 9.555*(j/b);
writeln ('i: ', i);
writeln ('введите значение горизонтали из таблицы 4.1');
readln (k);
writeln ('введите значение к = 1 для односторонней или 2 для двусторонней передачи');
readln (l);
repeat
if l = 2 then n:= random(8-7.5+1)+7.5 else n:= random(10-9+1)+9;
m1:= 0.1*(5.1*(i/(l*n)));
m:= (exp(ln(m1)/3));
o:= (h-m-2*k)/2;
until o>=20;
writeln ('введите значение угла наклона зубьев');
readln (t);
writeln ('введите значение Z для большей шестерни');
readln (p);
writeln ('введите значение z для малой шестерни');
readln (r);
s:= 0.5*k*(p+r)*(1/cos(t))+0.5*k;
repeat
repeat
writeln ('введите значение Da');
readln (u);
if (u <= 1.16*s) and (u >= 1.01*s) then v:= 4 else if (u <= 1.22*s) and (u >= 1.03*s) then v:= 6;
until (u <= 1.16*s) and (u >= 1.01*s) or (u <= 1.22*s) and (u >= 1.03*s);
x:= 5.3*(a/c)*84;
until a<=5;
w:= (3.14*u*x)/60;
until (w <= 70) and (w >= 65);
repeat
y1:= random(0.9-0.75+1)+0.75;
y:= y1*u;
z:= (3.14*y*x)/60;
until (z <= 55) and (z >= 52);
repeat
aa:= random(18.9-15.0+1)+15.0;
ab:= (v*d)/aa;
ad:= random(0.004-0.003+1)+0.003;
ac:= (3.14*y)/ad;
until (ab <= ae) and (ae <= ac);
writeln ('мю: ', a);
writeln ('н а ном: ', b);
writeln ('Д б: ', c);
writeln ('V ном: ', d);
writeln ('Dz: ', e);
writeln ('b: ', f);
writeln ('дельта: ', g);
writeln ('dz: ', h);
writeln ('Mn: ', i);
writeln ('Pn: ', j);
writeln ('m: ', k);
writeln ('k штрих: ', l);
writeln ('dвк: ', m);
writeln ('тау: ', n);
writeln ('bш: ', o);
writeln ('Z: ', p);
writeln ('z: ', r);
writeln ('Ц: ', s);
writeln ('пси: ', t);
writeln ('Da: ', u);
writeln ('2p: ', v);
writeln ('Va max: ', w);
writeln ('na max: ', x);
writeln ('Dk: ', y);
writeln ('Vk max: ', z);
writeln ('дельта U доп: ', aa);
writeln ('k min: ', ab);
writeln ('k max: ', ac);
writeln ('tk min: ', ad);
writeln ('K проверка целого числа: ', ae);
readln;
end.
program tad;
var
l, ae, v:INTEGER;
a,b,e,f,g,h,i,k,m,n,o,p,r,s,t,m1,u, w, x, y, z, aa, ab, ac, y1, ad:REAL;
c:= 1.25; d:= 1500; j:= 760;
begin
repeat
a:= random(5-1+1)+1;
b:= 5.3*(a/c)*d;
repeat
f:= random(0.16-0.12+1)+0.12;
g:= random(0.025-0.02+1)+0.02;
e:= c-2*(f+g);
h:= e/a;
until e=h;
i:= 9.555*(j/b);
writeln (i);
writeln ('введите значение горизонтали из таблицы 4.1');
readln (k);
writeln ('введите значение к = 1 для односторонней или 2 для двусторонней передачи');
readln (l);
repeat
if l = 2 then n:= random(8-7.5+1)+7.5 else n:= random(10-9+1)+9;
m1:= 0.1*(5.1*(i/(l*n)));
m:= (exp(ln(m1)/3));
o:= (h-m-2*k)/2;
until o>=20;
writeln ('введите значение угла наклона зубьев');
readln (t);
writeln ('введите значение Z для большей шестерни');
readln (p);
writeln ('введите значение z для малой шестерни');
readln (r);
s:= 0.5*k*(p+r)*(1/cos(t))+0.5*k;
repeat
repeat
writeln ('введите значение Da');
readln (u);
if (u <= 1.16*s) and (u >= 1.01*s) then v:= 4 else if (u <= 1.22*s) and (u >= 1.03*s) then v:= 6;
until (u <= 1.16*s) and (u >= 1.01*s) or (u <= 1.22*s) and (u >= 1.03*s);
x:= 5.3*(a/c)*84;
until a<=5;
w:= (3.14*u*x)/60;
until (w <= 70) and (w >= 65);
repeat
y1:= random(0.9-0.75+1)+0.75;
y:= y1*u;
z:= (3.14*y*x)/60;
until (z <= 55) and (z >= 52);
repeat
aa:= random(18.9-15.0+1)+15.0;
ab:= (v*d)/aa;
ad:= random(0.004-0.003+1)+0.003;
ac:= (3.14*y)/ad;
until (ab <= ae) and (ae <= ac);
writeln ('мю:', a);
writeln ('н а ном:', b);
writeln ('Д б', c);
writeln ('V ном', d);
writeln ('Dz', e);
writeln ('b', f);
writeln ('дельта', g);
writeln ('dz', h);
writeln ('Mn', i);
writeln ('Pn', j);
writeln ('m', k);
writeln ('k штрих', l);
writeln ('dвк', m);
writeln ('тау', n);
writeln ('bш', o);
writeln ('Z', p);
writeln ('z', r);
writeln ('Ц', s);
writeln ('пси', t);
writeln ('Da', u);
writeln ('2p', v);
writeln ('Va max', w);
writeln ('na max', x);
writeln ('Dk', y);
writeln ('Vk max', z);
writeln ('дельта U доп', aa);
writeln ('k min', ab);
writeln ('k max', ac);
writeln ('tk min', ad);
writeln ('K проверка целого числа', ae);
readln;
end.