![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Проблема такая. есть два массива A[1..9] и B[0..163]. нужно каждый элемент первого массива сравнить с каждым элементом второго массива и если они равны присвоить элементу первого массива значение индекса второго массива(его порядковый номер).
Не знаю как это сделать. for i:= 1 to 9 do if A[i]=B[i] then A[i]=i получаестя что и у того у другого индексы обозначаются i и не понятно. может как-то можно сделать так if A[i]=B[j] then A[i]=j |
|
#2
|
|||
|
|||
|
Код:
for i := 1 to 9 do
for j := 0 to 163 do
if A[i] = B[j] then
begin
A[i] = j;
Break;
end;Если нужно получить индекс последнего в случае наличия повторяющихся элементов, то внутренний цикл можно запустить в обратную сторону (for j := 163 downto 0 do...) |
|
#3
|
||||
|
||||
|
Если я правильно понял задачу то:
Код:
for i:=1 to 9 do
for j:=i to 9 do
if A[i]=B[j] then
A[i]:=j; |
|
#4
|
|||
|
|||
|
Возможно. Но в таком случае, что значит фраза:
Цитата:
|
|
#5
|
|||
|
|||
|
первый массив - это слово. второй - алфавит. нужно первый массив записать как числа -порядковые номера букв в этом алфавите.
|
|
#6
|
|||
|
|||
|
Тогда код в сообщении #2 должен подойти... Строками сделать проще (с IndexOf). Еще проще, если сделать алфавит перечислимым типом. Тогда можно пользоваться функцией Ord.
|