Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Методические указания. 1. Исходные данные должны включать и положительные числа и отрицательные и нули.






1. Исходные данные должны включать и положительные числа и отрицательные и нули.

2. Напомним некоторые свойства матриц:

- если номер строки элемента совпадает с номером столбца (i=j), это означает, что элемент лежит на главной диагонали матрицы;

- элемент находится ниже главной диагонали, если номер строки превышает номер столбца (i> j);

- если номер столбца больше номера строки (i< j), то элемент нохлдится выше главной диагонали;

- элемент лежит на побочной диагонали, если его индексы удовлетворяют равенству

i + j -1 = n;

- неравенство i + j -1 < n характерно для элемента, находящегося выше побочной диагонали;

- соответственно, элементу, лежащему ниже побочной диагонали, соответствует выражение i + j -1 > n.

3. Пример программы. Дана целочисленная матрица размера n на m. Найти минимальный и максимальный элементы матрицы, сумму элементов и сумму цифр элементов главной диагонали матрицы (рисунок 28).

4. Для подключения генератора случайных чисел необходимо подключить файл < stdlib.h>

Произвести инициализацию массива при щелчке на кнопке заполнить.

4. Для вывода двумерного массива удобно использовать табличную форму StrigGrid страницы Additional. Для того чтобы установить свойство Options-> goEditing в значение True (признак допустимости редактирования содержимого ячеек таблицы), необходмсо нажать на маленький плюс, расположенный справа от свойства Options.

5.

Рисунок 28. Компоненты формы приложения

 

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

#include < vcl.h>

#pragma hdrstop

 

#include " Unit1.h"

#include < stdlib.h>

#include < math.h>

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

#pragma package(smart_init)

#pragma resource " *.dfm"

TForm1 *Form1;

int i, j, n, m;

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

__fastcall TForm1:: TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm1:: FormCreate(TObject *Sender)

{

randomize();

 

}

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

void __fastcall TForm1:: Edit1Change(TObject *Sender)

{ // чтение количества строк матрицы

n=StrToInt(Edit1-> Text)+1;

StringGrid1-> RowCount= n;

}

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

 

void __fastcall TForm1:: Edit2Change(TObject *Sender)

{ // чтение количества столбцов матрицы

m=StrToInt(Edit2-> Text)+1;

StringGrid1-> ColCount= m;

}

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

 

void __fastcall TForm1:: Button1Click(TObject *Sender)

{ //нумерация строк матрицы

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

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

//нумерация столбцов матрицы

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

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

//заполнение матрицы двухзначными случайными числами

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

StringGrid1-> Cells[i][j]=IntToStr(rand () % 99 - 25);

}

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

void __fastcall TForm1:: Button2Click(TObject *Sender)

{

int min, max, sum, s, k;

// нахождение минимального элемента матрицы

if (CheckBox1-> Checked) {

min=StrToInt(StringGrid1-> Cells[1][1]);

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

if (StrToInt(StringGrid1-> Cells[i][j])< min)

min=StrToInt(StringGrid1-> Cells[i][j]);

Edit3-> Text=IntToStr(min); //вывод результата на форму приложения

} else Edit3-> Text= " "; //очистка компоненты

// нахождение максимального элемента матрицы

if (CheckBox2-> Checked) {

max=StrToInt(StringGrid1-> Cells[1][1]);

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

if (StrToInt(StringGrid1-> Cells[i][j])> max)

max=StrToInt(StringGrid1-> Cells[i][j]);

Edit4-> Text=IntToStr(max); //вывод результата на форму приложения

} else Edit4-> Text= " "; //очистка компоненты

// подсчет суммы элементов главной диагонали матрицы.

if (CheckBox3-> Checked) {

sum=0;

if (n> m) k=m; else k=n;

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

sum=sum+StrToInt(StringGrid1-> Cells[j][j]);

Edit5-> Text=IntToStr(sum); //вывод результата на форму приложения

}

else Edit5-> Text= " "; //очистка компоненты

// определение суммы цифр элементов главной диагонали матрицы.

if (RadioButton1-> Checked) {

sum=0;

if (n> m) k=m; else k=n;

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

{s=abs(StrToInt(StringGrid1-> Cells[j][j]));

while (s! =0) {

sum=sum+ s-s/10*10;

s=s/10;

} }

Edit6-> Text=IntToStr(sum); //вывод результата на форму приложения

}

else Edit6-> Text= " "; } //очистка компоненты

 

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.