Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обработка динамического массива(StringGrid)

33K
18 апреля 2008 года
Dashulka
10 / / 12.04.2008
Задание такое: из массива удалить элементы между первым и вторым элементами, модули которых меньше заданной величины.Подскажите пожалуйста, что не так?
Код:
procedure TForm1.DelClick(Sender: TObject);
Var i,j,x,y:integer;
begin
  for i:=0 to Sg2.ColCount-1 do
   sg2.Cells[i,1]:=Sg1.Cells[i,1];
  for i:=0 to high(m) do
   if (abs(m)<abs(chislo.Value)) and (abs(m[i+1])>abs(chislo.Value)) then
    for j:=i+1 to sg2.ColCount-1 do
     m[j]:=m[j+1];
  setlength(m,sg2.ColCount-1);
  sg2.ColCount:=sg2.ColCount-1;
  for i:=0 to sg2.colcount-1 do
   sg2.Cells[i,1]:=inttostr(m);
  Del.Enabled:=false;
  Sort.Enabled:=true;
  chislo.ReadOnly:=true;
end;
6
18 апреля 2008 года
George
4.1K / / 05.01.2007
1. Код не оформлен.
2. Хотя бы комментарии надо было написать - как разбираться в этих переменных? Или хотя бы имена им (переменным) нормальные присвоить.

Тогда можно рассчитывать на помощь...

3. Каким образом можно удалить элемент, находящийся между первым и вторым элементтом??? Между первым и вторым элементом ничего нет. ;)
303
18 апреля 2008 года
makbeth
1.0K / / 25.11.2004
Dashulka, постановка задачи какая-то кривая. То есть, я так понимаю, что в массиве должно быть только два числа, которые по модулю меньше заданного, или? Неясно... А если все числа массива удовлетворяют этому условию?
6
18 апреля 2008 года
George
4.1K / / 05.01.2007
Я так понял, что надо найти 2 числа, которые меньше заданного по модулю и удалить все элементы, находящиеся между этими 2-мя числами. Но по любому код нечитаемый какой-то. Даже разбираться в нём неохота. Комменты хотя бы если бы были...
303
18 апреля 2008 года
makbeth
1.0K / / 25.11.2004
Дык я точно также понял. Поэтому и спросил, что делать когда все числа меньше заданного.
Программа в принципе понятна, и понятно что она совершенно не решает поставленную задачу (по крайней мере так, как мы ее поняли :) )
6
18 апреля 2008 года
George
4.1K / / 05.01.2007
Аффтар вообще тему читает? ;)
8
18 апреля 2008 года
mfender
3.5K / / 15.06.2005
Широкую тему зафлудили слегка, поэтому перенесём в отдельное обсуждение )))
261
18 апреля 2008 года
ahilles
1.5K / / 03.11.2005
ВСЁ! хватить флудить! топикстартёр, давай нормальную постановку задачи!
33K
19 апреля 2008 года
Dashulka
10 / / 12.04.2008
В общем, целиком задание такое: Из массива удалить элементы между первым и вторым элементами, модули которых меньше заданной величины, а затем расположить элементы в порядке возрастания модулей и вставить заданное число, не нарушая порядка.Форма и то что смогла написать там
1.9K
19 апреля 2008 года
andriano
474 / / 10.01.2008
А то же самое, только по-русски?
Т.к. первый и второй элементы - соседние, то между ними ничего нет и быть не может. Следовательно и удалять нечего.
Какие элементы разместить по возрастанию? Удаленные? Т.к. их нет, этот шаг тоже пропускаем.
Куда вставить заданное число и порядок чего при этом не следует нарушать?
33K
19 апреля 2008 года
Dashulka
10 / / 12.04.2008
что вы на меня набросились, не я же задание проидумывала:( .
попробую объяснить на примере:
допустим, заданное число: 5
исходный массив: 6 8 3 6 -7 8 9 2 3
после удаления: 6 8 3 2 3
после сортировки и вставки: 2 3 3 5 6 8
1.9K
20 апреля 2008 года
andriano
474 / / 10.01.2008
Ты просишь у нас помощи.
Чтобы мы могли это сделать, мы должны понимать задачу.
Единственный для нас источник информации о задаче - это ты.
Пока ты не сможешь толково сформулировать задачу, мы ничего сделать не сможем.
Если тебе самой непонятен смысл задачи, следует уточнить ее у того, кто ее задал.
Другого пути нет.

Что же касается приведенного тобой примера "решения", он не согласуется с условием задачи, как она была тобой сформулирована.
3.2K
20 апреля 2008 года
Гудвин
186 / / 22.12.2007
люди хорош прикалываться все до безобразия понятно, было б только время
33K
20 апреля 2008 года
Dashulka
10 / / 12.04.2008
Задачу я написала слово в слово как она мне была дана, а объяснили мне ее так, как в примере.Я уже не знаю как еще объяснить.
У меня сама процедура даже написа, только без использования массива.
Код:
procedure TForm1.DelClick(Sender: TObject);
Var i,j,x,y:integer;
begin
for i:=0 to Sg2.ColCount-1 do
  sg2.Cells[i,1]:=Sg1.Cells[i,1];
for i:=0 to sg2.ColCount-1 do
if (abs(strtoint(sg2.Cells[i,1]))<abs(Chislo.value)) then
begin
x:=i;
break;
end;
for j:=x+1 to sg2.ColCount-1 do
if (abs(strtoint(sg2.Cells[j,1]))<abs(Chislo.value)) then
begin
y:=j;
break;
end;
if x<>(y-1) then
begin
For i:=x+1 to sg2.ColCount-(y-x) do
sg2.Cells[i,1]:=sg2.Cells[(i+(y-x-1)),1];
sg2.ColCount:=sg2.ColCount-(y-x)+1;
end;
sg3.ColCount:=sg2.ColCount;
sg4.ColCount:=sg2.ColCount;
Del.Enabled:=false;
Sort.Enabled:=true;
Chislo.ReadOnly:=true;
end;

А его использовать обязательно,вот я и засела.переделала, а она не работает.
1.9K
20 апреля 2008 года
andriano
474 / / 10.01.2008
Спрошу по-другому: ты сама задачу понимаешь?
Какие элементы могут быть между первым и вторым?
320
20 апреля 2008 года
m_Valery
1.0K / / 08.01.2007
[COLOR="Red"]Раз тему перенесли в Студентам,значит - тут соблюдать Правила раздела Студентам.Напоминаю пункты 4 и 10.Не флудить и не делать замечания топикстартеру, для этого есть кнопка "Сообщить модератору".Буду штрафовать за нарушение Правил.Задание - нормальное.Кто не понимает,рекомендую воздержаться от комментов...[/COLOR]
292
20 апреля 2008 года
Matush
726 / / 14.01.2004
Хорош флудить.
Формулировка конечно не очень, но в универах практически только такая существует.
Обьясняю условие.
Между первым и вторым - имеется ввиду между первым найденным и вторым найденным.

P.S. Будьте внимательнее и терпеливее и давайте уже покончим с безсмыслнными постами.
P.S.2. Это было предупреждение
6
21 апреля 2008 года
George
4.1K / / 05.01.2007
Тогда вопрос - что именно не работает? Ошибку выдаёт или результат отличается от ожидаемого?
33K
22 апреля 2008 года
Dashulka
10 / / 12.04.2008
Удаляется одна ячейка, а все остальное заменяется на нули.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог