Урок игра Морской бой


Ход урока
Организационный момент (2 мин).
Отмечаются отсутствующие.
Учитель. Здравствуйте, ребята! Сегодня вы будете моряками. Вам придется сразиться в морском бою. Каждой команде дается план моря, где отмечены места расположения кораблей противников. Чем больше вы убьете кораблей противника, тем ближе будете к победе. Победа в морском бою будет зависеть от вашей сплоченности, скорости работы и, конечно же, ваших знаний языка программирования Паскаль.
Проведение игры (35 мин).
Правила игры и подготовка. Игра аналогична игре «Морской бой». Класс делится на две команды. Каждая придумывает себе название. На доску вешаются два плаката с квадратами 10 х 10. Сверху буквы, а слева цифры. От каждой команды выходит по одному представителю. Им даются карточки с заданием. Они его выполняют или сразу говорят ответ. Если выбран правильный ответ, то на плакате соответствующая клеточка закрашивается. Затем выходят другие представители от команд и т. д. Смысл игры заключается в том, чтобы правильными ответами убить все корабли противника. Выигрывает та команда, которая раньше и больше убьет кораблей. На рис. 33 представлены квадраты с обозначенными кораблями для каждой из команд.
Задания по определенной теме и расположение кораблей каждая команда выбирает сама. Задания должны быть согласованы с учителем.
Примерные задания Задания для первой команды
Что называют операторными скобками:
За) () 4в) { } 6ж) [ ] 1г) begin...end
Какая из записей заголовка программы правильная:
8а) Program задача 1 4д) Program 1
1к) Program zadacha l 6ж) Program l zadacha
Как записывается оператор ввода:
6к) WRITELN (X, Y) 26) READ (X, Y)
8в) WRITE (X; Y) 2и) READLN (X; Y)
Как записывается оператор присвоения:
2к) А := В + 5 За) А = В + 5 6к) А := В + 5 Зв) В + 5
Запись на языке Pascal выражения у=5х - 10х + 2:х будет иметь вид:
10а) у = 5*х - 10*х + 2/х 6д) у = 5х - 10х + 2/х
9и) у := 5х - 10х+2:х 36) у := 5*х - 10*х + 2/х
59
[ Cкачайте файл, чтобы посмотреть картинку ]
Какой из операторов ошибочен, если заданы описания: var i,j: integer; х,у: real:
5а) х := i*y 4е) у := i/i Зе) j := i/2 6и) j := i*i
Условный оператор записывается в виде:
1 ж) While <условие> do <оператор>
4к) If <условие> then <оператор1> else <оператор2>
86) <имя переменной>:=<выражение>
4и) If <условие> then <оператор1>; else <оператор2>
Высказыванию «Если значение переменной b больше 5, то увеличить значение b на 15, иначе значение b уменьшить на 3» соответствует оператор:
1д) if b > 5 then b := b - 3; else b:=b+15
3г) if b > 5 then b := b + 15; else b := b - 3
5в) if b > 5 then b := b + 15 else b:=b - 3
10к) if b > 5 then b := b + 15 b ~b - 3
Цикл с постусловием записывается в виде:
5г) While <условие> do <оператор>
6а) For i:=l to n do <оператор>
4и) Repeat <операторы> until <условие>
9ж) If <условие> then <оператор1> else <оператор2>
Общий вид массива имеет вид:
10а) a: array [1..10] of real 6д) array[l..n] of integer
6в) c:array[l..n] of read 4з) d array [1..10] real
После выполнения операторов присваивания: а:=3; b:= 5, с:=7; d:=a; а:= b; b:=c, c:=d, соотношение значений переменных a, b и с следующее:
За) а > b > с 5и) b > с > а 8ж) с>Ь>а 6з)Ь>а>с
Определите значение целочисленных переменных х, у и t после выполнения фрагмента программы: х := 5; у := 7; t := х; х := у mod х; у := t:
7а) х = 2, у = 5, t = 5 Зв) х = 7, у = 5, t = 5 2е) х = 2, у = 2, t = 2
7к) х = 5, у = 5, t = 5
Определите значение целочисленных переменных а и b после выполнения фрагмента программы: а := 2468; b := (a mod 1000)* 10; а := a div 1000 + b:
6и) а = 22, b = 20 7ж) а = 8246, b = 246 7з) а = 4682, Ъ = 4680 6ж) а = 470, b = 468
Значения двумерного массива задаются с помощью вложенного оператора цикла в представленном фрагменте программы:
for n :- 1 to 5 do for k := 1 to 5 do B[n,k] := n + k;
Чему будет равно значение В(2,4): 8в) 9 8д) 8 7г) 7 8г) 6
В представленном фрагменте программы значение двумерного массива задается с помощью вложенного оператора цикла и условного оператора. Чему будет равно а(3,2): for п := 1 to 5 do for k := n to 5 do if n > k then a[n, k] = n else
a[n, k] = k;
7ж) 1 8ж) 2 8з) 3 7и) 4
В результате выполнения фрагмента программы:
for i := 1 to 10 do
begin if A[i] >0 then A[i] := A[i]/3 else A[i] := 2
end
60
произойдет следующее:
9а) положительные значения элементов массива увеличатся втрое, а отрицательные заменятся на 2;
96) положительные значения элементов массива уменьшатся втрое, а отрицательные заменятся на 2;
8а) отрицательные значения элементов массива увеличатся вдвое, а положительные заменятся на 3;
10а) отрицательные значения элементов массива уменьшатся вдвое, а положительные заменятся на 3.
В результате выполнения программы
program klass; begin
writeln (45/(12 - 3)); write('классов'); end.
на экране появится запись:
8в)5 классов 10в)9 классов
9в) 5 классов; 10г) 9 классов
Фрагмент программы, в котором значения двумерного массива задаются с помощью вложенных циклов. Определите, какое значение приобретет элемент массива А[3,2]
for п:=1 То 5 do for k:=l То 5 do if nthen A[n,k] := n + k else A[n,k] := n*k;
9r) 6 9д) 12 10г) 3 10в) 9
Определите, как будут располагаться отрезки в результате выполнения программы:
xl := 10; yl := 10; х2 := 40;у2 := 40;
fori := 1 to 10 do
begin
Iine(xl,yl,x2,y2); setlinestyle(l + i, i, 2) xl := xl + 10;
end;
10д) будут параллельны
9e) будут пересекаться
10е) будут исходить из одной точки
9д) будут перпендикулярны
Что будет происходить в результате выполнения фрагмента программы
setbkcolor(6); х := 30; у := 30;
for i := 1 to 10 do begin
setcolor(7); circle(x, y, 20); se
·tfillstyle(l, i) floodfill(50, 50, 7) x := x + 40;
end;
9e) меняется цвет кругов
10г) меняется цвет экрана
9ж) меняется цвет фона и кругов
10ж) меняется цвет фона

61

Ответы. 1 1г, 2 1к, 3 26,4 2к, 5 36, 6 Зе, 7 4к, 8 5в, 9 5г, 10 6в, 11
6з, 12 7а, 13 7з, 14 8г, 15 8з, 16 96, 17 9в, 18 9г, 19 10е, 20Юж. Задания для второй команды
В каком разделе происходит описание переменных:
1д) в разделе описания констант 2а) в разделе описания типов
1 а) в разделе описания переменных 6е) в разделе описания выражений
Чем заканчивается программа:
26) READLN 6б) READLN; END le) END 16) END
Как записывается оператор вывода:
1 г) WRITELN (A, D) 2в) READLN (A, D)
1 ж) WRITE (A; D) 6к) READ (A; D)
Оператор присваивания имеет вид:
2г) <имя переменной>=<тип переменной> 4д) <имя переменной>:=<значение> 3е) <имя переменной>::=<значение> 10в) <значение>:=<имя переменной>
Выражение х = 4вс - ч + 2:(в + 3) на языке Pascal будет записано в виде:
6и) х = 4вс - ч + 2:(в + 3) 2д) х := 4*в*с - ч + 2/(в + 3)
3ж) х := 4*в*с - ч+2/(в+3) 1з) х := 4*в*с - ч +2:(в + 3)
Какой из операторов записан правильно, если заданы описания: var i,j: integer; х,у: real
4а) х := i*j 1и) у := i/x 3з) j i + 2 6г)j:=i*y
Условию «если А больше или равно С, то В равно 1» соответствует фрагмент программы:
2е) If А>С then В := 1 6з) If А>В=С then В := 1
4к) If А>=С then В = 1 1 к) If А>=С then В := 1
Цикл с параметром запишется в виде:
3к) While <условие> do <оператор>
5в) For i := 1 to n do <оператор>
8a) Repeat <операторы> until <условие>
10е) If <условие> then <оператор1> else <оператор2>
Цикл с предусловием запишется в виде:
2ж) While <условие> do <оператор>
76) For i:=l to n do <оператор>
5к) Repeat <операторы> until <условие>
8ж) If <условие> then <оператор1> else <оператор2>
Какой из массивов может иметь 10 элементов целого типа: 36) a: array [1..10] of read 6д) a: array [l..n] of real 7a) a: array [1.. 10] of integer 2з) a: array [1. .n] of integer
После выполнения операторов присваивания: а := с; b := d; а := а + b; b := а - b; а := а - Ь, переменные а и b принимают значения переменных:
9а) а = с, b = d
56) а = с, b = с
7д) а = d, b = с
3к) а = с + d, b = с - d
Определите значение целочисленных переменных а и b после выполнения фрагмента программы: а := 42; b := 14; а := a div b; b := a*b; a := b div a;
10з) a = 42, b = 14 8г)a=l,b = 42
5б) a = 0, b = 588 7з)а=14,Ь = 42
Определите значения переменных х, у и z после выполнения фрагмента программы:
х :=52; у := х mod 10; z := х div 10; х := у*Ю + z;
3и) х = 55, у = 2, z = 5 7в) х = 22, у = 2, z = 5
6к) х = 25, у = 5, z = 2 7и) х-= 25, у = 2, z = 5
Значения двумерного массива размера 7x7 задаются с помощью вложенного оператора цикла в представленном фрагменте программы:
for n := 1 to 7 do for к := 1 to 7 do B[n, к] := к - n;
Сколько элементов массива будут иметь положительные значения:
7г) 49 8г) 28 8д) 21 7е) 7
Все элементы двумерного массива А размером 10x10 элементов первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы:
for n:=l to 4 do for k:=n to 4 do begin
if n=k then a[n, k] = 1 else a[n, k] = k; end
Сколько элементов массива в результате будут равны 1 :
9е) 0 8ж) 16 7е) 12 8е) 4
В результате выполнения фрагмента программы:
for i := 1 to 10 do begin if A[i]>0 then A[i] :=A[i]/2 else A[i] := i end;
произойдет следующее:
8з) положительные значения элементов массива увеличатся вдвое, а отрицательные заменятся значениями индекса
8и) положительные значения элементов массива уменьшатся вдвое, а отрицательные заменятся значениями индекса
7к) отрицательные значения элементов массива увеличатся вдвое, а положительные заменятся значениями индекса
8к) отрицательные значения элементов массива уменьшатся вдвое, а положительные заменятся значениями индекса
В результате выполнения программы
program klass;
begin
writeln (30/(11 -5));
write(классов’);
end.
на экране появится запись: 9а)5 классов 86)6 классов
96)5 классов; 106)6 классов.
Фрагмент программы, в котором значения двумерного массива задаются с помощью вложенных циклов. Определите, какое значение приобретет элемент массива А[3,3]
for n := 1 То 5 do for k := 1 То 5 do if n>k
then A[n,k] := n + k else A[n,k] := n*k;
9в) 9 10b) 6 8в) 3 9г) 12
Определите, что будет меняться в результате выполнения программы:
xl := 10; yl := 10; х2 := 40; у2 := 40;
for i := 1 to 10 do
begin
line(xl, yl, x2, y2); setlinestyle(l+i, i, 2) xl :=xl + 10;
end


9и) цвет и тип линии 9з) цвет и толщина линии 8з) тип и толщина линии 9к) цвет, тип и толщина линии
20. Что будет происходить в результате выполнения фрагмента программы
setbkcolor(6); х := 30; у := 30; fori := 1 to 10 do begin
setcolor(7); circle(x, y, 20); setfillstyle(l, i) floodfill(30, 30, 7)
end;
10ж) меняется цвет круга 10з) меняется цвет экрана 9з) меняется цвет фона и круга 10и) меняется цвет фона
Ответы. 1 1а, 2 16, 3 1г, 4 Зе, 5 Зж, 6 Зз, 7 4к, 8 5в, 9 5к, 10 7а, 11 7д, 12 7з, 13 7и, 14 8д, 15 8е, 16 8и, 17 96, 18 9в, 19 9и, 20 Юж.
III. Итог урока (3 мин)
Выставляются оценки.











15