Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Разработка приложения для Windows, представляющего собой выполнение операции над матрицами

Тип Реферат
Предмет Информатика и программирование
Просмотров
1601
Размер файла
94 б
Поделиться

Ознакомительный фрагмент работы:

Разработка приложения для Windows, представляющего собой выполнение операции над матрицами

1. Разработка эскизного и технического проектов программы

Придержан стандарт ГОСТ 19.404–79 к содержанию и оформлению программного документа «Пояснительная записка», входящего в состав документов на стадиях разработки эскизного и технического проектов программы.

1.1 Задание

Тема: Разработка приложения для Windows, представляющего собой выполнение операции над матрицами.

Условие задачи:

Составить программу, проверяющую, образуют ли элементы двумерного массива магический квадрат. В магическом квадрате суммы чисел по всем вертикалям, всем горизонталям и двум диагоналям одинаковы.

Составить контрольный пример.

1.2 Назначение и область применения

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

Программа может быть использована в учебном процессе в качестве наглядного пособия.

Поскольку ставится задача разработать приложение для Windows, то использоваться программа может только под управлением ОС Windows.

1.3 Технические характеристики

Постановка задачи – разработать проект, который обеспечивает проверку, является ли заданная квадратная матрица магическим квадратом.

Программа должна осуществить сложение элементов матрицы по вертикали, по горизонтали и по диагоналям.

Входная информация по задаче – целочисленная квадратная матрица. Выходная информация – сообщение о том, что матрица является или не является магическим квадратом.

Также входными данными являются количество строк и столбцов матрицы.

Для программирования данной задачи используются структура данных – массив. Использованы конструкции разветвляющиеся и циклические конструкции.

Массив – совокупность однотипных элементов. Двумерный массив называются матрицей. Матрица определяется именем, размерность и типом. Например А [4,4] – матрица из 4 строк и 4 столбцов. Доступ к элементам массива осуществляется с помощью индексов. Для доступа к элементам матрицы используются два индекса. Например A [I, j] – элемент на пересечений i – строки, j – столбца.

В программе для удобства пользователю исходная матрица формируется с помощью генерации случайных чисел. Использованы случайные числа в пределах от 0 до 5.

Размерность матрицы вводится в поле ввода. Ограничение на размерность матрицы в пределах <30.

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

Операцию размернорсть матрицы должен выбрать пользователь.

Элементы матрицы формируются с помощью функции случайных чисел.

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

В программе решаются три независимые друг от друга подзадачи.

1. Формирование матрицы.

2. Суммирование элементов по строкам, по столбцам, по двум диагоналям и проверка условий.


Сложение элементов матрицы по строкам

Вначале проверяется равность суммы элементов двух диагоналей, если они равны по циклу проверяются равность сумм элементов строк, столбцов.

Входными данными в данной задаче являютсячисло n – размер и матрица размером nхn. Для условий задачи подходит квадратная матрица. Выходными данными является сообщение, о результате «матрица является магическим квадратом» или «матрица не является магическим квадратом».

В программе для удобства исходная матрица формируется случайными числами.

Размер поля StringGridменяется в зависимости от значения n.

Задание на курсовую работу – разработка приложения для Windows, поэтому использована среда разработки приложений Delphi.

Delphi – это среда быстрой разработки, в которой в качестве языка программирования используется ObjectPascal. В основе идеологии Delphi лежит технология визуального программирования и методология объектно-ориентированного программирования. В курсовом проекте использованы три формы и следующие визуальные компоненты.

TLabel служит для отображения текста на экране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Это легко сделать и во время выполнения программы, написав всего одну строчку кода.

TStringGrid – служит для представления текстовых данных в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство Cell.

TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, по двойному щелчку можно создать заготовку обработчика события нажатия кнопки.

Над объектами проекта использованы события Show, Create, onClick, Close.

Для полноценной работы данной программы необходимы следующие ресурсы компьютера: процессор PentiumIVили Celeron 2.0Ghz.

Оперативная память не менее 512 Мбайт, достаточное количество свободного места на диске – порядка 1 Гбайт.

2. Разработка рабочего проекта

2.1 Разработка программы

Проект программы содержит три окна:

1. Form1 – главное окно (выполнение операции над матрицами).

2. Form2 – справка о разработчике.

Окно Form1.

Главное окно программы – Form1

Ниже приведены описание компонентов, некоторые похожие компоненты не описаны.

Компонент Form1

Свойства:

Сaption – Магический квадрат;

Border – bsSingle;

BiSystemMenu – false;

BiMinimaze – false;

BiHelp – False;

События: нет.

1 – компонент TМainMenu

Свойства:

object MainMenu1: TMainMenu

Items

Справка (N1) О программе(N4)

Выход (N2)

События:

Для N1 – событие BitBtn1Click (приводится ниже).

N2Click – закончить работу с приложением.

N1Click – перейти к работе со второй формой.

2 – компонентStringGrid1

Свойства

Left = 152

Top = 42

Width = 220

Height = 180

DefaultColWidth = 20

DefaultRowHeight = 16

FixedCols = 0

FixedRows = 0

3 – компонентButton1

Caption = 'Магический квадрат?'

событие

OnClick = Button1Click

4 – компонентLabel6:

Свойства

Left = 96

Top = 400

Width = 196

Height = 24

Caption = «Контрольный пример»

Font. Charset = DEFAULT_CHARSET

OnClick = Label6Click

5 – компонент Edit1:

Свойства

Left = 232

Top = 48

Width = 41

Height = 32

Нижеприводитсяокно Form2.

Окно Form2

компонент Form2

Свойства

Caption Справка

1-компонент Label1

object Label1: TLabel
Left = 24
Top = 48
Width = 582
Height = 20
Caption =
«Программа разработана в качестве курсовой работы по программированию»
Font. Charset = DEFAULT_CHARSET
Font. Color = clWindowText
Font. Height = -16
Font. Name = 'MS Sans Serif'
Font. Style = []
ParentFont = False
Написание программы

Для решения поставленной задачи в программе был объявлен двумерный массив(матрица)

x:array [0.. 10,0..10] of integer;

Доступ к элементам массива осуществляется с помощью индексов, поэтому были объявлены целочисленные простые переменные.

k, s, c, i, j, n:integer;

В программе используются циклические конструкции. Кроме вложенных циклов с параметром программа содержит сложную конструкцию Условие [Цикл[Условие]].

// процедура формирования матрицы x

procedureTForm1. Label3Click(Sender: TObject);

begin

if edit1. Text='' then showmessage ('введите размер матрицы') else

randomize;

n:=strtoint (edit1. Text);

stringgrid1. Visible:=true;

n:=n-1;

StringGrid1. Height:=StringGrid1. DefaultRowHeight* (strtoint (edit1.text)+1);

StringGrid1. Width:=StringGrid1. DefaultColWidth* (strtoint (edit1.text)+1);

StringGrid1. ColCount:=strtoint (edit1.text);

StringGrid1. RowCount:=strtoint (edit1.text);

for i:=0 to n do

for j:=0 to n do

begin

x [i, j]:=random(5)+1;

end;

for i:=0 to n do

for j:=0 to n do

begin

stringgrid1. Cells [j, i]:=inttostr (x[i, j]);

end;

end;

// процедура вычисления суммы элементов матрицы и проверки

procedure TForm1. Button1Click (Sender: TObject);

begin

s:=0;

for i:=0 to n do

s:= s+x [i, i];

c:=0;

for j:=n downto 0 do

c:= c+x [n-j, j];

for i:=0 to n do

begin

x [i, n+1]:=0;

for j:=0 to n do

x [i, n+1]:=x [i, n+1]+x [i, j];

end;

for i:=0 to n do

begin

x [n+1, i]:=0;

for j:=0 to n do

x [n+1, i]:=x [n+1, i]+x [j, i];

end;

k:=0;

if c=s then begin

for i:=0 to n do

if (c=x [n+1, i]) and (c=x [i, n+1]) then k:=k+1; end;

ifk=n+1 thenlabel4.caption:='Данная матрица является магичесим квадратом'

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

end;

// Вывод в StringGrid3 контрольной матрицы

procedure TForm1. Label6Click (Sender: TObject);

begin

randomize;

n:=strtoint (edit1. Text);

stringgrid1. Visible:=true;

n:=n-1;

StringGrid1. Height:=StringGrid1. DefaultRowHeight* (strtoint (edit1.text)+1);

StringGrid1. Width:=StringGrid1. DefaultColWidth* (strtoint (edit1.text)+1);

StringGrid1. ColCount:=strtoint (edit1.text);

StringGrid1. RowCount:=strtoint (edit1.text);

for i:=0 to n do

for j:=0 to n do

begin

x [i, j]:=random(1)+1;

end;

for i:=0 to n do

for j:=0 to n do

begin

stringgrid1. Cells [j, i]:=inttostr (x[i, j]);

end;

end;

2.2 Спецификация программы

Исполняемый файл программы выполнения операции над матрицами имеет название Matr.exe и расположен на компакт-диске в каталоге Matr1Magi. Состав проекта.

НаименованиеОбозначениеПримечания
Magi.resФайл ресурсовСодержит пиктограммы, графические изображения
Magi.dprФайл проектаСвязывает все файлы из которых состоит приложение
Magi.dofФайл параметров проектаСодержит текущие установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивы
Magi.cfgФайл, содержащий конфигурационную информацию о проектеСодержит информацию о том какие окна открыты и в каких позициях они расположены
Unit2.pasФайл программного модуля для формы №2Определяет функциональность формы №2
Unit2.dfmФайл формы №2Содержит список свойств всех компонентов, включенных в форму №2
Unit2.dcuОбъектный файл для Unit2.pasОткомпилированная версия Unit2.pas
Unit1.pasФайл программного модуля для формы №1Определяет функциональность формы №1
Unit1.dfmФайл формы №1Содержит список свойств всех компонентов, включенных в форму №1
Unit1.dcuОбъектный файл для Unit1.pasОткомпилированная версия Unit2.pas

2.3 Текст программы

Листинг программы.

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, Grids, Menus;

type

TForm1 = class(TForm)

Label1: TLabel;

StringGrid1: TStringGrid;

Edit1: TEdit;

Label2: TLabel;

Label3: TLabel;

Button1: TButton;

Label4: TLabel;

Label6: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

procedure Label3Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Label6Click (Sender: TObject);

procedure N1Click (Sender: TObject);

procedure N2Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

k, s, c, i, j, n:integer;

x:array [0.. 10,0..10] of integer;

implementation

uses Unit2;

{$R *.dfm}

procedureTForm1. Label3Click (Sender: TObject);

begin

if edit1. Text='' then showmessage ('введитеразмерматрицы') else

randomize;

n:=strtoint (edit1. Text);

stringgrid1. Visible:=true;

n:=n-1;

StringGrid1. Height:=StringGrid1. DefaultRowHeight* (strtoint (edit1.text)+1);

StringGrid1. Width:=StringGrid1. DefaultColWidth* (strtoint (edit1.text)+1);

StringGrid1. ColCount:=strtoint (edit1.text);

StringGrid1. RowCount:=strtoint (edit1.text);

for i:=0 to n do

for j:=0 to n do

begin

x [i, j]:=random(5)+1;

end;

for i:=0 to n do

for j:=0 to n do

begin

stringgrid1. Cells [j, i]:=inttostr (x[i, j]);

end;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin

stringgrid1. Visible:=false;

end;

procedureTForm1. Button1Click (Sender: TObject);

begin

s:=0;

for i:=0 to n do

s:= s+x [i, i];

c:=0;

for j:=n downto 0 do

c:= c+x [n-j, j];

for i:=0 to n do

begin

x [i, n+1]:=0;

for j:=0 to n do

x [i, n+1]:=x [i, n+1]+x [i, j];

end;

for i:=0 to n do

begin

x [n+1, i]:=0;

for j:=0 to n do

x [n+1, i]:=x [n+1, i]+x [j, i];

end;

k:=0;

if c=s then begin

for i:=0 to n do

if (c=x [n+1, i]) and (c=x [i, n+1]) then k:=k+1; end;

if k=n+1 then label4.caption:='Данная матрица является магичесим квадратом'

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

end;

// показать матрицу

procedure TForm1. Label6Click (Sender: TObject);

begin

randomize;

n:=strtoint (edit1. Text); // количество строк или столбцов

stringgrid1. Visible:=true; // видимость

n:=n-1;

// настройка размера StringGrid

StringGrid1. Height:=StringGrid1. DefaultRowHeight* (strtoint (edit1.text)+1);

StringGrid1. Width:=StringGrid1. DefaultColWidth* (strtoint (edit1.text)+1);

StringGrid1. ColCount:=strtoint (edit1.text);

StringGrid1. RowCount:=strtoint (edit1.text);

for i:=0 to n do

for j:=0 to n do

begin

x [i, j]:=random(1)+1; // контрольная матрица

end;

for i:=0 to n do

for j:=0 to n do

begin

stringgrid1. Cells [j, i]:=inttostr (x[i, j]);

end;

end;

procedure TForm1.N1Click (Sender: TObject);

begin

form2.show;

end;

procedure TForm1.N2Click (Sender: TObject);

begin

close;

end;

end.

// код для 2 – формы

unit Unit2;

interface

uses

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

Dialogs, StdCtrls;

type

TForm2 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

private

{Private declarations}

public

{Public declarations}

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

end.

2.4 Описание программы

Программа предназначена для выполнения операции над матрицей. Программа написана на языке ObjectPascal. Работает в среде операционных систем Widows 2000/XP. Для полноценной работы данной программы необходимы следующие ресурсы компьютера: процессор PentiumIVили Celeron 2.0Ghz.

Оперативная память не менее 512 Мбайт, достаточное количество свободного места на диске – порядка 1 Гбайт.

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

Выходная информация размещается в поле Label4. Пользователю предлагается задать количество строк.

Программа загружается нажатием на файл Magi.exeиз папкиmag Кусаинова.

Исходные матрица описана как квадратные целочисленные, диапазон значений элементов от 0 до 5. Такое ограничение обусловливается предотврощением перегруза памяти компьютера и ошибок связанные размерностью матриц. Значения для StringGrid1. ColCount и StringGrid1. RowCount задаются в окне ObjectInspektor.

2.5 Тестирование программы

Программа правильно работает для целочисленной квадратной матрицы размерностью менее 30х30.

Начальный вид формы


Матрица

Результат


Результат контрольного примера

Программа предназначена для выполнения операции над матрицей. Программа написана на языке ObjectPascal. Работает в среде операционных систем Widows 2000/XP. Для полноценной работы данной программы необходимы следующие ресурсы компьютера: процессор PentiumIVили Celeron 2.0 Ghz.

Оперативная память не менее 512 Мбайт, достаточное количество свободного места на диске – порядка 1 Гбайт.

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


Список использованных источников

1. Фаронов, В.В. Turbo Pascal [Текст]: учеб. пособие / В.В. Фаронов. – СПб.: Питер, 2006. – 366 с.

2. Бобровский, С.И. Технологии Delphi 2006. Новые возможности [Текст] / С.И. Бобровский. – СПб.: Питер, 2006.

3. Культин, Н.Б. Delphi в задачах и примерах [Текст] / Н.Б. Культин. – СПб.: БХВ-Петербург, 2004.

4. Культин, Н.Б. Основы программирования в Delphi 7 [Текст] / Н.Б. Культин. – СПб.: БХВ-Петербург, 2003.

5. Немнюгин, С.А. TurboPascal. Программирование на языке высокого уровня [Текст]: учебник для вузов / С.А. Немнюгин. – 2-е изд., перераб. и доп. – СПб.: Питер, 2006.

6. Немнюгин, С.А. Turbo Pascal: Практикум [Текст] / С.А. Немнюгин. – 2-е изд. Перераб. и доп. – СПб.: Питер, 2006.

7. Павловская, Т.А. Паскаль. Программирование на языке высокого уровня [Текст]: учебник для вузов / Т.А. Павловская. – СПб.: Питер, 2004. (допущен Министерством образования).

8. Фаронов, В.В. Турбо Паскаль 7.0. Практика программирования [Текст]: учебное пособие / В.В. Фаронов. – М.: ОМД Групп, 2003.

9. Фаронов, В.В. Delphi 2005. Язык, среда, разработка приложений [Текст] / В.В. Фаронов. – СПб.: Питер, 2005.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно