Он более красочный и качество по лучше будет.
//PascalABC.Net 3.1.0.1200
var
a, b: integer;
begin
a := -3;
b := -a - a;
a := a + 2;
a := -b + a * b;
Println(a, b);
end.
Вывод -12 6
Полное ветвление:
<em>if</em> логическое выражение <em>then</em> оператор
<em>else</em> оператор;
Неполное ветвление:
<em>if</em> логическое выражение <em>then</em> оператор;
Если ветвления вложенные и среди них есть неполные, надо помнить, что каждое <em>else</em> связывается с ближайшим предшествующим ему <em>if</em>, не имеющем <em>else</em>.
Например, рассмотрим конструкцию
<em>if</em> a>b <em>then if</em> c=d <em>then</em> x:=1 <em>else</em> x:=2;
Без упомянутого правила неясно, что имелось в виду:
<em>if</em> a>b <em>then</em>
<em>if</em> c=d <em>then</em> x:=1 <em>else</em> x:=2;
или же
<em>if</em> a>b <em>then</em>
<em>if</em> c=d <em>then</em> x:=1
<em>else</em> x:=2;
Знание правила позволяет разрешить вопрос: имеется в виду первый вариант.
А если нужно получить второй - к нашим услугам блок:
<em>if</em> a>b <em>then</em>
<em>begin if</em> c=d <em>then</em> x:=1 <em>end</em>
<em>else</em> x:=2;
Program wer;
var k, i, n: integer;
begin
writeln ('vvedi natur chislo');
readln (n);
if n>=1 then
begin
for i:=1 to n do
if n/i=n div i then k:=k+1;
writeln ('kol-vo delitelej=', k);
end else writeln ('eto chislo ne natur');
readln;
end.
Const n=3; m=4;
var a:array[1..n,1..m] of integer;
i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i,',',j,'] =');
readln(a[i,j]);
end;
writeln('Исходный массив:');
for i:=1 to n do
begin
for j:=1 to m do write(a[i,j]:4);
writeln;
end;
for i:=1 to n do
for j:=1 to m do
if a[i,j] mod 2 = 0 then a[i,j]:=a[i,j] div 2;
writeln('Полученный массив:');
for i:=1 to n do
begin
for j:=1 to m do write(a[i,j]:4);
writeln;
end;
end.
Пример:
a[1,1] =45
a[1,2] =32
a[1,3] =76
a[1,4] =12
a[2,1] =85
a[2,2] =19
a[2,3] =35
a[2,4] =74
a[3,1] =65
a[3,2] =37
a[3,3] =83
a[3,4] =67
Исходный массив:
45 32 76 12
85 19 35 74
65 37 83 67
Полученный массив:
45 16 38 6
85 19 35 37
65 37 83 67