Дәріс. Алгоритм және алгоритмдік тілдер

Қазіргі кездегі информатика пәнінің негізгі түсінігінің бірі - алгоритм туралы түсінік. «Алгоритм» деген термин орта ғасырда Орта Азияда (хазіргі Өзбекстан территориясындағы Хорезм қаласында ) өмір сүрген аль-Хорезми деген ғалымның атына байланысты пайда болған. Аль-Хорезми алғашқы алгебра пәні бойынша кітап жазған ғалым.

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

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

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

Алгоритм құрастырудың графикалық әдісі. Есептің алгоритмін жеке бөліктердің (кезеңдердің) тізбегі ретінде қарастыруға болады. Графикалық әдіс адгоритмнің осы қасиетін пайдаланады; әрбір кезең жеке блок ретінде бейнеленеді. Әрбір орындалатын амалдың түріне байланысты блок символы (геометриялық фигура) қабылданған. Орындалатын амалдардың орындалу тәртібін бейнелеу үшін өту сызығы қолданылады; ол бағытталған кесінді

(стрелка) түрінде бейнеленеді.

Орындалатын амалды бейнелеу үшін «Процесс» блогы қолданылады. Белгілі бір шарттың орындалуына байланысты амалдардың орындалуын басқаратын блок «Шешу» деп аталады; мұнда амалдардың орындалу бағытын анықтайтын сұрақ, шарт немесе салыстыру амалы болуы тиіс. Қайталанатын амалдарды көрсету үшін «Өзгерту» (модификация) блогын пайдаланады. Әрбір блоктың реттік номері және қысқаша орындалатын амалдың түсініктемесі жазылады. Келесі кестеде алгоритмді сипаттауға қолданылатын стандартты геометриялық фигуралардың тізімі және орындалатын амалдардың қысқаша мазмұны келтірілген.

 

1-кесте. Блоктардың түрлері

Блоктың аты Бейнесі мен сипаттау мысалы Түсініктемелер
Процесс

Есептеу амалы немесе есептеулер тізбегі    
  Шешу

 

иә жоқ

  Шартты тексеру    
  Модификация-Өзгерту       Циклдың басы  
Алдын ала анықталған процесс   Параметрлерді есептеу   Стандартты немесе қосалқы программадағы есептеулер
Енгізу-шығару
ммм,мәндері

Деректерді жадқа енгізу – нәтижені шығару    
Басы және соңы
Басы

Алгоритмнің басы мен соңы, қосалқы программаға ену және одан шығу  
  Құжат

  Есептеу нәтижесін басуға (принтерге) шығару    

 

Алдын - ала анықталған процесс қосалқы программаларға, жеке модульдерге және стандартты программалар кітапханасына өту үшін қолданылады. Себебі үлкен есептерді шешу кезінде оны жеке бөліктерге бөліп, қосалқы программалар құрастыруға болады; кейде дайын стандартты программаны немесе бұрын құрастырылған программаны да пайдалану мүмкіншілігі болады.

 

Мысал ретінде квадрат теңдеуді шешудің алгоритмінің блок-схемасы қарастырылсын.

Басы

жоқ


Нақты шешім жоқ
соңы
иә

 

 

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

1- кезең. Квадрат теңдеудің коэффициенттерін енгізу.

2-кезең. Дискриминантты есептеу.

3-кезең. Дикриминанттың теріс еместігін тексеру. Егер бұл шарт орындалмаса, онда «Нақты шешім жоқ» деген жауап шығарылады; ал егер ол шарт орындалса, онда есептеу процесі жалғанады.

4-кезең. Квадрат теңдеудің екі нақты түбірі анықталады.

5- кезең. Теңдеудің анықталған түбірлерінің мәндері баспаға шығарылады.

Берілген есептің алгоритмі құрастырылғаннан кейін есептегіш құрал (компьютер) оны жүзеге асыруы үшін оған түсінікті тілде командалар (нұсқаулар) берілуі тиіс. Себебі компьютер тек машина командаларын ғана орындай алады. Ондай командалардың жиынын программа деп атайды.

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

Қарапайым пайдаланушы машина командалары арқылы программа құрастырмайды. Көбінесе, тиімді программа құрастыру қажет болғанда, мысалы, стандартты программаларды құрастырғанда, мамандар пайдаланады. Программалау ісін жеңілдету мақсатымен арнайы символдарды (таңбаларды) пайдаланатын автокод (символдық код жүйесі)пайдаланыла бастады. Автокод дегеніміз қарапайым программалау тілі; ол төменгі деңгейдегі тіл деп аталынды.

Программалау ісін ары қарай жеңілдету мақсатымен жоғары деңгейдегі тілдер пайдаланыла бастады. Өткен ғасырдың 50-60 - шы жылдарында программалаудың алгоритмдік тілдері қолданыла бастады. Алғашқы алгоритмдік тіл FORTRAN (Formulae Translator – формула аудырушы) 1956 жылы қолданысқа енді. Осыдан кейін әртүрлі алгоритмдік тілдер пайда бола бастады. Ең көп тараған тілдерге Алгол, Кобол, Бейсик, Паскаль, Си және т.б. жатады. Кезінде ондай тілдердің саны бірнеше жүздеп саналды. Бірақ олардың көпшілігі көп қолданыста болмады. Алгоритмдік тілдердің негізінде көптеген дайын программалар жиыны құрастырылды. Математикадағы типтік есептердің көбісі үшін стандартты программалардың жиыны немесе кітапханасы болғандықтан, алгоритмдік тілдерді пайдалану программа құрастырушылар үшін үлкен жеңілдік туғызды. Жоғары деңгейдегі тілдердің даму шыңы объектіге бағдарланған тілдер (объектно-ориентированное программирование) деп есептелінеді.

Алгоритмдік тілдерді және программалау технологиялары туралы мәліметтерді қарастыратын пәндер келесі семестрлерде оқытылады. Әзірше жоғарыда келтірілген мысалдың алгоритмінің Паскаль тілінде жазылуын келтіруге болады.

 

Program KVA; Программаның басы, аты

Label 5,6; Белгілерді сипаттау

Var a,b,c,d,x1,x2: real; Айнымалыларды сипаттау

Begin Амалдардың басы

Read (a,b,c); Деректерді енгізу

d:=b*b-4*a*c; Дискриминантты есептеу

if d<0 then goto 5; Шартты тексеру және өту

x1:=(-b+sqrt(d))/(2*a); Бірінші түбірді есептеу

x2:=(-b-sqrt(d))/(2*a); Екінші түбірді есептеу

Writeln (‘ Жауабы: x1=’,x1, ‘ ‘, ‘x2=’, x2); Жауапты басуға шығару

goto 6; Соңына өту

5: Writeln (‘ Нақты шешімі жоқ’); Басқа жауапты шығару

6: End. Программаның соңы

 

Алгоритмдік тілде жазылған программа компьютер жадына енгізілгеннен кейін, ол файл күйінде сақталынып, ол файлға ат беріледі. Файлдың аты екі бөлімнен тұрады: файл аты және оның кеңейтілуі. Файл аты латын әріптері мен цифрлардан және рұқсат етілген таңбалардан тұрады; оны пайдаланушы өз қалауымен атайды. Ал файлдың атының кеңейтілуі ондағы ақпарат түрін көрсетеді. Мысалы, алғаш Паскаль тілінде жазылған программаның атының кеңейтілуі .pas болады. Компьютер жадына енгізілген программа арнайы программаның (транслятордың) көмегімен маина тіліне аударылады; осыдан алынған программа файл түрінде сақталынады. Ол файлға алғашқы файлдың аты беріледі, бірақ кеңейтілуі .obj болады; оны объектік файл деп атайды. Осыдан кейін арнайы программаның көмегімен орындалуға дайын программа құрастырылады; ол сақталынатын файл да бұрынғы атпен аталынады, тек кеңейтілуі .exe болады. Осы соңғы программа және оған қажетті деректер енгізіліп, программа орындалады.

 

Бақылау сүрақтары:

1. Есептің алгоритмі дегенге түсінік беріңіз.

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

3. Алгоритмнің блок-схемасы дегеніміз не?

4. Блок-схеманы бейнелеу үшін қандай фигуралар пайдаланылады?

5. Алгоритмді вербальды сипаттау дегеніміз не?

6. Программа дегенге анықтама беріңіз.

7. Файл дегенді қалай түсінесіз?

8. Паскаль тілінде жазылған программа сақталынған файлдың атының кеңейтілуі қалай жазылады?

9. Орындалатын файл қалай аталады?

10. Транслятор деген не?

11. Компилятор деген не?

12. Интерпретатор деген не:

13. Файл атындағы кеңейтілуі нені көрсетеді?

14. Трансляциядан кейін алынған программа қалай аталады?

15. Орындалатын файлдың атының кеңейтілуі қалай аталады?

16. Компьютер үшін алғашқы программаны құрастырған кім екенін сіз білесіз бе? Ол кісінің аты графиня Ада Августа Лавлейс. Ол атақты ақын Джон Байронның қызы. Ол кісі пограмманы Чарльз Бэббидж (1792-1871) құрастырған механикалық компьютер үшін құрастырған болатын. Бұл оқиға XIX – ғасырда болған. Графиня А.Лавлейс программа құрастырумен қатар, компьютер құрастырудың жобасын қаржыландыруға да қатынасқан.

17. Fortran тілін кім құрастырған? Оны IBM компаниясының қызметкерлері құрастырған. Ол мамандардың тобын Джон Бэкус басқарған.

18. Паскаль тілінің авторы кім?

19. Біздің елде (Кеңестер Одағында) алғашқы электронды есептегіш машинаны (ЭЕМ) кім құрастырды? Алғашқы ЭЕМ-ді құрастырушылар академик С.А.Лебелев басқарған ұжым. Алғашқы ЭЕМ-нің аты МЭСМ (Малая электронно-счетная машина) 1951 жылы пайда болған.

20. Есептеу процесін автоматтаныдру туралы алғашқы дәрісті оқыған ағылшын математигі әрі экономисті Чарльз Беббидж болатын. Ол дәріс 1840 жылы оқылды.

 








Дата добавления: 2016-06-02; просмотров: 4579;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.015 сек.