В таблице Dat хранятся данные измерений среднесуточной температуры за 10 дней в градусах (Dat[1] – данные за первый день, Dat[2]
– за второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования. алг Алгоритмический язык алг нач цел таб Dat[1:10] цел к, m Dat[1] := 2 Dat[2] := 5 Dat[3] := 7 Dat[4] := 5 Dat[5] := 4 Dat[6] := 2 Dat[7] := 0 Dat[8] := 2 Dat[9] := 4 Dat[10] := 5 m := 0 нц для к от 1 до 10 если Dat[к] > 3 то m : = m+1 все КЦ вывод m КОН
Бейсик DIM Dat(10) AS INTEGER DIM k,m AS INTEGER Dat(1) = 2: Dat(2) = 5 Dat(3) = 7: Dat(4) = 5 Dat(5) = 4: Dat(6) = 2 Dat(7) = 0: Dat(8) = 2 Dat(9) = 4: Dat(10) = 5 m = 0 FOR k := 1 TO 10 IF Dat(k) > 3 THEN m =m+1 ENDIF NEXT k PRINT m
Паскальа
Var k, m: integer; Dat: array[1..10] of integer; Begin Dat[1] := 2; Dat[2] := 5; Dat[3] := 7; Dat[4] := 5; Dat[5] := 4; Dat[6] := 2; Dat[7] := 0; Dat[8] := 2; Dat[9] := 4; Dat[10] := 5; m := 0; for k := 1 to 10 do if Dat[k] > 3 then begin m := m+1 end; writeln(m); End.
Сначала переводим 8-чное число 5237 в двоичное = 5237(8) = 101010011111(2). Дальше справа налево проставляем в даоичном числе числа, начиная с нуля:
101010011111
11 10 9 8 7 6 5 4 3 2 1 0 (на фото лучше было бы видно, сорри). И если на каком-то месте стоит 1, то возводим 2 в соотвествующую степень. Получаем 2^11 + 2^9 + 2^7 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 = 2719(10)
//PascalABC.NET //Версия 3.3, сборка 1627 function f(x: integer): boolean; begin f:=false; var c:=0; foreach var item in x.ToString.Select(t->t.ToDigit()).Where(r->r<>0) do if (x mod item=0) then inc(c); if c=x.ToString.Count then f:=true; end; begin var n:=ReadInteger; range(1,n).Where(x->f(x)).Println; end.