Программалау тілдері
Алгоритм және программалау тілі: негізгі ұғымдар
Кез келген есепті қарапайым әрекеттерді белгілі бір ретпен орындау арқылы шығаруға болады. Сол әрекеттердің реттелген тізбегін алгоритм деп атаймыз. Алгоритмді компьютерде (ЭЕМ-де) орындау үшін оны программа түрінде жазу қажет. Программа — машинаға түсінікті командалардан тұратын нұсқаулар тізбегі; осы командалар орындалғанда есептің нәтижесі алынады.
Алгоритм деген не?
Алгоритм — берілген есепті шешу жолын арнайы іс-әрекеттердің белгілі бір кезекпен орналасқан тәртібі ретінде сипаттайтын ережелер мен нұсқаулар жүйесі. Әрбір нұсқау — команда.
ЭЕМ жұмысының алгоритм мен программаға қатысты ерекшеліктері
- Есепті шығару жолы міндетті түрде алгоритм түрінде өрнектелуі керек.
- Алгоритм программаға айналдырылуы тиіс.
- Программа машина жадына енгізіліп, ретімен орындалуы қажет.
Күнделікті өмірдегі алгоритмге мысал
Алгоритм тек информатикада емес, тұрмыста да жиі қолданылады. Мысалы, “студент болу” нәтижесіне жету үшін қадамдар белгілі бір ретпен орындалуы тиіс; олардың орнын ауыстыруға болмайды.
- 1. Орта мектепті бітіріп, аттестат алу.
- 2. Қажетті құжаттарды аттестаттың түпнұсқасымен бірге оқу орнына тапсыру.
- 3. Қабылдау емтихандарын қанағаттанарлық деңгейден жоғары тапсыру.
- 4. Конкурстан өту.
Алгоритмді өрнектеу тәсілдері
Алгоритм ЭЕМ-де орындалуы үшін ол алдын ала жазылып, белгілі бір заңдылықпен өрнектелуі керек. Алгоритмді өрнектеудің кең тараған тәсілдері:
1) Табиғи тіл
Қадамдарды қарапайым мәтін түрінде жазу.
2) Псевдокод
Арнайы терминдер мен шартты жазылымға сүйенген “жартылай формалды” сипаттама.
3) Графикалық тәсіл
Блок-схема арқылы көрнекі түрде бейнелеу.
4) Алгоритмдік/программалау тілдері
Есеп шешімін формалды синтаксис арқылы жазу.
Әдетте алдымен алгоритм (ойша немесе қағазда) құрылады, содан кейін ғана программа түрінде жазылады.
Алгоритм қасиеттері
Алгоритмнің орындалуына қойылатын негізгі талаптар оның қасиеттері арқылы сипатталады.
Бірмәнділік
Әр әрекеттің орындалу ережесін кез келген орындаушы дәл және екіұшты емес түрде түсінуі керек.
Дискреттілік
Әрекеттер бір-бірінен бөлек қадамдардан тұрады және әр қадам алдыңғысынан кейін ғана орындалады.
Жалпыламалық
Бастапқы деректері әртүрлі болатын бір типтес есептердің бәріне бірдей қолдануға болады.
Нәтижелілік
Алгоритм белгілі бір қадамдар санынан кейін міндетті түрде нәтижеге жеткізуі тиіс.
Алгоритмдік құрылымдар
Блоктардың өзара байланысуына қарай алгоритмдердің негізгі үш біріңғай құрылымы бар: сызықтық, тармақталған және циклдік.
1) Сызықтық құрылым
Сызықтық алгоритм — әрекеттердің орындалу ретіне қарай тізбектеле орналасқан қадамдардан тұрады: бірінші қадам, содан кейін екіншісі, ары қарай келесілері.
Мысал
Z = a·x + b + cos(a·x + b)
Бұл жерде a·x + b өрнегі бірнеше рет кездесетіндіктен, оны алдымен жеке есептеп алу тиімді.
2) Тармақталған құрылым
Тармақталу алгоритмінде есеп шешімі шарттың орындалуына байланысты екі немесе одан да көп бағытқа бөлінеді. Мұнда шарт (логикалық өрнек) міндетті түрде тексеріледі: шарт ақиқат болса — бір жолмен, жалған болса — басқа жолмен орындалады.
“Таңдау” түрі
Шарт тексеріледі: ақиқат болса бір әрекет, жалған болса басқа әрекет орындалады; кейін ортақ қадамға бірігеді.
“Аттап өту” түрі
Шарт ақиқат болса — белгілі бір әрекетті орындамай өткізіп, келесі қадамға өтеді; шарт жалған болса — өткізіп кететін әрекет міндетті түрде орындалады.
3) Циклдік құрылым
Циклдік алгоритм — есептеудің белгілі бір бөлігі бірнеше рет қайталанатын жағдайларда қолданылады. Мұндай қайталану программаларда цикл операторлары арқылы ықшам жазылады.
Қайталану саны белгілі цикл
Қайталану саны алдын ала белгілі болса, оны көбіне арифметикалық цикл деп қарастырады: параметр бастапқы мәннен басталып, қадам бойынша өзгеріп, соңғы мәнге дейін жетеді.
Қайталану саны белгісіз цикл
Орындалу саны алдын ала белгісіз болса, ол итерациялық (қадамдық) цикл болады: цикл белгілі бір шарт орындалғанша (немесе орындалғанға дейін) жалғасады.
Шартты тексеру орнына байланысты
- “Дейін”: есептеулер қайталанып, шарт орындалғанға дейін жалғасады.
- “Кейін/пока”: шарт тексеріледі, содан соң (шартқа байланысты) есептеулер орындалады.
Алгоритмді графикалық түрде жазу (блок-схема)
Алгоритмді графика арқылы бейнелеу — ең түсінікті әрі көрнекі тәсілдердің бірі. Әр амал белгілі бір геометриялық фигурамен белгіленеді; олар бағытталған сызықтармен байланысып, орындалу реті көрсетіледі. Бұл белгілер мемлекеттік стандарттармен реттеледі.
Жиі қолданылатын блоктар (қызметі)
Төменде блок-схемаларда кең қолданылатын амалдардың қысқаша мағынасы берілген.
Процесс
Математикалық өрнектерді есептеу, өңдеу қадамы.
Таңдау (шарт)
Шартты тексеру және келесі қадамды таңдау.
Модификация (цикл басы)
Қайталау параметрін өзгерту, циклді ұйымдастыру.
Енгізу/шығару
Мәліметтерді енгізу немесе нәтижені шығару.
Бастау/аяқтау
Алгоритмнің басталуы мен аяқталуын белгілеу.
Қосалқы программа
Қосалқы процедураға/функцияға кіру және одан шығу.
Программалау тілдері және олардың рөлі
Программа — алгоритмді машинаға түсінікті нұсқаулар тізімі ретінде жазу. Компьютер әрқашан алдын ала жазылған программамен жұмыс істейді.
Машиналық код және жоғары деңгейлі тілдер
Әр ЭЕМ-нің өзіне тән машиналық тілі (командалар тілі, кодтар тілі) болады. Процессор негізінен сандармен жұмыс істейтіндіктен, тек машиналық кодта жазылған нұсқауларды тікелей түсінеді. Ал жоғары деңгейлі тілдерде (мысалы, ALGOL, FORTRAN, BASIC, PASCAL, Delphi, C және т.б.) жазылған программаны машиналық тілге аудару қажет.
Трансляторлар: компилятор және интерпретатор
Жоғары деңгейлі программаны машиналық кодқа айналдыратын арнайы программа транслятор деп аталады. Транслятордың негізгі екі түрі бар: компилятор және интерпретатор.
Тілдердің даму кезеңдеріне қысқаша шолу
- 1950-жылдар: машиналық кодқа жақын, сандық кодтау дәуірі.
- Ассемблер: машиналық тілге қарағанда жазуы жеңілірек деңгей.
- Жоғары деңгейлі тілдер: FORTRAN (1955), ALGOL (1960), BASIC (1965), Pascal (1970-жылдар), ADA (1980), C және т.б.
- Қолданбалы бағыт: деректер қорына және кестелік есептеуге арналған тілдер мен жүйелер (Clipper, dBase, SuperCalc және т.б.).
Программа жазуды жеңілдету үшін математикалық формулаларды кең қолданатын, ағылшын тілі негізіндегі алгоритмдік тілдер кең тараған: BASIC, FORTRAN, Pascal, C және т.б.