Оператор If
1 Как переводится слова If, Then, Else?
2 Какое ветвление называется полным?
3 Выражение какого типа может выступать в качестве условия при организации ветвления?
4 Какие значения принимают такие выражения?
5 Могут ли в полном ветвлении операторы выполнится по обеим ветвям?
6 Запишите условный оператор, который определяет знак заданного целого числа.
7 После выполнения операторов
a:=0;
If a<>0then;
a
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.
Тестовое решение:
-0.00136006072493969
2. А вот так учат писать это же школьные учителя:
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
m:array[1..100] of real;
i,k:integer;
s:real;
begin
s:=0;
k:=0;
for i:=1 to 100 do begin
m[i]:=sin(i)*cos(i);
if m[i]<>0 then begin
s:=s+m[i];
k:=k+1
end
end;
Writeln(s/k)
end.
Тестовое решение:
-0.00136006072493969
m = 10
n = 15
DIM a(1 TO m, 1 TO n) AS INTEGER
DIM x(1 TO n) AS INTEGER, y(1 TO m) AS INTEGER
RANDOMIZE TIMER
CLS
PRINT "Исходная матрица"
FOR i = 1 TO m
FOR j = 1 TO n
a(i, j) = INT(99 * RND)
PRINT USING "###"; a(i, j);
NEXT j
PRINT
NEXT i
INPUT "Строка для Х и столбец для Y (через запятую): ", p, q
PRINT "Вектор-строка Х"
FOR j = 1 TO n
x(j) = a(p, j)
PRINT USING "###"; x(j);
NEXT j
PRINT
PRINT "Вектор-столбец Y"
FOR i = 1 TO m
y(i) = a(i, q)
PRINT USING "###"; y(i);
NEXT i
PRINT
Тестовое решение:
Исходная матрица
51 91 87 95 48 54 64 92 2 91 84 56 60 87 6
96 55 81 11 46 42 38 14 40 73 33 97 16 90 65
65 41 52 1 30 62 68 32 16 86 80 72 94 76 50
63 44 84 83 19 29 95 75 88 9 13 78 45 72 51
98 98 93 70 19 36 16 21 38 87 59 26 48 11 52
77 24 11 91 68 49 72 25 39 54 31 55 57 92 55
79 19 37 67 40 72 91 76 13 75 47 48 12 64 44
87 24 62 73 58 65 2 90 21 63 79 67 92 68 27
57 42 82 21 94 1 19 1 12 1 84 27 86 42 89
54 12 78 75 33 87 34 78 38 50 40 11 19 6 2
Строка для Х и столбец для Y (через запятую): 4,8
Вектор-строка Х
63 44 84 83 19 29 95 75 88 9 13 78 45 72 51
Вектор-столбец Y
92 14 32 75 21 25 76 90 1 78