![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() не знаю что изменить в коде чтобы программа работала правильно.
Задание: Составьте программу, проверяющую, можно ли, меняя местами элементы одномерного массива А, получить целочисленный массив В. Текст программы PHP код:
Последний раз редактировалось Kobe_Bryant_24, 29.12.2009 в 16:17. |
#2
|
|||
|
|||
![]() Не совсем понятно, что надо сделать.
Как я понимаю: У тебя есть некоторый массив A с числати типа Double (Extended) и т.д. И есть некоторое целое число n - длинна желаемого массива. Надо проверить, можно ли найти n целых чисел в массиве A, что бы составить массив B длинной n. Если так, то задача решается просто: Код:
function CheckForB(A : Array Of Double; n : Integer) : Boolean; var I : Integer; C : Integer; begin Result := False; C := 0; For I := Low(A) To High(B) Do If Int(A[i]) = A[i] Then Inc(C); Result := C >= n; end; |
#3
|
|||
|
|||
![]() Вначале я задаю два одномерных массива А и В. А в задании вопрос:проверить можно ли, меняя местами элементы массива А получить массив В.
P.S. в моём коде переменная s - есть количество совпадений |
#4
|
|||
|
|||
![]() А-а-а... Да, это немного другая задача.
Алгоритм такой. Берем массив B. Идем по нему циклом. проверяем каждый элемент на наличие в массиве A. Если элемент найден, то удаляем такой элемент из массива A и переходим к следующему элементу массива B. Если прошли весь массив B и нашли для него соотв. элементы в A, то можно. Иначе - нельзя. ЗЫ. Код писать лень ![]() |
#5
|
|||
|
|||
![]() напишите код пожалуйста
|
#6
|
|||
|
|||
![]() люди! напишите код пожалуйста!
яп просто уже целый день сижу, не могу сообразить ничего! |
#7
|
||||
|
||||
![]() наверное гдето так:
Код:
function TForm1.Compare2Mass(A, B: array of Integer): Boolean; var i, n, k, lenA : Integer; X: array of Integer; noIn, netA: Boolean; begin Result := false; lenA := Length(A); if lenA <> Length(B) then Exit; // если длины не совпадают то не получится SetLength(X, lenA); for i := 0 to lenA - 1 do begin // для каждого элемента B[i] проверяем netA := true; for n := 0 to lenA - 1 do // проверяем массив А if B[i] = A[n] then // есть такой элемент в массиве А begin noIn := true; for k := 0 to i - 1 do if n = X[k] then begin // его уже сопоставили с другим элементом массива В noIn := false; break; end; if noIn then begin // этот элемент еще не сопостовляли X[i] := n; netA := false; // нашли новый элемент в А соответствующий очередному в В break; end; end; if netA then // не нашли новый элемент в А соответствующий очередному в В Exit; end; // если еще не вышли значит все элементы найдены Result := true; end; |
#8
|
|||
|
|||
![]() Пришло на ум, одно из решений) отсортировать оба массива, а потом пробежаться в одном цикле по обоим массивам, до конца(истина) или до первого несовпадения(ложь)...
|
#9
|
||||
|
||||
![]() Цитата:
PHP код:
|
#10
|
|||
|
|||
![]() всем спасибо, сделал немного по-другому, тоже с сортировкой, работает
завтра сдам на зачёт всё вместе с этим) |