Не могу понять условия задачи не говоря уж об ее решении. Как я понял, 1)надо сначала пробежать по массиву и найти Min,Max элемент, это я предположим сделаю.2) Не знаю что делать. 3)Проверить если такие числа в массиве А затрудняюсь, как это надо реализовать. 4) Надо отсортировать их В массиве по возрастанию. 5) Ну это понятно как делать.
--------- (1)Дан одномерный целочисленный массив А, состоящий из N элементов. Пусть МАХ - наибольшее, а MIN - наименьшее среди элементов массива. (2)Составить одномерный массив В из чисел, являющихся степенью двух и принадлежащих сегменту [MIN,MAX],и, (3)которые не являются элементами массива A, (4)располагая элементы в массиве В в порядке не убывания. (5)Если таких элементов нет, то выдать соответствующее сообщение.
мисс_граффити
28.12.2006 21:58
index:=1; for i:=min to max do if {i - степень двойки. как это сделать - читай FAQ} then begin fl:=true; for j:=1 to n do if A[j]=i then fl:=false; if fl then begin B[index]:=i; inc(index); end; end;
не поняла только, почему написано не убывания, а не возрастания. Что, элементы могут повторяться?
З.Ы. компилятора под рукой нет, но вроде должно работать.
pabota
28.12.2006 22:06
Спасибо сейчас попробую разобраться.
pabota
29.12.2006 3:22
Вот решил Код выложил, вдруг кому-нибудь понадобиться еще.
var a: array of Longint; B: array of Longint; i,j, n :integer; min,max,index: integer; fl :boolean; begin writeln ('vvedite chiclo celix chisel massiva'); readln(n); SetLength(a, n); writeln ('Massiv A'); for i:= 0 to n-1 do begin readln(a[i]); end; Max:=1; for i:=0 to n-1 do if ((a[i]>Max)and (a[i]<>0)) then begin Max:=a[i]; end; Min:=Max; for i:=0 to n-1 do if ((a[i]<Min)and (a[i]<>0)) then begin Min:=a[i]; end; index:=0; for i:=min to max do if frac(ln(i)/ln(2)) = 0 then begin for j:=0 to high(A) do begin if A[j] = i then break; if j = high(A) then begin setlength(B, length(B)+1); B[high(B)] := i; end; end; end; writeln ('Massiv B'); for index:=0 to high(B) do begin writeln(inttostr(B[index])); //writeln(B[index]); end; if length(B)=0 then writeln ('net takix elementov!!!'); readln; end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.