Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Тапсырма №3
Жаң а қ осымша ү шін BbRunClick оқ иғ а ө ң деушісін қ ұ райық, ол ү шін File/ New/ Application командаларын орындаймыз. Procedure TfmExample.BbrunClick(Sender: TObject); var i, N, Sum: integer; begin Try // Дұ рыстығ ын қ адағ алай отырып, енгізуді ұ йымдастырамыз. N: =StrToInt(edinput.Text); Except//егер қ ате болса, тө мендегі операторлар орындалады ShowMessage ('бү тін санды енгізуде қ ате бар'); Edinput.SelectAll; // Қ атесі бар жолды ерекшелейміз. Exit; // ө ң деушінің жұ мысын аяқ таймыз End; Edinput.Text: =''; Edinput.SetFocus; Sum: =0; // қ осындының бастапқ ы мә ні For i: =1 to N do// қ осындыны есептеу Sum: =Sum+i; MmOutput.Lines.Add('Барлық бү тін сандар қ осындысы' +' 1...' +IntToStr(N) + 'аралығ ындағ ы сандар тең болады: '+ IntToStr(Sum)); End; Программағ а тү сініктеме Алдымен тө мендегі операторларғ а назар аударың ыз: Try // Дұ рыстығ ын қ адағ алай отырып, енгізуді ұ йымдастырамыз. N: =StrToInt(edinput.Text); Except//егер қ ате болса, тө мендегі операторлар орындалады ShowMessage ('бү тін санды енгізуде қ ате бар'); Edinput.SelectAll; // Қ атесі бар жолды ерекшелейміз. Exit; // ө ң деушінің жұ мысын аяқ таймыз End; Try (Сынау), Except (шығ арып тастау) жә не End қ ызметші сө здерінің кө мегімен программаның қ орғ алғ ан бө лігі орындалады. Осындай қ орғ аныс қ ою арқ ылы программист программа жұ мысын бұ зылудан қ орғ айды. Алдың ғ ы программадан айырмашылығ ы Edinput компонентін ө згертпедік. егер бұ л мә тінде бү тін сандардың берілуі дұ рыс болмаса, онда тө мендегі оператор орындалады: N: =StrToInt(edinput.Text); Ә деттегі программада осылай жазылса, ол программаның апатты аяқ талуына ә келер еді. Мұ ндай жағ дай болмас ү шін, біз ол операторды Try операторынан кейін, Except операторының алдына орналастырдық. Егер қ ате болса, Except жә не End аралығ ындағ ы барлық операторлар қ алдырылып, ө ң деуші дұ рыс жұ мыс істейді. Егер қ ате табылса, басқ ару автоматты тү рде Except операторынан кейінгі орналасқ ан операторларғ а беріліп, ө ң деу жұ мысы басталады. Алдымен, стандартты ShowMessage процедурасының кө мегімен пайдаланушығ а қ ате жө нінде хабарланады, одан кейін Edinput.SelectAll жолының кө мегімен Edinput компонентіндегі қ ате мә тін ерекшеленеді. Одан кейін Exit стандартты процедурасының кө мегімен ө ң деушінің жұ мысын апатты тү рде аяқ таймыз(бірақ ол программаның жұ мысы емес!). Тө мендегі екі мә селені ескеру қ ажет. Біріншіден For операторының жұ мысын басқ аратын шарт < оператор> орындалар алдында тексеріледі, егер шарт сақ талмаса For операторындағ ы қ айталанатын оператор бірде бір рет орындалмайды. Цикл қ адамы ү немі тұ рақ ты жә не (+1)-ге тең. Бұ л оператордың жазылу тү рі тө мендегідей: For < қ айталау параметрі>: = < Xmin> to < Xmax> do оператор; Мұ ндағ ы to қ ызметші сө зін downto қ ызметші сө зіне ауыстырсақ цикл қ адамы (-1)-ге тең болады, ал жазылу тү рі тө мендегідей болады: For < қ айталау параметрі>: = < Xmin> downto < Xmax> do оператор; Алдымен мысалды кез келген оң жә не теріс сандардың қ осындысын есептеуге болатындай етіп тү рлендіруге болады: ... Sum: =0; if N> =0 then For i: =1 to N do Sum: =Sum+i Else For i: =N to downto -1 do Sum: =Sum-i; ...
|