Uses
graphABC;
const
W = 800; H = 500;
function DrawSin(x: real): real;
begin
DrawSin := sin(x);
end;
function DrawCos(x: real): real;
begin
DrawCos := cos(x);
end;
var
x0, y0, x, y, xLeft, yLeft, xRight, yRight, n: integer;
a, b, fmin, fmax, x1, y1, x2, y2, mx, my, dx, dy, num: real;
i: byte;
s: string;
begin
SetWindowSize(W, H);
xLeft := 50;
yLeft := 50;
xRight := W - 50;
yRight := H - 50;
a := -10; b := 10; dx := 1;
fmin := -5; fmax := 5; dy := 1;
mx := (xRight - xLeft) / (b - a);
my := (yRight - yLeft) / (fmax - fmin);
x0 := trunc(abs(a) * mx) + xLeft;
y0 := yRight - trunc(abs(fmin) * my);
line(xLeft, y0, xRight + 10, y0);
line(x0, yLeft - 10, x0, yRight);
SetFontSize(12);
SetFontColor(clBlue);
TextOut(xRight + 20, y0 - 15, 'X');
TextOut(x0 - 10, yLeft - 30, 'Y');
SetFontSize(7);
SetFontColor(clRed);
n := round((b - a) / dx) + 1;
for i := 1 to n do
begin
num := a + (i - 1) * dx;
x := xLeft + trunc(mx * (num - a));
Line(x, y0 - 3, x, y0 + 3);
str(Num:0:1, s);
if abs(num) > 1E-15 then
TextOut(x - TextWidth(s) div 2, y0 + 10, s)
end;
n := round((fmax - fmin) / dy) + 1;
for i := 1 to n do
begin
num := fMin + (i - 1) * dy;
y := yRight - trunc(my * (num - fmin));
Line(x0 - 3, y, x0 + 3, y);
str(num:0:1, s);
if abs(num) > 1E-15 then
TextOut(x0 + 7, y - TextHeight(s) div 2, s)
end;
TextOut(x0 - 10, y0 + 10, '0');
x1 := a;
x2 := a;
while x1 <= b do
begin
y1 := DrawSin(x1);
y2 := DrawCos(x2);
if ((x1 >= -2*pi) and (x1 <= 2*pi)) then
begin
x := x0 + round(x1 * mx);
y := y0 - round(y1 * my);
if (y >= yLeft) and (y <= yRight) then SetPixel(x, y, clBlue);
x := x0 + round(x2 * mx);
y := y0 - round(y2 * my);
if (y >= yLeft) and (y <= yRight) then SetPixel(x, y, clGreen);
end;
x1 := x1 + 0.001;
x2 := x2 + 0.001;
end
end.
Log2(4000000000)=4 байта на точку.
800*600*4=1920000 байт на картинку или 1920000*8=15360000 бит.
15360000/51200=300 секунд
<em>// PascalABC.NET 3.3, сборка 1611 от 06.01.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ReadArrInteger('Вводите:',ReadInteger('n='));
Writeln('Баллов, меньших 30: ',a.Where(t->t<30).Count);
Writeln('Баллов, равных 100: ',a.Where(t->t=100).Count);
Write('Три различных лучших результата: ');
a.Distinct.OrderByDescending(t->t).Take(3).Println
end.
<u>Пример</u>
n= 23
Вводите: 92 51 93 33 7 60 47 71 24 17 49 35 7 31 6 74 51 86 51 86 100 48 54
Баллов, меньших 30: 5
Баллов, равных 100: 1
Три различных лучших результата: 100 93 92
Задание 1.
1024 страницы по 256 строк с 128 символами, 2 байта на символ.
1024*256*128*2=67108864 байта, или 65536 кбайта, или 64 мбайта.
560 иллюстраций * 5 мбайт = 2800 мбайт.
2 гбайта = 2*1024=2048 мбайт.
2800+64=2864
2864>2048, то есть не поместится.
Задание 2.
26 букв и 10 цифр = 36 различных символов, каждый кодируется минимально возможным кол-вом бит. Ближайшая степень двойки - 64, то есть 6 бит на символ. Каждый номер состоит из 9 символов, то есть 6*9=54 бита на номер.
54*110=5940 бит на 110 номеров.