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

Разработка программы для нахождения минимального и максимального элемента массива, вычисления среднего арифметического строк и столбцов транспортирования матриц. Характеристика основных программных средств. Описание программы, руководство пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 26.04.2015
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

4

Размещено на http://www.allbest.ru/

4

Содержание

  • Введение
  • 1. Постановка задачи
  • 1.1 Описание предметной области
  • 1.2 Входная информация
  • 1.3 Постоянная информация
  • 1.4 Входная информация
  • 2. Вычислительная система
  • 2.1 Основные характеристики выбранного ПК
  • 2.2 Характеристика программных средств
  • 2.2.1 Операционная система
  • 2.2.2 Система программирования
  • 3. Описание программы
  • 3.1 Описание компонентов
  • 3.2 Интерфейс программы
  • 3.3 Описание функций
  • 3.3.1 Функции Unit1
  • 3.3.2 Функции Unit2
  • 3.3.3 Функции Unit3
  • 4. Программа тестирования и методика испытаний
  • 4.1 Цель и объект проведения испытаний
  • 4.2 Порядок проведения испытаний
  • 4.3 Протокол испытаний
  • 5. Руководство пользователя
  • Список использованных источников
  • Заключение
  • Приложения

Введение

В курсовом проекте представлена программа которая выполняет не сложные обработки двухмерных массивов. Такие как нахождение минимального и максимального элемента массива, вычисления среднего арифметического строк и столбцов транспортирование матриц. Такая программа может использоваться в образовательных учреждениях, где практикуют С++Builder6 и С++. Для пользователя программа представляет собой комплекс обрабатывающих действий задач производимые над двухмерными целочисленными массивами. Программой без труда может пользоваться даже самый не опытный пользователь компьютера так как интерфейс программы очень простой и пользователь не сможет ошибиться при выполнении какого либо действия. Для ознакомления пользователя с данным ПП к программе прилагается справка которую можно вызывать из любого места программы, она представляет собой справку Windows.

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

1.1 Описание предметной области

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

Функция очистки полей очищает все поля как в матрицах так и результат от выполнениях функций над ними. Так же в программе представлены функции выполнения по очередности выполнения операций над матрицами. Справка приложения детально описывает все возможности программы и работу с ней. Приложения разработано по операционную систему Windows 7 но так же может работать на более новых так же и старых версиях ОС. Для оптимальной работы программы дополнительных модулей, лаунчеров, библиотек приложений, или выхода в локальную сеть интернет не требуется. В программе присутствует функция транспортирования матриц что означает строки заменить на столбцы результаты открываются в новых формах, результат можно сохранить в файл или же ознакомится и закрыть.

1.2 Входная информация

К входной информации можно отнести символы вводимые с клавиатуры пользователем в StringGrid, то есть в матрицу так как программа препятствует вводу всех не желательных элементов то в матрицу можно ввести только значения от 0 до 9 целые числа. Так же матрицу можно заполнить открыв ее из текстового файла. Подтверждение выполнения какой либо операции необходимо осуществлять с помощью нажатия на правую кнопку мыши.

1.3 Постоянная информация

К постоянной информации в данном курсовом проекте относятся формулы расчетов выполняемые с матрицами. Нахождение минимального элемента сравнение двух чисел в результате сравнений наименьшее число присваивается переменной n-первое число матрицы m-второе число матрицы f () - принимающее значение n<m f () =n. Так же и с поиском максимального числа два числа сравниваются какое больше по формуле n>m f () =n.

Расчет среднего арифметического по строке производиться по формуле

f () = (n1+n2+n3+…+nn) / m,

где f () - принимающая значение функция, n-номер элемента, m - количество элементов. То есть для нахождения среднего арифметического числа необходимо сложить все элементы строки и разделить их сумму на их количество. Транспортирование матриц производится по формуле N=M тогда M=N мы меняем местами строки и столбцы.

программа двухмерный массив пользователь

1.4 Входная информация

К выходной информации в данном курсовом проекте относиться вес результаты которые пользователь видит на экране после выполнения функций программы. Далее отнести к выходной информации можно текстовые файлы содержащие матрицы или же результаты выполнений операций над ними.

2. Вычислительная система

2.1 Основные характеристики выбранного ПК

Характеристики ПК наиболее оптимальны для разработки данного курсового проекта поскольку не затрудняют разработку и упрощают задачу:

Microsoft Windows 7 professional;

Service pack 3;

оперативная память 1024 mb;

видеоадаптер 512 mb.

2.2 Характеристика программных средств

2.2.1 Операционная система

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

Существует несколько видов операционных систем: DOS, Windows, UNIX разных версий и другие. Наиболее распространённой является операционная система Windows.

Существует несколько версий Windows: Windows-95, Windows-98, Windows Me,

Windows-2000, Windows XP, Windows Vista, Windows 7.

Данный программный продукт может функционировать практически на любой операционной системе Windows, однако оптимальным решением будет Windows 7.

Поскольку программа разрабатывалась и тестировалась на конкретной ОС.

2.2.2 Система программирования

Программный продукт " " написан в среде программирования С++Builder6.

Borland C++Builder6 - средства разработки приложений под Windows. Достоинство - C++Builder6 это быстрый компилятор, большие возможности для работы с базами данных и большой набор компонентов. Простота, скорость и эффективность C++Builder6 объясняют её популярность. Есть и другие достоинства: простота изучения C++; программы, написанные на C++Builder6i, не требуется снабжать дополнительными библиотеками.

Также C++Builder6 это не только прекрасный инструмент разработки программного обеспечения, но и язык программирования, позволяющий писать как небольшие программы и утилиты персонального использования, так и крупные корпоративные системы, работающие с базами данных на различных платформах.

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

3.1 Описание компонентов

В данной программе имеется 4 формы с различными компонентами. Компоненты каждой формы выполняют свои действия.

Компоненты Form1 представлены в таблице 3.1.

Таблица 3.1 - Компоненты "Form1"

Компонент

Описание

MainMenu1

Служит для формирования главного меню

Btn1

Служит для продолжения работы программы

Btn2

Кнопка служащая для подтверждения размерности

Btn3

Кнопка служащая для ввода случайных чисел

Btn4

Кнопка служащая для поиска макс и мин элементов

Btn5

Кнопка служащая для поиска средне арифметического строк столбцов

Btn6

Кнопка служащая для очистки всех полей и результатов

Timer1

Служит для отображения результатов выбора

Label1

Служит для отображения результат и информации

Label2

Служит для отображения результат и информации

Label3

Служит для отображения результат и информации

Label4

Служит для отображения результат и информации

Label5

Служит для отображения результат и информации

Label6

Служит для отображения результат и информации

Label7

Служит для отображения результат и информации

Label8

Служит для отображения результат и информации

Label9

Служит для отображения результат и информации

Label110

Служит для отображения результат и информации

Label111

Служит для отображения результат и информации

Label112

Служит для отображения результат и информации

Label113

Служит для отображения результат и информации

Label114

Служит для отображения результат и информации

Label115

Служит для отображения результат и информации

OpenDialog1

Служит для открытия файла

SaveDialog1

Служит для сохранения файла

StringGrid1

Служит для отображения матрицы 1

StringGrid2

Служит для отображения матрицы 2

ComboBox1

Служит для выбора размера матрицы

ComboBox2

Служит для выбора размера матрицы

ComboBox3

Служит для выбора размера матрицы

ComboBox4

Служит для выбора размера матрицы

Btn7

Служит для выполнения действия транспортирования матриц

Компоненты Form2 представлены в таблице 3.2.

Таблица 3.2 - Компоненты "Form2"

Компонент

Описание

PopupMenu1

Дополнительное меню

Memo1

Отображение результатов расчетов

PrintDialog1

Служит для вывода на печать результат

SaveDialog1

Сохранение результат расчетов в текстовый файл

Компоненты Form3 представлены в таблице 3.3.

Таблица 3.2 - Компоненты "Form3"

Компоненты

Описание

StringGrid1

Служит для отображения матрицы

PupupMenu1

Служит для создания дополнительного меню

SaveDialog1

Служит для открытия диалогова окна

Компоненты Form4 представлены в таблице 3.4.

Таблица 3.4 - Компоненты "Form4"

Компоненты

Описание

StringGrid1

Служит для отображения матрицы

PupupMenu1

Служит для создания дополнительного меню

SaveDialog1

Служит для открытия диалогова окна

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

Интерфейс программного продукта является понятным для пользователей различной степени и квалификации. При запуске программы на экране откроется главная форма в соответствии с рисунком 3.2.1.

Рисунок 3.2.1 - Главная форма

При нажатии на кнопку Начать работу появится ввод размера массива А и В. В соответствии с рисунком 3.2.2

Рисунок 3.2.2 - Главная форма

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

Рисунок 3.2.3 - Главная форма

При нажатии кнопки файл в системном меню далее открыть из файла А и В массивы появится диалоговое окно в котором мы можем открыть из любого носителя на ПК в соответствии появиться форма как на рисунке 3.2.4 - Главная форма

Рисунок 3.2.4 - Главная форма

После того как открыли файл или продолжали работу на экране появится в соответствии с рисунком 3.2.5 - Главная форма

Рисунок 3.2.4 - Главная форма

При нажатии кнопки найти мин и макс элементы проявится результат в соответствии с рисунком 3.2.6 - Главная форма

Рисунок 3.2.6 - Главная форма

Если пользователь нажмет на кнопку СР ариф появится форма с расчетами как на рисунке 3.2.7 - Вторая форма.

Рисунок 3.2.7 - Вторая форма

После того как все необходимые действия выполнены можно их сохранить нажав на кнопку в системном меню сохранить в соответствии с рисунком 3.2.8 - Вторая форма.

Рисунок 3.2.8 - Вторая форма

При нажатии на кнопку транспортирование матриц мы увидим такое окно как на рисунке 3.2.9.

Рисунок 3.2.9 - Третья форма

3.3 Описание функций

3.3.1 Функции Unit1

Название процедуры

Описание

void __fastcall TForm1:: FormCreate (TObject *Sender)

Действия выполняемые при создания формы

void __fastcall TForm1:: BitBtn1Click (TObject *Sender)

Действие при котором открываются новые компоненты

void __fastcall TForm1:: Timer1Timer (TObject *Sender)

Процедура выполняет проверку на ввод и выводит информацию

void __fastcall TForm1:: BitBtn2Click (TObject *Sender)

Выполняет создание о открытие новых компонентах

void __fastcall TForm1:: BitBtn4Click (TObject *Sender)

Выполняет поиск минимального элемента

void __fastcall TForm1:: BitBtn5Click (TObject *Sender)

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

void __fastcall TForm1:: BitBtn6Click (TObject *Sender)

Выполняет очистку всех полей и массивов так же результатов выполнения

void __fastcall TForm1:: N7Click (TObject *Sender)

Выполняет сохранение в текстовый файл массива

void __fastcall TForm1:: N8Click (TObject *Sender)

Выполняет открытие из текстового файла массива

void __fastcall TForm1:: N6Click (TObject *Sender)

Ввод новых массивов и их размерности

void __fastcall TForm1:: N4Click (TObject *Sender)

Открывает справку

void __fastcall TForm1:: StringGrid1KeyPress (TObject *Sender, char &Key)

Запрещает ввод не нужных символов с клавиатуры StringGrid1

void __fastcall TForm1:: StringGrid2KeyPress (TObject *Sender, char &Key)

Запрещает ввод не нужных символов с клавиатуры StringGrid2

void __fastcall TForm1:: BitBtn7Click (TObject *Sender)

Выполняет действие транспортирование

Unit1-Главный модуль

3.3.2 Функции Unit2

Название процедуры

Описание

void __fastcall TForm2:: FormClose (TObject *Sender, TCloseAction &Action)

Очистка результат

void __fastcall TForm2:: Form1N10Click (TObject *Sender)

Вывод результат на печать с помощью принтера

void __fastcall TForm2:: N1Click (TObject *Sender)

Сохранение результат в файл

Unit2-Дополнительный модуль

3.3.3 Функции Unit3

Название процедуры

Описание

void __fastcall TForm1:: N1Click (TObject *Sender)

Выполняет сохранение в текстовый файл

void __fastcall TForm1:: N2Click (TObject *Sender)

Выполняет закрытия формы

Unit3-Дополнительный модуль

3.3.4 Функции Unit4

Название процедуры

Описание

void __fastcall TForm1:: N1Click (TObject *Sender)

Выполняет сохранение в текстовый файл

void __fastcall TForm1:: N2Click (TObject *Sender)

Выполняет закрытия формы

4. Программа тестирования и методика испытаний

4.1 Цель и объект проведения испытаний

Цель найти ошибки в коде программы, выявить слабые места программы, проверить на оптимальность интерфейса для пользователя при вводе информации которая в дальнейшем будет обрабатываться, на правильность выполнения выполнений функций и методов программы, на универсальность и оптимальность кода программы. Объектом испытаний является программа представленная в данном курсовом проекте.

4.2 Порядок проведения испытаний

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

4.3 Протокол испытаний

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

5. Руководство пользователя

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

Рисунок - 5.1

При этом увидим форму выбора размерности массива при этом мы должны выбрать все N и M то есть количество строк и столбцов и после того как все размерности выбраны появиться кнопка выполнить которая создаст матрицы этих размеров так же массив можно открыть из файла при этом нужно выполнить команду файл открыть из файла и при каждом из этих действий перейдем к форме обработки матрицы как на рисунке 5.3

Рисунок - 5.2

Рисунок - 5.3

Пользователь может приступить к обработке массива ввод массива с клавиатуры рандомам заполнение случайными числами и с файла когда все элементы массива заполнены можно выполнить обработку если же не все то приложение выдаст соответствующую ошибку

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

При этом быстрые кнопки которые выделены выполняют действия сразу с 2 массивами.

При нажатии на кнопку найти мин макс увидим результат как на рисунке 5.4

Рисунок - 5.4

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

Рисунок - 5.5

При выполнении транспортировки матрицы увидим результат в отдельном окне его тоже можно закрыть или сохранить правой кнопкой мыши рисунок 5.6.

Рисунок - 5.6

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

Заключение

Данный программный продукт был разработан в среде программирования С++Builder6, так как эта среда наиболее понятна и проста из известных мне языков программирования.

Эта программа предназначена для более удобной работы c операторами языка C++.

Цель и задача были выполнены.

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

Приложения

Приложение А

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

#include <vcl. h>

#pragma hdrstop

#include "Unit1. h"

#include "Unit2. h"

#include "Unit3. h"

#include "Unit4. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"

TForm1 *Form1;

int i,j;

int h,a;

int **A;

int **B;

int**C;

int k,l;

int n,m;

float arif,sum;

int min,max;

bool d,s;

String str;

String st;

String gh;

String lk;

// ---------------------------------------------------------------------------

__fastcall TForm1:: TForm1 (TComponent* Owner)

: TForm (Owner)

{

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: FormCreate (TObject *Sender)

{

Form1->N1->Enabled=false;

Form1->N2->Enabled=false;

for (i=0; i<30; i++)

{

Form1->ComboBox1->Items->Add (i+1);

Form1->ComboBox2->Items->Add (i+1);

Form1->ComboBox3->Items->Add (i+1);

Form1->ComboBox4->Items->Add (i+1);

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: BitBtn1Click (TObject *Sender)

{

Form1->N1->Enabled=true;

Form1->N7->Enabled=true;

Form1->N8->Enabled=false;

Form1->Label1->Visible=false;

Form1->Label2->Visible=false;

Form1->BitBtn1->Visible=false;

Form1->BitBtn1->Enabled=false;

Form1->Label9->Visible=true;

Form1->Label3->Visible=true;

Form1->Label4->Visible=true;

Form1->Label5->Visible=true;

Form1->Label6->Visible=true;

Form1->Label7->Visible=true;

Form1->Label8->Visible=true;

Form1->ComboBox1->Visible=true;

Form1->ComboBox2->Visible=true;

Form1->ComboBox3->Visible=true;

Form1->ComboBox4->Visible=true;

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: Timer1Timer (TObject *Sender)

{

Form1->Label3->Caption=" = "+Form1->ComboBox1->Text+" x "+Form1->ComboBox2->Text;

Form1->Label4->Caption="Массив B = "+Form1->ComboBox3->Text+" x "+Form1->ComboBox4->Text;

if ( (Form1->ComboBox1->ItemIndex! =-1) && (Form1->ComboBox2->ItemIndex! =-1) && (Form1->ComboBox3->ItemIndex! =-1) && (Form1->ComboBox4->ItemIndex! =-1))

Form1->BitBtn2->Visible=true;

else

Form1->BitBtn2->Visible=false;

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: BitBtn2Click (TObject *Sender)

{

Form1->Timer1->Enabled=false;

n=StrToInt (Form1->ComboBox1->Text);

m=StrToInt (Form1->ComboBox2->Text);

k=StrToInt (Form1->ComboBox3->Text);

l=StrToInt (Form1->ComboBox4->Text);

Form1->Label10->Caption=" = "+Form1->ComboBox1->Text+" x "+Form1->ComboBox2->Text;

Form1->Label11->Caption="Массив B = "+Form1->ComboBox3->Text+" x "+Form1->ComboBox4->Text;

Form1->Label9->Visible=true;

Form1->Label3->Visible=false;

Form1->Label4->Visible=false;

Form1->Label5->Visible=false;

Form1->Label6->Visible=false;

Form1->Label7->Visible=false;

Form1->Label8->Visible=false;

Form1->Label9->Visible=false;

// Form1->BitBtn2->Enabled=false;

Form1->ComboBox1->Visible=false;

Form1->ComboBox2->Visible=false;

Form1->ComboBox3->Visible=false;

Form1->ComboBox4->Visible=false;

Form1->StringGrid1->Visible=true;

Form1->StringGrid2->Visible=true;

Form1->Label10->Visible=true;

Form1->Label11->Visible=true;

Form1->Button1->Visible=true;

Form1->BitBtn2->Visible=false;

Form1->StringGrid1->ColCount=m+1;

Form1->StringGrid1->RowCount=n+1;

Form1->StringGrid2->ColCount=l+1;

Form1->StringGrid2->RowCount=k+1;

Form1->StringGrid1->Cells [0] [0] ="i / j";

Form1->StringGrid2->Cells [0] [0] ="i / j";

Form1->StringGrid1->FixedCols=1;

Form1->StringGrid1->FixedRows=1;

Form1->StringGrid2->FixedCols=1;

Form1->StringGrid2->FixedRows=1;

Form1->BitBtn6->Visible=true;

for (i=1; i<n+1; i++)

{

Form1->StringGrid1->Cells [0] [i] =StrToInt (i);

}

for (j=1; j<m+1; j++)

{

Form1->StringGrid1->Cells [j] [0] =StrToInt (j);

}

for (i=1; i<k+1; i++)

{

Form1->StringGrid2->Cells [0] [i] =StrToInt (i);

}

for (j=1; j<l+1; j++)

{

Form1->StringGrid2->Cells [j] [0] =StrToInt (j);

}

Form1->N7->Enabled=false;

Form1->N8->Enabled=true;

Form1->N2->Enabled=true;

Form1->BitBtn3->Visible=true;

Form1->BitBtn4->Visible=true;

Form1->BitBtn5->Visible=true;

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: BitBtn4Click (TObject *Sender)

{

d=false;

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

B= (int**) calloc (k,sizeof (int*));

for (j=0; j<k; j++)

B [j] = (int*) calloc (l,sizeof (int));

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (Form1->StringGrid1->Cells [j+1] [i+1] =="")

d=true;

}

if (d==false)

{

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =StrToInt (Form1->StringGrid1->Cells [j+1] [i+1]);

}

min=A [0] [0];

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (A [i] [j] <min)

min=A [i] [j];

}

Form1->Label12->Visible=true;

Form1->Label12->Caption="Минемальное число = "+IntToStr (min);

}

else

{

ShowMessage ("");

}

// -----------------------------------------------------------------------

s=false;

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

s=true;;

}

// /*

if (s==false)

{

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

min=B [0] [0];

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (B [i] [j] <min)

min=B [i] [j];

}

Form1->Label13->Visible=true;

Form1->Label13->Caption="B = "+IntToStr (min);

}

else

{

ShowMessage ("B");

}

// -------------------------------------------------------------------------

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (Form1->StringGrid1->Cells [j+1] [i+1] =="")

d=true;

}

if (d==false)

{

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =StrToInt (Form1->StringGrid1->Cells [j+1] [i+1]);

}

max=A [0] [0];

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (A [i] [j] >max)

max=A [i] [j];

}

Form1->Label14->Visible=true;

Form1->Label14->Caption=" = "+IntToStr (max);

}

// -----------------------------------------------------------------------

s=false;

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

s=true;;

}

// /*

if (s==false)

{

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

max=B [0] [0];

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (B [i] [j] >max)

max=B [i] [j];

}

Form1->Label15->Visible=true;

Form1->Label15->Caption=" B = "+IntToStr (max);

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: BitBtn6Click (TObject *Sender)

{

Form2->Memo1->Lines->Clear ();

for (i=1; i<n+1; i++)

for (j=1; j<m+1; j++)

{

Form1->StringGrid1->Cells [j] [i] ="";

}

for (i=1; i<k+1; i++)

for (j=1; j<l+1; j++)

{

Form1->StringGrid2->Cells [j] [i] ="";

}

Form1->Label12->Caption="";

Form1->Label13->Caption="";

Form1->Label14->Caption="";

Form1->Label15->Caption="";

Form1->Label12->Visible=false;

Form1->Label13->Visible=false;

Form1->Label14->Visible=false;

Form1->Label15->Visible=false;

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N17Click (TObject *Sender)

{

d=false;

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

B= (int**) calloc (k,sizeof (int*));

for (j=0; j<k; j++)

B [j] = (int*) calloc (l,sizeof (int));

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (Form1->StringGrid1->Cells [j+1] [i+1] =="")

d=true;

}

if (d==false)

{

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =StrToInt (Form1->StringGrid1->Cells [j+1] [i+1]);

}

min=A [0] [0];

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (A [i] [j] <min)

min=A [i] [j];

}

Form1->Label12->Visible=true;

Form1->Label12->Caption=" = "+IntToStr (min);

}

else

{

ShowMessage ("");

}

// -----------------------------------------------------------------------

s=false;

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

s=true;;

}

// /*

if (s==false)

{

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

min=B [0] [0];

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (B [i] [j] <min)

min=B [i] [j];

}

Form1->Label13->Visible=true;

Form1->Label13->Caption=" B = "+IntToStr (min);

}

else

{

ShowMessage ("B");

}

// -------------------------------------------------------------------------

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (Form1->StringGrid1->Cells [j+1] [i+1] =="")

d=true;

}

if (d==false)

{

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =StrToInt (Form1->StringGrid1->Cells [j+1] [i+1]);

}

max=A [0] [0];

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (A [i] [j] >max)

max=A [i] [j];

}

Form1->Label14->Visible=true;

Form1->Label14->Caption=" = "+IntToStr (max);

}

// -----------------------------------------------------------------------

s=false;

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

s=true;;

}

if (s==false)

{

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

max=B [0] [0];

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (B [i] [j] >max)

max=B [i] [j];

}

Form1->Label15->Visible=true;

Form1->Label15->Caption="B = "+IntToStr (max);

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N18Click (TObject *Sender)

{

d=false;

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (Form1->StringGrid1->Cells [j+1] [i+1] =="")

d=true;

}

if (d==false)

{

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =StrToInt (Form1->StringGrid1->Cells [j+1] [i+1]);

}

min=A [0] [0];

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (A [i] [j] <min)

min=A [i] [j];

}

max=A [0] [0];

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (A [i] [j] >max)

max=A [i] [j];

}

Form1->Label14->Visible=true;

Form1->Label14->Caption="= "+IntToStr (max);

Form1->Label12->Visible=true;

Form1->Label12->Caption=" = "+IntToStr (min);

}

else

{

ShowMessage ("");

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: inMax1Click (TObject *Sender)

{

B= (int**) calloc (k,sizeof (int*));

for (j=0; j<k; j++)

B [j] = (int*) calloc (l,sizeof (int));

s=false;

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

s=true;;

}

// /*

if (s==false)

{

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

min=B [0] [0];

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (B [i] [j] <min)

min=B [i] [j];

}

Form1->Label13->Visible=true;

Form1->Label13->Caption=" B = "+IntToStr (min);

}

else

{

ShowMessage ("B");

}

s=false;

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

s=true;;

}

if (s==false)

{

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

max=B [0] [0];

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (B [i] [j] >max)

max=B [i] [j];

}

Form1->Label15->Visible=true;

Form1->Label15->Caption=" B = "+IntToStr (max);

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: BitBtn5Click (TObject *Sender)

{

Form2->Memo1->Lines->Clear ();

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

B= (int**) calloc (k,sizeof (int*));

for (j=0; j<k; j++)

B [j] = (int*) calloc (l,sizeof (int));

// ------------------------------------------------------------------------

s=false;

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (Form1->StringGrid1->Cells [j+1] [i+1] =="")

s=true;;

}

if (s==false)

{

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =StrToInt (Form1->StringGrid1->Cells [j+1] [i+1]);

}

Form2->Memo1->Lines->Add ("");

Form2->Memo1->Lines->Add ("");

for (i=0; i<n; i++)

{

sum=0;

for (j=0; j<m; j++)

sum+=A [i] [j];

sum=sum/m;

Form2->Memo1->Lines->Add (""+IntToStr (i+1) +"= "+FloatToStr (sum));

}

Form2->Memo1->Lines->Add (" // -------------------------------");

Form2->Memo1->Lines->Add ("");

for (j=0; j<m; j++)

{

sum=0;

for (i=0; i<n; i++)

sum+=A [i] [j];

sum=sum/n;

Form2->Memo1->Lines->Add (""+IntToStr (j+1) = "+FloatToStr (sum));

}

}

else

{

ShowMessage ("A");

}

// --------------------------------------------------------------------------------

Form2->Memo1->Lines->Add (" ");

Form2->Memo1->Lines->Add ("Массив В");

Form2->Memo1->Lines->Add ("Cтроки");

d=false;

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

d=true;

}

if (d==false)

{

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

for (i=0; i<k; i++)

{

sum=0;

for (j=0; j<l; j++)

sum+=B [i] [j];

sum=sum/l;

Form2->Memo1->Lines->Add (""+IntToStr (i+1) +"= "+FloatToStr (sum));

}

Form2->Memo1->Lines->Add (" // ----------------------------------------------");

Form2->Memo1->Lines->Add ("");

for (j=0; j<l; j++)

{

sum=0;

for (i=0; i<k; i++)

sum+=B [i] [j];

sum=sum/n;

Form2->Memo1->Lines->Add ("№"+IntToStr (j+1) +"= "+FloatToStr (sum));

}

}

else

{

ShowMessage ("B");

}

if ( (s==false) && (d==false))

Form2->Show ();

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N16Click (TObject *Sender)

{

Form2->Memo1->Lines->Clear ();

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

B= (int**) calloc (k,sizeof (int*));

for (j=0; j<k; j++)

B [j] = (int*) calloc (l,sizeof (int));

// ------------------------------------------------------------------------

s=false;

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (Form1->StringGrid1->Cells [j+1] [i+1] =="")

s=true;;

}

if (s==false)

{

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =StrToInt (Form1->StringGrid1->Cells [j+1] [i+1]);

}

Form2->Memo1->Lines->Add ("");

Form2->Memo1->Lines->Add ("");

for (i=0; i<n; i++)

{

sum=0;

for (j=0; j<m; j++)

sum+=A [i] [j];

sum=sum/m;

Form2->Memo1->Lines->Add (""+IntToStr (i+1) +"= "+FloatToStr (sum));

}

Form2->Memo1->Lines->Add (" // -------------------------------");

Form2->Memo1->Lines->Add ("Столбцы");

for (j=0; j<m; j++)

{

sum=0;

for (i=0; i<n; i++)

sum+=A [i] [j];

sum=sum/n;

Form2->Memo1->Lines->Add ("№"+IntToStr (j+1) +"= "+FloatToStr (sum));

}

}

else

{

ShowMessage ("A");

}

// --------------------------------------------------------------------------------

Form2->Memo1->Lines->Add (" ");

Form2->Memo1->Lines->Add ("");

Form2->Memo1->Lines->Add ("");

d=false;

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

d=true;

}

if (d==false)

{

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

for (i=0; i<k; i++)

{

sum=0;

for (j=0; j<l; j++)

sum+=B [i] [j];

sum=sum/l;

Form2->Memo1->Lines->Add (""+IntToStr (i+1) +" = "+FloatToStr (sum));

}

Form2->Memo1->Lines->Add (" // ---------------------------------------------------------------------");

Form2->Memo1->Lines->Add ("");

for (j=0; j<l; j++)

{

sum=0;

for (i=0; i<k; i++)

sum+=B [i] [j];

sum=sum/n;

Form2->Memo1->Lines->Add ("№"+IntToStr (j+1) +" = "+FloatToStr (sum));

}

}

else

{

ShowMessage ("B");

}

if ( (s==false) && (d==false))

Form2->Show ();

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N14Click (TObject *Sender)

{

Form2->Memo1->Lines->Clear ();

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

s=false;

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (Form1->StringGrid1->Cells [j+1] [i+1] =="")

s=true;;

}

if (s==false)

{

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =StrToInt (Form1->StringGrid1->Cells [j+1] [i+1]);

}

Form2->Memo1->Lines->Add ("");

Form2->Memo1->Lines->Add ("");

for (i=0; i<n; i++)

{

sum=0;

for (j=0; j<m; j++)

sum+=A [i] [j];

sum=sum/m;

Form2->Memo1->Lines->Add (""+IntToStr (i+1) +" = "+FloatToStr (sum));

}

Form2->Memo1->Lines->Add (" // -------------------------------");

Form2->Memo1->Lines->Add ("");

for (j=0; j<m; j++)

{

sum=0;

for (i=0; i<n; i++)

sum+=A [i] [j];

sum=sum/n;

Form2->Memo1->Lines->Add ("№"+IntToStr (j+1) +" = "+FloatToStr (sum));

}

Form2->Show ();

}

else

{

ShowMessage ("A");

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N15Click (TObject *Sender)

{

Form2->Memo1->Lines->Clear ();

B= (int**) calloc (k,sizeof (int*));

for (j=0; j<k; j++)

B [j] = (int*) calloc (l,sizeof (int));

Form2->Memo1->Lines->Add ("");

Form2->Memo1->Lines->Add ("");

d=false;

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

d=true;

}

if (d==false)

{

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

for (i=0; i<k; i++)

{

sum=0;

for (j=0; j<l; j++)

sum+=B [i] [j];

sum=sum/l;

Form2->Memo1->Lines->Add (""+IntToStr (i+1) +"= "+FloatToStr (sum));

}

Form2->Memo1->Lines->Add (" // ----------------------------------------------");

Form2->Memo1->Lines->Add ("");

for (j=0; j<l; j++)

{

sum=0;

for (i=0; i<k; i++)

sum+=B [i] [j];

sum=sum/n;

Form2->Memo1->Lines->Add ("№"+IntToStr (j+1) +" = "+FloatToStr (sum));

}

Form2->Show ();

}

else

{

ShowMessage ("B");

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N5Click (TObject *Sender)

{

Form2->Memo1->Lines->Clear ();

for (i=1; i<n+1; i++)

for (j=1; j<m+1; j++)

{

Form1->StringGrid1->Cells [j] [i] ="";

}

for (i=1; i<k+1; i++)

for (j=1; j<l+1; j++)

{

Form1->StringGrid2->Cells [j] [i] ="";

}

Form1->Label12->Caption="";

Form1->Label13->Caption="";

Form1->Label14->Caption="";

Form1->Label15->Caption="";

Form1->Label12->Visible=false;

Form1->Label13->Visible=false;

Form1->Label14->Visible=false;

Form1->Label15->Visible=false;

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: BitBtn3Click (TObject *Sender)

{

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =rand () %100;

}

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

Form1->StringGrid1->Cells [j+1] [i+1] =IntToStr (A [i] [j]);

}

B= (int**) calloc (k,sizeof (int*));

for (i=0; i<k; i++)

B [i] = (int*) calloc (l,sizeof (int));

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =rand () %100;

}

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

Form1->StringGrid2->Cells [j+1] [i+1] =IntToStr (B [i] [j]);

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N9Click (TObject *Sender)

{

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =rand () %100;

}

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

Form1->StringGrid1->Cells [j+1] [i+1] =IntToStr (A [i] [j]);

}

B= (int**) calloc (k,sizeof (int*));

for (i=0; i<k; i++)

B [i] = (int*) calloc (l,sizeof (int));

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =rand () %100;

}

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

Form1->StringGrid2->Cells [j+1] [i+1] =IntToStr (B [i] [j]);

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N13Click (TObject *Sender)

{

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =rand () %10;

}

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

Form1->StringGrid1->Cells [j+1] [i+1] =IntToStr (A [i] [j]);

}

B= (int**) calloc (k,sizeof (int*));

for (i=0; i<k; i++)

B [i] = (int*) calloc (l,sizeof (int));

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =rand () %10;

}

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

Form1->StringGrid2->Cells [j+1] [i+1] =IntToStr (B [i] [j]);

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N12Click (TObject *Sender)

{

B= (int**) calloc (k,sizeof (int*));

for (i=0; i<k; i++)

B [i] = (int*) calloc (l,sizeof (int));

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =rand () %10;

}

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

Form1->StringGrid2->Cells [j+1] [i+1] =IntToStr (B [i] [j]);

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N11Click (TObject *Sender)

{

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =rand () %10;

}

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

Form1->StringGrid1->Cells [j+1] [i+1] =IntToStr (A [i] [j]);

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N6Click (TObject *Sender)

{

Form1->ComboBox1->ItemIndex=-1;

Form1->ComboBox2->ItemIndex=-1;

Form1->ComboBox3->ItemIndex=-1;

Form1->ComboBox4->ItemIndex=-1;

Form1->Timer1->Enabled=true;

Form1->Button1->Visible=false;

Form2->Close ();

Form2->Memo1->Lines->Clear ();

for (i=1; i<n+1; i++)

for (j=1; j<m+1; j++)

{

Form1->StringGrid1->Cells [j] [i] ="";

}

for (i=1; i<k+1; i++)

for (j=1; j<l+1; j++)

{

Form1->StringGrid2->Cells [j] [i] ="";

}

Form1->Label12->Caption="";

Form1->Label13->Caption="";

Form1->Label14->Caption="";

Form1->Label15->Caption="";

Form1->Label12->Visible=false;

Form1->Label13->Visible=false;

Form1->Label14->Visible=false;

Form1->Label15->Visible=false;

Form1->BitBtn3->Visible=false;

Form1->BitBtn4->Visible=false;

Form1->BitBtn5->Visible=false;

Form1->BitBtn6->Visible=false;

Form1->StringGrid1->Visible=false;

Form1->StringGrid2->Visible=false;

Form1->Label10->Visible=false;

Form1->Label11->Visible=false;

Form1->N8->Enabled=false;

Form1->N2->Enabled=false;

Form1->N7->Enabled=true;

Form1->BitBtn2->Visible=true;

Form1->ComboBox1->Visible=true;

Form1->ComboBox2->Visible=true;

Form1->ComboBox3->Visible=true;

Form1->ComboBox4->Visible=true;

Form1->Label13->Visible=true;

Form1->Label14->Visible=true;

Form1->Label9->Visible=true;

Form1->Label3->Visible=true;

Form1->Label4->Visible=true;

Form1->Label5->Visible=true;

Form1->Label6->Visible=true;

Form1->Label7->Visible=true;

Form1->Label8->Visible=true;

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: StringGrid1KeyPress (TObject *Sender, char &Key)

{

if (Key=='! ') Key=0;

if (Key=='~') Key=0;

if (Key=='@') Key=0;

if (Key=='#') Key=0;

if (Key=='$') Key=0;

if (Key=='%') Key=0;

if (Key=='^') Key=0;

if (Key=='&') Key=0;

if (Key=='*') Key=0;

if (Key==' (') Key=0;

if (Key==') ') Key=0;

if (Key=='-') Key=0;

if (Key=='_') Key=0;

if (Key=='=') Key=0;

if (Key=='+') Key=0;

if (Key=='"') Key=0;

if (Key=='№') Key=0;

if (Key=='; ') Key=0;

if (Key==': ') Key=0;

if (Key=='? ') Key=0;

if (Key=='{') Key=0;

if (Key=='}') Key=0;

if (Key==' [') Key=0;

if (Key=='] ') Key=0;

if (Key==' ') Key=0;

if (Key==',') Key=0;

if (Key=='. ') Key=0;

if (Key=='<') Key=0;

if (Key=='>') Key=0;

if (Key=='/') Key=0;

if (Key=='|') Key=0;

if (Key=='/') Key=0;

if (Key=='й') Key=0;

if (Key=='ц') Key=0;

if (Key=='у') Key=0;

if (Key=='к') Key=0;

if (Key=='е') Key=0;

if (Key=='н') Key=0;

if (Key=='г') Key=0;

if (Key=='ш') Key=0;

if (Key=='щ') Key=0;

if (Key=='з') Key=0;

if (Key=='х') Key=0;

if (Key=='ъ') Key=0;

if (Key=='ё') Key=0;

if (Key=='ф') Key=0;

if (Key=='ы') Key=0;

if (Key=='в') Key=0;

if (Key=='а') Key=0;

if (Key=='п') Key=0;

if (Key=='р') Key=0;

if (Key=='о') Key=0;

if (Key=='л') Key=0;

if (Key=='д') Key=0;

if (Key=='ж') Key=0;

if (Key=='э') Key=0;

if (Key=='я') Key=0;

if (Key=='ч') Key=0;

if (Key=='с') Key=0;

if (Key=='м') Key=0;

if (Key=='и') Key=0;

if (Key=='т') Key=0;

if (Key=='ь') Key=0;

if (Key=='б') Key=0;

if (Key=='ю') Key=0;

if (Key=='Ё') Key=0;

if (Key=='Й') Key=0;

if (Key=='Ц') Key=0;

if (Key=='У') Key=0;

if (Key=='К') Key=0;

if (Key=='Е') Key=0;

if (Key=='Н') Key=0;

if (Key=='Г') Key=0;

if (Key=='Ш') Key=0;

if (Key=='Щ') Key=0;

if (Key=='Х') Key=0;

if (Key=='Ъ') Key=0;

if (Key=='Ф') Key=0;

if (Key=='Ы') Key=0;

if (Key=='В') Key=0;

if (Key=='А') Key=0;

if (Key=='П') Key=0;

if (Key=='Р') Key=0;

if (Key=='О') Key=0;

if (Key=='Л') Key=0;

if (Key=='Д') Key=0;

if (Key=='Ж') Key=0;

if (Key=='Э') Key=0;

if (Key=='Я') Key=0;

if (Key=='Ч') Key=0;

if (Key=='С') Key=0;

if (Key=='М') Key=0;

if (Key=='И') Key=0;

if (Key=='Т') Key=0;

if (Key=='Ь') Key=0;

if (Key=='Б') Key=0;

if (Key=='Ю') Key=0;

if (Key=='q') Key=0;

if (Key=='w') Key=0;

if (Key=='e') Key=0;

if (Key=='r') Key=0;

if (Key=='t') Key=0;

if (Key=='y') Key=0;

if (Key=='u') Key=0;

if (Key=='i') Key=0;

if (Key=='o') Key=0;

if (Key=='p') Key=0;

if (Key=='a') Key=0;

if (Key=='s') Key=0;

if (Key=='d') Key=0;

if (Key=='f') Key=0;

if (Key=='g') Key=0;

if (Key=='h') Key=0;

if (Key=='j') Key=0;

if (Key=='k') Key=0;

if (Key=='l') Key=0;

if (Key=='z') Key=0;

if (Key=='x') Key=0;

if (Key=='c') Key=0;

if (Key=='v') Key=0;

if (Key=='b') Key=0;

if (Key=='n') Key=0;

if (Key=='m') Key=0;

if (Key=='Q') Key=0;

if (Key=='W') Key=0;

if (Key=='E') Key=0;

if (Key=='R') Key=0;

if (Key=='T') Key=0;

if (Key=='Y') Key=0;

if (Key=='U') Key=0;

if (Key=='I') Key=0;

if (Key=='O') Key=0;

if (Key=='P') Key=0;

if (Key=='A') Key=0;

if (Key=='S') Key=0;

if (Key=='D') Key=0;

if (Key=='F') Key=0;

if (Key=='G') Key=0;

if (Key=='H') Key=0;

if (Key=='J') Key=0;

if (Key=='K') Key=0;

if (Key=='L') Key=0;

if (Key=='Z') Key=0;

if (Key=='X') Key=0;

if (Key=='C') Key=0;

if (Key=='V') Key=0;

if (Key=='B') Key=0;

if (Key=='N') Key=0;

if (Key=='M') Key=0;

if (Key=='З') Key=0;

if (Key=='`') Key=0;

if (Key=='\'') Key=0;

if (Key=='\\') Key=0;

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: StringGrid2KeyPress (TObject *Sender, char &Key)

{

if (Key=='\\') Key=0;

if (Key=='\'') Key=0;

if (Key=='! ') Key=0;

if (Key=='~') Key=0;

if (Key=='@') Key=0;

if (Key=='#') Key=0;

if (Key=='$') Key=0;

if (Key=='%') Key=0;

if (Key=='^') Key=0;

if (Key=='&') Key=0;

if (Key=='*') Key=0;

if (Key==' (') Key=0;

if (Key==') ') Key=0;

if (Key=='-') Key=0;

if (Key=='_') Key=0;

if (Key=='=') Key=0;

if (Key=='+') Key=0;

if (Key=='"') Key=0;

if (Key=='№') Key=0;

if (Key=='; ') Key=0;

if (Key==': ') Key=0;

if (Key=='? ') Key=0;

if (Key=='{') Key=0;

if (Key=='}') Key=0;

if (Key==' [') Key=0;

if (Key=='] ') Key=0;

if (Key==' ') Key=0;

if (Key==',') Key=0;

if (Key=='. ') Key=0;

if (Key=='<') Key=0;

if (Key=='>') Key=0;

if (Key=='/') Key=0;

if (Key=='|') Key=0;

if (Key=='/') Key=0;

if (Key=='й') Key=0;

if (Key=='ц') Key=0;

if (Key=='у') Key=0;

if (Key=='к') Key=0;

if (Key=='е') Key=0;

if (Key=='н') Key=0;

if (Key=='г') Key=0;

if (Key=='ш') Key=0;

if (Key=='щ') Key=0;

if (Key=='з') Key=0;

if (Key=='х') Key=0;

if (Key=='ъ') Key=0;

if (Key=='ё') Key=0;

if (Key=='ф') Key=0;

if (Key=='ы') Key=0;

if (Key=='в') Key=0;

if (Key=='а') Key=0;

if (Key=='п') Key=0;

if (Key=='р') Key=0;

if (Key=='о') Key=0;

if (Key=='л') Key=0;

if (Key=='д') Key=0;

if (Key=='ж') Key=0;

if (Key=='э') Key=0;

if (Key=='я') Key=0;

if (Key=='ч') Key=0;

if (Key=='с') Key=0;

if (Key=='м') Key=0;

if (Key=='и') Key=0;

if (Key=='т') Key=0;

if (Key=='ь') Key=0;

if (Key=='б') Key=0;

if (Key=='ю') Key=0;

if (Key=='Ё') Key=0;

if (Key=='Й') Key=0;

if (Key=='Ц') Key=0;

if (Key=='У') Key=0;

if (Key=='К') Key=0;

if (Key=='Е') Key=0;

if (Key=='Н') Key=0;

if (Key=='Г') Key=0;

if (Key=='Ш') Key=0;

if (Key=='Щ') Key=0;

if (Key=='Х') Key=0;

if (Key=='Ъ') Key=0;

if (Key=='Ф') Key=0;

if (Key=='Ы') Key=0;

if (Key=='В') Key=0;

if (Key=='А') Key=0;

if (Key=='П') Key=0;

if (Key=='Р') Key=0;

if (Key=='О') Key=0;

if (Key=='Л') Key=0;

if (Key=='Д') Key=0;

if (Key=='Ж') Key=0;

if (Key=='Э') Key=0;

if (Key=='Я') Key=0;

if (Key=='Ч') Key=0;

if (Key=='С') Key=0;

if (Key=='М') Key=0;

if (Key=='И') Key=0;

if (Key=='Т') Key=0;

if (Key=='Ь') Key=0;

if (Key=='Б') Key=0;

if (Key=='Ю') Key=0;

if (Key=='q') Key=0;

if (Key=='w') Key=0;

if (Key=='e') Key=0;

if (Key=='r') Key=0;

if (Key=='t') Key=0;

if (Key=='y') Key=0;

if (Key=='u') Key=0;

if (Key=='i') Key=0;

if (Key=='o') Key=0;

if (Key=='p') Key=0;

if (Key=='a') Key=0;

if (Key=='s') Key=0;

if (Key=='d') Key=0;

if (Key=='f') Key=0;

if (Key=='g') Key=0;

if (Key=='h') Key=0;

if (Key=='j') Key=0;

if (Key=='k') Key=0;

if (Key=='l') Key=0;

if (Key=='z') Key=0;

if (Key=='x') Key=0;

if (Key=='c') Key=0;

if (Key=='v') Key=0;

if (Key=='b') Key=0;

if (Key=='n') Key=0;

if (Key=='m') Key=0;

if (Key=='Q') Key=0;

if (Key=='W') Key=0;

if (Key=='E') Key=0;

if (Key=='R') Key=0;

if (Key=='T') Key=0;

if (Key=='Y') Key=0;

if (Key=='U') Key=0;

if (Key=='I') Key=0;

if (Key=='O') Key=0;

if (Key=='P') Key=0;

if (Key=='A') Key=0;

if (Key=='S') Key=0;

if (Key=='D') Key=0;

if (Key=='F') Key=0;

if (Key=='G') Key=0;

if (Key=='H') Key=0;

if (Key=='J') Key=0;

if (Key=='K') Key=0;

if (Key=='L') Key=0;

if (Key=='Z') Key=0;

if (Key=='X') Key=0;

if (Key=='C') Key=0;

if (Key=='V') Key=0;

if (Key=='B') Key=0;

if (Key=='N') Key=0;

if (Key=='M') Key=0;

if (Key=='З') Key=0;

if (Key=='`') Key=0;

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: N8Click (TObject *Sender)

{

d=false;

s=false;

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (Form1->StringGrid1->Cells [j+1] [i+1] =="")

d=true;

}

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

if (Form1->StringGrid2->Cells [j+1] [i+1] =="")

s=true;

}

if ( (s==false) && (d==false))

{

A= (int**) calloc (n,sizeof (int*));

for (i=0; i<n; i++)

A [i] = (int*) calloc (m,sizeof (int));

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

A [i] [j] =StrToInt (Form1->StringGrid1->Cells [j+1] [i+1]);

}

B= (int**) calloc (k,sizeof (int*));

for (i=0; i<k; i++)

B [i] = (int*) calloc (l,sizeof (int));

for (i=0; i<k; i++)

for (j=0; j<l; j++)

{

B [i] [j] =StrToInt (Form1->StringGrid2->Cells [j+1] [i+1]);

}

if (Form1->SaveDialog1->Execute ())

{

TStringList*File=new TStringList;

File->Add (Form1->ComboBox1->Text);

File->Add (Form1->ComboBox2->Text);

for (i=0; i<n; i++)

for (j=0; j<m; j++)

File->Add (A [i] [j]);

File->Add (Form1->ComboBox3->Text);

File->Add (Form1->ComboBox4->Text);

for (i=0; i<k; i++)

for (j=0; j<l; j++)

File->Add (B [i] [j]);

File->SaveToFile (Form1->SaveDialog1->FileName+". txt");

}

else

{

return;

}

}

else

{

ShowMessage ("");

return;


Подобные документы

  • Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.

    контрольная работа [1,0 M], добавлен 30.04.2013

  • Вектор и матрица с числовыми компонентами как математические прообразы массивов. Создание программы, содержащей процедуры для выполнения заданных операций: построение массива, перестановка строк и столбцов. Использование диалоговых окон "уведомлений".

    курсовая работа [1,3 M], добавлен 15.02.2011

  • Практическое использование алгоритмов для нахождения минимального пути в лабиринте. Разработка программы на языке С++ и в среде Visual C++. Основные способы поиска пути: метод волны и приоритетов. Описание разработанных функций и инструкция пользователя.

    дипломная работа [54,3 K], добавлен 16.03.2012

  • Разработка программы на языке Turbo Pascal, обеспечивающей работу пользователя в диалоговом режиме с возможностью выбора функций с помощью одноуровневого меню вертикального типа. Блок-схема и листинг программы, описание руководства пользователя.

    курсовая работа [1,5 M], добавлен 17.03.2014

  • Определение необходимых модулей программы, структуры файла базы данных. Описание разработки программы, отладка и тестирование. Разработка приложения Organizer.exe, меню и руководство пользователя. Алгоритм обработки событий главного меню (расписания).

    курсовая работа [901,8 K], добавлен 11.02.2014

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

    презентация [139,0 K], добавлен 24.01.2014

  • Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.

    лабораторная работа [12,8 K], добавлен 02.12.2014

  • Создание программы для мобильного устройства, для решения геометрических задач: нахождения площади треугольника по формуле Герона, площади прямоугольного треугольника и круга. Реализация программных модулей, интерфейс программы, руководство пользователя.

    курсовая работа [314,9 K], добавлен 07.12.2014

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

    курсовая работа [421,6 K], добавлен 27.06.2015

  • Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.

    курсовая работа [115,5 K], добавлен 22.05.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.