19.12.2019, 12:05 | #1 (permalink) |
Новичок
Регистрация: 19.12.2019
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Получить вектор
|
19.12.2019, 12:05 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Скорее всего тут можно найти ответ Вектор указателей на объекты класса Ввести матрицу в вектор |
19.12.2019, 13:51 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
А то, что бывают на свете разные языки программирования, Вы в курсе? И то, что, обращаясь за помощью, необходимо язык, на котором нужно выполнить задание, указывать, Вы не догадываетесь?
|
19.12.2019, 14:47 | #5 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ох, простите великодушно, на метки не глянул. Как-то привык к тому, что люди указывают язык явно.
Впрочем, понятнее не стало. Проясните, пожалуйста, вот этот пассаж: Цитата:
Мутно сформулировано. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
20.12.2019, 14:24 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Значит, так.
1. Ни ABC, ни тем более ABC Net, у меня нету, поэтому программа написана на Turbo (Free) Pascal; впрочем, не думаю, что это существенно. 2. Вы не соблаговолили выложить хотя бы примеры матриц для считывания и обработки, и я даже не в курсе: – какова их размерность? – одинаковый у них размер или разный? – квадратные они или прямоугольные? а тянуть из Вас информацию, извините, "клещами" — с какой стати? Поэтому в программе принято: 1. Обе матрицы — квадратные, размерности NхN. 2. Поскольку файл с матрицами не предоставлен, в программе применена генерация случайных чисел. 3. При вычислении средних арифметических предполагается, что в обеих матрицах есть хотя бы один элемент, для которого выполняется условие f(x[i,j])>0; защита от невыполнения этого предположения в программе не предусмотрена (при невыполнении возникает деление на 0). Вроде всё. Код:
Const N=5; {Matrix dimension} Type Ar=Array[1..N,1..N] of real; Vc=Array[1..N] of Integer; Var i,j,func_num:Integer; M1,M2:Ar; Y:Vc; Ar_m1, Ar_m2, Maximal:Real; Function f1(x:real):real; begin f1:=x; end; Function f2(x:real):real; begin f2:=Sin(x)+Cos(x); end; Function f(x:real;vr:integer):real; begin if vr=1 then f:=f1(x) else f:=f2(x); end; Function Arithmetic_mean(Z:Ar;vr:integer):Real; var p,q,El_num:integer; Sum:Real; begin Sum:=0; El_num:=0; for p:=1 to N do for q:=1 to N do if f(Z[p,q],vr)>=0 then begin Inc(El_num); Sum:=Sum+Z[p,q]; end; Arithmetic_mean:=Sum/El_num; end; Procedure Vect_form(Z:Ar; var Vz:Vc); var p,q:Integer; b:boolean; begin for q:=1 to N do begin b:=false; for p:=1 to N do if Z[p,q]<0 then b:=true; if b then Vz[q]:=0 else Vz[q]:=1; end; end; Function Max_el(Z:Ar):Real; var p,q:integer; Mx:Real; begin Mx:=Z[1,1]; for p:=1 to N do for q:=1 to N do if Z[p,q]>Mx then Mx:=Z[p,q]; Max_el:=Mx; end; Begin Randomize; for i:=1 to N do for j:=1 to N do begin M1[i,j]:=(-0.5+Random)*6; M2[i,j]:=Sqr((-0.5+Random)*3); end; Writeln('Matrix1:'); for i:=1 to N do begin for j:=1 to N do write(M1[i,j]:8:3); writeln; end; Writeln; Writeln('Matrix2:'); for i:=1 to N do begin for j:=1 to N do write(M2[i,j]:8:3); writeln; end; Writeln; Writeln('Press "Enter" to continue...'); Readln; Write('Choose the function: 1 - f(x)=x, 2 - f(x)=Sin(x)+Cos(x) '); Readln(func_num); Writeln; Ar_m1:=Arithmetic_mean(M1,func_num); Ar_m2:=Arithmetic_mean(M2,func_num); If Ar_m1<Ar_m2 then begin Vect_form(M1,Y); Maximal:=Max_El(M2); Writeln('Vector (Matrix1):'); for j:=1 to N do write(Y[j]:2); Writeln; Writeln('Maximal element (Matrix2):'); Writeln(Maximal:8:3); end else begin Vect_form(M2,Y); Maximal:=Max_El(M1); Writeln('Vector (Matrix2):'); for j:=1 to N do write(Y[j]:2); Writeln; Writeln('Maximal element (Matrix1):'); Writeln(Maximal:8:3); end; Readln; End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Метки |
pascalabcnet |
Опции темы | |
Опции просмотра | |
|
|