|
Опрацювання масивів |
исунок 8 - Головна форма програмиВ іншому випадку у полі Реєстраційної форми з'явиться відповідне повідомлення і потрібно повторити введення коду (рисунок 8(а)). Рисунок 8(а) В головній формі для керування роботою потрібно користуватись панеллю „Опції”. для початку задають умови заповнення матриці: регістр символів, що задається відповідними перемикачами, алфавіт, з якого генеруватимуться символи. Для автоматичної генерації натискають кнопку „Згенерувати масив”. Після цього матриця заповниться символами. Якщо ж користувач сам заповнює матрицю, або ж хоче редагувати певні символи заповненої матриці він обирає вузол матриці та натискає на ньому. Після цього з'явиться діалогове вікно для введення символу (рисунок 9). Рисунок 9 - Діалогове вікно для введення символуПісля формування матриці символів та задання налаштувань можна здійснити пошук слова, що вводиться користувачем у відповідне поле. Знайдені у матриці слова будуть виділені кольором. Рисунок 10 - Пошук словаДалі можна задати нові умови пошуку і виконати його. Щоб зняти виділення натискають відповідну кнопку. У разі, якщо пошук не дав результатів виводиться відповідне повідомлення. Рисунок 11 - Інформаційне повідомленняПри виборі пункту меню „Про програму” з'явиться вікно, що показане на рисунку 12Рисунок 12 - Вікно „Про програму”При виборі пункту меню „Розробник” з'явиться вікно, що показане на рисунку 13Рисунок 13 - Вікно „Розробник”По закінченні роботи із програмою здійснюють вихід натисканням кнопки „Вихід”. ВисновокОтже, результатом роботи є створення програмного продукту та пояснювальної записки, що відповідають темі курсової роботи - „Опрацювання масивів. Розробити програму пошуку послідовності символів в двовимірному масиві. Передбачити декілька напрямків пошуку. ”Підсумовуючи усе зроблене вважаю закінчення роботи над курсовою роботою - логічним висновком вивчення предмету ”Програмування та алгоритмічні мови”. Ця робота дала дуже багато мені у плані здобуття та підсумування знань та умінь із програмування, зокрема в середовищі візуального програмування Borland Delphi. Аналізуючи створений програмний продукт, вважаю, що він буде конкурентноздатним та корисним, зокрема, для вивчення та осмислення особливостей роботи із масивами. Програму можна також використовувати і як простий ігровий додаток. Література 1. Глинський Я.М., Анохін В. Є., Ряжська В.А. Turbo Pascal і Delphi. Практикум. - Львів, 2003. 2. Гофман В.Э., Хомоненко А.Д. Delphi 6: - Спб, 2002. 3. Культин Н.Б. Delphi 6. Программирование на Object Pascal: - Спб, 2002. ДодатокДодаток АЛістінг головної програми: program Project1_0; usesForms,Unit1_0 in 'Unit1_0. pas' {Form1}; {$R *. res}beginApplication. Initialize; Application. CreateForm(TForm1, Form1); Application. Run; end. unit Unit1; interfaceuses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,Buttons, ExtCtrls, sButton, sSkinProvider, sSkinManager; typeTAboutProgram = class(TForm) Memo1: TMemo; sButton1: TsButton; sSkinProvider1: TsSkinProvider; procedure OKButtonClick(Sender: TObject); procedure sButton1Click(Sender: TObject); private{ Private declarations }public{ Public declarations }end; varAboutProgram: TAboutProgram; implementationuses Unit1_0; {$R *. dfm}procedure TAboutProgram. OKButtonClick(Sender: TObject); beginForm1. Enabled: =True; Close; end; procedure TAboutProgram. sButton1Click(Sender: TObject); beginForm1. Enabled: =True; Close; end; end. unit Unit1_0; interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Buttons, StdCtrls, ExtCtrls, jpeg, Menus, sBitBtn,sSkinProvider, sSkinManager; typeTForm1 = class(TForm) Edit1: TEdit; SearCB: TComboBox; ALF: TComboBox; RG: TRadioGroup; GroupBox1: TGroupBox; Label1: TLabel; Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; sBitBtn1: TsBitBtn; sSkinProvider1: TsSkinProvider; procedure FormCreate(Sender: TObject); function Search_LR: Boolean; function Search_RL: Boolean; function Search_UD: Boolean; function Search_DU: Boolean; procedure Search; function Sumbol: Char; procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure SpeedButton1Click(Sender: TObject); procedure panelOnClick (sender: Tobject); procedure ALFChange(Sender: TObject); procedure SearCBChange(Sender: TObject); procedure Panel1Click(Sender: TObject); procedure Panel2Click(Sender: TObject); procedure Panel3Click(Sender: TObject); procedure Panel4Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure sBitBtn1Click(Sender: TObject); private{ Private declarations }public{ Public declarations }end; Const MaxY = 25; MaxX = 25; varForm1: TForm1; sbut: array [1. MaxX,1. MaxY] of TPanel; X1,Y1: Integer; implementationuses Unit1, Unit2, Unit3; {$R *. dfm}procedure TForm1. FormCreate(Sender: TObject); vari, j: integer; beginfor i: = 1 to MaxX do beginfor j: = 1 to MaxY do beginsbut [i, j]: = TPanel. Create(form1); sbut [i, j]. Parent: = form1; sbut [i, j]. Height: = 20; sbut [i, j]. Width: = 20; sbut [i, j]. Top: = (i - 1) * 26 + 10; sbut [i, j]. Left: = (j - 1) * 26 + 10; sbut [i, j]. Color: = clYellow; sbut [i, j]. OnClick: = panelOnClick; end; end; end; function TForm1. Search_LR: Boolean; vari, j, k: integer; Myword: String; beginSearch_LR: =False; if Edit1. Text<>'' then beginfor i: = 1 to MaxX dofor j: = 1 to MaxY doif (j+Length(Edit1. Text) - 1) <=MaxY then beginfor k: =0 to Length(Edit1. Text) - 1 doMyword: =Myword+SBut [i,j+k]. Caption; if Myword=Edit1. Text then beginfor k: =0 to Length(Edit1. Text) - 1 do beginsbut [i, j+k]. Font. Color: =clYellow; sbut [i, j+k]. Color: = clBlue; end; Search_LR: =True; {Exit; }end else Myword: =''; end; end; end; function TForm1. Search_RL: Boolean; vari, j, k: integer; Myword: String; beginSearch_RL: =False; if Edit1. Text<>'' then beginfor i: = 1 to MaxX dofor j: = 1 to MaxY doif (j+Length(Edit1. Text) - 1) <=MaxY then beginfor k: =Length(Edit1. Text) - 1 DownTo 0 doMyword: =Myword+SBut [i,j+k]. Caption; if Myword=Edit1. Text then beginfor k: =Length(Edit1. Text) - 1 DownTo 0 do beginsbut [i, j+k]. Font. Color: =clRed; sbut [i, j+k]. Color: = clBlack; end; Search_RL: =True; {Exit; }end else Myword: =''; end; end; end; function TForm1. Search_UD: Boolean; vari, j, k: integer; Myword: String; beginSearch_UD: =False; if Edit1. Text<>'' then beginfor i: = 1 to MaxX dofor j: = 1 to MaxY doif (i+Length(Edit1. Text) - 1) <=MaxX then beginfor k: =0 to Length(Edit1. Text) - 1 doMyword: =Myword+SBut [i+k,j]. Caption; if Myword=Edit1. Text then beginfor k: =0 to Length(Edit1. Text) - 1 do beginsbut [i+k,j]. Font. Color: =clBlack; sbut [i+k,j]. Color: = clRed; end; Search_UD: =True; {Exit; }end else Myword: =''; end; end; end; function TForm1. Search_DU: Boolean; vari, j, k: integer; Myword: String; beginSearch_DU: =False; if Edit1. Text<>'' then beginfor i: = 1 to MaxX dofor j: = 1 to MaxY doif (i+Length(Edit1. Text) - 1) <=MaxX then beginfor k: =Length(Edit1. Text) - 1 DownTo 0 doMyword: =Myword+SBut [i+k,j]. Caption; if Myword=Edit1. Text then beginfor k: =Length(Edit1. Text) - 1 DownTo 0 do beginsbut [i+k,j]. Font. Color: =clBlue; sbut [i+k,j]. Color: = clGreen; end; Search_DU: =True; {Exit; }end else Myword: =''; end; end; end; procedure TForm1. Search; var Find,F1,F2,F3,F4: Boolean; beginif SearCB. ItemIndex<0 then Search_LR; Find: =True; F1: =True; F3: =True; F2: =True; F4: =True; case SearCB. ItemIndex of0: Find: =Search_LR; 1: Find: =Search_RL; 2: Find: =Search_UD; 3: Find: =Search_DU; 4: beginF1: =Search_LR; F2: =Search_RL; F3: =Search_UD; F4: =Search_DU; end; end; if (Find=False) or((F1=False) and(F2=False) and(F3=False) and(F4=False)) thenShowMessage('Шуканої послідовності символів не знайдено! ') end; function TForm1. Sumbol: Char; constUkr='йцукенгшщзхїфівапролджєячсмитьбюЙЦУКЕНГШЩЗХЇФІВАПРОЛДЖЄЯЧСМИТЬБЮ'; UkrL='йцукенгшщзхїфівапролджєячсмитьбю'; UkrB='ЙЦУКЕНГШЩЗХЇФІВАПРОЛДЖЄЯЧСМИТЬБЮ'; Rus='йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ'; RusL='йцукенгшщзхъфывапролджэячсмитьбю'; RusB='ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ'; Eng='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'; EngL='qwertyuiopasdfghjklzxcvbnm'; EngB='QWERTYUIOPASDFGHJKLZXCVBNM'; Num='0123456789'; beginif ALF. ItemIndex<0 then ALF. ItemIndex: =0; case ALF. ItemIndex of0: begincase RG. ItemIndex of0: Sumbol: =UkrB [Random(Length(UkrB)) +1] ; 1: Sumbol: =UkrL [Random(Length(UkrL)) +1] ; 2: Sumbol: =Ukr [Random(Length(Ukr)) +1] ; end; end; 1: begincase RG. ItemIndex of0: Sumbol: =RusB [Random(Length(RusB)) +1] ; 1: Sumbol: =RusL [Random(Length(RusL)) +1] ; 2: Sumbol: =Rus [Random(Length(Rus)) +1] ; end; end; 2: begincase RG. ItemIndex of0: Sumbol: =EngB [Random(Length(EngB)) +1] ; 1: Sumbol: =EngL [Random(Length(EngL)) +1] ; 2: Sumbol: =Eng [Random(Length(Eng)) +1] ; end; end; 3: Sumbol: =Num [Random(Length(Num)) +1] ; end; end; procedure TForm1. Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); beginif Key=13 then Search; end; procedure TForm1. SpeedButton1Click(Sender: TObject); beginClose; end; procedure Tform1. panelOnClick (sender: Tobject); vars: string; Col: Integer; beginCol: =TPanel(sender). Color; TPanel(sender). Color: =clRed; s: = InputBox ('Введіть потрібний символ', 'Символ: ', TPanel(sender). Caption); if S<>'' thenTPanel(sender). Caption: = S [1] ; TPanel(sender). Color: =Col; end; procedure TForm1. ALFChange(Sender: TObject); beginif ALF. ItemIndex=3 then RG. Enabled: =Falseelse RG. Enabled: =True; Edit1. SetFocus; end; procedure TForm1. SearCBChange(Sender: TObject); beginEdit1. SetFocus; end; procedure TForm1. Panel1Click(Sender: TObject); beginif SearCB. ItemIndex<0 then SearCB. ItemIndex: =0; Search; end; procedure TForm1. Panel2Click(Sender: TObject); var i,j: Integer; beginfor i: =1 to MaxX dofor j: =1 to MaxY do beginsbut [i, j]. Font. Color: =clBlue; sbut [i, j]. Color: =clYellow; end; end; procedure TForm1. Panel3Click(Sender: TObject); var i,j: Integer; beginRandomize; for i: = 1 to MaxX dofor j: = 1 to MaxY do beginsbut [i, j]. Caption: = Sumbol; sbut [i, j]. Font. Color: =clBlue; sbut [i, j]. Color: =clYellow; end; end; procedure TForm1. Panel4Click(Sender: TObject); beginClose; end; procedure TForm1. N1Click(Sender: TObject); beginForm1. Enabled: =False; AboutProgram. Show; end; procedure TForm1. N2Click(Sender: TObject); beginForm1. Enabled: =False; AboutBox. Show; end; procedure TForm1. FormClose(Sender: TObject; var Action: TCloseAction); beginAboutBox1. close; end; procedure TForm1. sBitBtn1Click(Sender: TObject); beginclose; end; end. Лістінг модуля Unit2: unit Unit2; interfaceuses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,Buttons, ExtCtrls, sBitBtn, sSkinProvider, sSkinManager, sPanel, sLabel,sButton; typeTAboutBox = class(TForm) Panel1: TPanel; Image1: TImage; sLabelFX1: TsLabelFX; sLabelFX2: TsLabelFX; sStickyLabel1: TsStickyLabel; sStickyLabel2: TsStickyLabel; sLabelFX3: TsLabelFX; sSkinProvider1: TsSkinProvider; sButton1: TsButton; procedure OKButtonClick(Sender: TObject); procedure sBitBtn1Click(Sender: TObject); procedure sBitBtn2Click(Sender: TObject); procedure sButton1Click(Sender: TObject); private{ Private declarations }public{ Public declarations }end; varAboutBox: TAboutBox; implementationuses Unit1_0; {$R *. dfm}procedure TAboutBox. OKButtonClick(Sender: TObject); beginForm1. Enabled: =True; close; end; procedure TAboutBox. sBitBtn1Click(Sender: TObject); beginForm1. Enabled: =True; close; end; procedure TAboutBox. sBitBtn2Click(Sender: TObject); beginForm1. Enabled: =True; close; end; procedure TAboutBox. sButton1Click(Sender: TObject); beginForm1. Enabled: =True; close; end; end. Лістінг модуля Unit3: unit Unit3; interfaceuses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,Buttons, ExtCtrls, sSkinProvider, sBitBtn, sSkinManager, sLabel; typeTAboutBox1 = class(TForm) Edit1: TEdit; sBitBtn1: TsBitBtn; sSkinProvider1: TsSkinProvider; sBitBtn2: TsBitBtn; sLabelFX1: TsLabelFX; sSkinManager1: TsSkinManager; procedure OKButtonClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Panel1Click(Sender: TObject); procedure Panel2Click(Sender: TObject); procedure sBitBtn1Click(Sender: TObject); procedure sBitBtn2Click(Sender: TObject); private{ Private declarations }public{ Public declarations }end; varAboutBox1: TAboutBox1; implementationuses Unit1_0, Unit2; {$R *. dfm}procedure TAboutBox1. OKButtonClick(Sender: TObject); beginif Edit1. Text='1111' then beginForm1. Show; AboutBox. Visible: =False; endelseEdit1. Text: ='Код не вірний, спробуйте ще раз... '; end; procedure TAboutBox1. Button1Click(Sender: TObject); beginclose; end; procedure TAboutBox1. Panel1Click(Sender: TObject); beginif Edit1. Text='80968540042' then beginForm1. Show; AboutBox. Visible: =False; endelseEdit1. Text: ='Код не вірний, спробуйте ще раз... '; end; procedure TAboutBox1. Panel2Click(Sender: TObject); beginclose; end; procedure TAboutBox1. sBitBtn1Click(Sender: TObject); beginif Edit1. Text='80968540042' then beginForm1. Show; AboutBox. Visible: =False; endelseEdit1. Text: ='Код не вірний, спробуйте ще раз... '; end; procedure TAboutBox1. sBitBtn2Click(Sender: TObject); beginclose; end; end.
Страницы: 1, 2, 3
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|