|
Сонли ва санали малумотларни кайта ишлаш
|
bet | 28/30 | Sana | 02.03.2022 | Hajmi | 420 Kb. | | #354 |
Сонли ва санали малумотларни кайта ишлаш.
Кайта ишлаш аммалларини DATA туридаги кийматларга куллаш натижасида улар белгили куринишга айлантирилиши мумкин;ой тартиб ракамига караб унинг номи келиб чикиши мумкин,берилган сана буйича хафта кунининг номи ва х.з. Бу ва бошка саналарни кайта ишлаш аммалари куйида куриб чикиладиган махсус функциялар оркали амалга оширилади.
CTOD функцияси DATA туридаги кийматни белгили кийматга айлантириш учун мулжалланган:
.? CTOD (01/01/20)
01/01/90
Кавсларда курсатиладиган функция аргументи сананинг кавсга ёки аппострофга олинган мм/дд/гг - мм ой тартиб раками,дд ой куни,гг йилнинг охирги 2та ракамини билдирувчи – форматда ёзилган сананинг белгили каторини акс эттиради.
DATE() функцияси компютерга амалий тизим юкланган вактдаги сананинг кийматини олишга ёрдам беради:
.? DATA ()
04/15/90
CTOD ва DATE функциялари кийматлари DATA туридаги узгармаслар деб каралиши мумкин.dBASE-3 да DATA туридаги яна узгармасларни беришнинг имкониятлари йук.Агар куйидагини киритишга харакат килинса:
.? 01/01/90
у холда экраннинг кейинги каторида 0,01 киймат чикади,бу
01/01/80 белгилар кетма-кетлигининг тизим томонидан сонли уз-
гармас каби кабул килганлигини курсатади.
DATA туридаги ифодалар узгарувчиларги хам узлаштирилиши мумкин.(1-расм)
______________________________
¦. AкCTOD(01/01/90) ¦
¦01/01/90 ¦
¦. STORE 04/16/90 TO B ¦
¦04/16/90 ¦
¦.? A ¦
¦01/01/90 ¦
¦.? B ¦
¦04/16/90 ¦
¦. ¦
¦____________________________¦
1-расм
DATA туридаги узгармас ва узгарувчиларга, тизим томонидан кунларнинг санасидек интерпретацияланувчи, бутун сон "кушилиши" мумкин.Сана ва куннинг кушилиши натижасида оркада булган дастлабкидан мос кунлар сонига янги сана хосил булади.(2-расм)
_______________________________________
¦.? CTOD (01/05/90)+15 ¦
¦01/20/90 ¦
¦.? DATE () ¦
¦04/15/90 ¦
¦.? DATE ()+100 ¦
¦07/24/90 ¦
¦.Cк11/07/17 ¦
¦11/07/17 ¦
¦.? Cк20000 ¦
¦Date tyme mismatch ¦
¦.? C+20000 ? ¦
¦Do you want some help ? (Y/N) NO ¦
¦.? CTOD (C)+20000 ¦
¦08/10/72 ¦
¦. ¦
¦_____________________________________¦
2-расм
2-расмдаги мисолларда сананинг белгили турини билдирувчи С узгарувчига сон кушишга харакат,тизим томонидан нотугри берилганлар тури деб талкин килинишига эътибор беринг.
Саналар узаро тенглаштирилишлари. Бу холда энг сунггиси "катта" хисобланади.3-расмда мантикий шартлар мисоли келтирилган.Улар мантикий муносабат аммаларини саналарга куллашни ахамиятини тушунтириб беради:катта(>),кичкина(<),тенг(к) ва бошкалар.Рост шартлар натижаси -.Т,ёлгон шарт натижаси -.F. 4-расмдаги мисолларни тахлил килганда,04/16/90 куринишидаги "дата узгармасларини" бериб булмаслигига яна бир бор эътибор беринг.
4-расмда берилган мантикий муносабатлар берилганларни танлаш ва излаш шартларида кулланиши мумкин.
5-расмда ANKETA маълумотлар туплами учун DATA киймат турини FOR опцияси,LIST ва LOCATE буйрукларининг мантикий ифодаларида куллаш мисоллари келтирилган, LOCATE буйругида иккита оддий,улардан бири текширишни ва укувчининг тугилган санасига
караб танлашни амалга оширадигин мураккаб излаш шартлари фойдаланилган.
______________________________________
¦. D=04/14/90 ¦
¦04/14/90 ¦
¦.? DATE () ¦
¦.? DATE ()>CTOD(D) ¦
¦.T. ¦
¦.? DATE ()к DATE () ¦
¦.T. ¦
¦.? DATE ()<04/16/90 ¦
¦Date tyme mismatch ¦
¦ ? ¦
¦.? DATE ()<04/16/90 ¦
¦Do you want some help ? (Y/N) NO ¦
¦.? DATE () ¦.T. ¦
¦.? A ¦
¦01/01/90 ¦
¦.? DATE ()<к A ¦
¦.F. ¦
¦. ¦
¦____________________________________¦
4-расм
____________________________________________________________
¦.USE ANKETA ¦
¦.LIST FM,DR ¦
¦Record# FM DR ¦
¦ 1 Иванов 11/02/78 ¦
¦ 2 Астафьев 01/23/78 ¦
¦ 3 Борисов 12/04/79 ¦
¦ 4 Козлов 08/24/79 ¦
¦ 5 Мельникова 05/21/78 ¦
¦ 6 Власов 04/26/79 ¦
¦.LIST FM,DR FOR DR ¦Record# FM DR ¦
¦ 1 Иванов 11/02/78 ¦
¦ 2 Астафьев 01/23/78 ¦
¦ 5 Мельникова 05/21/78 ¦
¦.LOCATE FOR POLкж.AND.DR>кCTOD(01/01/79) ¦
¦Record к 6 ¦
¦.DISP FM,DR ¦
¦Record# FM DR ¦
¦ 6 Власова 04/26/79 ¦
¦___________________________________________________________¦
5-расм
dBASEдан фойдаланувчи DATA туридаги кийматларни кайта ишлаш
имкониятларини кенгайтирувчи,юкорида курилганлардан бошка,бир
нечта функциялардан фойдаланиши мумкин.
CDOW функцияси берилган сана учун хафта кунининг белгили
кийматини ташкил килади.
DOW функциясининг натижасида хафта кунининг бир неча
давлатларда кабул килинган сонли тартиб киймат ракам хосил
булади.
Якшанба - 1,
Душанба - 2,
ва хокозо.
DOW функцясини куллашга мисоллар 6(б) расмда келтирилган.
DAY функцияси берилган санадан ой куни (кк)ни курсатувчи белгиларни ажратиб,уларни ракамли кийматга айлантиради (6(в)-рассм)
CMONTH функцияси берилган сана учун ой номининг белгили кийматини ташкил килади.(7(б)-расм)
MONTH функцияси йилдаги ой тартиб ракамини сон кийматини ташкил килади.
YEAR функцияси берилган санадаги йилнинг охирги 2 белгисини (йй) ажратади ва 19йй форматдаги йилнинг ракамли кийматини ташкил килади.(7(в)-расм)
________________________________
а)¦.? DATE () ¦
¦04/15/90 ¦
¦.? CDOW(DATE()) ¦
¦ Sunday ¦
¦.? CDOW(CTOD(01/01/91)) ¦
¦ Tuesday ¦
¦.B=CTOD(04/16/90) ¦
¦04/16/90 ¦
¦.? CDOW(B) ¦
¦ Monday ¦
¦.? CDOW(B+17) ¦
¦Thursday ¦
¦. ¦
¦______________________________¦
______________________________
б) ¦.? DOW (DATE()) ¦
¦1 ¦
¦.? DOW (B) ¦
¦2 ¦
¦.? DOW (B+17) ¦
¦5 ¦
¦. ¦
¦____________________________¦
______________________________
в)¦.? DAY (DATE()) ¦
¦15 ¦
¦.? DAY (DATE()+24) ¦
¦9 ¦
¦.? DAY(B) ¦
¦16 ¦
¦.? DAY(B+24) ¦
¦10 ¦
¦. ¦
¦____________________________¦
5-расм
____________________________________________________
¦ __________________________ ¦
¦ ¦.? DATE() ¦а) ¦
¦ ¦04/15/90 ¦ ¦
¦ ¦.? CMONTH(DATE()) ¦ ¦
¦ ¦April ¦ ¦
¦ ¦.? CMONTH (DATE()+236) ¦ ¦
¦ ¦December ¦ ¦
¦ ¦. ¦ ¦
¦ ¦________________________¦ ¦
¦ __________________________ ¦
¦ ¦.? MONTH(DATE()) ¦б) ¦
¦ ¦ 4 ¦ ¦
¦ ¦.? MONTH (DATE()+236) ¦ ¦
¦ ¦ 12 ¦ ¦
¦ ¦. ¦ ¦
¦ ¦________________________¦ ¦
¦ ¦
¦ __________________________ ¦
¦ ¦.?YEAR (DATE( )) ¦в) ¦
¦ ¦ 1990 ¦ ¦
¦ ¦.?YEAR (DATE( )+2000) ¦ ¦
¦ ¦ 1995 ¦ ¦
¦ ¦.?YEAR (DATE( ))+15 ¦ ¦
¦ ¦ 2005 ¦ ¦
¦ ¦. ¦ ¦
¦ ¦________________________¦ ¦
¦__________________________________________________¦
5-расм
DTOC функцияси CTOD функцияси бажарадиган ишига карама-карши. Бу функция DATA турида берилган кийматни белгили куринишга келтирилади.(6-расм)
___________________________________________________
¦.? DTOC (DATE())+ -дата ¦
¦ ¦
¦ 04/15/90-дата ¦
¦.USE KARTUCH ¦
¦.Fк"Мельникова" ¦
¦ Мельникова ¦
¦ .LOCATE FOR FMкF ¦
¦ RECORDк5 ¦
¦ .TкF+":"+"дата рождения"+DTOC(DR) ¦
¦ Мельникова:дата рождения-05/21/78 ¦
¦ ¦
¦__________________________________________________¦ ¦
6-расм
Куриб чикилган функциялар dBASE воситаларини ташкил килади.Булар DATA туридаги берилганларни амалда кайта ишлашдаги
хохлаган мисолларни ечишда етарлидир.Натижаси белгили булган, саналарни кайта ишлаш функциялари купинча матнли ахборотлар ва маълумотларни шакллантириш ва босиб чикаришда ишлатилади.
DAY,MONTH,YEAR функцияларнинг натижаси булган сонли ифодалар,математик кайта ишлашларда учраши мумкин.STR ва CTOD
функциялар ёрдамида олинган йил,ой,кунларнинг янги ракамли кийматлари кайтатдан DATA туридаги белгиларга айлантирилиши мумкин.
REPLACE буйруги ёрдамида сананинг хисобланган кийматлари МТИ ёзувларининг DATA туридаги майдониларга саклаш учун жойланиши мумкин. Хулосада берилганлар тупламини DATA туридаги майдонлар буйича курсаткичлашнинг хусусиятларини куриб чикамиз.3.3да курсаткичлашнинг факат белгили кийматларда бажарилиши хакида айтилган эди. Шунинг учун,масалан,ANKETA берилганлар базасини ТS-"Тугилган
сана" майдони буйича курсаткичлаш учун ТS майдонини белгили кийматга айлантириш керак.Лекин,санани оддий йул билан,DTOC
функцияси ёрдамида (7-расм),белгили кийматга айлантириш, хохланган натижага олиб келмайди.Бу холда саналарни солиштириш, белгили берилганлар муносабатларида кулланиладиган, коидалар оркали амалга оширилади. Шунинг учун, LIST буйруги билан олинган руйхатда биринчи булиб тугилган йилига боглик булмасдан январда тугилган кимса туради, ундан кейин апрелда ва х.з. ____________________________________________________
¦.USE ANKETA ¦ ¦
¦.INDEX TO ANK DR ON DTOC(DR) ¦
¦ 6 records indexed ¦
¦.LIST FM,DR ¦
¦Record # FM DR ¦
¦ 2 Астафьев 01/23/78 ¦
¦ 6 Власова 04/26/79 ¦
¦ 5 Мельникова 05/21/78 ¦
¦ 4 Козлов 08/24/79 ¦
¦ 1 Иванов 11/02/78 ¦
¦ 3 Борисов 12/04/79 ¦
¦ ¦
¦__________________________________________________¦
7-расм
Тартиблашни тугри бажаришга тугилган йилни билдирувчи 2 соннинг санани ифодалашнинг,оо/кк/йй стандарт форматининг охирида туришлиги халакит беради.Шунинг учун,тартиблашдан аввал DATA туридаги кийматни,биринчи уринда йил ракамлари,кейин ойнинг 2 раками ва охирида куннинг 2 раками турган белгили каторга айлантириб олиш керак.
8-расмда ANKETA берилганлар тупламини жорий ёзувлари учун шундай кийматларни олишнинг 2 имконияти курсатилган.Улардан биттаси куйидагига ухшайди:
STR(YEAR(TS)+STR(MONTH(DR))+STR(DAY(DR))
бошкаси эса -
STR (YEAR (DR),4)+STR(MONTH(DR),2+STR(DAY(DR),2)
____________________________________________________
¦. USE ANKETA ¦
¦.AкSTR(YEAR(DR)) ¦
¦ 1979 ¦
¦.BкSTR(MONTH(DR)) ¦
¦ 11 ¦
¦.CкSTR(DAY(DR)) ¦
¦.?A+B+C ¦
¦ 1978 11 ¦
¦.AкSTR(YEAR(DR),4) ¦
¦1978 ¦
¦.BкSTR(MONTH(DR),2) ¦
¦11 ¦
¦.CкSTR(DAY(DR),2) ¦
¦2 ¦
¦.?A+B+C ¦
¦1978 11 2 ¦
¦. ¦
¦__________________________________________________¦
8-расм
Берилганлар базасини DR майдон буйича ON опциясида кур-
саткичлашда келтирилган ифодалардан факат иккинчиси-
ни куллаш мумкин .2 ифоданинг биринчидан фарки:хар бир STR функци-
яси оркали айлантирилган киймат олиб келади.Тасвирлаб бирилганидек,STR функциясининг узунлигини курсатувчисиз ишлатиш кенг таркалган хатолик хисобланади. Шунинг учун бунга этибор беринг.
9-расимда ANKETA берилганлар базасини "тугилган сана" буйича индексировка килишни тўєри буйруєи кўрсатилган ва яна экранга индексировкадан кейин чикадиган берилганлар базасининг ёзувлари чикади. Расмдан кўриниб турибдики .ёзувлар катнашчиларнинг "ўсиб бориш" тартибида киритилади .
______________________________________________________
¦.USE ANKETA ¦
¦.INDEX TO ANK DR ON STR(YEAR(DR),4+STR(MONTH(DR),2)+;¦
¦ STR(DAY(DR),2) ¦
¦ 6 Records indexed ¦
¦.LIST FM,DR ¦
¦Record # FM DR ¦
¦ 2 Астафьев 01/23/78 ¦
¦ 5 Мельникова 05/21/78 ¦
¦ 1 Иванов 11/02/78 ¦
¦ 6 Власова 04/26/79 ¦
¦ 4 Козлов 08/24/79 ¦
¦ 3 Борисов 12/04/79 ¦
¦. ¦
¦_____________________________________________________¦
9-расм
10-расмда FIND ва SEEK буйрукларининг ишлатилишига доир мисоллар бор.Бу буйруїлар DR-"туєулган сана" майдонли ифоданинг индиксация килинган. ANKETA берилганлар базаси кидирув ташкил килади. Этибор беринг."кун" ва "ой" ифодалари доим икки белги билан ифодаланиши лозим,
агар.кун ёки ой ифодасини номери 1 ракам билан берилса.у холда кидирувда у билан "пробел" белгиси бирга юриши лозим. Колган хамма вари-
антлар (1та раїам .0 билан раїам вхк) "NO FIND" (топилмади)га олиб келади.
_______________________________________________________
а) ¦.USE AN KE TA IN DEX ANK_DR ¦
¦.FIND 1978112 ¦
¦No find ¦
¦.FIND 197811 2 ¦
¦.DISP FM,DR ¦
¦Record # FM DR ¦
¦ 1 Иванов 11/02/78 ¦
¦.GOTO TOP ¦
¦.FIND 1979 426 ¦
¦.DISP FM,DR ¦
¦Record# FM DR ¦
¦ 6 Власова 04/26/79 ¦
¦. ¦
¦_____________________________________________________¦
____________________________________________________
б) ¦.GOTO TOP ¦
¦.SEEK '1978'+'11'+'2' ¦
¦No find ¦
¦.SEEK '1978'+'11'+'2' ¦
¦.DISP FM,DR ¦
¦Record# FM DR ¦
¦ 1 Иванов 11/02/78 ¦
¦. ¦
¦__________________________________________________¦
10-расм
___________________________________________________
¦.? DTOC (DATE())+ -дата ¦
¦ ¦
¦ 04/15/90-дата ¦
¦.USE KARTUCH ¦
¦.Fк"Мельникова" ¦
¦ Мельникова ¦
¦ .LOCATE FOR FMкF ¦
¦ RECORDк5 ¦
¦ .TкF+":"+"дата рождения"+DTOC(DR) ¦
¦ Мельникова:дата рождения-05/21/78 ¦
¦ ¦
¦__________________________________________________¦ ¦
6-расм
____________________________________________________
¦.USE ANKETA ¦ ¦
¦.INDEX TO ANK DR ON DTOC(DR) ¦
¦ 6 records indexed ¦
¦.LIST FM,DR ¦
¦Record # FM DR ¦
¦ 2 Астафьев 01/23/78 ¦
¦ 6 Власова 04/26/79 ¦
¦ 5 Мельникова 05/21/78 ¦
¦ 4 Козлов 08/24/79 ¦
¦ 1 Иванов 11/02/78 ¦
¦ 3 Борисов 12/04/79 ¦
¦ ¦
¦__________________________________________________¦
7-расм
______________________________________________________
¦.USE ANKETA ¦
¦.INDEX TO ANK DR ON STR(YEAR(DR),4+STR(MONTH(DR),2)+;¦
¦ STR(DAY(DR),2) ¦
¦ 6 Records indexed ¦
¦.LIST FM,DR ¦
¦Record # FM DR ¦
¦ 2 Астафьев 01/23/78 ¦
¦ 5 Мельникова 05/21/78 ¦
¦ 1 Иванов 11/02/78 ¦
¦ 6 Власова 04/26/79 ¦
¦ 4 Козлов 08/24/79 ¦
¦ 3 Борисов 12/04/79 ¦
¦. ¦
¦_____________________________________________________¦
9-расм
_______________________________________________________
¦.GO TO TOP ¦
¦.SEEK "1978"+"11"+"2" ¦
¦No find ¦
¦.SEEK "1978"+"11"+"2" ¦
¦.DISP FM,DR ¦
¦Record # FM DR ¦
¦ 1 Иванов 11/02/78 ¦
¦. ¦
¦_____________________________________________________¦
10-расм(б)
____________________________________________________
¦. USE ANKETA ¦
¦.A=STR(YEAR(DR)) ¦
¦ 1979 ¦
¦.B=STR(MONTH(DR)) ¦
¦ 11 ¦
¦.C=STR(DAY(DR)) ¦
¦.?A+B+C ¦
¦ 1978 11 ¦
¦.A=STR(YEAR(DR),4) ¦
¦1978 ¦
¦.B=STR(MONTH(DR),2) ¦
¦11 ¦
¦.C=STR(DAY(DR),2) ¦
¦2 ¦
¦.?A+B+C ¦
¦1978 11 2 ¦
¦. ¦
¦__________________________________________________¦
8-расм
____________________________________________________
¦ __________________________ ¦
¦ ¦.? DATE() ¦а) ¦
¦ ¦04/15/90 ¦ ¦
¦ ¦.? CMONTH(DATE()) ¦ ¦
¦ ¦April ¦ ¦
¦ ¦.? CMONTH (DATE()+236) ¦ ¦
¦ ¦December ¦ ¦
¦ ¦. ¦ ¦
¦ ¦________________________¦ ¦
¦ __________________________ ¦
¦ ¦.? MONTH(DATE()) ¦б) ¦
¦ ¦ 4 ¦ ¦
¦ ¦.? MONTH (DATE()+236) ¦ ¦
¦ ¦ 12 ¦ ¦
¦ ¦. ¦ ¦
¦ ¦________________________¦ ¦
¦ ¦
¦ __________________________ ¦
¦ ¦.?YEAR (DATE( )) ¦в) ¦
¦ ¦ 1990 ¦ ¦
¦ ¦.?YEAR (DATE( )+2000) ¦ ¦
¦ ¦ 1995 ¦ ¦
¦ ¦.?YEAR (DATE( ))+15 ¦ ¦
¦ ¦ 2005 ¦ ¦
¦ ¦. ¦ ¦
¦ ¦________________________¦ ¦
¦__________________________________________________¦
5-расм
_____________________________________________________________
¦.USE ANKETA ¦
¦.LIST FM,DR ¦
¦Record# FM DR ¦
¦ 1 Иванов 11/02/78 ¦
¦ 2 Астафьев 01/23/78 ¦
¦ 3 Борисов 12/04/79 ¦
¦ 4 Козлов 08/24/79 ¦
¦ 5 Мельникова 05/21/78 ¦
¦ 6 Власов 04/26/79 ¦
¦.LIST FM,DR FOR DR ¦Record# FM DR ¦
¦ 1 Иванов 11/02/78 ¦
¦ 2 Астафьев 01/23/78 ¦
¦ 5 Мельникова 05/21/78 ¦
¦.LOCATE FOR POLкж.AND.DR>кCTOD(01/01/79) ¦
¦Record к 6 ¦
¦.DISP FM,DR ¦
¦Record# FM DR ¦
¦ 6 Власова 04/26/79 ¦
¦___________________________________________________________¦
3-расм
________________________________
а)¦.? DATE () ¦
¦04/15/90 ¦
¦.? CDOW(DATE()) ¦
¦ Sunday ¦
¦.? CDOW(CTOD(01/01/91)) ¦
¦ Tuesday ¦
¦.B=CTOD(04/16/90) ¦
¦04/16/90 ¦
¦.? CDOW(B) ¦
¦ Monday ¦
¦.? CDOW(B+17) ¦
¦Thursday ¦
¦. ¦
¦______________________________¦
______________________________
б) ¦.? DOW (DATE()) ¦
¦1 ¦
¦.? DOW (B) ¦
¦2 ¦
¦.? DOW (B+17) ¦
¦5 ¦
¦. ¦
¦____________________________¦
______________________________
в)¦.? DAY (DATE()) ¦
¦15 ¦
¦.? DAY (DATE()+24) ¦
¦9 ¦
¦.? DAY(B) ¦
¦16 ¦
¦.? DAY(B+24) ¦
¦10 ¦
¦. ¦
¦____________________________¦
4-расм
______________________________
¦
|
| |