Разработать программу вычисления функции, определяемой с следующего условного оператора (На АССЕМБЛЕРЕ) IF лв THEN y:= f1(a,b,c,d,e) ELSE y:= f2(a,b,c,d,e), где
лв - логическое выражение, например, (a > b) and (d
f1, f2-функции.
f1 y=a+b-c/d*e
f2 y=a*b+c/d-e
// Внимание! Если программа не работает, обновите версию!
1)
begin
var (n,m):=ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('*** Исходный массив [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var b:=a.Rows.Select(r->r.Where(t->t.IsOdd).LastOrDefault); b.Println;
end.
Пример
Количество строк и столбцов в массиве: 8 5
*** Исходный массив [8,5] ***
-41 36 -99 14 17
-22 12 71 -94 -42
-35 -40 26 2 24
39 17 20 11 84
-53 -18 97 -6 5
2 67 -54 -6 -3
95 -87 90 -13 -37
-81 -21 61 -90 -60
--------------------
17 71 -35 11 5 -3 -37 61
2)
begin
Writeln('*** Исходный массив ***');
var a:=MatrRandom(20,10,2,5);
a.Println(2); Writeln(2*a.ColCount*'-');
Writeln('Ср. 5-го ученика: ',a.Row(4).Average)
end.
Пример
*** Исходный массив ***
2 2 3 3 4 3 4 2 3 2
4 3 2 3 2 4 3 2 5 3
4 2 3 3 4 5 5 2 2 4
5 2 4 2 4 5 4 2 3 3
5 3 3 2 3 4 5 4 4 4
3 2 3 2 3 2 5 2 4 4
4 4 5 5 2 4 5 5 4 2
2 2 5 4 4 2 4 3 2 2
2 2 4 4 2 4 4 4 5 4
2 3 4 4 5 3 3 4 5 4
5 2 5 3 3 2 3 5 3 2
3 4 2 3 4 3 2 3 4 3
2 2 2 2 2 4 4 2 4 2
5 2 3 3 3 5 3 2 2 5
2 4 2 4 3 3 3 2 5 4
3 2 5 4 4 4 5 5 3 5
4 3 2 3 3 2 2 4 2 4
2 5 2 5 2 3 2 4 5 4
3 3 2 2 5 4 3 5 4 4
2 3 5 3 3 5 4 5 2 2
--------------------
Ср. 5-го ученика: 3.7
m, n, nok, t, i: longint;
begin
Write('Введите через пробел два целых положительных числа- ');
Readln(m, n);
{Сначала ищем НОК - наименьшее общее кратное}
if m = n then begin
nok := m;
t := m * m
end
else begin
t := m * n;
repeat
if m > n then m := m - n else n := n - m
until m = n;
nok := t div m
end;
{Теперь умножаем НОК на числа натурального ряда,
пока не дойдем до величины t=m*n}
if nok = t then Writeln('Требуемых чисел нет')
else begin
i := 1;
while (nok * i < t) do
begin
Write(nok * i, ' ');
i := i + 1
end
end
end.
Тестовое решение:
Введите через пробел два целых положительных числа- 8 120
120 240 360 480 600 720 840
Введите через пробел два целых положительных числа- 35 620
4340 8680 13020 17360
Введите через пробел два целых положительных числа- 7 13
Требуемых чисел нет