Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТехПр / po88f9b2.doc
Скачиваний:
13
Добавлен:
24.03.2016
Размер:
811.01 Кб
Скачать

2.2 Дәріс сабақтарының тезистері.

Дәріс №1 тақырыбы: Алгоритм ұғымы және оның қасиеттері.

Информатика – ақпараттық іс-әрекет, ақпараттық үрдістер және олардың адам – машина жүйелерінде ұйымдастырылуын зерттейтін ғылым.

Алгоритм – информатиканың іргелі ұғымдарының бірі. Алгоритмдеу информатиканың жалпы әдістерінің бірі болып табылады. «Алгоритм» - ІХ ғасырдың белгілі математигі аль-Хорезми атының латынша жазылуынан, яғни algoritmi сөзінен шыққан. Алгоритм ұғымын және оның қасиеттерін зерттейтін математиканың бөлімін алгоритмдер теориясы деп атайды. Алгоритмді интуитивті түрде анықтасақ, алгоритм – алғашқы берілген мәліметтерден қажетті есептің шешіміне жету үрдісін анықтайтын дәл нұсқаулар тізбегі. Алгоритм орындаушысы адам, адамдар тобы, робот, станок, компьютер және т.б. болуы мүмкін. Бірақ барлық орындаушыларға тән қасиет – олардың барлығы қандай да бір бұйрықтарды орындай алатындығы. Орындаушы формальды түрде жұмыс жасайды, яғни ол қойылған есептің мазмұнына қарамайды, тек қана қатаң түрде бұйрықтарды дәл орындайды.

Алгоритм дегеніміз алдыға қойылған есептің мақсатына жету үшін қажетті қимылдар тізбегінің орындаушыға түсінікті және дәл нұсқаулары.

Алгоритмнің негізгі қасиеттері:

Дискреттік қасиет. Алгоритмдік үрдіс жеке қадамдарға бөлінуі қажет. Әрбір келесі бұйрықты орындау үшін алдыңғы бұйрықты орындау қажет.

Түсініктілік қасиет. Тәжірибе жүзінде қолданылатын алгоритмдер белгілі бір орвндаушыға арналады, сондықтан ол алгоритмді құру үшін орындаушыға түсінікті болуы керек, яғни орындаушының бұйрықтар жүйесін білу қажет.

Анықтық немесе детерминдік қасиеті. Алгоритм түсінікті болуымен қатар мағынасы әр түрлі бұйрықтардан тұрмауы қажет, яғни алгоритм орындаушының еркіндігіне жол бермеуі қажет.

Нәтижелік қасиеті. Кез келген алгоритм қадамдарының саны шектеулі болу керек және белгілі бір нәтижеге жетуі қажет. Есептің шешімі жоқтығы да нәтиже болып есептеледі.

Көпшілік қасиеті. Көптеген алгоритмдер тек қана бір есепті ғана емес, бір типті есептер кластарының шешімін табуға мүмкіндік береді.

Негізгі әдебиеттер:1,4

Қосымша әдебиеттер:1,5

Дәріс №2 тақырыбы: Алгоритмді сипаттаудың негізгі тәсілдері.

Алгоритмді беру үшін оның келесі элементтерін сипаттау керек:

  • Алгоритмді бастау ережесі;

  • Мүмкін алғашқы мәліметтер, аралық мәліметтер және қорытынды нәтижелер жиынтықтарын құрайтын объектілер жиыны;

  • Мәліметтерді тікелей өңдеу ережелері;

  • Нәтиже алу ережелері;

  • Алгоритмді тәмамдау ережелері.

Алгоритмді сипаттаудың негізгі әдістері:

  • Сөзді-формулалы. Мұнда алгоритм тізбегіндегі әрбір қимыл формулалы текст пункиері түрінде көрсетіледі.

  • Құрылымдық немесе блок-сызбалық. Блок-сызба дегеніміз алгоритм бұйрықтарының орындалу тәртібін көрсететін бағытталған граф. Мұндай графтың төбелері функционалдық, предикаттық және біріктіру төбелерінің бірі болады.

T(true)

F P

F(false)

а) функционалдық төбе б) предикаттық төбе в) біріктіру төбесі

  • Программалау тілдері көмегімен. Алгоритмді компьютерге түсінікті тілде жазылуы үшін тілдер, яғни программалау тілдері қолданылады.

Итальян ғалымдары Бом мен Джакопини дәлелдеген «құрылымдық» теорема бойынша кез-келген алгоритмді негізгі үш блоктың көмегімен құруға болады.

Алгоритмнің негізгі құрылымдары:

А) тізбектік немесе сызықтық;

Блок схемада бір кіретін жері және бір шығатын жері бар төртбұрыш түрінде көрсетілетін блок функционалдық блок деп аталады. Функционалдық блокқа алгоритмдік тілдерде енгізу және шығару командалары, меншіктеу командасы немесе меншіктеу командасының бір тобы сәйкес келеді.

Б) тармақтық немесе альтернативалық;

Белгілі логикалық шартты тексеруді және осы тексерудің нәтижесіне орай сериялардың біреуін орындауды қамтитын блокты шартты конструкция блогы деп айтамыз

С) қайталау немесе циклдік.

Циклдік блок қандай да бір шарт орындалмағанша сериясын бірнеше рет орындауды қамтамасыз етеді.

Негізгі әдебиеттер:1,4

Қосымша әдебиеттер:1,5

Дәріс №3 тақырыбы: Алгоритмдік тіл.

Алгоритмдік тіл дегеніміз – алгоритмдерді біркелкі және дәл жазудың және оларды орындаудың ережелері мен белгілер жүйесі. Алгоритмдік тілді анықтауда келесі ұғымдар берілуі керек:

  1. Тілде қолдануға болатын символдардың жиынтығын алфавит дейміз.

  2. Программалау тілінің синтаксисі дегеніміз – алфавит символдарынан дұрыс программа құру тәсілдерін анықтайтын ережелер жиыны. Тілдің синтаксисін біле отырып берілген текст дұрыс программа немесе дұрыс емес екенін анықтайтын алгоритмді тұрғызуға болады.

  3. Программалау тілінің семантикасы – бұл ережелер жиыны, сол бойынша орындаушы осы тілде программаны орындайды. Тілдің семантикасын пайдалана отырып енгізілген мәліметтер бойынша программаның орындалу нәтижесін анықтауға болады.

Жоғары деңгейлі алгоритмдік тілдері көріктілігі мен алгоритмді жазу ықшамдылығы математика тілдеріндегідей. Жоғары деңгейлі алгоритмдік тілдерінің командаларын операторлар дейміз. Жоғары деңгейлі алгоритмдік тілінің күрделі операторларын компьютер орындай алмайды. Жоғары деңгейде жазылған программаны орындаудың екі тәсілі бар, олар: компилятор, интерпретатор.

Арнайы қызметші программа компилятор алдымен барлық операторларды машина тіліне аударады, содан кейін алынған машиналық программа компьютермен орындалады. Компилятор программаны бір бүтіндей машина тіліне аудара отырып, жеке операторларды сонымен бірге олардың өзара келісімділіктерінің дұрыстығын тексереді. Екінші қызметші программа интерпретатор операторларды бірінен соң бірін машина тіліне аударады және бірден компьютер оларды орындайды.

Негізгі әдебиеттер:1,4

Қосымша әдебиеттер:1,5

Дәріс №4 тақырыбы: Мәліметтер құрылымдары. Динамикалық құрылымдық мәліметтер.

Мәліметтердің негізгі екі құрылымын анықтауға болады:

    • қарапайым мәліметтер;

    • құрылымдық мәліметтер.

Қарапайым мәліметтер түрлері: сандық, символдық, логикалық.

Динамикалық құрылымдық мәліметтердің негізгі түрлері: массив, жазу, жиын, кезек, стек, екілік ағаш, графтар.

Егер құрылымның өлшемі алдын-ала тұрақты анықталса, онда статистикалық құрылымдық мәліметтер аламыз (массив т.б.). Ал егер құрылымның өлшемі есептің шешілуі барысында өзгермелі болып, яғни орындалу барысында жады бөлігі бөлініп, өзгеріп отырса динамикалық құрылымдық мәліметтер анықталады (кезек, стек, ағаш т.б.).

Кезек- біртекті реттелген динамикалық құрылым. Кезек дегеніміз сызықты реттелген бірінен кейін бірі орналасқан, екі жету әдісі бар құрылым.

Стек – “бірінші кірген соңғы шығады” принципімен құрылған құрылым.

Екілік ағаш – бір мәліметтер екінші мәліметтермен “табиғи” түрде байланған, олар өзара тең құқықты емес, әрбір элементіне жету сәйкес жету жолымен анықталады.

Мәліметтердің құрылымдарын ұйымдастырудың негізгі үш әдісі бар: сызықтық, кестелік, иерархиялық.

Негізгі әдебиеттер:1,4

Қосымша әдебиеттер:1,5

Дәріс №5 тақырыбы: Турбо-Паскаль программалау жүйесімен таныстыру.

Цирюхе қаласындағы жоғары техникалық училищесінің профессоры Никлаус Вирт қолданушыға барынша түсінікті, әрі қарапайым программалау тілін шығаруды алдына мақсат етіп қойды. Ол өзі ұсынған алгоритмдік тілді дүние жүзінде бірінші есептеу машинасын жасаған француз ғалымы Блез Паскаль (1623-1662) есімімен атады.

1979 жылы стандартты тіл есебінде қабылданған Паскаль тілі Алгол, Фортран, Бейсик т.с.с. тілдерге қарағанда барынша жетілдірілген тіл қатарына жатады.

Алгоритмдік тілдің элементтер құрылымы: символдар, сөз, өрнек және операторлардан тұрады. Тілдің символы дегеніміз – кез келген тексті құруда қолданылатын элементар таңбалар. Осындай символдар жиынтығы тілдің алфавиті деп аталады. Стандартты Паскаль тілінің алфавиті мынадай символдар жиынтығынан тұрады:

  1. Латын алфавитінің 26 әрібі;

  2. Араб цифрлары;

  3. Орыс алфавитінің 32 әрібі;

  4. Арнаулы таңбалар. (+, -, *, /, ;, :, <, >, =, (), [], or, and, not)

Паскаль тіліндегі программа тақырыптан, сипаттау бөлігінен және операторлар бөлігінен тұрады. Программаның жазылу схемасы:

Program aтay(input, output);

<cипаттау бөлігі>

Begin

<операторлар бөлігі>

End.

Тақырып – Program қызметші сөзінен, программа атауынан, жақша ішінде программаның ЭЕМ-нің ішкі енгізу-шығару құрылғысымен байланыс жасауы үшін input, output стандартты атауларынан тұрады. Тақырып нүктелі үтір таңбасымен аяқталады.

Сипаттау бөлігі – программада кездесетін барлық мәндерді және олардың мінездемелерін ашып көрсету үшін қолданылады. Сол сияқты бұл бөлікте көрсетілген рет бойынша белгі хабары, тұрақтылар, түр, айнымалылар, процедуралар мен функциялар туралы хабарлар беріледі.

Операторлар бөлігі – Begin (бастау) және End (аяқтау) түріндегі операторлық жақшада болады. Операторлар бөлігінде орындалатын операторлар тізбегі жазылады. Операторлар тізбегі бір-бірінен нүктелі үтір арқылы ажыратылып жазылады.

Program aтay(input, output);

Label - белгілеу

Const - тұрақтылар

Type - түрлер

Var - айнымалылар

Procedure,function – процедуралар мен функциялар

Begin

1-оператор;

2-оператор;

3-оператор;

.....

End.

Негізгі әдебиеттер:3,5,7

Қосымша әдебиеттер:2,3

Дәріс №6 тақырыбы: мәндердің стандартты типтері.

Паскаль тілінің ерекшелігінің бірі, оның бірнеше мәндер типінің жиынтығын қолдану мүмкіншілігі. Мәндердің барлық типтерін жай және күрделі деп екіге бөлуге болады.

Жай типтер дегеніміз, мәндердің стандартты және айнымалы типтері. Стандартты мәндер типтеріне жататындар: бүтін integer, нақты real, логикалық boolean, символдық char.

Айнымалы типтерді ЭЕМ-ді қолданушы анықтайды, оған жататындар стандартты емес және шектелген типтер.

Күрделі тип – бұл жай типтердің әртүрлі комбинацияларынан құралады (массивтер, жиындар, файлдар).

өзінің мәні ретінде бүтін типтегі тұрақтыны қабылдайтын айнымалы да бүтін типке жатады. Бүтін типтегі мәндерге бүтін нәтиже беретін мынадай арифметикалық амалдар қолдануға болады: +, -, *, div, mod.

Нақты тұрақталар нүктені пайдаланып жазылады. Паскаль тілінде бұлар екі түрлі берілуі мүмкін: тиянақты нүктелі және жылжымалы нүктелі түрде.

Тиянақты нүктемен берілген тұрақтылар, бөлшек бөлігімен ондық сан түрінде берілуі мүмкін.

Паскаль тілінде ондық ретпен mEp түрінде жазылған санды жылжымалы нүктелі сандарға жатқызамыз. Мұндағы m-мантисса; E-санды ретпен жазу белгісі; p-санның реті. м/лы: 610-5.

Нақты типтегі мәндерге нәтижесі нақты болатын келесі операцияларды қолдануға болады: +, -, *, /. Бүтін және нақты типтегі мәндер арифметикалық мәндер деп аталады.

Логикалық типтегі мәндерді кей жағдайда математикалық логиканы құрушы, ағылшын математигі Д.Бульдың есімімен булевтік деп те атайды. Паскаль тілінде екі логикалық тұрақты бар: true (ақиқат), false (жалған). Логикалық айнымалы осы екі тұрақтының бірін қабылдап boolean типіне тиісті болады. Логикалық мәндер шамаларды салыстыру және қандай да бір шарттарды тексеру кезінде көптеп қолданылады. Мәндерді салыстыруға мынадай арақатынас операциялары пайдалынады: <, <=, >, >=, <>, =.

Символдық типтегі мәндер, программада текстер жазуға және сол тексте бірнеше өңдеу операцияларын жүргізуге мүмкіндік жасайды. Символдық немесе литерлік тұрақты дегеніміз дәйекшеге (апостроф) алынған тілдің кез келген символы. м/лы: ‘A’, ‘*’.

Символдық тұрақты машина есінде 1 байт орын алады. Паскаль тілінің символдары реттелген болғандықтан символдық мәндерге салыстыру операцияларын қолдануға болады. Жекелеме символдық тұрақтылардын сөз құрау үшін массив ұғымы қолданылады.

Программада тұрақтылар өзінің нақты мәнімен немесе қандайда бір атаумен берілуі мүмкін. Егер тұрақты қандайда бір атаумен берілген болса, онда ол мінлетті түрде тұрақтылар бөлігінде сипатталуы керек. Сипаттау const қызметші сөзімен басталып, мынадай формада жазылады:

Const <тұрақты атауы>=<мән>; мысалы,N=10;

Бір бөлікте бірнеше тұрақтыны сипаттауға рұқсат етіледі. Әрбір сипаттау нүктелі үтірмен аяқталады.

Негізгі әдебиеттер:3,5,7

Қосымша әдебиеттер:2,3

Дәріс №7 тақырыбы: Сызықтық программалау. Шартты, таңдау , шартсыз көшу операторлары.

Программалар сызықтық, тармақтық, циклдік және күрделі болып жіктеледі. Солардың ең қарапайымы сызықтық программалар болып табылады. Сызықтық программа деп - операторлары басынан бастап соңына дейін бірінен соң бірі орындалу ретінмен орындалатын программаны айтамыз. Сызықтық программада меншіктеу операторы (:=), математикалық функциялар, арифметикалық операциялар, енгізу (read) және шығарумен (write) байланысты функциялар және де программадағы операторлардың ретін бұзбайтын операторлар қолданылады.

Шартты оператор қандай да бір шарттың орындалуы немесе орындалмауына байланысты екі түрлі шешім қабылдайтын жағдайда қолданылады. Шартты оператордың толық түрде жазылу формасы: if <логикалық өрнек> then <оператор 1> else <оператор 2>

Мұндағы if (егер), then (онда), else (әйтпесе) – қызметші сөздер, оператор 1, оператор 2 – жай немесе құрама оператор. Егер логикалық өрнек ақиқат болса, онда оператор 1 орындалады әйтпесе оператор 2 орындалады.

Goto <белгі> операторы шартты операторға да, циклдік операторға да жатпайды, бірақ ол программадағы операторлар тізбегінің ретін өзгертіп, басқаруды белгі қойылған операторға береді. Құрамына басқа ешқандай оператор кірмейтіндіктен көшу операторы жай оператор болып табылады. Белгілеу сипаттау бөлімінде label қызметші сөзімен сипатталады. Label <белгі>;

Қандай да бір өрнектің мәніне байланысты бірнеше операторлардың ішінен бір ғана операторды орындау керек болғанда таңдау операторы қолданылады. Таңдау операторы құрама операторға жатады және жазылу формасы мынадай болады:

Case <өрнек> of

1-тұрақты: 1 оператор;

2-тұрақты: 2 оператор;

. . . . .

N-тұрақты: n оператор

End

Мұндағы Case (жағдайда), of (ішінен), End (соңы) – қызметші сөздер.

Негізгі әдебиеттер:3,5,7

Қосымша әдебиеттер:2,3

Дәріс №7 тақырыбы: циклдер

Егер циклдің қанша рет қайталанатыны алдын ала белгісіз болса, онда шарты алдын ала берілген циклді пайдаланамыз. Жазылу формасы:

While <Логикалық өрнек> do

Begin

[циклдық бөлік операторлары]

end

Мұндағы While (әзірше) және do (орында) қызметші сөздер.

Цикл қанша рет қайталанатыны белгісіз болған жағдайда шарты соңынан берілген цикл операторын қолданамыз. Жалпы түрі:

Repeat

[циклдық бөлік операторлары]

until <Логикалық өрнек>

Мұндағы Repeat (қайтала) және until (болғанға дейін) қызметші сөздер.

Параметрлі цикл операторы программаның циклдық бөлігі неше рет қайталанатыны алдын ала белгілі болған жағдайда қолданылады. Жазылу түрі:

For i=m1 to m2 do

Begin

[циклдық бөлік операторлары]

end

Мұндағы For (үшін), to (дейін) және do (орында) – қызметші сөздер; m1, m2 – циклдың алғашқы жәнесоңғы мәндері.

Негізгі әдебиеттер:3,5,7

Қосымша әдебиеттер:2,3

Дәріс №8 тақырыбы: Бір өлшемді және көп өлшемді массивтер.

Программалау тілінде типтер қарапайым және күрделі болып бөлінеді. Қарапайым типек – стандартты, саналатын, шектейтін типтер жатады. Күрделі типке – массивтер, жиындар, файлдар жатады. Программалау тілінде жеке айнымалыларды ғана өңдеп қоймай, айнымалылардың жиынын да өңдеуге болады. Массив дегеніміз – бір типтегі берілгендер жиыны. Массив бір ғана атпен белгіленеді. Массивтің әр элементі массивтің атымен белгіленеді де, оның индексі қойылады.

M/лы: a[1]=1.6, a[2]=14, т.с.с.

Егер программада массив қолданылатын болса, онда var – айнымалылар бөлігінде немесе– типтер бөлімінде сипатталуы қажет. Айнымалылар бөлігінде сипатталуы:

Var <массив атау>:array[1..n] of t;

Мұндағы array (массив), of (ішінен), t – массив элементтерінің типі (real, integer);

Тип бөлімінде сипатталуы

type <тип атауы>=array[1..n] of t;

Var<массив атауы>:<тип атауы>;

Математикада көп өлшемді массивтер, яғни массивтердің массиві жиі қолданылады. әсіресе екі өлшемді массивтер, басқаша айтұанда матрицалар кең көлемде қолданылады. Екі өлшемді массивті айнымалы бөлігінде сипаттау:

Var <массив атау>:array[1..n, 1..m] of t;

Тип бөлімінде сипатталуы:

type <тип атауы>=array[1..n, 1..m] of t;

Массивті енгізу және шығаруға бір мысал қарастырайық.

М/лы: 5 өлшемді массив берілген. Массив элементтерін квадраттап экранға шығарыңыз.

Program mas;

type mas=array[1..5] of integer;

Var a:mas;

Begin

Write(‘массив элементтеріне мән беріңіз’);

For i:=1 to 5 do

Read(a[i]);

Write(‘өңделген массив’);

For i:=1 to 5 do

Begin

A[i]:=sqr(a[i]);

Write(a[i]);

End;

End.

Негізгі әдебиеттер:3,5,7

Қосымша әдебиеттер:2,3

Дәріс9 тақырыбы: Жолдармен жұмыс.

Программалау тілдерінде көптеген жағдайларда символдар тізбектерін қолдану қажет болады. Ол үшін char типін пайдалану тиімсіз. Сондықтан string типін пайдаланамыз. Жол – белгілі бір символдар тізбегі. Өрнектерде жол екі жағынан апострофқа алынып, жолдық тұрақты ретінде қарастырылады. Жолдың символдар саны 0-255-ке дейінгі аралықта жатады.

Жолды тип бөлімінде сипаттау:

Type <Типтің атауы>=string[жолдың ұзындығы];

Var<айнымалы>:<типтің атауы>;

немесе бірден айнымалы бөлігінде сипаттауға да болады:

Var <айнымалы>:string[жолдың ұзындығы];

Жолдың ұзындығын анықтау үшін length функциясы қолданылады.

Cимволдық өрнектерде біріктіру (+) және қатынас амалдары (=,<,>,<=,>=,<>) қолданылады. Біріктіру амалы бірнеше жолдарды біріктіріп, нәтижесінде тұтас бір жол алуға пайдаланылады. Қатынас амалдары екі жолды салыстырады. Салыстыру солдан оңға қарай жүреді. Жолдық айнымалыға символдық өрнектің нәтижесін беру үшін (:=) меншіктеу операторы қолданылады.

String типті мәліметтерді өңдеуге келесі стандартты процедуралар мен функциялар қолданылады.

Процедуралар:

  1. Delete(z,m,n) – z жолының m орнынан бастап n символын өшіреді;

  2. Insert(d1,d2,m) – d1 жолын d2 тізбегіне m орыннан бастап санап қосады;

  3. Str(s, ts) – s айнымалысының сандық мәнін жолға айналдырып, string типті ts айнымалысына меншіктейді.

Функциялар:

  1. Copy(ts, m, n) – ts жолынан m позициясынан бастап n символ бөліп алады.

  2. Concat(tz1, tz2, … , tzn) - tz1, tz2, … , tzn жолдарын көрсетілген ретпен біріктіреді.

  3. Post(tz1, tz2) – tz1 жолы tz2 жолында кездессе, қай жерден басталатынын көрсетеді. Егер кездеспесе нәтижесі нөлге тең.

Негізгі әдебиеттер:3,5,7

Қосымша әдебиеттер:2,3

Соседние файлы в папке ТехПр