Главная / Алгоритмы и дискретные структуры /
Программирование и знакомство с алгоритмами / Тест 9
Программирование и знакомство с алгоритмами - тест 9
Упражнение 1:
Номер 1
Дан лабиринт, размером n*m
. Определите количество операций, необходимое для поиска выхода из лабиринта методом полного перебора
Ответ:
 (1)
n*m
 
 (2)
2*n*m
 
 
(3)
 
Номер 2
Дан лабиринт, размером 10*10. Определите количество операций, необходимое для поиска выхода из лабиринта методом полного перебора
Ответ:
 (1)
10 000 
 (2)
100 000 
 (3)
1 000 
Номер 3
Дан лабиринт, размером 100*100. Определите количество операций, необходимое для поиска выхода из лабиринта методом полного перебора
Ответ:
 (1)
100 000 000 
 (2)
100 000 
 (3)
1 000 
Упражнение 2:
Номер 1
Лабиринт представлен в виде массива M*M
. Необходимо заполнить ячейки массива цифрой 1 по периметру. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=1 to m do
for j:=1 to m do
begin
if (i=1)or(j=1)or(i=m)or(j=m) then
mas[i,j] := 1;
end;
 
 (2)
for i:=2 to m-1 do
for j:=2 to m-1 do
begin
if (i=1)or(j=1)or(i=m)or(j=m) then
mas[i,j] := 1;
end;
 
 (3)
for i:=2 to m-1 do
for j:=2 to m-1 do
begin
mas[i,j] := 1;
end;
 
Номер 2
Лабиринт представлен в виде массива M*M
. Необходимо заполнить ячейки внутри массива цифрой 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=2 to m-1 do
for j:=2 to m-1 do
begin
mas[i,j] := 1;
end;
 
 (2)
for i:=1 to m do
for j:=1 to m do
begin
if (i=1)or(j=1)or(i=m)or(j=m) then
mas[i,j] := 1;
end;
 
 (3)
for i:=1 to m+1 do
for j:=1 to m+1 do
begin
if (i=1)or(j=1)or(i=m)or(j=m) then
mas[i,j] := 1;
end;
 
Номер 3
Лабиринт представлен в виде массива M*M
. Необходимо заполнить ячейки внутри массива цифрой 0, а по периметру массива - цифрой 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=1 to m do
for j:=1 to m do
begin
if (i=1)or(j=1)or(i=m)or(j=m) then
mas[i,j] := 1
else
mas[i,j] := 0;
end;
 
 (2)
for i:=1 to m do
for j:=1 to m do
begin
if (i=1)or(j=1)or(i=m)or(j=m) then
mas[i,j] := 0
else
mas[i,j] := 1;
end;
 
 (3)
for i:=2 to m-1 do
for j:=2 to m-1 do
begin
if (i=1)or(j=1)or(i=m)or(j=m) then
mas[i,j] := 1
else
mas[i,j] := 0;
end;
 
Упражнение 3:
Номер 1
Лабиринт представлен в виде массива M*M
. Необходимо случайным образом занести в лабиринт 10 препятствий. Препятствия представить в виде цифры 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=1 to 10 do
begin
mas[random(m)+1, random(m)+1] := 1;
end;
 
 (2)
for i:=1 to m do
for j:=1 to m do
begin
mas[random(i), random(j)] := 1;
end;
 
 (3)
for i:=1 to 10 do
begin
mas[random(m)] := 1;
end;
 
Номер 2
Лабиринт представлен в виде массива N*M
. Необходимо случайным образом занести в лабиринт 10 препятствий. Препятствия представить в виде цифры 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=1 to 10 do
begin
mas[random(n)+1, random(m)+1] := 1;
end;
 
 (2)
for i:=1 to 10 do
begin
mas[random(m)+1, random(n)+1] := 1;
end;
 
 (3)
for i:=1 to 10 do
begin
mas[random(n), random(m)] := 1;
end;
 
Номер 3
Лабиринт представлен в виде массива M*N
. Необходимо случайным образом занести в лабиринт 10 препятствий. Препятствия представить в виде цифры 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=1 to 10 do
begin
mas[random(m)+1, random(n)+1] := 1;
end;
 
 (2)
for i:=1 to 10 do
begin
mas[random(n)+1, random(m)+1] := 1;
end;
 
 (3)
for i:=1 to 10 do
begin
mas[random(m), random(n)] := 1;
end;
 
Упражнение 4:
Номер 1
Лабиринт представлен в виде массива M*M
. Необходимо построить в лабиринте непроходимое препятствие по главной диагонали. Препятствия представить в виде цифры 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=1 to m do
begin
mas[i, i] := 1;
end;
 
 (2)
for i:=1 to m do
for j:=1 to m do
begin
if i <> j then mas[i, j] := 1;
end;
 
 (3)
for i:=1 to m do
begin
mas[i, m-i+1] := 1;
end;
 
Номер 2
Лабиринт представлен в виде массива M*M
. Необходимо построить в лабиринте непроходимое препятствие по побочной диагонали. Препятствия представить в виде цифры 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=1 to m do
begin
mas[i, i] := 1;
end;
 
 (2)
for i:=1 to m do
for j:=1 to m do
begin
if (i <> j) mas[i, j] := 1;
end;
 
 (3)
for i:=1 to m do
begin
mas[i, m-i+1] := 1;
end;
 
Номер 3
Лабиринт представлен в виде массива M*M
. Необходимо построить в лабиринте непроходимое препятствие по обоим диагоналям. Препятствие представить в виде цифры 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
mas[1, 1] := 1;
mas[m, m] := 1;
for i:=1 to m do
begin
mas[i, i] := 1;
end;
 
 (2)
for i:=1 to m do
for j:=1 to m do
begin
if (i <> j) mas[i, j] := 1;
end;
 
 (3)
for i:=1 to m do
begin
mas[i, i] := 1;
mas[i, m-i+1] := 1;
end;
 
Упражнение 5:
Номер 1
В лабиринте размера M*M
необходимо посчитать количество посещённых клеток, если посещённые клетки закодированы цифрой 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
res:=0;
for i:=1 to m do
for j:=1 to m do
begin
if mas[i,j] = 1 then res := res + 1
end;
 
 (2)
res:=0;
for i:=1 to m do
for j:=1 to m do
begin
if mas[i,j] = 1 then res:= res + mas[i, j] ;
end;
 
 (3)
res:=0;
for i:=1 to m do
begin
if mas[i,i] = 1 then res := res + 1
end;
 
Номер 2
В лабиринте размера M*N
необходимо посчитать количество посещённых клеток, если посещённые клетки закодированы цифрой 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
res:=0;
for i:=1 to m do
for j:=1 to n do
begin
if mas[i,j] = 1 then res := res + 1
end;
 
 (2)
res:=0;
for i:=1 to m do
for j:=1 to m do
begin
if mas[i,j] = 1 then res:= res + mas[i, j] ;
end;
 
 (3)
res:=0;
for i:=1 to n do
for j:=1 to m do
begin
if mas[i,j] = 1 then res := res + 1
end;
 
Номер 3
В лабиринте размера M*N
необходимо посчитать количество клеток-препятствий, если указано что клетки-препятствия закодированы цифрой 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
res:=0;
for i:=1 to m do
for j:=1 to n do
begin
if mas[i,j] = 1 then res := res + 1;
end;
 
 (2)
res:=0;
for i:=1 to m do
for j:=1 to m do
begin
if mas[i,j] = 1 then res:= res + mas[i, j] ;
end;
 
 (3)
res:=0;
for i:=1 to n do
for j:=1 to m do
begin
if mas[i,j] = 1 then res := res + 1;
end;
 
Упражнение 6:
Номер 1
Для лабиринта размера M*M
необходимо организовать ввод координат десяти препятствий. Координаты закодировать цифрой 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=1 to m do
for j:=1 to m do
begin
readln(x);
readln(y);
mas[x,y]:=1;
end;
 
 (2)
for i:=1 to m do
begin
readln(x);
readln(y);
mas[x,y]:=1;
end;
 
 (3)
for i:=1 to 10 do
begin
readln(x);
readln(y);
mas[x,y]:=1;
end;
 
Номер 2
Для лабиринта размера M*N
необходимо огранизовать ввод координат десяти препятствий. Координаты закодировать цифрой 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
for i:=1 to m do
for j:=1 to n do
begin
readln(x);
readln(y);
mas[x,y]:=1;
end;
 
 (2)
for i:=1 to m*n do
begin
readln(x);
readln(y);
mas[x,y]:=1;
end;
 
 (3)
for i:=1 to 10 do
begin
readln(x);
readln(y);
mas[x,y]:=1;
end;
 
Номер 3
Для лабиринта размера M*N
необходимо огранизовать ввод координат препятствий. Количество препятствий также необходимо ввести пользователю. Координаты закодировать цифрой 1. Укажите вариант кода, решающий эту задачу
Ответ:
 (1)
Readln(kol);
readln(x);
readln(y);
for i:=1 to kol do
begin
mas[x,y]:=1;
end;
 
 (2)
Readln(kol);
for i:=1 to m*n do
begin
readln(x);
readln(y);
mas[x,y]:=1;
end;
 
 (3)
Readln(kol);
for i:=1 to kol do
begin
readln(x);
readln(y);
mas[x,y]:=1;
end;