Магический квадрат в среде delphi

Автор работы: Пользователь скрыл имя, 20 Августа 2009 в 10:09, Не определен

Описание работы

Курсовая работа

Файлы: 1 файл

Курсовая по информатике.doc

— 345.50 Кб (Скачать файл)

     На  этом этапе я создал блок – схему будущей программы (Рисунок 9).

sum <> a[i,1]+a[i,2]+a[i,3]

 

flag:=0

i=1 to 3

 
                                                      sum <> a[1,i]+a[2,i]+a[3,i]

flag:=0

                                                       sum <> a[1,1]+a[2,2]+a[3,3]

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. В пояснительной записке:

  • представлена информация о создании языка программирования;
  • приведен теоретический материал о компонентах, используемых в программе;
  • представлена блок-схема алгоритма работы программы;
  • приведен анализ и тестирование программы с подробным описанием;

Информация о работе Магический квадрат в среде delphi