Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 358

Раздел: Delphi » Прочее
/ вопрос открыт /

Здравствуйте уважаемые эксперты! Есть вот такая простенькая задача. Дан массив А(6х6). Выполнить перестановку двух заданных строк массива. Прошу вас помочь сделать данную задачу. Как с генерировать массив слава богу мозгов хватает, а вот как произвести замену строк уже нет :) Знаю только что сделать это необходимо через Edit форму.

Коновалов Владимир Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Коновалов Владимир (статус: Посетитель)
Вопрос отправлен: 22 июня 2010, 19:34
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 15; последнее сообщение — 24 июня 2010, 17:31; участников в обсуждении: 7.
lx

lx (статус: Посетитель), 22 июня 2010, 19:38 [#1]:

я вот давно интересуюсь: откуда такие задачи и формулировки появляются? это прям такая постановка задачи "переставить строки в массиве через edit форму"?
min@y™

min@y™ (статус: Доктор наук), 22 июня 2010, 19:41 [#2]:

Цитата (Коновалов Владимир):

через Edit форму

Это как понимать?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Коновалов Владимир

Коновалов Владимир (статус: Посетитель), 22 июня 2010, 19:42 [#3]:

Ну, вообщем то нет :) Но прсото мои супер мозги говорят мне что необходимо сделать так :) Если можно подругому буду очень рад и по другому :)
Коновалов Владимир

Коновалов Владимир (статус: Посетитель), 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

padonak (статус: Посетитель), 22 июня 2010, 20:05 [#5]:

readln(i1);
Writeln(i1);... я чёт не догоняю... это же вроде при работе с файло, а здесь их просто нет...

а зачем вобще объявлять массив !а!? а на прямую со стрингридом работать не судьба?
Коновалов Владимир

Коновалов Владимир (статус: Посетитель), 22 июня 2010, 20:11 [#6]:

Да нет у меня таких профессиональных навыков :) Мне сказали делать так, я так и делаю, и массив объявляю и в таблицу его вывожу. Мне нужно только объяснить произвести замену строк.
padonak

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

padonak (статус: Посетитель), 22 июня 2010, 20:23 [#8]:

Коновалов Владимир: это даже я - чайник смог... тут всё просто и никаких ОСОБЫХ знаний не нужно... ;)

// вот здесь писцец чушь!!! вы файло не объявили!!!
readln(i1);
Writeln(i1);
readln(i2);
writeln(i2);
//

скажи откуда ты берёшь значения для переменных (i1,i2,j1,j2)? из файла?
Maksell

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™

min@y™ (статус: Доктор наук), 22 июня 2010, 22:10 [#10]:

Цитата (Коновалов Владимир):

Знаю только что сделать это необходимо через Edit форму.

Никак не пойму, что такое Edit форма.
Остальное за 10 минут делается без всякой формы.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
padonak

padonak (статус: Посетитель), 22 июня 2010, 22:23 [#11]:

min@y™: забей... ты видел как он значения вытаскивал? "readln(i1)" - мало того что неправильно, так ещё и файл не объявлен... тут нада весь код ему сунуть, а влом...

Коновалов владимир: если напишу, пиво ставишь?
Amidamaru

Amidamaru (статус: 4-ый класс), 22 июня 2010, 23:38 [#12]:

проблему уже решили. в IRC
Приглашаю Вас на наш IRC-канал: #delphiintru в сети DalNet.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 23 июня 2010, 17:34 [#13]:

to padonak - readln(i1) - читает вводимые значения с клавиатуры, writeln(i1) - пишет на экран. Файл в этом случае объявлять абсолютно не обязательно. Это используется либо в TurboPascal либо в консольном приложении. Прежде, чем писать что-то - учите матчасть.
padonak

padonak (статус: Посетитель), 24 июня 2010, 02:12 [#14]:

Мережников Андрей: кнопки и прочая утварь в консольном приложении(да и в паскале тоже) не используется... внимательней код смотриТЕ
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 24 июня 2010, 17:31 [#15]:

to padonak

Цитата (padonak):

так ещё и файл не объявлен
- Ваши слова?
Так вот я писал, что в операторах writeln и readln - использование файловой переменной необязательно

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:40
Выполнено за 0.03 сек.