Program Task; Const N = 5; Var a: Array [1..N] of LongInt; i: Integer; Function MinDigit(number: LongInt): Integer; Var digits: Array of Integer; num, min, i: Integer; Begin num := number; While num <> 0 Do Begin num := num Div 10; i := i + 1; End; SetLength(digits, i); num := number; For i := 0 To Length(digits) - 1 Do Begin digits[i] := num Mod 10; num := num Div 10;End; For i := 0 To Length(digits) - 1 Do If digits[i] < digits[min] Then min := i; Result := digits[min]; End; Begin WriteLn('Введите ', N, ' целых чисел через пробел'); For i := 1 To N Do Read(a[i]); For i := 1 To N Do Write(MinDigit(a[i]), ' '); End.
Берем первое число и переведем его в 10 ричную 1)128,17 берем целую часть 128 и переводим -> 128/8 остаток 0 16/8 остаток 0 2/8 остаток 2 берем остатки и с последнего до первого запишем 200 - это целая часть первого числа в 10 ричной .Берем дробную часть 0,17 -> 8*0,17=1,36 и мы берем 1 целую часть 8*0,36=2,88 берем 2 8*0,88=7,04 берем 7 8*0,04=0,32 берем 0 8*0,32=2,56 берем 2 8*0,56=4,48 берем 5 8*0,48=3,84 берем 3 8*0,72=5,76 берем 5 8*0,76=6,08 берем 6 записуем полностью число 200.1270243656 - 8 ричной 2)теперь берем второе число 85,7 и решаем аналогично 85-> 85/8 остаток 5 10/8 остаток 2 1/8 остаток 1 85->125 дробная часть 0,7-> 8*0,7=5,6 8*0,6=4,8 8*0,8=6,4 8*0,4=3,2 8*0,2=1,6 8*0,6=4,8 8*0,8=6,4 8*0,4=3,2 8*0,2=1,6 8*0,6=4,8 125,5463146314 - 8 ричной теперь берем и переводим эти же числа аналогично в 16 ричную систему учитывая что 10 -15 эти числа позначаються буквами 1) 128 -> 128/16 остаток 0 8/16 остаток 8 128->80 в 16 ричной берем остаток 0,17 16*0,17=2,72 16*0,72=11,52 16*0,52=8,32 16*0,32=5,12 16*0,12=1,92 16*0,92=14,72 16*0,72=11,52 16*0,52=8,32 16*0,32=5,12 16*0,12=1,92 128,17-> 80,2B851EB851 Теперь берем второе число 85,7-> 85/16 остаток 5 5/16 остаток 5 85->55 в 16 ричной берем дробную часть 0,7-> 16*0,17=2,72 16*0,72=11,52 16*0.52=8,32 16*0,32=5,12 16*0,12=1,92 16*0,92=14,72 16*0,52=8,32 16*0,32=5,12 16*0,12=1,92 85,7->55,2B851EB851 в 16 ричной
Const N = 5;
Var a: Array [1..N] of LongInt;
i: Integer;
Function MinDigit(number: LongInt): Integer;
Var digits: Array of Integer;
num, min, i: Integer;
Begin
num := number;
While num <> 0 Do
Begin
num := num Div 10;
i := i + 1;
End;
SetLength(digits, i);
num := number;
For i := 0 To Length(digits) - 1 Do
Begin
digits[i] := num Mod 10;
num := num Div 10;End;
For i := 0 To Length(digits) - 1 Do
If digits[i] < digits[min] Then
min := i; Result := digits[min];
End;
Begin
WriteLn('Введите ', N, ' целых чисел через пробел');
For i := 1 To N Do
Read(a[i]);
For i := 1 To N Do
Write(MinDigit(a[i]), ' ');
End.
1)128,17
берем целую часть 128 и переводим ->
128/8 остаток 0
16/8 остаток 0
2/8 остаток 2
берем остатки и с последнего до первого запишем 200 - это целая часть первого числа в 10 ричной .Берем дробную часть 0,17 ->
8*0,17=1,36 и мы берем 1 целую часть
8*0,36=2,88 берем 2
8*0,88=7,04 берем 7
8*0,04=0,32 берем 0
8*0,32=2,56 берем 2
8*0,56=4,48 берем 5
8*0,48=3,84 берем 3
8*0,72=5,76 берем 5
8*0,76=6,08 берем 6
записуем полностью число 200.1270243656 - 8 ричной
2)теперь берем второе число 85,7 и решаем аналогично
85->
85/8 остаток 5
10/8 остаток 2
1/8 остаток 1
85->125
дробная часть 0,7->
8*0,7=5,6
8*0,6=4,8
8*0,8=6,4
8*0,4=3,2
8*0,2=1,6
8*0,6=4,8
8*0,8=6,4
8*0,4=3,2
8*0,2=1,6
8*0,6=4,8
125,5463146314 - 8 ричной
теперь берем и переводим эти же числа аналогично в 16 ричную систему учитывая что 10 -15 эти числа позначаються буквами
1) 128 ->
128/16 остаток 0
8/16 остаток 8
128->80 в 16 ричной
берем остаток 0,17
16*0,17=2,72
16*0,72=11,52
16*0,52=8,32
16*0,32=5,12
16*0,12=1,92
16*0,92=14,72
16*0,72=11,52
16*0,52=8,32
16*0,32=5,12
16*0,12=1,92
128,17-> 80,2B851EB851
Теперь берем второе число 85,7->
85/16 остаток 5
5/16 остаток 5
85->55 в 16 ричной
берем дробную часть 0,7->
16*0,17=2,72
16*0,72=11,52
16*0.52=8,32
16*0,32=5,12
16*0,12=1,92
16*0,92=14,72
16*0,52=8,32
16*0,32=5,12
16*0,12=1,92
85,7->55,2B851EB851 в 16 ричной