Операция пост-инкремента(i++) возвращает значение переменной i до выполнения этого инкремента. Операция префикс-инкремента (++i) возвращает значение уже измененной переменной. Т.е. 1). i += ++c + ++i это как 3 = 4 + (3 + 4) ← обрати внимание на 4(i), что после выполнения префикс-инкремента, значение i изменилось всем выражении. 4 + (3 + 4) = 11
2) i-=c-- + --i это как 3 = 2 - (2 + 2) ← обрати внимание, что значение переменной c изменится, только после операции с ней, т.е. в данном случае, в скобке, она останется без изменений, хотя в конечном итоге, ее значение все таки изменится. С переменной i наоборот, значение изменяется сразу и это значение изменяется во всем выражении. 2 - (2 + 2) = -2
// PascalABC.NET 3.3, сборка 1605 от 31.12.2017 // Внимание! Если программа не работает, обновите версию!
begin var P:=new real[3,2]; // массив координат вершин for var i:=0 to 2 do (P[i,0],P[i,1]):=ReadReal2('Введите x и y вершины '+(i+1)); // длины сторон var L:(real,real)->real:=(x,y)->Sqrt(x**2+y**2); var a:=L(P[1,0]-P[0,0],P[1,1]-P[0,1]); var b:=L(P[2,0]-P[1,0],P[2,1]-P[1,1]); var c:=L(P[0,0]-P[2,0],P[0,1]-P[2,1]); if (a+b>c) and (a+c>b) and (b+c>a) then // треугольник существует if (a=b) or (a=c) or (b=c) then Writeln('Треугольник равнобедренный') else Writeln('Треугольник не равнобедренный') else Writeln('Треугольник построить невозможно') end.
Замечание: для сборок ниже 1603 от 30.12.2017 необходимо заменить Sqrt(x**2+y**2) на Sqrt(x*x+y*y)
Вычислить функцию f (x) на отрезке [a,b] с шагом h