игра брюс 2048
Главная / Алгоритмы и дискретные структуры / Решение олимпиадных задач по информатике / Тест 7

Решение олимпиадных задач по информатике - тест 7

Упражнение 1:
Номер 1
Использование дополнительного массива флажков ("отмечающих" выбранные элементы в соответствующих флажкам позициях исходного массива) предполагает, что:

Ответ:

 (1) флажки, указывающие на выбранные по определенному правилу элементы, должны иметь одинаковые значения 

 (2) флажки могут иметь символьные значения 

 (3) все выбранные по определенному правилу элементы должны быть "отмечены" в массиве флажков числами натурального ряда 

 (4) массив флажков должен содержать только целые числа 


Номер 2

В решениях приведенных ниже задач:

А."В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки";

В."В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется";

С."N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей"

элементы массива флажков, отмечающих наступление-окончание события, на этапе заполнения начальных значений примут такие значения:


Ответ:

 (1)

А.порядок "-1" и "1" в массиве будет зависеть от порядка следования скобок в арифметическом выражении

В.1 -1 1 -1 1 -1…

С.1 -1 1 -1 1 -1…

 

 (2)

А. 1 -1 1 -1 1 -1…

В.порядок "-1" и "1" в массиве будет зависеть от порядка следования времен прихода-ухода сторожей в отсортированном массиве времен

С.1 -1 1 -1 1 -1…

 

 (3)

А.1 -1 1 -1 1 -1…

В.1 -1 1 -1 1 -1…

С.порядок "-1" и "1" в массиве будет зависеть от порядка следования координат точек в отсортированном массиве координат

 

 (4) порядок следования "1" и "-1" будет зависеть от выбора алгоритма для решения этих задач  


Номер 3
Можно ли "отмечать" начало и конец какого-либо события (пример задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется") не флажками "1" и "-1", а любыми символами (например, "*" и "/")?

Ответ:

 (1) нет, так как решение задачи основывается на выполнении арифметических операций с флажками, равными по значению, противоположными по знаку 

 (2) нет, флажки должны быть переменными целого типа 

 (3) да, так как главное - отметить разными символами наступление и окончание события 

 (4) не важно, как отмечать 


Упражнение 2:
Номер 1

В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив Flag будет содержать:

… readln (n); for i:=1 to n do a[i]:=i; for i:=2 to n div 2 do if flag[i]=0 then for j:=i+1 to n do if (a[j] mod a[i]=0) then flag[j]:=1; …

Ответ:

 (1) нули в тех элементах, индексы которых - простые числа (первый элемент массива flag также нулевой) 

 (2) единицы в тех элементах, которые соответствуют (стоят в тех же позициях) элементам массива а, содержащим составные числа 

 (3) единицы-"указатели" на простые числа (стоящие в тех же позициях, что и единичные элементы массива flag массива а 

 (4) единицы, если соответствующий элемент массива а не имеет делителей 


Номер 2
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив Flag будет содержать:
…
n:=5;
for i:=1 to n do a[i]:=i;
for i:=2 to n div 2 do 
 if flag[i]=0 then
  for j:=i+1 to n do
   if (a[j] mod a[i]=0) then flag[j]:=1;
…

Ответ:

 00010 


Номер 3

В результате выполнения программы на Паскале, фрагмент которой приведен ниже, на экран выведутся:

… readln (n); for i:=1 to n do a[i]:=i; for i:=2 to n div 2 do if flag[i]=0 then for j:=i+1 to n do if (a[j] mod a[i]=0) then flag[j]:=1; for i:=2 to n do if flag[i]=0 then writeln (a[i]) …

Ответ:

 (1) простые числа 

 (2) составные числа 

 (3) совершенные числа 

 (4) натуральный ряд чисел 


Номер 4

В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив Flag будет содержать:

… for i:=1 to 10 do begin a[i]:=i; flag[i]:=0; end for i:=2 to 10 div 2 do if flag[i]=0 then for j:=i+1 to 10 do if (a[j] mod a[i]=0) then flag[j]:=1; …

Ответ:

 (1) 0001010111 

 (2) 1110101000 

 (3) 0101010101 

 (4) 1101010101 


Упражнение 3:
Номер 1

В решениях приведенных ниже задач:

А."В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки";

В."В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется";

С."N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей"

используются типовые алгоритмы:


Ответ:

 (1) А - "разбор" строки на символы, В - сортировка одномерного массива, С - сортировка одномерного массива 

 (2) А - "разбор" строки на символы, В - "разбор" строки на символы, С - "разбор" строки на символы 

 (3) А - сортировка одномерного массива, В - "разбор" строки на символы, С - сортировка одномерного массива 

 (4) А - сортировка одномерного массива, В - сортировка одномерного массива, С - "разбор" строки на символы 


Номер 2

Для решения приведенных ниже задач:

- В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки;

- В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется;

- N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей.

необходимо воспользоваться типовыми алгоритмами:


Ответ:

 (1) "разбор" строки на символы 

 (2) сортировка одномерного массива 

 (3) нахождение суммы элементов лдномерного массива 

 (4) "разбор" предложения на слова" 


Номер 3

Что выведется на экран в результате работы программы, фрагмент которой приведен ниже:

… stroka:='(5+y)*(x-4)'; n:=length (stroka); s:=0; for i:=1 to n do begin a[i]:=copy(stroka, i, 1); flag[i]:=0; end; for i:=1 to n do begin if a[i]="(" then flag [i]:=1; if a[i]=")" then flag [i]:=-1; end; for i:=1 to n do begin s:=s+flag [i]; if s<0 then x:=1; end; if (s=0) and (x=0) then writeln ('верно') else writeln ('неверно'); …

Ответ:

 (1) верно 

 (2) неверно 


Упражнение 4:
Номер 1

Какие шаги необходимо включить в словесный алгоритм для решения задачи: "В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки" из предложенного набора:

A. исходные данные вводим в массив

B. массив Flag заполняется "1" (если имеющий такой же порядок элемент массива исходных данных соответствует началу события, связанного с этим данным), "-1" (соответствует окончанию события)

C. сортируем массив исходных данных, одновременно переставляя элементы массива Flag

D. суммируем элементы массива Flag. Анализируем сумму.


Ответ:

 (1) A, B, D 

 (2) A, B, C, D 

 (3) A, B, C 

 (4) предложенный набор не полный 


Номер 2

В результате работы программы, фрагмент которой приведен ниже, идет проверка правильности расстановок скобок в арифметическом выражении. Что будет результатом работы программы, если в данном выражении (например: math избыточное количество скобок:

… n:=length (stroka); s:=0; for i:=1 to n do begin a[i]:=copy(stroka, i, 1); flag[i]:=0; end; for i:=1 to n do begin if a[i]="(" then flag [i]:=1; if a[i]=")" then flag [i]:=-1; end; for i:=1 to n do begin s:=s+flag [i]; if s<0 then x:=1; end; if (s=0) and (x=0) then writeln ('верно') else writeln ('неверно'); …

Ответ:

 (1) выводится фраза "верно" 

 (2) выводится фраза "неверно" 

 (3) программа ничего не выводит 

 (4) программа зациклена 


Номер 3

В результате работы программы, фрагмент которой приведен ниже, идет проверка правильности расстановок скобок в арифметическом выражении. Что будет результатом работы программы, если в данном выражении (например: math) избыточное количество скобок:

… n:=length (stroka); s:=0; for i:=1 to n do begin a[i]:=copy(stroka, i, 1); flag[i]:=0; end; for i:=1 to n do begin if a[i]="(" then flag [i]:=1; if a[i]=")" then flag [i]:=-1; end; for i:=1 to n do begin s:=s+flag [i]; if s<0 then x:=1; end; if (s=0) and (x=0) then writeln ('верно') else writeln ('неверно'); …

Ответ:

 (1) верно 

 (2) неверно 


Упражнение 6:
Номер 1

Какие шаги необходимо включить в словесный алгоритм для решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется" из предложенного набора:

  • A. исходные данные вводим в массив
  • B. массив Flag заполняется "1" (если имеющий такой же порядок элемент массива исходных данных соответствует началу события, связанного с этим данным), "-1" (соответствует окончанию события)
  • C. сортируем массив исходных данных, одновременно переставляя элементы массива Flag
  • D. суммируем элементы массива Flag. Анализируем сумму.

  • Ответ:

     (1) A, B, C, D 

     (2) A, B, D 

     (3) A, B, C 

     (4) предложенный набор не полный 


    Номер 2

    Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется":

    … //заполнение массива a (временем прихода и ухода сторожа), массива flag ("1" и "-1") … //сортировка массива а с перестановкой элементов массива flag (в соответствии с перестанавливаемыми элементами массива а) … for i=1 to 2*n do begin s:=s+flag [i]; if s=0 then k:=k+1; end; if k=1 then writeln ('галерея всегда охранялась') else writeln ('галерея оставалась без охраны', k-1,'раз');

    Каков будет результат работы программы, если время ухода одного из сторожей совпадает с временем прихода его сменщика?


    Ответ:

     (1) галерея оставалась без охраны 1 раз 

     (2) галерея всегда охранялась 

     (3) галерея оставалась без охраны 2 раз 

     (4) галерея оставалась без охраны 0 раз 


    Номер 3

    Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется":

    … //заполнение массива a (временем прихода и ухода сторожа), массива flag ("1" и "-1") … //сортировка массива а с перестановкой элементов массива flag (в соответствии с перестанавливаемыми элементами массива а) … for i=1 to 2*n do begin s:=s+flag [i]; if s=0 then k:=k+1; end; writeln ('количество случаев неохраняемости галереи') writeln (k-1); …

    Какое количество случаев неохраняемости галереи выдаст программа, если время ухода одного из сторожей совпадает с временем прихода его сменщика?


    Ответ:

     1 


    Упражнение 7:
    Номер 1

    Какие шаги необходимо включить в словесный алгоритм для решения задачи: "N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей" из предложенного набора:

  • A. исходные данные вводим в массив
  • B. массив Flag заполняется "1" (если элемент массива исходных данных соответствует началу события), "-1" (соответствует окончанию события)
  • C. сортируем массив исходных данных, одновременно переставляя элементы массива Flag
  • D. суммируем элементы массива Flag. Анализируем сумму.

  • Ответ:

     (1) A, B, C, D 

     (2) A, B, D  

     (3) A, B, C  

     (4) предложенный набор не полный  


    Номер 2

    Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "N отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей":

    … //заполнение массива a (координаты концов отрезка), массива flag ("1" и "-1") … //сортировка массива а с перестановкой элементов массива flag (в соответствии с перестанавливаемыми элементами массива а) … for i=1 to 2*n do begin s:=s+flag [i]; if s=0 then k:=k+1; end; writeln ('количество связных областей', k); …

    Сколько связных областей дадут два отрезка, имеющие одну общую координату (начало одного совпадает с концом другого)?


    Ответ:

     2 


    Номер 3

    Укажите количество связных областей для n (n вводится с клавиатуры) отрезков, пары координат которых также вводятся с клавиатуры. Входные данные:

    \begin{matrix} 3&\\ 1& 5\\ 4& 9\\ 11& 15 \end{matrix}

    Ответ:

     2 




    Главная / Алгоритмы и дискретные структуры / Решение олимпиадных задач по информатике / Тест 7