Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 вариант.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
230.86 Кб
Скачать

Var n, s: integer;

begin

    n := 3;

    s := 0;

    while n <= 7 do begin

        s := s + n;

        n := n + 1

    end;

    write(s)

end.

По­яс­не­ние.

Цикл while вы­пол­ня­ет­ся до тех пор, пока ис­тин­но усло­вие n <= 7, т. е. пе­ре­мен­ная n опре­де­ля­ет, сколь­ко раз вы­пол­нит­ся цикл.

 

За­пи­шем по­сле­до­ва­тель­но зна­че­ния s и n:

 

s 0 3 7 12 18 25

n 3 4 5  6   7   8

 

 

Цикл вы­пол­нит­ся пять раз (так как дей­ствие n := n + 1 стоит в конце цикла, сле­до­ва­тель­но, для n=8 дей­ствие s := s + n не будет вы­пол­нять­ся).

  1. До­ку­мент объёмом 6 Мбайт можно пе­ре­дать с од­но­го ком­пью­те­ра на дру­гой

двумя спо­со­ба­ми.

А. Сжать ар­хи­ва­то­ром, пе­ре­дать архив по ка­на­лу связи, рас­па­ко­вать.

Б. Пе­ре­дать по ка­на­лу связи без ис­поль­зо­ва­ния ар­хи­ва­то­ра.

При этом:

· ско­рость пе­ре­да­чи дан­ных по ка­на­лу связи со­став­ля­ет 222 бит в се­кун­ду;

· объём сжа­то­го ар­хи­ва­то­ром до­ку­мен­та равен 50% от ис­ход­но­го;

· время, тре­бу­е­мое на сжа­тие до­ку­мен­та, — 6 се­кунд, на рас­па­ков­ку — 2 се­кун­ды.

Какой спо­соб быст­рее и на сколь­ко?

В от­ве­те на­пи­ши­те букву А, если быст­рее спо­соб А, или Б, если быст­рее спо­соб Б. Сразу после буквы на­пи­ши­те, на сколь­ко се­кунд один спо­соб быст­рее дру­го­го.

На­при­мер, если спо­соб Б быст­рее спо­со­ба А на 23 се­кун­ды, в от­ве­те нужно на­пи­сать Б23.

Еди­ни­цы из­ме­ре­ния «се­кунд», «сек.», «с» и т. п. к от­ве­ту до­бав­лять не нужно. По­яс­не­ние.

Общее время скла­ды­ва­ет­ся из вре­ме­ни сжа­тия, рас­па­ков­ки и пе­ре­да­чи. Время пе­ре­да­чи t рас­счи­ты­ва­ет­ся по фор­му­ле t = Q / q, где Q — объём ин­фор­ма­ции, q — cко­рость пе­ре­да­чи дан­ных.

Спо­соб А. Найдём сжа­тый объём: 6 · 0,5 = 3 Мбайт. Пе­ре­ведём Q из Мбайт в биты: 3 Мбай­т =  3 · 220 байт = 3 · 223 бит. Найдём общее время: t = 6 с + 2 с + 3 · 223 бит / 222 бит/с = 8 с + 6 с = 14 с.

Спо­соб Б. Общее время сов­па­да­ет с вре­ме­нем пе­ре­да­чи: t = 6 · 223 бит / 222 бит/с = 12 с.

Таким об­ра­зом, спо­соб Б быст­рее на 14 − 12 = 2 с.

 

Ответ: Б2.

  1. Сколь­ко су­ще­ству­ет раз­лич­ных сим­воль­ных по­сле­до­ва­тель­но­стей длины от трёх до четырёх в четырёхбук­вен­ном ал­фа­ви­те {A, C, G, T}? По­яс­не­ние.

Если в ал­фа­ви­те M сим­во­лов, то ко­ли­че­ство всех воз­мож­ных «слов» (со­об­ще­ний) дли­ной N равно Q = MN. В нашем слу­чае M = 4, а N = 3 или 4. Сле­до­ва­тель­но Q = 43 + 44 = 64 + 256 = 320.

 

Ответ: 320.

  1. Ниже на пяти язы­ках про­грам­ми­ро­ва­ния за­пи­са­на ре­кур­сив­ная функ­ция (про­це­ду­ра) F.

 

 

Бей­сик

Python

SUB F(n)

    PRINT n,

    IF n > 2 THEN

       F(n − 1)

       F(n − 2)

       F(n − 3)

    END IF

END SUB

def F(n):

    print (n, end='')

    if n > 2:

        F(n − 1)

        F(n − 2)

        F(n − 3)

Пас­каль

Ал­го­рит­ми­че­ский язык

procedure F(n: integer);

begin

    write(n);

    if n > 2 then

    begin

      F(n − 1);

      F(n − 2);

      F(n − 3)

    end

end;

алг F(цел n)

нач

    вывод n

    если n > 2 то

      F(n − 1)

      F(n − 2)

      F(n − 3)

    все

кон

Си

void F(int n ){

    printf("%d", n);

    if (n > 2) {

        F(n − 1);

        F(n − 2);

        F(n − 3);

    }

}

 

 

Что вы­ве­дет про­грам­ма при вы­зо­ве F(4)? В от­ве­те за­пи­ши­те по­сле­до­ва­тель­ность вы­ве­ден­ных цифр слит­но (без про­бе­лов).

По­яс­не­ние.

Рас­смот­рим струк­ту­ру вы­зо­ва функ­ций, оче­ред­ность.

 

 F(4) {

    F(3) {

       F(2)

       F(1)

       F(0)

    }

    F(2)

    F(1)

 }

 

Так как число пе­ча­та­ет­ся сразу при за­хо­де в функ­цию, то по­ря­док чисел будет сов­па­дать с по­ряд­ком вы­зо­вов.

Ответ:4321021

  1. Если маска под­се­ти 255.255.252.0 и IP-адрес ком­пью­те­ра в сети 226.185.90.162, то номер ком­пью­те­ра в сети равен_____ По­яс­не­ние.

1. Так как пер­вые два ок­те­та (октет - число маски, со­дер­жит 8 бит) оба равны 255, то в дво­ич­ном виде они за­пи­сы­ва­ют­ся как 16 еди­ниц, а зна­чит, пер­вые два ок­те­та опре­де­ля­ют адрес сети.

2. За­пи­шем число 252 в дво­ич­ном виде:

Итого, по­след­ние два ок­те­та маски за­пи­сы­ва­ют­ся как 11111100 00000000

3. За­пи­шем по­след­ние два ок­те­та IP-ад­ре­са ком­пью­те­ра в сети:

Итого, по­след­ние два ок­те­та IP-ад­ре­са ком­пью­те­ра в сети за­пи­сы­ва­ют­ся так: 01011010 10100010

4. Со­по­ста­вим по­след­ние ок­те­ты маски и ад­ре­са ком­пью­те­ра в сети:

11111100 00000000

01011010 10100010

Жир­ным вы­де­ле­на нуж­ная нам часть. Пе­ре­ве­дем её в де­ся­тич­ную си­сте­му счис­ле­ния:

Ответ:674

  1. B не­ко­то­рой стра­не ав­то­мо­биль­ный номер дли­ной 6 сим­во­лов со­став­ля­ют из за­глав­ных букв (ис­поль­зу­ют­ся толь­ко 33 раз­лич­ных буквы) и де­ся­тич­ных цифр в любом по­ряд­ке. Каж­дый такой номер в ком­пью­тер­ной про­грам­ме за­пи­сы­ва­ет­ся ми­ни­маль­но воз­мож­ным и оди­на­ко­вым целым ко­ли­че­ством бай­тов (при этом ис­поль­зу­ют по­сим­воль­ное ко­ди­ро­ва­ние и все сим­во­лы ко­ди­ру­ют­ся оди­на­ко­вым и ми­ни­маль­но воз­мож­ным ко­ли­че­ством битов). Опре­де­ли­те объём па­мя­ти, от­во­ди­мый этой про­грам­мой для за­пи­си 125 но­ме­ров. (Ответ дайте в бай­тах.) По­яс­не­ние.

Со­глас­но усло­вию, в но­ме­ре могут быть ис­поль­зо­ва­ны 10 цифр (0..9) и 33 буквы, всего 10 + 33 = 43 сим­во­лов. Из­вест­но, что с по­мо­щью N бит можно за­ко­ди­ро­вать 2N раз­лич­ных ва­ри­ан­тов. По­сколь­ку 25 < 43 < 26, то для за­пи­си каж­до­го из 43 сим­во­лов не­об­хо­ди­мо 6 бит.

 

Для хра­не­ния всех 6 сим­во­лов но­ме­ра нужно 6 * 6 = 36 бит, а т. к. для за­пи­си ис­поль­зу­ет­ся целое число байт, то берём бли­жай­шее не мень­шее зна­че­ние, крат­ное вось­ми, это число 40 = 5 * 8 бит (5байт).

 

Тогда 125 но­ме­ров за­ни­ма­ют 5 * 125 = 625 байт.

Небольшое дополнение

По­че­му берется наи­мень­шее зна­че­ние, крат­ное 8, если можно за­пи­сать 4,5 байта?

Каж­дый номер ко­ди­ру­ет­ся целым чис­лом байт.

  1. Си­сте­ма ко­манд ис­пол­ни­те­ля РОБОТ, «жи­ву­ще­го» в пря­мо­уголь­ном ла­би­рин­те на клет­ча­той плос­ко­сти, вклю­ча­ет в себя 4 ко­ман­ды-при­ка­за и 4 ко­ман­ды про­вер­ки усло­вия. Ко­ман­ды-при­ка­зы:

вверх

вниз

влево

впра­во

При вы­пол­не­нии любой из этих ко­манд РОБОТ пе­ре­ме­ща­ет­ся на одну клет­ку со­от­вет­ствен­но: вверх ↑, вниз ↓, влево ←, впра­во →.

Если РОБОТ начнёт дви­же­ние в сто­ро­ну на­хо­дя­щей­ся рядом с ним стены, то он раз­ру­шит­ся, и про­грам­ма прервётся.

Дру­гие 4 ко­ман­ды про­ве­ря­ют ис­тин­ность усло­вия от­сут­ствия стены у каж­дой сто­ро­ны той клет­ки, где на­хо­дит­ся РОБОТ:

свер­ху сво­бод­но

снизу сво­бод­но

слева сво­бод­но

спра­ва сво­бод­но

Цикл

 

ПОКА усло­вие

по­сле­до­ва­тель­ность ко­манд

КОНЕЦ ПОКА

 

вы­пол­ня­ет­ся, пока усло­вие ис­тин­но. В кон­струк­ции

 

ЕСЛИ усло­вие

ТО ко­ман­да1

ИНАЧЕ ко­ман­да2

КОНЕЦ ЕСЛИ

 

вы­пол­ня­ет­ся ко­ман­да1 (если усло­вие ис­тин­но) или ко­ман­да2 (если усло­вие ложно).

 

Сколь­ко кле­ток ла­би­рин­та со­от­вет­ству­ют тре­бо­ва­нию, что, начав дви­же­ние в ней и вы­пол­нив пред­ло­жен­ную про­грам­му, РОБОТ уце­ле­ет и оста­но­вит­ся в за­кра­шен­ной клет­ке (клет­ка A6)?

 

НА­ЧА­ЛО

ПОКА снизу сво­бод­но ИЛИ слева сво­бод­но

ЕСЛИ снизу сво­бод­но

ТО вниз

ИНАЧЕ влево

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

По­яс­не­ние.

При вы­пол­не­нии дан­ной про­грам­ме РОБОТ по­сту­па­ет сле­ду­ю­щим об­ра­зом: спер­ва РОБОТ про­ве­ря­ет, сво­бод­на ли клет­ка слева или снизу от него. Если это так, то РОБОТ пе­ре­хо­дит к пер­во­му дей­ствию внут­ри цикла. В этом цикле если у ниж­ней сто­ро­ны клет­ки, в ко­то­рой на­хо­дит­ся РОБОТ, нет стены, он дви­га­ет­ся вниз, в про­тив­ном слу­чае он пе­ре­ме­ща­ет­ся влево. После этого воз­вра­ща­ет­ся к на­ча­лу внеш­не­го цикла. Про­ана­ли­зи­ро­вав эту про­грам­му, при­хо­дим к вы­во­ду, что РОБОТ не может раз­бить­ся.

Про­ве­рив все клет­ки по вы­ве­ден­но­му нами пра­ви­лу дви­же­ния РО­БО­ТА, вы­яс­ня­ем, что число кле­ток, удо­вле­тво­ря­ю­щих усло­вию за­да­чи равно 21: F1-F6, А6-F6, A3-A5, B1-B5, C1, C2.

Ответ:21

  1. На ри­сун­ке изоб­ра­же­на схема до­ро­г, свя­зы­ва­ю­щих го­ро­да A, B, C, D, E, F, G, H, K, L, M. По каж­дой до­ро­ге можно дви­гать­ся толь­ко в одном на­прав­ле­нии, ука­зан­ном стрел­кой. Сколь­ко су­ще­ству­ет раз­лич­ных путей из го­ро­да A в город M?

По­яс­не­ние.

Нач­нем счи­тать ко­ли­че­ство путей с конца марш­ру­та – с го­ро­да М. NX — ко­ли­че­ство раз­лич­ных путей из го­ро­да А в город X, N — общее число путей.

 

В "М" можно при­е­хать из G, H, F, K или L, по­это­му N = NМ = NG + NH + NF + N К + N L (1)

 

Ана­ло­гич­но:

 

NG = NB + NC;

NH = NC + NF;

NF = NC + NА + ND;

NК = NF + ND + NE;

NL = NE.

 

До­ба­вим еще вер­ши­ны:

 

NB = NA + NC;

NC = NA = 1;

ND = NA= 1;

NE = NА + ND = 2.

 

Пре­об­ра­зу­ем вер­ши­ны:

 

NB = NA + NC = 2;

NC = NA = 1;

ND = NA= 1;

NE = NА + ND = 2.

 

NG = NB + NC = 2 + 1 = 3;

NH = NC + NF = 1 + 3 = 4;

NF = NC + NА + ND = 1 + 1 + 1 = 3;

NК = NF + ND + NE = 3 + 1 + 2 = 6;

NL = NE = 2.

 

Под­ста­вим в фор­му­лу (1):

 

N = NМ = 3 + 4 + 3 + 6 + 2 = 18.

Ответ:18

  1. В си­сте­ме счис­ле­ния с не­ко­то­рым ос­но­ва­ни­ем де­ся­тич­ное число 57 за­пи­сы­ва­ет­ся как 111. Ука­жи­те это ос­но­ва­ние. По­яс­не­ние.

Со­ста­вим урав­не­ние: 111n = 1 · n2 + 1 · n1 + 1 · n0 = 5710, где n — ос­но­ва­ние этой си­сте­мы счис­ле­ния. Урав­не­ние n2 + n − 56 = 0 имеет два корня: 7 и −8. Таким об­ра­зом, ос­но­ва­ние си­сте­мы счис­ле­ния — 7.

 

Ответ: 7.

  1. В языке за­про­сов по­ис­ко­во­го сер­ве­ра для обо­зна­че­ния ло­ги­че­ской опе­ра­ции «ИЛИ» ис­поль­зу­ет­ся сим­вол «|», а для ло­ги­че­ской опе­ра­ции «И» - сим­вол «&». В таб­ли­це при­ве­де­ны за­про­сы и ко­ли­че­ство най­ден­ных по ним стра­ниц не­ко­то­ро­го сег­мен­та сети Ин­тер­нет.

 

За­прос

Най­де­но стра­ниц (в ты­ся­чах)

Шве­ция

3200

Фин­лян­дия

2300

Шве­ция & Фин­лян­дия

100

 

Какое ко­ли­че­ство стра­ниц (в ты­ся­чах) будет най­де­но по за­про­су Шве­ция | Фин­лян­дия

Счи­та­ет­ся, что все за­про­сы вы­пол­ня­лись прак­ти­че­ски од­но­вре­мен­но, так что набор стра­ниц, со­дер­жа­щих все ис­ко­мые слова, не из­ме­нял­ся за время вы­пол­не­ния за­про­сов.

По­яс­не­ние.

По фор­му­ле вклю­че­ний и ис­клю­че­ний имеем:

 

m(Шве­ция | Фин­лян­дия) = m(Фин­лян­дия) + m(Шве­ция) - m(Шве­ция & Фин­лян­дия) = 3200 + 2300 - 100 = 5400.

  1. На чис­ло­вой пря­мой даны два от­рез­ка: P = [3, 33] и Q = [22, 44]. Вы­бе­ри­те такой от­ре­зок A, что фор­му­ла

 

(x ∈ Q) → ((x ∈ P) → (x ∈ A))

 

тож­де­ствен­но ис­тин­на, то есть при­ни­ма­ет зна­че­ние 1 при любом зна­че­нии пе­ре­мен­ной х.

 

1) [2, 20]

2) [10, 25]

3) [20, 40]

4) [25, 30] По­яс­не­ние.

Вве­дем обо­зна­че­ния:

 

(x ∈А) ≡ A; (x ∈ P) ≡ P; (x ∈ Q) ≡ Q.

 

При­ме­нив пре­об­ра­зо­ва­ние им­пли­ка­ции, по­лу­ча­ем:

 

Q → (P → A) ⇔ ¬Q ∨ (P → A) ⇔ ¬Q ∨ ¬P ∨ A.

 

Ло­ги­че­ское ИЛИ ис­тин­но, если ис­тин­но хотя бы одно утвер­жде­ние. Усло­вие ¬Q ∨ ¬P = 1 ис­тин­но на мно­же­стве (−∞, 22) ∪ (33, ∞). По­сколь­ку вы­ра­же­ние ¬Q ∨ ¬P ∨ A долж­но быть тож­де­ствен­но ис­тин­ным, вы­ра­же­ние A долж­но быть ис­тин­ным на от­рез­ке [22, 33]. Из пе­ре­чис­лен­ных от­рез­ков толь­ко от­ре­зок [20, 40] удо­вле­тво­ря­ет этому усло­вию.

 

Ответ:3

  1. Зна­че­ния эле­мен­тов дву­мер­но­го мас­си­ва А были равны 0. Затем зна­че­ния не­ко­то­рых эле­мен­тов были из­ме­не­ны (см. пред­став­лен­ный фраг­мент про­грам­мы):

n := 0;

for i:=1 tо 5 do

for j:=1 tо 6-i do begin

n := n + 1;

A[i,j] := n;

end;

Какой эле­мент мас­си­ва будет иметь в ре­зуль­та­те мак­си­маль­ное зна­че­ние?

 

1) A[1,1]

2) A[1,5]

3) A[5,1]

4) A[5,5] По­яс­не­ние.

В пе­ре­мен­ной n на­кап­ли­ва­ет­ся сумма про­хо­дов цикла. Это число всё время растёт, сле­до­ва­тель­но, наи­боль­шим эле­мен­том мас­си­ва будет тот, зна­че­ние ко­то­ро­му будет при­сво­е­но по­след­ним. Это эле­мент A[5,1].

Ответ: 3

  1. Ниже за­пи­са­на про­грам­ма. По­лу­чив на вход число , эта про­грам­ма пе­ча­та­ет два числа, L и M. Ука­жи­те наи­мень­шее из таких чисел , при вводе ко­то­рых ал­го­ритм пе­ча­та­ет сна­ча­ла 3, а потом 8.

var x, L, M: integer;

begin

readln(x);

L:=0; M:=0;

while x > 0 do begin

L:= L + 1;

if x mod 2 = 1 then

M:= M + x mod 10;

x:= x div 10;

end;

writeln(L); write(M);

end.

По­яс­не­ние.

Строч­ка L:= L + 1; в дан­ной про­грам­ме счи­та­ет ко­ли­че­ство цифр в числе, зна­чит число трех­знач­ное.

При по­мо­щи ко­манд if x mod 2 = 1 then M:= M + x mod 10; под­счи­ты­ва­ет­ся сумма всех цифр числа x, если оно нечётно. Наи­мень­шее число, удо­вле­тво­ря­ю­щее усло­вию — 107.

Ответ:107

  1. Опре­де­ли­те, какое число будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния сле­ду­ю­ще­го ал­го­рит­ма (для ва­ше­го удоб­ства ал­го­ритм пред­став­лен на четырёх язы­ках):

 

 

Бей­сик

Пас­каль

DIM A, B, T, M, R AS INTEGER

A = -20: B = 20

M = A: R = F(A)

FOR T = A TO B

    IF F(T) < R THEN

        M = T

        R = F(T)

    ENDIF

NEXT T

PRINT R

FUNCTION F(x)

    F = 16 * (9 - x)* (9 - x) + 127;

END FUNCTION

var a,b,t,M,R :integer;

    Function F(x:integer):integer;

        begin

            F : = 16 * (9 - x)* (9 - x) + 127;

        end;

begin

    a : = -20; b : = 20;

    M : = a; R : = F(a);

    for t : = a to b do begin

        if (F(t) < R ) then begin

            M : = t;

            R : = F(t)

        end

    end;

    write(R);

end.

Си

Ал­го­рит­ми­че­ский язык

#include<stdio.h>

int F(int x)

{

    return 16 * (9 - x)* (9 - x) + 127;

}

void main()

{

    int a, b, t, M, R;

    a = -20; b = 20;

    M = a; R = F(a);

    for (t = a; t <= b; t++){

        if (F(t) < R) {

            M = t; R = F(t);

        }

        }

    printf("%d", R);

}

алг

нач

цел a, b, t, R, M

a : = -20; b : = 20

M : = a; R : = F(a)

нц для t от a до b

если F(t) < R

то

M : = t; R : = F(t)

все

кц

вывод R

кон

алг цел F(цел x)

нач

знач : = 16 * (9 - x)* (9 - x) + 127

кон

По­яс­не­ние.

1. Ал­го­ритм ищет наи­мень­шее зна­че­ние функ­ции F(t) на ин­тер­ва­ле от a до b.

2. Имеем:  , гра­фик этой функ­ции – па­ра­бо­ла, ветви ко­то­рой на­прав­ле­ны вверх, по­это­му функ­ция при­ни­ма­ет наи­мень­шее зна­че­ние в вер­ши­не.

 

3. Най­дем абс­цис­су вер­ши­ны:

 

как видно, она лежит в нуж­ном ин­тер­ва­ле.

 

4. Под­ста­вим 

Ответ:127

  1. У ис­пол­ни­те­ля Удво­и­тель две ко­ман­ды, ко­то­рым при­сво­е­ны но­ме­ра:

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]