31.05.2012, 21:21 | #1 (permalink) |
Новичок
Регистрация: 31.05.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Одномерный массив
тов: 1) определите, есть ли в массиве хотя бы одно положительное число, меньшее минимального четного элемента; 2) вычислите сумму элементов массива, расположенных между последним и предпоследним нечетными элементами. Преобразуйте массив таким образом, чтобы в первой его половине располагались элементы по возрастанию, во второй – по убыванию. 2. Дана целочисленная квадратная матрица: 1) выполните сжатие матрицы, удалив из нее те столбцы, в кото- рых количество отрицательных элементов совпадает с количеством положительных; 2) определите количество строк, в которых расположены макси- мальные элементы матрицы. |
31.05.2012, 21:21 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Нужная для вас информация содержится в аналогичных темах Одномерный массив, Pascal Одномерный массив в Паскале |
01.06.2012, 11:24 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Н-да... Ну что же, объясню. Дурдом - это то место, в котором я скоро окажусь, в 128-й раз объясняя очевидное: существует множество так называемых языков программирования, возможно, Вы даже слышали такие слова: Паскаль, Си, Фортран, Ассемблер, Ява и несть им числа. Поэтому когда очередной уважаемый посетитель нашего форума выкладывает очередное задание, в очередной раз НЕ указав язык программирования, то справиться с таковым под силу только телепатам, а у нас, увы... (см. второй смайлик). Впрочем, вероятно, дочитать ответ до третьего смайлика (с рупором), где ясно указана суть вопроса, Вам оказалось не под силу. Сочувствую.
|
01.06.2012, 11:31 | #5 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
02.06.2012, 19:06 | #7 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Const N=40; { for example; change if you want to } Var A:Array [1..N] of Integer; b:Boolean; D,Sum:Integer; i,j,I_min_even,I1_odd,I2_odd:Byte; Begin Randomize; Writeln('Initial array:'); I_min_even:=1; For i:=1 to N do begin A[i]:=-9+Random(109); Write(A[i]:4); If ((A[i] mod 2)=0) and (A[i]<A[I_min_even]) then I_min_even:=i; end; Writeln; Writeln; Writeln('Minimal even element is A[',I_min_even,']= ',A[I_min_even]); Writeln; b:=false; i:=0; Repeat Inc(i); If (A[i]>0) and (A[i]<A[I_min_even]) then b:=true; Until b or (i=N); If Not(b) then Writeln('No positive elements less then ',A[I_min_even]) else Writeln('Yes, A[',i:2,']= ',A[i],' is less then ',A[I_min_even]); Writeln; Sum:=0; I2_odd:=N+1; Repeat Dec(I2_odd); Until (A[I2_odd] mod 2)<>0; I1_odd:=I2_odd; Repeat Dec(I1_odd); Until (A[I1_odd] mod 2)<>0; For i:=I1_odd+1 to I2_odd-1 do Inc(Sum,A[i]); Writeln('The sum of elements between A[',I1_odd:2,'] and A[',I2_odd:2,'] is ',Sum); Writeln; Writeln('Ordered array:'); For i:=1 to (N div 2)-1 do For j:=1 to (N div 2)-i do If A[j]>A[j+1] then begin D:=A[j]; A[j]:=A[j+1]; A[j+1]:=D; end; For i:=(N div 2)+1 to N-1 do For j:=(N div 2)+1 to N+(N div 2)-i do If A[j]<A[j+1] then begin D:=A[j]; A[j]:=A[j+1]; A[j+1]:=D; end; For i:=1 to N do Write(A[i]:4); Readln End. |
|
02.06.2012, 19:52 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Const N0=10; { for example; change if you want to } Var A:Array [1..N0,1..N0] of Integer; Max:Integer; i,j,p,M,N,Pos,Neg,Num:Byte; b:Boolean; Begin M:=N0; N:=N0; Randomize; Writeln('Initial matrix:'); For i:=1 to M do begin For j:=1 to N do begin A[i,j]:=-99+Random(199); Write(A[i,j]:4); end; Writeln; end; For j:=1 to N do begin Pos:=0; Neg:=0; For i:=1 to M do begin if A[i,j]>0 then Inc(Pos); if A[i,j]<0 then Inc(Neg); end; If Pos=Neg then begin for i:=1 to M do for p:=j+1 to N do A[i,p-1]:=A[i,p]; Dec(N); end; end; Writeln('Compressed matrix:'); For i:=1 to M do begin For j:=1 to N do Write(A[i,j]:4); Writeln; end; Writeln; Max:=-200; Num:=0; For i:=1 to M do For j:=1 to N do If A[i,j]>Max then Max:=A[i,j]; For i:=1 to M do begin b:=false; j:=0; Repeat Inc(j); If A[i,j]=Max then b:=true; Until b or (j=N); If b then Inc(Num); end; Writeln('Number of lines, containing maximal element = ',Max,', is ',Num); Readln End. |
|
02.06.2012, 22:45 | #10 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да пожалуйста, вот только единственно, я не уверен, что правильно понял задания - уж больно бестолково сформулированы. Особенно второй пункт второй задачи. О каких максимальнЫХ элементАХ матрицы идет речь? Я понял так, что нашли максимальный элемент и определили, в скольких строках он встречается, но я совсем не уверен, что автор задачи имел в виду то же.
Ладно, сообщите, если что не так - поправим. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|