Const mm = 10; nn = 8; 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; var x, y: m; z: ks; begin writeln('массив х'); work(x, z, 10, 8); writeln; writeln('массив y'); work(y, z, 6, 8); end. тестовое решение: массив х -50 49 0 28 -8 -27 -4 -45 10 10 10 27 17 15 -35 47 -22 -42 21 40 -40 -4 1 -49 -21 37 5 -34 26 10 -33 -26 2 27 30 -46 -9 -2 33 2 -3 6 -9 -38 -29 -18 -36 28 -8 39 -16 49 -50 39 -37 5 -2 -2 -2 6 18 -21 -20 -50 -7 -15 -26 40 35 -40 5 31 -25 -31 -8 4 -45 -11 31 48 суммы и количество -138 -90 -61 -118 -181 -123 -165 -170 8 4 5 3 6 7 6 4 массив y 22 27 24 38 -24 -32 -26 13 14 -25 6 44 50 -24 34 -33 -24 -10 20 36 -43 -25 44 -19 -17 4 23 31 -4 9 -1 -41 17 1 34 42 6 -8 25 -26 -40 11 -24 10 4 12 31 50 суммы и количество -81 -35 -24 0 -71 -89 -27 -119 3 2 1 0 3 4 2 4
anytkaakk
13.09.2021
Var a,r: real; i,l,z: integer; s: string; begin read(s); l: =length(s); i: =1; r: =0; while (s[i]in['0'..'9'])and(i< l) do begin r: =r*10+strtoint(s[i]); i: =i+1 end; while i< l do begin case s[i] of '+': z: =0; '-': z: =1; '*': z: =2; '/': z: =3; end; i: =i+1; a: =0; while (s[i]in['0'..'9'])and(i< l) do begin a: =a*10+strtoint(s[i]); i: =i+1 end; if i=l then a: =a*10+strtoint(s[l]); case z of 0: r: =r+a; 1: r: =r-a; 2: r: =r*a; 3: r: =r/a; end; end; writeln('r = ',r); end.
sbn07373
13.09.2021
Эта программа позволяет находить количество слов в предложении, если слова разделены одним пробелом: var s: string; i,k: integer; begin writeln('введите строку'); readln(s); k: =0; for i: =1 to length(s) do begin if s[i]=' ' then k: =k+1; end; writeln('количество слов в предложении = ',k+1); end. а эта программа позволяет находить количество слов в предложении, если слова разделены одним или несколькими пробелами: var s: string; i, k: integer; begin k : = 0; writeln('введите строку: '); readln(s); s: = ' ' + s; for i: =1 to length(s)-1 do if (s[i] = ' ') and (s[i+1] < > ' ') then k: =k+1; writeln(k) end.