1 Деректер қорына кіріспе



Pdf көрінісі
бет2/26
Дата02.10.2023
өлшемі1,23 Mb.
#112432
1   2   3   4   5   6   7   8   9   ...   26
Тапсырма 1.
Жалақыны есептеу. 
Есепті екі жеңілдетілген болжаммен қарастырайық:
1)
Қызметкерге жалақы оның айлығы (оклад) негізінде есептеледі. 
2)
Бірде-бір салықтар мен ұстап қалулар ескерілмейді.
Осы есепті шешуге арналған қызметкерлер бойынша мәліметтер келесі 
«ЕСЕПТЕП ЖАЗУ» карточкасында берілген:
Тегі, 
аты-жөні, 
әкесінің аты 
Айлық 
Бір айдағы жұмыс 
жасаған 
күндер 
саны
Есептелген 
сомасы 
FIO 

K
o

Әр қызметкер үшін белгілі-бір айға есептелген сома келесі формула 
бойынша есептеледі:
S=K
o
O/K
r

мұндағы K
r
– берілген айдағы жұмыс күндерінің саны.
Әр қызметкер үшін сәйкес деректер нақты мәнге ие, мысалы:
Иванов 
Иван 
Иванович 
180000 
24 
180000 
Бұл мәндердің мәні бір бірімен байланыс кезінде ғана бар. Жеке 
таңдалған 180000 саны өзінің мағыналық мәнін жоғалтатындықтан, мұнда оны 



қарапайым айнымалы деректер түрінде қолдануға болмайды. Сонымен бірге, 
нақты қызметкерді сипаттайтын, сәйкес мәндер жиыны әртүрлі типте 
(символдық және сандық) болады, яғни оларды ұсыну үшін жиын сияқты 
деректер түрінде қолдануға болмайды. Осылайша, «қарапайым айнымалы» 
және «жиын» түсініктері, сәйкес карточканы ұсыну үшін, жеткіліксіз.
Есептелмейтін есептердің пәндік аймақтарында осындай деректерді 
ұсынуды бейнелеу үшін жаңа түсініктер реті енгізілді [1.1]. 
Деректер элементі (өріс) – атаулы деректердің ең кіші бірлігі. 
Берілген мысал үшін деректер элементі FIO, O, K
o
, S болып табылады.
Қызметкер карточкасын сипаттау үшін «Логикалық жазба» түсінігі 
қолданылады.
Логикалық жазба – деректер элементтерінің (өрістер) атаулы жиынтығы.
Логикалық жазба данасы (экземпляр) – жазба элементтерінің ағымдағы 
мәні. 
Қызметкерлер карточкаларының барлық жиынын ұсыну үшін 
«Логикалық файл» түсінігі қолданылады.
Логикалық файл – берілген типтегі барлық жазба даналарының атаулы 
жиынтығы.
«ТӨЛЕМ» (НАЧИСЛЕНИЕ) логикалық файлының мысалы:
Иванов 
Иван 
Иванович 
180000 
24 
180000 
Абаев 
Абай 
Абаевич 
220000 
20 
183000 
------------------ 
--------------------- 
------------------- 
------------ 
Акпаева 
Лиза 
Маратовна 
250000 
24 
250000 
Осылайша, енгізілген түсініктердің көмегімен сәйкес деректерді 
бейнелеуге болады. Заманауи бағдарламалау тілдерінде, есептеуіш есептерге 
және де деректерді өңдейтін есептерге арналған, осы түсініктерді бейнелеу 
үшін жаңа деректер түрі енгізілді.
Паскаль алгоритмдік тілінде, жазба (RECORD) – әртүрлі типте бола 
алатын, бірнеше компоненттері бар күрделі айнымалылар секілді, деректер 
түрлері енгізіледі. Сонымен қатар, жазба (өріс) компоненттеріне рұқсат индекс 
бойынша емес, ал атау бойынша жүзеге асады. Тапсырма 1 Паскаль 
бағдарламалау тілінде бағдарламалау кезінде «ТӨЛЕМ» (НАЧИСЛЕНИЕ) 
логикалық жазба (логикалық файл) «RECORD» деректер түрімен ұсынылады, 
қызметкерлердің логикалық жазба даналарының жиыны, Паскаль тілінің 
құралдарымен және операциялық жүйемен құрастырылатын, «физикалық» 
файлмен ұсынылады.
Salary = RECORD 
FIO: string; 
O: 
real; 
Ko: real; 



S: 
real; 
END; 
Мұндай есептеуіш емес есептердің маңызды ерекшелігін атап өтейік. 
Мұндай есептерге үлкен көлемді деректер (қызметкерлердің үлкен саны, 
өндірілетін өнімнің үлкен саны т.с.с.) сипаты тән. Көрсетілген деректер, 
ережеге сәйкес, есептерді шешу үшін бірнеше рет қолданылады (еңбек ақы 
үнемі әр ай сайын есептеледі), сондықтан деректер ЭЕМ жадында жеткілікті 
ұзақ сақталуы қажет. Ұзақ уақыт сақтау үшін үнемі сыртқы жады қолданылады.
Осыған байланысты тапсырма 1 екі сатыдан тұрады.
1. бастапқы деректерді енгізу және оларды сыртқы жадыға кіргізу.
type 
Salary = RECORD 
FIO: 
string; 
O: 
real; 
Ko: 
real; 
S: 
real; 
END; 
FSalary = File of Salary; 
var 
F: FSalary; 
... 
{ Бастапқы деректерді енгізу } 
repeat 
write('Қызметкерлер санын енгізіңіз (көп емес', 
MaxN,' ): ');
readln(N); 
until (N>0) AND (N<=MaxN); 
For I := 1 to N do 
Begin 
Write(I,'нөмірлі қызметкер тегін енгізіңіз: '); 
ReadLn(Sotr[i].FIO); 
Write(I,'нөмірлі қызметкердің еңбек ақысын енгізіңіз: '); 
ReadLn(Sotr[i].O); 
Write(I,'нөмірлі қызметкердің жұмыс жасаған күндер санын енгізіңіз:'); 
ReadLn(Sotr[i].Ko); 
End; 
{ Деректерді сыртқы жадыға кіргізу } 
Assign(F, 'MyFile.fsf'); 
Rewrite(F); 
For I := 1 to N do 
Write(F, Sotr[i]); 
Close(F); 
... 



2. Сыртқы жадыдан бастапқы деректерді оқу, есептелген соманың есебі 
және оларды баспаға шығару.
... 
{ Сыртқы жадыдан мәліметтерді оқу } 
Assign(F, 'MyFile.fsf'); 
Reset(F); 
For I := 1 to N do 
Read(F, Sotr[i]); 
Close(F); 
{ есептелген сома есебі және баспаға шығару } 
For I := 1 to N do 
Begin 
Sotr[i].S := Sotr[i].O * Sotr[i].Ko / Kr; 
WriteLn(Sotr[i].FIO, ': ', Sotr[i].S); 
End; 
... 
Ұсынылған бағдарламалар қойылған есепті жасалған болжамдар 
бойынша шешеді. Бұған қажетті деректер, тек осы есепті шешу үшін арналған,
MyFile.fsf файлында сақталады. Атап өтейік, бұл жағдайда деректерді сипаттау 
қолданбалы бағдарламаға қосылған. Жазба файлының форматын өзгерту 
кезінде қолданбалы бағдарламаны да өзгерту қажет. Осылайша, қойылған 
есепті шешетін, бағдарламалық жүйе өзінің өзіне меншікті деректерін 
анықтайды және оларды басқарады. Мұндай бағдарламалық жүйелер файлдық 
жүйелер деп аталады [1.2 [ 1.3 ]. 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   26




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет