вторник, 15 апреля 2014 г.

Урок 24. Работа с матрицей

Развитие программы "Игра в крестики-нолики"

На предыдущем уроке получилась программа заполнения и вывода на кран пустого игрового  поля  family_game1.pas. Игровое поле выглядит примерно так:
 -1 -1 -1
 -1 -1 -1
 -1 -1 -1

В эту программу надо добавить фрагмент, благодаря которому программа будет предлагать поочередно каждому игроку сделать свой ход. Программа будет вводить данные игрока в такой формате:
  1. номер строки
  2. номер столбца
  3. 0 или 1 ( в зависимости от номера игрока)
Программа изменяет значение указанной ячейки поля и выводит новое сосотояние поля после каждого хода. После ходов игроков поле будет выглядеть примерно так:
 1 -1  0
-1 -1 -1
-1 -1 -1

Разделение окон ввода и вывода

В среде Pascal можно подключить библиотеку (модуль) подпрограмм для работы с текстом - CRT. Для этого в начале программ добавляется раздел описания модулей:
uses CRT
Тогда при выполнении создается окно вывода отдельно от окна ввода. Процедура   writeln выводит текст в это окно. С помощью подпрограмм модуля CRT можно форматировать выводимый текст.

Процедура вывода игрового поля

В нашей игре придется много раз выводить на экран игровое поле. Имеет смысл оформить операторы вывода поля на экран в виде процедуры  PrintPole.
Процедура описывается в начале программы следующим образом:
procedure PrintPole (x,y:integer);  {х - количество строк, у - количество столбцов }
begin
тело процедуры;
end;
Для вызова процедуры в нужных местах программы используется оператор
PrintPole (t,s); где t - количество строк, s - количество столбцов

Практическая работа

среда, 2 апреля 2014 г.

Урок 23. Тип данных - матрица

Материал к уроку - Презентация К.Ю.Полякова (слайды 102-111) скачать и сохранить в своей папке на локальном компьютере
Многие алгоритмы обрабатывают данные, организованные в виде таблицы.
Например, при составлении программы для игры "Крестики-нолики" нужно запоминать состояние каждой клетки квадратной доски.
Смотрите презентацию, указанную в начале данного сообщения.
Слайд 102. Можно поступить так: пустым клеткам присвоить значение -1, клетке, где стоит нолик - значение 0, клетке с крестиком - значение 1. Тогда получится таблица. Закрашенная клетка имеет координаты: строка 2, столбец 3
Такие таблицы называют матрицами или двумерными массивами
Запишите в тетрадь определение матрицы.
Слайд 103. Матрица на языке программирования  является структурной переменной (как массивы и строка). При объявлении матрицы (в разделе Var) указывают два диапазона индексов - для строк и столбцов.
В программе для игры  "Крестики-нолики" игровое поле (3 yна 4) будет описано так:
Запишите в тетрадь объявление матрицы
Const m=3: n=4; {чего больше - строк или столбцов?}
Var
Game: array [1..n, 1..m] of integer;
Слайд 104. Для  обращения  к одному элементу матрицы (в разделе операторов) нужно указать имя матрицы и два индекса - сначала номер строки, потом - номер столбца. 
begin
…..
Game [1,2]:= -1;
…..
end.
Алгоритм заполнения матрицы начальными значениями  реализуется в виде двойного цикла for - внешний цикл - перебор всех строк, во вложенном цикле - заполнение полей текущей строки. Для нашей игры для заполнения поля 3 на 4 алгоритм такой:
for i:=1 to n do 
begin
for j := 1 to
begin 
Game[i,j] := -1;write (Game [i,j]:3);end;
writeln; 
end;       
Запишите в тетрадь операторы начального заполнения матрицы