<u>PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
procedure RedFrac(a,b:integer; var c,d:integer); // сокращение дроби
function Gcd(a,b:integer):integer; // НОД
begin
while b<>0 do begin a:=a mod b; Swap(a,b) end;
Result:=a
end;
begin
var sgnc:=Sign(a); // мы должны учитывать знак!
var sgnd:=Sign(b); // мы должны учитывать знак!
c:=Abs(a); d:=Abs(b);
var g:=Gcd(c,d);
c:=(c div g)*sgnc; d:=(d div g)*sgnd
end;
begin
var p,q,r,s:integer;
Write('Введите числитель и знаменатель: '); Read(p,q);
RedFrac(p,q,r,s);
Writeln(p,' / ',q,' = ',r, ' / ',s)
end.
<u>Пример</u>
Введите числитель и знаменатель: 384 4096
384 / 4096 = 3 / 32
Вариант Б это же проооосто!
Ответ:
5.17 бит, 1.17 бит.
Объяснение:
а) в колоде одна дама пик, поэтому шанс ее достать равен 1 из 36.
По формуле Хартли получаем ㏒₂36 бит. Или, примерно, 5.17 бит.
б) Старше десятки в колоде из 36 карт будут валет, дама, король и туз. 4 карты одной масти. Мастей 4, поэтому всего таких карт 4×4=16. Шанс достать такую карту равен 16 из 36 или 4 из 9. Снова по формуле Хартли
получаем ㏒₂(9/4) бит. Или, примерно, 1.17 бит.
1)
Program asd;
USES crt;
Const n=10;
var A:array[1..n] of integer;
i,s,k,k1:integer;
BEGIN
Clrscr;
For i:=1 to n do
begin
A[i]:=random(10);
Write(A[i]:4);
end;
Writeln;
Writeln('Введите число: ');
Readln(s);
For i:=1 to n do
begin
If A[i]=s then k:=k+1;
end;
Writeln('Число ',s,', его кол-во в массиве: ',k,' шт.');
<span>END.
2)
Program asd;
USES crt;
Const n=10;
var A:array[1..n] of integer;
i,min,mini,max,maxi:integer;
BEGIN
Clrscr;
For i:=1 to n do
begin
A[i]:=Random(20);
Write(A[i]:4);
end;
Writeln;
max:=A[1];
min:=A[1];
For i:=1 to n do
begin
if A[i]>max then
begin
maxi:=i;
max:=A[i];
end;
if A[i]<min then
begin
mini:=i;
min:=A[i];
end;
end;
Writeln('Максимальное число: ',max,'. Индекс: ',maxi);
Writeln('Минимальное число: ',min,'. Индекс: ',mini );
<span>END.</span></span>
Ответ: a: 28);
б: 222).
Объяснение:
А) По условию мы имеем 8888..8888[65]
ПОКА нашлось (2222) ИЛИ нашлось (8888) - это условию
То есть как я понимаю данный оператор производит выборку из текста и заменить его на результат заданный оператором.
Допустим: 8888..8888[65] - Удовлетворяем условию <нашлось (8888)>
ЕСЛИ нашлось (2222)
ТО заменить (2222, 8) // Двоек на данный момент у нас нет, пропускается
ИНАЧЕ заменить (8888, 2) // То есть 8888 =>2
Блок у нас состоит из 4 цифр значит мы 65/4= 16 целых - это у нас количество <2> 1 в остатке - это оставшиеся <8>
В итоге получаем 2222.2222[16]8
Возвращаемся в начало цикла и тут у нас уже подходит условие с (2222)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 8) - меняем
16/4=4 //Если не забыли это количество всех наших чисел равных 2 делим на блок из 4 чисел. Не забываем про остаток от предыдущего деления в виде 8[1]
В итоге получаем: 88888
Cнова вернемся в начало цикла.
88888 Удовлетворяем условию <нашлось (8888)>
Меняем 8888=>2. В итоге
28
Ответ:28
2) Делаем по аналогии
72/4=18[2]
18/4=4[8] 2{2}
4/4=1{2] + 2{2}= 3{2}
Ответ: 222