<span>Целая часть от деления Остаток от деления</span><span>12 div 2 = 6 12 mod 2 = 0</span><span>6 div 2 = 3 6 mod 2 = 0</span><span>3 div 2 = 1 3 mod 2 = 1</span><span>1 div 2 = 0 1 mod 2 = 1</span><span>Остаток от деления записываем в обратном порядке. Получаем число в 2-ой системе счисления: 1100</span>
<span>12 = 1100|2
</span><span>Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения.
0.75*2 = 1.5 (целая часть 1)
0.5*2 = 1 (целая часть 1)
0*2 = 0 (целая часть 0)
0*2 = 0 (целая часть 0)
Получаем число в 2-ой системе счисления: 1100
0.75 = 1100|2
В итоге получаем число: 1100.1100|<span>2</span></span>
<u><em>Текст модуля (Free Pascal):</em></u>
unit MyLib;
interface
procedure MinDigit(n:longint;var md:byte);
implementation
procedure MinDigit(n:longint;var md:byte);
var
d:byte;
begin
md:=10;
while n>0 do begin
d:=n mod 10;
if d<md then md:=d;
n:=n div 10
end
end;
begin
end.
<em><u>Тестовая программа:</u></em>
uses
Crt, MyLib;
var
p:byte;
begin
ClrScr;
MinDigit(45134,p);
Writeln('p=',p);
ReadKey
end.
<em><u>Тестовое решение:</u></em>
p=1
<em>uses crt;</em>
<em>var a, b, c, i, n:integer; </em>
<em>s :array [1..10000] of integer;</em>
<em>begin</em>
<em> clrscr;</em>
<em> writeln ('Введите размер массива, который надо сгенерировать');</em>
<em> read (n);</em>
<em> for i:=1 to n do </em>
<em> s[i]:=random(50);</em>
<em> for i:=1 to n do </em>
<em> writeln (i, ' элемент равен ', s[i]);</em>
<em> writeln ('Введите число, которое нужно найти');</em>
<em> read (a);</em>
<em> for i:=1 to n do</em>
<em> if s[i]=a then inc(b);</em>
<em> if b=0 then writeln('В массиве нет числа ',a) else writeln('Число ', a,' в массиве встречается ', b,' раз');</em>
<span><em>end.</em>
<em><u>P.S. Надеюсь на благодарность и лучший ответ.</u></em>
</span>