begin
ReadSeqIntegerWhile(p -> p <> 0)
.Where(p -> p < 200)
.Max
.Println
end.
Разберем оператор по шагам. Обозначим Т - промежуточный результат операции.
y:= round(y*(7 div 4) mod 7/3)/y - trunc(0.724);
1) T:= 7 div 4 ⇒ T:=1, тип T целочисленный.
2) T:=y*T, тип Т определяется типом y.
3) T:=T mod 7, в операции mod операнды могут быть только целочисленными, следовательно, тип у в 2) может быть только целочисленным, иначе мы получим на данном шаге ошибку. Результат операции - Т целочисленного типа.
4) T:=T/3; T - вещественного типа.
5) T;=round(T); T - целочисленного типа.
6) T:=T/y, T - вещественного типа.
7) Trunc(0.724)
вернет 0 целочисленного типа.
8) Т:=T-0 не изменит значения и типа Т: Т по-прежнему остается вещественным.
9) y:=T; для корректного присваивания y должен иметь вещественный тип, но это, как указано в 3), вызовет ошибку при выполнении 2).
Итог: оператор недопустим и будет отмечен ошибочным при компиляции.
<em>// PascalABC.NET 3.3.5, сборка 1636 от 10.03.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var n:=ReadInteger('n=');
var a:=ArrRandom(n,-99,99); a.Println;
a.OrderBy(t->t).Println; // 1
var b:=Copy(a); b.Transform(t->t mod 10=0?0:t); b.Println; // 2
Range(2,n-1,3).Select(i->a[i]).Println; // 3
Writeln('Элементов после max: ',n-a.IndexMax-1) // 4
end.
<u>Пример</u>
n= 20
8 37 88 31 -15 -26 -34 24 -31 -31 -91 -40 -49 -91 45 -30 -79 -78 -2 39
-91 -91 -79 -78 -49 -40 -34 -31 -31 -30 -26 -15 -2 8 24 31 37 39 45 88
8 37 88 31 -15 -26 -34 24 -31 -31 -91 0 -49 -91 45 0 -79 -78 -2 39
88 -26 -31 -40 45 -78
Элементов после max: 17
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x, y, a, b;
cin >> x >> y >> a >> b;
cout << "A = " << (pow((x * x + b*x - 3), 2) * pow((y - 2.3), 1.5)) / pow((5 - a * pow(x, 4)), 2);
}