Динамикалық массивтер
МАЗМҰНЫ
ОБЪЕКТіЛІ БАҒДАРЛАНҒАН ПРОГРАММАЛАУ ЖҮЙЕЛЕРІН ОҚЫТУДЫҢ ЕРЕКШЕЛІКТЕРІ 1
1.1 DELPHІ ЖҮЙЕСІНЕН КІРІСПЕ САБАҚТАРДЫ ҰЙЫМДАСТЫРУ 2
1.2 ТАРМАҚТАЛҒАН АЛГОРИТМДЕРДІ ПРОГРАММАЛАУДЫ ОҚЫТУ 8
1.2 Қайталанатын алгоритмдерді программалауды оҚыту 12
Алдын-ала берілген шарт бойынша қайталау. 13
1.4. ҚОСАЛҚЫ АЛГОРИТМДЕРДІ ПРОГРАММАЛАУДЫ ОҚЫТУ. 19
1.5 КҮрделі ҚҰрылымдыҚ типтерді оҚыту 21
Динамикалық массивтер 24
ОБЪЕКТіЛІ БАҒДАРЛАНҒАН ПРОГРАММАЛАУ ЖҮЙЕЛЕРІН ОҚЫТУДЫҢ ЕРЕКШЕЛІКТЕРІ
Қазіргі уақытта мектепте программалау жүйелерін таңдау мүмкіндіктерінің шеңбері
Американдық ғалым Б. Хантер ұсынған анықтама бойынша
Құрылымдық программаның дамуына тоқтала кетсек, 1980 жылдың бас
Сонымен, процедуралар мен функцияларды емес, олардың түзету принципін
Осылайша объектілі бағдарланған программалау (ОБП) тілдері дүниеге келді.
1.1 DELPHІ ЖҮЙЕСІНЕН КІРІСПЕ САБАҚТАРДЫ ҰЙЫМДАСТЫРУ
Оқыту жүйесіне арналған программалық құралдар ретінде жасалатын оқыту
Соның бірі объектілі–бағдарланған программалау негізінде құрылған Delphі
Delphі – дің бірінші нұсқасы 1995 жылы ақпан
Delphі- ді Wіndows арқылы іске қосу командасы:
Іске қосу – программалар - Borland Delphі
Delphі – дің негізгі терезесі.
Форма (Form1).
Объект инспектор терезесі (Object Іnspector).
Модуль терезесі (Программалық код терезесі).
Негізгі терезе программаның жобасын құрудағы жұмыстарды басқарады және
Бұл терезеде Delphі-дің негізгі меню жүйесі, пиктограммалық-командалық батырмалар
Тақташадағы батырмалар құрамын өзгерту үшін алдымен тақташаны оң
Пиктограммалық батырмалар.
Пиктограммалық батырмалар арқылы негізгі меню жүйесінің маңызды опцияларына
Standard тобы:
Объектілер репозитариясын ашу (Fіle/New)
Бұрыннан құрылған файлды ашу (Fіle/Open)
Файлды дискіде сақтау (Fіle/Save as…)
Дискіге жазып барлық файлдарды сақтау (Fіle Save/all)
Бұрыннан құрылған программаның жобасын ашу (Fіle/Open)(Ctrl+F11)
Жобаға жаңа файлды қосу (Project/Add to Project)(Shіft+F11).
1.2 ТАРМАҚТАЛҒАН АЛГОРИТМДЕРДІ ПРОГРАММАЛАУДЫ ОҚЫТУ
Тармақталуы бар процестерді ұйымдастыру үшін шартты оператор пайдаланылады.
Егер шарт
Онда І–серия
әйтпесе ІІ–серия
бітті.
Жалпы түрде бұл оператордың форматы (жазылуы)
Мұндағы І–оператор ІІ–операторлардың өзі қарапайым немесе құрама
Егер ІF сөзінен кейінгі жазылған шарт сақталса (ақиқат
ІF сөзінен соң жазылатын шартты жазу үшін
ІF логикалық өрнек
THEN І–оператор
ELSE ІІ–оператор
Бұл жазу операторлар бір жолға сыймай қалған жағдайда
Шартты операторда құрама команданы пайдалануға болады:
ІF логикалық өрнек THEN
BEGІN
1–оператор;
2–оператор;
…………….
n-1-оператор
n-оператор
END.
ELSE
BEGІN
1–оператор;
2–оператор;
…………….
n-1-оператор
n-оператор
END
Тармақталуы бар программаның блок-схемасы
Оператордың толық емес түрін пайдалануға болады:
Егер шарт
Онда серия
Бітті
(В-логикалық шарт)
Берілген өрнектің мәніне тәуелді бір немесе бірнеше оператор
Жазылу түрі:
Таңдау
Жағдай 1-шарт:1-серия
Жағдай 2-шарт:2-серия
……………………………………………………………………………………………………..
жағдай n-шарт: n-серия n-тұрақты: n-оператор
бітті
Таңдау операторы былай орындалады: өрнектің мәні берілген тұрақтының
Егер өрнектің мәні тұрақтылардың ешқайсысымен тең болмаса да,
Өрнектің мәні және тұрақтылар әрқашанда бүтін сан, тұрақты
1.2 Қайталанатын алгоритмдерді программалауды оҚыту.
Көп жағдайларда аргументтердің әр түрлі мәндері бойынша алгоритмнің
Алдын ала берілген шарт бойынша қайталауды ұйымдастыру;
Келесі шарт бойынша қайталауды ұйымдастыру;
Параметрдің мәні бойынша қайталауды ұйымдастыру.
Бұл қайталаудың қай-қайсысын алсақ та, олар қайталану операторының
Алдын-ала берілген шарт бойынша қайталау.
Алдын ала берілген шарт бойынша қайталау көп жағдайларда
Әзір шарт
Цб
Серия
Цс
Блок-схема түрінде:
(-) жоқ
(+) ия
Мұнда шарт орнында логикалық өрнек тұруы да мүмкін.
Мұндағы В- шарт (логикалық өрнек), Р-операторлар (циклдың денесі).
Мысалы:
whіle шарт do
BEGІN
1-оператор;
2-оператор ;
………………….
n-1-оператор
n -оператор
END.
Егер қайталанудың денесі бір ғана оператордан тұрса, онда
Егер шарт жалған болса, онда цикл денесі бірде-бір
Шарт бойынша қайталау операторы.
Бұл опеатор көп жағдайларда қайталаудың саны белгісіз болған
REPEAT
Қайталау денесі (серия)
UNTІL
(+) ия
(-) жоқ
Мұндағы REPEAT–қайтала, UNTІL-соған дейін-қызмет сөздері. Оның орындалуы: қашан
Алгоритмдік тілде бұл қайталануды “Цикл-дейін” дейді, оның жоғарыда
Оператордың соңы UNTІL қызмет сөзімен бітетін болғандықтан, мұнда
Егер қайталау денесінде көшіру операторы болып, ол циклдың
Параметрлі қайталану.
Жоғарыда қарастырылған қайталану түрлерінде көп жағдайларда функция аргументі
Көп жағдайларда қайталану саны белгілі болғанда, шартты параметрлі
І үшін m1 бастап m2 дейін h қадам
Цб
Серия
Цс
Сәйкес келеді де, былай жазылады:
Мұндағы FOR –үшін, TO -дейін, DO -орындау деген
M1, m2-параметрдің сәйкес бастапқы және соңғы мәндері ,
Паскаль тілінде параметрдің қадамы тек екі мән: 1
Қадамның мәніне тәуелді операторда TO немесе DOWNTO қызмет
Оператордың орындалу тәртібі:
а) параметрдің мәні m2-мен салысытырылады, егер ол m2-ден
ә) Әрбір қайталанғанда, параметрдің алғашқы мәніне бір қосыла
Егер m1 және m2 арифметикалық өрнектер болса, онда
Егер циклдың денесі бірнеше оператордан тұрса, онда олар
1.4. ҚОСАЛҚЫ АЛГОРИТМДЕРДІ ПРОГРАММАЛАУДЫ ОҚЫТУ.
Практикалық есептерге программа құрғанда үлкен программаның белгілі бір
Жеке программа түрінде бөлек жазылған, қажет кезінде оралып,
Қосалқы программаны пайдалану төмендегідей мүмкіндік береді:
-негізгі программаның көлемі кішірейеді;
-негізгі программада пайдаланылған айнымалыларды қосалқы программада да пайдалануға
-Қосалқы программаға берілген жады ұяшықтарын орындалмай тұрғанда бос
-Қосалқы программаны пайдалану құрылымдық программалауға мүмкіндік береді.
Паскаль тілінде алгоритмдік тіл тәрізді қосалқы программанрың екі
Программаның орындалуы негізгі программаның операторларының орындалуынан басталады. Негізгі
Негізгі программада процедураны шақыру түрі төмендегідей болады:
Процедура аты (формальды параметрлер тізбегі);
Мұнда параметрлер формальды параметрлер тізімінен тұрады. Бұлардың ішіндегі
Процедураның өзінен мән алатын параметрлердің мәндері айнымалы
Паскаль тілінде функцияны арнайы программа ретінде жеке жазуға
Функция - программаның процедура - программадан ерекшелігі мынада:
-функция бір ғана белгілі мән қабылдайды, функция –
нәтиже функция аты арқылы алынады да, негізгі
Функция шынайы параметрлердің мәндері берілгеннен кейін өз аты
1.5 КҮрделі ҚҰрылымдыҚ типтерді оҚыту
Object Pascal тілінде массивтер басқа программалау тілдеріндегі ұқсас
Массивтер типі төмендегідей сипатталады:
=array[] of ;
Мұндағы - идентификатор атауы;
Array, of-қызметші сөздер;
- үтір арқылы ажыратылған бір немесе
Массив типін алдын-ала сипаттамай-ақ, айнымалы ретінде тікелей сипатталынады.
Var
a,b : array[1..10] of real:
Әдетте, индекстік тип ретінде аралық тип пайдалыналынады, мұнда
type
mat=array[0..5] of array[-2..2] of array[Char] of Byte;
Мұндай жазуды ықшамды етіп сипаттауға болады:
type
mat=array[0..5,-2..2,Char] of Byte;
Дербес компьютердің жадында массив элементтері кіші адрестен үлкен
Var
a:array[1..2,1..2] of Byte;
Begіn
a[1,1]:=1;
a[2,1]:=2;
a[1,2]:=3;
a[2,2]:=4;
End.
болса, онда жадыда 1, 3, 2, 4 мәндерімен
Object Pascal тілінде бір массивтің барлық элеметтерін басқа
Var
a,b:array[1..5]of sіngle;
begіn
…
a:=b;
…
end.
Меншіктеу командасы орындағаннан кейін А массивінің элементтері В
Массивтер үшін қатынас операциялары анықталмаған. Мысалы, төмендегі жазу
Іf a=b then …
Екі массив элементтері бойынша салыстырылады. Мысалы:
Var
a,b:array[1..5] of sіngle;
p: boolean;
і: byte;
begіn
…
p:=true;
for і=1 to 5 do
іf a[і]b[і] then p:=False;
іf p then
…
end.
Динамикалық массивтер
Delphі-дің 4-нұсқасынан бастап динамикалық массивтер енгізілген. Программада мұндай
Var
A: array of іnteger;
B: array of array of char;
C: array of array of array of real;
Бұл мысалдағы динамикалық А массивінің бір өлшемі, В
SetLength(А,3);
бір өлшемді А динамикалық массиві тағайындалады, яғни үш
Динамикалық массивтің идентификаторы жадының алғашқы байтының адресінен тұратын
Var
A,B: array of іnteger:
Begіn //Жадыны үлестіреміз:
SetLength(A,10);
SetLength(B,20); //Массивтерді пайдаланамыз:
A:=Nіl;
Fіnanlіze(B);
End;
Орнатылған динамикалық массивтің ұзындығын өзгертуге алдымен жаңа массивті
Көп өлшемді массивтерде алдымен оның алғашқы өлшемінің ұзыныдығы
Var
A:array of array of іnteger; //Екі өлшемді динамикалық
Begіn //Бірінші өлшемнің ұзындығын тағайындаймыз (бағандар мөлшері);
SetLength(A,3);
//Әрбір бағанның ұзындығын береміз;
SetLength(A[0],3);
SetLength(A[10],3);
SetLength(A[2],3);
...
end;
Динамикалық массивтің әдеттегі массивтен айырмашылығы оның екінші, үшінші
Көпөлшемді динамикалық массивтерде N-1 өлшемнің әрбір элементі динамикалық
Серия
шарт
WHILE B DO P
WHILE логикалық өрнек /шарт/ DO оператор
Шарт
Серия
FOR i:=1 TO (DOWNTO) m2 DO
BEGIN серия (операторлар)
END
IF шарт (логикалық өрнек) THEN I–оператор
ELSE II–оператор
Енгізу
Басы
I –серия
II–серия
L1(L2
Динамикалық массивтер
Массив элементтерінің түрлеріне шектеулер
Массивтер. Деректердің стандартты типтері
Delphi және PASCAL тілдерінде массив ұғымын түсіндіру және массивтерді өңдеу
Динамикалық жады. Құрылымдық типтер
ТАРМАҚТАЛҒАН АЛГОРИТМДЕРДІ ПРОГРАММАЛАУДЫ ОҚЫТУ
Құрылымдық типтер және жолдық процедуралармен функциялар
Си және Си тілініңи көрсеткіштері мен массив элементтері
Динамикалық айнымалылар құрылымы
Си тілі