Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
freaf
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 41
1

Заменить элементы массива с k1-го по k2-й на те же элементы в обратном порядке

15.04.2010, 13:59. Просмотров 1478. Ответов 6
Метки нет (Все метки)

Подскажите, пожалуйста, как в одномерном массиве заменить его элементы с k1-го по k2-й на те же элементы в обратном порядке.

Добавлено через 23 часа 49 минут
ммммм?)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2010, 13:59
Ответы с готовыми решениями:

Заменить элементы массива с k1-го по k2-й на те же элементы в обратном порядке
Помогите пожалуйста!! Заменить элементы массива с k1-го по k2-й на те же...

Вывести элементы массива в обратном порядке
Дан массив размера N. вывести его элементы в обратном порядке.(с использованием...

Вывести элементы массива в обратном порядке
Дан массив размера N. Вывести его элементы в обратном порядке.

Элементы массива N раположить в обратном порядке.
Запутался уже прото! Помогите пожалуйста!

Элементы массива X расположить в обратном порядке
помогите плз!!!) Элементы массива X расположить в обратном порядке

6
STRATEG
1160 / 466 / 82
Регистрация: 04.03.2010
Сообщений: 1,013
15.04.2010, 15:29 2
Лучший ответ Сообщение было отмечено как решение

Решение

Ну вот тебе функция...

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
30
31
var
  Form1: TForm1;
  Data:array[1..10] of integer;  //массивчик с которым будем оперировать
  k1,k2,i:integer;                    //границы
  Res:string;                          //для того чтобы мы увидели что изменили
  Temp:array of Integer;          //массив который будет содержать элементы которые надо менять
  Len:integer;                        //длинна массива
implementation
 
{$R *.dfm}
 
procedure Revers(DataT:array of integer;a,b:Integer);
begin
  SetLength(Temp,b-a+2);  //если элементы k1 и k2 ненадо заменять то +2 ненужно
  Len:= Length(Temp)-1;    //так как нижняя граница массива 0 то отнимаем 1 от полной длинны
  for i:=0 to  Len do Temp[i]:=data[i+a];         //записываем элементы которые нужно заменить во второй массив
  for i:=0 to Len do data[i+a]:= Temp[Len-i];   //переворачиваем элементы
  end; 
 
procedure TForm1.btn1Click(Sender: TObject);
begin
 //__________________________________________________
 for i:= 1 to 10 do Data[i]:=i;                   //|
 K1:=3;                     //заполнение для примера| 
 k2:=7;                                           //|
//__________________________________________________|
 Revers(Data,k1,k2);
 
 for i:= 1 to 10 do res:=res + IntToStr(Data[i]);
 mmo1.Lines.Add(res);
end;
3
freaf
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 41
16.04.2010, 06:54  [ТС] 3
а можно сделать, чтобы оба массива были динамическими?
0
STRATEG
1160 / 466 / 82
Регистрация: 04.03.2010
Сообщений: 1,013
16.04.2010, 13:11 4
Конечноя просто сделал пример с заданными данными,а все можно сделать динамическое и K1,K2,и Data
0
freaf
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 41
16.04.2010, 13:24  [ТС] 5
я понять не могу как сделать, чтобы с динамическим массивом Data работал...
подскажи..)
0
STRATEG
1160 / 466 / 82
Регистрация: 04.03.2010
Сообщений: 1,013
16.04.2010, 14:07 6
Так например,код правда не тестил прям на форуме переписывал
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
30
31
32
var
  Form1: TForm1;
  Data:array of integer;  //массивчик с которым будем оперировать
  k1,k2,i:integer;                    //границы
  Res:string;                          //для того чтобы мы увидели что изменили
  Temp:array of Integer;          //массив который будет содержать элементы которые надо менять
  Len:integer;                        //длинна массива
implementation
 
{$R *.dfm}
 
procedure Revers(DataT:array of integer;a,b:Integer);
begin
  SetLength(Temp,b-a+2);  //если элементы k1 и k2 ненадо заменять то +2 ненужно
  Len:= Length(Temp)-1;    //так как нижняя граница массива 0 то отнимаем 1 от полной длинны
  for i:=0 to  Len do Temp[i]:=data[i+a];         //записываем элементы которые нужно заменить во второй массив
  for i:=0 to Len do data[i+a]:= Temp[Len-i];   //переворачиваем элементы
  end; 
 
procedure TForm1.btn1Click(Sender: TObject);
begin
 SetLength(Data,StrToInt(Edit1.text));
 //__________________________________________________
 for i:= 0 to Length(Data)-1 to Data[i]:=i;               //|
 K1:=3;                     //заполнение для примера| 
 k2:=7;                                           //|
//__________________________________________________|
 Revers(Data,k1,k2);
 
 for i:= 0 to Length(Data)-1 do res:=res + IntToStr(Data[i]);
 mmo1.Lines.Add(res);
end;
1
STRATEG
1160 / 466 / 82
Регистрация: 04.03.2010
Сообщений: 1,013
17.04.2010, 23:02 7
Примерчик Перевертыш.rar
1
17.04.2010, 23:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2010, 23:02

Переставить элементы массива в обратном порядке
var a:arrayof integer; i,j,x,n:integer; b:Boolean; begin write('n=');...

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

Переписать элементы массива A(n) в массив C(n) в обратном порядке, используя графический интерфейс
Создать Приложение, использую графический интерфейс пользователя. Задача:...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru