Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Агрегатты функциялар 2 страница
Ішкі бағ дарламаның листингі: procedure Tform1.ScrollBar1Change (Sender: TObject); begin if num then Shape1.Left: = ScrollBar1.Position else Shape2.Left: = ScrollBar1.Position end; procedure Tform1.ScrollBar2Change (Sender: TObject); begin if num then Shape1.Top: = ScrollBar2.Position else Shape2.Top: = ScrollBar2.Position end; procedure Tform1.Shape1MouseMove (Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Shape1.Brush.Color: = clAgua; Shape1.Brush.Color: = clFuchsia; Num: = True; ScrollBar1.Position: = Shape1.Left; ScrollBar2.Position: = Shape1.Top; end; procedure Tform1. Shape2MouseMove (Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Shape2.Brush.Color: = clFuchsia; Shape2.Brush.Color: = clAgua; Num: = False; ScrollBar1.Position: = Shape2.Left; ScrollBar2.Position: = Shape2.Top; end; procedure Tform1. FormCreate (Sender: TObject); begin num: = True; end;
№8 - лабораториялық жұ мыс. Пайызды есептеу Жұ мыстың мақ саты - мына ә рекеттерді орындайтын бағ дарлама қ ұ ру: 1. Бағ дарлама іске қ осылғ анда пішінге ү ш мә тін ө рісін шығ ару. 2. Бірінші ө ріске сан енгізіледі. Екінші ө ріске пайыз енгізіледі. Сонда «Есептеу» батырмасын басқ анда ү шінші ө рісте санның есептелген пайызы шығ уы тиіс. Сурет 3. «Тазарту» батырмасы басылғ анда ө ріс тазарады. Ә рі қ арай ө ріске жаң а мә н енгізіле береді. 4. Бағ дарламадан шығ у ү шін тақ ырып жолындағ ы «Жабу» батырмасын шерту керек.
Бағ дарламаны іске асыру жоспарының сипаттамасы 1. Жаң а жоба ашу. 2. Пішінге мына компоненттерді: Button басқ ару батырмасын, Label жазуын, Edit мә тіндік ө рісін орналастыру. 3. Мына кестеде жазылғ ан ә рекеттерді орындау: Кесте
4. Жобаны сақ таң ыз, оны іске қ осып орындалуын тексеріп кө рің із. Бағ дарлама ү зіндісі. var Number, Procent, Prn: Real; procedure TForm1.Button1Click(Sender: TObject); begin Number: =StrToFloat(Edit1.Text); Procent: = StrToFloat(Edit2.Text); PrN: =0.01*Procent*Number; Edit3.Text: =FloatToStr(PrN); end; procedure TForm1.Button2Click(Sender: TObject); begin Edit1.Text: =''; Edit2.Text: =''; Edit3.Text: =''; end; № 9 - лабораториялық жұ мыс. Ллойд басқ атырғ ышы Жұ мыстың мақ саты - Самуэл Ллойд басқ атырғ ышының біреуінің компьютерлік нұ сқ асын жасау: Берілген сандар жиынынан қ осындысы 50-ге тең болатын сандарды таң дау керек. Ллойдтың ө з басқ атырғ ышы ү шін таң дағ ан сандары мыналар: 25, 27, 3, 12, 6, 15, 9, 30, 21, 19. Сурет Мына ә рекеттерді орындау: 1. Бағ дарлама іске қ осылғ анда терезеде Ллойдтың сандары кө рінеді. 2. Сандарды жалаушаның кө мегімен таң дап, оларды оң жақ терезеге орналастырамыз. 3. Таң далғ ан сандардың қ осындысы жазба тү рінде шығ ады. 4. Бағ дарламадан шығ у ү шін тақ ырып жолындағ ы «Жабу» батырмасын шерту қ ажет.
Бағ дарламаны іске асыру жоспарының сипаттамасы. 1. Жаң а жоба ашу. 2. Пішінге мына компоненттерді: CheckListBox жалаушаларының тізімін, Label жазуын, ListBox тізімін орналастыру. 3. Мына 13-кестеде кө рсетілген ә рекеттерді орындау: Кесте
4. Жобаны сақ таң ыз, оны іске қ осып, орындалуын тексеріп кө рің із. Ішкі бағ дарлама листингі: procedure TForm1.CheckListBox1ClickCheck (Sender: TObject); var i, s: Integer; begin ListBox1.Clear; for i: = 0 to CheckListBox1.Items.Count-1 do if CheckListBox1.Checked[i] then ListBox1.Items.Add (CheckListBox1.Items[i]); s: = 0; for i: = 0 to ListBox1.Items.Count -1 do s: = s + StrToInt(ListBox1.Items[i]); Label1.Caption: = 'Қ осынды: ' + IntToStr(s); if s = 50 then begin Label1.Caption: = 'Қ осынды: ' + IntToStr (s); CheckListBox1.Enabled: = False; ListBox1.Enabled: = False; end; end;
№ 10 - лабораториялық жұ мыс. Калькулятор Жұ мыстың мақ саты – кезкелген санмен (ондық бө лшекпен де) қ осу мен азайту амалдарын орындай алатын қ арапайым калькулятордың бағ дарламасын дайындау. 1. Бағ дарлама іске қ осылғ анда калькулятор терезесін шығ ару. Сурет 2. Калькулятормен кезкелген санды қ осу жә не азайту амалдарын орындау. 3. Калькуляторды уақ ытша кө рсетпеу ү шін тақ ырып жолындағ ы «Жиыру», ал бағ дарламадан шығ у ү шін «Жабу» батырмасын шерту керек. Бағ дарламаны іске асыру жоспарының сипаттамасы 1.Жаң а жоба ашу. 2.Пішінге мына компоненттерді: Button батырмасын, Edit мә тіндік ө рісін орналастыру. 3.Мына бағ дарламаны пайдаланып, Калькуляторды дайындап кө рің із: Var accum: real; // аккумулятор oper: integer; // амал: 1 - '+'; 2 - '-'; // 0 - " орындау" (" =" батырмасы) f: integer; { f = 0 жаң а санның бірінші цифрын кү ту, мыс, амал орындалғ ан соң, индикаторда нә тиже кө рінген кезде. f = 1 қ алғ ан цифрларды кү ту} procedure TForm1.Button0Click(Sender: TObject); // 0 батырмасы begin if f = 0 // санның бірінші цифры then begin Edit1.Text: = '0'; f: = 1; //басқ а цифрларды кү ту end else if Edit1.Text < > '0' // индикатордағ ы санның басында бірнеше нө л болмауы ү шін then Edit1.Text: = Edit1.Text + '0'; end; procedure TForm1.Button1Click(Sender: TObject); // 1 батырмасы begin if f = 0 // санның бірінші цифры then begin Edit1.Text: = '1'; f: = 1; // басқ а цифрларды кү ту end else Edit1.Text: = Edit1.Text + '1'; end; procedure TForm1.Button2Click(Sender: TObject); // 2 батырмасы begin if (f = 0) then begin Edit1.Text: = '2'; f: = 1; end else Edit1.Text: = Edit1.Text + '2'; end; procedure TForm1.Button3Click(Sender: TObject); // 3 батырмасы begin if f = 0 then begin Edit1.Text: = '3'; f: = 1; end else Edit1.Text: = Edit1.Text + '3'; end; procedure TForm1.Button4Click(Sender: TObject); // 4 батырмасы begin if f = 0 then begin Edit1.Text: = '4'; f: = 1; end else Edit1.Text: = Edit1.Text + '4'; end; procedure TForm1.Button5Click(Sender: TObject); // 5 батырмасы begin if (f = 0) then begin Edit1.Text: = '5'; f: = 1; end else Edit1.Text: = Edit1.Text + '5'; end; procedure TForm1.Button6Click(Sender: TObject); // 6 батырмасы begin if f = 0 then begin Edit1.Text: = '6'; f: = 1; end else Edit1.Text: = Edit1.Text + '6'; end; procedure TForm1.Button7Click(Sender: TObject); // 7 батырмасы begin if f = 0 then begin Edit1.Text: = '7'; f: = 1; end else Edit1.Text: = Edit1.Text + '7'; end; procedure TForm1.Button8Click(Sender: TObject); // 8 батырмасы begin if f = 0 then begin Edit1.Text: = '8'; f: = 1; end else Edit1.Text: = Edit1.Text + '8'; end; procedure TForm1.Button9Click(Sender: TObject); begin if f = 0 then begin Edit1.Text: = '9'; f: = 1; end else Edit1.Text: = Edit1.Text + '9'; end; procedure TForm1.ButtonZClick(Sender: TObject); // ондық ү тір begin if Edit1.Text = '0' then begin Edit1.Text: = '0, '; f: = 1; end; if Pos(', ', Edit1.Text) = 0 then Edit1.Text: = Edit1.Text + ', '; end; procedure DoOper; // амалдардың орындалуы var numb: real; // индикатордағ ы сан begin // accum алдың ғ ы амалдар нә тижесінен тұ рады // oper – орындалатын амалдың коды. Операнд индикаторда тұ р. numb: = StrToFloat(Form1.Edit1.Text); case oper of 0: accum: = numb; 1: accum: = accum + numb; 2: accum: = accum - numb; end; Form1.Edit1.Text: = FloatToStr(accum); end; procedure TForm1.ButtonPlusClick(Sender: TObject); // " +" батырмасы { мұ нда алдың ғ ы амалды орындап, нә тижені индикаторғ а шығ ару керек, сосын ағ ымдағ ы амалды еске сақ тап жә не жаң а санның бірінші цифрын кү ту режимін орнату керек.} begin if f = 0 then oper: = 1 // амалды еске сақ тау else begin DoOper; // алдың ғ ы амалды орындау oper: =1; // ағ ымдағ ы амалды еске сақ тау f: =0; end; end; procedure TForm1.ButtonMinusClick(Sender: TObject); // " -" батырма begin if f = 0 then oper: = 2 else begin DoOper; oper: =2; f: =0; end; end; procedure TForm1.ButtonEnterClick(Sender: TObject); // " =" батырма begin if f = 0 then oper: = 0 else begin DoOper; oper: =0; f: =0; end; end; procedure TForm1.ButtonCClick(Sender: TObject); // " с" - тазарту begin Edit1.Text: = '0'; accum: = 0; oper: = 0; f: = 0; end; // Edit1 ө рісінде пернені басу procedure TForm1.Edit1Change(Sender: TObject; var Key: Char); begin Key: = Chr(0); // символдарды кө рсетпеу end; procedure TForm1.FormCreate(Sender: TObject); begin oper: = 0; end; end.
№11 - лабораториялық жұ мыс. Жиымдағ ы кездейсоқ сандардың индексін табу Жұ мыстың мақ саты – жиымдағ ы кездейсоқ сандардың индексін табатын бағ дарлама қ ұ ру. Бағ дарламаны іске асыру жоспарының сипаттамасы 1. Жаң а жоба ашу. 2. Пішінге мына компоненттерді: Button, Edit, Label орналастыру. 3. Мына кестеде кө рсетілген ә рекеттерді орындау: Кесте
4. айнымалыларды енгізу: ik, k, i: integer; s: string; a: array [1..15] of integer. 5. Жобаны сақ тап, сосын оны іске қ осып, орындалуын тексерің із. Бағ дарлама листингі procedure Tform1.FormCreate(Sender: Tobject); begin Edit1.Text: = ''; Edit2.Text: = ''; Edit3.Text: = ''; end; procedure Tform1.Button1Click(Sender: Tobject); begin Edit1.Text: = ''; Edit2.Text: = ''; Edit3.Text: = ''; end; procedure Tform1.Button2Click(Sender: Tobject); begin close; end; procedure Tform1.Button3Click(Sender: Tobject); begin k: = StrToInt (Edit2.Text); For i: = 1 to 15 do if k = a[i] then ik: = i; if ik = 0 then Edit3.Text: = 'number ubsent' else Edit3.Text: = IntToStr (ik); end; procedure Tform1.Button4Click(Sender: Tobject); begin randomize; s: = ''; For i: = 1 to 15 do begin a[i]: = random (26); s: = concat (s, IntToStr (a[i]), #32); end; Edit1.Text: = s; end; end. Ә рекеттер бойынша жобалардың тү рлері: Сурет Сурет Сурет Сурет
№12 - лабораториялық жұ мыс. Уақ ыт есептеуіш Жұ мыстың мақ саты – ағ ымдағ ы уақ ыт пен ағ ымдағ ы кү нді шығ арып, кө рсететін бағ дарлама қ ұ ру. Бағ дарламаны іске асыру жоспарының сипаттамасы 1. Жаң а жоба ашу. 2. Пішінге мына компоненттерді: Button, Edit, Label орналастыру. 3. Мына кестеде жазылғ ан ә рекеттерді орындау: Кесте
Сурет Ішкі бағ дарлама листингі: var DateTime: TdateTime; procedure Tform1.Button1Click(Sender: Tobject); begin DateTime: =Time; Edit1.Text: =TimeToStr(DateTime); end; procedure Tform1.Button2Click(Sender: Tobject); begin Edit2.Text: =DateToStr(Date); end; end. №13 - лабораториялық жұ мыс. Оятқ ыш сағ ат Жұ мыстың мақ саты – кө рсетілген уақ ытта оятатын оятқ ыш сағ аттың бағ дарламасын жасау. Пішінде қ азіргі уақ ыт пен ояту уақ ыты бө лек-бө лек кө рсетіліп тұ руы тиіс. Сурет Жұ мысты іске асырудың бағ дарламасы: var Hour, Min: word; // индикатордағ ы уақ ыт AlHour, AlMin: word; //оятқ ышқ а орнатылғ ан уақ ыт AlHour: AlMin // бағ дарлама жұ мысының басталуы procedure TForm1.FormCreate(Sender: TObject); begin Hour: = HourOf(Now); Min: = MinuteOf(Now); Label1.Caption: = IntToStr(Hour); if Min < 10 then Label2.Caption: = '0'+IntToStr(Min) else Label2.Caption: = IntToStr(Min); end; // таймерден тү сетін сигнал procedure TForm1.Timer1Timer(Sender: TObject); var cHour, cMin: word; begin // ағ ымдағ ы уақ ытты алу cHour: = HourOf(Now); cMin: = MinuteOf(Now); if Timer1.Tag = 0 //экрандағ ы бағ дарлама терезесі then begin { ағ ымдағ ы уақ ытпен индикаторда кө рінген уақ ыттың сә йкестігін тексеру} if cHour < > Hour then begin Hour: = cHour; Label1.Caption: = IntToStr(Hour); end; if cMin < > Min then begin Min: = cMin; if min < 10 then Label2.Caption: = '0' + IntToStr(Min) else Label2.Caption: = IntToStr(Min); end; // (:) қ ос нү ктенің жыпылық тауын қ аматамасыз ету if Label3.Visible then Label3.Visible: = False else label3.Visible: = True; end else // бағ дарлама терезесі жасырылғ ан, сигнал // жіберу сә тінің келгендігін тексеру if (cHour = AlHour) and (cMin = AlMin) // сигнал! then begin Form2.Show; Timer1.Tag: = 0; Timer1.Interval: = 1000; end; end; // UpDown1 шерту оятқ ыш -сағ аттың сигнал беру уақ ытын ө згертеді procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType); begin if UpDown1.Position < 10 then Label4.Caption: = '0' + IntToStr(UpDown1.Position) else Label4.Caption: = IntToStr(UpDown1.Position); end; // UpDown1 шерту оятқ ыш-минуттың сигнал беру уақ ытын ө згертеді procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType); begin if UpDown2.Position < 10 then Label5.Caption: = '0' + IntToStr(UpDown2.Position) else Label5.Caption: = IntToStr(UpDown2.Position); end; // OK батырмасын шерту procedure TForm1.Button1Click(Sender: TObject); begin // оятқ ышты орнату AlHour: = UpDown1.Position; AlMin: = UpDown2.Position; Timer1.Tag: = 1; Form1.Hide; // Timer1.Interval: = 3000; // ә рбір 3 секунд сайын тексеру end; end.
№14 - лабораториялық жұ мыс. Олимпиада жалауы Жұ мыстың мақ саты – пішін бетінде олимпиада жалауын сызатын бағ дарлама қ ұ ру. Сурет Ішкі бағ дарлама листингі: unit Unitl; {$R *.dfm} procedure TForm1.FormPaint(Sender: TObject); begin with Canvas do begin // жалауша Canvas.Pen.Width: = 1; Canvas.Pen.Color: = clBlack; Canvas.Brush.Color: = clCream; Rectangle(30, 30, 150, 115); // сақ иналар Pen.Width: = 2; Brush.Style: = bsClear; // шең бердің ішкі аймағ ын боямау Pen.Color: = clBlue; Ellipse(40, 40, 80, 80); Pen.Color: = clBlack; Ellipse(70, 40, 110, 80); Pen.Color: = clRed; Ellipse(100, 40, 140, 80); Pen.Color: = clYellow; Ellipse(55, 65, 95, 105); Pen.Color: = clGreen; Ellipse(85, 65, 125, 105); end; end; end. №15 - лабораториялық жұ мыс. Функция графигін салу Жұ мыстың мақ саты – тү рлі функциялар графигін салатын бағ дарлама қ ұ ру. Тө менде ү лгі ү шін сызық тық жә не квадраттық фукциялардың графиктерін (0-7) аралығ ында салу қ арастырылды. Бағ дарламада кезкелген графикті (0-15) аралығ ында қ ұ руғ а болады.
Сурет
Сурет
Сурет
Сурет Жұ мысты орындау бағ дарламасы: unit grafik01; //GR процедурасын бетінде график сызылатын жә не ө зі басқ а //модульде орналасқ ан Form2 пішіні ү шін onPaint оқ иғ асын ө ң деу //процедурасы шақ ырады. // Сондық тан функция хабарландыруын басқ а модульден шақ ырып //алу ү шін Interface тарауында орналастыру қ ажет. procedure gr; implementation uses grafik02; {$R *.dfm} { Пішінді қ ұ ру кезінде StringGrid компонентінің қ асиетін орнату: FixedRows: = 0; RowCount: = 2; Options.goEditing: = True; Options.goTab: = True; } const COLCOUNT = 15; var // функцияның аргументтері мен мә ндері x: array[1..COLCOUNT] of real; y: array[1..COLCOUNT] of real; // x, y жиымының мә ндері бойынша график салу procedure gr; var i: integer; x1, x2: real; // функция аргументінің ө згеру шектері y1, y2: real; // функция мә ндерінің ө згеру шектері l, b: integer; // график шығ атын аймақ тың сол жақ тө менгі бұ рышы w, h: integer; // график шығ атын аймақ тың ені мен биіктігі mx, my: real; // X жә не Y осьтері бойынша масштаб x0, y0: integer; // координат осьтерінің қ иылысу нү ктесі px, py: integer; // пішін бетіндегі графиктің нү кте координаталары np: integer; // графиктегі нү ктелер саны begin Form2.Canvas.Rectangle(0, 0, Form2.ClientWidth, Form2.ClientHeight); // график шығ атын аймақ i: =10; // X - сол жақ жоғ арғ ы бұ рыш координатасы b: =Form2.ClientHeight-20; // Y – сол жақ тө менгі бұ рыш //координатасы h: =Form2.ClientHeight-40; //биіктігі w: =Form2.Width-40; // ені // аргументтің ө згеру шектері мен нү ктелер санын анық тау (X //жиымының элементтері ө спелі тізбек қ ұ рауы тиіс) x1: =x[1]; i: =1; while (x[i+1] > x[i]) and (i < COLCOUNT) do i: = i+1; x2: = x[i]; //x[COLCOUNT-1]; np: =i; // нү ктелер саны if np < 2 then begin ShowMessage('График нү ктелері екіден кем болмауы қ ажет'); exit; end; // функцияның ең ү лкен жә не ең кіші мә ндерін табу y1: =0; y[1]; // минимум y2: =0; y[1]; // максимум for i: =1 to np do begin if y[i] < y1 then y1: =y[i]; if y[i] > y2 then y2: =y[i]; end; // масштабты есептеу my: =h/abs(y2-y1); // Y осі бойынша масштаб mx: =w/abs(x2-x1); //X осі бойынша масштаб // координат осьтерінің қ иылысу нү ктесі x0: =l+Abs(Round(x1*mx)); y0: =b-Abs(Round(y1*my)); with form2.Canvas do begin MoveTo(x0, b); LineTo(x0, b-h); // ось Y MoveTo(l, y0); LineTo(l+w, y0); // ось X TextOut(l+5, b-h, FloatToStrF(y2, ffGeneral, 6, 3)); TextOut(l+2, b+2, FloatToStrF(y1, ffGeneral, 6, 3)); // график салу for i: =1 to np do begin px: = x0+Round(x[i]*mx); py: = y0-Round(y[i]*my); Form2.Canvas.Pen.Color: = clRed; Rectangle(px-2, py-2, px+2, py+2); // маркер if Form1.CheckBox1.Checked then // қ осу сызығ ы if i = 1
|