type M = array[1..mm, 1..nn] of integer; KS = array[1..2, 1..nn] of integer;
procedure GetKS(var a: M; var b: KS; m, n: integer); { Помещает в b[1,*] суммы отрицательных элементов массива а[m,n] по столбцам, а в b[2,*] - количества этих элементов } var i, j, s, k: integer; begin for j := 1 to n do begin k := 0; s := 0; for i := 1 to m do if a[i, j] < 0 then begin s := s + a[i, j]; Inc(k) end; b[1, j] := s; b[2, j] := k end end;
procedure Init(var a: M; m, n: integer); { Заполняет массив a[m,n] случайными значениями на интервале [-50;50] и выводит их на экран } var i, j: integer; begin for i := 1 to m do begin for j := 1 to n do begin a[i, j] := Random(101) - 50; Write(a[i, j]:5) end; Writeln end end;
procedure OutKS(var a: KS; n: integer); { Выводит на экран элементы массива a[2,n]} var i, j: integer; begin for i := 1 to 2 do begin for j := 1 to n do Write(a[i, j]:5); Writeln end end;
procedure Work(var a: M; var b: KS; m, n: integer); { цикл работы с массивом } begin Init(a, m, n); GetKS(a, b, m, n); Writeln('Суммы и количество'); OutKS(b, n); end;
Вообщем так. 1. sin это арифметическое действие. Синус можно найти из 90 градусов например. А тут X>10. Из чего синус искать, из большего или может из меньшего? Правильной будет запись if x>10 then ... какое-то действие... sin(x) else ... sin (x); вообщем нельзя ставить оператор сравнения в арифметическое действие т.к. им задаются условия.
2. Попытка использовать арифметические операции с "false". 3. Выражение теряет смысл. And это логическая операция. Лог выражение должно быть вида A and B. Соответственно исправить можно так '(x=0) and (round(sqrt(x)) mod 2=0)' 4. Не пишут 2 or подряд т. к. теряется логика операции.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку