--PAGE_BREAK--Теоретическая часть
1.1 История
Язык программирования – это способ записи программ решения различных задач на ЭВМ в понятной для компьютера форме.
Значительным событием в истории языков программирования стало создание в 1971 г. языка Паскаль. Его автор – швейцарский профессор
Н.Вирт – разрабатывал Паскаль как учебный зык структурного программирования.
Наибольший успех в распространении этого языка обеспечили персональные компьютеры. Фирма Borland
International
Inc
(США) разработала систему программирования Турбо Паскаль для ПК. Турбо Паскаль – это не только язык и транслятор с него, но еще и операционная оболочка, обеспечивающая пользователю удобство работы. Турбо Паскаль вышел за рамки учебного предназначения и стал языком профессионального программирования с универсальными возможностями.
Delphi2007 — это современная система программирования, в основе которой лежит объектно-ориентированный язык Раsса1 и визуальные средства программирования. Система Delphi2007 относится к классу средств ускоренной разработки программ. Это ускорение достигается за счет двух характерных свойств Delphi: визуального конструирования форм и использования библиотеки визуальных компонентов. Еще одно достоинство Delphi— мощность и гибкость. Это неудивительно, так как в основе Delphiлежит мощный объектно-ориентированный язык ObjectРаsса1, пригодный для создания программ любой сложности. Кроме того, программы, созданные в среде Delphi2007, могут работать не только под управлением Windows.
1.2 Краткое описание Borland Delphi Delphi7 состоит из 5 окон:
· главное окно — Delphi 7;
· окно стартовой формы — Form 1;
· окно редактора свойств объектов — Object Inspector;
· окно просмотра списка объектов — Object TreeView;
· окно редактора кода — Unitl.pas.
1.2.1
Описание окна
Delphi 7
В главном окне (рисунок 1) находится меню команд, панели инструментов и палитра компонентов.
Рисунок 1 – главное окно
1.2.2 Описание окна
Form 1
Окно стартовой формы -Form1 (рисунок 2) представляет собой заготовку главного окна разрабатываемого приложения.
Рисунок 2 –окно Form1
1.2.2.1
Свойства объекта
TF
orm
Работа над новым проектом, так в Delphi называется разрабатываемое приложение, начинается с создания стартовой формы. Так на этапе разработки программы называют диалоговые окна.
Стартовая форма создается путем изменения значений свойств формы Form1 и добавления к форме необходимых компонентов (полей ввода и вывода текста, командных кнопок).
Свойства формы, приведенные в таблице 1, определяют ее внешний вид: размер, положение на экране, текст заголовка, вид рамки.
Для просмотра и изменения значений свойств формы и ее компонентов используется окно Object Inspector. В верхней части окна Object Inspector указано имя объекта, значения свойств которого отображается в данный момент. В левой колонке вкладки Properties (Свойства) перечислены свойства объекта, а в правой — указаны их значения.
Таблица 1 – Свойства объекта TForm
Свойство
Описание
Name
Имя формы. В программе имя формы используется для управления формой и доступа к компонентам формы
Caption
Текст заголовка
Width
Ширина формы
Height
Высота формы
Left
Расстояние от левой границы формы до левой границы экрана
BorderStyle
Вид границы. Граница может быть обычной (bsSizeable), тонкой (bsSingle) или отсутствовать (bsNone). Если у окна обычная граница, то во время работы программы пользователь может при помощи мыши изменить размер окна. Изменить размер окна с тонкой границей нельзя
Icon
Значок в заголовке диалогового окна, обозначающий кнопку вывода системного меню
Color
Цвет фона. Цвет можно задать, указав название цвета или привязку к текущей цветовой схеме операционной системы. Во втором случае цвет определяется текущей цветовой схемой, выбранным компонентом привязки и меняется при изменении цветовой схемы операционной системы
Свойство
Описание
Font
Шрифт. Шрифт, используемый «по умолчанию» компонентами, находящимися на поверхности формы. Изменение свойства Font формы приводит к автоматическому изменению свойства Font компонента, располагающегося на поверхности формы. То есть компоненты наследуют свойство Font от формы (имеется возможность запретить наследование)
Borderlcons
Кнопки управления окном. Значение свойства определяет, какие кнопки управления окном будут доступны пользователю во время работы программы. Значение свойства задается путем присвоения значений уточняющим свойствам biSystemMenu, biMinimaze, biMaximaze и biHelp. Свойство biSystemMenu определяет доступность кнопки. Свернуть и кнопки системного меню, biMinimaze— кнопки. Свернуть, biMaximaze— кнопки Развернуть, biHelp — кнопки вывода справочной информации
1.2.3 Описание окна Object Inspector
Окно Object Inspector (рисунок 3) — окно редактора свойств объектов предназначено для редактирования значений свойств объектов. В терминологии визуального проектирования объекты — это диалоговые окна и элементы управления (поля ввода и вывода, командные кнопки, переключатели и др.). Свойства объекта — это характеристики, определяющие вид, положение и поведение объекта. Например, свойства Width и Height задают размер (ширину и высоту) формы, свойства тор и Left — положение формы на экране, свойство Caption — текст заголовка.
Рисунок3 — ОкноObject Inspector
1.2.4
Описание
окна
Object TreeView
В окне просмотра списка объектов-Object TreeView(рисунок 4), указаны все объекты, использовавшиеся при создании программы.
Рисунок 4-Окно Object TreeView
1.2.5
Описание окна Unitl.pas
В окне редактора кода (рисунок 5), которое можно увидеть, отодвинув в сторону окно формы, следует набирать текст программы. В начале работы над новым проектом это окно редактора кода содержит сформированный Delphi шаблон программы.
Рисунок 5 -Окно Unitl.pas
1.3 Обзор компонентов BorlandDelphi
1.3.1 Описание компонентаTEdit
TEdit— стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.Значок компонента Editнаходится на вкладке Standart в соответствии с рисунком 6.
Рисунок 6 – Командная кнопка – компонент Edit
1.3.1.1
Свойства объекта TEdit
В таблице 2 перечислены основные свойства компонента Edit — поля ввода-редактирования.
Таблица 2 – Свойства компонента TEdit
Свойство
Описание
Name
Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности — для доступа к тексту, введенному в поле редактирования
Text
Текст, находящийся в поле ввода и редактирования
Left
Расстояние от левой границы компонента до левой границы формы
Top
Расстояние от верхней границы компонента до верхней границы формы
Height
Высота поля
Width
Ширина поля
Font
Шрифт, используемый для отображения вводимого текста
ParentFont
Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, то при изменении свойства Font формы автоматически меняется значение свойства Font компонента
1.3.2 Описание компонентаTLabel
TLabelслужит для отображения текста на экране. Вы можете изменить шрифт и цвет метки, если дважды щелкнете на свойство Font в Инспекторе Объектов. Вы увидите, что это легко сделать и во время выполнения программы, написав всего одну строчку кода. Значок компонента Labelнаходится на вкладке Standart в соответствии с рисунком 7.
Рисунок 7 – Командная кнопка – компонент Label
1.3.2.1 Свойства объекта TLabel
Свойства компонента TLabel перечислены в таблице 3.
Таблица 3 – Свойства компонента TLabel
Свойство
Описание
Name
Имя компонента. Используется в программе для доступа к компоненту и его свойствам
Caption
Отображаемый текст
Font
Шрифт, используемый для отображения текста
ParentFont
Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, текст выводится шрифтом, установленным для формы
AutoSize
Признак того, что размер поля определяется его содержимым
Left
Расстояние от левой границы поля вывода до левой границы формы
Top
Расстояние от верхней границы поля вывода до верхней границы формы
Height
Высота поля вывода
Width
Ширина поля вывода
Следует обратить внимание на свойства Autosize и Wordwrap. Эти свойства нужно использовать, если поле вывода должно содержать несколько строк текста. После добавления к форме компонента Label значение свойства Autosize равно True, т. е. размер поля определяется автоматически в процессе изменения значения свойства Caption.
Если вы хотите, чтобы находящийся в поле вывода текст занимал несколько строк, то надо сразу после добавления к форме компонента Label присвоить свойству Autosize значение False, свойству Wordwrap — значение True. Затем изменением значений свойств Width и Height нужно задать требуемый размер поля. Только после этого можно ввести в свойство Caption текст, который должен быть выведен в поле.
1.3.3
Описание компонента TButton
TButtonпозволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далеенужнозаполнитьзаготовкукодом:
Procedure TForm1.Button1Click (Sender: TObject);
Begin
…
end;
Значок компонента Button находится на вкладке Standart в соответствии с рисунком 8.
Рисунок 8 – Командная кнопка – компонент Button
1.3.3.1
Свойства объекта TButton
В таблице 4 перечислены некоторые свойства компонента TButton.
Таблица 4– Свойства компонента TButton
Свойство
Описание
Caption
Текст на кнопке
Enabled
Признак доступности кнопки. Кнопка доступна, если значение свойства равно True, и недоступна, если значение свойства равно False
Left
Расстояние от левой границы кнопки до левой границы формы
Top
Расстояние от верхней границы кнопки до верхней границы формы
Height
Высота кнопки
Width
Ширина кнопки
Name
Имя компонента. Используется в программе для доступа к компоненту и его свойствам
Все описанные выше компоненты Delphiв данной курсовой работе использовались для создания программы. продолжение
--PAGE_BREAK--
Программирование программы
2.1
Программа
Программа, работающая на компьютере, нередко отождествляется с самим компьютером, т.к. человек, использующий программу, «вводит в компьютер» исходные данные, как правило, при помощи клавиатуры, а компьютер «выдаёт результат» на экран, на принтер или в файл. На самом деле, преобразование исходных данных в результате выполняет процессор компьютера. Процессор преобразует исходные данные в результате по определённому алгоритму, который, будучи записан на специальном языке, называется программой. Таким образом, чтобы компьютер выполнил некоторую работу, необходимо разработать последовательность команд, обеспечивающую выполнение этой работы, или, как говорят, написать программу.
2.2
Постановка задачи
Написать программу, которая проверяет, является ли введенная с клавиатуры квадратная матрица «магическим» квадратом.
2.3
Этапы разработки программы
Выражение «написать программу» отражает только один из этапов создания компьютерной программы, когда разработчик программы (программист) действительно пишет команды (инструкции) на бумаге или при помощи текстового редактора.
Программирование – это процесс создания (разработки) программы, который может быть представлен последовательностью следующих шагов:
1. Спецификация (определение, формулирование требований к программе).
2. Разработка алгоритма.
3. Кодирование (запись алгоритма на языке программирования).
4. Отладка.
5. Тестирование.
6. Создание справочной системы.
7. Создание установочного диска (CD-ROM).
2.3.1
Спецификация
Спецификация, определение требований к программе — один из важнейших этапов, на котором подробно описывается исходная информация, формулируются требования к результату, поведение программы в особых случаях (например, при вводе неверных данных), разрабатываются диалоговые окна, обеспечивающие взаимодействие пользователя и программы.
На этом этапе я подобрал информацию необходимую для создания программы. Определил, как должен выглядеть результат (Рисунок 9).
Рисунок 9 – «магический» квадрат
2.3.2
Разработка алгоритма
На этапе разработки алгоритма необходимо определить последовательность действий, которые надо выполнить для получения результата. Если задача может быть решена несколькими способами и, следовательно, возможны различные варианты алгоритма решения, то программист, используя некоторый критерий, например скорость решения алгоритма, выбирает наиболее подходящее решение. Результатом этапа разработки алгоритма является подробное словесное описание алгоритма или его блок-схема.
На этом этапе я создал блок – схему будущей программы (Рисунок 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. продолжение
--PAGE_BREAK--