07.05.2016, 17:57 | #1 (permalink) |
Member
Регистрация: 07.05.2016
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Паскаль. Двумерный массив
2. Преобразовать массив W в одномерный массив T. Полученный массив вывести на экран. 3. Вычислить среднегеометрическое значение нечетных по номеру элементов первой трети массива T. 4. Определить значение, по модулю самое близкое к заданному числу С среди отрицательных элементов второй трети массива T. 5. Упорядочить положительные элементы массива T по убыванию противоположных значений. |
07.05.2016, 17:57 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Участниками форума были созданы аналогичные обсуждения Двумерный массив. Цветы. Паскаль Паскаль. Двумерный массив Паскаль, двумерный массив |
07.05.2016, 21:10 | #2 (permalink) |
Member
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
|
Динамическое в простое переделайте сами.
Код:
uses Crt; const n=3; m=13; type Tmass=array[1..40] of integer; Pmass=^Tmass; Pmatr=array[1..40] of Pmass; var W:Pmatr; T:Pmass; i,j,k,pr,c:integer; begin ClrScr; for i:=1 to n do GetMem(W[i],m*SizeOf(integer)); GetMem(T,(n*m)*SizeOf(integer)); Writeln('Massiv:'); Writeln; Randomize; k:=0; for i:=1 to n do for j:=1 to m do begin W[i]^[j]:=Random(18)-7; Inc(k); T^[k]:=W[i]^[j]; Write(T^[k]:4); end; Writeln; Writeln; for i:=1 to n do FreeMem(W[i],m*SizeOf(integer)); pr:=1; j:=0; for i:=1 to (k div 3) do if i mod 2<>0 then begin Inc(j); pr:=pr*Abs(T^[i]); end; Writeln('Srednee geometriceskoe = ',(exp(ln(pr)/j)):3:2); Write('Cislo ot 0 do 10 = '); Readln(c); pr:=100; j:=0; for i:=(k div 3) to k do if T^[i]<0 then if Abs(T^[i])=c then begin j:=i; Break end else begin if Abs(T^[i])>c then if (Abs(T^[i])-c)<pr then begin pr:=(Abs(T^[i])-c); j:=i; end; if Abs(T^[i])<c then if (c-Abs(T^[i]))<pr then begin pr:=(c-Abs(T^[i])); j:=i; end; end; Writeln('Blizhayshee = ',T^[j]); FreeMem(T,(n*m)*SizeOf(integer)); ReadKey; end. |
07.05.2016, 22:03 | #5 (permalink) |
Member
Регистрация: 07.05.2016
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
должно получится так же?
exp(1/n*ln(xn)) или как ? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
07.05.2016, 22:52 | #10 (permalink) |
Member
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
|
С сортировкой получилось так:
Код:
uses Crt; const n=3; m=13; type Tmass=array[1..40] of integer; Pmass=^Tmass; Pmatr=array[1..40] of Pmass; var W:Pmatr; T:Pmass; i,j,k,pr,c:integer; begin ClrScr; for i:=1 to n do GetMem(W[i],m*SizeOf(integer)); GetMem(T,(n*m)*SizeOf(integer)); Writeln('Massiv:'); Writeln; Randomize; k:=0; for i:=1 to n do for j:=1 to m do begin W[i]^[j]:=Random(18)-7; Inc(k); T^[k]:=W[i]^[j]; Write(T^[k]:4); end; Writeln; Writeln; for i:=1 to n do FreeMem(W[i],m*SizeOf(integer)); pr:=1; j:=0; for i:=1 to (k div 3) do if i mod 2<>0 then begin Inc(j); pr:=pr*Abs(T^[i]); end; Writeln('Srednee geometriceskoe = ',(exp(ln(pr)/j)):3:2); Write('Cislo ot 0 do 10 = '); Readln(c); pr:=100; j:=0; for i:=(k div 3) to k do if T^[i]<0 then if Abs(T^[i])=c then begin j:=i; Break end else begin if Abs(T^[i])>c then if (Abs(T^[i])-c)<pr then begin pr:=(Abs(T^[i])-c); j:=i; end; if Abs(T^[i])<c then if (c-Abs(T^[i]))<pr then begin pr:=(c-Abs(T^[i])); j:=i; end; end; Writeln('Blizhayshee = ',T^[j]); i:=2; repeat if T^[i]<0 then begin pr:=T^[i]; for j:=i downto 2 do begin T^[j]:=T^[j-1]; T^[1]:=pr; end end else Inc(i); until i>k; i:=1; While T^[i]<0 do Inc(i); for c:=i to k-1 do for j:=i to k-1 do if T^[j]<T^[j+1] then begin pr:=T^[j]; T^[j]:=T^[j+1]; T^[j+1]:=pr; end; Writeln; Writeln('Sortirovanniy:'); Writeln; for i:=1 to k do Write(T^[i]:4); Writeln; FreeMem(T,(n*m)*SizeOf(integer)); ReadKey; end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|