12.12.2017, 15:50 | #1 (permalink) |
Новичок
Регистрация: 07.11.2017
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Pascal, массивы
|
12.12.2017, 15:50 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Люди интересуются одним и тем же, зачастую создают аналогичные темы Программа массивы в Pascal Одномерные массивы на Pascal |
12.12.2017, 21:09 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Извольте:
Код:
Uses CRT; Const n=10; v_min=-5; v_max=10; Var V:Array[1..n] of Integer; Num:Array[1..n] of Byte; i,j,k:byte; D:Integer; Begin ClrScr; Randomize; for i:=1 to n do begin V[i]:=v_min+Random(v_max-v_min+1); Num[i]:=i; end; for i:=1 to n-1 do for j:=1 to n-i do if V[Num[j]]>V[Num[j+1]] then begin k:=Num[j]; Num[j]:=Num[j+1]; Num[j+1]:=k; end; Writeln(' Initial array:'); for i:=1 to n do if (i=Num[2]) or (i=Num[n-1]) then begin textcolor(red); write(V[i]:4); NormVideo; end else write(V[i]:4); Writeln; if (Num[2]<Num[n-1]) and (Num[n-1]-Num[2]>1) then begin for i:=1 to Num[n-1]-Num[2]-2 do for j:=1 to Num[n-1]-Num[2]-1-i do if V[Num[2]+j]>V[Num[2]+j+1] then begin D:=V[Num[2]+j+1]; V[Num[2]+j+1]:=V[Num[2]+j]; V[Num[2]+j]:=D; end; end; if (Num[2]>Num[n-1]) and (Num[2]-Num[n-1]>1) then begin for i:=1 to Num[2]-Num[n-1]-2 do for j:=1 to Num[2]-Num[n-1]-1-i do if V[Num[n-1]+j]>V[Num[n-1]+j+1] then begin D:=V[Num[n-1]+j+1]; V[Num[n-1]+j+1]:=V[Num[n-1]+j]; V[Num[n-1]+j]:=D; end; end; Writeln(' New array:'); for i:=1 to n do if (i=Num[2]) or (i=Num[n-1]) then begin textcolor(red); write(V[i]:4); NormVideo; end else if ((i>Num[2]) and (i<Num[n-1])) or ((i>Num[n-1]) and (i<Num[2])) then begin textcolor(lightblue); write(V[i]:4); NormVideo; end else write(V[i]:4); Writeln; ReadKey End. Код:
Uses CRT; Const n=5; v_min=-20; v_max=10; Var M1,M2:Array[1..n,1..n] of Integer; i,j:byte; Begin ClrScr; Randomize; Writeln(' Initial array:'); for i:=1 to n do begin for j:=1 to n do begin M1[i,j]:=v_min+Random(v_max-v_min+1); write(M1[i,j]:4); end; writeln; end; Writeln; Writeln(' New array:'); for i:=1 to n do begin for j:=1 to n do begin M2[i,j]:=M1[n+1-j, i]; write(M2[i,j]:4); end; writeln; end; Readln End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|