Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 5

Двумерный динамический массив

21.03.2020, 09:11. Показов 596. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Переставить в обратном порядке элементы первой строки матрицы, элементы которой упорядочены по убыванию. Если такой строки нет, вычислить общую сумму элементов тех строк матрицы, последний элемент которых равен нулю. Массив динамический
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.03.2020, 09:11
Ответы с готовыми решениями:

Двумерный динамический массив
Нужно удалить центральную(ые) строку(и) на F3 и аналогично со столбцами(F4). В данном случае нужно удалить 3 и 4 строку и 4 столбец

Динамический двумерный массив
Помогите, пожалуйста решить задачу. Вводится число N с клавиатуры. Нужно рандомно заполнить матрицу N*N и закрасить отрицательные...

Как создать двумерный динамический массив с одним фиксированным измерением?
Что имеется: текстовый файл, в котором содержатся данные о координатах по двум осям и цвет блока (ч/б): (пример: -2 -3 20 -2 -6 25...

3
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 5
23.03.2020, 09:34  [ТС]
Переставить в обратном порядке элементы первой строки матрицы, элементы которой упорядочены по убыванию. Если такой строки нет, вычислить общую сумму элементов тех строк матрицы, последний элемент которых равен нулю. Массив динамический
Можете проверить программу? Она не работает, где ошибка?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
program Lab_5;
uses  WorkOnTheMatrix;
var
   a: matrix;
   m, n, k: integer;
   f: TextFile;
begin
  if ParamCount < 2 then
  begin
    writeln('Недостаточно параметров!');
    exit;
  end;
  try
    AssignFile(f, ParamStr(1));
    Reset(f);
  except
    writeln('Невозможно открыть файл ''',ParamStr(1),''' для чтения');
    exit;
  end;
  try
    Input(a, m, n, f);
  except
    writeln('Файл ''',ParamStr(1),''' содержит неверные данные');
    CloseFile(f);
    exit;
  end;
  CloseFile(f);
  try
    AssignFile(f, ParamStr(2));
    Rewrite(f);
  except
    writeln('Файл ''',ParamStr(2),''' содержит неверные данные');
    CloseFile(f);
    exit;
  end;
  
  k:=FindString(a);
  if (k <> (-1)) then
    begin
      ChangeString(a[k]);
      Output(a, m, n, f);
    end
  else
  writeln(f, SumofElements(a));
  
  CloseFile(f);
  
  end.
 
Используемый модуль программы:
    
Unit WorkOnTheMatrix;
interface
type
    matrix = array of array of real;
    
procedure Input(var x: matrix; var m, n: integer; var f: Textfile);
function FindString (const x: matrix): integer;
function ElementsAreDescending(const x: array of real): boolean;
procedure ChangeString( var x: array of real);
procedure Output(const x: matrix; m, n: integer; f: TextFile);
function FindStringWithLastZeroElement( var x: array of real):real;
function SumOfElements(const x: matrix): real;
 
implementation
 
procedure Input(var x: matrix; var m, n: integer; var f: Textfile);
var i, j: integer;
begin
readln(f, m, n);
Setlength(x, m);
for i:= 0 to (m - 1) do
Setlength(x[i], n);
for i:= 0 to (m - 1) do
for j:= 0 to (n - 1) do
read(f, x[i, j]);
end;
 
function FindString (const x: matrix): integer;
var
 i: integer;
begin
  Result:= -1;
  for i:= 0 to High(x) do
     if ElementsAreDescending(x[i]) then
     begin
       Result:= i;
       exit;
     end;
end;
 
function ElementsAreDescending(const x: array of real): boolean;
var
  i: integer;
begin
 result:= True;
 i:= 0;
 while result and  (i <= High(x)) do
  if (x[i] < x[i + 1]) then
  result:= false;
 i:= i + 1;
 end;
 
procedure ChangeString( var x: array of real);
var i, j: integer;
    r: real;
begin
  for i:= 0 to (High(x)- 1)  do
   for j:= (i + 1)  to High(x) do
    begin
     r:= x[i];
     x[i]:= x[j];
     x[j]:= r;
    end;
end;
 
procedure Output(const x: matrix; m, n: integer; f: TextFile);
var i, j: integer;
begin
 writeln(f, 'Преобразованная матрица');
 for i:= 0 to (m-1) do
 begin
   for j:= 0 to (n-1) do
  write(f, x[i,j]);
  end;
end;
 
function FindStringWithLastZeroElement( var x: array of real):real;
var i: integer;
begin
 if x[High(x)]= 0 then
   for i:= 0 to High(x)do
   begin
   result:= result + x[i]; 
   end
 else
  result:= 0;
end;
 
function SumOfElements(const x: matrix): real;
var
i: integer;
begin
  for i:= 0 to High(x) do
  result:= result + FindStringWithLastZeroElement(x[i]);
end;
 
end.
0
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 5
23.03.2020, 10:32  [ТС]
Переставить в обратном порядке элементы первой строки матрицы, элементы которой упорядочены по убыванию. Если такой строки нет, вычислить общую сумму элементов тех строк матрицы, последний элемент которых равен нулю. Массив динамический
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
program Lab_5;
uses  WorkOnTheMatrix;
var
   a: matrix;
   m, n, k: integer;
   f: TextFile;
begin
  if ParamCount < 2 then
  begin
    writeln('Недостаточно параметров!');
    exit;
  end;
  try
    AssignFile(f, ParamStr(1));
    Reset(f);
  except
    writeln('Невозможно открыть файл ''',ParamStr(1),''' для чтения');
    exit;
  end;
  try
    Input(a, m, n, f);
  except
    writeln('Файл ''',ParamStr(1),''' содержит неверные данные');
    CloseFile(f);
    exit;
  end;
  CloseFile(f);
  try
    AssignFile(f, ParamStr(2));
    Rewrite(f);
  except
    writeln('Файл ''',ParamStr(2),''' содержит неверные данные');
    CloseFile(f);
    exit;
  end;
  
  k:=FindString(a);
  if (k <> (-1)) then
    begin
      ChangeString(a[k]);
      Output(a, m, n, f);
    end
  else
  writeln(f, SumofElements(a));
  
  CloseFile(f);
  
  end.
 
 
    
Unit WorkOnTheMatrix;
interface
type
    matrix = array of array of real;
    
procedure Input(var x: matrix; var m, n: integer; var f: Textfile);
function FindString (const x: matrix): integer;
function ElementsAreDescending(const x: array of real): boolean;
procedure ChangeString( var x: array of real);
procedure Output(const x: matrix; m, n: integer; f: TextFile);
function FindStringWithLastZeroElement( var x: array of real):real;
function SumOfElements(const x: matrix): real;
 
implementation
 
procedure Input(var x: matrix; var m, n: integer; var f: Textfile);
var i, j: integer;
begin
readln(f, m, n);
Setlength(x, m);
for i:= 0 to (m - 1) do
Setlength(x[i], n);
for i:= 0 to (m - 1) do
for j:= 0 to (n - 1) do
read(f, x[i, j]);
end;
 
function FindString (const x: matrix): integer;
var
 i: integer;
begin
  Result:= -1;
  for i:= 0 to High(x) do
     if ElementsAreDescending(x[i]) then
     begin
       Result:= i;
       exit;
     end;
end;
 
function ElementsAreDescending(const x: array of real): boolean;
var
  i: integer;
begin
 result:= True;
 i:= 0;
 while result and  (i <= High(x)) do
  if (x[i] < x[i + 1]) then
  result:= false;
 i:= i + 1;
 end;
 
procedure ChangeString( var x: array of real);
var i, j: integer;
    r: real;
begin
  for i:= 0 to (High(x)- 1)  do
   for j:= (i + 1)  to High(x) do
    begin
     r:= x[i];
     x[i]:= x[j];
     x[j]:= r;
    end;
end;
 
procedure Output(const x: matrix; m, n: integer; f: TextFile);
var i, j: integer;
begin
 writeln(f, 'Преобразованная матрица');
 for i:= 0 to (m-1) do
 begin
   for j:= 0 to (n-1) do
  write(f, x[i,j]);
  writeln(f);
  end;
end;
 
function FindStringWithLastZeroElement( var x: array of real):real;
var i: integer;
begin
 if x[High(x)]= 0 then
   for i:= 0 to High(x)do
   begin
   result:= result + x[i]; 
   end
 else
  result:= 0;
end;
 
function SumOfElements(const x: matrix): real;
var
i: integer;
begin
  for i:= 0 to High(x) do
  result:= result + FindStringWithLastZeroElement(x[i]);
end;
 
end.
0
 Аватар для canadamoscow
1179 / 430 / 194
Регистрация: 23.03.2020
Сообщений: 1,021
Записей в блоге: 1
25.03.2020, 18:49
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
begin
  var (n, m, sum) := (3, 4, 0); // размер матрицы n*m
  var a := MatrRandom(n, m, 0, 3).Println;  
  For var x := 0 to a.Rows.Count-1 do
    begin 
      if a.Row(x)[m-1] = 0 then  sum += a.Row(x).Sum;  
      if a.Row(x).Order.SequenceEqual(a.Row(x)) then 
         begin
           a.SetRow(x, a.Row(x).Reverse);
           Println('Перевернули строку номер', x+1);
           a.Println;
           exit
         end;  
    end;
  Println('Сумма рядов с 0 в конце =', sum);  
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2020, 18:49
Помогаю со студенческими работами здесь

Объявить двумерный динамический массив, а после выделить память под него
Подскажите, как объявить двумерный динамический массив, а после выделить память под него. Пытался сделать так:usingAlphabet:array of array...

Создать и обработатть двумерный динамический массив
Помогите!!! Задана матрица А. Выполните следующие преобразования: отрицательные элементы умножить на последний элемент...

Нужно считать файл в динамический двумерный массив
Нужно считать файл в двумерный динамический массив, вычислив количество строк в файле...

Переделать программу с двумерным статическим массивом в двумерный динамический массив
Ни как не пойму, как переделать программу с двумерным статическим массивом в двумерный динамический массив..., но ещё нужно сделать так,...

Сформировать двумерный динамический массив и добавить в него строку с заданным номером
2. Сформировать двумерный динамический массив. Добавить в него строку с заданным номером;


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru