обработка 6 матрица в паскал
В този случай, матрици А и В има 10 реда и 30 колони и на матрицата,
в които има 16 реда и 14 колони.
За достъп до матрица елемент трябва да посочва името си в квадратни скоби, разделени със запетая ред и брой колона:
Име [linenumber. колона_номер]
Име [linenumber] [колона_номер]
Например, Н [2,4] един матричен елемент часа. Това е в съответствие с редица
две и четири броя колона.
За да се справят с всички елементи на матрицата трябва да се използват два цикъла. Ако матрицата се обработва ред по ред, във външните цикъл се през линия от първия до последния, тогава всички вътрешния (първи, втори, трети и така нататък. Г.) Елементите на текущия ред. При обработка на елементи на матрицата от колони външен цикъл линия ще през колоните, вътрешната низ. Фиг. 6.1 показва блок-схема на обработка редове на матрицата на фиг. 6.2 колони. Тук, броят и ред, индексът J колона, N броя на редовете, М броя на колоните на матрицата А.
Алгоритъм прогресивно изходни матрични елементи е показано на фиг. 6.4.
От описанието матриците Pascal е описано в раздел 5.2 глава 5. основание да елемент И, Й на матрицата може да бъде осъществено от структура век
Помислете за изпълнението на входно-изходни матрици в конзолни приложения. За организиране на прогресивно въвеждане матрица в двойна линия в линии
и колони, които можете да използвате оператора чете.
защото: = 1 до N направи за к: = 1 до m чета (А [Й.])
В този случай, матричните елементи на всеки ред могат да бъдат разделени от интервал или раздела символи, и само в края на линията за натискане Enter.
ЦЕЛ 6.1. Напиши конзола заявление вход матрица от реални числа и то на изхода на екрана на монитора.
По-долу е например входно-изходна матрица конзола приложение.
Въведете матрицата също може да се организира с помощта на следващия цикъл.
защото: = 1 до N направи за к: = 1 до m се започне
напиши ( "А (" Й ") = '.. ..'. '); readln (А [т. к])
За входно-изходни матрици могат да използват компоненти от тип TStringGrid,
с когото се срещнахме в Глава 5.
Да разгледаме следния проблем като пример.
ЦЕЛ 6.2. Създаване на два програма матрица транспониране А.
Схема матрица транспониране показано на фиг. 6.6. Когато матрица транспониране А (М, М) е матрица B (M, N).
Фиг. 6.6. Схема транспониране матрица
Разглеждане на конкретния случай на фиксиран размер матрица транспониране А (4,3).
На форма и се поставя етикет Label1 LABEL2 надпис свойствата на дадена матрица и транспониране матрица В, тип TStringGrid двукомпонентна. промяна на техните свойства, както е показано в таблица. 6.1. бутон и транспонирана
заявление прозорец, показано на фиг. 6.7.
2 транспонирана матрица на матрицата получени от оригиналната матрица А (М, М) заместване на редове в колони.
Таблица 6.1. Имоти StringGrid1 компоненти. StringGrid2.
// Адрес на елементите на матрицата се извършва в колони.
StringGrid2. С д л л и [Ь. й]: = IntToStr (Б [й Ь].); приключи;
Резултатите от програмата са представени на фиг. 6.8.
Фиг. 6.8. Резултатите от матрица работна програма транспониране А (3,4)
За да се демонстрира входно-изходна матрица чрез типово TStringGrid ние изследвахме работа с фиксиран размер редици А (4,3) и В (3,4). Сега помисли общия случай на решаване на проблема с матрица транспониране А (М, М).
Ние поставяме следните компоненти на формата:
• етикет с надпис label1 ¾Vvedite измерение matritsy¿;
• LABEL2 етикет белязан ¾ N = ¿;
• label3 етикет белязан ¾ М = ¿;
• Label4 етикет с надпис ¾Iskhodnaya матрица A ¿;
• Label5 етикет с надпис ¾Preobrazovannaya матрица B ¿;
• Edit1 вход поле за въвеждане на броя N;
• Edit2 поле за въвеждане за въвеждане на броя М;
• StringGrid1 компонент за въвеждане на първоначалната матрица А;
• StringGrid2 компонент за съхранение на транспонирана матрица B;
• С ¾Vvod¿ означен бутон Button1 да въведете размерите на матрицата;
• Бутон BUTTON2 етикетирани ¾Ochistit¿, за да изясни мат-
• Бутон Button3 етикетирани ¾ ¿Транспониране за решаването на проблема с транспонирането на матрицата;
• Бутон Button4 с надпис на ¾Vyhod programmy¿ за завършване
Можете да поставите компоненти на формуляр, както е показано на фиг. 6.9.
Фиг. 6.9. прозорец форма решение проблем транспониране матрица А на (N, М)
Фиг. 6.10. Започнете екран програма транспониране матрица A (N, M)
появяват Set имоти (Видима), за да False от компонентите Label4 етикети
Label5. StringGrid1. StringGrid2. BUTTON2 и Button3 бутон. След това, когато
стартиране на програмата ще бъде само видими компоненти, отговорни за размера на входния матрица и програма за бутон (вж. фиг. 6.10) 3 матрици А и В. Н. М техните размери ще декларират в световен мащаб.
TForm1 = С л на S S (TForm)
Button1. TButton; BUTTON2. TButton;
Button4. TButton; Edit1. TEdit;
Надпис имот 3 е настроен да се образува матрицата е транспонирана.
StringGrid2. TStringGrid; частен
А, В: масив [1. 2 5. 1 май 2] на цяло число;
N, М: цяло число; Form1. TForm1;
Бутон за изход манипулатор софтуер е стандартен и е показан по-долу.
процедура TForm1. Button4Click (подателя TObject.); започвам
Сега пиша манипулатор входните бутони, които трябва да се прилагат и да се провери коректността на размера на матрицата на приложение, и да зададете свойства StringGrid1 StringGrid2 компоненти (броя на редове и колони) направи видима компонента StringGrid1. бутон транспонират, невидими компоненти, отговорни за влизането на размера на матрицата (етикет label1. LABEL2. label3. Edit1 полетата за въвеждане и Edit2. бутон Enter).
процедура TForm1. Button1Click (подателя TObject.); Var аз. байт; kod_n, kod_m, код. цяло число;
// Въведете измерение на матрицата.
// Информацията за характер се превръща в редица и се съхранява в //
Val (Edit1 Текст, N, kod_m.); // променлива М Val (Edit2 Текст, M, kod_n.); // и променлива Н.
// Ако преобразуването е била успешна и внушителен размер // съответства на описанието
и F (kod_n = 0) и (kod_m = 0) и (N> 0) и (N<26) and (M>0) и (М<26)
// прави първата матрица,
// Адрес на елементите на матрицата се извършва в колони.
StringGrid2. С д л л и [Ь. й]: = IntToStr (Б [й Ь].); Buuton1. В и S и б л д: = False;
Остава да пиша на събитието манипулатор, когато щракнете върху бутона Изчисти. Когато кликнете върху този бутон, трябва да се получи следното:
• съдържание Почистване StringGrid1 компоненти. StringGrid2;
• StringGrid1 компоненти. StringGrid2 и съответните им етикети labe4 и Label5. и транспонират бутони са ясни nevi-
• Въведете бутон става видима;
• в полетата за въвеждане са написани първоначалните стойности на размера на матрица (N = 4,
процедура TForm1. Button3Click (подателя TObject.); Var аз. к. цяло число;
// Clear StringGrid1 компонент. с StringGrid1 правя
защото: = 1 до RowCount - 1 правя
за к: = 1 до ColCount - 1 правя
// Clear StringGrid2 компонент. с StringGrid2 правя
защото: = 1 до RowCount - 1 направи за к: = 1 до ColCount - 1 направи
// Направи невидимите компоненти StringGrid1, StringGrid2, // labe4, Label5.
StringGrid1. В и S и б л д: = False;
StringGrid2. В и S и б л д: = False; л а б л д 4. В и S и б л д: = False;
л а б е л 5. В и S и б л д: = False;
// Направи невидимите бутони и ¾Transponirovat¿ ¾Ochistit¿.
BUTTON2. В и S и б л д: = False;
Button3. В и S и б л д: = False;
// Направи бутон видим ¾Vvod¿.
Button1. В и S и б л д: = True;
// запис на първоначалния размер на матрицата // (N = 4. М = 3).
Edit2. Текст: = '3'; приключи;
Имаме работа програма за транспониране на матрицата. Фиг. 6.11 представя резултатите от матрица транспониране А (2,4).
Обърнете внимание на използването на връзката с името на компонент оператор направи изявление;
което улеснява достъпа до свойства на отделните компоненти. С името на оператора в срок
компонент за достъп до неговите свойства, не можете да използвате. Например, за почистване на елементи на матрицата, а не на операторите