Я хочу чтоб школа была стеклянной, а планшеты место тетрадей.
// PascalABC.NET 3.3.5, сборка 1662 (29.04.2018)
begin
Println($'Среднее арифметическое : {ArrRandomInteger(40,0,20).Println.Where(e-> e.IsOdd).DefaultIfEmpty.Average}')
end.
// FreePascal
var
a: array[0..39] of integer;
i, c, s: integer;
begin
randomize;
for i := 0 to 39 do
begin
a[i] := random(21);
Write(a[i],' ');
if (a[i] mod 2 <>0) then
begin
inc(c);
s := s + a[i];
end;
end;
Writeln;
if c<>0
then Writeln('Среднее арифметическое: ',s/c)
else Writeln(0);
end.
// C++
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int a[40];
double c = 0, s = 0;
srand(time(0));
for (int i = 0; i < 40; i++) {
a[i] = rand() % 21;
cout << a[i] << " ";
if (a[i] % 2 != 0) {
c++;
s += a[i];
}
}
if (c!=0) cout << "\nСреднее арифметическое = " << s / c << endl;
else cout << "\nСреднее арифметическое = 0 " << endl;
system("pause");
return 0;
}
Задачка интересная, исследуем её.
Понятно, что программ будет 8. Но в задаче спрашивается, сколько разных чисел получится из двойки, поэтому нужно исследовать каждую программу
1. +++ (((2 +2) +2) +2 = 8
2. ++* (((2 +2) +2) *3 = 18
3. +*+ (((2 +2) *3) +2 = 14
4. *++ (((2 *3) +2) +2 = 10
5. *** (((2 *3) *3) *3 = 54
6. **+ (((2 *3) *3) +2 = 20
7. *+* (((2 *3) +2) *3 = 24
8. +** (((2 +2) *3) *3 = 36
Вот только теперь можно сказать что из 2 можно получить 8 разных чисел.
PS Арифметику проверь, писал напрямую в экран, мог допустить неточность.
Все процессы тела.
ТОЛЬКО процессы