Оператор != - оператор равенства, возвращающий истину, если операнды не равны, и ложь иначе. n != 0 - значение условия "n не равно 0"
Оператор ?: - тернарный оператор, его запись имеет вид _условие_ ? _возвращаемое_значение_при_истинности_условия_ : _возвращаемое_значение_при_ложности_условия_ .
Операторы, использованные в выражении, по убыванию приоритета (операторы с равным приоритетом в одной строке):
унарный -
%
== !=
&&
?:
А тогда return n != 0 && n % 2 == 0 ? -n : n; эквивалентно return ((n != 0) && ((n % 2) == 0)) ? (-n) : n;
Если n не равно 0 и дает остаток 0 при делении на 2 (т.е. четно), возвращается значение -n, иначе возвращается n.
return n != 0 && n % 2 == 0 ? -n : n;
Оператор != - оператор равенства, возвращающий истину, если операнды не равны, и ложь иначе. n != 0 - значение условия "n не равно 0"
Оператор ?: - тернарный оператор, его запись имеет вид _условие_ ? _возвращаемое_значение_при_истинности_условия_ : _возвращаемое_значение_при_ложности_условия_ .
Операторы, использованные в выражении, по убыванию приоритета (операторы с равным приоритетом в одной строке):
унарный -
%
== !=
&&
?:
А тогда return n != 0 && n % 2 == 0 ? -n : n; эквивалентно return ((n != 0) && ((n % 2) == 0)) ? (-n) : n;
Если n не равно 0 и дает остаток 0 при делении на 2 (т.е. четно), возвращается значение -n, иначе возвращается n.
Так,сначала теория.
В формуле Герона (коя используется в этой программе) используется полупериметр!
Это означает, что надо ввести переменную полупериметра ( pp, к примеру). Тогда программа примет вид:
program P1;
var
a, b, c, p: integer;
pp, s: real;
begin
write('Введите сторону a = ');
readln(a);
write('Введите сторону b = ');
readln(b);
write('Введите сторону c = ');
readln(c);
p := a + b + c;
writeln('Периметр треугольника P = ', p);
pp := p / 2;
s := sqrt(pp * (pp - a) * (pp - b) * (pp - c));
writeln('Площадь треугольника S = ', s);
end.
Также замечу, что полупериметр и площадь относятся не к целочисленному типу данных.
И да, обращайте внимание на оформление.
Табуляции в программе, "сторона" вместо "координата", пробелы до и после равно, чтобы всё не выглядело слипшимся.