Смекни!
smekni.com

Магический квадрат в среде delphi (стр. 4 из 4)

Матрица не является магическим квадратом

Конец

Рисунок 9 – блок - схема программы

2.3.3 Кодирование

После того как определены требования к программе и составлен алгоритм решения, алгоритм записывается на выбранном языке программирования. В результате получается исходная программа. На этом этапе я выбрал язык программирования Delphi и записал алгоритм:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Label1: TLabel;

Button1: TButton;

Label3: TLabel;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

// Процедура нажатия на кнопку "Магический квадрат?"

procedure TForm1.Button1Click(Sender: TObject);

var

//матрица, которую проверяем на "магичность"

a:array[1..3,1..3]of integer;

flag, // флаг, магический квадрат или нет (=0 - нет, =1 - да)

i, // счётчик циклов

sum:integer; // сумма элементов строки матрицы

begin

// Заполняем матрицу

a[1,1]:=StrToInt(Edit1.Text);

a[1,2]:=StrToInt(Edit2.Text);

a[1,3]:=StrToInt(Edit3.Text);

a[2,1]:=StrToInt(Edit4.Text);

a[2,2]:=StrToInt(Edit5.Text);

a[2,3]:=StrToInt(Edit6.Text);

a[3,1]:=StrToInt(Edit7.Text);

a[3,2]:=StrToInt(Edit8.Text);

a[3,3]:=StrToInt(Edit9.Text);

//Проверяем заполненную матрицу на «магичность»

flag:=1; // предполагаем, что матрица магический квадрат

sum:=0; // пока сумма элементов строки матрицы = 0

//подсчитываем сумму

for i:=1 to 3 do

sum:=sum+a[1,i];

//проверяем все строки

for i:=1 to 3 do

if(sum <> a[i,1]+a[i,2]+a[i,3]) then

flag:=0;

//проверяем все столбцы

for i:=1 to 3 do

if(sum <> a[1,i]+a[2,i]+a[3,i]) then

flag:=0;

//проверяем диагонали

if(sum <> a[1,1]+a[2,2]+a[3,3]) then

flag:=0;

// ВЫВОДИМ РЕЗУЛЬТАТ

if (flag=1) then

label3.caption:='Матрица является Магическим квадратом'

else

label3.caption:='Матрица не является Магическим квадратом';

end;

// Процедура нажатия на кнопку закрыть

procedure TForm1.Button2Click(Sender: TObject);

begin

close //Закрыть

end;

end.

2.3.4 Массивы

При написании программы использовался массив. Массив — это структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения однородной по своей природе информации, например, таблиц и списков.

Объявление массива

Массив, как и любая переменная программы, перед использованием должен быть объявлен в разделе объявления переменных. В общем виде инструкция объявления массива выглядит следующим образом:

Имя: array [нижний_индекс. .верхний_индекс] of тип

где:

имяимя массива;

array — зарезервированное слово языка Delphi, обозначающее, что объявляемое имя является именем массива;

нижний_индекс и верхний_индекс — целые константы, определяющие диапазон изменения индекса элементов массива и, неявно, количество элементов (размер) массива;

типтип элементов массива.

В нашем случай объявление массива выглядит так:

a:array[1..3,1..3]of integer, где integer-тип целых чисел.

Для того чтобы в программе использовать элемент массива, надо указать имя массива и номер элемента (индекс), заключив индекс в квадратные скобки. В качестве индекса можно использовать константу или выражение целого типа, например:

sum:=sum+a[1,i];

Операции с массивами

Типичными операциями при работе с массивами являются:

· вывод массива;

· ввод массива;

· поиск максимального или минимального элемента массива;

· поиск заданного элемента массива;

· сортировка массива.

Вывод массива

Под выводом массива понимается вывод на экран монитора (в диалоговое окно) значений элементов массива.

Если в программе необходимо вывести значения всех элементов массива, то для этого удобно использовать инструкцию for, при этом переменная-счетчик инструкции for может быть использована в качестве индекса элемента массива. Например:

for i:=1 to 3 do

Ввод массива

Под вводом массива понимается процесс получения от пользователя (или из файла) во время работы программы значений элементов массива.

"Лобовое" решение задачи ввода элементов массива — для каждого элемента массива создать поле ввода. Однако если требуется ввести достаточно большой массив, то такое решение неприемлемо. Представьте форму, например, с десятью полями редактирования!

Очевидно, что последовательность чисел удобно вводить в строку таблицы, где каждое число находится в отдельной ячейке. Ниже рассматриваются два варианта организации ввода массива с использованием компонентов StringGrid и Memo.

Но этими и остальными операциями я не воспользовался, так как не использовал их в программе.

2.4 Анализ и тестирование

Программа запускается с помощью файла Mag kv. После запуска открывается окно, в котором необходимо заполнить матрицу или покинуть программу (рисунок 10).

Рисунок 10 - Программа до щелчка мыши

После заполнения матрицы нажимаем на кнопку «Магический квадрат», и на экране выводится сообщение, является эта матрица «магическим» квадратом или нет (рисунок 11).

Рисунок 11 - Программа после щелчка мыши

На этом этапе программа была неоднократно протестирована, ошибок не выявлено.

2.5 Создание справочной системы

Из - за невысокой сложности программы, данный пункт не использовался.

2.6 Создание установочного диска

Из - за невысокой сложности программы, создание установочного диска нецелесообразно.

Заключение

В настоящее время в нашу жизнь широко внедряются информационные технологии. На сегодняшний день, наверное, не осталось такой области, где бы они ни применялись.

Постоянно растет объем и сложность обрабатываемой информации, требуются все новые и новые виды ее представления. Как показывает практика, большинство пользователей уже не представляет себе, как бы они выполняли свою работу, с которой прекрасно справлялись еще 5 – 10 лет назад, без помощи компьютера.

В ходе курсового проектирования разработана тестирующая программа. Проектирование выполнено в системе Delphi. В пояснительной записке:

· представлена информация о создании языка программирования;

· приведен теоретический материал о компонентах, используемых в программе;

· представлена блок-схема алгоритма работы программы;

· приведен анализ и тестирование программы с подробным описанием;

Список литературы

1. Чеснокова О.В., Delphi 2007. Алгоритмы и программы. Самоучитель. – М.: НТ Пресс, 2008 – 368 с.

2. Алексеев Е.Р., Чеснокова О.В., Турбо Паскаль 7.0, - М.: НТ Пресс, 2006 – 320 с.

3. Бобровский С., Delphi 5: учебный курс: Питер, 2001 – 640 с.

4. Карчевская М.П., Рамбургер О.Л., Тархов С.В., Хамзина Е.А., Разработка приложений в среде Borland Delphi: лабораторный практикум по дисциплине "Информатика",- Уфа: УГАТУ, 2005.

5. Интернет-издание, 32 урока: Borland Delphi или о том, что лучше один раз увидеть, чем сто раз услышать.

6. Электронная книга. Архангельский А.Я., 100 компонентов общего назначения библиотеки Delphi 5.