ОЦЕНИВАНИЕ по итогом ВТОРОГО ПОЛУГОДИЯ ИНФОРМАТИКА І вариант VІІ класс 06. 2021 0.1. Welbeckelalleged Glypay 1. Пронумеруйте в правильной последовательности. (46) 1. Постановка алачи 2. Подготовка программы 3. Оталка и тестирование 4. Создание математической модели 5. Содание алгоритм 6. Анализ полученных результатов A) 1.2.3.4.5.6. B) 2.3, 1.5,4,6 1.4.5.2.3.6 D) 154, 263 2. Какая команда присваивания написана неправильно? (46) А) xax + 1 В) х ву C) x + Sex D) y=x+5 в среде ALPlogo? (76) ) 3. Как записывается выражение (x+1)(y+1) 45xy A) (х+1) • (y+1)/45xy B) (x+1) + (y+1)/(45*x +y) C) (x+1) + (y+1)/45*xy D) (x+1) + (y+1)/45*(x +y) 4. Какое значение примет переменная х после выполнения данных команд? (100) ха 44 a = 2 хаха x=x +1 х = (х + 7/10 А) 42 В) 43 C) 5 D) 4,3 5. Какой будет запись числа 490 в двоичной системе счисления? (86) А) 10001 В) 00101 C) 10100 D) 10 001 6. Какому десятичному числу соответствует число 101 10:? (86) А) 52 В) 47 c) 101 D) 46 7. Каково самое большое четырехзначное число в двоичной системе счисления? (36) А) 1000 в) 1 c) 9999 D) 4011 8. В какой системе счисления верно равенство 17, + 45, = 64,? (205) А) двоичной В) десятичной С) шестеричної D) восьмеричноой
function colcifr(a: integer): integer; var s, k: string; i, j: integer; begin i := a; repeat str(i mod 10, k); i := i div 10; if (pos(k, s) = 0) then begin s := concat(s, k); inc(j); end; until (i = 0); colcifr := j; end;
function sum(i: integer): integer; var a, b: integer; begin a := i; repeat b := b + a mod 10; a := a div 10; until (a = 0); sum := b; end;
var i: integer;
begin for i := 1000 to 9999 do if (i mod 2 + i mod 7 + i mod 11 = 0) then if (colcifr(i) = 2) then if (sum(i) = 30) then writeln(i); end.
function f(x: real): real; begin f := x * sqr(1 - x) end;
function gsc(a, b: real): real; {получение суммы для метода Гаусса} var p, q, s, s1, s2, s3, s4, s5: real; begin p := (b + a) / 2; q := (b - a) / 2; s1 := g10c1 * (f(p + q * g10x1) + f(p - q * g10x1)); s2 := g10c2 * (f(p + q * g10x2) + f(p - q * g10x2)); s3 := g10c3 * (f(p + q * g10x3) + f(p - q * g10x3)); s4 := g10c4 * (f(p + q * g10x4) + f(p - q * g10x4)); s5 := g10c5 * (f(p + q * g10x5) + f(p - q * g10x5)); s := s1 + s2 + s3 + s4 + s5; Result := s * (b - a) end;
function Gauss(a, b, eps, gs: real): real; {рекурсивная ф-ция подсчета с заданной точностью eps} {gs - интеграл на (a,b), получать заранее} var m, ia, ib: real; begin m := (a + b) / 2; ia := gsc(a, m); ib := gsc(m, b); if abs(ia + ib - gs) > eps then begin ia := gauss(a, m, eps / 2, ia); {рекурсия для первой половинки} ib := gauss(m, b, eps / 2, ib){рекурсия для второй половинки} end; Result := ia + ib end;
function Intg(a, b, eps: real): real; begin Result := Gauss(a, b, eps, gsc(a, b)); end;
var a, b, eps, y1, y2: real;
begin a := 0; b := 1; eps := 1e-6; y1 := Intg(a, b, eps); y2:=sqr(b)*(sqr(b)/4-2*b/3+0.5); writeln('Значение интеграла по методу Гаусса: ', y1:0:8); writeln('Значение интеграла по формуле: ', y2:0:8); writeln('Абсолютная погрешность составляет: ', abs(y2-y1):0:8); writeln('Относительная погрешность составляет: ', abs((y2-y1)/y1)*100:0:6,'%'); end.
Тестовое решение:
Значение интеграла по методу Гаусса: 0.08333337 Значение интеграла по формуле: 0.08333333 Абсолютная погрешность составляет: 0.00000004 Относительная погрешность составляет: 0.000044%
var
s, k: string;
i, j: integer;
begin
i := a;
repeat
str(i mod 10, k);
i := i div 10;
if (pos(k, s) = 0) then
begin
s := concat(s, k);
inc(j);
end;
until (i = 0);
colcifr := j;
end;
function sum(i: integer): integer;
var
a, b: integer;
begin
a := i;
repeat
b := b + a mod 10;
a := a div 10;
until (a = 0);
sum := b;
end;
var
i: integer;
begin
for i := 1000 to 9999 do
if (i mod 2 + i mod 7 + i mod 11 = 0) then
if (colcifr(i) = 2) then
if (sum(i) = 30) then
writeln(i);
end.
8778
{константы десятиточечного метода Гаусса}
g10c1 = 0.9739065285 / 6.2012983932;
g10c2 = 0.8650633667 / 6.2012983932;
g10c3 = 0.6794095683 / 6.2012983932;
g10c4 = 0.4333953941 / 6.2012983932;
g10c5 = 0.1488743390 / 6.2012983932;
g10x1 = 0.0666713443 / 6.2012983932;
g10x2 = 0.1494513492 / 6.2012983932;
g10x3 = 0.2190863625 / 6.2012983932;
g10x4 = 0.2692667193 / 6.2012983932;
g10x5 = 0.2955242247 / 6.2012983932;
function f(x: real): real;
begin
f := x * sqr(1 - x)
end;
function gsc(a, b: real): real;
{получение суммы для метода Гаусса}
var
p, q, s, s1, s2, s3, s4, s5: real;
begin
p := (b + a) / 2; q := (b - a) / 2;
s1 := g10c1 * (f(p + q * g10x1) + f(p - q * g10x1));
s2 := g10c2 * (f(p + q * g10x2) + f(p - q * g10x2));
s3 := g10c3 * (f(p + q * g10x3) + f(p - q * g10x3));
s4 := g10c4 * (f(p + q * g10x4) + f(p - q * g10x4));
s5 := g10c5 * (f(p + q * g10x5) + f(p - q * g10x5));
s := s1 + s2 + s3 + s4 + s5;
Result := s * (b - a)
end;
function Gauss(a, b, eps, gs: real): real;
{рекурсивная ф-ция подсчета с заданной точностью eps}
{gs - интеграл на (a,b), получать заранее}
var
m, ia, ib: real;
begin
m := (a + b) / 2;
ia := gsc(a, m);
ib := gsc(m, b);
if abs(ia + ib - gs) > eps then
begin
ia := gauss(a, m, eps / 2, ia); {рекурсия для первой половинки}
ib := gauss(m, b, eps / 2, ib){рекурсия для второй половинки}
end;
Result := ia + ib
end;
function Intg(a, b, eps: real): real;
begin
Result := Gauss(a, b, eps, gsc(a, b));
end;
var
a, b, eps, y1, y2: real;
begin
a := 0;
b := 1;
eps := 1e-6;
y1 := Intg(a, b, eps);
y2:=sqr(b)*(sqr(b)/4-2*b/3+0.5);
writeln('Значение интеграла по методу Гаусса: ', y1:0:8);
writeln('Значение интеграла по формуле: ', y2:0:8);
writeln('Абсолютная погрешность составляет: ', abs(y2-y1):0:8);
writeln('Относительная погрешность составляет: ', abs((y2-y1)/y1)*100:0:6,'%');
end.
Тестовое решение:
Значение интеграла по методу Гаусса: 0.08333337
Значение интеграла по формуле: 0.08333333
Абсолютная погрешность составляет: 0.00000004
Относительная погрешность составляет: 0.000044%