--PAGE_BREAK--Практическая часть
Выражение «написать программу» отражает только один из этапов создания компьютерной программы, когда разработчик программы (программист) действительно пишет команды (инструкции) на бумаге или при помощи текстового редактора.
Программирование – это процесс создания (разработки) программы, который может быть представлен последовательностью следующих шагов:
1. Спецификация (определение, формулирование требований к программе).
2. Разработка алгоритма.
3. Кодирование (запись алгоритма на языке программирования).
4. Отладка.
5. Тестирование.
6. Создание справочной системы.
7. Создание установочного диска (CD-ROM).
Спецификация
Спецификация, определение требований к программе — один из важнейших этапов, на котором подробно описывается исходная информация, формулируются требования к результату, поведение программы в особых случаях (например, при вводе неверных данных), разрабатываются диалоговые окна, обеспечивающие взаимодействие пользователя и программы.
На этом этапе я определила последовательность этапов создания программы.
1. Создание и оформление окна программы – главной формы.
2. Заполнение полей-клеток магического квадрата (предусмотреть защиту от ввода пользователем символов, кроме чисел).
3. Проверка квадратной матрицы на предмет, является ли она магическим квадратом.
4. Оформление диалогового окна «Магический квадрат», вызываемого одноименной командой главного меню.
5. Оформление диалогового окна «Правила игры», вызываемого одноименной командой главного меню.
Подобрала информацию необходимую для создания программы. Определила, как должен выглядеть результат (Рисунок 5).
Рис. 5. «МАГИЧЕСКИЙ КВАДРАТ»
Разработка алгоритма
На этапе разработки алгоритма необходимо определить последовательность действий, которые надо выполнить для получения результата. Если задача может быть решена несколькими способами и, следовательно, возможны различные варианты алгоритма решения, то программист, используя некоторый критерий, например скорость решения алгоритма, выбирает наиболее подходящее решение. Результатом этапа разработки алгоритма является подробное словесное описание алгоритма или его блок-схема.
Далее приводится словесное описание алгоритма
1. Создание и оформление окна программы – главной формы
1.1 Выбор и размещение на форме компонентов
В ObjectInspectorна вкладке Propertiesзначение свойства Positionустановить PoScreenCenter– для того, чтобы после запуска программы, форма появлялась в центре экрана. Name– Form1.
В редакторе ImageEditorсоздать IconFile, нарисовать смайлик. Сохранить в файле Icon1.ico. В ObjectInspectorна вкладке Propertiesсправа от свойства Iconщелкнуть мышью и в окне выбора файла иконы загрузить созданный файл.
Компоненты вкладки Standart:
1.1.1 TMainMenu– главное меню формы, Name– MainMenu1 (Содержит один пункт меню «Help» (Name– Help1) с двумя пунктами подменю «Магический квадрат» (Name– N1) и «Правила игры» (Name– N2)).
После установки компонента на форму создать пункт меню «Help». Для этого дважды щелкнуть на компоненте левой кнопкой мыши, в окне инспектора объектов вводим название пункта меню «Help» в строке свойства Caption, нажимаем клавишу Enter. Для создания пунктов подменю щелкнуть мышью в окне конструктора меню ниже пункта меню «Help», набрать «Магический квадрат», Enter, набрать «Правила игры», Enter. Чтобы связать с выбором пункта меню нужное действие, определяем процедуру обработки его события OnClick– вызов соответствующего диалогового окна.
1.1.2 TPanel– панель, Name– Panel1 (Для размещения кнопок). Значение свойства Alignвыбираем alBottom, чтобы панель разместить внизу формы. Свойство Captionочистить.
1.1.3 TButton– кнопка (Одна кнопка «Проверить», вторая, расположенная над ней, «Начать»). Кнопку Button1 размещаем на панели, Name– Button1. Свойство Caption– «Проверить». Кнопку Button2, Name– Button2, размещаем на кнопке Button1. Свойство Caption– «Начать».
1.1.4 TLabel– метка (Для вывода текста комментариев действий пользователя). Метку Labelразмещаем на форме. Name– Lb1. Свойство Captionочистить. Значение свойства Alignвыбираем alBottom. Свойство Color– clYellow. С помощью свойства Fontкорректируем шрифт.
Компоненты вкладки Additional:
1.1.5 TBitBtn– кнопка с изображением (Кнопка Closeдля закрытия окна); Name– BitBtn1. Кнопка Closeразмещается на панели. Свойство Kind– bkClose. Значение bkCloseопределяет типовой значок, надпись Closeна кнопке, а также типовую функцию закрытия окна, которая будет связана с этой кнопкой.
1.1.6 TMaskEdit– поле с маской ввода (9 полей с маской ввода только цифровой информации). Устанавливаем ниже перечисленные значения свойств для всех девяти полей. Name– MEd1… MEd9. Раскрываем диалоговое окно свойства EditMask. В поле InputMaskвводим следующую последовательность символов: 9999;1;. В поле CharacterforBlanksвместо умалчиваемого символа-заполнителя, которым является символ подчеркивания (_), указываем пробел и закрываем окно.
1.2 Процедура обработки события OnPaint(для того, чтобы сделать рисунок с расширением .bmpфоновым). Свойство Bitmap содержит ссылку на объект класса TBitmap. Перед загрузкой объекта Bitmap его надо создать. Метод StretchDraw() растягивает или сжимает картинку так, чтобы она заполнила всю форму.
1.3 Процедура обработки события OnCanResize (запрещающая изменение размеров формы).
1.4 Процедура обработки события OnActivate(программно задаем заголовок формы, обеспечиваем показ кнопки «Начать», скрываем кнопку «Проверить»).
2. Заполнение полей-клеток магического квадрата
2.1 Процедура обработки события OnClickкнопки Button2 («Начать»).
2.1.1 Процедура zapolnenie(x,y:integer) (По входящему параметру х заполняет клетки квадрата, по входящему параметру у одним из четырех способов очищает некоторые клетки, выводит в метке соответственную надпись, показывает кнопку «Проверить», прячет кнопку «Начать»).
2.1.2 В теле главной процедуры проверяем, была ли ситуации «Попробуй еще раз» (z=true). Если была, то вызываем процедуру zapolnenie(x,y:integer) со старыми значениями х и у; если нет (z=false), генерируем у – способ удаления клеток, х – начальное число х. Заполняем матрицу.
3. Проверка квадратной матрицы на предмет, является ли она магическим квадратом
Процедура обработки события OnClickкнопки Button1 («Проверить»). Пробуем преобразовать к числовому виду значения полей TMaskEdit. Если получилось (не осталось пустых полей), находим суммы по строкам, по столбцам, по диагоналям. Если полученные суммы равны, то выводим в метке надпись «Молодец! Все верно!», прячем кнопку «Проверить», показываем кнопку «Начать», z:=false(следующее заполнение будет сгенерировано). Если полученные суммы не равны, то выводим в метке надпись «Попробуй еще раз», прячем кнопку «Проверить», показываем кнопку «Начать», z:=true(следующее заполнение будет тем же, х и у не изменятся). Если не получилось преобразовать к числовому виду значения полей TMaskEdit, подаем звуковой сигнал, выводим сообщение «Не все клетки заполнены», выходим из процедуры.
4. Оформление диалогового окна «Магический квадрат», вызываемого одноименной командой главного меню
Caption– Магический квадрат, Name– OKBottomDlg. Размещаем компонент TMemo– многострочное редактируемое текстовое поле, вкладки Standart. Щелкаем мышью справа от свойства Lines. В окне StringListEditorвводим текст о магическом квадрате. Размещаем компонент TStringGrid– текстовая таблица, вкладки Additional. Процедура обработки события OnPaint(для того, чтобы сделать рисунок с расширением .bmpфоновым) содержит процедуру пользователя для заполнения таблицы числами.
В процедуре создаем объект Bitmap, загружаем его из файла. Методом StretchDraw() заполняем всю форму рисунком Bitmap.
5. Оформление диалогового окна «Правила игры», вызываемого одноименной командой главного меню
Caption – Правилаигры, Name – OKBottomDlg1. Размещаем компонент TMemo– многострочное редактируемое текстовое поле, вкладки Standart. Щелкаем мышью справа от свойства Lines. В окне StringListEditorвводим текст с правилами игры. Процедура обработки события OnPaint(для того, чтобы сделать рисунок с расширением .bmpфоновым).
продолжение
--PAGE_BREAK--