Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.02.2013, 22:46
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию Ввести символьную матрицу размером 3х2 и образовать массив с элементами первого столб

Код:
const n=3;
m=2;
var a:array [1..N,1..M] of Char;
v:array[1..M] of Char;
i,j:byte;
begin
for i:=1 to N do
for j:=1 to M do
StringGrid1.Cells[j,i]:=a[i,j];
for i:=1 to N do
V[i]:=a[i,M];
for i:=1 to N do
memo1.lines.add(V[i]);
end;

end.
Админ: Пользуемся тегами, иначе последуют санкции!

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

Последний раз редактировалось Admin, 17.02.2013 в 22:51.
Ответить с цитированием
  #2  
Старый 18.02.2013, 00:15
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

С какого перепуга что-то должно работать?
Код:
var a:array [1..N,1..M] of Char; 
данный массив нигде не заполняется и, если массив объявлен как глобальная переменная, там будут 0, если как локальная - "мусор". Вот "мусор" и выводится.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 18.02.2013, 00:23
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

массив заполняется после запуска программы
Ответить с цитированием
  #4  
Старый 18.02.2013, 00:46
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вот и приводи весь код, а не его огрызки.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 18.02.2013, 01:22
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

это полный код. значения вводятся после запуска программы.
Ответить с цитированием
  #6  
Старый 18.02.2013, 01:25
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

В этом "полном" коде нет ни строчки где бы массив заполнялся.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #7  
Старый 18.02.2013, 01:26
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

после запуска программы нажимаешь на ячейку stringgrid и вводишь значение.
Ответить с цитированием
  #8  
Старый 18.02.2013, 01:31
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Хватит городить ерунду.
Код:
const
  n = 3;
  m = 2;
var
  a : array [1..N, 1..M] of Char;
  v : array[1..M] of Char;
  i, j : byte;
begin
  for i := 1 to N do
    for j := 1 to M do
      // Здесь берутся данные из мифически заполненного массива a
      // и заполняют StringGrid, но никак не наоборот из StringGrid-а в a.
      StringGrid1.Cells[j, i] :=a[i, j];
  
  for  i:= 1 to N do
    V[i] := a[i,M];

  for i := 1 to N do
    memo1.lines.add(V[i]);
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 18.02.2013, 09:16
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

наверное тогда так надо:
Код:
a[i,j]:=StringGrid1.Cells[j,i][1];
в 9-ой строчке
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 18.02.2013 в 09:19.
Ответить с цитированием
  #10  
Старый 20.02.2013, 01:09
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

теперь выдаёт ошибку после нажатие на button.
Ответить с цитированием
  #11  
Старый 20.02.2013, 01:35
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

В какой строке и какую?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #12  
Старый 20.02.2013, 09:19
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

размер грида должен быть на 1 больше размера массива из-за фиксированых колонок и столбцов (наверняка они есть). все ячейки грида должны быть заполнены, пустые вызовут AV.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #13  
Старый 20.02.2013, 09:37
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

все заполнено и у стринггрида больше на 1 ячеек и столбцов.
Ответить с цитированием
  #14  
Старый 20.02.2013, 09:40
maxmaslo maxmaslo вне форума
Прохожий
 
Регистрация: 25.09.2012
Сообщения: 36
Репутация: 10
По умолчанию

a[i,j]:=StringGrid1.Cells[j,i][1]; в этой строке.
Изображения
Тип файла: png Снимок.PNG (19.2 Кбайт, 2 просмотров)
Ответить с цитированием
  #15  
Старый 20.02.2013, 11:38
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  a: array [1..4, 1..6] of Char;
  v: array [1..6] of Char;
  col, row: Integer;
  i: Integer;
begin
  Memo1.Clear;
  for col:=1 to 4 do
    for row:=1 to 6 do
      a[col, row]:=StringGrid1.Cells[col, row][1];
  for i:=1 to 6 do v[i]:=a[1, i];
  for i:=1 to 6 do Memo1.Lines.Add(v[i]); 
end;

см. все во вложении
Вложения
Тип файла: rar StringGrid.rar (1.7 Кбайт, 1 просмотров)
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025