0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 7
1

Удалить все строки двумерного динамического массива, в которых второй элемент больше предпоследнего

17.04.2016, 15:20. Показов 1665. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с задачей: Дан двумерный динамический массив, Удалить все строки, в которых второй элемент больше предпоследнего. Результат в StringGrid нужно вывести.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2016, 15:20
Ответы с готовыми решениями:

Удалить все строки, в которых второй элемент больше предпоследнего
Дан двумерный массив размером n*m, заполненный случайным образом. 1. Заменить минимальный...

Удалить все строки двумерного массива, в которых есть хотя бы один нулевой элемент
Как реализовать двумерный массив с помощью ДСЧ и вручную и выполнить это действия? 2)Удалить все...

Как сравнить столбцы динамического двумерного массива и удалить второй одинаковый?
Нужно написать такой способ чтобы одинаковые столбцы запоминались не более одного раза и вывести...

Удалить строки из двумерного динамического массива, которые удовлетворяют определенным условиям
Подскажите, пожалуйста, как удалить строки из двумерного динамического массива, которые...

1
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
17.04.2016, 19:26 2
Лучший ответ Сообщение было отмечено Ly_b_a как решение

Решение

Delphi
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
var
  Form1: TForm1;
  a: array of array of integer;
  n,m:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
randomize;
n:=Strtoint(edit1.Text);
m:=Strtoint(edit2.Text);
Setlength(a,n,m);
Stringgrid1.rowcount:=n;
Stringgrid1.colcount:=m;
for i:=0 to n-1 do
for j:=0 to m-1 do
 begin
  a[i,j]:=random(100);
  Stringgrid1.cells[j,i]:=inttostr(a[i,j]);
 end
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var i,j,k,p,f:integer;
begin
i:=0;
p:=n;
f:=p; //пока не удалено ни одной строки
while i<n do
if a[i,1]>a[i,m-2] then
 begin
  dec(f);
  if i=n-1 then dec(n)
  else
   begin
    for k:=i to n-2 do//сдвигаем строки на 1 вверх
    for j:=0 to m-1 do
    a[k,j]:=a[k+1,j];
    dec(n);  //уменьшаем количество строк
   end
 end
else i:=i+1; //если 2й не больше предпоследнего
if f=0 then showmessage('Все строки удалены!')
else if f=p then showmessage('Ни одна строка не удалена!')
else
 begin
  with stringgrid2 do
   begin
    rowcount:=n;
    colcount:=m;
    for i:=0 to n-1 do
    for j:=0 to m-1 do
    cells[j,i]:=inttostr(a[i,j]);
   end
 end
end;
1
17.04.2016, 19:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2016, 19:26
Помогаю со студенческими работами здесь

Определить, какой элемент двумерного динамического массива больше: расположен в левом верхнем или в верхнем правом углу
Определить а) какой элемент двумерного массива больше: расположен в левом верхнем или в верхнем...

Матрицы. Удалить все строки, все элементы которых больше 34
1) Дана вещественная матрица А(n,m),где n&gt;10, m&lt;10. Разработайте программу, которая удаляет все...

Скопировать из первого файла во второй все строки, длина которых больше 1 символа
Написать программу, открывающую один текстовый файл (file1.txt) на чтение, и другой текстовый файл...

Удалить все столбцы, в которых первый элемент больше последнего
Пишу на codeblocks. Раньше в других программах. Не могу поставить брейкпоинт и понять в чем ошибка....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru