Паскаль
1. Как будет выглядеть раздел описания переменных для переменных, указанных ниже? A - количество дней месяца B - название месяца С - глубина водоёма D - факт наличия моста
2. Укажите строки, которые приведут к сообщению об ошибке. Почему это так? Объясните своё мнение. program test. var x1, x2: real; a1, a2: integer; s1, s2:string; begin writeln ('Введите числа'); readln (a1, x1) x2:=x1/3; a2:=a1/2; s2:=a2+a1; end.
PascalABC.NET
#1
function Y(x:integer) := 2*((x+2)**2)+5.5*(x+2) - 3;
begin
var Xes := Range(3, 25);
Xes.Tabulate(p -> Y(p)).Println;
end.
#2
const PASS = '123ab';
begin
var rpass := Readstring('Pass: ');
while rpass <> PASS do begin
rpass := Readstring('Wrong pass. Try again: ');
end;
print('Correct password. Welcome');
end.
#3
begin
//Сначала читаем цифру, которую надо удалить, а уже потом число.
var X := ReadChar();
var number := ReadInteger().ToString.ToCharArray.ToList;
while number.Contains(X) do number.Remove(X);
number.JoinIntoString.Println;
end.
#4
begin
var X := ReadInteger();
Print((x div 100)+(x mod 100));
end.
Объяснение:
PascalABC.NET
begin
var a := ArrGen(10, i -> i in [0, 2, 6] ? 2 * (i + 1) + 10 :
(i - 7) * 3);
Writeln('массив');
var m := a.Println.Where(p -> p.IsEven).Average;
Write('sr=', m)
end.
begin
var a := ArrGen(10, i -> (i + 1) mod 3 = 0 ? -i : Sqr(i + 2));
Writeln('массив');
var s := a.Println.Sum;
Writeln('sr=', s);
a.Transform(p -> p < 0 ? s : p);
Writeln('новый массив');
a.Print
end.
begin
var a := ArrGen(15, i -> i < 7 ? i * (i + 6.1) + 5.1 : i - 4.7);
Writeln('массив');
foreach var k in a do
Write(k:7:2);
Writeln;
var p := 1.0;
for var i := 2 to 4 do
p *= a[i];
Write('p= ', p:0:3)
end.
Индексы в массивах PascalABC.NET идут не от единицы, а от нуля, как во всех современнных языках программирования. Поэтому исходные формулы пришлось немного преобразовать.
Примеры вывода не показаны, поскольку они точно совпадают с заданными.