![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Дан двумерный массив из четного числа строк, строки верхней половины массива поменять местами со строками нижней половины! Помогите пожалуйста или намекните
![]() |
#2
|
||||
|
||||
![]() Ну и какие мысли есть у вас на эту тему, хоть что нибудь проблеснуло?
![]() Например, объясните пжлст, каково ваше понимание что есть Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
![]() например массив такой:
123 456 789 356 123 и 456 это верхние строки 789 и 356 нижние поменять их местами |
#4
|
||||
|
||||
![]() Стесняюсь спросить, а зачем тогда двумерный массив нужен, в другую размерность нужно результат положить что ли?
З.Ы. And then there was another influence... ![]() Ну да ладно, не хотите обучаться - ваше дело, потом аукнется, да будет поздно. Вот вам немного говнокода, через одномерный массив, на форму нужно кинуть кнопку и мемо и скопипастить вот это Код:
procedure TForm1.Button1Click(Sender: TObject); var m: array of string; i: integer; s1, s2: string; begin // Для примера SetLength(m,4); m[0]:='123'; m[1]:='456'; m[2]:='789'; m[3]:='356'; for i:= Low(m) to High(m) do Memo1.Lines.Add(m[i]); for i:= Low(m) to High(m) mod 2 do begin s1:= m[i]; s2:= m[(High(m) mod 2) + i+1]; m[i]:= s2; m[(High(m) mod 2) + i+1]:= s1 end; Memo1.Lines.Add(''); for i:= Low(m) to High(m) do Memo1.Lines.Add(m[i]); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 25.06.2013 в 10:48. |
#5
|
|||
|
|||
![]() Зачем мне одномерный если в задании двумерный. Т.е. вводим число строк и число столбцов, затем вводим элементы, которые имеют свою строку и столбец. Программу я условно говоря решил, код программы вроде верный.
Но запускается она и меняет половины, если вместо n и k(размерность массива) вводить конкретное число (н-р 4 и 3). По-другому не работает. Не соображу в чем ошибка. Вот код: Код:
var Form9: TForm9; Ar: array of array of integer; n,k:integer; implementation {$R *.dfm} procedure TForm9.Button3Click(Sender: TObject); begin n:=strtoInt(InputBox('Размер массива', 'Введите число строк в массиве','0')); k:=strtoInt(InputBox('Размер массива', 'Введите число столбцов в массиве','0')); SetLength(Ar,n,k); //установка размера массива end; procedure TForm9.Button1Click(Sender: TObject); var i,j:integer; begin for i:=1 to n do for j:=1 to k do Ar[i,j]:=strtoint(InputBox('Элементы массива', 'Введите'+inttostr(i)+inttostr(j)+' элемент массива','0')); //Ввод элементов массива end; procedure TForm9.Button2Click(Sender: TObject); var x,i,j:integer; s,s1:string; begin for i:=1 to n do // Вывод элементов массива в виде матрицы begin s:=''; for j:=1 to k do begin s:=s+inttostr(Ar[i,j])+' '; end; ListBox1.Items.Add(s); end; for i:=1 to n div 2 do begin S1:=''; for j:=1 to k do begin x:=Ar[i,j]; Ar[i,j]:=Ar[(n div 2)+i,j]; Ar[(n div 2)+i,j]:=x; end; end; for i:=1 to n do // Вывод элементов массива в виде матрицы begin s1:=''; for j:=1 to k do begin s1:=s1+inttostr(Ar[i,j])+' '; end; ListBox2.Items.Add(s1); end; end; end. Последний раз редактировалось Admin, 25.06.2013 в 22:26. |
#6
|
||||
|
||||
![]() Пока ни кто не видел
![]() Я не понял Вашего вопроса, но всё же Вам на него отвечу! |