Помощь в написании студенческих работ
Антистрессовый сервис

Разработка программного продукта на языке высокого уровня

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Другим важным фактором успеха Delphi является его «визуальность». Можно сказать, что здесь программист не должен думать о всяких мелочах — как создать окно или кнопку, какие для этого необходимы классы или библиотеки. Задачи, для которых на C требуется множество усилий, в Delphi решаются несколькими кликами. Однако, вопреки сложившемуся мнению, при этом язык не теряет возможности доступа… Читать ещё >

Разработка программного продукта на языке высокого уровня (реферат, курсовая, диплом, контрольная)

Федеральное агентство по образованию ГОУ СПО КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Курсовая работа по дисциплине Технология разработки программных продуктов на тему: «Разработка программного продукта на языке высокого уровня»

Выполнила студентка 4-ПО-9,11 группы Черненко Галина

Допущена к защите «___» декабря

Руководитель работы

Т.Ю.Некрасова

Защищена «_ _» декабря 2010 г.

Оценка

Члены комиссии:

Кореновск 2010 г.

КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ЗАДАНИЕ

на курсовое проектирование

Студентке 4-ПО-9,11 Черненко Галине

Тема работы: «Разработка программного продукта на языке высокого уровня».

Содержание задания:

Составить программу, которая для задаваемых натуральных значений N и M не больших 10, принимает значение элемента массивов А (n, m) и В (m, n). Интерпретируя массивы А (n, m) и В (m, n) как матрицы, формирует массив С (n, n), являющийся произведением матриц, А и В, и выводит массив С на экран.

Объем работы:

а) пояснительная записка к проекту;

б) приложения.

Срок защиты: 04.12.2010 г.

Дата выдачи задания: 25.09.2010 г.

Дата сдачи работы: 25.11.2010 г.

Руководитель работы_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Т.Ю.Некрасова

Задание приняла студентка_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Г. А. Черненко Кореновск 2010 г.

Содержание Введение

1. Основная часть

1.1 Постановка задачи

1.2 Системные требования

1.3 Блок-схема

1.4 Структура данных

1.5 Проектирование

1.6 Интерфейс программы

1.7 Написание программы

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

2. Заключение

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

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

Введение

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

Программирование включает в себя:

· Анализ

· Проектирование — разработка комплекса алгоритмов

· Кодирование и компиляцию — написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора

· Тестирование и отладку — выявление и устранение ошибок в программах

· Испытания и сдачу программ

· Сопровождение Большая часть работы программистов связана с написанием исходного кода, тестированием и отладкой программ на одном из языков программирования. Исходные тексты и исполняемые файлы программ являются объектами авторского права и являются интеллектуальной собственностью их авторов и правообладателей.

Язымк программимрования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением.

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

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

· Паскаль Самоучитель программирования

· Ассемблер Леонтьев

· Си++

· BASIC

· Delphi — язык программирования, который используется в одноимённой среде разработки. Сначала язык назывался Object Pascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

Время компиляции программ у любого C-языка на порядок дольше, чем у Delphi, это понижает отдачу от программиста — не каждый может писать код без малейших ошибок. Даже на мощных машинах С-продукты не могут обеспечить быстродействия, присущего Delphi.

Другим важным фактором успеха Delphi является его «визуальность». Можно сказать, что здесь программист не должен думать о всяких мелочах — как создать окно или кнопку, какие для этого необходимы классы или библиотеки. Задачи, для которых на C требуется множество усилий, в Delphi решаются несколькими кликами. Однако, вопреки сложившемуся мнению, при этом язык не теряет возможности доступа к низкоуровневым свойствам объектов, это делает его уникальным.

Для многих программистов немаловажным фактором является способность системы работать с базами данных. Delphi поддерживает базы данных, причем с той же присущей системе визуальностью. С таким же изяществом позволяет она разрабатывать и клиентский уровень СУБД «клиент-сервер», что чрезвычайно актуально сейчас. Встроенные мастера позволяют быстро создать необходимые компоненты и процедуры, а программисту остается лишь дописать свой код.

Основная часть Постановка задачи Составить программу, которая для задаваемых натуральных значений N и M не больших 10, принимает значение элемента массивов А (n, m) и В (m, n). Интерпретируя массивы А (n, m) и В (m, n) как матрицы, формирует массив С (n, n), являющийся произведением матриц, А и В, и выводит массив С на экран.

Функции программы Данный программный продукт позволит пользователю самому выбрать размерность матриц не больших 10. Далее на экран будут выведены 2 матрицы: А и B. Впоследствии эти матрицы будем автоматически перемножать, и получится матрица С. Выводим ее на экран.

Данная программа будет выполнена на инструментальном языке высокого уровня Delphi 7.

Ключевые возможности, появившиеся в Delphi 7:

· предварительный вариант средств для работы с Microsoft .NET Framework;

· Kylix 3.0 для Linux в составе пакета;

· бесплатная лицензия на развертывание многозвенных приложений (которая до этого была платной), использующих технологию DataSnap (прежнее название — MIDAS);

· полное решение проектирования и развертывания корпоративных приложений по технологии Model Driven Architecture (MDA);

· мощные и удобные средства разработки WEB-приложений;

· средства создания качественных кроссплатформенных отчетов Rave Reports;

· среда моделирования ModelMaker (по технологии UML).

Компания Borland первой предоставила разработчикам возможность перехода на .NET при помощи Delphi 7. Поддержка компанией Borland платформы .NET позволяет разработчиками, использующим Delphi, быстро и продуктивно создавать приложения для .NET с сохранением существующих инвестиций в информационные технологии. Теперь работа в Delphi 7 позволяет программистам легко переносить имеющиеся у них знания, навыки и ресурсы на платформу .NET.

Системные требования Минимальные системные требования для использования Delphi 7:

· Процессор — Intel Pentium 233 МГц и выше

· Операционная система — Microsoft Windows XP, Windows 2000

· Оперативная память — 64 Мбайт (рекомендуется 128 Мбайт)

· Пространство на жестком диске — 450 Мбайт

· Монитор — SVGA или выше

· Другое аппаратное обеспечение — CD-ROM, мышь, клавиатура Данная программа находится в папке «Программа» размером 1,53 МБ на диске CD-R размером 700 МБ, которая представляет собой исполняемый файл COURSE. exe размером 765 КБ.

Для тестирования программы необходимы следующие технические средства:

· процессор Intel Celeron 300 и выше;

· память 32Mb;

· свободное пространство на жестком диске 5Мb;

· видеокарта встроенная;

· монитор Samsung SyncMaster с разрешением не менее 1024×768;

· CD-ROM;

· клавиатура;

· мышь;

Блок схема программы В блок-схеме использовались следующие типы блоков:

1. Операция начала и конца алгоритма

2. Оператор ввода и вывода данных

3. Оператор присваивания

4. Оператор действия

5. Оператор логического условия

Блок-схема заполнения массивов A и B:

Блок-схема перемножения матриц A и B:

Структура данных

Integerодин из простейших и самых распространённых типов данных в языках программирования. Целые типы подразделяются на беззнаковые (без знака) и знаковые (со знаком).

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

m-байтовая переменная целого типа без знака принимает значения от 0 до +28m-1;

m-байтовая переменная целого типа со знаком принимает значения от ?28m-1 до +28m-1−1.

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

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

Longintцелое 32 битное число со знаком. Этот размер фиксирован, и не будет изменяться в будущих выпусках Delphi. В настоящее время он имеет тот же самый размер как тип Integer.

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

Для хранения матриц, а также операций с ними, я выбрала объект Delphi StringGrid типа TStringGrid. Этот объект удобен тем, что его структура напоминает строение матрицы, то есть так же имеются строки и столбцы.

Работая с заданным проектом получила навыки оперировать объектами Delphi, в частности объектом StringGrid, Label, Edit, BitBtn.

Интерфейс программы Рис. 1

При запуске программы вы увидите окно, изображенное на рис. 1. В верху окна расположено меню для операций с программой. С кнопки Выполнить можно начать работу для перемножения матриц. Калькулятор — запуск приложения калькулятор, Помощь — имеет 2 вкладки: О программе и About, далее кнопка Выход — выход из программы.

Написание программы Для написания программы я использовала инструментальный язык высокого уровня Delphi 7, который в свою очередь использует Object Pascal.

Перед запуском, программа предлагает ввести пароль для подтверждения запуска, неправильно введенный пароль не позволит запустить программу. Это реализовано в отдельной форме, которая запускается обработчиком событий (EVENTS=>OnShow), то есть не покажется главное окно, пока не исполнится запущенное => ввод пароля.

При загрузке программы в меню, нажимая на кнопку выполнить запускается процедура (procedure TForm1. N1Click (Sender: TObject)), которая создает форму (Form3:=TForm3.Create (Application)) для задания размерности матриц. Это выполняется полем Edit и объектом UpDown.

Зная размерность нужно заполнить эту матрицу. Заполнение происходит через циклы случайными числами от 1 до 30 при помощи функции Random.

Матрицы будут перемножаться после нажатия на кнопку «Подсчитать», которая вызывает процедуру (procedure TForm3. BitBtn1Click (Sender: TObject)), после перемножения, полученная матрица выводится на главную форму в StringGrid для просмотра результатов.

Калькулятор, в меню запускает встроенное в windows-приложение, калькулятор.

Код введения и перемножения матриц

unit Unit3;

interface

uses //подключаемые модули

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

Dialogs, Grids, StdCtrls, Buttons, ComCtrls, jpeg, ExtCtrls;

type //объявление типов

TForm3 = class (TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

BitBtn1: TBitBtn;

Label4: TLabel;

Label5: TLabel;

UpDown1: TUpDown;

UpDown2: TUpDown;

Image1: TImage;

Button1: TButton;

procedure Button1Click (Sender: TObject);

procedure BitBtn1Click (Sender: TObject);

procedure UpDown1Changing (Sender: TObject; var AllowChange: Boolean);

procedure UpDown2Changing (Sender: TObject; var AllowChange: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

col, st: integer; //объявление глобальных переменных

implementation

uses Unit1;

{$R *.dfm}

procedure TForm3. Button1Click (Sender: TObject);

var

i, j, raz:integer; //объявления локальных переменных

begin

randomize;//исключение псевдо-случайных чисел

st:=strtoint (edit1.Text); //присвоение переменной значения размерности матрицы, строки

col:=strtoint (edit2.Text);//присвоение переменной значения размерности матрицы, столбцы

Label1.Visible:=false;//сделать надпись невидимой

Label2.Visible:=false;//сделать надпись невидимой

Label3.Visible:=false;//сделать надпись невидимой

edit1.Visible:= false;//сделать поле ввода невидимым

edit2.Visible:= false;//сделать поле ввода невидимым

UpDown1.Visible:=false;//сделать UpDown невидимым

UpDown2.Visible:=false;//сделать UpDown невидимым

Button1.Visible:=False;//сделать кнопку «ОК» невидимой

StringGrid1.rowCount:=st; //задание колличества строк первой матрицы

stringGrid1.ColCount:=col ;//задание колличества столбцов первой матрицы

StringGrid2.rowCount:=col; //задание колличества строк второй матрицы

StringGrid2.ColCount:=st;//задание колличества столбцов второй матрицы

form1.StringGrid1.rowCount:=col ;//задание размерности на главном окне матрицы для показа

form1.StringGrid1.ColCount:=col;//задание размерности на главном окне матрицы для показа

for i:=0 to col-1 do //циклы для запонения матрицы числами

for j:=0 to st-1 do

begin

StringGrid1.Cells[i, j]: = inttostr (random (30)+1);//заполнения первой матрицы

StringGrid2.Cells[j, i]: = inttostr (random (30)+1);//заполнения второй матрицы

end;

Label4.Visible:=true; //сделать надпись видимой

Label5.Visible:=true;//заполнения первой матрицы

StringGrid1.Visible:=true; //сделать матрицу видимой

StringGrid2.Visible:=true;//сделать матрицу видимой

BitBtn1.Visible:=true; //сделать кнопку «подсчитать» видимой

end;

procedure TForm3. BitBtn1Click (Sender: TObject); {процедура перемножения матриц и выведения в главную форму}

var

i, j, k:integer; {объявление переменных}

l:Longint; {объявление переменных}

begin

for i:=0 to col-1 do {цикл от 0 до колличества столбцов, т. к с нуля, отнимаем единицу}

for j:=0 to col-1 do

begin

l:=0; {обнуления переменной для правильного подсчета}

for k:=0 to st-1 do

begin

l:=l+strtoint (StringGrid1.cells[i, k])* strtoint (StringGrid2.cells[k, j]);{перемножения матриц}

form1.StringGrid1.Cells[i, j]: =inttostr (l);{Выведение на блавную форму}

end;

end;

close; {закрытие текущей формы}

form1.StringGrid1.Visible:=true;{Сделать видимый stringGrid на главном окне}

end;

procedure TForm3. UpDown1Changing (Sender: TObject;

var AllowChange: Boolean);

begin

edit1.Text:=IntToStr (UpDown1.Position){Присвоени позиции в edit, для задания размерности}

end;

procedure TForm3. UpDown2Changing (Sender: TObject;

var AllowChange: Boolean);

begin

edit2.Text:=IntToStr (UpDown2.Position){Присвоени позиции в edit, для задания размерности}

end;

end. {конец модуля}

Тестирование программы Данный программный продукт испытывался постоянно в процессе его создания, проверялась практически каждая ветвь алгоритма. При возникновении ошибок они устранялись, и программа испытывалась вновь. Испытания проводились до тех пор, пока не были устранены все найденные ошибки.

Для проведения испытаний использовался самый простой метод — динамический, который заключается в том, что все испытания проводились в разное время и на разных компьютерах.

Начинаем тестирование Запуск программы производится при помощи ехе-файла. Сразу появляется окно запроса пароля (рис.2), вводим пароль, и нажимаем кнопку Ок.

Если же пароль введен неверно всплывает сообщение пользователю (рис.3),

Если пароль введен верно, запускается загрузка программы (рис.4).

Далее после загрузки открывается главное окно программы (рис. 5)

При нажатии кнопки Выполнить открывается окно для задания размерности матриц, А и В (рис.6)

После того, как вы ввели нужные вам размеры, после нажатия кнопки ОК данные матрицы будут показаны для обозрения пользователю (рис.7)

Подсчитать — окно выдачи результатов перемножения данных матриц (рис.8)

Калькулятор — вспомогательная кнопка, которая при нажатии открывает калькулятор (рис.9)

алгоритм программа инструментальный язык Кнопка Помощь имеет 2 вкладки: О программе (рис.10) и About (рис.11).

При нажатии на кнопку Выход всплывает сообщение пользователю о подтверждении закрытия программы (рис.12)

Заключение

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

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

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

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

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

1. Архангельский А. Я. «Приемы программирования в Delphi».: Издательство «Бином-Пресс» 2006 г. -944 стр. -ISBN 5−9518−0145−1

2. С. И. Бобровский «Delphi 7 Учебный курс».: Издательство «Питер» 2004. — 736 с. — ISBN 5−8046−0086−9

3. Культин Н. Б. «Основы программирования в Delphi 7».: Издательство BHV — СПБ. 2008 г. — 480 с. -ISBN 978−5-9775−0235−1

4. Культин Н. Б. Программирование на Object Pascal в Delphi 5.Самоучитель.:Издательство BHV-СПБ. — 464стр. -ISBN 5−8206−0079−7

5. Фаронов В. В. «Delphi 2005. Издательство «Питер». 2006 г. — 608стр. — ISBN 5−469−1 191−7

6. Интернет:

· http://www.delphizone.ru/

· http://www.delphibasics.ru/

· http://pblog.ru/?p=77

· http://delphiexpert.ru/view_lesson.php?id=40

· http://www.delphisources.ru/pages/faq/faq_delphi_basics/1Procedures.php.html

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

unit Unit1;

interface

uses

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

Dialogs, Grids, Menus, StdCtrls, ExtCtrls, jpeg, ShellAPI;

type

TForm1 = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

StringGrid1: TStringGrid;

N2: TMenuItem;

N3: TMenuItem;

Timer1: TTimer;

Timer2: TTimer;

Label1: TLabel;

Label2: TLabel;

Image1: TImage;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

procedure N1Click (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure FormShow (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure Label1Click (Sender: TObject);

procedure Timer2Timer (Sender: TObject);

procedure N6Click (Sender: TObject);

procedure N4Click (Sender: TObject);

procedure FormCloseQuery (Sender: TObject; var CanClose: Boolean);

procedure Label1MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Label2Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.dfm}

procedure TForm1. N1Click (Sender: TObject);

begin

form2.ShowModal

end;

procedure TForm1. N2Click (Sender: TObject);

begin

Form3:=TForm3.Create (Application);

form3.Height:=285;

form3.Width:=465;

end;

procedure TForm1. N3Click (Sender: TObject);

begin

close;

end;

procedure TForm1. FormShow (Sender: TObject);

begin

form4.ShowModal;

form6.ShowModal;

end;

procedure TForm1. Timer1Timer (Sender: TObject);

begin

Label1.Left:=random (200);

Label1.Top:=random (160);

end;

procedure TForm1. Label1Click (Sender: TObject);

begin

if Timer1. Enabled=true then Timer1. Enabled:=false

else Timer1. Enabled:=true;

end;

procedure TForm1. Timer2Timer (Sender: TObject);

begin

Label2.Left:=Label2.Left-1;

if Label2. Left+Label2.Width < 0 then

Label2.Left:=Self.Width;

end;

procedure TForm1. N6Click (Sender: TObject);

begin

aboutbox.ShowModal;

end;

procedure TForm1. N4Click (Sender: TObject);

begin

ShellExecute (0,'open','calc.exe', nil, nil, SW_SHow);

end;

procedure TForm1. FormCloseQuery (Sender: TObject; var CanClose: Boolean);

begin

if MessageDlg ('Закрыть программу?', mtConfirmation,[mbYes, mbNo], 0)=mrYes then

CanClose:=true

else

CanClose:=false;

end;

procedure TForm1. Label1MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

Label1.Left:=random (200);

Label1.Top:=random (160);

end;

procedure TForm1. Label2Click (Sender: TObject);

begin

if Timer2. Enabled=true then Timer2. Enabled:=false

else

Timer2.Enabled:=true;

end;

end.

unit Unit3;

interface

uses //подключаемые модули

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

Dialogs, Grids, StdCtrls, Buttons, ComCtrls, jpeg, ExtCtrls;

type //объявление типов

TForm3 = class (TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

BitBtn1: TBitBtn;

Label4: TLabel;

Label5: TLabel;

UpDown1: TUpDown;

UpDown2: TUpDown;

Image1: TImage;

Button1: TButton;

procedure Button1Click (Sender: TObject);

procedure BitBtn1Click (Sender: TObject);

procedure UpDown1Changing (Sender: TObject; var AllowChange: Boolean);

procedure UpDown2Changing (Sender: TObject; var AllowChange: Boolean);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

col, st: integer; //объявление глобальных переменных

implementation

uses Unit1;

{$R *.dfm}

procedure TForm3. Button1Click (Sender: TObject);

var

i, j, raz:integer; //объявления локальных переменных

begin

randomize;//исключение псевдо-случайных чисел

st:=strtoint (edit1.Text); //присвоение переменной значения размерности матрицы, строки

col:=strtoint (edit2.Text);//присвоение переменной значения размерности матрицы, столбцы

Label1.Visible:=false;//сделать надпись невидимой

Label2.Visible:=false;//сделать надпись невидимой

Label3.Visible:=false;//сделать надпись невидимой

edit1.Visible:= false;//сделать поле ввода невидимым

edit2.Visible:= false;//сделать поле ввода невидимым

UpDown1.Visible:=false;//сделать UpDown невидимым

UpDown2.Visible:=false;//сделать UpDown невидимым

Button1.Visible:=False;//сделать кнопку «ОК» невидимой

StringGrid1.rowCount:=st; //задание колличества строк первой матрицы

stringGrid1.ColCount:=col ;//задание колличества столбцов первой матрицы

StringGrid2.rowCount:=col; //задание колличества строк второй матрицы

StringGrid2.ColCount:=st;//задание колличества столбцов второй матрицы

form1.StringGrid1.rowCount:=col ;//задание размерности на главном окне матрицы для показа

form1.StringGrid1.ColCount:=col;//задание размерности на главном окне матрицы для показа

for i:=0 to col-1 do //циклы для запонения матрицы числами

for j:=0 to st-1 do

begin

StringGrid1.Cells[i, j]: = inttostr (random (30)+1);//заполнения первой матрицы

StringGrid2.Cells[j, i]: = inttostr (random (30)+1);//заполнения второй матрицы

end;

Label4.Visible:=true; //сделать надпись видимой

Label5.Visible:=true;//заполнения первой матрицы

StringGrid1.Visible:=true; //сделать матрицу видимой

StringGrid2.Visible:=true;//сделать матрицу видимой

BitBtn1.Visible:=true; //сделать кнопку «подсчитать» видимой

end;

procedure TForm3. BitBtn1Click (Sender: TObject); {процедура перемножения матриц и выведения в главную форму}

var

i, j, k:integer; {объявление переменных}

l:Longint; {объявление переменных}

begin

for i:=0 to col-1 do {цикл от 0 до колличества столбцов, т. к с нуля, отнимаем единицу}

for j:=0 to col-1 do

begin

l:=0; {обнуления переменной для правильного подсчета}

for k:=0 to st-1 do

begin

l:=l+strtoint (StringGrid1.cells[i, k])* strtoint (StringGrid2.cells[k, j]);{перемножения матриц}

form1.StringGrid1.Cells[i, j]: =inttostr (l);{Выведение на блавную форму}

end;

end;

close; {закрытие текущей формы}

form1.StringGrid1.Visible:=true;{Сделать видимый stringGrid на главном окне}

end;

procedure TForm3. UpDown1Changing (Sender: TObject;

var AllowChange: Boolean);

begin

edit1.Text:=IntToStr (UpDown1.Position){Присвоени позиции в edit, для задания размерности}

end;

procedure TForm3. UpDown2Changing (Sender: TObject;

var AllowChange: Boolean);

begin

edit2.Text:=IntToStr (UpDown2.Position){Присвоени позиции в edit, для задания размерности}

end;

end. {конец модуля}

Показать весь текст
Заполнить форму текущей работой