Ты в условном операторе не указал что должно проверяться... И к тому же нет begin и end;. Также переменную t: string; сделай, так как иначе не выйдет.
У тебя: readln; <- к тому же не указал что надо писать. if t then <- что это такое? Ошибка. writeln('Введите коеффициент "a"'); readln (a); writeln('Введите коeффициент "b"'); readln (b); writeln('Введите коeффициент "c"'); readln (c); d := b*b-4*a*c;
Должно быть:
program Pr1;
const H = 'Здравствуйте, '; var a,b,c,d: real; name, t: string;
Begin writeln('Введите свое имя:'); readln(name); writeln(H, name, ', вас приветствует программа-калькулятор квадратного уравнения' ); writeln('Введите коеффициент "a"'); readln (a); writeln('Введите коeффициент "b"'); readln (b); writeln('Введите коeффициент "c"'); readln (c); d := b*b-4*a*c; if d=0 then begin writeln ('X1,X2 =', (-b+sqrt(d)/(2*a))); end; if d<0 then begin writeln ('D<0, корней нет'); end; if d>0 then begin writeln('D = ', b*b-4*a*c); writeln ('X1 =', (-b+sqrt(d)/(2*a))); writeln ('X2 =', (-b-sqrt(d)/(2*a))); end; writeln ('Хотите воспользоваться калькулятором еще раз? Введите T(Да)\F(Нет)'); readln(t);
t := t.ToLower;
if t = 'да' then begin writeln('Введите коеффициент "a"'); readln (a); writeln('Введите коeффициент "b"'); readln (b); writeln('Введите коeффициент "c"'); readln (c); d := b*b-4*a*c; end else за использование!');
if d=0 then begin writeln ('X1,X2 =', (-b+sqrt(d)/(2*a))); end;
if d<0 then begin writeln ('D<0, корней нет'); end;
if d>0 then begin writeln('D = ', b*b-4*a*c); writeln ('X1 =', (-b+sqrt(d)/(2*a))); writeln ('X2 =', (-b-sqrt(d)/(2*a))); end; end.
У тебя:
readln; <- к тому же не указал что надо писать.
if t then <- что это такое? Ошибка.
writeln('Введите коеффициент "a"');
readln (a);
writeln('Введите коeффициент "b"');
readln (b);
writeln('Введите коeффициент "c"');
readln (c);
d := b*b-4*a*c;
Должно быть:
program Pr1;
const
H = 'Здравствуйте, ';
var
a,b,c,d: real;
name, t: string;
Begin
writeln('Введите свое имя:');
readln(name);
writeln(H, name, ', вас приветствует программа-калькулятор квадратного уравнения' );
writeln('Введите коеффициент "a"');
readln (a);
writeln('Введите коeффициент "b"');
readln (b);
writeln('Введите коeффициент "c"');
readln (c);
d := b*b-4*a*c;
if d=0 then
begin
writeln ('X1,X2 =', (-b+sqrt(d)/(2*a)));
end;
if d<0 then
begin
writeln ('D<0, корней нет');
end;
if d>0 then
begin
writeln('D = ', b*b-4*a*c);
writeln ('X1 =', (-b+sqrt(d)/(2*a)));
writeln ('X2 =', (-b-sqrt(d)/(2*a)));
end;
writeln ('Хотите воспользоваться калькулятором еще раз? Введите T(Да)\F(Нет)');
readln(t);
t := t.ToLower;
if t = 'да' then
begin
writeln('Введите коеффициент "a"');
readln (a);
writeln('Введите коeффициент "b"');
readln (b);
writeln('Введите коeффициент "c"');
readln (c);
d := b*b-4*a*c;
end
else
за использование!');
if d=0 then
begin
writeln ('X1,X2 =', (-b+sqrt(d)/(2*a)));
end;
if d<0 then
begin
writeln ('D<0, корней нет');
end;
if d>0 then
begin
writeln('D = ', b*b-4*a*c);
writeln ('X1 =', (-b+sqrt(d)/(2*a)));
writeln ('X2 =', (-b-sqrt(d)/(2*a)));
end;
end.
m & 1 - это битовая конъюнкция. Результатом будет 1, если m нечетное, и 0, если m - четное (то есть, содержит или не содержит соответствующий разряд)
Выражение вида T ? X : Y, где T - логическое высказывание, принимает значение X, если T истинно, и Y, если T ложно.
Соответственно, i = (m & 1) == 1 ? m : m + 1 означает, что
если m нечетное, то i = m
если четное, i = m+1 (то есть, первое нечетное число после m)
i += 2 означает, что цикл идет с шагом, соответственно, рассматриваются только нечетные числа.