Задания для самостоятельной работы. 1. Используя модуль МаМсез, разработайте программу определения суммы и произведения диагональных элементов комплексной матрицы 4x4
1. Используя модуль МаМсез, разработайте программу определения суммы и произведения диагональных элементов комплексной матрицы 4x4, заданной случайным образом. 2. Используя модуль Ма1псез, разработайте программу сложения трех комплексных матриц 3x3 и в результирующей матрице определите сумму диагональных элементов. 3. Используя модуль МаМсез, разработайте программу умножения трех комплексных матриц 3x3. Упражнение № 4. Работа с объектами «окно» Создадим модуль работы с окнами. Объект «окно» содержит поля, задающие координаты окна (х, у) — (х1, у1), рамки (х/г, у/г) — (х\/г, у1/г), тени, состоящей из двух прямоугольников (х(, у!) — (х/1, уй) и (Ш, Ы) — (а/1, Ы1), рабочего поля (хг, уг) ~ (х%1, уг 1).
Максимальные размеры окон: без рамки.(1, 1, 80, 25); с рамкой (2, 2, 78, 24); с тенью (1, 1, х\ + 2, у\ + 1).
(а!, Ы) (ай, М) Следующие атрибуты полей задают цвет фона, букв, рамку (одинарную или двойную) с заголовком или без, цвет рамки, тень, цвет тени. Методы объекта: Ргоседиге 1п1Шп (Рх, Ру, Рх1, Ру1, Р: Еоп, Р1е11ег: ЪуЬе) — инициализация окна с координатами (Рх, Ру)-(Рх1, Ру1), цветом фона Р^оп, цветом букв Р1е11ег. Ргоседиге 1пИРг (Регате, Рсо1ог^гаше: Ьу1е; РгиЬге: зЪгл.пд) — инициализация рамки: Р^гате=0 — нет рамки/ Р^гаше=1 — одинарная рамка; Р^гаше=2 — двойная рамка; цвет рамки Рсо1ог^гаше, заголовок РгиЬге. Ргосес1иге 1пл_13Ь. (Рсо1огЗЪас1е: ЬуЬе) — инициализация тени с цветом Рсо1огЗЪас1е. Ргосес1иге ЗЪом — открыть окно. Ргосес1иге Нл_с1е — закрыть окно. Собственные процедуры модуля: Ргосес1иге ОкпоВедл-п — начало работы с окнами (обязательная процедура). Ргоседиге ОкпоЕпс! — завершение работы с окнами (обязательная процедура). Ш1±Ъ 0к1; 1пЪег^асе Ызез СП; Туре окпо = О^ес! х, у, х1, у1: ЬуЬе; {Координаты окна} хк, ук: ЬуЬе; {Координаты курсора} хИг, уЕг, хИг, у1^г: ЬуЬе; {Координаты рамки} х1, у1, х! 1, у! 1, а1, Ы, а 11, Ы1: Ьу1е; {Координаты тени} х2, х21, у2, уг1': Ьу1е; {Координаты пред. области} ^гаше: Ьу1е; {0 - нет рамки 1, 2 - есть рамка} гиЬге: 51г1пд[60]; {Заголовок} 1гиЬге: Ьу1е; зЬас1е: Ьу1е; {0 - Нет тени 1 - Есть тень} ^оп, 1е! 1ег: Ъу1е; {Цвета фона, букв} со1ог^гаше, со1огз11ас1е: Ьу1е; {Методы: } Ргосейиге 1п1Шп (Ех, Еу, Ех1, Еу1, Е^оп, Е1е11ег: Ьу1е); Ргосейиге 1пИЕг (Е^гаше, Есо1ог^гаше: Ьу1е; ЕгиЬге: з1г1пд); Ргосейиге 1п11511 (Есо1ог511ас1е: Ьу1е); Ргосейиге ЗЪом; {Открыть окно} Ргосейиге Н1с1е; {Закрыть окно} епс!; {окдес! } Ргосейиге ОкпоВед1п; {Начало работы} Ргосейиге ОкпоЕпс!; {Конец работы} I ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ^ ^ 1тр1етепЪаЪ1оп Ргосейиге Еггмп; Ьед±п ДОгИ: е1п (" Для продолжения работы нажмите ЕЫТЕК"); КеасИп; епс!; Ргосейиге Окпо. 1п1-Шп; {Инициировать окно: установить координаты окна, цвет фона, букв, цвет внешнего окна для закраски — выполняется первой} Ьед±п х: =Ех; у: =Еу; х1: =Ех1; у1: =Еу1; ^оп: =Е^оп; 1е11: ег: =Е1е11: ег; ^гате: =0; 1гиЬге: =0;. зЬас1е: =0; епс!; Ргосейиге Окпо. 1пИ: Ег; {Инициировать рамку: установить тип, цвет рамки и текст заголовка. Если заголовка нет, то указыватся «2»} Уаг ргг, 1: 1П-Ьедег; ' гЪ: з1г1пд[60]; 1гЬ: Ьу1: е аЬзо1и1е гиЬге; Ведхп рг2: =0; ^гаше: =Е^гаше; со1ог: (: гате: ^со^г^гагг^- гЪ.^ЕгиЪге; гиЬге: =гЬ; 1гиЬге: =1гЬ; а х< 2 -ЬЬеп Ьед±п х: =2; ргг: =1 епс1; ±± у< 2 ЪЬеп Ьед±п у: =2; рг2: =1 епс!; х1> 7 8 -ЬЬеп Ьед±п х1: =78; рг2: =1 еп< 1; ±± у1> 24 ЪЬеп Ьед±п у1: =24; ргг: =1 еп< 1; х^г: =х-1; у^г: =у-1; х1^г: =х1+1; у1^г: =у1+1; ргг < > 0 ЪЬеп Ьед±п ДОгл_1: е1п (" Изменены размеры окна из-за рамки=", х: 3, у: 3, х1: 3, у1: 3); Еггмп; епс1; рг2: =х1^г-х^г-1гиЬге-3; рг2< =0 ЪЬеп Ьед±п ДОгИ: е1п (" Не поместился заголовок: "); ^ог л_: =1 " Ьо 1гиЬге с1о ДОгИ: е (гиЪге[1]); ДОгл_1: е1п; Еггмп; 1гиЬге: =0; епс1; Епс1; {1пИ: Гг} Ргосес1иге Окпо. 1п11: ЗЪ; {Инициировать тень: установить координаты и цвет тени} Уаг хг, уг, х1г, у1г: ЪуЬе; ргг: 1п1: едег; Вед±п зЪас! е: =1; {Смещение тени} со1огзЪас! е: =Есо1огзЪас1е; гереаЪ ргг: =0; ^гаше о 0 ЪЬеп Ьед±п хг: =х^г; х1г: =х1^г; уг: =у^г; у1г: =у1^г; епс! е1зе Ьед1п хг: =х; х1г: =х1; уг: =у; у1г: =у1; епс1; {Координаты тени} х" Ь: =х1г+1; х" Ь1: =х1г+2; уЪ: =уг+1; у1: 1: =у1г; а" Ь: =хг+2; аЪ1: =х1г+2; Ы:: =у1г; Ы: 1: =у1г+1; а 1: 1=7 9 ЪЬеп Ьед±п х1^г: =х1^г-1; х1: =х1-1; ргг: =1 Епс1; ±± Ы: 1=25 ЪЬей Ьедл.п у1^г: =у1^г-1; у1: =у1-1; ргг: =1 Епс1; рг2 о 0 ЪЬеп Ьед±п ДОгИ: е1п (" Изменены размеры окна из-за тени: ", х: 3, у: 3, х1: 3, у1: 3, " смещение=", зЬас1е); еггмп; епс1; ип'ЬИ рг2 = 0; {До построения тени} Епс1; Ргосес1иге Окпо.ЗЪом; {Процедура ЗЪом открывает окно: рисует цвет, рамку, заголовок, тень} Сопз'Ь ИХУ_2 =#2 01; {Двойная} ИХУ_1 =#218; {Одинарная} ИХ1У_2=#187; {Рамка} 11Х1У_1=#191; {Рамка} ИХУ1_2=#200; 11ХУ1_1=#192; 11Х1У1_2=#188; ПХ1У1_1=#217; НК2_2 =#205; НК2_1 =#196; УЕК_2 =#186; УЕК_1 =#179; Уаг -ЕгатеПпе: аггау [1.. 80] о^ сЬаг; хг, уг, хг1, уг1: Ьу" Ье; иху, их1у, иху!, их1у1, Ъгг, Vе^: сЬаг; 1г, 111, 1д: 1п1: едег; {длина рамки, высота, количество горизонталий} пит, пит1, питг: л-п-Ьедег; {длины без текста} к, 1: л_п1едег; Ведхп хг: =х; ут.: =у; хг 1: =х1; уг1: =у1; {Запомнить экран} ±± ^гашеоО ЪЬеп Ьед±п хг: =х^г; уг: =у^г; хг1: =х1^г; уг1: =у1^г; епс1; ±± зЪас1е< > 0 1Ьеп Ьед±п хт.1: =х! 1; ут.1: =Ы: 1; епс!; ЭДл_пс1ом (хг, уг, хг1, уг1); л.^ зЪас1е< > 0 ЪЬеп Ьед±п Тех1: ВаскСгоипс1 (со1огзЪас1е); Тех1: Со1ог (шЫ1: е); ДОл.пс1ом (хЬ, уЬ, х1: 1, у11); С1гзсг; ДОл_пс1ом (аЬ, ЪЬ, аЦ, ЪЫ); С1гзсг; епс!; ' {Построить рамку} ±± ^гатеоО ЪЬеп Ьед±п ±±: Егате=1 ЪЬеп Ъедл.п чег: =ЧЕК_1; Ъгг: =НК2_1; иху: =11ХУ_1; их1у: =11Х1У_1; иху1: =11ХУ1_1; их1у1: =11Х1У1_1; епс! е1зе Ьедгп уег: =УЕК_2; Ъг2: =НК2_2; иху: =11ХУ_2; их1у: =11X1 У_2; иху1: =11ХУ1_2; их1у1: =11Х1У1_2; епс!; {Наружное окно} Тех1ВаскСгоипс1 (^оп); Тех1Со1ог (со1ог: Егате); ЭДл_пс1ом (х: Ег, уЕг, х1€г, у1±г); С1гзсг; {Размеры рамки} 1г: =х1^г-х^г+1; 1д: =х1^г-х^г-1; 1Ь: =у1^г-у^г-1; {Верхняя горизонталь} ±± 1гиЬге< > 0 ЪЬеп Ьедхп пит: =1д- (1гиЪге+2); пит1: =пит с! л_у 2; (пит тос1 2) < > 0 1Ьеп питг: =пит1+1 е1зе питг: =пит1; ^ог л_: =1 Ьо 80 с! о ^гатеНпе [ 1 ]: = 1 1; ^гашеНпе [1]: =иху; ±ог ±: =2 " Ьо пит1 с! о ^гатеПпе[1]: =Ьгг; ^гатеПпе [1 + 1 ]: = 1 1; к: =2+пит1; ^ог л.: =1 Ьо 1гиЪге с! о ^гатеПпе [ к+1 ]: =гиЪге [ 1 ]; к: =к+1гиЪге+1; ^гатеПпе [к]: = ' '; ^ог 1: =1 " Ьо питг с! о ^гашеНпе [к+±]: =Ъгг; ^гатеПпе [ к+питг+1 ]: =их1у; епс! е1зе{ нет заголовка } Ьедхп ^гашеПпе [1]: =иху; ^ог л.: =2 Ьо 1д+1 с! о ^гатеПпе [л.]: =Ьг2; ^гатеНпе [1г]: =их1у; епс!; ^ог 1: =1 Ьо 1г йо мгНе (^гатеНпе [1]) / ^ог л_: =1 Ьо 1Ь < 1о Ьед±п доЪоху (1, 1 + л.); мгНе (чег); доЪоху (х1^г-х^г+1, 1 + 1); мгНе (уег); до^оху(2, уг1); ^ог л.: =1 Ьо 80 с1о ^гашеНпе [л_]: = ? '; ^гатеНпе[1]: =иху1; ^ог 1: =2 Ьо 1д+1 с1о ^гатеНпе[1]: =Ьг2; ^гатеНпе [ 1г]: =их1у1; м±'пскж (х^г, у1^г, х1^г+1, у1^г); ^ог л_: =1 'Ьо 1г с1о «гИе (^гатеНпе [ 1 ]); 1ех" ЬЬаскдгоип< 1 (^оп); 1ех" Ьсо1ог (1е" Ь" Ьег); {Внутреннее окно} мл_пс1ом (х, у, х1, у1); с1гзсг; епс! {есть рамка} е1зе {рамки нет} Ьед±п 1ех1: Ъаскдгоипс1 (^оп); 1ех" Ьсо1ог (1е" Ь" Ьег); мл_пс1ом (х, у, х1, у1); с1гзсг; епс1; Епс1; Ргосейиге. Окпо. Нл.с1е; {Закрыть окно} Веда.п Юл-пскж (хг, уг, хт.1, уг1); с1гзсг; 1: ех1: Ьаскдгоипс1 (Ыие); Епс1; Ргосейиге ОкпоВед1п; {Установить атрибуты 1при" Ь, ОиЪриЪ} Вед±п Азз1дпсг" Ь (хпри!); Кезе1: (Л-при!); " Азз1дпсг1: (ои1: ри1:); КевдгИе (оиЪри'Ь); Епс1; Ргосейиге ОкпоЕпс!; {Восстановить атрибуты 1при" Ь. ОиЪриЪ} Вед1п Аззхдп(л_приЪ, ' '); Кезе! (л_при1); Аззхдп (оиЪриЪ, 1 1); КемгИе (оиЪриЪ); Епё; Епс1. {ипП} Пример 85. Программа, использующая модуль с объектом «окно». {Используются три окна а, Ъ, с.} Ргодгат Ехатр1е_85 ргл.тег1; изез сгЪ, ок1; Vа^ а, Ъ, с: окпо; Вед1п ОкпоВедл_п; a. Л-пИмп (2, 2, 78, 24, суап, мЪИе); а. (2, гес1, " ПРОВЕРКА ОКОН"); b.л_пл_1: мп (6, 6, 24, 21, мЬНе, Ыие); Ь. 2.П2.ЫГ (2, Ыие, " окно с тенью "); Ь. Л-пИзЪ (Ыие); сЛпИмп (4, 4, 4 5, 12, ИдЫгес!, уе11оте); с. 1П11: Гг (1, ' с одинарной рамкой'); слпИзЬ (дгееп); a. зЪом; мгл_1е1п (" АВСЭЕ"); геасИп; b. зЬо^; ^гИ: е1п(" аз< 1^д^и); ™П1е1п (" кккккк"); мгл.-Ье1п (" уууууу"); мгл.-Ье1п (" ЪЪЪЪЪЪ"); геасИп; c. зЪом; геасИп; с.Ыйе; геасИп; Ъ.Ъл_с1е; геасИп; а.Мс! е; геасИп; ОкпоЕпс!; Епс1.
|