- •1 Модуль. Алгоритмдеу және программалауға кіріспе
- •1 Тақырып. Кіріспе
- •1 Лекция
- •1.1 „Автоматтандыру есептерін программалау" курсының мақсаттары мен міндеттері.
- •1.2 Есептеуіш техника құралдарын пайдаланып ақпаратты өндеу және басқару жүйелерін әзірлеу. Компьютерлік жүйелердің ақпаратты өндеу және басқару әдістері мен міндеттері
- •2 Тақырып.Дербес компьютерді (дк) программалауды автоматтандырудың программалық құралдары
- •2 Лекция
- •2.1 Дербес компьютердің программалық қамтамасыз етілуі туралы
- •2.2 Программалауды автоматтандыру әдістері. Алгоритмдік тілдер және оларға қойылатын талаптар.
- •2.3 Процедуралы–бағытталған тілдер және объектке–бағытталған программалау туралы түсінік.
- •3.1 Программаларды құру құралдары
- •3.2 Программалаудың біртұтас жүйелері.
- •3.3 Техникалық есептер
- •3 Тақырып. Есептерді алгоритмдеу негіздері.
- •4 Лекция
- •4.1 Алгоритм анықтамасы. Алгоритмдерді бейнелеу тәсілдері.
- •4.2 Алгоритмдердің блок-схемаларын безендіру ережелері.
- •4.3 Алгоритм құрылымдарының түрлері.
- •4 Тақырып Негізгі процедураға бағытталған алгоритмдеу тілінде программалау
- •5 Лекция
- •5.1 Оқылатын алгоритмдеу тілінің негізгі түсініктері
- •5.3 Тілдің негізгі объектілерін жазу ережелері
- •5.4 Деректердің типтері
- •5.5 Деректердің стандартты типтері
- •6 Лекция
- •6.2 Өрнектер. Арифметикалық және логикалық өрнектер
- •7 Лекция Құрылымды деректер (типтер)
- •7.1 Массивтер
- •7.2 Жиындар
- •7.3 Жазбалар
- •Модуль 2 Алгоритмдік тілдерде программалаудың арнайы мәселелері
- •5 Тақырып Программадағы басқару құрылымдар
- •8.1 Алгоритмдік тілдің операторлары.
- •8.3 Басқару операторлары. Құрама және бос операторлар
- •8.4 Деректерді енгізу-шығаруды ұйымдастыру
- •8.5 Программаның құрылымы. Алгоритмнің схемасынан программаға өту
- •9 Лекция
- •9.1 Сызықты құрылымды алгоритмдерді программалау
- •9.2 Тармақталған құрылымды алгоритмдерді программалау
- •9.3 Таңдау операторы (case)
- •10 Лекция
- •10.1 Циклдік құрылымды алгоритмдерді программалау. Кейінгі шартты цикл операторы (repeat)
- •10.2 Алдынғы шартты цикл операторлары (while)
- •10.3 Параметрлі цикл операторлары (for)
- •10.4 Ішкі циклдерді құрастыру (массивтерді өндеу, массив компоненттерін реттеу есептерінің мысалдары негізінде)
- •11 Лекция
- •11.1 Жолдық деректер
- •Var s: string;
- •Var s1: string[40];
- •11.2 Символдық және жазбалар түріндегі деректерді өндеу есептерін программалау
- •12 Лекция
- •12.1 Пайдаланушының ішкі программалары (процедуралар) классификациясы. Ішкі программаларды рәсімдеу тәсілдері және оларды программа құрамында пайдалану.
- •13 Лекция
- •13.1 Сыртқы сақтауыш құрылғыларын (файлдық шамаларды) және динамикалық жадыны пайдалану арқылы программалау
- •14 Лекция
- •14.1 Тілдің графикалық мүмкіндіктерін пайдалану
- •Initgraph(var gd:integer, var gm:integer, pt:string);
- •15 Лекция
- •15.1 Объектке-бағдарлы программалау (обп) негіздері
- •15.2 Объекттер және олардың негізгі қағидалары
- •15.3 Объекттерді құру және оларды пайдалану
- •15.4 Өткен материалға шолу
- •15.5 Алған білімдердің студенттің алдағы оқу барысында және болашақ инженерлік тіршілігіндегі тәжірибелік мағынасы. Программалау тілдері мен технологиялардың даму перспективалары.
- •Өрнектер – тұрақтылар. Паскаль өрнектер-тұрақтыларды пайдалануға мүмкіндік береді. Ол өрнекті программаны орындау қажеттіліксіз компилятор орындайды. Өрнектер-тұрақтылардың мысалдары:
- •Түсініктемелер (комментарий)
- •6 Лекция
- •6.1 Блоктар, локальділік және амал жасау облысы
- •6.5 Типтердің үйлесімділігі
- •7.1 Ординалды типтер
- •7.2 Құрама құрылымдар
- •10.4 Жалғау операторы (with)
9.3 Таңдау операторы (case)
Бұл оператор программада көп if операторларды пайдаланбай альтернативалар арасында таңдауды жүзеге асыруға мүмкіндік береді. Таңдау операторы (case) өрнектен (айырып-қосқыштан, селектордан) және әрқайсысының алдында бір немесе бірнеше тұрақтылар (олар таңдаудың тұрақтылары немесе таңбалар деп аталады) немесе else кілттік сөзі тұратын операторлардың тізімінен тұрады. case таңбасы бірнеше тұрақтылардан немесе ішкі аралықтардан (поддиапазон) тұрады, олардан кейін қос нүкте қойылады және олар үтірлер арқылы ажыратылады. Қай оператордың case таңбасы селектордың ағымдағы мәніне тең болады сол оператор орындалады. Егер case таңбалардың бірде біреуі селектордың мәнін қамтымаса, онда бір де бір оператор орындалмайды немесе міндетті емес резервтелген else сөзінен тұратын операторлар орындалады. Айырып-қосқыш санақтап шығу типіне ие болуы тиіс және осы типтің жоғарғы және төменгі шекараларының санақтап шығылатын мәндері -32768 ден 32767 дейінгі аралықта жатуы тиіс. Сонымен, жолдық типті және ұзын бүтін типті айырып-қосқыш үшін рұқсат етілмеген. Барлық таңдау тұрақтылары бірегей болуы және айырып-қосқыштың типімен үйлесімді болатын санақтап шығу типіне ие болуы тиіс. Таңдау операторы оның алдындағы таңдау тұрақтысы айырып-қосқыштың мәніне немесе айырып-қосқыштың мәні жататын таңдау диапазонына тең болатын оператордың орындалынуына әкеледі. Егер ондай таңдау тұрақтысы ондай таңдау диапазоны болмаса және else бұтағы бар болса онда else кілттік сөзінен кейін ілескен оператор орындалады. Егер else бұтағы болмаса онда ешқандай оператор орындалмайды. Таңдау операторға мысалдар қосымшада келтірілген (Р6 және Р11 программалары):
case Operator of
plus: X := X+Y;
minus: X := X-Y;
times: X := X*Y;
end;
Таңдау операторының графикалық интерпретациясы. Блок-схемаларда CASE операторға таңдау құрылымы сәйкес.
Мысал 9.5. у-ті есептеу үшін таңдау операторын жазу керек. Блок-схемасы 9.6 суретте. 9.5 мысалға программаның фрагменті:
case n of
1: y := x;
2, 3: y := 2 * sqrt(abs(x));
4: y := exp(x);
end;
Сурет 9.6 - 9.5 мысалға блок-схема
10 Лекция
10.1 Циклдік құрылымды алгоритмдерді программалау. Кейінгі шартты цикл операторы (repeat)
Цикл операторы белгілі бір операторлардың қайталап орындалуын береді. Егер қайталану саны алдын-ала белгілі болса, онда ыңғайлы конструкция болып for операторы табылады. Кері жағдайда while немесе repeat операторларын пайдалану керек. Кейінгі шартты цикл (repeat сөзінен басталатын) операторында операторлардың тізбектілігін қайталап орындауды басқаратын өрнек repeat операторының ішінде қамтылған.
Өрнектің нәтижесі бульдік типтегі нәтиже болуы тиіс. repeat және until қызметші сөздердің арасына алынған операторлар өрнектің нәтижесі Тrue мәнін қабылдағанша ретімен орындала береді. Операторлардың тізбектілігі кемінде бір рет болса да орындалады, себебі өрнек операторлардың тізбектілігі әр орындалып болғанынан кейін есептеледі. Кейінгі шартты цикл операторды пайдалану мысалдары (қосымшадағы Р7 және Р9 программаларды да көріңіз):
-
repeat
K := I mod J;
I := J;J := K;
until J = 0;
repeat
Write(' (0..9) мәнін енгізіңіз:');
Readln(I);
until (I >= 0) and (I <= 9);
P9 программасы "Қайталау-" сұрағына n немесе N жауабы алынғанша қайталана береді. Басқа сөзбен айтқанда, repeat және until арасына алынған нәрсе until–ден кейінгі өрнек Тrue мәнге ие болып түрғанша қайталанып орындала береді. while циклы мен repeat циклдарының арасында негізгі үш айырмашылық бар:
1) repeat циклындағы операторлар әрдайым кемінде бір рет болса да орындалады, себебі өрнекті тексеру repeat кілттік сөзінен кейін бірден жүзеге асырылмайды. Керісінше, while циклында егер өрнек ең басында False мәнге ие болса онда циклдің бүкіл тұлғасы өткізіліп жіберіледі (орындалмайды).
2) repeat циклы өрнек Тrue мәнге ие болғанша орындала береді; оған қарағанда while циклы өрнек Тrue мәніне ие болып тұрған кезде орындала береді.
3) repeat циклы құрама операторды құрмайтын бірнеше операторларды қамтуы мүмкін.
Сонымен, repeat циклының операторы келесі формаға ие:
repeat
операторлар
until шарт
while циклына қарағанда шарт циклдың кезекті итерациясынан кейін есептеледі, егер ол ақихат болса онда циклдан шығу орын алады. Сонымен, repeat операторының цикл тұлғасын құрайтын операторлар кемінде бір рет орындалады. Егер шарт әрдайым жалған болып тұрса онда циклдену орын алуы мүмкін:
repeat
write(1);
until 2=1;
Циклденіп қалған программаны тоқтату үшін Ctrl-F2 клавиштер комбинациясын немесе кнопкасын басу керек.
Блок-схемаларда repeat циклының операторына 10.1 суретте көрсетілген құрылым сәйкес.
Сурет 10.1 - repeat оператордың жұмыс жасау блок-схемасы
Мысал 10.1 Бір айнымалысы бар функцияны табуляциялау есебін шешу керек, яғни аргументі [-0.5, 2.5] аралықта 0.1 қадаммен өзгеретін функцияның мәндер кестесін есептеу керек. Бұл есепте айнымалы циклдың басқарушы айнымалысы болып табылады. Бұл есепті шешудің басқа нұсқасы төменде 10.2 мысалда келтірілген.
Program P10_1;
Var a, b, x, y: real;
Begin
writeln(‘Бастапқы деректерді енгізіңіз’); read(a, b);
writeln(‘ x y(x)‘); x := -0.5;
repeat
y := ln(abs(x))/(a*a - b*b);
writeln(x:8:1, y:8:1)
x := x + 0.1;
until x > 2.5;
End.