Используем равенство 16 * 0.6 = 9 + 0.6. 1) Двоичная система. Умножение на 16 = сдвиг на 4 разряда. После сдвига получилось 9 (=1001) и после запятой то же число. Очевидно, ответ 0,100110011001... = 0,(1001) 2) Десятиричная - серьёзно? 3) Шестнадцатеричная система. По определению 0,99999999 = 0,(9)
//Задание №1 //PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) const m = 31; var a:array[1..m] of integer; i,s,n:integer;
begin for i:=1 to m do begin a[i]:=random(-20,20); if a[i]>0 then begin s:=s+a[i];n:=n+1; end; end; println('Температуры за месяц :'); a.println; writeln('Средняя в оттепель :',s/n:0:3); end.
Тестовое решение: Температуры за месяц : 16 7 19 -7 -18 6 12 -18 -5 -10 8 -4 10 4 10 5 -3 14 -7 -8 2 7 4 -7 18 4 -12 -5 -9 7 -5 Средняя в оттепель :9.000
//Задание №2 //PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) const m = 10; var a:array[1..m] of integer; i,s,n:integer;
begin for i:=1 to m do begin a[i]:=random(-20,20); if i mod 2<>0 then s:=s+a[i]; end; writeln('Исходный массив :'); a.println; for i:=1 to m do if i mod 2=0 then a[i]:=s; writeln('Сумма на нечетных местах = ',s); writeln('Изиененный массив :'); a.println; end.
var m: array[1..n] of integer; i, mn, mx: integer;
begin Write('Введите через пробел три целых числа: '); i := 1; repeat Read(m[i]); i := i + 1 until i > n; mn := m[1]; mx := mn; i := 2; repeat if mx < m[i] then mx := m[i] else if mn > m[i] then mn := m[i]; i := i + 1 until i > n; Writeln('Разность наибольшего с наименьшим равна ', mx - mn) end.
Тестовое решение:
Введите через пробел три целых числа: 7 9 3 Разность наибольшего с наименьшим равна 6
1) Двоичная система. Умножение на 16 = сдвиг на 4 разряда. После сдвига получилось 9 (=1001) и после запятой то же число. Очевидно, ответ 0,100110011001... = 0,(1001)
2) Десятиричная - серьёзно?
3) Шестнадцатеричная система.
По определению 0,99999999 = 0,(9)