program xxx;
var i, j, k, n, p, s : integer;
a : array [1..20] of integer;
begin
write ('введите количество инверсий -');
readln(k);
write ('введите количество ламп -');
readln(n);
for i:=1 to n do
a[i]:=0;
for i:=1 to k do
begin
write ('введите инверсию P-');
readln(p);
j:=p;
while j<=n do
begin
if a[j]=0 then a[j]:=1 else a[j]:=0;
j:=j+p
end
end;
s:=0;
for i:=1 to n do
if a[i]=1 then s:=s+1;
write ('Ламп горит -', s);
readln
end.
1) Чтобы перевести из 2-ой системы в 10-ную нужно каждую цифру умножить на основание системы счисления в степени в какой стоит цифра:
111101(2) = 1 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2^0 =
= 32 + 16 + 8 + 4 + 0 + 1 = 61 (10)
2) Чтобы перевести число из 10-ой системы в 2-ную нудно делить исходной число на 2 до тех пор пока исходной число не станет меньше 2, остатки от деления записанные в обратном порядке будут результатом
65 : 2 = 32(ост. 1)
32 : 2 = 16(ост. 0)
16 : 2 = 8(ост. 0)
8 : 2 = 4(ост. 0)
4 : 2 = 2 (ост. 0)
2 : 2 = 1 (ост. 0)
65(10) = 1000001(2)
Поделитесь своими знаниями, ответьте на вопрос:
Запиши термины обозначение соответсвующие понятия
Подробнее - на -