|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
как переставить циыры в массиве в соответствии с позицией цифры
есть переменная m:='261543';
и p[j]:='123456'; //позиции цифр массива m[i] т.е берем первую цифру массива m[i] = цифра 2 массива p[i] то в массиве p[i] вместо цифры 2 пишем 1 (1-позиция цифры 2 в массиве m[i]. Только как это реализовать на языке программирования, я не знаю. Смог найти только позицию цифры и переписать в массив Код:
procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; k,k2:string; b:integer; begin k:=edit1.Text; for i:=1 to length(k) do begin k2:=k[i]; b:=Pos(k2,k); Memo1.Lines.Append(inttostr(b)); end; end; procedure TForm1.Button3Click(Sender: TObject); var j:integer; begin for j:=0 to memo1.Lines.Count do p[j]:=strtoint(Memo1.Lines.Strings[j]); end; допустил опечатку в теме в слове цифры, жаль нельзя поправить Последний раз редактировалось delphihelp, 23.02.2012 в 18:03. |
#2
|
||||
|
||||
Код:
var m,m1,p:string; i,c:integer; begin m1:=p; for i:=1 to length(m) do begin c:=pos[m[i],p); m1[c]:=inttostr(i); end; p:=m1; end; |
#3
|
|||
|
|||
спасибо, правда компилятор ругается на 2 ошибки:
Цитата:
Код:
c:=pos[m[i],p); Цитата:
Код:
m1[c]:=inttostr(i); может я не туда вставил. Код:
procedure TForm1.Button3Click(Sender: TObject); var j:integer; m,m1,p:string; i,c:integer; begin for j:=0 to memo1.Lines.Count do p:=Memo1.Lines.Strings[j]; m1:=p; for i:=1 to length(m) do begin c:=pos[m[i],p); m1[c]:=inttostr(i); end; p:=m1; end; |
#4
|
|||
|
|||
А может потому что ты даже не внимательно соришь что там скобки не хватает ?
c:=pos([m[i],p); |
#5
|
||||
|
||||
Ну, делал на коленке. Вместо
Код:
m1[c]:=inttostr(i); Код:
m1[c]:=inttostr(i)[1];//хм Кажись, не туда вставил. Процедура для уже готовых p='123456', и m='261543'. Результат в p. (p=316542) |
#6
|
|||
|
|||
Да я сам делаю на коленке , вот и квадратную принял за круглую.
m1[c]:=inttostr(i)[1];//выдает ошибку access violation at address ... самая непонятная и страшная ошибка в мире |
#7
|
||||
|
||||
Как вариант
Последний раз редактировалось YVitaliy, 19.04.2012 в 00:35. |
#8
|
|||
|
|||
Да я сам делаю на коленке , вот и квадратную принял за круглую.
m1[c]:=inttostr(i)[1];//выдает ошибку access violation at address ... самая непонятная и страшная ошибка в мире |
#9
|
|||
|
|||
ООО , спасибо. Я даже не думал что программа будет такая короткая. Главное на словах получается реализовать, а в код превратить не получалось.
YVitaliy, спасибо большое. |