|
|
Регистрация | << Правила форума >> | 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.
|