Автор работы: Пользователь скрыл имя, 20 Августа 2009 в 10:09, Не определен
Курсовая работа
На этом этапе я создал блок – схему будущей программы (Рисунок 9).
sum <> a[i,1]+a[i,2]+a[i,3]
flag:=0
i=1 to 3
flag:=0
flag:=0
flag:=1
Матрица является магическим квадратом
Матрица не является магическим квадратом
Конец
Рисунок
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. В пояснительной записке: