Студопедия — Текст программы. {Нахождение произведения матрицы Amxn на матрицу
Студопедия Главная Случайная страница Обратная связь

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

Текст программы. {Нахождение произведения матрицы Amxn на матрицу






 

program lr7_1_1;

{Нахождение произведения матрицы Amxn на матрицу

Bnxl, получая матрицу Cmxl}

{$APPTYPE CONSOLE}

 

Uses

SysUtils;

 

Type

matr = array [1..10, 1..10] of real;

stroka =string[30];

Var

a, b, c: matr; {исходные матрицы и матрица результата}

i, j, k, l, m, n: integer;

flag: boolean;

 

procedure vvodmatr(var a: matr; const namefile: stroka; var m, n: integer; fl1, fl2: boolean);

{Ввод матрицы}

Var

i, j: integer;

fin: text;

Begin

If fl1 then

Begin

assign(fin, namefile);

reset(fin);

end;

readln(fin, m, n);

for i: =1 to m do

Begin

for j: =1 to n do

read(fin, a[i, j]);

readln(fin);

end;

If fl2 then

close(fin);

end;

procedure vivodmatr(namefile: stroka; const a: matr; const m, n: integer; zag: stroka; Const flag: boolean);

{Вывод матрицы}

Var

i, j: integer;

fout: text;

Begin

assign(fout, namefile);

If flag then

rewrite(fout)

Else

append(fout);

writeln(fout, zag);

for i: =1 to m do

Begin

for j: =1 to n do

write(fout, a[i, j]: 8: 2);

writeln(fout);

end;

if namefile='con' then {если вывод на экран}

readln

Else

close(fout);

end;

 

procedure multmatr(const a, b: matr; var c: matr; const m, n, l: integer);

{Нахождение произведения матрицы}

Var

i, j, k: integer;

s: real;

Begin

for i: =1 to m do

for j: =1 to l do

Begin

s: =0;

for k: =1 to n do

s: =s+a[i, k]*b[k, j];

c[i, j]: =s;

end;

end;

Begin

vvodmatr(a, 'matra.txt', m, n, True, false);

vvodmatr(b, 'matra.txt', n, l, False, true);

flag: =true;

vivodmatr('matrc.txt', a, m, n, 'Матрица A', flag);

flag: =false;

vivodmatr('matrc.txt', b, n, l, 'Матрица B', flag);

multmatr(a, b, c, m, n, l);

flag: =false;

vivodmatr('matrc.txt', c, m, l, 'Матрица C=A*B', flag);

end.

 

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

Поскольку приложение будет иметь достаточно много функций, создадим меню с помощью компонента MainMenu. Для выбора файла для ввода данных воспользуемся компонентом OpenDialog, а для сохранения исходных матриц компонентом Savedialog страницы Dialogs. Для задания размерности матриц воспользуемся компонентом SpinEdit страницы Samples. Если исходные данные вводятся с клавиатуры, то сначала необходимо задать параметры соответствующих компонентов StringGrid. При вводе из файла эти параметры устанавливаются автоматически. Пока матрицы не определены, операции над ними выполнять нельзя, поэтому соответствующие функции не доступны.

Исходная форма имеет вид (рис. 7.10):

 

 

Рис.7.10 Форма приложения примера 7_1_2

 







Дата добавления: 2014-11-10; просмотров: 493. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

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

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

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

Studopedia.info - Студопедия - 2014-2024 год . (0.036 сек.) русская версия | украинская версия