Как называется текст компьютерной программы на языке программирования? Исходный код
Программный текст
Гипертекст
Машинный код
242
434
Ответы на вопрос:
Алгоритм решения предполагает, что если в массиве не будет найдено элемента, большего 10, то позиции этого элемента не существует и средние арифметические членов, располагающихся как после этой позиции, так и до нее, тоже не могут существовать. "современное решение" // pascalabc.net 3.0, сборка 1076 begin var n: =readinteger('количество элементов в массиве: '); var x: =arrrandom(n,-20,20); writeln('массив х'); x.println; write('ср. арифм. отрицательных элементов после первого, большего 10: '); var a1: =x.skipwhile(x-> x< =10).where(x-> x< 0); if a1.count=0 then writeln('пусто') else writeln(a1.average); write('ср. арифм. всех элементов до первого, большего 10: '); a1: =x.takewhile(x-> x< =10); if a1.count=0 then writeln('пусто') else writeln(a1.average) end. тестовые просчеты: количество элементов в массиве: 15 массив х -11 11 16 -7 11 -8 10 -16 15 -15 -10 -8 -6 -13 -17 ср. арифм. отрицательных элементов после первого, большего 10: -11.1111111111111 ср. арифм. всех элементов до первого, большего 10: -11 количество элементов в массиве: 13 массив х 14 -9 1 2 12 -15 0 16 -19 16 -11 -15 -12 ср. арифм. отрицательных элементов после первого, большего 10: -13.5 ср. арифм. всех элементов до первого, большего 10: пусто количество элементов в массиве: 5 массив х -11 2 0 15 7 ср. арифм. отрицательных элементов после первого, большего 10: пусто ср. арифм. всех элементов до первого, большего 10: -3 количество элементов в массиве: 3 массив х 15 10 8 ср. арифм. отрицательных элементов после первого, большего 10: пусто ср. арифм. всех элементов до первого, большего 10: пусто "школьный вариант решения" // pascalabc.net 3.0, сборка 1076 const nmax=50; { максимальное кол-во элементов } var i,n,p,s1,s2,k2: integer; x: array[1..nmax] of integer; begin write('количество элементов в массиве: '); read(n); randomize; writeln('массив х'); p: =0; for i: =1 to n do begin x[i]: =random(41)-20; write(x[i],' '); if p=0 then if x[i]> 10 then p: =i; end; writeln; write('ср. арифм. отрицательных элементов после первого, большего 10: '); if p=0 then writeln('пусто') else begin s2: =0; k2: =0; for i: =p+1 to n do if x[i]< 0 then begin s2: =s2+x[i]; inc(k2) end; if k2=0 then writeln('пусто') else writeln(s2/k2) end; write('ср. арифм. всех элементов до первого, большего 10: '); if p=0 then writeln('пусто') else begin s1: =0; for i: =1 to p-1 do s1: =s1+x[i]; writeln(s1/(p-1)) end end. этот вариант существенно длиннее, но главное, что нужно долго вглядываться в текст программы, чтобы понять, что именно она делает.
Популярно: Информатика
-
ангел8143315.07.2022 19:10
-
yana0707200514.12.2021 14:59
-
кура00006.05.2023 18:11
-
Be11a03.06.2020 01:46
-
dronyuk8828.02.2021 06:57
-
Оля03090505.12.2021 17:22
-
ЕвгешаК200331.01.2020 10:38
-
диас16109.07.2020 07:12
-
Yarik34610.07.2022 11:23
-
anjela228812.07.2020 09:52