Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2013, 11:11   #1
dyc9
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 11
По умолчанию переставить массив

Задан массив на 15 элементов. Получить массив с обратным располо-жением элементов.

не получается переставить(
Код:
procedure TForm1.btn1Click(Sender: TObject);
var a,b:array[1..15] of integer;
i,n,x,summ:Integer;
begin
for i:=1 to 15 do if Length(strngrd1.Cells[i,0])<>0
then a[i] := StrToint(strngrd1.Cells[i, 0]) else a[i] := 0;
for i :=1 to 15 do begin  b[i] := a[15 - i + 1]; end;
b[i] := StrToint(StringGrid1.Cells[i,0]);

end;

end.

Последний раз редактировалось Stilet; 21.04.2013 в 13:01.
dyc9 вне форума Ответить с цитированием
Старый 21.04.2013, 13:02   #2
turok7770
Пользователь
 
Регистрация: 12.01.2012
Сообщений: 17
По умолчанию

Код:
b[i] := StrToint(StringGrid1.Cells[i,0]);
Не правильно присваиваешь
Код:
StringGrid1.Cells[i,0]:= IntToStr(b[i]);
Ну и это строчка под циклом
Если хотите отблагодарить меня - R526322326168

Единственное, что ограничивает полет мысли программиста-компилятор
turok7770 вне форума Ответить с цитированием
Старый 21.04.2013, 13:30   #3
dyc9
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от turok7770 Посмотреть сообщение
Код:
b[i] := StrToint(StringGrid1.Cells[i,0]);
Не правильно присваиваешь
Код:
StringGrid1.Cells[i,0]:= IntToStr(b[i]);
Ну и это строчка под циклом

PHP код:
procedure TForm1.btn1Click(SenderTObject);
var 
a,b:array[1..15of integer;
i,n,x,summ:Integer;
begin
for i:=1 to 15 do if Length(strngrd1.Cells[i,0])<>0
then a
[i] := StrToint(strngrd1.Cells[i0]) else a[i] := 0;
for 
:=1 to 15 do begin  b[i] := a[15 1]; end;
StringGrid1.Cells[i,0]:= IntToStr(b[i]);

end;

end
dyc9 вне форума Ответить с цитированием
Старый 21.04.2013, 13:30   #4
dyc9
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от turok7770 Посмотреть сообщение
Код:
b[i] := StrToint(StringGrid1.Cells[i,0]);
Не правильно присваиваешь
Код:
StringGrid1.Cells[i,0]:= IntToStr(b[i]);
Ну и это строчка под циклом
все равно не переставляет(
dyc9 вне форума Ответить с цитированием
Старый 21.04.2013, 13:52   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Получить массив с обратным располо-жением элементов.
Сверху-вниз шоле?
Так это for downto do цикл.
Человек_Борща вне форума Ответить с цитированием
Старый 21.04.2013, 13:53   #6
dyc9
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Сверху-вниз шоле?
Так это for downto do цикл.
ну массив будет 1234
при перестановке выведет 4321

через downto делал, не канает

вот набросок, выводит что попало

Код:
procedure TForm1.btn1Click(Sender: TObject);
var a,b:array[1..4] of integer;
i,n,x,summ:Integer;
begin
for i:=1 to 4 do if Length(strngrd1.Cells[i-1,0])<>0
then a[i] := StrToint(strngrd1.Cells[i-1, 0]) else a[i] := 0;
for i :=4 downto 1 do StringGrid1.Cells[i-1,0]:= IntToStr(b[i]);
end;

end.

Последний раз редактировалось Stilet; 21.04.2013 в 14:34.
dyc9 вне форума Ответить с цитированием
Старый 21.04.2013, 14:25   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Кто-нибудь может мне объяснить, зачем при банальной перестановке нужно преобразовывать из строки в число и обратно?
s-andriano вне форума Ответить с цитированием
Старый 21.04.2013, 14:53   #8
dyc9
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Кто-нибудь может мне объяснить, зачем при банальной перестановке нужно преобразовывать из строки в число и обратно?
рабочий код, подскажите как считать первый грид, чтобы при случайном заполнение он был выведен на экран?



PHP код:
procedure TForm1.btn1Click(SenderTObject);
var 
a,b:array[1..15of integer;
i,n,x,summ:Integer;
begin
for i:=1 to 15 do if Length(strngrd1.Cells[i-1,0])<>0
then a
[i] := StrToint(strngrd1.Cells[i-10]) else a[i] := 0;
for 
:=15 downto  1 do begin  b[i] := a[15 1];
StringGrid1.Cells[i-1,0]:= IntToStr(b[i]);  end;
end
dyc9 вне форума Ответить с цитированием
Старый 21.04.2013, 15:07   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  s: string;
begin
  with StringGrid1 do
    for i := 0 to (ColCount - 1) div 2 do
    begin
      s := Cells[i, 0];
      Cells[i, 0] := Cells[ColCount - i - 1, 0];
      Cells[ColCount - i - 1, 0] := s;
    end;
end;
"Переворачивает" нулевую строку стринггрида.
Цитата:
рабочий код, подскажите как считать первый грид, чтобы при случайном заполнение он был выведен на экран?
Сформулируйте еще раз, что Вы хотите сделать.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.04.2013, 15:14   #10
dyc9
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  s: string;
begin
  with StringGrid1 do
    for i := 0 to (ColCount - 1) div 2 do
    begin
      s := Cells[i, 0];
      Cells[i, 0] := Cells[ColCount - i - 1, 0];
      Cells[ColCount - i - 1, 0] := s;
    end;
end;
"Переворачивает" нулевую строку стринггрида.

Сформулируйте еще раз, что Вы хотите сделать.
ну, у меня сейчас strngrd1 заполняется от руки, в случае если мы пропускаем ячейку, он считает, что a[i] := 0
а я сейчас хочу сделать, чтоб в strngrd1 заполнялся случайными числами, т.е заместо a[i] := 0, делаю a[i] := random (1000)
начинаю теперь считывать грид 1, а он выдает ошибку, как считать грид,
чтоб он вывел, какие случайные числа оказались в гриде1?
dyc9 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переставить строки Sergeevich Помощь студентам 7 20.06.2016 13:46
Дан массив А [N,N] переставить местами А[1,1] и минимальный элемент массива olegatorka Visual C++ 3 07.11.2012 22:21
Дан числовой массив А, состоящий из n строк и m столбцов. Переставить местами ni и nj строки массива A. Aaaaa111 Помощь студентам 2 22.05.2012 18:20
1)Дан одномерный массив В,состоящий из 2n элементов.Переставить его элементы по следующему правилу b[1],b[n+1],b[2],b[n+2],.....b[ Vinam* Паскаль, Turbo Pascal, PascalABC.NET 4 24.12.2011 16:39