Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 12.07.2019
Сообщений: 8
1

Удалить все строки, в которых есть отрицательный элемент, в двумерном массиве StringGrid

12.07.2019, 21:01. Показов 1286. Ответов 17

Author24 — интернет-сервис помощи студентам
Дан двумерный массив, сформированный случайным образом (заполнен числами от -100 до 100).
Нужно запрограммировать кнопку, которая удалит все строки,в которых есть отрицательный элемент.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2019, 21:01
Ответы с готовыми решениями:

В двумерном массиве найти отрицательный элемент
Дан двумерный массив. Значения заполняются вручную.Нужно найти максимальный отрицательный элемент

В двумерном массиве поменять местами в каждой строке первый отрицательный и последний положительный элемент.
Помогите пожалуйста решить задачку!Что-то аналогичной нигде найти не могу!В двумерном массиве...

Memo удалить все строки в которых есть слово Test
как так сделать?)

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

17
Злостный нарушитель
9514 / 5158 / 1175
Регистрация: 12.03.2015
Сообщений: 24,312
13.07.2019, 11:43 2
Пожалуйста, только не через TStringGrid... I can't take it amymore!......
0
Модератор
3749 / 2249 / 782
Регистрация: 15.11.2015
Сообщений: 8,959
13.07.2019, 12:13 3
Сделай массив побольше и наверняка там в каждой строке будет отрицательное число, можно будет все удалить.

Добавлено через 1 минуту
Вы, хотя бы, свои заготовки кидайте, с описанием что не получается.

Добавлено через 24 минуты
Цитата Сообщение от Verevkin Посмотреть сообщение
только не через TStringGrid
А что, хорошая штука же?
0
Злостный нарушитель
9514 / 5158 / 1175
Регистрация: 12.03.2015
Сообщений: 24,312
13.07.2019, 12:22 4
Цитата Сообщение от AzAtom Посмотреть сообщение
А что, хорошая штука же?
Преподов, которые учат работать с матрицами через StringGrid, черти в аду варят в отдельном котле с кипящим вольфрамом.

ахтунг! не отлаживал, писал на заборе.
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
type TIntDynArray2D = array of array of int32;
 
function NegExists(const x: TIntDynArray2D; const line: int32): boolean;
var
  idx: int32;
begin
  for idx:= 0 to length(x[line]) - 1 do
    if x[line, idx] < 0 
      then exit(true);
  result:= false;    
end;
 
function DelNegatives(var x: TIntDynArray2D): int32;
var
  line: int32;
  temp: TIntDynArray2D;
begin
  result:= 0;
  
  for line:= 0 to length(x) - 1 do
    if not NegExists(x, line)
      then begin
             setlength(temp, 1 + length(temp));
             temp[high(temp)]:= copy(x[line]);
           end;
           
  x:= temp;
  result:= length(x);
end;
0
D1973
13.07.2019, 17:34
  #5

Не по теме:

Цитата Сообщение от Verevkin Посмотреть сообщение
которые учат работать с матрицами через StringGrid, черти в аду варят в отдельном котле с кипящим вольфрамом
Нифига подобного... Вольфрам - штука дорогая, поэтому варим в простой серной кислоте...

0
2 / 2 / 0
Регистрация: 02.02.2016
Сообщений: 133
15.07.2019, 09:09 6
Удалить строки, где есть хотя бы 1 отрицательный элемент?
Дык... Внешний цикл по строкам (от последней к первой), внутренний цикл по столбцам. Если значение в текущей строке и текущем столбце меньше 0, то удалить строку и выйти из внутреннего цикла.
0
1437 / 1014 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
16.07.2019, 14:53 7
Цитата Сообщение от swd1999 Посмотреть сообщение
то удалить строку и выйти из внутреннего цикла
Гы, молодца, дядька, добре рассуждаеш Как Вы удалите из массива строку?
Решение в теме есть уже.

Не по теме:

Цитата Сообщение от D1973 Посмотреть сообщение
поэтому варим в простой серной кислоте..
Теперь я знаю, D1973, Вашу тёмную сущность :D

0
2 / 2 / 0
Регистрация: 02.02.2016
Сообщений: 133
16.07.2019, 16:04 8
Вы не знаете, как удалить строку в StringGrid? Тогда что вы тут делаете.
Вы не знаете, как удалить строку из обычного динамического массива? Тогда что вы тут делаете.
0
Модератор
9611 / 6218 / 2423
Регистрация: 21.01.2014
Сообщений: 26,522
Записей в блоге: 3
16.07.2019, 16:27 9
swd1999, Вы знаете, как удалить строку из дин. массива (не из СтрингГрида) максимально эффективно? Тогда почему никто не видит Вашего кода?

Добавлено через 1 минуту
Цитата Сообщение от Matan! Посмотреть сообщение
Теперь я знаю Вашу тёмную сущность
Matan!, ну дык... Работа такая...
0
2 / 2 / 0
Регистрация: 02.02.2016
Сообщений: 133
16.07.2019, 16:39 10
Тогда почему никто не видит Вашего кода?
В Королевстве Дельфи приучили не решать задачи за других. Где исходник от топикстартера? Помочь - можем, сделать "за" - нет.
0
Модератор
3749 / 2249 / 782
Регистрация: 15.11.2015
Сообщений: 8,959
16.07.2019, 16:45 11
Цитата Сообщение от D1973 Посмотреть сообщение
как удалить строку из дин. массива (не из СтрингГрида) максимально эффективно?
Максимально эффективно - это чтобы выполнялось быстрее, или чтобы самому писать меньше кода?
0
1437 / 1014 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
16.07.2019, 16:47 12

Не по теме:

Цитата Сообщение от swd1999 Посмотреть сообщение
В Королевстве Дельфи приучили не решать задачи за других. Где исходник от топикстартера? Помочь - можем, сделать "за" - нет.
Тогда весь Ваш вброс здесь - пустой трёп. Ещё раз - ответ уже был дан Веревкиным.
И на Вашу провокацию я промолчу, не вижу смысла отвечать.



Добавлено через 27 секунд
Цитата Сообщение от AzAtom Посмотреть сообщение
Максимально эффективно - это чтобы выполнялось быстрее, или чтобы самому писать меньше кода?
Да хоть что-то.
0
Модератор
3749 / 2249 / 782
Регистрация: 15.11.2015
Сообщений: 8,959
16.07.2019, 16:55 13
Если это массив, в котором хранятся ссылки на массивы-строки, то можно просто освободить память удаляемой строки и сдвинуть указатели верхнего массива.
0
D1973
16.07.2019, 16:58
  #14

Не по теме:

Цитата Сообщение от swd1999 Посмотреть сообщение
В Королевстве Дельфи
Это, конечно, хорошо и правильно... Но, сами знаете, в чужой монастырь со своим-то уставом... Не хотите отвечать по теме - пройдите молча мимо... Тут, увы и ах, зачастую сплошной решебник школьных задач, особенно в текущем разделе...

0
1437 / 1014 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
16.07.2019, 16:58 15
AzAtom, Да я знаю это. Можно сдвигать значения, можно сдвигать ссылки, можно копировать во временной массив необходимые строки. Бесит только выпендрёж определённых челов, которые фыркают тут с высокой колокольни, и нихрена дельного не говорят(не про Вас).
0
Модератор
9611 / 6218 / 2423
Регистрация: 21.01.2014
Сообщений: 26,522
Записей в блоге: 3
16.07.2019, 17:02 16
Цитата Сообщение от AzAtom Посмотреть сообщение
Если это массив, в котором хранятся ссылки на массивы-строки
AzAtom, не надо мудрить... Это обыкновенная числовая матрица и удалить строки из нее, действительно, достаточно просто... И правильно Verevkin сказал:
Цитата Сообщение от Verevkin Посмотреть сообщение
только не через TStringGrid
но, хочу заметить, и Вы тоже правы в своем заявлении:
Цитата Сообщение от AzAtom Посмотреть сообщение
Сделай массив побольше и наверняка там в каждой строке будет отрицательное число
Так что - ждем хоть какой-то реакции ТС-а...

Добавлено через 55 секунд
 Комментарий модератора 
Matan!, спокойнее!!! Еще флэйма тут не хватало!!!
0
Matan!
16.07.2019, 17:08
  #17

Не по теме:

Молчу, не пищу :)

0
Модератор
3749 / 2249 / 782
Регистрация: 15.11.2015
Сообщений: 8,959
16.07.2019, 20:37 18
Если динамический массив содержит ссылки на вложенные динамические массивы "строк", то самый эффективный способ удаления строки будет поменять местами ссылки на удаляемую строку и последнюю строку и потом уменьшить размер массива. При этом копирования самих данных не будет.

Хотя, наверное, работа напрямую с указателями в динамическом массиве не приветствуется.
0
16.07.2019, 20:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2019, 20:37
Помогаю со студенческими работами здесь

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

Вставить после всех столбцов, содержащих максимальный элемент, столбец из единиц в двумерном массиве StringGrid
Дан двумерный массив, сформированный случайным образом (заполнен числами от -100 до 100). Нужно...

Вычислить количество строк матрицы, в которых есть хоть одни отрицательный элемент
Дана матрица размер N на M. Вычислить кол-во строк матрицы в которой есть хоть 1 отрицательный...

Найти сумму элементов строки матрицы, если в ней есть отрицательный элемент
не могу понять где накосячил)в начале прога ищет в строке отрицатльный элемент,если находит то...


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

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