УМК ВП. казПОС. Пніні Оу программасы syllabus оытушы жнінде мліметтер
Скачать 6.17 Mb.
|
Goto 10; end; // алдымен екіге бөлу {оң сан енгізілген} b:=2; repeat q := n mod b; if q<>0 // n екіге бүтін бөлінген жоқ then b := b+1; // бөлгішті 1-ге өсіру until q=0; Label1.Caption := Edit1.Text; Label1.Font.Name := 'Times Kaz'; if b=n then Label1.Caption := Label1.Caption+' - жай сан' else Label1.Caption := Label1.Caption+' – құрама сан'; 10: ; end;
Өріске 89 саны енгізілген кезде форманың көрінісі 2.18-суретте бейнеленген. 2.18 – сурет. Санды жәй санға тексеру нәтижесі. Random функциясы. Const операторы Random(m) — 0..m-1 аралығында кездейсоқ санды тудыратын функция. Мысал. Random функциясын пайдаланып, тиын ақшаны n рет лақтырғанда цифр жағымен түсудің салыстырмалы жиілігін (w) жуық шамамен анықтау программасын құру керек (n рет сынақ жүргізілген кезде күтілген оқиға m рет пайда болса, w=m/n). Тиын ақшаның цифр жағымен түсу не түспеу оқиғаларын 1, 0 арқылы белгілеп, программаны мынадай түрде қуруға болады.
procedure TForm2.Button1Click(Sender: TObject); var n, m, k, r : integer; w : real; nl, ml : string; begin n :=StrToInt(InputBox('','n=','')); //сынақ саны m := 0; for k := 1 to n do begin r := round(random(2)); // r=0 не 1 if r=1 then m:=m+1; end; w := m/n; ml :=IntToStr(m); nl := IntToStr(n); Label1.Font.Name:='TimesKaz'; Label2.Font.Name:='Times Kaz'; Label3.Font.Name:='Times Kaz'; Label1.Caption := nl+' сынақта цифрдың көрінуі ' +ml+'peт'; Label2.Caption := 'Жиіліктік' + FloatToStr(w); Label3.Caption:='Басқа сынақ санын енгізу үшін'+ #13+'OK клавишін басыңыз'; end;
(2.19-сурет). Программаға енгізілген r - n сынактың әрқайсысында 0 не 1 кездейсоқ, санын қабылдайтын айнымалы; Round — нақты санды бүтінге дейін дәлдіктеу функциясы; Түрлі сынақтар саны үшін программаның орындалу нәтижесі кестеде көрсетілген. Цифрдың көріну жиіліктігі (w) сынақ саны көбейген сайын осы оқиғаның пайда болу 2.19-сурет. 150 сынақта жиілік нәтижелері. ықтималдығына (0.5) бірте-бірте жақындай түсетіні математикалық статистика курсынан белгілі. Ол кестеден де көрініп тұр.
Негізгі әдебиеттер: 2[37-56], 12[15-35], 7[17-32] Бақылау сұрақтары:
3. Random функциясы. 4. Const операторы 11-Дәріс. Массивтермен жұмыс Бір атау арқылы байланыстырылған бір типті айнымалылардын (не олардың мәндерінің) жиынтығы массив деп аталады. Сызықтық массив және матрицамен жұмыс істеу негіздері Паскальдағы сияқгы. 1-Мысал. 0..99 аралығындағы бүтін типті кездейсоқ n саннан тұратын сызықтық массив құрып, оның минимумын, максимумын және орта мәнін табу керек (n = 500).
procedure TForm1.OnClickClick(Sender: TObject); const n=500; // массив элементтерінің саны m=100; // кездейсоқ саңдар алынатын // аралықтың жоғарғы шегі var ms : array [1..n] of integer; //бүгін сандар массиві k : integer; // массив индексі min, max : integer; // ең кіші және ең үлкен сан sum: real; // сандар қосындысы begin for k := 1 to n do ms[k] := round(random(m)); // массивті кездейсоқ // бүтін сандармен толтыру min := ms[l]; max := ms[l]; sum := 0; for k := 1 to n do begin sum := sum+ms[k]; if ms[k] else if ms[k]>max then max := ms[k] ; sum:= sum/n ; Label1.Color:= clWhite; Label1.Caption := 'min='+IntToStr(min) +#13 +'maxs'+IntToStr(max) +#13+'orta man=' +FloatToStr(sum); end ; 4. Проектіні сақтап, іске қосу. Көрінген форманың ОК түймесін шерту. Нәтижелік форма 2.20-суретте көрсетілген. 2.20-сурет. Нәтижелер шығарылған форма Матрицамен жұмыс 2-мысал. 100 метрлік қашықтыққа жүгіру барысында үш топтың әрқайсысынан төрт студент іріктеп алынды. Олардың секөнтпен өлшенген жүгіру нәтижелері 2.6-кестеге енгізілген. Қайсы топтың студенттері бірінші орынға шықты? Орта есеппен олардың әрқайсысы 100 метрді қанша уақытта өтті? 1-топ 2-топ 3-топ
2 3 4 1. Жаңа проект ашу; 2. Формата Label1, Label2 өрістері мен Button1 түймесін opнату; 3. Label1, Label1 компонеттерінің Caption қасиеттерінің мәндерін тазалау (бос ету), Button1 түймесінің сәйкес қасиетіне ОК мәнін, форманың сәйкес қасиетіне Нәтиже сөзін меншіктеу. 4. Код терезесінде Button1 түймесінің onClick оқиғасын өндейіш процедурасын құру. procedure TffFixed.Button1Click(Sender: TObject); var a : array [1..4, 1..3] of string; s: array [1..3] of real; nomer, k, j : integer; min : real; nomerT : string; begin {енгізу терезесіне массив элемен-ттерін ретімен енгізу for k := 1 to 4 do for j := 1 to 3 do a[kj] := InputBox(", 'кезекті элемент- ', "); {op баган элементтерін косындььтаұ} s[1] :=0; s[2] := 0; s[3] := 0; for j := 1 to 3 do for k:=1 to 4 do s[j]:= s[j]+StrToFloat(a[k,j]); {жеңімпаз топтын, жинаған барлық үпайы, топ нөмірі} min := s[1]; nomer := 1; for j := 2 to 3 do if s[j] begin min := s[j]; nomer :=j; end; nomerT := IntToStr(nomer); min := min/4; {нәтиже} Label1.Color := clWhite; Label1.Caption := '1-орынға шыкканы: '+ nomerT+' - топ'; Label2.Color := clWhite; Label2.Caption :='Бір студенттің орташа уақыты'+FloatToStr(min, ffFixed,''); end; 5. Проектіні сақтап, іске қосу. Форма көрінеді. Онын Button1түймесін шерту. Енгізу терезесі көрінеді. Оған элементтерді енгізу. Нәтиже көрінеді (2.21-сурет). 2.21-сурет. Жарыс нәтижесі Ескерту. Енгізу терезесіне элементтерді цикл бойынша енгізу үшін ер элемент клавиатрурадан енгізілген сайын оньщ ОК түймесін шерту не КҚ клавишін басу керек. Жол. Жолдық стандартты функциялар. Мәтіндік массивті реттеу Іс жүзінде бір символдық және жолдық шамалармен жұмыс жиі кездеседі (жолдық және мәтіндік сөздері баламалы). Сандық тұрақтылар сияқгы, символдық, жолдық шамалардың мәндерін салыстыруға болатыны белгілі. Себебі, Windows жүйесінде пайдаланылатын ANSI кодтары кестесінде түрлі символдардың кодтары әртүрлі, мысалы asc('A')=65, asc(,C,)=67. Екі символдын қайсысының коды жоғары болса. сол символдын рангісі (шені) жоғары деп қабылданған ‘А’<‘С’). Мәтіндермен біріктіру (жалғастыру)және қиып (бөліп) алу амалдарын ғана орындау мүмкін. Delphi-де жалғастыру операциясы олардың аралығына + (плюс) таңбасын кою арқылы орындалады. Delphi-де мәтіндік шамалармен жұмыс істеу кезіңде пайдаланылатын стандартты функциялардың көпшілігі ТурбоПаскальдағы сияқты, мысалы: Length(a) - а мәтінінің ұзындығын анықтау (length -ұзындық). Функция Integer типті. Concat (a, b) не а + b - а мен b жолдарын біріктіру. Copy(a, m, n) - a мәтінінің m - символынан бастап n символын кесіп алу. Функция String типті. Pos(st, a) -а жолынан st үзіндісін іздеп, жолдың басынан есептегенде үзінді басталган орынның нөмірін анықтау (үзінді табылмаса, оны нөлге (0) тең деп нәтижелейді). Сһг(а) - а коды бойынша символды анықтау. Функция Char типті. Ord (b) — b символының кодын анықтау. Функция Integer типті, т.б. Мысалы: Length(‘мен’)=3;Сору(‘Ахметұлы’, 3, 5)=метұл; Pos(‘мет’, ‘Ахметұлы’) = 3; Pos (‘раш’, ‘Мұратбек’) = 0. Chr(65)='А'; Ord(‘A’)=65. Кодтарын салыстыру арқылы латын әріптерімен жазылған адамдардың аты-жөндерін бірінші әріптері бойынша салыстырып, фамилияларды реттеу программасын жазып шығу қиын емес. Программада цикл ішінде цикл (бір-біріне салынған циклдер) пайдаланылады. Ұлттық әріптермен жазылған фамилияларды реттеу тәсілі төменде берілген (аты-жөндер массив элементтері түрінде қарастырылады). 3-мысал. Қазақ әріптері бойынша төменде жазылған адамдардың аты-жөндерін бірінші әріптері бойынша реттеу керек. Мәдіхожаев Сұлтан Ысқақова Дамира Мұстафаев Қажым Атчабаров Жәнібек Оралханова Маржан
4. Button1 түймесінің OnClick оқиғасын өндеуіш құру; procedure TForm1.Button1Click(Sender: TObject); const n=5; var a : array [1..n] of string; d, k, j : integer; r: string; begin for k := 1 to n do a[k] := InputBox(a[k], 'кезекті элемент - ',''); r:='АӘБВГҒДЕЖЗИЙККЛМНҢОӨПРСТУФХ...'; d := length(r); {цикл ішінде цикл. Массивті реттеу} for j := 1 to d do for k := 1 to n do if copy(a[k], 1, 1) = copy(r, j, 1) then Memo1.Lines.Add(a[k]) end; 5. Проектіні сақтап, іске қосу. Форма бетінде енгізу терезесі көрінеді. Оның өрісіне кезекті фамилияны енгізіп, ОК түймесін шерту. Реттелген фамилиялар форма терезесіне жазылып қойылады (2.22-сурет). 2.22-сурет. Реттелген массив TStringList класы. Массивті класс қасиетін пайдаланып реттеу TStringlist — жолдармен жұмыс істеуге арналған аталық TString класының алғашқы туынды класы. TstringList-ті пайдаланып, өткен тақырыпта берілген мысалдағы сияқты, формада орнатылған ТМето компонентінің терезесіне көп қатарлы жолдар, жолдық массив енгізуге болады және класс қасиетін пайдаланып, оларды автоматты түрде реттеу (сортmay) да мүмкін. Кластың әдістері мен қасиеттері жеткілікті (ол аталық кластың қасиеттерін пайдалана алатыны да белгілі), мысалы, Берілгендер жиынтығына жол қосу: Function Add (Const: string): Integer; Бұрынғы берілгендер жиынтығын өшіріп, жаңа жиынтық қосу: Procedure Assign (Source : TPersistem); Жолдарды алфавит бойынша сорттау. Property Sorted : Boolean; // Sorted — True Жиынтықта жолдардың атмдық санын анықтау. Property Count : Integer; т.б. Мысал. өткен тақырыптың 3-мысалында берілген адамдарды Sorted қасиеті арқылы аты-жөндері бойынша сорттап, формата орнатылған Memo компонентінің терезесіне шығару керек.
Procedure TForm1.ButtonlClick (Sender: TObject); var st: TStringList; A : array [1..4] of string: k : byte: begin st := TStringList.Create: // класс данасын құру st.Sorted := True; // сорттау for k := 1 to 4 do begin a[k] := ІnputВох(‘Кезекті мән‘,’ ‘, ‘’); st.Add (a[k]); end; st.Sorted := False; // сорттау аяқталған соң оны //пайдаланбау Memol.Lines.Assign(st); // нәтижені шығару st.Free; //free - өшіру end; 3. Іске қосу командасын беріп, көрінген форманың Button1 түймесін шерту. Одан әрі, көрінген енгізу терезесіне кезекпенен мысалда берілген тізім элементтерін енгізсе болғаны. Формаға енгізілген Memo1 компонентінің терезесінде аты-жөні бойынша сортталған массив көрінеді Негізгі әдебиеттер: 2[37-56], 12[15-35], 7[17-32] Бақылау сұрақтары:
3. TStringList класы. 4. Массивті класс қасиетін пайдаланып реттеу 12-Дәріс. Процедура және функция. Рекурсия. Стандартты математикалық функциялар компоненттер панелінің System бетіне жазылып койылған. Күрделі программаларда басқа қосалқы процедуратар мен функцияларды пайдалану жиі кездеседі. Қажеттілерін Турбо Паскальдағы сияқты негізгі программа ішіне кірістіру қиын емес. 1-мысал. Тікбұрышты үшбұрыштың катеттері белгілі: а-4.5; b=5.2. Процедура және функция енгізілген программалар арқылы оның периметрін табу керек. Нәтиже шығару терезесінде көрсетілсін. 1. Жаңа проект ашу. Ішіне PifagPr атауы берілген қосалқы программа — процедура енгізілген форманың OnClick оқиғасын өндеуіш құру : |