|
Вопрос # 4 358/ вопрос открыт / |
|
Здравствуйте уважаемые эксперты! Есть вот такая простенькая задача. Дан массив А(6х6). Выполнить перестановку двух заданных строк массива. Прошу вас помочь сделать данную задачу. Как с генерировать массив слава богу мозгов хватает, а вот как произвести замену строк уже нет :) Знаю только что сделать это необходимо через Edit форму.
 |
Вопрос задал: Коновалов Владимир (статус: Посетитель)
Вопрос отправлен: 22 июня 2010, 19:34
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 15; последнее сообщение — 24 июня 2010, 17:31; участников в обсуждении: 7.
|
lx (статус: Посетитель), 22 июня 2010, 19:38 [#1]:
я вот давно интересуюсь: откуда такие задачи и формулировки появляются? это прям такая постановка задачи "переставить строки в массиве через edit форму"?
|
|
min@y™ (статус: Доктор наук), 22 июня 2010, 19:41 [#2]:
Цитата (Коновалов Владимир):
через Edit форму
Это как понимать?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Коновалов Владимир (статус: Посетитель), 22 июня 2010, 20:02 [#4]:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, Grids, StdCtrls, ToolWin, ComCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
XPManifest1: TXPManifest;
Edit1: TEdit;
Label2: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a:array[0..5,0..5] of integer;
i,i1,i2,j,n,temp:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
for i:=0 to 5 do
for j:=0 to 5 do
begin
a[i,j]:=Random(10);
StringGrid1.Cells[i,j]:=inttostr(a[i,j]);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
readln(i1);
Writeln(i1);
readln(i2);
writeln(i2);
for i:=0 to 5 do
begin
temp:= a[ i1, j ];
a[ i1, i ]:= a[ i2, j ];
a[ i2, i ]:=temp;
StringGrid1.Cells[i,j]:= inttostr(temp);
begin
close;
end;
end;
end;
end.
Вот что сумели непосильным трудом написать, но не работает.
|
|
padonak (статус: Посетитель), 22 июня 2010, 20:05 [#5]:
readln(i1);
Writeln(i1);... я чёт не догоняю... это же вроде при работе с файло, а здесь их просто нет...
а зачем вобще объявлять массив !а!? а на прямую со стрингридом работать не судьба?
|
|
Коновалов Владимир (статус: Посетитель), 22 июня 2010, 20:11 [#6]:
Да нет у меня таких профессиональных навыков Мне сказали делать так, я так и делаю, и массив объявляю и в таблицу его вывожу. Мне нужно только объяснить произвести замену строк.
|
|
padonak (статус: Посетитель), 22 июня 2010, 20:22 [#7]:
...
var
x, y, x2, y2 : integer;
temp : string;
...
temp:= StringGrid1.Cells[x,y];
StringGrid1.Cells[x,y]:=StringGrid1.Cells[x2,y2];
StringGrid1.Cells[x2,y2]:=temp;
...
|
|
padonak (статус: Посетитель), 22 июня 2010, 20:23 [#8]:
Коновалов Владимир: это даже я - чайник смог... тут всё просто и никаких ОСОБЫХ знаний не нужно... 
// вот здесь писцец чушь!!! вы файло не объявили!!!
readln(i1);
Writeln(i1);
readln(i2);
writeln(i2);
//
скажи откуда ты берёшь значения для переменных (i1,i2,j1,j2)? из файла?
|
|
Maksell (статус: Посетитель), 22 июня 2010, 21:51 [#9]:
пиши что-то на подобие:
const
N = размер массива строк;
M = размер массива столбцов;
var
x: array[1..N] of // столбцы
array [1..M] of тип данных; // строки
a: тип данных;
i: integer;
...
for i := 1 to N do begin
a := x[i][k];
x[i][k] := x[i][l];
x[i][l] := a;
end;
...
Si numqum quaeris, raro magister eris!
|
|
min@y™ (статус: Доктор наук), 22 июня 2010, 22:10 [#10]:
Цитата (Коновалов Владимир):
Знаю только что сделать это необходимо через Edit форму.
Никак не пойму, что такое Edit форма.
Остальное за 10 минут делается без всякой формы.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
padonak (статус: Посетитель), 22 июня 2010, 22:23 [#11]:
min@y™: забей... ты видел как он значения вытаскивал? "readln(i1)" - мало того что неправильно, так ещё и файл не объявлен... тут нада весь код ему сунуть, а влом...
Коновалов владимир: если напишу, пиво ставишь?
|
|
Amidamaru (статус: 4-ый класс), 22 июня 2010, 23:38 [#12]:
проблему уже решили. в IRC
|
|
Мережников Андрей (статус: Абитуриент), 23 июня 2010, 17:34 [#13]:
to padonak - readln(i1) - читает вводимые значения с клавиатуры, writeln(i1) - пишет на экран. Файл в этом случае объявлять абсолютно не обязательно. Это используется либо в TurboPascal либо в консольном приложении. Прежде, чем писать что-то - учите матчасть.
|
|
padonak (статус: Посетитель), 24 июня 2010, 02:12 [#14]:
Мережников Андрей: кнопки и прочая утварь в консольном приложении(да и в паскале тоже) не используется... внимательней код смотриТЕ
|
|
Мережников Андрей (статус: Абитуриент), 24 июня 2010, 17:31 [#15]:
to padonak
Цитата (padonak):
так ещё и файл не объявлен - Ваши слова?
Так вот я писал, что в операторах writeln и readln - использование файловой переменной необязательно
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|