Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Необходимо удалить элемент из двумерного массива 
:(
    Опции темы
anastasiy
  Дата 17.12.2012, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.12.2012

Репутация: нет
Всего: нет



Необходимо создать процедуру удаления заданного элемента (замена его -1) из двумерного массива.

Помогите исправить ошибки

Код

procedure TForm1.Button1Click(Sender: TObject);
var
i,j,n,m,key,x,y,k:integer;
per:boolean;
begin
n:=strtoint(edit1.text);
m:=strtoint(edit2.text);
key:=strtoint(edit3.text);
i:=1;
j:=1;
k:=-1;
per:=false;
  for x := 1 to n do
    begin
    for y := 1 to m do
    begin
   while ((arr[i,j]<>key) and (i<=n) and (j<=m)) do
   begin
      j:=j+1;
   end;
      if arr[i,j]=key   then
  begin
          arr[i,j]:=k
  end;
  j:=1;
 i:=i+1;
   end;
   end;
   if (arr[i,j]=key ) then
  begin
       arr[i,j]:=k
  end
 else
 if (per=false) then
 begin
 ShowMessage(' Элемент не найден');
 end;
end;
end.


PM MAIL   Вверх
Poseidon
Дата 17.12.2012, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(anastasiy @  17.12.2012,  11:20 Найти цитируемый пост)
удаления заданного элемента (замена его -1)
Удаление и замена - это разные вещи. Но в любом случае необходимо знать оба индекса элемента. Зная их, какие могут возникнуть трудности с заменой?
Код

arr[x,y]:= -1


С удаление немного сложнее и есть некоторые нюансы. Опиши подробнее (желательно с примерами) что имено тебе требуется.

Признаюсь честно, код не смотрел, т.к. я такое читать не умею.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
anastasiy
Дата 17.12.2012, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.12.2012

Репутация: нет
Всего: нет



Цитата(Poseidon @ 17.12.2012,  13:47)
Цитата(anastasiy @  17.12.2012,  11:20 Найти цитируемый пост)
удаления заданного элемента (замена его -1)
Удаление и замена - это разные вещи. Но в любом случае необходимо знать оба индекса элемента. Зная их, какие могут возникнуть трудности с заменой?
Код

arr[x,y]:= -1


С удаление немного сложнее и есть некоторые нюансы. Опиши подробнее (желательно с примерами) что имено тебе требуется.

Признаюсь честно, код не смотрел, т.к. я такое читать не умею.

Мне нужно заменить найденный элемент на -1
PM MAIL   Вверх
Poseidon
Дата 17.12.2012, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(anastasiy @  17.12.2012,  15:05 Найти цитируемый пост)
Мне нужно заменить найденный элемент на -1
ОК. Как заменить я тебе написал выше. Знаешь ди ты индексы элемента? Если нет, то что ты знаешь что бы их найти?



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
anastasiy
Дата 17.12.2012, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.12.2012

Репутация: нет
Всего: нет



Цитата(Poseidon @ 17.12.2012,  16:43)
Цитата(anastasiy @  17.12.2012,  15:05 Найти цитируемый пост)
Мне нужно заменить найденный элемент на -1
ОК. Как заменить я тебе написал выше. Знаешь ди ты индексы элемента? Если нет, то что ты знаешь что бы их найти?

у меня есть код, мне нужно его исправить, так он не работает
Код

procedure TForm1.Button1Click(Sender: TObject);
var
i,j,n,m,key,x,y,k:integer;
per:boolean;
begin
n:=strtoint(edit1.text);
m:=strtoint(edit2.text);
key:=strtoint(edit3.text);
i:=1;
j:=1;
k:=-1;
per:=false;
  for x := 1 to n do
    begin
    for y := 1 to m do
    begin
   while ((arr[i,j]<>key) and (i<=n) and (j<=m)) do
   begin
      j:=j+1;
   end;
      if arr[i,j]=key   then
  begin
          arr[i,j]:=k
  end;
  j:=1;
 i:=i+1;
   end;
   end;
   if (arr[i,j]=key ) then
  begin
       arr[i,j]:=k
  end
 else
 if (per=false) then
 begin
 ShowMessage(' Элемент не найден');
 end;
end;
end.


PM MAIL   Вверх
boobie
Дата 22.12.2012, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 16.9.2011

Репутация: нет
Всего: нет



Епты. У тебя уже есть готовый двумерный массив, и ты вводишь в edit1 - i, а в edit2 - j столбец и строку, и меняешь значение этого элемента массива на -1? Так? Что у тебя в edit3? Что ты хочешь добится от этого кода? Задачу нормально опиши, а то нихрена не понятно... 

Кстати, а почему в Delphi в индексе идет сначала столбец, а потом строка? Т.е. mas[i,j], где i-столбец, а j-строка... В Паскале не так, вроде, было... Да и в С++ - не так.

PM   Вверх
bems
Дата 22.12.2012, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



И в Дельфи и в Паскале и в С/С++ первый индекс двумерного массива означает индекс одномерного массива в двумерном, а второй - индекс элемента в этом одномерном массиве. А такие вещи как "строки" и "столбцы" довольно эфемерны, и зависят от того, каким способом индексы используются при выводе на экран.


--------------------
Обижено школьников: 8
PM MAIL   Вверх
northener
Дата 23.12.2012, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(bems @  22.12.2012,  16:37 Найти цитируемый пост)
И в Дельфи и в Паскале и в С/С++ первый индекс двумерного массива означает индекс одномерного массива в двумерном, а второй - индекс элемента в этом одномерном массиве. А такие вещи как "строки" и "столбцы" довольно эфемерны, и зависят от того, каким способом индексы используются при выводе на экран. 

Или при записи в файл, откуда они потом считываются. А в файле (текстовом) как раз существуют строки и столбцы. 
А автор пока так и не сказал как и откуда он берет/получает массив arr!



--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.