<u>Во-первых</u> - не имейте моду писать всё в одну строчку. Сейчас Вы в этом убедились, поскольку не можете найти ошибку. Объясняю, как надо:
- if <условие> then
- // оператор
Никаких if <условие> then // оператор, - забудьте про это навсегда.
Это Вам не тернарный оператор <условие> ? <оператор_при_true> : <оператор_при_false>.
<u>Во-вторых</u> - Вы засовываете логическую переменную в блок условия. Объясняю:
- if D > 0 then
- x1 := ... and x2 := ...
Вы не можете таким образом объявлять переменные. Каждое действие - в новой строке, а также должно оканчиваться точкой с запятой. Как должно быть написано правильно:
- if D > 0 then
- begin
- x1 := ...
- x2 := ...
- end // здесь точка с запятой не нужна, поскольку далее следует блок else
- else
- if D = 0 then
- x := ... // здесь тоже запятая не нужна
- else
- write('...');
<u>В-третьих</u> - обезопасьте себя и поставьте порядок операций в поиске корней дискриминанта:
- x1 := (-b + sqrt(D)) / (2*a) // без скобок выполнится деление на 2, а потом умножение на a
Так же стоит сделать и с x := ...
Если ошибка не пропадает - пишите в комментариях её описание (ошибки).
Var a,e,z,y,x:integer;
Begin
Writeln('Введите трехзначное число');
Readln(a);
x:=a div 100;
y:=(a-x*100) div 10;
z:=a-y*10-x*100;
e:=x+y+z;
writeln('Сумма чисел ',x,' ',y,' и ',z,' равна ',e,'.');
<span>end.
p.s.
</span>a-трехзначное число
e-сумма чисел
x, <span>y </span>и <span>z </span>- первое, второе и третье число соответственно.
<em>На Паскале:</em>
var b: integer;
begin
writeln('Введите число: ');
readln(b);
if b mod 21=0 then
writeln('Число кратно 21')
else
writeln('Число не кратно 21');
end.
Var a,b,r:real;
begin
readln(a,b);
r:=(a+b)*(a+b);
writeln(r);
<span>end.</span>