15.12.2013, 00:24 | #1 (permalink) |
Member
Регистрация: 06.12.2013
Сообщений: 25
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Матрица. Сформировать вектор по условию
вот сделал формирование самой матрицы. а как отсюда вектор этот вытащить не догоняю.. const n1 = 20; m1 = 20; type index1 = 1..n1; index2 = 1..m1; matrix = array[index1, index2]of real; var n, i: index1; m, j: index2; A: matrix; begin write('введите кол-во строк n= ');readln(m); write('введите кол-во столбцов m= ');readln(n); writeln('_____________________________________'); writeln('исходная матрица А'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=-30+random(50); write(a[i,j]:4); end; writeln; end; writeln('_____________________________________'); end. |
15.12.2013, 00:24 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Обязательно обратите внимание на аналогичные топики Сформировать и вывести матрицу Матрица Из положительных элементов исходного массива сформировать новый массив Матрица Сформировать и вывести массив Логический вектор. Паскаль |
15.12.2013, 09:24 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да легко. Вот только понять бы, в чем великий замысел перепутывания параметров n и m (запрашивается одно, вводится другое и т.п.)? Чтобы коварный враг ничего не понял? Ну я, уж извините, эту дурость убрал. И еще. Ввод данных и формат вывода у Вас сделаны для матрицы с элементами типа Integer, а в то же время матрица объявляется, как Real. Ни к чему это. Исправил.
Код:
const n1 = 20; m1 = 20; type index1 = 1..n1; index2 = 1..m1; index3 = 1..n1*m1; matrix = array[index1, index2] of Integer; vector = array[index3] of Integer; var n, i: index1; m, j: index2; k : index3; A: matrix; B: vector; c, d : real; N_B : byte; begin write('n= '); readln(n); write('m= '); readln(m); writeln('_____________________________________'); writeln('Matrix:'); for i:=1 to n do begin for j:=1 to m do begin A[i,j]:=-30+random(50); write(A[i,j]:4); end; writeln; end; writeln('_____________________________________'); write('c= '); readln(c); write('d= '); readln(d); writeln('_____________________________________'); N_B:=0; for i:=1 to n do for j:=1 to m do if (A[i,j]>=c) and (A[i,j]<=d) then begin Inc(N_B); B[N_B]:=A[i,j]; end; writeln('Array:'); for k:=1 to N_B do write(B[k]:4); writeln end. |
15.12.2013, 15:15 | #4 (permalink) |
Member
Регистрация: 06.12.2013
Сообщений: 25
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо большое!) за замечания в том числе) учту на будущее.
всё работает только A[i,j] "по модулю" добавлю) |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|