В результате выполнения программы, фрагмент которой приведен ниже
…
n=5;
for i:=1 to n do write (n-i+1);
…
выводится ряд чисел:
(1) 5 4 3 2 1
(2) 0 1 2 3 4
(3) 1 2 3 4 5
(4) 4 3 2 1 0
(5) 6 5 4 3 2
Как определить существование треугольника, если известны его стороны?
(1) треугольник существует, когда сумма любых двух его сторон больше третьей
(2) треугольник существует, когда сумма любых двух его сторон меньше третьей
(3) треугольник существует, когда сумма квадратов любых двух его сторон большеквадрата третьей
(4) треугольник существует, когда сумма квадратов любых двух его сторон меньшеквадрата третьей
Правила формирования комбинаторных групп:
А - считать разными выборки, в которых один и тот же элемент занимает разные позиции.Б - считать одинаковыми выборки, в которых один и тот же элемент занимает разные позиции.В - в выборке участвуют все элементы исходного множества ().
соответствуют основным типам комбинаторных групп:
(1) А - Размещения; Б - Сочетания; В - Перестановки
(2) А - Размещения; Б - Перестановки; В - Сочетания
(3) А - Сочетания; Б - Размещения; В - Перестановки
(4) А - Перестановки; Б - Размещения; В - Сочетания
(5) А - Сочетания; Б - Перестановки; В - Размещения
(6) А - Перестановки; Б - Сочетания; В - Размещения
Определите результат работы фрагмента программы на Паскале:
…
for i:=1 to 10 do a[i]:=i-1;
z:=0; d:=0; h=1;
for i:=1 to 10 do
begin
if i mod 2 <> 0 then z:=z+a[i];
if a[i] mod 3 = 0 then d:=d*a[i];
if a[i] <= 0 then h:=h+1;
end;
write (z, ' ', d, ' ', h);
…
(1) 20 0 2
(2) 20 162 1
(3) 20 162 2
(4) 25 162 1
Выберите фрагменты программ на Паскале, реализующие алгоритм сортировки одномерного массива "Пузырьком":
(1) . . .
for j:=n downto 2 do
for i:=1 to j-1 do
if x[i]>x[i+1] then
begin
y:=x[i]; x[i]:= x[i+1]; x[i+1]:=y;
end;
(2) . . .
for j:=n downto 2 do
for i:=2 to j do
if x[i-1]>x[i] then
begin
y:=x[i]; x[i]:= x[i-1]; x[i-1]:=y;
end;
(3) . . .
for j:=1 to n-1 do
for i:=1 to j do
if x[i]>x[i+1] then
begin
y:=x[i]; x[i]:= x[i+1]; x[i+1]:=y;
end;
(4) . . .
for j:=1 to n do
for i:=2 to j do
if x[i-1]>x[i] then
begin
y:=x[i]; x[i]:= x[i-1]; x[i-1]:=y;
end;
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, двумерный массив будет заполнен так:
…
for i:=1 to 4 do
for j:=1 to 5 do x[i,j]:=i;
…
(1)
(2)
(3)
(4)
Использование дополнительного массива флажков ("отмечающих" выбранные элементы в соответствующих флажкам позициях исходного массива) предполагает, что:
(1) флажки, указывающие на выбранные по определенному правилу элементы, должны иметь одинаковые значения
(2) флажки могут иметь символьные значения
(3) все выбранные по определенному правилу элементы должны быть "отмечены" в массиве флажков числами натурального ряда
(4) массив флажков должен содержать только целые числа
Дан двумерный массив А
, размерностью 3х4. Сколько "путей" ведет из элемента А[1,1]
в элемент А[3,4]
, с условием, что "двигаться" можно в порядке увеличения номера строки или в порядке увеличения номера столбца?
В результате выполнения программы, фрагмент которой приведен ниже
…
n:=5;
for i:=n downto 1 do write (n-i+1);
…
выводится ряд чисел:
(1) 1 2 3 4 5
(2) 0 1 2 3 4
(3) 4 3 2 1 0
(4) 5 4 3 2 1
(5) 6 5 4 3 2
Для нахождения площади треугольника используют:
(1) формулу Герона (квадратный корень от
), где
- длины сторон, а
- полупериметр)
(2) теорему Пифагора (квадратный корень от
)
(3) зависимость: площадь треугольника равна половине произведения длин его сторон
(4) зависимость: площадь треугольника равна половине произведения основания треугольника на его высоту (высоту необходимо найти)
Три населенных пункта
и
соединены дорогами, по которым курсируют такие автобусные маршруты
. К какому типу комбинаторных групп принадлежат эти маршруты:
(1) размещения без повторений
(2) размещения с повторениями
(3) сочетания без повторений
(4) сочетания с повторениями
(5) перестановки без повторений
(6) перестановки с повторениями
Определите содержимое переменной в результате работы программы на Паскале, фрагмент которой приведен ниже:
…
for i:=1 to 5 do a[i]:=i-6;
m:=0;
for i:=1 to 5 do
if a[i]>m then m:=a[i];
…
(1) 0
(2) -1
(3) -5
(4) 1
(5) 5
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной К будет находиться…
. . .
n:=5; k:=0;
for i:=1 to n do a[i]:=i;
for j:=n downto 2 do
for i:=1 to j-1 do
if a[i]<a[i+1] then
begin
x:=a[i]; a[i]:= a[i+1]; a[i+1]:=x; k:=k+1;
end;
…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдет:
…
max:=x[1,1]; min:=x[1,1];
for i:=1 to n do
for j:=1 to m do
if x[i,j]>max then max:=x[i,j]
else min:=x[i,j];
…
(1) в переменной
max
- максимальный элемент массива, в переменной
min
- элемент
(если максимальный элемент хранится не в
)
(2) в переменной max
- максимальный элемент массива, в переменной min
- минимальный элемент массива
(3) в переменной
max
- максимальный элемент массива, в переменной
min
- минимальный элемент массива (если максимальный элемент хранится не в
)
(4) в переменной max
- максимальный элемент массива, в переменной min
- следующий за максимальным элемент массива х
(во всех случаях расположения максимального и минимального элементов массива)
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив 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) единицы, если соответствующий элемент массива а
не имеет делителей
Приведенный ниже фрагмент программы на Паскале реализует алгоритм заполнения Арифметического квадрата.
…
for i:=1 to n do
begin
a[i,1]:=i; a[1,i]:=i;
end;
for i:=2 to n do
for j:=2 to n do a[i,j]:=a[i-1,j]+a[i,j-1];
…
Найдите в нем ошибку:
(1) первая строка и первый столбец должны быть заполнены единицами, а не числами натурального ряда
(2) в одном теле цикла нельзя обращаться к элементам первой строки и первого столбца одновременно
(3) заполнение массива должно идти с конца (элемента последней строки последнего столбца)
(4) в программе нет ошибок
Каков будет результат выполнения программы на Паскале, если с клавиатуры вводится слово "Ротор":
var a:string;
k,n,i: integer;
begin
readln (a); k:=0; n:=length(a);
for i:=1 to n do
if copy(a,i,1) <> copy(a,n-i+1,1) then k:=k+1;
writeln (k);
end.
(1) 0
(2) 1
(3) 2
(4) 5
(5) 10
Площадь выпуклого четырехугольника равна…
(1) сумме площадей двух треугольников, его составляющих
(2) разности площадей прямоугольника (стороны которого параллельны осям координат), включающего в себя все вершины 4-хугольника и "лишних" треугольников ("отсечение" которых от прямоугольника даст данный 4-хугольник)
(3)
, где
- полупериметр,
- длины сторон 4-хугольника
(4) произведению разности максимальной и минимальной координат всех вершин 4-хугольника по оси
на разность максимальной и минимальной координат всех вершин по оси У
Три населенных пункта
и
соединены дорогами. Стоимость бавтобусного билета зависит от расстояния между населенными пунктами
. К какому типу комбинаторных групп принадлежат эти выбранные населенные пункты
(1) сочетания без повторений
(2) сочетания с повторениями
(3) размещения без повторений
(4) размещения с повторениями
(5) перестановки без повторений
(6) перестановки с повторениями
В результате выполнения программы, фрагмент которой приведен ниже, элементы одномерного массива примут значения …
const n=10; k=5;
var a: array [1..n+1] of integer;
…
for i:=1 to n do a[i]:=i;
for i:=k to n do a[i+1]:=a[i];
a[k]:=0;
…
(1) 1 2 3 4 0 5 5 5 5 5 5
(2) 1 2 3 4 0 5 6 7 8 9
(3) 1 2 3 4 5 0 6 7 8 9 10
(4) 1 2 3 4 0 5 6 7 8 9 10
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив вводятся числа: 1, 2, 1, 2, 1, 2. Массив У будет содержать значения:
. . .
for i:=1 to n do
begin
readln (x[i]); y[i]:=i;
end;
for j:=n downto 2 do
for i:=1 to j-1 do
if x[i]>x[i+1] then
begin
m:=x[i]; x[i]:= x[i+1]; x[i+1]:=m;
g:=y[i]; y[i]:= y[i+1]; y[i+1]:=g;
end;
. . .
(1) 1 3 5 2 4 6
(2) 1 2 3 4 5
(3) 5 4 3 2 1
(4) 1 1 1 2 2 2
Программа на Паскале, фрагмент которой приведен ниже, выводит…
…
for i:=1 to n do
for j:=1 to m do
if (x[i,j]>0) and (i*j mod 2 =0) then writeln (i,j);
…
(1) индексы положительных элементов двумерного массива, произведение индексов которых четно
(2) индексы положительных элементов двумерного массива, имеющих четный номер строки или четный номер столбца
(3) индексы положительных элементов двумерного массива, имеющих четный номер строки и четный номер столбца
(4) индексы элементов двумерного массива, произведение индексов которых делится на два
В решениях приведенных ниже задач:
А."В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки";
В."В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется";
С."N
отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей"
используются типовые алгоритмы:
(1) А - "разбор" строки на символы, В - сортировка одномерного массива, С - сортировка одномерного массива
(2) А - "разбор" строки на символы, В - "разбор" строки на символы, С - "разбор" строки на символы
(3) А - сортировка одномерного массива, В - "разбор" строки на символы, С - сортировка одномерного массива
(4) А - сортировка одномерного массива, В - сортировка одномерного массива, С - "разбор" строки на символы
На побочной диагонали Арифметического квадрата располагаются элементы, которые являются коэффициентами для слагаемых при разложени целой неотрицательной степени суммы двух переменных в Биноме Ньютона (например,
). Массив какой размерности необходимо заполнить, чтобы получить коэффициенты для слагаемых при разложении суммы двух переменных в шестой степени?
Арифметическое выражение для вычисления длины отрезка на Паскале:
Определить, находится точка
внутри или вне выпуклого многоугольника, имеющего вершины
.
(1) если сумма площадей треугольников
равна сумме площадей треугольников
, то точка находится внутри многоугольника (иначе - вне многоугольника)
(2) если координата
точки входит в диапазон, ограниченный минимальной и максимальной координатой по оси
всех вершин многоугольника И координата
точки входит в диапазон, ограниченный минимальной и максимальной координатой по оси
всех вершин многоугольника, то точка находится внутри многоугольника (иначе - вне)
(3) если расстояние от начала координат до точки входит в диапазон, ограниченный расстоянием от начала координат "ближайшей" к началу координат точки и расстоянием от начала координат до наиболее удаленной от начала координат точки, то точка находится внутри многоугольника (иначе - вне)
(4) математической зависимости для определения вхождения точки в многоугольник нет
К каким основным типам формирования комбинаторных групп относятся выборки точек по условию такой задачи: "На плоскости
точек заданы своими координатами. Найти "центральную" точку (точку, сумма расстояний от которой до остальных точек максимальна)".
(1) размещения без повторений
(2) размещения с повторениями
(3) сочетания без повторений
(4) сочетания с повторениями
(5) перестановки без повторений
(6) перестановки с повторениями
Что делает приведенная ниже программа на Паскале:
var a: string;
b, i, j, st, n, s, x, k: integer;
begin
writeln ('введите число'); readln (a); n:=length(a); s:=0;
for i:=1 to n do
begin
val (copy(a,n-i+1,1),x,k); st:=1;
for j:=1 to n do st:=st*x;
s:=s+st;
end;
val (a, x, k);
if s=x then writeln ('+')
else writeln ('-');
end.
(1) программа определяет равенство числа сумме цифр этого числа, возведенных в
-ую степень (
- количество цифр числа)
(2) программа находит сумму чисел, у которых одинаково произведений цифр (всего
чисел)
(3) программа находит цифровой корень числа
.
Для сортировки различных частей одномерного массива, выбранных по определенному правилу (так, чтобы "невыбранные" элементы оставались стоять на своих местах), необходимо:
(1) "отметить" выбранные элементы исходного массива флажками (определенными символами) в соответствующих элементах дополнительного массива
(2) заполнить дополнительный массив индексов индексами тех элементов исходного массива, которые выбраны в соотвествии с определенными правилами
(3) отсортировать весь массив исходных элементов, затем "перенести" в порядке следования элементы, выбранные по определенному правилу, в начало (конец) массива
(4) "вынести" элементы, выбранные по определенному правилу в дополнительный массив, отсортировать их, затем "перенести" обратно в исходный массив уже в отсортированном порядке
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдено:
…
d:=0;
for j:=1 to n do
begin
m[j]:=x[1,j];
for i:=1 to n do
begin
if x[i,j]>m[j] then m[j]:=x[i,j];
end;
d:=d+m[j];
end
…
(1) сумма максимальных элементов каждого стролбца квадратного массива
(2) сумма максимальных элементов каждой строки квадратного массива
(3) сумма элементов, находящихся выше главной диагонали квадратного массива
(4) сумма элементов, находящихся на главной диагонали квадратного массива
Какие шаги необходимо включить в словесный алгоритм для решения задачи: "В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки" из предложенного набора:
A. исходные данные вводим в массив
B. массив Flag
заполняется "1" (если имеющий такой же порядок элемент массива исходных данных соответствует началу события, связанного с этим данным), "-1" (соответствует окончанию события)
C. сортируем массив исходных данных, одновременно переставляя элементы массива Flag
D. суммируем элементы массива Flag
. Анализируем сумму.
(1) A, B, D
(2) A, B, C, D
(3) A, B, C
(4) предложенный набор не полный
Установите, как будет заполнен двумерный массив в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
…
for k:=1 to (n div 2 +1) do
for i:=k to n-k+1 do
for j:=k to n-k+1 do a[i,j]:= k;
…
(1)
(2)
(3)
(4)
Арифметическое выражение для вычисления площади треугольника на Паскале:
(1) sqrt (p*(p-a)*(p-b)*(p-c))
(2) sqr (p*(p-a)*(p-b)*(p-c))
(3) sqrt ((p-a)*(p-b)*(p-c))
(4) sqr ((p-a)*(p-b)*(p-c))
Определить, пересекаются ли два отрезка
и
.
(1) если сумма площадей треугольников
и
равна сумме площадей треугольников
и
, то отрезки пересекаются (иначе - нет)
(2) если большая координата по оси
первого отрезка больше меньшей координаты по оси
втрого отрезка и большая координата по оси
первого отрезка больше меньшей координаты по оси
втрого отрезка, то отрезки пересекаются (иначе - нет)
(3) если площадь четырехугольника
равна произведению длин отрезков
и
, то отрезки пересекаются (иначе - нет)
(4) если отсортированные в порядке возрастания точки по оси
и по оси
чередуются: сначала идет координата конца первого отрезка, затем - координата конца второго отреза, затем - опять первого, затем - второго, то отрезки пересекаются (иначе - нет)
К каким основным типам формирования комбинаторных групп относятся выборки точек по условию такой задачи: "На плоскости
точек заданы своими координатами. Найти 2 наиболее удаленные друг от друга точки".
(1) сочетания без повторений
(2) сочетания с повторениями
(3) размещения без повторений
(4) размещения с повторениями
(5) перестановки без повторений
(6) перестановки с повторениями
Назначение программы на Паскале…
var a: string;
b, i, st, n, s, x, k:integer;
begin
readln (a); readln(b); n:=length(a); s:=0; st:=1;
for i:=1 to n do
begin
val (copy(a,n-i+1,1),x,k); s:=s+x*st; st:=st*b;
end;
writeln (s);
end.
(1) переводить число a из b-ричной системы счисления (b<10) в 10-тичную
(2) переводить число a из 10-тичной системы счисления в b-ричную (b<10)
(3) находить цифровой корень числа а (цифровой корень числа получают суммированием, затем суммированием цифр полученной суммы и так до тех пор, пока вновь полученная сумма не будет сосотоять из одной цифры)
(4) получать сумму цифр числа
(1) индексы четных элементов массива х
(2) четные элементы массива х
(3) числа натурального ряда от 1 до n
включительно
(4) числа натурального ряда от 1 до
j включительно
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдено:
…
s:=0;
for i:=1 to n do
for j:=1 to n do
if (i<=n-j+1) then s:=s+x[i,j];
…
(1) сумма элементов, расположенных выше и на побочной диагонали квадратного массива
(2) сумма элементов, находящихся ниже и на главной диагонали квадратного массива
(3) сумма элементов, находящихся в нижней правой четверти квадратного массива
(4) сумма элементов, расположенных на побочной диагонали квадратного массива
В каком направлении идет заполнение двумерного массива в 1-ом вложенном цикле по i
, в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
… x:=1;
for k:=1 to n div 2 do
begin
for i:=k to n-k do
begin a[k,i]:=x; x:=x+1; end;
for i:=k to n-k do
begin a[i,n-k+1]:=x; x:=x+1; end;
for i:=k to n-k do
begin a[n-k+1,n-i+1]:=x; x:=x+1; end;
for i:=k to n-k do
begin a[n-i+1,k]:=x; x:=x+1; end;
end; …
(1) в строку слева направо
(2) в столбец сверху вниз
(3) в строку справа налево
(4) в столбец снизу вверх
Делители числа
- это…
(1) числа, на которые делится число
без остатка
(2) числа, на которые делится число
(3) числа, которые делятся на число
(4) числа, остаток от деления которых на число
дает остаток, равный нулю
Многоугольник задан координатами своих последовательных вершин. Внутренний угол одной из вершин многоугольника - тупой. Каким образом можно найти эту вершину?
(1) поочередно перебрать все вершины многоугольника и определить - какая из них находится внутри многоугольника, образованного оставшимися вершинами
(2) сумма расстояний от искомой вершины до остальных будет минимальна
(3) определить площадь многоугольника, приняв за первую вершину поочередно все вершины многоугольника. Та площадь, которая будет не равна остальным и укажет на нужную вершину
(4) данных для решения задачи недостаточно
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
…
for i:=1 to n do
for j:=1 to n do writeln (A[i], A[j]);
…
(1) размещения с повторениями
(2) размещения без повторений
(3) сочетания с повторениями
(4) сочетания без повторений
Приведенная программа на Паскале позволяет …
var a, b, s, x: integer;
begin
readln (a); readln (b); s:=0;
while a<>0 do
begin
x:=a mod b; s:=s*10 +x; a:=a div b;
end;
writeln (s);
end.
(1) переводить число a
из 10-тичной системы счисления в b
-ричную при b<10
(2) переводить число a
из b
-ричной системы счисления при b<10
в 10-тичную
(3) находить цифровой корень числа а
(цифровой корень числа получают суммированием, затем суммированием цифр полученной суммы и так до тех пор, пока вновь полученная сумма не будет состоять из одной цифры)
(4) получать сумму цифр числа, возведенных в степень (значение степени равно количеству цифр в числе)
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной будет находиться:
…
j:=0; m:=1;
for i:=1 to n do
begin
read (x[i]);
if x[i] mod 3=0 then
begin
j:=j+1; y[j]:=i;
end;
end;
for i:=1 to j do m:=m*x[y[i]];
…
(1) произведение элементов массива
, кратных трем
(2) произведение элементов массива
, на которые указывают элементы массива
(3) произведение каждого третьего элемента массива
(4) произведение элементов массива
, на которые указывает каждый третий элемент массива
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, квадратный массив будет заполнен таким образом:
…
for i:=1 to n do
for j:=1 to i do x[i,j]:=1;
…
(1)
(2)
(3)
(4)
Какие шаги необходимо включить в словесный алгоритм для решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется" из предложенного набора:
A. исходные данные вводим в массивB. массив Flag
заполняется "1" (если имеющий такой же порядок элемент массива исходных данных соответствует началу события, связанного с этим данным), "-1" (соответствует окончанию события) C. сортируем массив исходных данных, одновременно переставляя элементы массива Flag
D. суммируем элементы массива Flag
. Анализируем сумму.
(1) A, B, C, D
(2) A, B, D
(3) A, B, C
(4) предложенный набор не полный
Установите, как будет заполнен двумерный массив в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
…
x:=1;
for i:=1 to n do
for j:=1 to n do
begin
if i mod 2=0 then a[i,n-j+1]:=x
else a[i,j]:=x;
x:=x+1;
end;
…
(1)
(2)
(3)
(4)
Укажите, какой фрагмент программы на Паскале проверяет - простое ли число
, введенное с клавиатуры:
(1) …
for i:=1 to n do
if n mod i=0 then k:=k+1;
if k=2 then writeln ('+')
else writeln ('-');
…
(2) …
for i:=1 to n div 2 do
if n mod i=0 then k:=k+1;
if k=2 then writeln ('+')
else writeln ('-');
…
(3) …
for i:=1 to n do
if n mod i=0 then k:=k+i;
if k=n then writeln ('+')
else writeln ('-');
…
(4) …
for i:=1 to n div 2 do
if n mod i=0 then k:=k+i;
if k=2 then writeln ('+')
else writeln ('-');
…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
...
for i:=1 to n do
for j:=i to n do writeln (A[i], A[j]);
…
(1) сочетания с повторениями
(2) сочетания без повторений
(3) размещения с повторениями
(4) размещения без повторений
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная будет содержать:
…
n:=8; k:=n div 2;
for i:=1 to n do
begin
x[i]:=i; j:=i div 2 + 1; y[j]:=j*2;
end;
for i:=1 to k do s:=s+x[y[i]];
…
(1) сумму четных элементов массива
(2) сумму элементов массива
, стоящих на четных местах
(3) сумму элементов массива
(4) сумму элементов массива
, на которые указывают элементы массива
(5) сумму первых
элементов массива
Укажите фрагмент программы, выполнение которой приведет к такому заполнению квадратного массива:
(1) …
for i:=1 to (n div 2 + 1) do
for j:=1 to i do x[i,j]:=1;
…
(2) …
for i:= (n div 2 + 1) to n do
for j:=i to n do x[i,j]:=1;
…
(3) …
for i:=1 to (n div 2 + 1) do
for j:=i to (n-i+1) do x[i,j]:=1;
…
(4) …
for i:=(n div 2 + 1) to n do
for j:= (n-i+1) to i do x[i,j]:=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) предложенный набор не полный
Для реализации алгоритма заполнения Магического квадрата размерностью
методом "Террас" необходимо заполнить двумерный массив размерностью:
Укажите, какой фрагмент программы на Паскале проверяет - совершенное ли число n, введенное с клавиатуры:
(1) …
k:=0;
for i:=1 to n-1 do
if n mod i=0 then k:=k+i;
if k=n then writeln ('+')
else writeln ('-');
…
(2) …
k:=0;
for i:=1 to n div 2 do
if n mod i=0 then k:=k+i;
if k=n then writeln ('+')
else writeln ('-');
…
(3) …
k:=0;
for i:=1 to n do
if n mod i=0 then k:=k+i;
if k=n then writeln ('+')
else writeln ('-');
…
(4) …
k:=0;
for i:=1 to n-1 do
if n mod i=0 then k:=k+1;
if k=2 then writeln ('+')
else writeln ('-');
…
Метод двоичного перебора заключается в…
(1) переборе всех вариантов комбинаций "0" (указывает на "невыбранность" элемента) и "1" (указывает на "выбранность" элемента) в соответствующих элементам исходного множества элементах массива двоичных кодов
(2) разнообразных перестановках двух элементов исходного множества
(3) поочередный перебор элементов исходного множества: первый раз элемент "берется" (1), второй раз - "не берется"
(4) организации вложенных друг в друга двух циклов - счетчик внешнего цикла будет "указывать" на первый элемент в выборке, счетчик внутреннего цикла - на второй элемент.
Приведенная программа на Паскале реализует алгоритм …
const m=…;
var a, rez: array [1..m] of byte;
i, n, x, k: integer;
stroka: string;
begin
readln (stroka); readln (x); n:= length (stroka);
for i:=1 to n do val (copy(stroka, i, 1), a[i], k);
for i:=1 to n do rez[i]:= a[i] * x;
for i:=n downto 2 do
begin
rez[i-1]:= rez[i-1]+rez[i] div 10;
rez[i]:= rez[i] mod 10;
end
for i:=1 to n do write (rez[i]);
end.
(1) поразрядного умножения числа на цифру, вводимых с клавиатуры
(2) перевода числа из 10-тичной системы счисления в
-ричную
(3) перевода числa из х-ричной системы счисления в 10-тичную
(4) нахождения суммы цифр числа, возведенных в степень
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет следующее:
…
j:=1; k:=0;
for i:=1 to n do
if x[i] mod 2=0 then
begin
y[j]:=i; j:=j+1; k:=k+1;
end;
for j:=k downto 2 do
for i:=1 to j-1 do
if x[y[i]]>x[y[i+1]] then
begin
z:=x[y[i]]; x[y[i]]:=x[y[i+1]]; x[y[i+1]]:=z;
end;
…
(1) четные элементы массива
отсортируются в порядке возрастания (в позициях, занимаемых четными элементами), нечетные элементы останутся на своих местах
(2) упорядочиваются по возрастанию элементы массива
, на которые указывает содержимое элементов массива
, нечетные элементы останутся на своих местах
(3) четные элементы массива
отсортируются в порядке возрастания и будут располагаться подряд, начиная с первого элемента массива
, за ними будут следовать остальные нечетные элементы массива
(4) элементы стоящие на четных местах массива х меняются местами с элементами, стоящими на нечетных местах
Укажите фрагмент программы, выполнение которой приведет к такому заполнению квадратного массива:
(1) …
for i:=1 to (n div 2 + 1) do
for j:=i to (n-i+1) do x[i,j]:=1;
…
(2) …
for i:=1 to (n div 2 + 1) do
for j:=1 to i do x[i,j]:=1;
…
(3) …
for i:= (n div 2 + 1) to n do
for j:=i to n do x[i,j]:=1;
…
(4) …
for i:=(n div 2 + 1) to n do
for j:= (n-i+1) to i do x[i,j]:=1;
…
Установите, как будет заполнен двумерный массив в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
… x:=1;
for j:=1 to n do
for i:=1 to j do
begin a [i, j-i+1]:=x; x:=x+1;
end; …
(1)
(2)
(3)
(4)
Количество комбинаторных групп, сформированных двоичным перебором будет равно:
Решение задачи: "Даны гири массами
. Как можно взвесить предмет массой
, при чем гири можно класть на разные чашы весов" возможно методом:
(1) троичного перебора
(2)
-ричного перебора
(3) двоичного перебора
(4) ни один из предложенных методов не подходит
Перевод чисел из десятичной системы счисления в
-ричную предполагает:
(1) деление десятичного числа на основание системы счисления n до получения остатка, меньшего
, дальнейшее деление полученного частного на n также до получения остатка, меньшего
и т.д., до получения частного, равного нулю. Все полученные остатки "собираются" в обратном порядке
(2) сумму произведений цифр исходного десятичного числа на основание системы счисления
, возведенное в степень, соответствующую разряду десятичной цифры
(3) разложение десятичного числа на сумму степеней основания системы счисления
(4) ни один из предложенных методов не подходит
В результате выполнения программы, фрагмент которой приведен ниже
…
n:=5;
for i:=1 to n do write (n-i);
…
выводится ряд чисел:
(1) 4 3 2 1 0
(2) 0 1 2 3 4
(3) 1 2 3 4 5
(4) 5 4 3 2 1
(5) 6 5 4 3 2
Треугольник на плоскости задан координатами своих вершин: (2,3), (4,7), (7,2). Охарактеризуйте его:
(1) треугольник остроугольный
(2) треугольник прямоугольный
(3) треугольник тупоугольный
(4) треугольник не существует
Комбинаторные группы, в которых есть повторяющиеся элементы свидетельствуют о:
(1) наличии повторяющихся элементов в исходном множестве (для перестановок)
(2) многократном обращении к одному и тому же элементу исходного множества при формировании комбинаторной группы (для сочетаний)
(3) многократном обращении к одному и тому же элементу исходного множества при формировании комбинаторной группы (для размещений)
(4) наличии повторяющихся элементов в исходном множестве (для размещений)
(5) наличии повторяющихся элементов в исходном множестве (для сочетаний)
(6) многократном обращении к одному и тому же элементу исходного множества при формировании комбинаторной группы (для перестановок)
Определите результат работы фрагмента программы на Паскале:
…
for i:=1 to 10 do a[i]:=i-1;
z:=0; d:=1; h:=1;
for i:=1 to 10 do
begin
if i mod 2 <> 0 then z:=z+a[i];
if a[i] mod 3 = 0 then d:=d*a[i];
if a[i] <= 0 then h:=h+1;
end;
write (z, ' ', d, ' ', h);
…
(1) 20 2 2
(2) 20 0 1
(3) 20 0 2
(4) 20 0 0
Найдите ошибки в программе, реализующей алгоритм сортировки одномерного массива "Пузырьком", фрагмент которой приведен ниже:
…
for j:=2 to n do
for i:=1 to j do
if x[i]>x[i+1] then
begin
y:=x[i]; x[i]:= x[i+1]; x[i+1]:=y;
end;
…
(1) неверно: for j:=2 to n do
. Верно: for j:=n downto 2 do
(2) неверно: for i:=1 to j do
. Верно: for i:=1 to j-1 do
(3) Неверно y:=x[i]; x[i]:= x[i+1]; x[i+1]:=y;
Верно: x[i]:= x[i+1]; y:=x[i]; x[i+1]:=y
(4) в программе нет ошибок
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, двумерный массив будет заполнен так:
…
for j:=1 to 4 do
for i:=1 to 5 do x[i,j]:=i;
…
(1)
(2)
(3)
(4)
В решениях приведенных ниже задач:
А."В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки";
В."В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется";
С."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" будет зависеть от выбора алгоритма для решения этих задач
Какие из ниже перечисленных особенностей имеют отношение к Арифметическому квадрату?
(1) первая строка и первый столбец состоят из единиц
(2) элементы массива "симметричны" относительно главной диагонали
(3) элементы, находящиеся на побочной диагонали образуют палиндром
(4) элементы, находящиеся на главной диагонали образуют геометрическую прогрессию
В результате выполнения программы, фрагмент которой приведен ниже
…
n=5;
for i:=n downto 1 do write (n-i);
…
выводится ряд чисел:
(1) 0 1 2 3 4
(2) 1 2 3 4 5
(3) 4 3 2 1 0
(4) 5 4 3 2 1
(5) 6 5 4 3 2
Для нахождения площади треугольника используют формулу Герона:
, где
- длины сторон,
- …
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая размещениям с повторениями. Что нужно изменить в алгоритме, чтобы из набора выбираемых элементов исключить повторяющиеся:
…
for i:=1 to n do
for j:=1 to n do if i<>j then writeln (A[i], A[j]);
…
(1) не обращаться к одному и тому же элементу дважды при формировании одной группы
(2) проверить на равенство счетчики внутреннего и внешнего циклов
(3) счетчик внутреннего цикла должен работать от значения переменной внешнего цикла
(4) счетчик внутреннего цикла должен работать от числа, на единицу большего значения переменной внешнего цикла
Определите содержимое переменной в результате работы программы на Паскале, фрагмент которой приведен ниже:
…
for i:=1 to 5 do a[i]:=i-6;
m:=a[1];
for i:=1 to 5 do
if a[i]>m then a[i]:=m;
…
(1) 0
(2) -1
(3) -5
(4) 1
(5) 5
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная К будет содержать значение…
. . .
n:=5; k:=0;
for i:=1 to n do a[i]:=i;
for j:=n downto 2 do
for i:=1 to j-1 do
if a[i]>a[i+1] then
begin
x:=a[i]; a[i]:= a[i+1]; a[i+1]:=x; k:=k+1;
end;
…
В программе на Паскале все значения элементов двумерного массива равны "2". Что будет выведено на экран монитора в результате выполнения программы, фрагмент которой приведен ниже:
…
n:=5; x[2,3]:=5; x[4,1]:=1; max:=x[1,1]; min:=x[1,1];
for i:=1 to n do
for j:=1 to n do
if x[i,j]>max then max:=x[i,j]
else min:=x[i,j];
writeln (max, ' ', min);
…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив 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;
…
Приведенный ниже фрагмент программы на Паскале реализует алгоритм заполнения Арифметического квадрата.
…
for i:=1 to n do
begin
a[i,1]:=1; a[1,i]:=1;
end;
for i:=1 to n do
for j:=1 to n do a[i,j]:=a[i-1,j]+a[i,j-1];
…
Найдите в нем ошибку:
(1) заполнение остального массива (кроме первой строки и первого столбца) должно происходить во вложенных циклах, начальное значение счетчиков при этом равно "2"
(2) первая строка и первый столбец должны быть заполнены числами натурального ряда, а не единицами
(3) в одном теле цикла нельзя обращаться к элементам первой строки и первого столбца одновременно
(4) в программе нет ошибок
Каков будет результат выполнения программы, если с клавиатуры вводится слово "Ротор":
var a:string;
k,n,i: integer;
begin
readln (a);
k:=0;
n:=length(a);
for i:=1 to n div 2 do
if copy(a,i,1) <> copy(a,n-i+1,1) then k:=k+1;
writeln (k);
end.
(1) 1
(2) 0
(3) 2
(4) 5
(5) 10
Площадь выпуклой фигуры, имеющей вершины
равна…
(1) сумме площадей треугольников
(2)
, где
- полупериметр,
- длины сторон многоугольника
(3) произведению разности максимальной и минимальной координат всех вершин многоугольника по оси
на разность максимальной и минимальной координат всех вершин по оси
(4) разности площадей прямоугольника (стороны которого параллельны осям координат), включающего в себя все вершины данного многоугольника и "лишних" треугольников ("отсечение" которых от прямоугольника даст данный многоугольника)
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
...
for i:=1 to n-1 do
for j:=i+1 to n do writeln (A[i], A[j]);
…
(1) сочетания без повторений
(2) сочетания с повторениями
(3) размещения без повторений
(4) размещения с повторениями
В результате выполнения программы, фрагмент которой приведен ниже, элементы одномерного массива примут значения …
const n=10; k=5;
…
for i:=1 to n do a[i]:=i;
for i:=k to (n-1) do a[i]:= a[i+1];
…
(1) 1 2 3 4 6 7 8 9 10 10
(2) 1 2 3 4 6 7 8 9 10
(3) 1 2 3 4 0 5 6 7 8 9 10
(4) 1 2 3 4 0 5 6 7 8 9
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив вводятся числа: 5, 4, 3, 2, 1. Массив У будет содержать значения:
. . .
for i:=1 to n do
begin
readln (x[i]); y[i]:=i;
end;
for j:=n downto 2 do
for i:=1 to j-1 do
if x[i]>x[i+1] then
begin
m:=x[i]; x[i]:= x[i+1]; x[i+1]:=m;
g:=y[i]; y[i]:= y[i+1]; y[i+1]:=g;
end;
. . .
(1) 5 4 3 2 1
(2) 1 2 3 4 5
(3) 5 5 5 5 5
(4) 1 1 1 1 1
Программа на Паскале, фрагмент которой приведен ниже, выводит индексы положительных элементов двумерного массива, произведение индексов которых четно. Какое логическое выражение вместо вопросительного знака в ветвлении необходимо указать:
…
for i:=1 to n do
for j:=1 to m do
if ? then writeln (i,j);
…
(1) (x[i,j]>0) and (i*j mod 2) =0
(2) (x[i,j]>0) or (i*j mod 2) =0
(3) (x[i,j]>0) and (i*j div 2) =0
(4) (x[i,j]>0) and (i mod=0)*(j mod 2 =0)
Для решения приведенных ниже задач:
- В строке, содержащей арифметическое выражение проверить, правильно ли расставлены скобки;
- В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется;
- N
отрезков на координатной прямой заданы координатами своих концов. Определить количество связных областей.
необходимо воспользоваться типовыми алгоритмами:
(1) "разбор" строки на символы
(2) сортировка одномерного массива
(3) нахождение суммы элементов лдномерного массива
(4) "разбор" предложения на слова"
Предположим, что есть программа на Паскале, реализующая заполнение Арифметического квадрата порядка nxn
. Для вывода на экран "Треугольника Паскаля" в программу дописали фрагмент:
…
for i:=1 to n do
begin
for j:=1 to ? do write (a[i,j]);
writeln;
end;
…
Какое значение необходимо написать в заголовке внутреннего цикла вместо знака вопроса?
Выберите арифметические выражения, результат вычисления которых будет одинаков:
Для определения вхождения одной фигуры в другую (например, треугольника в выпуклый многоугольник) необходимо:
(1) найти вхождение каждой вершины треугольника внутрь многоугольника
(2) найти и сравнить площади треугольника и многоугольника
(3) ввести координаты вершин треугольника и многоугольника в массивы координат
и
, затем отсортировать элементы массивов и проверить - находятся ли координаты треугольника в "центре" массива
и
(4) найти и проанализировать расстояние от всех вершин треугольника до всех вершин многоугольника
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
…
for i:=1 to n do
for j:=1 to n do if i<>j then writeln (A[i], A[j]);
…
(1) размещения без повторений
(2) размещения с повторениями
(3) сочетания без повторений
(4) сочетания с повторениями
Предскажите результат выполнения программы на Паскале (фрагмент ниже):
…
a:='1234'; n:=length(a);
while (n>1) do
begin
s:=0;
for i:=1 to n do
begin
val (copy(a,i,1),x,k); s:=s+x;
end;
str(s,a); n:=length(a);
end;
writeln (s);
…
Для сортировки различных частей одномерного массива, выбранных по определенному правилу (так, чтобы "невыбранные" элементы оставались стоять на своих местах), необходимо:
(1) в качестве индексов сортируемых элементов использовать содержимое элементов дополнительного массива, в котором хранятся индексы "нужных" элементов исходного массива
(2) "разбить" элементы исходного массива, поместив "нужные" элементы исходного массива в первый дополнительный массив, "ненужные" элементы - во второй массив. Сортировать первый массив
(3) удалить из исходного массива "ненужные" элементы, затем сортировать полученный массив
(4) заменить "ненужные" элементы исходного массива нулями, заием сортировать массив
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдено:
…
d:=0;
for j:=1 to n do
begin
m[j]:=x[1,j];
for i:=1 to n do
begin
if x[i,j]<m[j] then m[j]:=x[i,j];
end;
d:=d+m[j];
end
…
(1) сумма максимальных элементов каждого стролбца квадратного массива
(2) сумма всех элементов массива
(3) сумма максимальных элементов каждой строки квадратного массива
(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) выводится фраза "неверно"
(3) программа ничего не выводит
(4) программа зациклена
Какое тело цикла по i необходимо создать (вместо вопросительных знаков), чтобы двумерный массив в результате выполнения программы (фрагмент ниже)…
…
for k:=1 to (n div 2 +1) do
???
for j:=k to n-k+1 do a[i,j]:= k;
…
был заполнен так:
(1) for i:=k to n-k+1 do
(2) for i:=1 to n-k+1 do
(3) for i:=k to n do
(4) for i:=1 to k do
Вычислите периметр треугольника, заданного координатами его вершин (1,1); (1,5); (4,5)
Признак пересечения одного выпуклого многоугольника с другим:
(1) если хотя бы одна вершина одного из многоугольников находится внутри другого многоугольника, то пересечение есть
(2) если есть хотя бы одно пересечение сторон двух многоугольников, то пересечение многоугольников есть
(3) если площадь фигуры, образованной двумя многоугольниками равна сумме площадей двух многоугольников, то пересечение многоугольников есть
(4) если введенные координаты вершин двух многоугольников в массивы координат
и
, и затем отсортированные дают определенное "положение" координат одного многоугольника (находятся в "центре" массива координат
и в "центре" массива координат
), то пересечение есть
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива, соответствующая такому основному типу комбинаторных групп:
...
k:=1;
for j:=k to m-k do
for i:=j+k to m do writeln (A[i], '-', A[j]);
…
(1) сочетания без повторений
(2) сочетания с повторениями
(3) размещения без повторений
(4) размещения с повторениями
Найдите ошибки в приведенной ниже программе на Паскале, которая выполняет перевод числа a из -ричной системы счисления (b<10) в 10-тичную:
var a: string;
b, i, st, n, s, x, k:integer;
begin
readln (a); readln(b); n:=length(a); s:=0;
for i:=1 to n do
begin
val (copy(a,i,1),x,k); s:=s+x*st; st:=st*b;
end;
writeln (s);
end.
(1) переменной st
не присвоено начальное значение, равное "1"
(2) функцией copy(a,i,1)
в цикле по i
идет "вырезка" символов не в обратном порядке. Правильно: copy(a,n-i+1,1)
(3) переменная st
не "обнулена" в начале работы программы
(4) цикл по i
должен работать до (n-1)
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив Х
вводятся N
натуральных чисел. Массив У
будет содержать:
…
j:=0; k:=0; n:=9;
for i:=1 to n do x[i]:=i;
for i:=1 to n do
if x[i] mod 2<>0 then
begin
j:=j+1; y[j]:=i;
end;
…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, буден найдено:
…
s:=0;
for i:=1 to n do
for j:=1 to n do
if (i>n-j+1) then s:=s+x[i,j];
…
(1) сумма элементов, расположенных ниже побочной диагонали квадратного массива
(2) сумма элементов, находящихся выше и на главной диагонали квадратного массива
(3) сумма элементов, находящихся в верхней правой четверти квадратного массива
(4) сумма элементов, расположенных на побочной диагонали квадратного массива
В каком направлении идет заполнение двумерного массива в 2-ом вложенном цикле по i
, в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
…
x:=1;
for k:=1 to n div 2 do
begin
for i:=k to n-k do
begin a[k,i]:=x; x:=x+1; end;
for i:=k to n-k do
begin a[i,n-k+1]:=x; x:=x+1; end;
for i:=k to n-k do
begin a[n-k+1,n-i+1]:=x; x:=x+1; end;
for i:=k to n-k do
begin a[n-i+1,k]:=x; x:=x+1; end;
end; …
(1) в столбец сверху вниз
(2) в строку слева направо
(3) в строку справа налево
(4) в столбец снизу вверх
Простое число - это…
(1) целое число, у которого ровно два делителя
(2) целое число, большее единицы и у которого нет делителей, кроме единицы и самого себя
(3) целое число, у которого нет делителей
(4) целое число, сумма делителей которого нулевая
(5) целое число, делители которого не превышают половины от этого числа
Даны координаты n точек на плоскости. За исключением одной точки все остальные образуют выпуклый многоугольник (при этом координаты точек вводятся в порядке обхода вершин многоугольника. "Лишняя" точка вводится в любом месте). Как можно определить эту "лишнюю" точку?
(1) поочередно перебрать все вершины многоугольника, заданные координатами точек, и определить - какая из них находится внутри многоугольника, образованного оставшимися вершинами
(2) "лишняя" точка будет "центральной точкой", то есть той точкой, сумма расстояний от которой до остальных будет минимальна
(3) определить площадь многоугольника, образованного данными точками, приняв за первую вершину поочередно каждую из точек. Та площадь, которая будет не равна остальным и укажет на нужную точку
(4) данных для решения задачи недостаточно
В результате выполнения какой программы на Паскале (фрагменты приведены ниже) из исходного массива
произойдет такая выборка элементов: 11 12 13 21 22 23 31 32 33
(1) …for i:=1 to n do
for j:=1 to n do writeln (A[i], A[j]);…
(2) …for i:=1 to n do
for j:=1 to n do if i<>j then writeln (A[i], A[j]);…
(3) …for i:=1 to n do
for j:=i to n do writeln (A[i], A[j]);…
(4) …for i:=1 to n-1 do
for j:=i+1 to n do writeln (A[i], A[j]);…
Найдите ошибки в приведенной ниже программе на Паскале, которая выполняет перевод числа из 10-тичной в -ричную систему счисления (b<10):
var a, b, s, x: real;
begin
readln (a); readln (b); s:=0;
while (a<>0) do
begin
x:=a mod b; s:=s+x; a:=a div b;
end;
writeln (s);
end.
(1) накапливание сумы цифр неверно:
. Правильно:
(2) неверно выбран тип данных для переменных. В программе используются целочисленные переменные
(3) условие выполнения тела цикла While
неверно. Правильно: while (a>=0) do
(4) неверен порядок следования команд в теле цикла. Правильно: a:=a div b; x:=a mod b; s:=s+x;
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной будет находиться:
…
j:=0; m:=1;
for i:=1 to n do
begin
read (x[i]);
if x[i] mod 3<>0 then
begin
j:=j+1; y[j]:=i;
end;
end;
for i:=1 to j do m:=m*x[y[i]];
…
(1) произведение элементов массива
, не кратных трем
(2) произведение элементов массива
, на которые указывают элементы массива
(3) произведение каждого третьего элемента массива
(4) произведение элементов массива
, на которые указывает каждый третий элемент массива
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, квадратный массив будет заполнен таким образом:
…
for i:=1 to n do
for j:=i to n do x[i,j]:=1;
…
(1)
(2)
(3)
(4)
Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется":
…
//заполнение массива 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 раз
Какая команда должна стоять вместо вопросительных знаков в ветвлении, чтобы двумерный массив в результате выполнения программы на Паскале (фрагмент ниже)…
…
x:=1;
for i:=1 to n do
for j:=1 to n do
begin
if i mod 2=o then a[i,j]:=x
else ???
x:=x+1;
end;
…
был заполнен так:
(1) a[i,n-j+1]:=x;
(2) a[n-i+1,n-j+1]:=x;
(3) a[n-i+1,j]:=x;
(4) a[j,i]:=x;
Фрагмент программы на Паскале проверяет - простое ли число n
, введенное с клавиатуры, он не правильный. Укажите возможные правильные варианты.
…
...
k:=0;
for i:=1 to n-1 do
if n mod i=0 then k:=k+1;
if k=2 then writeln ('число простое')
else writeln ('число составное');
…
(1) неверно конечное значение заголовка цикла. Правильно: for i:=1 to n do
(2) неверна проверка количества числа делителей. Правильно: if k=1 then writeln ('число простое')
(3) неверно находится число делителей. Правильно: k:=k+i
(4) неверно записана команда ветвления. Правильно - в одну строку
В результате выполнения какой программы на Паскале (фрагменты приведены ниже) из исходного массива
произойдет такая выборка элементов: 11 12 13 22 23 33
(1)
…for i:=1 to n do
for j:=1 to n do writeln (A[i], A[j]);…
(2)
…for i:=1 to n do
for j:=1 to n do if i<>j then writeln (A[i], A[j]);…
(3)
…for i:=1 to n do
for j:=i to n do writeln (A[i], A[j]);…
(4)
…for i:=1 to n-1 do
for j:=i+1 to n do writeln (A[i], A[j]);…
При совершении арифметических операций с "цифрами", хранящимися в строковых переменных используют процедуру (функцию) преобразования данных:
(1) Val (у, х, p)
(2) Str (х, у)
(3) Round (х)
(4) Trunc (х)
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная S
будет содержать:
…
n:=8; k:=n div 2; s:=1;
for i:=1 to n do
begin
x[i]:=i; j:=i div 2 + 1; y[j]:=j*2;
end;
for i:=1 to k do s:=s*x[y[i]];
…
(1) произведение четных элементов массива х
(2) произведение элементов массива х
, стоящих на четных местах
(3) сумму элементов массива у
(4) сумму элементов массива х
, на которые указывают элементы массива у
(5) произведение первых k
элементов массива х
В результате выполнения программы на Паскале, фрагмент которой приведен ниже заполняется квадратный массив:
…
for i:=1 to (?) do
for j:=1 to i do x[i,j]:=1;
…
Укажите выражение, которое должно стоять вместо вопросительного знака в заголовке цикла, чтобы квадратный массив заполнится таким образом:
Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "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);
…
Сколько связных областей дадут два отрезка, имеющие одну общую координату (начало одного совпадает с концом другого)?
Для заполнения Магического квадрата размерностью
методом "Террас" необходимо заполнять двумерный массив размерностью
:
(1) в направлении, параллельном побочной диагонали массива
(2) числами натурального ряда
(3) рядом целых последовательных чисел от нуля
(4) в направлении, параллельном главной диагонали массива
Фрагмент программы на Паскале проверяет - совершенное ли число n
, введенное с клавиатуры. Выберите все варианты, которые помогут исправить в нем ошибку:
…
for i:=1 to n do
if n mod i=0 then k:=k+i;
if k=n then writeln ('число совершенное')
else writeln ('число несовершенное');
…
(1) неверно конечное значение заголовка цикла. Правильно: for i:=1 to n-1 do
(2) неверно конечное значение заголовка цикла. Правильно: for i:=1 to n div 2 do
(3) неверна проверка на равенство числа сумме делителей. Правильно: if k=n-1 then writeln ('число совершенное')
(4) неверно находится сумма делителей. Правильно: k:=k+1
Для выбора элементов из исходного множества двоичным перебором необходимо получать последовательные двоичные коды. Способ получения нового двоичного кода (на единицу больше предыдущего):
(1) перевод счетчика цикла
из десятичной системы счисления в двоичную
(2) поиск в массиве двоичных кодов последнего нулевого элемента, замена его на единицу и обнуление всех следующих за ним элементов
(3) сдвиг влево всех единиц двоичного кода, замена последнего нулевого элемента на единицу
(4) циклический сдвиг элементов массива двоичных кодов
Приведенная программа на Паскале реализует алгоритм поразрядного умножения числа на число от 0 до 9, вводимых с клавиатуры приведена с ошибкой. Найдите ее.
const m=…;
var a, rez: array [1..m] of byte;
i, n, x, k: integer;
stroka: string;
begin
readln (stroka); readln (x); n:= length (stroka);
for i:=1 to n do val (copy(stroka, i, 1), a[i], k);
for i:=1 to n do rez[i]:= a[i] * x;
for i:=n downto 2 do
begin
rez[i-1]:= rez[i-1]+rez[i] mod 10;
rez[i]:= rez[i] div 10;
end
for i:=1 to n do write (rez[i]);
end.
(1) неверно:rez[i-1]:= rez[i-1]+rez[i] mod 10
. Правильно:rez[i-1]:= rez[i-1]+rez[i] div 10
(2) неверно: rez[i]:= rez[i] div 10
. Правильно:rez[i]:= rez[i] mod 10
(3) неверно:for i:=n downto 2 do
. Правильно:for i:=2 to n do
(4) неверно:val(copy(stroka, i, 1), a[i], k)
. Правильно:str(copy(stroka, i, 1), a[i], k)
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет следующее:
…
j:=1; k:=0;
for i:=1 to n do
if x[i] >0 then
begin
y[j]:=i; j:=j+1; k:=k+1;
end;
for j:=k downto 2 do
for i:=1 to j-1 do
if x[y[i]]<x[y[i+1]] then
begin
z:=x[y[i]]; x[y[i]]:=x[y[i+1]]; x[y[i+1]]:=z;
end;
…
(1) положительные элементы массива
отсортируются в порядке убывания (в позициях, занимаемых положительными элементами), остальные элементы останутся на своих местах
(2) упорядочиваются по убыванию элементы массива
, на которые указывает содержимое элементов массива
, отрицательные элементы останутся на своих местах
(3) положительные элементы массива
отсортируются в порядке убывания и будут располагаться подряд, начиная с первого элемента массива
, за ними будут следовать остальные элементы массива
(4) положительные элементы массива
отсортируются в порядке убывания (в позициях, занимаемых положительными элементами), остальные элементы отсортируются по возрастанию (в пределах занимаемых позиций)
Укажите фрагмент программы, выполнение которой приведет к такому заполнению квадратного массива:
(1) …
for i:=(n div 2 + 1) to n do
for j:= (n-i+1) to i do x[i,j]:=1;
…
(2) …
for i:=1 to (n div 2 + 1) do
for j:=1 to i do x[i,j]:=1;
…
(3) …
for i:= (n div 2 + 1) to n do
for j:=i to n do x[i,j]:=1;
…
(4) …
for i:=1 to (n div 2 + 1) do
for j:=i to (n-i+1) do x[i,j]:=1;
…
Какое тело цикла необходимо создать, чтобы двумерный массив в результате выполнения программы на Паскале (фрагмент ниже)…
…
x:=1;
for j:=1 to n do
for i:=1 to j do
begin
???
end;…
… заполнялся так:
(1) a [i, j-i+1]:=x; x:=x+1;
(2) x:=x+1; a [i, j-i+1]:=x;
(3) a [i, n-i+1]:=x; x:=x+1;
(4) a [n-i+1,i]:=x; x:=x+1;
Количество комбинаторных групп, сформированных троичным перебором будет равно:
Решение задачи: "В игре имеется набор фишек, достоинством
. Требуется в конце игры представить количество набранных очков набором фишек" возможно методом:
(1) двоичного перебора
(2) троичного перебора
(3)
-ричного перебора
(4) ни один из предложенных методов не подходит
Для организации перевода числа а из десятичной в -ричную систему счисления, программа на Паскале (начальный фрагмент которой приведен ниже)
…
readln (a, n);
i:=0;
while (a<>0) do
begin
i:=i+1;
x[i]:=a mod n;
a:=a div n;
end;
…
должна быть продолжена так:
(1) массив
размерностью
, хранящий цифры n-ричного числа в обратном порядке, нужно инвертировать
(2) нужно сложить содержимое элементов массива
размерностью
, содержащего цифры
-ричного числа
(3) нужно сложить произведения элементов массива
размерностью
(содержащего цифры
-ричного числа) на 10 в степенях
.
(4) из массива
необходимо удалить "неиспользованные" элементы
В результате выполнения программы, фрагмент которой приведен ниже
…
n=5;
for i:=0 to n-1 do write (n-i+1);
…
выводится ряд чисел:
(1) 6 5 4 3 2
(2) 2 3 4 5 6
(3) 1 2 3 4 5
(4) 4 3 2 1 0
(5) 5 4 3 2 1
Треугольник на плоскости задан координатами своих вершин. Каким образом можно определить, прямоугольный ли это треугольник?
(1) если: длины сторон треугольника являются пифагоровыми тройками (сумма квадратов двух сторон равна квадрату третьей стороны)
(2) если: площади треугольника, найденные, как половина произведения двух меньших сторон (1) и по формуле Герона (2), равны
(3) если: произведение двух случайно выбранных сторон равно произведению двух других, случайно выбранных сторон
(4) данных для решения задачи недостаточно
Фрагменты программ на Паскале реализуют алгоритмы формирования таких комбинаторных групп, как:
...
for i:=1 to n-1 do
for j:=i+1 to n do writeln (A[i], A[j]);
...
for i:=1 to n do
for j:=i to n do writeln (A[i], A[j]);
…
for i:=1 to n do
for j:=1 to n do if i<>j then writeln (A[i], A[j]);
…
for i:=1 to n do
for j:=1 to n do writeln (A[i], A[j]);
(1) 1. сочетания без повторений, 2. сочетания с повторениями, 3. размещения без повторений, 4. размещения с повторениями
(2) 1. сочетания с повторениями, 2. сочетания без повторений, 3. размещения с повторениями, 4. размещения без повторений
(3) 1. размещения с повторениями, 2. размещения без повторений, 3. сочетания с повторениями, 4. сочетания без повторений
(4) 1. размещения без повторений, 2. размещения с повторениями, 3. сочетания без повторений, 4. сочетания с повторениями
Предскажите, какие значения будет содержать массив х, в результате выполнения программы на Паскале, фрагмент которой приведен ниже, если первоначально в массиве соделжались значения . Ответ дайте в поле ввода без пробелов:
. . .
for i:=1 to 5 do readln (x[i]);
for j:=5 downto 2 do
for i:=1 to j-1 do
if x[i]>x[i+1] then
begin
y:=x[i]; x[i]:= x[i+1]; x[i+1]:=y;
end;
…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, двумерный массив будет заполнен так:
…
for i:=1 to 4 do
for j:=1 to 5 do x[i,j]:=j;
…
(1)
(2)
(3)
(4)
Можно ли "отмечать" начало и конец какого-либо события (пример задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется") не флажками "1" и "-1", а любыми символами (например, "*" и "/")?
(1) нет, так как решение задачи основывается на выполнении арифметических операций с флажками, равными по значению, противоположными по знаку
(2) нет, флажки должны быть переменными целого типа
(3) да, так как главное - отметить разными символами наступление и окончание события
(4) не важно, как отмечать
Сколько путей ведет из клетки (1, 1)
в клетку (n, 1)
двумерного массива, если двигаться можно только вниз и вправо?
В результате выполнения программы, фрагмент которой приведен ниже
…
n=5;
for i:=n-1 downto 0 do write (n-i+1);
…
выводится ряд чисел:
(1) 2 3 4 5 6
(2) 0 1 2 3 4
(3) 1 2 3 4 5
(4) 4 3 2 1 0
(5) 5 4 3 2 1
Назначение программы на Паскале, фрагмент которой приведен ниже:
…
readln (x1, y1); readln (x2, y2); readln (x3, y3);
a:= sqrt (sqr(x1-x2)+sqr(y1-y2));
b:= sqrt (sqr(x2-x3)+sqr(y2-y3));
c:= sqrt (sqr(x3-x1)+sqr(y3-y1));
p:=(a+b+c) / 2;
writeln (sqrt (p*(p-a)*(p-b)*(p-c)));
…
(1) вычисление площади треугольника, заданного координатами своих концов
(2) нахождение результата вычисления по формуле Герона
(3) вычисление произведения медиан треугольника
(4) вычисление произведения биссектрис треугольника
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива . На печать выйдет:
…
for i:=1 to n do
for j:=1 to n do if i<>j then write (A[i], A[j]);
…
Определите содержимое переменной в результате работы программы на Паскале, фрагмент которой приведен ниже:
…
for i:=1 to 5 do a[i]:=i;
m:=0;
for i:=1 to 5 do
if a[i]<m then m:=a[i];
…
(1) 0
(2) -1
(3) -5
(4) 1
(5) 5
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная К будет содержать значение…
. . .
n:=5; k:=0;
for i:=1 to n do a[i]:=n-i+1;
for j:=n downto 2 do
for i:=1 to j-1 do
if a[i]>a[i+1] then
begin
x:=a[i]; a[i]:= a[i+1]; a[i+1]:=x; k:=k+1;
end;
…
Типовой алгоритм поиска максимального и минимльного элемента двумерного массива на Паскале, фрагмент которого приведен ниже, содержит ошибку. Найдите ее:
…
m1:=x[1,1]; m2:=x[1,1];
for i:=1 to n do
for j:=1 to m do
if x[i,j]<m1 then m1:=x[i,j]
else m2:=x[i,j];
…
(1) неверно: ...else m2:=x[i,j]. Верно: if x[i,j]>m1 then m1:=x[i,j]; if x[i,j]<m2 then m2:=x[i,j];
(2) неверно: …m1:=x[i,j]… …m2:=x[i,j]. Верно: …x[i,j]:=m1… …x[i,j]:=m2.
(3) неверно: m1:=x[1,1]; m2:=x[1,1]; Верно: m1:=0; m2:=1000;
(4) во фрагменте программы нет ошибок
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, на экран выведутся:
…
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) натуральный ряд чисел
Приведенный ниже фрагмент программы на Паскале реализует алгоритм заполнения Арифметического квадрата.
…
for i:=1 to n do
for j:=1 to n do
begin a[i,j]:=1; a[i,j]:=1; end;
for i:=2 to n do
for j:=2 to n do a[i,j]:=a[i-1,j]+a[i,j-1];
…
Что в нем стоит изменить?
(1) программа работает неэффективно, так как происходит заполнение не только первой строки и первого столбца единицами, но и всего массива(
(2) первая строка и первый столбец должны быть заполнены числами натурального ряда, а не единицами
(3) в одном теле цикла нельзя обращаться к элементам первой строки и первого столбца одновременно
(4) программа полностью соответствует типовому алгоритму заполнения арифметического квадрата
Каков будет результат выполнения программы, если с клавиатуры вводится слово "Ротор":
var a:string;
k,n,i: integer;
begin
readln (a);
k:=0;
n:=length(a);
for i:=1 to n do
if copy(a,i,1) <> copy(a,n-i+1,1) then k:=1;
writeln (k);
end.
(1) 0
(2) 1
(3) 2
(4) 5
(5) 10
Способы вычисления площади выпуклой фигуры:
(1) через сумму площадей треугольников, составляющих выпуклую фигуру
(2) через разность площадей трапеций (трапеции находятся между вершинами многоугольника, имеющими минимальную и максимальную координату по оси Х)
(3) через вычисление длин сторон многоугольника с последующим использованием формулы
,
- полупериметр,
- длины сторон многоугольника
(4) через суммирование разностей координат по оси
(значение координаты
перебирается в цикле с очень маленьким шагом)
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива . На печать выйдет:
…
for i:=1 to n-1 do
for j:=i+1 to n do writeln (A[i], A[j]);
…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет вывод ряда чисел. Укажите этот ряд чисел (через пробел):
. . .
n:=5;
for i:=1 to n do
begin
x[i]:=n-i+1; y[i]:=i;
end;
for j:=n downto 2 do
for i:=1 to j-1 do
if x[i]>x[i+1] then
begin
g:=x[i]; x[i]:= x[i+1]; x[i+1]:=g;
g:=y[i]; y[i]:= y[i+1]; y[i+1]:=g;
end;
for i:=1 to n do write (x[i]+y[i]);
. . .
(1) 6 6 6 6 6
(2) 2 3 4 5 6
(3) 2 6 2 6 2
(4) 5 5 5 5 5
Программа на Паскале, фрагмент которой приведен ниже, выводит…
…
n:=3; y:=-1;
for i:=1 to n do
for j:=1 to n do x[i,j]:=y*(-2); y:=x[i,j];
for i:=1 to n do
for j:=1 to n do
if (x[i,j]>0) and (i*j mod 2 =0) then writeln (i+j);
…
Что выведется на экран в результате работы программы, фрагмент которой приведен ниже:
…
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 ('неверно');
…
Предположим, что есть программа на Паскале, реализующая заполнение Арифметического квадрата порядка nxn
. В какой части этого массива находится "Треугольник Паскаля"?
(1) выше и на побочной диагонали
(2) выше и на главной диагонали
(3) ниже и на побочной диагонали
(4) ниже и на главной диагонали
Вычислите длину отрезка, заданного координатами концов (12,13); (6,21):
Как определить, находится точка на отрезке, заданном координатами своих концов?
(1) найти сумму расстояний от точки до концов отрезка и сравнить ее с длиной отрезка (при равенстве - точка на отрезке, иначе - вне)
(2) найти площадь треугольника, образованного отрезком и точкой в качестве третьей вершины. Если площадь равна длине отрезка, то точка на отрезке, иначе - вне
(3) найти линейную функцию для отрезка, сравнить - подходят ли координаты точки под эту функцию
(4) сравнить координаты по оси
и
точки с координатами концов отрезка - при "вхождении" координат точки в диапазон координат, заданных координатами концов отрезка, то точка входит, иначе - нет
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов (пазмещения без повторений) из исходного массива . Какой логический знак должен стоять вместо знака вопроса в логическом выражении:
…
for i:=1 to n do
for j:=1 to n do
if i ? j then write (A[i], A[j],',');
…
(1) >>
(2) <>
(3) !=
(4) +
В приведенной ниже программе организован ввод предложения и вывод…
var a: array [1..20] of string;
s: string;
i, n, j,k:integer;
begin
readln (s);
n:=length(s); j:=1;
for i:=1 to n do
if copy(s,i,1)=' ' then j:=j+1
else a[j]:=a[j]+copy(s,i,1);
for i:=1 to j do write (a[i]);
end.
(1) этого же предложения без пробелов между словами
(2) содержимого массива а, содержащего слова введенного предложения
(3) количества букв в каждом слове предожения
(4) строку, состоящую из первых букв каждого слова, входящего в предложение
Результат работы программы, фрагмент которой ниже, содержимое массива А станет (введите в поле ввода в строку без пробелов):
…
n:=9;
for i:= 1 to n do a[i]:=i;
j:=1; k:=0;
for i:=1 to n do
if a[i] mod 3=0 then
begin
b[j]:=i; j:=j+1; k:=k+1;
end;
for j:=k downto 2 do
for i:=1 to j-1 do
if a[b[i]]<a[b[i+1]] then
begin
x:=a[b[i]]; a[b[i]]:=a[b[i+1]]; a[b[i+1]]:=x;
end;
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной будет:
…
d:=0; n:=3;
for j:=1 to n do
for i:=1 to n do x[i,j]:=i+j;
for j:=1 to n do
begin
m[j]:=x[1,j];
for i:=1 to n do
begin
if x[i,j]>m[j] then m[j]:=x[i,j];
end;
d:=d+m[j];
end
…
В результате работы программы, фрагмент которой приведен ниже, идет проверка правильности расстановок скобок в арифметическом выражении. Что будет результатом работы программы, если в данном выражении (например: ) избыточное количество скобок:
…
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 ('неверно');
…
Какие значения примут элементы первой строки двумерного массива, размерностью 5x5, в результате выполнения программы на Паскале, фрагмент которй приведен ниже (введите числа через пробел)
…
for k:=1 to (n div 2 +1) do
for i:=k to n-k+1 do
for j:=k to n-k+1 do a[i,j]:= k;
…
Вычислите площадь треугольника, если координаты его вершин (1,1); (5,5); (1,5)
Метод определения пересечения двух отрезков
и
: "Если сумма площадей треугольников
и
равна сумме площадей треугольников
и
, то отрезки пересекаются (иначе - нет)" имеет исключение:
(1) если отрезки равной длины и параллельны
(2) если отрезки находятся на одной прямой, но не имеют общих точек
(3) если отрезки перпендикулярны
(4) если отрезки совпадают
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива . Что напечатается на экране монитора (введите строку без пробелов)
...
for i:=1 to n-1 do
for j:=i+1 to n do writeln (A[j], A[i]);
…
Предскажите, какое содержимое будет находится в переменной s
в результате работы программы на Паскале:
var a, b, s, x: integer;
begin
a:=25; b:=5; s:=0;
while a<>0 do
begin
x:=a mod b; s:=s*10 +x; a:=a div b;
writeln (s);
end;
end.
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в массив Х
вводятся числа: 1, 8, 12, 3, 5, 4. Сумма элементов массива У будет равна:
…
j:=1; k:=0; n:=6;
for i:=1 to n do
if x[i] mod 2=0 then
begin
y[j]:=i; j:=j+1;
end;
…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, значение переменной будет равно:
…
n:=3; s:=0; k:=1;
for i:=1 to n do
for j:=1 to n do
begin
x[i,j]:=k; k:=k+1;
end
for i:=1 to n do
for j:=1 to n do
if (i<=n-j+1) then s:=s+x[i,j];
…
В каком направлении идет заполнение двумерного массива в 3-ем вложенном цикле по i
, в результате выполнения программы на Паскале, фрагмент которой приведен ниже:
…
x:=1;
for k:=1 to n div 2 do
begin
for i:=k to n-k do
begin a[k,i]:=x; x:=x+1; end;
for i:=k to n-k do
begin a[i,n-k+1]:=x; x:=x+1; end;
for i:=k to n-k do
begin a[n-k+1,n-i+1]:=x; x:=x+1; end;
for i:=k to n-k do
begin a[n-i+1,k]:=x; x:=x+1; end;
end; …
(1) в строку справа налево
(2) в строку слева направо
(3) в столбец сверху вниз
(4) в столбец снизу вверх
Совершенное число - это…
(1) число, сумма делителей которого равна этому числу (само число в сумму делителей не входит)
(2) число, у которого два делителя
(3) число, у которого нет делителей
(4) число, сумма делителей которого отлична от нуля
Многоугольник задан координатами своих последовательных вершин. Внутренний угол одной из вершин (назовем ее
) многоугольника - тупой (вершина, у которой образуется тупой угол известна). Каким образом можно найти площадь многоугольника?
(1) найти площадь выпуклого многоугольника, образованного всеми вершинами, кроме вершины
, из нее вычесть площадь треугольника, образованного вершиной
и соседними с ней вершинами
(2) найти сумму площадей всех треугольников с вершиной
, кроме треугольника, образованного вершиной А и соседними с ней вершинами
(3) найти сумму площадей всех треугольников с вершиной не в
(4) данных для решения задачи недостаточно
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива . На печать выйдет:
…
for i:=1 to n do
for j:=1 to n do writeln (A[i], A[j]);
…
Предскажите результат выполнения программы на Паскале:
var a: string;
b, i, st, n, s, x, k:integer;
begin
a:='25'; b:=5; s:=0; st:=1;
n:=length(a);
for i:=1 to n do
begin
val (copy(a,n-i+1,1),x,k); s:=s+x*st; st:=st*b;
end;
writeln (s);
end.
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, в переменной M
будет находиться:
…
j:=0; m:=1; n:=10;
for i:=1 to n do x[i]:=i;
for i:=1 to n do
begin
if x[i] mod 3=0 then
begin
j:=j+1; y[j]:=i;
end;
end;
for i:=1 to j do m:=m*x[y[i]];
…
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, квадратный массив будет заполнен таким образом:
…
for i:=1 to n do
for j:=1 to (n-i+1) do x[i,j]:=1;
…
(1)
(2)
(3)
(4)
Ниже приведен фрагмент программы, реализующий алгоритм решения задачи: "В картинной галерее работают сторожа. Для каждого сторожа известно время прихода на работу и время ухода. Определить, всегда ли галерея охраняется":
…
//заполнение массива 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);
…
Какое количество случаев неохраняемости галереи выдаст программа, если время ухода одного из сторожей совпадает с временем прихода его сменщика?
Какие значения примут элементы последней строки двумерного массива, размерностью 4x4, в результате выполнения программы на Паскале, фрагмент которй приведен ниже (введите числа через пробел)
…
x:=1;
for i:=1 to n do
for j:=1 to n do
begin
if i mod 2=o then a[i,j]:=x
else a[i,n-j+1]:=x;
x:=x+1;
end;
…
В переменную n
с клавиатуры вводится значение n=137
. Предскажите результат работы программы (что выведется на экран):
…
k:=0;
for i:=2 to n-1 do
if n mod i=0 then k:=k+1;
if k=2 then writeln ('простое')
else writeln ('составное');
…
(1) простое
(2) составное
(3) ничего
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, произойдет выборка элементов из исходного массива А={1, 2, 3}
.
…
for i:=1 to n do
for j:=i to n do writeln (A[i], A[j]);
…
Введите результат вывода программы без пробелов:
Для получения переноса в соседний разряд в результате арифметических операций с "цифрами", хранящимися в элементах массива (при работе со "сверхбольшими" числами) используют арифметическую операцию:
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, переменная будет содержать:
…
n:=10; k:=n div 2;
for i:=1 to n do
begin
x[i]:=i; j:=i div 2 + 1; y[j]:=j*2;
end;
for i:=1 to k do s:=s+x[y[i]];
…
Укажите фрагмент программы, выполнение которой приведет к такому заполнению квадратного массива:
(1) …
for i:= (n div 2 + 1) to n do
for j:=i to n do x[i,j]:=1;
…
(2) …
for i:=1 to (n div 2 + 1) do
for j:=1 to i do x[i,j]:=1;
…
(3) …
for i:=1 to (n div 2 + 1) do
for j:=i to (n-i+1) do x[i,j]:=1;
…
(4) …
for i:=(n div 2 + 1) to n do
for j:= (n-i+1) to i do x[i,j]:=1;
…
Укажите количество связных областей для n
(n
вводится с клавиатуры) отрезков, пары координат которых также вводятся с клавиатуры. Входные данные:
Для реализации алгоритма заполнения Магического квадрата размерностью
методом "Террас" необходимо заполнить двумерный массив размерностью
, где
равно:
В переменную n
с клавиатуры вводится значение (n=6
). Предскажите результат работы программы (что выведется на экран):
…
k:=0;
for i:=1 to n-1 do
if n mod i=0 then k:=k+i;
if k=n then writeln ('совершенное')
else writeln ('несовершенное');
…
(1) несовершенное
(2) совершенное
(3) ничего
Ниже приведен фрагмент программы, реализующий алгоритм формирования комбинаторных групп двоичным перебором ( - количество элементов в исходном множестве):
…
st:=1;
for i:=1 to n do st:=st*2;
for i:= 1 to (st-1) do
begin
for j:= 1 to n do
if y[j]= 0 then x:= j;
for z:= x to n do y[z]:=0;
y[x]:=1;
…
Назначение данного фрагмента:
(1) получение нового двоичного кода путем лексикографического порядка
(2) получение нового двоичного кода путем перевода номера шага из десятичной системы счисления в двоичную
(3) формирование новой комбинаторной группы из числа элементов исходного множества, на которые указывают соответствующие элементы массива двоичных кодов
(4) выборка из сформированных комбинаторных групп (из числа элементов исходного множества, на которые указывают соответствующие элементы массива двоичных кодов) тех комбинаций элементов, которые отвечают условиям задачи
В результате приведенной программы на Паскале на экран выводится:
const m=…;
var a, rez: array [1..m] of byte;
i, n, x, k: integer;
stroke: string;
begin
stroke:='1234'; x:=5; n:= length (stroka);
for i:=1 to n do val (copy(stroka, i, 1), a[i], k);
for i:=1 to n do rez[i]:= a[i] * x;
for i:=n downto 2 do
begin
rez[i-1]:= rez[i-1]+rez[i] div 10;
rez[i]:= rez[i] mod 10;
end
for i:=1 to n do write (rez[i]);
end.
В результате выполнения программы на Паскале, фрагмент которой приведен ниже, массив будет содержать такие значения:
…
n:=5; j:=1; k:=0;
for i:=1 to n do x[i]:=i;
for i:=1 to n do
if x[i] mod 2=0 then
begin
y[j]:=i; j:=j+1; k:=k+1;
end;
for j:=k downto 2 do
for i:=1 to j-1 do
if x[y[i]]>x[y[i+1]] then
begin
z:=x[y[i]]; x[y[i]]:=x[y[i+1]]; x[y[i+1]]:=z;
end;
…
Ниже приведен фрагмент программы
…
for i:=(n div 2 + 1) to n do
for j:=???
x[i,j]:=1;
…
выполнение которой приведет к такому заполнению квадратного массива:
Укажите, что должно стоять вместо вопросительных знаков в заголовке внутреннего цикла:
(1) for j:= (n-i+1) to i do
(2) for j:=1 to n do
(3) for j:= (n-i+1) downto 1 do
(4) for j:=i to (n-i+1) do
Какие значения примут элементы первой строки двумерного массива, размерностью 4x4, в результате выполнения программы на Паскале, фрагмент которй приведен ниже (введите числа через пробел)
…
x:=1;
for j:=1 to n do
for i:=1 to j do
begin
a [i, j-i+1]:=x; x:=x+1;
end;…
В результате выполнения программы, фрагмент которой приведен ниже:
…
st:=1;
for i:=1 to 5 do
st:=st*2;
st:=st-1;
…
в переменной будет находиться:
Решение задачи: "Необходимо представить число 40 в виде суммы неповторяющихся слагаемых (одинаковые по значению, противоположные по знаку слагаемые считаются разными" возможно методом:
(1) троичного перебора
(2)
-ричного перебора
(3) двоичного перебора
(4) ни один из предложенных методов не подходит
Результат работы программы на Паскале, фрагмент которой приведен ниже:
…
a:=100; n:=5; i:=0;
while (a<>0) do
begin
i:=i+1;
write (a mod n);
a:=a div n;
end;
…