#include <iostream>
using namespace std;
int main()
{
setlocale(0, "");
int a{}, b{};
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
if (a % b >= 0 && a % b <= 4) cout << "Остаток от деления " << a << " на " << b << " (" << a % b << ") попадает в диапазон 0...4";
else cout << "Остаток от деления " << a << " на " << b << " (" << a % b << ") не попадает в диапазон 0...4";
return 0;
}
Задача: перевести число 49 из десятичной системы счисления в двоичную
Для того, чтобы перевести число 49 из десятичной системы счисления в двоичную, необходимо осуществить последовательное деление на 2, то тех пор пока остаток не будет меньше чем 2.
— 49 2
48 — 24 2
1 24 — 12 2
0 12 — 6 2
0 6 — 3 2
0 2 1
1
Полученные остатки записываем в обратном порядке, таким образом:
ответ: 4910=1100012
Обратите внимание, что алфавит в 2-ой системе счисления содержит следующие значения:
0, 1
Число 49 не может иметь основание 2.
Задача: перевести число 132 из десятичной системы счисления в двоичную
Для того, чтобы перевести число 132 из десятичной системы счисления в двоичную, необходимо осуществить последовательное деление на 2, то тех пор пока остаток не будет меньше чем 2.
— 132 2
132 — 66 2
0 66 — 33 2
0 32 — 16 2
1 16 — 8 2
0 8 — 4 2
0 4 — 2 2
0 2 1
0
Полученные остатки записываем в обратном порядке, таким образом:
ответ: 13210=100001002
Обратите внимание, что алфавит в 2-ой системе счисления содержит следующие значения:
0, 1
Число 132 не может иметь основание 2.
Задача: перевести число 2051 из десятичной системы счисления в двоичную.
Для того, чтобы перевести число 2051 из десятичной системы счисления в двоичную, необходимо осуществить последовательное деление на 2, до тех пор пока остаток не будет меньше чем 2.
— 2051 2
2050 — 1025 2
1 1024 — 512 2
1 512 — 256 2
0 256 — 128 2
0 128 — 64 2
0 64 — 32 2
0 32 — 16 2
0 16 — 8 2
0 8 — 4 2
0 4 — 2 2
0 2 1
0
Полученные остатки записываем в обратном порядке, таким образом:
ответ: 205110=1000000000112.
Обратите внимание, что алфавит в 2-ой системе счисления содержит следующие значения:
0, 1
Число 2051 не может иметь основание 2.
Поделитесь своими знаниями, ответьте на вопрос:
На соревнованиях выступления спортсменов оценивает судейская бригада, которая может состоять из 3-х, 4-х или 5-ти человек. каждый из судей показывает поставленную им оценку (вещественное число от 0 до 10 если судей трое, то сначала считается средний из всех их оценок, потом отбрасывается оценка, наиболее отклоняющаяся от среднего, и итог получается как среднее из оставшихся (если максимальная и минимальная оценки одинаково отклоняются, то ответ - среднее всех трёх чисел). если судей четверо или пятеро, то отбрасываются минимальная и максимальная оценки, а итог получается как среднее из оставшихся. по данному количеству судей и их оценкам найдите итоговый выступления, выведите его с точностью не менее 4 знаков после десятичной точки.
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество судей:');
Assert(n.InRange(3,5),'Неверное количество судей, разрешено 3,4 или 5');
var a:=ReadArrReal('Введите оценки:',n);
if n>3 then Writeln(' ',a.OrderBy(t->t).ToArray[1:n-1].Average:0:4)
else begin
var m:=a.Average;
var b:=a.Select(t->(t,Abs(t-m))).OrderByDescending(t->t[1]).ToArray;
if Abs(b[0][1]-b[1][1])<1e-5 then Writeln(' ',m:0:4)
else Writeln(' ',b.Skip(1).Select(t->t[0]).Average:0:4)
end
end.
2. А в школах часто все еще учат писать так:
var
a,d:array[1..5] of real;
n,i,imax,imin,j:integer;
s,avg:real;
begin
Write('Количество судей: '); Read(n);
if (n<3) or (n>5) then
Writeln('Неверное количество судей, разрешено 3,4 или 5')
else begin
Write('Введите оценки: ');
for i:=1 to n do Read(a[i]);
if n>3 then begin
imax:=1; imin:=1;
for i:=2 to n do
if a[i]<a[imin] then imin:=i
else
if a[i]>a[imax] then imax:=i;
s:=0;
a[imax]:=0;
a[imin]:=0;
for i:=1 to n do s:=s+a[i];
avg:=s/(n-2);
Writeln(' ',avg:0:4)
end
else begin
s:=0;
for i:=1 to n do s:=s+a[i];
avg:=s/n;
for i:=1 to n do d[i]:=Abs(a[i]-avg);
for i:=1 to n-1 do
for j:=i+1 to n do
if d[i]<d[j] then begin
s:=d[i]; d[i]:=d[j]; d[j]:=s
end;
if Abs(d[1]-d[2])<1e-5 then Writeln(' ',avg:0:4)
else begin
s:=0;
for i:=1 to n do
if a[i]<>a[1] then s:=s+a[i];
avg:=s/(n-1);
Writeln(' ',avg:0:4)
end
end
end
end.