Алгоритмдер теориясы және берілгендер құрылымы

Жоспар:

Кіріспе

1 тарау Алгоритмдер теориясы және берілгендер құрылымы
1.1. Алгоритмдер. Алгоритмдерді талдау. Алгоритмдер құру
1.2. Программа құру тілі. Программа құрылымы. Енгізу және шығару командалары.
1.3. Программа құру тілі. Программа құрылымы. Енгізу және шығару командалары.

2 тарау Іздеу алгоритмдері
2.1. Сызықты іздеу.
2.2. Екілік іздеу.
2.3. Қатарда іздеу. Кнут . Морис . Пратт алгоритмі.
2.4.Қатарда іздеу. Боуер .Мура алгоритмі
2.5. Іздеу алгоритмдерінің таралымына есептер шығару мысалдары
2.6. Есептер
Кіріспе
Бағдарлама тілдері есептерді шешу алгоритмдерін электрондық есептегіш машинасына арналған бағдарлама түрінде жазуға арналған. Бастапқы мәліметтерді алған бағдарлама ақпаратты өңдеу жөніндегі команданың соңғы әрекет саны ішінде белгілі бір нәтиже беруі тиіс. Тілді зерттеп оқу үшін бұл тіл бағдарламалаудың жеті негізгі түсініктерін жүзеге асыратынын түсіну керек, ол
1) түрлі типтегі мәліметтерді беру және оперативті жадыдан оларға орын бөлу;
2) мәліметтерді енгізу, яғни ақпаратты клавиатурадан немесе сыртқы мәлімет таратушыдан оқу;
3) пайдаланушы үшін (аралық және шығыс) нәтижелерін беру немесе сыртқы мәлімет таратушыға жазу;
4) мәліметтерді өңдеу жөніндегі операциялар мен командаларды бірінен соң бірі ретімен орындау;
5) (тармақталған алгоритмдерді ұйымдастыру үшін) операциялар мен командаларды берілген шарт бойынша орындау;
6) командаларды белгіленген есе рет берілген шарт бойынша орындау (циклдық алгоритмдерді ұйымдастыру);
7) атаулы кіші бағдарламаға арап командалар тобын бөлу және оған программадан және кіші программадан қатынау (бағдарламалаудың модульдік принципін жүзеге асыру).
Бағдарламалаудың осы базалық элементтерімен дамыған алгоритмдік тілдер мүмкіндіктері шектелмейді, бірақ оларды зерттеп үйрену жаңа тілді тез үйреніп, ол тілде бағдарлама жазуға көмектеседі. Паскаль мен Си бағдарлама тілдері ең әйгілі және кең таралған алгоритм тілдері. Олар 70жылдың басында бір уақытта, бірақ түрлі мақсатта құрылған.
Паскаль тілін Цюрихтегі Швейцария техникалық институтының профессоры Никлаус Вирт Алгол-60 тілі негізінде қазіргі кездегі құрылымдық бағдарламалау принципіне үйрету үшін жасаған. Қарапайымдылығы мен тілінің түсініктілігі тез үйренуге мүмкіндік береді. Мәліметтер құрылымын көрсету құралы алгоритмдік күрделі бағдарлама құруға мүмкіндік береді, сондықтан бұл тіл түрлі қолданбалы мәліметтерді шешуге қолайлы. Оқулық тіл ретінде құрылған бұл тіл қатаң қатаң типтелген. Бұл: транслятор барлық “айнымалылар бір мәліметтер типіне жатқызылып, бағдарламада өз маңызына сәйкес пайдаланылуын бақылайды” дегенді білдіреді. Сөйтіп, бағдарламаның сенімділігі артады. Транслятордың оңтайландырушы қасиеттері тиімді бағдарлама құруға рұқсат етеді, сондықтан, Паскальді жүйелі бағдарламалау тілі ретінде пайдалануға болады. Бағдарламалаудағы жаңа идеяларды тез қабылдау қасиеті Паскальдің оқулық тілден кәсіби бағдарламалау тіліне дамуына ықпал етті. Бұл Паскальдің бағдарлама құрудың интеграцияланған ортасында жұмыс істейтін Турбо Паскаль атты дербес электронды есептегіш машинаға арналған түріне қатысты болады.
Борланд фирмасы жасаған Турбо орта бағдарламаларды толық өңдеуге арналған және файлдармен жұмыс істеу құралдары, редактор, бағдарламаны жөнге келтіруші, компилятор, модульдік бағдарлама құру құралы, кіші программа (библиотекасы) кітапханасы, нығыздауыштан тұрады. АҚШ-та әзірлеген Паскаль тілі ЭЕМ бағдарламалық қамтамасыз етілуін әзірлеуге арналған. Онда машинаға бағдарланған Ассемблер тілі (жады ұяшығына тікелей қатынау және биттерді пайдалану) мен структуралық бағдарлама құрудың басқарушы конструкциялары кіретін процедуралық бағытталған тіл арасындағы өзара келісім болады.
Паскаль тілінің ұғымды, қуатты, икемді болуы кәсіби бағдарламашыға модульдік бағдарлама құру принципі мен құралдарын пайдаланып структураланған үлкен бағдарлама құруға мүмкіндік береді. Дербес электрондық есептегіш машинада Турбо ортада жұмыс істейтін Турбо Си тілінің Турбо Си тілінің нұсқалары іске асырылған. Сонымен, Паскаль және Си тілдері-структураланған, модульді компилирленген, әмбебап тілдер, олардың арасында ортақ белгілер де бар, айырма да көп. Паскаль реттелген және құрылымдық тіл, ал Си еркін де икемді тіл. Паскаль Сиге қарағанда пайдаланушы үшін қолайлы және бағдарлама құру негізін оқуға ыңғайлы.
Турбо Паскаль мен Турбо Си мүмкіндіктері жөнінен Си мен Паскальға қарағанда бірі біріне жақынырақ. Турбо Си Сиге кейбір құрылымдарды қосады, ал Турбо Паскаль Паскальға икемділік береді. Турбо Паскальді игерген пайдаланушы Турбо Си мүмкіндігін үйреніп, бағдарламаларды тез жаза бастай алады.Турбо Симен жұмыс істеуші пайдаланушыға компилятор бағдарламаға Турбо Паскаль тілінде жазылған модульді енгізуге мүмкіндік береді, сондықтан ол Паскаль бағдарламалары қалай құралатынын білуі тиіс.
Мақсаты-Турбо Паскаль мен Турбо Си тілдерін салыстырып, мәліметтер құрылымы мен тіл құрылымдарын көрсету ұқсастығы мен айырмасын анықтап, бірдей мысалмен бағдарламалық мәтіндерді бейнелеу болып табылады.
Тілдер версиялары ретінде Турбо Паскаль 5,0 және Турбо Си 2,0 пайдаланамыз, бұл Американдық ұлттық стандарттар институты (ANSI) ұсынған Паскаль тілі стандарт жобасын қолдайды.
        
        Жоспар:
Кіріспе
1 тарау Алгоритмдер теориясы және берілгендер құрылымы
1.1. Алгоритмдер. Алгоритмдерді талдау. Алгоритмдер ... ... құру ... ... ... ... және ... Программа құру тілі. Программа құрылымы. Енгізу және шығару
командалары.
2 тарау Іздеу алгоритмдері
2.1. Сызықты іздеу.
2.2. Екілік іздеу.
2.3. Қатарда іздеу. Кнут - ... - ... ... ... ... -Мура алгоритмі
2.5. Іздеу алгоритмдерінің таралымына есептер шығару мысалдары
2.6. ... ... ... шешу ... ... ... ... бағдарлама түрінде жазуға ... ... ... ... ... ... ... команданың соңғы
әрекет саны ішінде белгілі бір нәтиже беруі тиіс. Тілді зерттеп оқу үшін
бұл тіл ... жеті ... ... жүзеге асыратынын түсіну
керек, ол
1) түрлі типтегі мәліметтерді беру және оперативті жадыдан оларға орын
бөлу;
2) мәліметтерді ... яғни ... ... немесе сыртқы
мәлімет таратушыдан оқу;
3) пайдаланушы үшін ... және ... ... беру немесе сыртқы
мәлімет таратушыға жазу;
4) мәліметтерді өңдеу жөніндегі ... мен ... ... ... ретімен орындау;
5) (тармақталған алгоритмдерді ұйымдастыру үшін) операциялар мен
командаларды берілген шарт ... ... ... белгіленген есе рет берілген шарт бойынша орындау
(циклдық ... ... ... кіші ... арап ... тобын бөлу және оған
программадан және кіші программадан қатынау ... ... ... асыру).
Бағдарламалаудың осы базалық элементтерімен дамыған алгоритмдік ... ... ... ... ... ... жаңа тілді тез
үйреніп, ол тілде ... ... ... ... мен Си ... ең әйгілі және кең таралған алгоритм тілдері. Олар 70жылдың ... ... ... ... ... ... тілін Цюрихтегі Швейцария техникалық институтының ... Вирт ... тілі ... ... кездегі құрылымдық
бағдарламалау принципіне үйрету үшін жасаған. Қарапайымдылығы мен тілінің
түсініктілігі тез үйренуге мүмкіндік береді. ... ... ... ... күрделі бағдарлама құруға мүмкіндік береді, сондықтан
бұл тіл түрлі қолданбалы мәліметтерді шешуге қолайлы. ... тіл ... бұл тіл ... ... ... Бұл: ... барлық “айнымалылар
бір мәліметтер типіне жатқызылып, бағдарламада өз ... ... ... ... білдіреді. Сөйтіп, бағдарламаның
сенімділігі ... ... ... қасиеттері тиімді
бағдарлама құруға рұқсат етеді, сондықтан, Паскальді жүйелі ... ... ... ... Бағдарламалаудағы жаңа идеяларды тез
қабылдау қасиеті Паскальдің ... ... ... ... ... ... етті. Бұл Паскальдің бағдарлама құрудың интеграцияланған
ортасында жұмыс істейтін Турбо Паскаль атты ... ... ... арналған түріне қатысты болады.
Борланд фирмасы жасаған Турбо орта бағдарламаларды толық өңдеуге арналған
және ... ... ... ... ... ... ... компилятор, модульдік бағдарлама құру құралы, кіші программа
(библиотекасы) кітапханасы, нығыздауыштан тұрады. АҚШ-та ... ... ЭЕМ ... ... ... ... арналған. Онда машинаға
бағдарланған Ассемблер тілі (жады ұяшығына тікелей қатынау және биттерді
пайдалану) мен структуралық бағдарлама ... ... ... ... бағытталған тіл арасындағы өзара келісім болады.
Паскаль тілінің ... ... ... ... ... ... ... құру принципі мен ... ... ... бағдарлама құруға мүмкіндік береді. Дербес
электрондық есептегіш машинада ... ... ... ... Турбо Си тілінің
Турбо Си тілінің нұсқалары іске асырылған. Сонымен, Паскаль және Си ... ... ... ... ... ... ... белгілер де бар, айырма да көп. Паскаль реттелген және ... ал Си ... де ... тіл. ... Сиге ... ... үшін
қолайлы және бағдарлама құру негізін оқуға ыңғайлы.
Турбо Паскаль мен Турбо Си ... ... Си мен ... бірі ... ... ... Си Сиге ... құрылымдарды қосады,
ал Турбо Паскаль Паскальға икемділік береді. ... ... ... ... Си ... ... ... тез жаза бастай
алады.Турбо Симен жұмыс істеуші пайдаланушыға компилятор бағдарламаға Турбо
Паскаль ... ... ... ... мүмкіндік береді, сондықтан ол
Паскаль бағдарламалары қалай құралатынын білуі тиіс.
Мақсаты-Турбо Паскаль мен Турбо Си тілдерін ... ... мен тіл ... ... ұқсастығы мен айырмасын ... ... ... ... ... болып табылады.
Тілдер версиялары ретінде Турбо Паскаль 5,0 және ... Си ... бұл ... ұлттық стандарттар институты (ANSI) ұсынған
Паскаль тілі ... ... ... ... Алгоритмдер теориясы және берілгендер құрылымы
1.1. Алгоритмдер. Алгоритмдерді талдау. Алгоритмдер құру.
Алгоритмдер математикалық логика – алгоритмдер теориясына ... ... ... мен ... ... ... жүйелі
зерделеу объектісі болып табылады.
Жағдайдың ерекшелігі ... ... іске ... үшін алгоритмдер
әзірлеуге ұйғарылған практикалық міндеттерді шешу кезінде және сонымен
қатар практикада ақпараттық ... ... ... негізінен
бұл ұғымның жоғары формальдылығына сүйенбеген жөн. Сондықтан алгоритм
ұғымының мәнін ... ... және оның ... қасиеттерін қарастыру
негізінде алгоритмдермен және алгоритмизациялаумен танысқан дұрыс болады.
Мұндай ... ... ... ... ... ... шеңберінде
белгілі бір практикалық тәсілдердің, ұтымды ойлаудың ... ... ... ... алға ... Ақпаратты өлшеуде мұндай жағдай
мен жоғарыда қарастырылған тәсілдің арасында ұқсастықты жүргізуге болады:
“кибернетикалық” тәсіл ... ... ... ... ... ... кезінде барынша қарапайым “көлемді” тәсілді
қолдану кезінде аса қажет емес.
“Алгоритм” ... өзі ІХ ... ұлы ... ... ... тіліндегі algorithmi жазылуынан шыққан, ол арифметикалық
амалдарды орындау ... ... ... ... ... ... төрт ... амалды орындау ережесі арқылы түсінді.
Алгоритм ұғымын алгоритмнің интуитивтік мағынадағы ұғымы деп айтуға
болады. Ол анық ... ... ... ... және ... дәл
анықталмаған, бірақ интуитивті түсінікті заттарға сүйенеді. Мысалы ... ... және ... ... біз ... ... ... көздедік. Оның бар екені болжалды, бірақ ол
туралы ештеңе анық белгілі болмады. Математика ... ... ... ... ... ... ... бере алмадық.
Өткен параграфта белгіленген алгоритмдер қасиеттерін эмперикалық деп
атаған жөн. Олар әртүрлі және ... ... ... ... ... анықталған. Бұл қасиеттерді практикалық программалау үшін,
компьютерлер, ЧПУ ... ... ... үшін ... ... құру үшін ... Алайда фундаментальды ғылыми ұғым ретінде
алгоритм барынша мұқият ... ... ... Ол ... ... оны ... ... бейнелемей, басқаша айтқанда формализациялау
мүмкін емес.
“Алгоритм” ұғымын формализациялаудың бірнеше тәсілдері белгілі:
- ... және ... ... ... ... (рекурсивті) функциялар теориясы;
- Черчтің λ есептеуі.
Осы туындаған бір ... ... ... нәтижесінде эквивалентті болып
шықты. Алгоритм ұғымын формализациялаудың басты мақсаты мынадай: әртүрлі
математикалық есептердің алгоритмдік ... ... ... яғни ... ... ... ... шешуге әкелетін алгоритм
құрастырылуы мүмкін бе? Біз осы проблеманың ... ... ... ... ... ... ... бірақ
алдымен Пост, Тьюринг машиналарының мысалында ... ... ... формализациялауды, сондай-ақ Марковтың ... ал ... ... ... ... теория негізінен
талқылаймыз. Черчтың λ ... ... LISP ... ... ... (3 ... қатар, блгілі тәсілдердің кез келгенімен формальды анықталған
алгоритм практикалық программалауда біз өткен параграфтарда алгоритмдер ... ... ... ... себеп мынада, формальды
анықтауқарастырылатын есептер шеңберін бірден қысқартады және көптеген
практикалық маңызды есептерді қарау үшін қол жетпейтін етеді.
1.2. Программа құру ... ... ... ... және ... кезде программалау тілінің түрлері көп. Солардың ішіндегі ең
танымалысы ... ... ... ... ... сауаттылық пен
программалауды алғашқы кезеңде ... ең ... тіл. ... ... тіл ішіндегі кеңінен тараған тілдердің бірі ... ... ... ... ... ... екі бөліктен тұрады:
1. берілгендерді сипаттау;
2. алгоритмдік амалдарды бейнелеу немесе операторлық бөлік.
Берілгендер бейнелеу арқылы жазылса, ... ... ... ... ... Паскаль программасын екі бөлікке бөлуге болады:
программа тақырыбы, блок.
Программа құрылымы төмендегіше болады:
Program ;
Блок: 1. ... ... ... ... ... ... бейнелеу бөлігі.
4. Типтерді анықтау бөлігі.
5. Айнымалыларды бейнелеу ... ... және ... ... ... Операторлар бөлігі.
Program аты (пайдаланылатын файлдар аттарының тізімі);
бейнелеу бөлігі
Begin
Оператор бөлігі
End.
Программа құрылымының Паскаль тілінде жазылуы:
Program аты (input,output);
Uses – модульдерді қосу;
Label – ... ...... ... – Тип ...... ... Function – процедура және функция бөлігі;
Begin
1- Оператор;
2- Оператор;
......................
n- оператор;
End.
Бейнелеу ... ... ... ... ... айнымалыларға сипаттама беріліп (берілгендер атауы, ... ... және т.б.), олар ... ... ... бөліктердің бәрі бірдей бар болуы шарт емес. Бейнелеудің жеке
бөліктеріне қысқаша тоқталайық:
Uses –бұл ... ... ... ... ... ... стандартты және пайдаланушының құрған модульдері болуы ... ... ... бірнеше стандартты модульдер бар. Олардың
негізгілері: SyStem – Паскаль тілінің ... мен ... ... ... ... ... ... Паскаль тілінің DOS командаларын пайдалануды сүйемелдейді; CRT –
Тексттік режимде экранды басқарады; OVERLAY – ... ...... ... GRAPH – экранның графикалық режимінің
жұмысын сүйемелдейді. Бұлардың барлығы TURBO.TPU, ... ... SyStem ... ... ... ... ... ол автоматты
түрде қосылады. Программаның орындалу нәтижесін ... көру үшін ... ... ... ұстап тұруды ұйымдастыру қажет. Кідірісті үш тәсілмен
ұйымдастыруға болды: 1) Readln ... 2) ... ... 3) While NOT ... DO ... ... ретінде кез келген бүтін оң сан, символ, ... ... ... ... ... программаның бөлігін табу үшін
қолданылады. Белгі оператор алдында ... да, қос нүте ... ... ... ... ... белгі арқылы
жүзеге асырылады. Мысалы, Label ... ... ... ... жазу үшін ... ... болады. Мысалы, А:=15, ... ... ... үшін айнымалылардың мәндерін өзгертетін ... жазу ... ... ... айнымалының әр түрі мәндері үшін дұрыс болады. Ол үшін
енгізу операторы READ ... ... ... ... ... ... ... а1, а2,...,аn – ... ... ... ... ... деп ... READ операторы орындалғанда
параметрлер өздеріне сәйкес мәндерді қабылдайды, бұл міндетті ... ... ... жүзеге асырылады.
Паскаль тілінде нәтижені экранға ... үшін WRITE ... ... WRITE(а1, а2,...,аn). Мұндағы а1, ...... ... ... ... алынған символдар тобы болуы мүмкін.
Мысалы, егер В=17,15 болып, write ... ... ... экранға
В=17,15дерегі көрінеді. Бүтін және нақты сандарды шығару үшін ... беру ... ... ... ... соң қос нүкте арқылы жазылады.
Нақты сан форматы екі ... ... 1-сан – ... ... ... 2-сан ... кейін алынатын бөлшек бөлік саны.
1.3. Программа құру ... ... ... Енгізу және шығару
командалары.
Қазіргі кезде программалау тілінің түрлері көп. Солардың ... ... ... программалау тілі. Өйткені компьютерлік сауаттылық пен
программалауды алғашқы кезеңде үйретуге ең қолайлы тіл. ... ... тіл ... ... ... ... бірі ... табылады.
Қарастырылатын Паскаль программалау тілінде программа екі бөліктен ... ... ... ... ... ... немесе операторлық бөлік.
Берілгендер бейнелеу арқылы жазылса, амалдар оператор арқылы жазылады.
Синтаксистік жағынан Паскаль ... екі ... ... ... ... ... құрылымы төмендегіше болады:
Program ;
Блок: 1. Модульдерді қосу.
8. Белгілерді бейнелеу бөлігі.
9. Тұрақтыларды бейнелеу бөлігі.
10. Типтерді анықтау бөлігі.
11. Айнымалыларды ... ... ... және ... ... ... ... бөлігі.
Program аты (пайдаланылатын файлдар аттарының тізімі);
бейнелеу ... ... ... Паскаль тілінде жазылуы:
Program аты (input,output);
Uses – модульдерді қосу;
Label – ... ...... ... – Тип ...... бөлігі;
Procedure, Function – процедура және функция бөлігі;
Begin
3- Оператор;
4- Оператор;
......................
n- ... ... ... пайдаланылатын белгілерге, тұрақтыларға,
типтерге, айнымалыларға сипаттама беріліп (берілгендер ... ... ... және т.б.), олар хабарланады. Бейнелеу бөлігіндегі
көрсетілген бөліктердің бәрі бірдей бар ... шарт ... ... жеке
бөліктеріне қысқаша тоқталайық:
Uses –бұл жолда программада пайдаланылатын модульдер тізімінен тұрады.
Модульдер стандартты және ... ... ... ... мүмкін.
Турбо Паскаль жүйесінде бірнеше ... ... бар. ... SyStem – ... ... ... мен ... Турбо
Паскаль тілінің қосымша командаларын сүйемелдейді;
DOS- Паскаль тілінің DOS ... ... ... CRT ... ... ... ... OVERLAY – оверлейлік программаларды,
PRINTER – принтерді ... GRAPH – ... ... ... ... Бұлардың барлығы TURBO.TPU, GRAPH.TPU файлында
орналасқан. SyStem ... ... ... ... ... ол ... қосылады. Программаның орындалу нәтижесін экраннан көру үшін ... ... ... ... ... ... ... Кідірісті үш тәсілмен
ұйымдастыруға болды: 1) Readln ... 2) ... ... 3) While NOT Keypressed DO операторымен.
Label –белгі ретінде кез келген бүтін оң сан, ... ... ... ... ... ... ... бөлігін табу үшін
қолданылады. Белгі оператор ... ... да, қос нүте ... ... ... ... ... белгі арқылы
жүзеге асырылады. Мысалы, Label 5,12,45,Sum, AB.
Берілген мәндерді айнымалыға жазу үшін ... ... ... ... А:=15, ... ... етіп
жасау үшін айнымалылардың мәндерін өзгертетін түрде жазу ... ... ... ... әр түрі ... үшін дұрыс болады. Ол үшін
енгізу операторы READ пайдаланылады. ... ... ... түрі
READ(а1, а2,...,аn). Мұндағы а1, а2,...,аn – айнымалы атаулары, оларды
енгізу ... ... деп ... READ ... ... ... сәйкес мәндерді қабылдайды, бұл міндетті енгізу файлы
INPUT(енгізу) арқылы жүзеге асырылады.
Паскаль тілінде нәтижені ... ... үшін WRITE ... операторы
пайдаланылады. WRITE(а1, а2,...,аn). Мұндағы а1, ...... ... ... ... алынған символдар тобы болуы мүмкін.
Мысалы, егер В=17,15 ... write ... ... ... ... ... Бүтін және нақты сандарды шығару үшін ... беру ... ... айнымалы атынан соң қос нүкте арқылы жазылады.
Нақты сан форматы екі саннан тұрады: 1-сан – ... ... ... 2-сан ... кейін алынатын бөлшек бөлік саны.
2 тарау Іздеу алгоритмдері
2.1. Сызықты іздеу.
Программалауда ең жиі ... ... бірі – ... Ол ... ... олардың пайда болуына қарай байқап көруге болатын жан-
жақты есеп болып табылады. Осы ... ... ... ... ... олар үшін ... ... алгоритмдер құрылған. Алға қарай қарау
кезінде біз ... ... ... ... ... ... іздеу
қажетті деректер тобы белгіленген. N элементтердің ... ... а ... ... деп ... [0 .. N - 1] OF item;
Әдетте item типі кілттің рөлін атқаратын кейбір ... бар ... Есеп ... х ... ... тең ... іздеуден
тұрады. Нәтижесінде алынған a \i\.key = х ... ... ... ... ... басқа өрістеріне қатынауды қамтамасыз етеді.
Өйткені бізді бірінші кезекте, анықталған деректер ... ... ... ... онда біз item типі тек қана ... ... ... кілт
(key) деп есептейтін боламыз.
Егер ізделіп отырған деректер туралы ешқандай ... ... онда ... тәсіл – оның қажетті элемент табылмаған бөлігінде қадам
сайын көбейте отырып жиымды тізбекті қарау болып ... ... ... ... деп ... Іздеуді аяқтау шарты мынадай:
1. Элемент табылды, яғни ai = х.
2. Барлық жиым қаралды және сәйкестік анықталған жоқ.
Бұл бізге ... ... ... (i < N) and (a[i] # x) DO i := i+1 ... ... ... реті ... ... ие ... ... Циклдың иварианты, яғни і индексін ... ... ... шарт ... ... барлық і-ге қарағанда аз к мәндері үшін ... ... ... ... ... ... басында шарттың жалғандығы жағдайында ғана
аяқталатыны анық, нақты шешім ... ... = N) OR (аi = x)) ... шарт тек қана қажетті нәтижені ... одан егер ... онда ол ең ... ... ... ... табылғаны шығады, яғни
бұл мұндай элементтердің ... i = N ... ... жоқ ... соңы ... ... ... әрбір қадам сайын ... ... ... ... ол N шегі ... ... санына жетеді; іс
жүзінде егер сәйкестік болмаса бұл N қадамдарынан ... ... ... ... ... және ... ... есептеу талап
етілетіні анық. Ал осы ... ... және ... іздеуді тездетуге
бола ма? Жалғыз ғана мүмкіндік - ... ... өзін ... ... ол екі ... ... ... барынша қарапайым шешімге
келудегі жалғыз ғана мүмкіндік – ... ... ... ... ... шарт ... Мұны егер ... барлық уақытта болатынына
кепілдік берсек орындауға болады. Бұл үшін жиымның ... х мәні ... ... ... ... ... көмекші элементті барьерлер
деп атаймыз, өйткені ол бізді ... тыс ... ... ... Енді
жиым былайша суреттелетін болады:
a: ARRAY [0..N] OF INTEGER
және ... ... ... ... мына ... көрсетіледі:
a[N] := х; i := ... a[i] х DO i := ... ... ... ... ... бұрынғыша:
i =0 теңдігі сәйкестік болмағанын (егер ... ... ... ... ... ... ... іздеу жүріп жатқан деректер туралы қандай да бір
ақпарат жоқ болса, іздеуді шапшаңдатудың ... ... жоқ ... ... ... ... болса іздеуді едәуір тиімді ... ... ... Көз ... ... рет-ретімен орналастырылмаған
телефон анықтамалығын елестетіңіз. Бұл мүлдем пайдасыз нәрсе. Сондықтан
біз а ... ... ... ... яғни ол мына ... ... идея - кездейсоқ кейбір элементті таңдау, оны aм деп аламыз
және х ... ... ... Егер ол х-қа тең ... ... аяқталады, ал егер ол х-тан кем болса, онда біз м-нан кем ... ... бар ... ... одан әрі іздеуден шығарып тастауға
болады деп тұжырым жасаймыз; егер ол ... ... ... онда м-ға тең
немесе артық индекстер алып тасталады. Бұлай ойлау бізді келесі ... ... (ол қақ ... ... ... деп ... ... L және R екі
индексті айнымалылар қажет болып отырған элемент тағы қай жерден табылуы
мүмкін болатын а ... ... ... сол және оң ... ... : = 0 R:= N-1; found := ... (L ');
readln (stolen :=Length(st) ;
for i:=i to len ... st[i] ... . .'n' : st [i] ... .. 'я' : st [i] ... ... ... өзгертілген жол:');
writeln (st);
readln;
end.
№2 есеп
program Рг_2; {Жолдың басындағы бос орындарды жою}
var
st:stting[80]; ... ... бос ... ... ... (pos(' ',st)=1) and (length(st)>0) do delete (st,1,1) ;
write('Бастапқы ... жол: ...

Пән: Информатика
Жұмыс түрі: Курстық жұмыс
Көлемі: 27 бет
Бұл жұмыстың бағасы: 500 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
"Бейсик тілінде берілген есепке программа құру."20 бет
String типті айнымалыға қолданылатын стандартты функциялар мен процедуралар9 бет
TCP/IP хаттамаларының жұмыс жасау негіздері33 бет
Turbo pascal жайлы мәліметтер17 бет
Turbo Pascal жүйесінде жолдарды ұйымдастыру технологиясы22 бет
Turbo Pascal жүйесінде массивтерді ұйымдастыру технологиясы39 бет
Turbo Pascal жүйесінде файлдармен жұмысты ұйымдастыру технологиясы15 бет
Turbo Pascal жүйесінде қайталанатын процестерді ұйымдастыру технологиясы25 бет
Turbo Pascal тілінің операторлары жайлы16 бет
«Турбо паскаль жүйесінде бір өлшемді массивтерді ұйымдастыру технологиясы»25 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь