Всё очень просто. один и тот же алгоритм для перевода из десятичного в любую другую: 1. делишь число на 16 (или 8, или 2)2. получаешь число, целую часть которого умножаешь на 16 (или 8, или 2) и полученное вычитаешь из числа в пункте 1 - получаешь остаток - цифра с нужным индексом (первый индекс #0) в десятичном представлении3. повторяешь 1 и 2 пункт для целой части числа полученного в 1 пункте после деления.4. и так до тех пор, пока целая часть от деления не будет 0
//1) var A: array [1..30] of integer; i: byte; mult: double; begin mult := 1; randomize; writeln('Сгенерированный массив.'); for i := 1 to 30 do begin A[i] := random(46)-15; if A[i] > 0 then mult := mult * A[i]; write(A[i], ' '); end; writeln; writeln('Произведение положительных элементов = ', mult); end. //
//2) var A: array [1..40] of integer; i: byte; count: byte; begin count := 0; randomize; writeln('Сгенерированный массив.'); for i := 1 to 40 do begin A[i] := random(31)-20; if A[i] mod 3 = 0 then count := count + 1; write(A[i], ' '); end; writeln; writeln('Количество элементов кратных трем = ', count); end. //
//3) var A: array [1..40] of integer; i: byte; count: byte; sum: integer; begin count := 0; sum := 0; randomize; writeln('Сгенерированный массив.'); for i := 1 to 40 do begin A[i] := random(61)-30; if A[i] < 0 then begin count := count + 1; sum := sum + A[i]; end; write(A[i], ' '); end; writeln; writeln('Среднее арифметическое отрицательных эл. =',(sum/count):4:4); end. //
1. uses crt; const n=20; var i,cp1,cn1:integer; p,cp,cn:real; z:array[1..n] of integer; begin randomize; for i:=1 to n do begin z[i]:=random(20,-20); if z[i]>=0 then begin cp:=cp+z[i]; cp1:=cp1+1; end else begin cn:=cp+z[i]; cn1:=cn1+1; end; cp:=cp/cp1; cn:=cn/cn1; end; if cp>cn then p:=cp+cn else p:=cp*cn; for i:=1 to n do write(z[i],' '); writeln(#13#10,cp:5:2,' ',cn:5:2,' ',p:5:2); end. 2. uses crt; const n=15;m=4; var i,j,k,flag,count:integer; a:array[1..n,1..m] of integer; temp:array[1..100] of integer; b:array[1..100,1..m] of integer; begin randomize; k:=1; count:=0; for i:=1 to n do begin flag:=1; for j:=1 to m do begin a[i,j]:=random(51,1); if (a[i,j]<10) or (a[i,j]>40) then flag:=0 end; if flag=1 then begin temp[k]:=i; count:=count+1; k:=k+1; end; end; for i:=1 to count do for j:=1 to m do b[i,j]:=a[temp[i],j]; writeln('Массив A:'); for i:=1 to n do begin for j:=1 to m do write(a[i,j],' '); write(#13#10); end; if count=0 then writeln('Нет подходящих строк.') else begin writeln(#13#10,'Массив B:'); for i:=1 to count do begin for j:=1 to m do write(b[i,j],' '); write(#13#10); end; end; end.
dec в hex:
>>> 625/16
39.0625
>>> 625-(39*16)
1 #0
>>> 39/16
2.4375
>>> 39 - (2*16)
7 #1
>>> 7/16
0.4375
>>> 2-(0*16)
2 #2
== 0x271
>>> 50/16
3.125
>>> 50-(3*16)
2 #0
>>> 3/16
0.1875
>>> 3-(0*16)
3 #1
== 0x32
>>> 25/16
1.5625
>>> 25-(1*16)
9 #0
>>> 1/16
0.0625
>>> 1-(0*16)
1 #1
== 0x19
dec в oct
>>> 625/8
78.125
>>> 625-(78*8)
1 #0
>>> 78/8
9.75
>>> 78 - (9*8)
6 #1
>>> 9/8
1.125
>>> 9-(1*8)
1 #2
>>> 1/8
0.125
>>> 1-(0*8)
1 #3
0o1161
dec to bin
>>> 625/2
312.5
>>> 625-(312*2)
1 #0
>>> 312/2
156.0
>>> 312-(156*2)
0 #1
>>> 156/2
78.0
>>> 156-(78*2)
0 #2
>>> 78/2
39.0
>>> 78-(39*2)
0 #3
>>> 39/2
19.5
>>> 39-(19*2)
1 #4
>>> 19/2
9.5
>>> 19-(9*2)
1 #5
>>> 9/2
4.5
>>> 9-(4*2)
1 #6
>>> 4/2
2.0
>>> 4-(2*2)
0 #7
>>> 2/2
1.0
>>> 2-(1*2)
0 #8
>>> 1/2
0.5
>>> 1-(0*2)
1 #9
== 0b1001110001