Вводятся две вещественные прямоугольные матрицы размером m*n и k*l (m,n,k,l < =20). для той матрицы, у которой сумма элементов, лежащих до первого отрицательного элемента, больше (искать по строкам), составить одномерный массив из средних арифметических значений элементов нечетных столбцов матрицы и отсортировать его в порядке возрастания элементов. вывести на печать саму матрицу, найденную сумму элементов и отсортированный одномерный массив. алгоритм сопровождать соотв. сообщениями. использовать не менее 3 подпрограмм. pascalabc.net
133
329
Ответы на вопрос:
// pascalabc.net 3.3 var c: array of real; begin writeln('1 матрица: '); var m: =readinteger('m ='); var n: =readinteger('n ='); // var a: =readmatrreal(m,n); var a: =matrrandomreal(m,n,-3,7).println(6); writeln('2 матрица: '); var k: =readinteger('k ='); var l: =readinteger('l ='); // var b: =readmatrreal(k,l); var b: =matrrandomreal(k,l,-3,7).println(6); var s1: =a.elementsbyrow.takewhile(x-> x> =0).sum; writeln('s1 = ',s1); var s2: =b.elementsbyrow.takewhile(x-> x> =0).sum; writeln('s2 = ',s2); if s1> s2 then begin c: =arrfill(a.getlength(1) div 2,0.0); foreach var j in seqwhile(1,x-> x+2,x-> x< a.getlength(1)) do c[(j-1) div 2]: =a.col(j).average; end else begin c: =arrfill(b.getlength(1) div 2,0.0); foreach var j in seqwhile(1,x-> x+2,x-> x< b.getlength(1)) do c[(j-1) div 2]: =b.col(j).average; end; writeln('полученный массив: '); c.println; sort(c); writeln('отсортированный массив: '); c.print; end. пример: 1 матрица: m = 3 n = 6 0.38 4.94 1.57 -2.49 6.67 2.50 2.97 -1.44 -1.44 0.42 4.04 -2.54 5.18 0.32 -1.90 -0.09 3.79 0.12 2 матрица: k = 2 l = 7 4.92 2.57 3.57 3.05 2.62 5.29 6.17 6.62 2.17 5.80 1.31 2.55 -2.75 4.91 s1 = 6.88926995447337 s2 = 46.640484614596 полученный массив: 2.37028874986353 2.18293672249789 1.26664565655712 отсортированный массив: 1.26664565655712 2.18293672249789 2.37028874986353
// pascalabc.net 3.3, сборка 1590 от 03.12.2017 // внимание! если программа не работает, обновите версию! function newmatrix(c: string): array[,] of real; // формирует случайную матрицу указанного размера begin var (m,n): =readinteger2('число строк и столбцов в матрице '+c+': '); result: =matrrandomreal(m,n,-99,999); result.transform(t-> round(t)/10) end; procedure showmatrix(c: string; a: array[,] of real); // выводит матрицу на монитор begin writeln('*** матрица ',c,' ***'); a.println(6,1); writeln(6*a.colcount*'='); end; function partsum(a: array[,] of real): =a.elementsbyrow.takewhile(t-> t> =0).sum; // сумма элементов по строкам до первого отрицательного function getarray(a: array[,] of real): array of real; // строит искомый одномерный массив begin var b: =new list< real> ; var i: =1; while i< =a.colcount-1 do begin b.add(a.col(i).average); i+=2; end; b.sort; result: =b.toarray end; begin var a: =newmatrix('a'); var b: =newmatrix('b'); showmatrix('a',a); var sa: =partsum(a); writeln('частичная сумма равна ',sa); showmatrix('b',b); var sb: =partsum(b); writeln('частичная сумма равна ',sb); var c: =getarray(sa> sb? a: b); // матрица с большей частичной суммой write('построенный массив: '); c.println end. пример число строк и столбцов в матрице a: 4 7 число строк и столбцов в матрице b: 5 6 *** матрица a *** 5.5 68.9 30.6 15.6 8.6 58.7 31.1 51.2 11.1 84.2 4.0 68.0 -4.8 32.7 28.8 65.3 6.2 33.3 94.5 81.5 34.9 -6.1 81.0 -8.0 77.7 -2.8 -6.4 81.7 ========================================== частичная сумма равна 437.5 *** матрица b *** 66.3 34.9 52.2 -8.7 57.9 1.9 81.7 -2.4 80.1 3.8 22.3 64.2 -5.8 94.4 22.7 5.3 80.4 46.6 77.1 41.4 7.9 18.6 8.3 32.7 29.8 2.3 82.6 1.7 87.8 28.6 ==================================== частичная сумма равна 153.4 построенный массив: 32.25 32.65 56.575
Надо получить высокий уровень, то есть больше отвечать на вопросы. новички не могут написать
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
каринка190612.02.2022 01:38
-
MagistooorNaine04.05.2022 22:01
-
Alev160329.06.2021 13:11
-
belokurserezhe19.12.2021 04:30
-
Shugyla201723.03.2023 15:45
-
5596464324.01.2021 21:43
-
гаагмгмг26.11.2021 05:01
-
chelovekchelovekov9901.04.2021 02:28
-
irca198731.07.2022 19:34
-
dianacat101716.09.2022 09:00
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.