|
|||
№5 зертханалық жұмыс. Программаларды жобалау әдістері,декомпозиция. Таңдау командасы№5 зертханалық жұ мыс. Программаларды жобалау ә дістері, декомпозиция. Таң дау командасы
Мақ саты: Таң дау операторының жазылуы мен пайдаланылуын мең геру. Теориялық бө лім
Егер алгоритмде бiрнеше жағ дайдың бiреуiн пайдалану қ ажет болса, онда таң дау операторы қ олданылады. Таң дау case операторымен программаланады. If операторы екi жағ дайдың бiреуiн орындайды, ал case операторы бiрнеше жағ дайдың бiреуiн таң дайды. Жағ дайлар таң дау айнымалысының мә нiне байланысты таң далады. Жазылу форматы: case < таң дау айнымалысы> of < 1-тiзiм (мә н)>: < оператор 1; > < 2-тiзiм (мә н)>: < оператор 2; > < n-тiзiм(мә н)>: < оператор n; > [ else < оператор> ] end; Case операторының орындалу тә ртiбi: Алдымен < таң дау айнымалысының > мә нi анық талады. Анық талғ ан мә н қ ай тiзiмге жатса, сол тiзiмге сә йкес келетiн оператор орындалады да, басқ а операторлар орындалмай, case операторы жұ мысын аяқ тайды. Егер < таң дау айнымалысының > мә нi тiзiмнiң ешбiреуiне жатпаса, онда else-де кө рсетiлген < оператор> орындалады. Еlse болмаса, case операторы жұ мысын аяқ тайды. Case операторын пайдалану ережелерi: 1. Таң дау айнымалысы мен тiзiмдегi мә ндер бiр типтi болу керек. 2. Еlse тармағ ының болуы мiндеттi емес, кей жағ дайда жазбауғ а да болады, егер else тармағ ы жазылса, алдың ғ ы оператордан соң (; ) қ ойылады. 3. Мә ндер тiзiмiнде ү тiрмен ажыратылғ ан жеке мә ндердi немесе бастапқ ы жә не соң ғ ы мә ндерi “.. ” ажыратылғ ан диапазонды кө рсетуге болады. 4. < Операторда> “; ”-мен ажыратылғ ан бiрнеше операторды жазуғ а болады. 5. Таң дау айнымалысы литерлiк, бульдiк жә не пайдаланушының типтерiнде болады. Ескерту: String, real типтегi айнымалылар таң дау айнымалысы бола алмайды!
Мысал: Арифметикалық тө рт амалды (+, -, *, / ) орындайтын калькуляторды бейнелейтiн бағ дарлама. program calk; var x, y, r: real; amal, a: char; begin repeat write (‘x = ‘ ); readln (x); write (‘y = ‘ ); readln (y); writeln (‘операция +, –, *, /’ ); readln (amal ); case amal of ‘+’: rezult: = x + y; ‘– ‘: rezult: = x-y; ‘*’: rezult: = x*y; ‘ / ‘: rezult: = x/y; else writeln (‘қ ате белгi’); end; writeln (x, amal, y, ’=’, r ); write (‘жалғ астырасың ба Y/N ‘ ); readln (a ); until (a =’ N’) or (a =’n’); end.
Пайдаланылатын айнымалылар: х, y - берiлген сандар; r - нә тиже; amal айнымалысы 1 символдық типтi, бұ л айнымалыда арифметикалық операцияның белгiсi сақ талады. a айнымалысында бағ дарламаның аяқ талу белгiсi сақ талады, типi-символдық; N немесе n клавишасы басылғ анда бағ дарлама жұ мысын аяқ тайды. Бағ дарламаның орындалу барысында х, у мә ндерi клавиатурадан енгiзiледi. Одан соң мына жолдармен writeln (‘операция +, –, *, /’ ); readln (amal ); операцияның белгiсi amal айнымалысына енгiзiледi. Case операторы amal айнымалысының мә нi бойынша, арифметикалық операцияны орындайды. Мысалы, егер amal айнымалының мә нi “ * “ болса, онда r: =x*y операторы орындалады. Егер amal мә нi ешбiр белгi болмаса, else-ден кейiнгi жол орындалады да, экранғ а “қ ате белгi” деген хабарлама шығ ады. (Repeat, until операторлары туралы алдағ ы тақ ырыптарда тү сiнiк берiледi). Пайдаланушының типтерi. Айнымалының қ абылдайтын мә ндерi алдын ала белгiлi жағ дайда, пайдаланушы стандарттық емес ө з типтерiн жасауына болады. Паскаль тiлiнде пайдаланушы жасағ ан типтi сипаттау ү шiн type резервтелген сө зi қ олданылады.
Жазылу форматы: type < типтiң аты> = < тип мә нi>; Пайдаланушы жасайтын типтер екi тү рлi болады. Олар: санақ тық (перечисляемый) жә не аралық тық (интервальный) типтер. Бұ л типтегi берiлгендер жадының бiр байтын алады, сондық тан пайдаланушының типтерi 256-дан кө п элементтен тұ ра алмайды. Бұ л типтердi қ олдану енгiзiлетiн мә ндердi бақ ылайды, бағ дарламаның кө рнекiлiгiн жақ сартады, жадыны ү немдейдi жә не қ атенi iздеудi жең iлдетедi.
|
|||
|