Алгоритмчлал, алгоритм, хэл, программ. Алгоритм ба программ Эвхэх алгоритм боловсруулах аргууд

Бураков П.В., Косовцева Т.Р. Компьютерийн шинжлэх ухаан. Алгоритм ба програмчлал. Navchalny pos_bnik.-SPb NDU ITMO, 2013. - 83 х.

"Мэдээлэл зүй" мэргэжлээр суралцдаг Хүмүүнлэгийн ухааны факультетийн 080100 "Эдийн засаг" эдийн засгийн мэргэжлээр суралцаж буй оюутнуудад зориулсан даалгаврын анхан шатны сурах бичиг. Энэхүү гарын авлага нь Turbo Pascal ашиглан долоо хоног бүрийн алгоритм, програмчлалын анхан шатны сургалт юм. Pos_bnik олон өгзөгний өшөөг авах. Практик алгоритмын онолын талууд ба програмчлалын үндсийг толилуулж байна. Анхны туслахын өөр нэг хэсэг бол лабораторийн семинар хийх явдал юм.

2009 онд тус их сургууль нь олон шат дамжлагатай уралдааны ялагч болж, үр дүнд нь ОХУ-ын тэргүүлэгч 12 их сургуулийг шалгаруулж, "Үндэсний өмнөх дээд сургууль" гэсэн ангилалд багтжээ. ОХУ-ын Боловсрол, шинжлэх ухааны яамнаас 2009-2018 онд "Санкт-Петербургийн мэдээллийн технологийн их сургууль, үслэг эдлэл, оптик" дээд мэргэжлийн боловсролын улсын боловсролын байгууллагыг хөгжүүлэх хөтөлбөрийг баталлаа.

© Санкт-Петербургийн мэдээллийн технологи, механик, оптикийн үндэсний судалгааны их сургууль, 2013 © P.V. Бураков, Т.Р.Косовцева

Асуудлын мэдэгдэл.................................................. ...... ................................................ ............ ................................

Математик загвар боловсруулах................................................. ....... .................................................

Тоон шийдлийн аргын сонголт................................................. ....... ................................................. ....

Алгоритм ба өгөгдлийн бүтцийг ойлгох................................................. ........ ...................................

Алгоритмыг программ болгон хэрэгжүүлэх................................................. ....... ................................................

Програмыг тохируулах, турших ................................................ ........ ................................................ ..............

Компьютер дээр ажил гүйцэтгэх................................................. ........ .... ................................................ ...................... .......

АСУУДЛЫГ ШИЙДЭХ АЛГОРИТМ БОЛОВСРУУЛАХ.............................................. ......................... ......................... ......

Алгоритмын тодорхойлолт.................................................. ...................... ................................................. ................................................

Алгоритмын схем................................................. ...... ................................................ ............ ...................................

Алгоритмуудын бүтэцлэгдсэн схемүүд................................................... ... ...................................

АЛГОРИТМИЙГ ХЭРЭГЖҮҮЛЭХ ҮЗҮҮЛЭЛТҮҮД................................................... ........ ................................................ .

Киноны хөтөлбөрийг сонгох шалгуур........................................... ........ ...................................

ХӨТӨЛБӨРИЙН БҮТЭЦ, ЭЛЕМЕНТҮҮД................................................... ... ...................................

Програмчлалын үндсэн элементүүд................................................. ... ...................................

Цагаан толгой ба үгсийн сан ТурбоПаскаль (TPascal)................................................. ........ ...................................

Хөтөлбөрийн бүтэц................................................. ... ................................................... ......... ..............

ӨГӨГДЛИЙН ТӨРӨЛ................................................. .... ................................................. ...................... .................................

Скаляр өгөгдлийн төрлүүд................................................. ...... ................................................ ............ ............

Бүтэцлэгдсэн өгөгдлийн төрлүүд................................................. ...... ................................................ ............

ТАНИЛЦУУЛГА-VISNOK өгөгдлүүд...................................................... ...... ................................................... ............ ................................

Индукцийн журам.................................................. ................................................................... .......................... ...................

ОПЕРАТОРУУД................................................. .. ................................................. ........ ...................................................

Хөшигний цаадах мэдээлэл............................................ ................................................................ .......................... ................................. .

Операторуудыг уучлаарай................................................. ... ................................................... ......... ...................

Бүтцийн операторууд................................................. ... ................................................... ......... .........

Ухаалаг операторууд................................................. ... ................................................... ......... .............

Давталтын операторууд................................................. ......... ................................................... ............... .................................

MASSIVI................................................. .. ................................................. ........ ................................................ .

Dії массивуудын дээгүүр................................................. ...... ................................................ ............ ............

Массивын элементүүд дээр Dii................................................. ......... ................................................... ...............

Матрицтай үйлдлүүд................................................. ...... ................................................ ............ ...............

ЖУРАМ, ҮЙЛ АЖИЛЛАГАА................................................... ...... ................................................ ............ ...............

Програмчлалд бүтцийн хэрэгцээ ........................................... ......................... ..............

Movi ТPascal-д зориулсан дэд програмууд...................................... ...... ................................................... ............ ..

Процедурууд.................................................. ....... ................................................. ............. ...................................

Чиг үүрэг.................................................. ........ ................................................ .............. .................................................

Параметр дамжуулах механизм................................................. ...... ................................................... .........

ФАЙЛ.................................................. ................................................... .. ................................................. .........

Хөшигний цаадах мэдээлэл............................................ ................................................................ .......................... ................................. .

Файлын төрлийн тодорхойлолт................................................. ...... ................................................... ............ .........

Файл боловсруулах онцлог................................................. ...... ................................................... ............ ......

Текст файл................................................. ........ ................................................ .............. .................................

ЛАБОРАТОРИЙН ПРАКТИКУМ................................................ ................. ................................. ......................... ........

Лабораторийн робот 1.

Шугаман програмчлал

хүргэнүүдийг задлах

тооцооны үйл явц.................................................. ... ................................................... ......... .........

Лабораторийн робот No2.

Цикл тооцооллын үйл явц.................................................. ......

Лабораторийн робот No3.

Массивтай үйлдлүүд................................................. ...... ..............

Лабораторийн робот No4.

Файлын үйлдлүүд................................................ ................................ ......................

Лабораторийн робот 5. Процедур ба үүрэг................................................. ......... ...........................

Ном зүй................................................. ................................ ................. ...................................................

КОМПЬЮТЕР ДЭЭР ПРАКТИК ТЕХНОЛОГИЙН ХӨГЖЛИЙН ЭЛЕМЕНТҮҮД

Персонал компьютерийн одоогийн үйлдвэрлэл нь дараах үндсэн үе шатуудыг агуулна.

1. Асуудлын талаархи мэдэгдэл.

2. Математик загвар боловсруулах.

3. Розрахунковын даалгаврын тоон шийдлийн аргыг сонгоно уу.

4. Өгөгдлийн бүтцийг илчлэх алгоритмын хэлэлцүүлэг.

5. Алгоритмыг програм болгон хэрэгжүүлэх.

6. Программуудыг тохируулах, турших.

7. Компьютер дээр асуудал шийдвэрлэх, тоон туршилт хийх, үр дүнд дүн шинжилгээ хийх.

Асуудлын талаархи мэдэгдэл

Шинэ вирус, технологийн процесс эсвэл хэрэглэгчийн хэрэгцээнд нийцсэн илүү практик шийдлийг зохион бүтээдэг мэргэжилтний хувьд шинжлэх ухаан, нууцлаг зүйлс нэг дор байдаг.

Төгсгөлийн ууттай бол та тохирох шийдлийг олж, практик хатаах зориулалттай гар дүр төрхөөр хангах болно. Шийдвэрийн үр нөлөө нь хэрэгцээг тодорхой ойлгох, зорилгодоо хүрэх хэрэгцээг (эсвэл хэд хэдэн зорилгоор) амаар тодорхой илэрхийлэхээс ихээхэн хамаардаг. Үүний дараа судлагдсан сэдвээр эцсийн тэмдэгт хүрэхэд нөлөөлж буй хүчин зүйлүүд, эдгээр хүчин зүйлсийн харилцан холболт, асуудлын янз бүрийн талуудтай холбоотой харилцан холболт, юуг анхаарах талаар мэдээлэл цуглуулдаг. Ийм байдлаар дэлхийн эрдэнэс, оюун ухааныг хамгийн их амаар дүрсэлсэн байдаг.

Өөрчлөгдөж буй шингэнээр нурж буй биеийг дамжин өнгөрөх сүүлчийн алхамыг тооцоолох шаардлагатай. Биеийн анхны шингэн нь 0-тэй тэнцүү хэвээр байна. Найдвартай байдлын дараагийн түвшинд хурдыг адил хурдасгаж болно. Стандарт програмуудын Vikoristan багцыг шилжүүлээгүй.

Одоогийн байдлаар даалгаврын хамгийн үр дүнтэй хослол нь янз бүрийн математик загварууд дээр суурилдаг. Математик загваруудын зогсонги байдал нь бүхэл бүтэн ангиллын асуудлын шийдлийг арилгах боломжоос гадна олон төрлийн хөгжлийг хэрэгжүүлэх, оюун санааны өөрчлөлтөд хурдан дасан зохицох, хамгийн сайн шийдлүүдийг хайх боломжийг олгоно.

Математик загвар боловсруулах

Даалгаврыг амаар томъёолсны үндсэн дээр өсөлтийн үйл явцад оролцох өөрчлөлтийг сонгож, тэдгээрийн өөрчлөлтийн хүрээг тодорхойлж, эдгээр өөрчлөлт, харилцан солилцооны хоорондын уялдаа холбоог математикийн аргаар дүрсэлсэн болно. Энэ нь энэхүү харилцан үйлчлэлд оролцож буй албан тушаалтнуудыг параметр болгон харуулж, албан ёсоор тайлбарладаг. Үүний үр дүнд инженерийн даалгавар нь албан ёсны математик загварын дүр төрхийг олж авдаг.

Хавсралт 1-д томъёолсон даалгаврын математик загвар нь томьёо юм: S = 0.5 a t 2, гол хувьсагч нь хурдатгалын параметртэй t цаг юм. Томъёо нь тагтаа замын хоорондох ордыг харуулсан бөгөөд механикийн хуульд нийцдэг.

Ордуудын математик тодорхойлолтоос янз бүрийн түвшний нарийвчилсан болон математик дүрслэлийн янз бүрийн хэлбэрийг ялгах боломжтой гэдгийг тэмдэглэх нь зүйтэй. Тиймээс, хувьсах хөрвөх чадвартай ОХУ-д zagalnym тохиолдолд тоо dovzhina салшгүй тодорхойлогддог.

S = ∫ V (t) dt ,

Энэ тохиолдолд урсгалын V(t) цаг хугацааны өөрчлөлтийн хууль нийлмэл болж, интегралын утгыг аналитик аргаар тооцоолох боломжгүй болно. Тиймээс ойртож буй шийдлийн аргуудыг бүрэн онцлон тэмдэглэх нь практик юм.

Нэг талын оюун санааны бүрэн гаралтын тодорхойлолтын математик загварт хүрэлцэхүйц байдлыг онцгой хүндэтгэдэг. Шаардлагагүй эрчим хүчний зардал, зардлыг нэгэн зэрэг бий болгох нь үндэслэлгүй юм. Нөгөөтэйгүүр, математикийн тодорхойлолтын нарийвчлал дутмаг (загварын барзгар байдал) нь шийдэлд ихээхэн алдаа гаргахаас гадна өршөөлтэй дүгнэлт хийхэд хүргэдэг.

Тоон шийдлийн аргыг сонгоно уу

Нарийн төвөгтэй бодлогын хувьд салангид бодлогыг арифметик болон логик үйлдлүүдийн дараалал болгон багасгах тоон салгах аргыг сонгох шаардлагатай. Ийм аргуудыг боловсруулах, хөгжүүлэх ажлыг тоон шинжилгээ гэж нэрлэдэг математикийн салбар гүйцэтгэдэг. Интеграл интегралыг тооцоолох тоон аргын жишээ болгон та тэгш өнцөгт аргыг ашиглаж болно. Аль аргын хувьд интеграл нь төгсгөлийн уутаар солигддог

∫ f (x) dx ≈ ∆ x ∑ f (x i) , энд ∆х - интегралчлалын хугацаа (const), ∆х=(b-a)/n,

x i+1 =xi +∆ x, x1 =a, xn+1 =b

Энэ аргыг ашиглан интеграл интегралын хамгийн ойрын утгыг тооцоолохдоо интеграл функцийн утгыг дараалсан өргөтгөл болгон бууруулж, интегралын хугацааны утгаар үржүүлнэ.

Арга сонгохдоо та даалгаврыг тохируулахад шаардагдах чадвар, түүнийг компьютер дээр хэрэгжүүлэх боломж зэргийг харгалзан үзэх хэрэгтэй: шийдлийн нарийвчлал, үр дүнгийн нарийвчлал, хэмнэлт гаргахад шаардагдах RAM-ийн зарцуулалт. гаралт ба завсрын өгөгдөл, үр дүн (их ёслолын ажилд зориулагдсан), програм хангамжийн хэрэгжилтийн нарийн төвөгтэй байдал, програм бэлтгэх, даалгаврыг шийдвэрлэхэд хүндрэлтэй байдал.

Алгоритм ба өгөгдлийн бүтцийг ойлгох

Хамгийн чухал даалгаврын програм нь стандарт номын сангийн дэд програм хэлбэрээр хэрэгжүүлэх тоон аргыг агуулдаг тул алгоритмыг гаралтын өгөгдлийн оролт, стандарт дэд програмын оролт, дэлгэцийн дүрслэл болгон багасгах ёстой. үр дүнг дэлгэцэн дээр эсвэл өөр газар. Стандарт дэд хөтөлбөрүүд даалгаврын аль нэг хэсгийг хассан тохиолдолд илүү олон шинж чанартай алдаа гардаг.

Даалгаврын бүтцийг тодорхой болгох, даалгавруудыг дараалсан даалгавар болгон хуваах, даалгавруудыг тусад нь модулиудад хэрэгжүүлэх, алгоритмын логикийг алхам алхмаар нарийвчлан гаргах, ердийн логик бүтцийг оновчтойгоор сонгох, дараа нь нарийн төвөгтэй ажлуудыг дуусгах практик хөтөлбөрүүдийг бий болгох.

Агуулахын хөгжлийн чухал алгоритм бол агуулахын сонголт, өгөгдлийн зохион байгуулалтын арга (бүтэц): гаралт, завсрын болон эцсийн үр дүн юм. Киноны програмчлал нь тоон болон симболын тогтмол, хувьсагч, өгөгдлийн массив (вектор ба матриц) -тай ажиллах боломжийг олгодог. Тиймээс Turbo Pascal нь нарийн төвөгтэй өгөгдлийн бүтэц, текст гэх мэт тоон бус өгөгдлийг гар аргаар боловсруулах, дэвшилтэт комбинаторын даалгавар, симуляцийн загварчлал хийх боломжийг олгодог. Тиймээс өгөгдлийн төрөл, өгөгдлийн төрөл, бүтцийг сонгохдоо алгоритм болон бусад оролтын хэрэгжилтийн онцлогт нийцүүлэн хийх ёстой. Программист нь янз бүрийн алгоритмын хэлээр програмчлагдсан байдаг тул даалгаврын өгөгдлийн бүтцэд хамгийн их нийцэх хэлийг сонгох боломжтой.

Алгоритмыг боловсруулах нь график диаграм хэлбэрээр эсвэл псевдокод гэж нэрлэгддэг тусгай дизайны програмын нэмэлт тэмдэгтүүдийг бичих замаар дуусгавар болно. Алгоритмд логикийг харуулах бусад аргуудыг судалсан: диаграмм, шийдлийн хүснэгт, диаграмм.

Алгоритмыг програм болгон хэрэгжүүлэх

Хөтөлбөр дууссаны дараа танд энэ хөтөлбөрийн хэрэгжилтийн онцлогуудын тайлбарыг өгөх болно. Одооноос эхлэн компьютер дээрх програмчлал, практик зааварчилгааг дуустал дэлхий даяар байгаа боломжуудын хүрээг өргөжүүлж, үндсэн бүтэц, өгөгдлийн төрлүүдийг баримтлахыг зөвлөж байна.

Алгоритм боловсруулах, хэрэгжүүлэхдээ хурдны код, санах ой, өгөгдөлтэй гар аргаар ажиллах зэрэг программуудыг устгахаас бүү эргэлз. Нарийн төвөгтэй алгоритмыг боловсруулах, програмчлах, нарийн тохируулахад зарцуулсан нэмэлт цаг нь түүний зогсонги байдлаас үр дүнд хүрч, өмхий үнэрийг маш хожуу үе шатанд арилгах болно.

Анхны программыг эртнээс хасах нь чухал бөгөөд ингэснээр алгоритмын нарийн төвөгтэй байдал, нягтрал, заримдаа тооцоолох үр ашгийг золиослох болно. Даалгаврын тохиргоог тодорхой болгох, зогсонги байдлын хамрах хүрээг тодруулахын тулд туршилт хийвэл хөтөлбөрийг сайжруулах ажлыг дараагийн цаг хүртэл хийж болно.

гаралтын өгөгдлийг оруулах, үр дүнг боловсруулахад хялбар програмууд. Энэ үүднээс авч үзвэл, модулиудаас бүрдсэн програмын хэсгүүдийг шинэчлэхэд хялбар байдаг тул алгоритмыг боловсруулахдаа модульчлах зарчмыг онцлон тэмдэглэх нь сонирхолтой юм. Өгөгдөл оруулах, шинж чанарыг задлах, үр дүнг харуулах програмын модулиудыг харах нь арьсны модуль доторх програмын одоогийн өөрчлөлтийг нутагшуулахаас гадна шинэ даалгаварт "ирээдүйн" блокуудыг бэлтгэхийн тулд тэдгээрийн хийсэн үйлдлүүдэд дүн шинжилгээ хийх боломжийг олгоно.

Программуудыг тохируулах, турших

Гараас программчлах, өгөгдөл оруулах үед алдаа гарч болзошгүй. Хөтөлбөрийг боловсруулах, турших үе шатанд тэдгээрийг тодорхойлох, нутагшуулах, тодорхойлох ажлыг дуусгадаг.

Программистуудын мэргэжлийн ур чадварын шалгууруудын нэг бол эрчим хүчний асуудлуудыг олж тогтоох, засах чадвар юм: эхний шатны хөтөлбөрүүд нь тийм ч их ажил хийж чадахгүй, ялангуяа ахисан түвшний програмуудад хэцүү байдаг. Одоо ч хашгирдаггүй. Нэвтрүүлэгт өршөөл үзүүлэх нь бүх зүйлийг зогсооно.

Төрөл бүрийн зохиогчдын үзэж байгаагаар хөтөлбөрийг боловсруулах, турших үе шат нь хөтөлбөр боловсруулах, шийдвэр гаргах бүх үе шатанд зарцуулсан цаг хугацааны 50-70% -ийг авдаг. Хөгжлийн үе шатын ач холбогдол, хүндрэлтэй холбоотойгоор өдөр тутмын бүх програмчлалын систем нь алдааг илрүүлэх, арилгахад тусалдаг тусгай шинж чанартай байдаг. Хөгжлийн шатанд аль хэдийн алгоритм нь программд нэвтрүүлсэн хамгийн энгийн хяналтын функцийг шилжүүлэх шаардлагатай бөгөөд эдгээрийг дараахь байдлаар хуваадаг: бусад оруулсан өгөгдлийг машины санах ойд уншсаны дараа шууд (luna-druk) болон бусад. гол цэгүүдэд завсрын үр дүн. Үүнээс гадна дэд программууд эсвэл процедур хэлбэрээр хэрэгждэг модулиудад хэрхэн хуваагдах, түүнчлэн хэлний хамгийн энгийн бөгөөд хэлний бүтцийг аль болох сайн ойлгох шаардлагатай. программист эзэмшсэн.

Компьютер дээрх ажлуудыг шийдвэрлэх

Энэ үе шатанд компьютер бүх шилжүүлгийг тооцооллын програм руу хадгалж, үр дүнг дэлгэц дээр эсвэл өөр дэлгэц дээр харуулна. Үр дүнг цаашид боловсруулахад хялбар болгохын тулд хөтөлбөрийг боловсруулах үед үр дүнг тайлбарлах шаардлагатай. Үзүүлсэн үр дүнгийн тоо, хүснэгтэд толгой гарч ирэх ёстой бөгөөд зарим бүлгийн өгөгдлийг бусад мөрүүдээс дэмжсэн байх ёстой. Функцийг хүснэгтэд оруулахдаа аргументуудын утгууд болон параметрүүдэд аль функц багтаж байгааг зааж өгөх хэрэгтэй; функцийн утгыг оруулахын өмнө параметрийн утгыг оруулна уу.

Хэрэв програмчлалын нотолгоо хангалтгүй бол үр дүнг танилцуулах хэлбэр гацах болно, гэхдээ та үе үе эдгээр хоолонд ул мөр нэмж, хаягдлыг эцсийн уутанд үлдээх хэрэгтэй бөгөөд энэ нь цаашдын өгөгдөл боловсруулахад хүндрэл учруулдаг. . Дэлгэц дээрх үр дүнд дүн шинжилгээ хийж, програмын туршилтын хувилбараар дамжуулан өгөгдөл танилцуулах хэлбэрийг хөгжүүлэх нь чухал юм.

Хоолыг хянах

1. Компьютерийн програмчлалын үр дүнд ямар хүчин зүйл нөлөөлдөг вэ?

2. Компьютер дээрээ даалгавруудыг шийдвэрлэх алхмуудыг дахин зохион байгуул.

3. Бодлогын математик загварын гол давуу тал нь юу вэ?

4. Алгоритмуудын үндсэн параметрүүдийг нэрлэнэ үү.

5. Компьютер дээр програм боловсруулахдаа ямар онцлогийг анхаарч үзэх хэрэгтэй вэ?

6. Алгоритм боловсруулах ажил хэрхэн дуусах вэ?

ДААЛГАВАР ШИЙДВЭРЛЭХ АЛГОРИТМ НОГДУУЛАХ

Алгоритмын тайлбар

Алгоритм нь тодорхой ажлуудыг шийдвэрлэх нарийн боловсруулсан дүрмийн эцсийн дарааллыг хэлнэ. Алгоритм нь ийм хүч чадалтай:

Ач холбогдол. Хийх шаардлагатай бүх үйлдлийг хатуу зааж өгсөн болно.

Эрүүл ухаан. Хийх ёстой бүх үйлдлүүд нь алгоритмын арьсаар ойлгомжтой байх болно. Энэ хүчийг алгоритмын хоёрдмол утгагүй байдал гэж тайлбарлаж болох бөгөөд энэ нь Виконийн үйл ажиллагааны дүрмийн нэгдмэл байдал, тэдгээрийн дарааллыг илэрхийлдэг.

Төгсгөл. Алгоритмыг тогтоож, алгоритмыг зорилгодоо нийцүүлэн дуусгах арьсны үйл явц дуусах зуурамтгай чанар.

Бүтээмж. Хэрэв алгоритм нь даалгаврын төгсгөл хүртэл зогсонги байдалд орсон бол хэдэн цаг дууссаны дараа үр дүнг үгүйсгэж болно.

Их хэмжээний байдал. Бодлогын ерөнхий томъёололоос хамааран энэ алгоритмыг хамгийн дээд зэрэглэлийн даалгаварт хэрэглэх боломжтой.

Зөв байдал. Өгөгдсөн даалгаврын дагуу зөв үр дүнг гаргах алгоритмын чадвар.

Дүрэм бүрийг алгоритмд командын санал болгон бичдэг бөгөөд үүнийг Викониан алгоритмд Виконианд өгсөн тушаал гэж ойлгодог.

Хэд хэдэн захиалгыг задлах алгоритмуудыг харцгаая. Завдання 1. Томьёог ашиглан х-г тооцоолох алгоритмыг эмхэтгэ

x = a (r − q) 2, энд p ≠ -12.

p+12

1. Коб;

2. b-г тооцоол: = p + 12;

3. c:= r – q-г тооцоол;

4. d-г тооцоол: = c;

5. Тооцоолох e: = ad;

6. Тооцоолох x:= e/b;

7. Үр дүнг бичнэ үү: x;

1-р даалгаврыг шийдвэрлэх алгоритмын оруулгад даалгаврын захидал оруулсан болно.

- Зминни. Тиймээс, b-ээр дамжуулан бид p + 12-ыг c - r - q хоорондох ялгааг тэмдэглэнэ. Бичлэг

b:= p+12 гэдэг нь эхлээд p-ийн өмнөх утгын хувьд p + 12 нийлбэр олдож, дараа нь энэ утгыг b хувьсагчдад өгнө гэсэн үг.

a, p, q, r өөр өөр утгатай байгаа тул бид x тооцоогоор ялгааг тооцоолж болно. Тиймээс алгоритм нь зөвхөн нэг биш, харин бүхэл бүтэн даалгавруудыг сонгох боломжийг олгодог. Алгоритмын энэ онцлогийг масс алгоритм гэж нэрлэдэг. Нэгээс олон даалгавараас хамаарах алгоритмууд боломжтой.

a, p, q, r, 12 утгууд нь алгоритмын гаралтын өгөгдлийг нэмж өгдөг, 12

- Тогтмол агуулахын мэдээлэл, a, p, q, r - хувьсах агуулахын мэдээлэл. b, c, d, e утга нь нэмэлт хувьсагч, x нь алгоритмын үр дүн юм.

Алгоритмыг шугаман гэж нэрлэдэг, учир нь түүний бүх тушаалууд нь дамжуулах дарааллыг алдагдуулахгүйгээр дараалсан байдлаар бичигдсэн байдаг. 1-р асуудлыг шийдвэрлэх алгоритм нь шугаман байна.

Томъёо нь үйлдлийн хоёрдмол утгагүй дарааллыг заагаагүй тул алгоритм нь өөрөө алгоритм биш гэдгийг тэмдэглэх нь зүйтэй.

Завдання 2. Томъёоны ард

x = − b ± b 2 − 4 ac квадрат тэгшитгэлийг задлах алгоритмыг нугалах

ax2 + bx + c = 0 (a ≠ 0).

1. Коб;

2. p: = 2a;

3. D:= b 2 - 4ac;

4. Хэрэв D ≥ 0 бол 5-р алхам эсвэл 10-р алхам руу очно уу;

5. d: = D;

6. x 1 : = − b − d; х

7. x 2 : = − b + d; х

8. Үр дүнг бичнэ үү: x 1, x2;

9. 11-р алхам руу оч;

10. Үр дүнг бичнэ үү: идэвхтэй язгуурын зэрэглэл хамаагүй;

11. Кинет.

Ирээдүйд алгоритм нь командаас бүрэн хамааралтай тул 2-р асуудлыг шийдвэрлэх алгоритм шугаман байхаа больсон. Тооцооллын процесс нь арифметик үйлдлүүд болон квадрат язгуурын үйлдлүүдээс гадна 4-р дүрмийг оюун ухааныг эргүүлэх үйлдлээр сольдог: сонгосон оюун ухаан (sic) эсвэл нэргүй оюун ухаан (ууд) -аас хамааран хоёр боломжит үргэлжлэлээс нэгийг сонгоно. Ийм алгоритмыг тайлах гэж нэрлэдэг. Алгоритм дахь дүрмийн дарааллыг өөрчлөх боломжтой үйлдлийг керуванный оператор гэнэ.

Үйлдлийн дарааллыг заадаг командууд нь тушаалууд гэсэн хоёр төрөлд хуваагддаг сэтгэцийн шилжилттэр тушаал галзуу шилжилт. Сэтгэцийн шилжилтийн командын өмнө жишээлбэл, 2-р даалгаврыг шийдвэрлэх алгоритмд 4-р дүрмийг хэрэглэнэ. Дүрэм 9: Тасралтгүй шилжилтийн өшөө авалт.

Сэтгэцийн шилжилтийн командууд нь сэтгэцийн төрөлд заавал байх ёстой бөгөөд логиктой байдаг: хэрэв α ◊ β бол ... (энд ◊ нь > , ≥ , операторуудын нэг юм.< , ≤ , = , ≠ ).

Алгоритмын схем

Алгоритм диаграмм нь хоорондоо холбогдсон блокуудын нэмэлт бүтэц бүхий алгоритмын график дүрслэл юм. Арьсны блокыг дуулах дүрээр дүрсэлсэн. Хэлхээний блокууд нь нумаар холбогддог. Нуманууд нь алгоритмын дагуу блокуудыг шулуун болгох дарааллыг заана. Блокуудын төрлийг Малюнка 1-д үзүүлэв.

Зураг 1. Блокийн төрлүүд

Шулуун зүсэгчийг тооцооны S гэж нэрлэдэг шинэ шатанд байрлуулна функциональ блок, эсвэл үйл явц (Зураг 1, a). Шинэ оюун ухаанд байрлуулсан ромбыг П гэдэг тархины урвуу нэгж, эсвэл шийдвэрүүд (Зураг 1 b). Энэ нь алгоритмын диаграм дахь блокуудын дарааллыг хянахад хэрэглэгддэг. Функциональ блокоос нэг сум, угаалгын савны урвуу блокоос хоёр сум гарч байна. Оюун санааг шалгах виконик командын үр дүнд виконик (sic) эсвэл виконик бус (үгүй) тодорхойлсон оюун ухаан P арилдаг гэдгийг тайлбарлах шаардлагатай хэвээр байна. Мэдээллийн блок(Зураг 1, в) нь нэвтрүүлэх, зайлуулахад ашиглагддаг A. Блокууд (Зураг 1, d) ба (Зураг 1, д) нь коб шиг ба терминал гэж нэрлэгддэг. Даалгаврын бүдүүвч нь төгсгөлийн блокоос эхэлж, төгсгөлийн блок дээр дуусдаг.

Асуудлыг шийдэх алгоритм нь урд талын блокоос төгсгөлийн блок хүртэлх нумаар тодорхойлогдсон шулуун шугамын дагуух хэлхээг дагана. Мэдээллийн блокууд нь дүрсэнд заасан параметрүүдийн утгууд болон оруулсан параметрүүдийн утгыг заана. Функциональ болон логик блокуудад хувьсагч операторууд бүртгэгдсэн байдаг.

Функциональ блокуудын тоог тэдгээрийн үйлдлийг бүртгэх хүртэл үргэлжлүүлнэ. Логик блокуудын хувьд шинжилгээний үр дүнд "тийм" эсвэл "үгүй" гэсэн хоёр боломжит нумын аль нэгийг сонгож, удирдлагыг нумыг заасан блок руу шилжүүлэх боломжтой. Тиймээс алгоритмыг хэрэгжүүлснээр урд талын блокоос төгсгөлийн блок хүртэлх нэг л зам бий.

Алгоритмын схемүүд үүсэх үед блокуудад бүртгэгдсэн хувьсах үйлдлүүдийн утгыг аль хэдийн тодорхойлсон байгаа тул даалгаварыг гаргана. Алгоритм боловсруулж байгаатай холбогдуулан тусгай оруулга шаардлагатай болсон нь эдгээр өөрчлөлтийн ач холбогдлоор нотлогддог.

2 ба 3-р бяцхан хүүхдүүд n - тоонуудын нийлбэрийг олох асуудлыг шийдэх алгоритмын диаграммыг үзүүлэв: a1, a2, a3, a4,.., an.

Хураангуй: Шинжлэх ухааны сэдэв бол програмчлал юм. Алгоритмын хүч чадлын өгзөг. Програмчлалын парадигмууд (захиргааны, объект хандалтат ба функциональ-логик програмчлал).

Хичээл эхлэх энэ хэсэг нь хоёр үндсэн зорилготой.

  • мэдээлэл боловсруулах янз бүрийн аргуудыг ашиглан цаашдын хөгжилд шаардлагатай онолын үндэслэлийг бэлтгэх, програмчлалын ур чадварыг жижиг аргаар боловсруулж, зөв, үр дүнтэй хөтөлбөрийг бий болгох;
  • Энэ өгөгдөл нь Java хэлний тухай практик програмчлалын мэдлэг, жижиг ердийн програмуудыг бий болгоход хамгийн бага шаардлагатай байдаг.

Онолын материалыг сурах явцад практикийн хэрэгцээний олон талт байдлаас шалтгаалан бүлгүүд бүтэлгүйтэж магадгүй юм - миний Java дахь тодорхой ажлуудын олон талт байдал. Нөгөөтэйгүүр, програмчлалын хамгийн дээд даалгавар нь зөв, үр дүнтэй програм бичих нь эхлээд харахад тийм ч хялбар биш гэдгийг ойлгоход хүргэдэг.

Шаардлагатай онолын үндсийг мэдэх нь өөр хэсгээс хөтөлбөрүүдийг зөв эсэхийг нь батлах аргуудыг боловсруулахад шилжих боломжийг олгодог - энэ талаар суралцахтай зэрэгцэн хөтөлбөрийг практик бичих үндэс суурь болдог онолууд. Ийм байдлаар энэ хоёр сургалтын материалын нэг урсгал буюу онолын болон практикийн нэг урсгалтай огт холбоогүй мэт харагдаж байгаа бөгөөд энэ нь дараагийн хэсэгт аль хэдийн нэгдэх болно. Энэ хооронд уншигч өөрийн мэддэг зүйлдээ итгэхээ болино. бүх зүйлЭхний хэсгийн материал нь вакцинжуулалтын эхлэлд амжилттай шилжихэд шаардлагатай сэтгэлгээг агуулдаг.

Энэ нь хүндэтгэлтэй хэвээр байна - энэ нь илүү технологи юм. Жава хэл сурах эхний үе шатанд энэ нь объект хандалттай байдгийг даван туулж, алгоритмыг зөв хэрэгжүүлэх орон нутгийн асуудалд анхаарлаа төвлөрүүлэх нь ашигтай байдаг. Гэсэн хэдий ч үүнийг хийх нь тийм ч хялбар биш юм - ORP-ийн үндсэн ойлголтуудыг ойлгохгүйгээр шинэ үндсэн дээр хамгийн энгийн программууд дээр бичсэн. Энэ асуудлын тодорхой асуудлын хувьд бүтээлийг энэ ангид тусгайлан зориулж бүтээсэн болно X улирал, энэ нь шинэхэн програмистыг бодит ертөнцийн Java хэлний нарийн төвөгтэй байдлаас хамгаалдаг.

Шинжлэх ухааны програмчлалын сэдэв

Удаан хугацааны туршид хүмүүс дууны зорилгод хүрэхийн тулд шаардлагатай үйлдлүүдийн дарааллын бүртгэлийг бий болгож чадсан. Ийм бараа материалыг хүмүүс эсвэл автомат төхөөрөмжөөр боловсруулж болно. Хүмүүст зориулж бичсэн бичвэрүүд нь дүрмээр бол тодорхой хэмжээний ач холбогдолгүй, албан бус шинж чанартай байдаг. Өгзөг нь хоолны жорын тухай өгүүлбэр байж болно дрибцидавс Зөвхөн хүмүүс энэ зөвлөмжийн дагуу ургамлыг зөв давсалж чадна гэдгээ аль хэдийн баталсан.

Энэ жишээ нь автомат төхөөрөмжид шаардлагатай үйлдлүүдийн дарааллын тайлбар яагаад хоёрдмол утгатай байх ёстойг бүрэн тайлбарлаж, аливаа албан ёсны утгын системд хуваарилагдсан байх ёстой. Ихэнхдээ ийм тайлбарыг бий болгох нь техникийн болон чухал бэрхшээлүүдтэй холбоотой байдаг. Энэ асуудал нь вики судалгаанд ихэвчлэн хэрэглэгддэг өргөн хүрээний электрон тооцоолох машинууд (ECMs) -тэй холбоотойгоор маш чухал болсон.

Үйлдлүүдийн дарааллын тайлбар, дууг өөр автомат төхөөрөмжид холбох боломжтой болгож дуусга. алгоритм. Энэ дарааллыг тодорхой албан ёсны утгаас гадна бичиж (кодлох) захиал. Энэ тохиолдолд алгоритмыг бүртгэх албан ёсны системийг нэрлэнэ миний алгоритм, текст өөрөө алгоритм руу - хөтөлбөр, түүнийг бий болгох үйл явц - программчилсан.

Компьютерийн шинжлэх ухааналгоритмын хүчийг судлах, програмыг идэвхжүүлэх аргыг боловсруулах ажилд оролцдог. Түүний гарал үүсэл, аргуудын цаана энэ нь хэрэглээний математикийн салбарт хамаардаг. Хөтөлбөрт техникийн сахилга бат, хөтөлбөрийг бий болгоход аж үйлдвэрийн үйлдвэрлэл гэх мэт арга барилыг хүн бүр туршиж үзсэн ч байнга бүтэлгүйтэж байсан.

Хүндэтгэсэн, алгоритмын хувьд илүү "чухал" нь усыг байнга дүүргэх явдал бөгөөд үнэндээ үүнийг хийхээр төлөвлөөгүй болно. Математик нь бие биентэйгээ дүйцэхүйц хэд хэдэн маш тодорхой алгоритмын утгуудтай бөгөөд тэдгээрийн ихэнх нь ойлгоход хэцүү биш юм. Гэсэн хэдий ч эдгээр бүх өмхий нь математикийн дуулах галзуугийн талаар нарийн мэдлэг шаарддаг тул алгоритмыг сайтар ойлгоход шаардлагатай (бүр чухал) нарийн ширийн зүйлийг авч үзэхгүй. Ийм учраас бид алгоритмын өгзөгийг харж, дараа нь алгоритмын буруутай гол хүчийг устгах болно.

Алив, хэрэв та идэвхтэй використ дууны талаар хангалттай тодорхой ойлголтгүй бол шинжлэх ухаан нь илүү ердийн зүйл юм. Тухайлбал, натурал болон бодит тооны яг утгыг ерөнхий боловсролын сургуульд төдийгүй ахлах ангийн ихэнх сурагчид ойлгодоггүй. Түүгээр ч зогсохгүй зуут хөлөө ямар дарааллаар цэгцлэхээ бодохоор яаж алхахаа мартсан бололтой.

Алгоритмын хүч чадал

Нэгээс их натурал тооны хамгийн бага анхны деривативыг олох асуудлыг шийдье. Юу гээч намайг уучилТоо нь өөрөө ижил тоотой, анхны тоонуудын нэгдмэл тоонд ордоггүй тул дууддаг. Энэ номын тэнхлэг нь дараах байдалтай байна.

Завдання 1.1. Нэгээс их натурал тоог ашиглан тухайн тооны хамгийн бага анхны бутархайг олох алгоритмыг олоорой.

Асуудлыг шийдвэрлэх алгоритм.

Алгоритм П:

P1: Бүхэл тоог тэнцүү хоёроор байрлуулаад P2 алхам руу орно.

P2: Хэрэв та бүтнээр нь хуваах юм бол үр дүнг нь хараад алгоритмыг гүйцээнэ үү; Үгүй бол croc P3 руу очно уу.

P3: Утгыг нэгээр нэмээд P2 масштаб руу очно уу.

Энэ алгоритмыг ойлгохын тулд та компьютер шиг ажиллах хэрэгтэй (эсвэл бүх нийтийн багийн ахлагч), Би тодорхой жижиг утгуудын шинэ үйлдлийн дарааллыг гараар оруулах болно. Бид арьсны crocus алгоритмын дараа утгын утгыг бүртгэдэг.

k = 3 k = 4 k = 2
P1: i = 2 P1: i = 2 P1: i = 2
P2: i = 2 P2: i = 2 P2: i = 2
P3: i = 3
P2: i = 3

Ийм судалгаа нь ажил дууссаны дараа алгоритм нь гаралтын тооны хамгийн бага анхны хүчин зүйлийг үр дүнтэй олоход чухал ач холбогдолтой юм. Энэ байдлыг өдий зэрэгт хүргэнэ гэдэг хэцүү биш. Үүнийг олохын тулд Obov'yazkovo.

Гол эрх мэдэлтнүүдаливаа алгоритм - түүний төгсгөл, ач холбогдол, оролт (танилцуулга), гаралт (шинэчлэх) ба үр ашиг. Тэдний тайланг нэг нэгээр нь авч үзье.

Кинцивка. Алгоритм нь сүүлийн хэдэн цаг дууссаны дараа дуусах үүрэгтэй. P алгоритм нь энэ сэтгэлийг хангадаг, учир нь түүврийн утга бага, түүний утга нь P2-ийн арьсны утга хүртэл нэгээр нэмэгдэж, алгоритм нь анхны тоо байх үед P2-д, эсвэл хувьцааны дугаар бол өмнөх үед оноогдох болно. .

Ач холбогдол. Арьсны гэмтэлд хийх шаардлагатай үйлдлүүд нь тууралт болон арьсны гэмтэлд хоёрдмол утгатай байдаг. Энэ тохиолдолд үнэ цэнийн бүрэн албан ёсны систем байдаг хэдий ч, системийг дуу дүүргэх тохируулсан байна. Ихэнх тохиолдолд алгоритмууд нь илүү албан ёсны алгоритмын хэлийг бичдэг Movami програмчлал, үүнд арьсны хатуулаг байр сууриа эзэлдэг.

Нина олон мянган хөтөлбөртэй бөгөөд тэдгээрийн олон арван хөтөлбөр нь идэвхтэй ялалт байгуулж байна. Ийм олон тооны баримтууд нь зогсонги байдалд орсон талбаруудын олон талт байдал, програм бичих тоног төхөөрөмжийн ялгаатай байдал, тэдгээрийг бичиж буй хүмүүсийн сургалтын түвшин, түүнчлэн тэдгээр програм бичих тухай олон баримттай холбоотой юм. (гэж нэрлэдэг програмчлалын парадигмууд).

Оролт. Алгоритм нь өдөр бүр (заримдаа тэгтэй тэнцүү) робот руу дамждаг тоо хэмжээ гэх мэт олон тооны оролтын өгөгдлийг үүсгэдэг. Жишээлбэл, P алгоритмын нэг оролтын утга нь нэгээс их бүхэл тоо юм. Оролтын хоосон багц өгөгдлийг авдаг алгоритмын жишээ нь 1000-ыг энгийн тоог тооцоолох алгоритм байж болно.

Гаралт. Алгоритм нь нэг буюу хэд хэдэн гаралтын утгыг үргэлж буруутай байдаг. P алгоритмын хувьд ийм утга нь тоо юм. Гаралтын өгөгдлийг гаргадаг алгоритмууд нь практик бөгөөд бид тэдгээрийг ашиглах боломжтой.

Үр ашиг. Алгоритм нь үр дүнтэй байх ёстой. Энэ нь алгоритмд хийх шаардлагатай бүх үйлдлүүдийг энгийн байх ёстой гэсэн үг бөгөөд ингэснээр зарчмын хувьд үнэн зөв бөгөөд эцэст нь тохирох хэрэгсэл, цаасны тусламжтайгаар гүйцэтгэх боломжтой болно. P алгоритм нь дараах үйлдлүүдийг гүйцэтгэнэ: хоёр бүхэл тоо тэнцүү, нэг эерэг тоог нөгөө тоонд хуваана, хоёр бүхэл тооны утгыг хувьсагч болгож, утгыг нэгээр нэмэгдүүлнэ.

Бүхэл тоог цаасан дээр төгсгөлийн дарааллаар бичиж, хоёр бүхэл тоог хуваах, нэмэх нэг аргыг ашиглан таних боломжтой тул эдгээр бүх үйлдлүүд нь тусгайлсан дээд утгаараа үр дүнтэй байдаг. Хэрэв үйлдлүүд нь алгоритмд гарч буй хэмжигдэхүүний утга юм шиг үр дүнтэй биш байсан бол тоолоогүй аравтын бутархайгаар илэрхийлэгдсэн идэвхтэй тоонууд байх байсан бол ийм хэмжигдэхүүнүүдийн хэсгүүдийг цаасан дээр бичиж болохгүй. эцсийн цагт

Үүнийг хэлчихээд ЭОМ нь практикт юу байна бодит тоонуудтай ажиллахад хэцүү, Юу, магадгүй, та нарын хувьд боломжгүй мэт санагдаж болох юм. Энэ үнэн, үнэн. Түүнээс гадна компьютер дээр лавлагаа бүхэл тоогоор бичих нь тийм ч их хийгддэггүй. Олон тооны бүхэл тоо болон бодит тоог тэдгээрийн орлуулагчид ашиглахыг дэмж

Алгоритмыг ойлгох нь компьютерийн шинжлэх ухааны үндсэн ойлголтоос өмнө ойлгох ёстой. Алгоритмын үндсэн ойлголтуудыг авч үзье.

Бид алгоритмын тухай ярих болгондоо алгоритм нь харьяалагддаг дуулсан Виконавын нэр хүндийг үргэлж хүндэтгэх ёстой.

Виконавец - үйлдлийн эцсийн залгалтыг цуцалж чадах хүн эсвэл автомат машин (жишээлбэл, компьютер).

Атрибут - оноогдсон төгсгөлийн багцаас ялах үйл ажиллагааны дараалал.

Захиалгын систем - Зөвшөөрөгдөх шийтгэлийн нийт хэмжээ.

Хөтөлбөр - тэдгээрийн гүйцэтгэлийн тогтоосон дарааллаар захиалгын төгсгөлийн дараалал.

Хэрэв Виконавын хүн компьютертэй бол данс дуудагдана тушаалаар , мөн захиалгын систем гэж нэрлэдэг компьютерийн командын систем . p align="justify"> Өөр өөр компьютерууд төхөөрөмж дээрээ тулгуурлан өөр өөр командын системтэй байж болно.

Програмчлал - Өгөгдсөн даалгаврыг гүйцэтгэхэд шаардлагатай тушаалуудын дарааллыг боловсруулсан.

Програмын бүрэлдэхүүнийг алгоритм руу шилжүүлнэ.

Алгоритм - илүү нарийвчлалтай, үндэслэлтэй байдлаар та томилогдсон зорилгодоо хүрэх, даалгаврыг шийдвэрлэхэд хамаарах үйлдлүүдийн эцсийн дарааллыг боловсруулах боломжтой болно.

Ямар ч алгоритм ийм хүч чадалтай:

  • 1. Салангид байдал. Алгоритм нь үндсэн процессуудын дараалалд хуваагддаг - процессууд. Арьсны үйл ажиллагааг Виконавиан хийж дуусгаж болох бөгөөд эхлээд доороос нь бид Виконаны эхлэл рүү шилжих болно. Арьсны үйлдлийг команд гэж нэрлэгддэг алгоритмын оруулгад тусгай оруулгаар зааж өгдөг.
  • 2. Нарийвчлал ба детерминизм. Алгоритмыг бичихдээ чөтгөрийн тушаалыг өгсөн байх ёстой бөгөөд энэ тушаалыг доромжилсон байдлаар дагах шаардлагатай гэдгийг баттай мэдэж байх ёстой.
  • 3. Үндэслэлтэй байх. Арьсны алгоритмыг тодорхой хэрэглэгчдэд зориулан боловсруулж, алгоритмын төрлөөс хамааран арьсны команд өгөх боломжтой болно.
  • 4. Бүтээмж. Алгоритмын бүх зааврыг яг таг гүйцэтгэснээр процессыг эцсийн минутын дотор дуусгах ёстой бөгөөд энэ тохиолдолд даалгаврын гүйцэтгэл алдагдах магадлалтай. Боломжит шийдлүүдийн нэг нь даалгаврыг шийдвэрлэх боломжгүй гэдгийг тогтоох явдал юм
  • 5. Масовист. Ижил алгоритмын тусламжтайгаар нэг төрлийн даалгавруудыг гүйцэтгэж, нэгээс олон удаа гүйцэтгэх боломжтой. Массын хүч нь алгоритмын практик үнэ цэнийг ихээхэн нэмэгдүүлдэг.

p align="justify"> Алгоритмуудын агуу үнэ цэнэ нь тэд ажиллаж байгаа зүйлийнхээ газар руу орох шаардлагагүй бөгөөд үүний зэрэгцээ Viconavian-аас гадна илүү их мэдлэгийн хэрэгцээг арилгадагт оршдог.

Даалгаврыг шийдвэрлэх үйл явцыг хамарсан хамгийн энгийн үйлдлүүд нь алгоритмд тодорхой тушаалуудыг дарааллын дагуу хуваарилах зориулалттай автомат төхөөрөмжийг хэрэгжүүлэх боломжтой. Өгөгдсөн даалгаврыг шийдвэрлэх алгоритмыг гаргаж чадвал түүний үйл ажиллагааг автоматжуулах машин бүтээх боломжтой болно.

Арьсны алгоритм нь тодорхой гаралтын өгөгдлийн харагдах байдлыг дамжуулдаг. Жишээлбэл, эмнэлгийн жор (алгоритм) -ын хувьд гаралтын өгөгдөл нь эм, үр дүн нь бэлтгэсэн эмийн сав юм. Алгоритмын хувьд гаралтын өгөгдөл нь хос нэмэлтүүд бөгөөд үр дүн нь тэдгээрийн нийлбэр юм. Арьс алгоритмын хувьд гаралтын өгөгдөл болгон хүлээн зөвшөөрөгдөх объектын ангилал байдаг. Зарим гаралтын өгөгдөл нь материаллаг объект эсвэл тоо юм.

Алгоритм нь миний үйлдлээр томъёолсонтой ижил дүрэм юм. Гаралтын өгөгдөл болон хайсан үр дүн нь алгоритмын тайлбар гэх мэт миний үйл ажиллагааны тайлбараас үүдэлтэй.

Түүнчлэн, алгоритм нь хоёр үгтэй холбоотой байдаг: нэг томъёолол нь өөрөө, нөгөөгийнх нь санал, гаралтын өгөгдлийн бусад хүлээн зөвшөөрөгдөх хувилбарууд.

Асуудлыг шийдвэрлэх алгоритм боловсруулахыг алгоритмчлал гэнэ. Алгоритмчлолын явцад даалгавруудыг дарааллаар нь дарааллаар нь дараалсан алхмуудын дарааллаар багасгадаг.

Алгоритм ба программуудын хооронд тодорхой ялгаа байхгүй. Программыг даалгаврыг шийдвэрлэх, компьютерт бичиж, ялгуусан хэлний програмчлалын нэмэлт саналуудын тусламжтайгаар бүртгэх алгоритм гэж нэрлэдэг.

Алгоритмийн бүтэц Энэ бол үйлдлийн ердийн дараалал үүсэх хүртэл алгоритмын зэргэлдээх алхмуудыг холбох стандарт арга юм.

Алгоритмуудын онолд дурын алгоритмыг шулуун шугам, сэрээ, цикл гэсэн гурван алгоритмын бүтцийн нэгдэл хэлбэрээр илэрхийлж болно гэж заасан байдаг.

Энэ нь дараалсан үйлдлүүд юм (Зураг 12).

Жижиг 12.

Логик сэтгэлгээний үнэнээс хамааран энэ өөр зүйлийг ялах шаардлагатай үед хэцүү болдог (Зураг 13).


Жижиг 13.

1 ба 2-р үйлдлүүд нь өөр өөр алгоритмын бүтцийг агуулж болно.

Цикл . Үйлдлүүдийг хэд хэдэн удаа цуцлах шаардлагатай үед энэ нь гацдаг. Циклийн хоёр төрөл байдаг.

Хэрэв Милковагийн нэгэн адил тодорхой үйлдлүүдийг давтах шаардлагатай бол хэцүү болно (Зураг 14).

Жижиг 14. Цикл Өмнө нь.

Кобын хуваарилалтын дагуу гаралтын утгыг мөчлөгийнх шиг өөрчлөгддөг утгуудад хуваарилах үйлдлүүд байдаг. Ихэнхдээ давтагддаг үйлдлүүдийн дарааллыг мөчлөгийн бие гэж нэрлэдэг.

Оюун санааны үйлдэл үнэн болох хүртэл тодорхой үйлдлүүдийг давтах шаардлагатай бол хэцүү болно (Зураг 15).

Жижиг 15. Цикл Боо.

2.4.1. Үндсэн алгоритмуудыг ойлгох

2.4.2. Шугаман бүтцийн алгоритмууд

2.4.3. Зохион бүтээгдсэн бүтцийн үндсэн алгоритмууд, тэдгээрийн програмчлалын хэрэглээ

2.4.4. Тогтмол мөчлөгийн бүтцийн үндсэн алгоритмууд ба тэдгээрийн програмчлалын хэрэглээ

2.4.5. Давталтын мөчлөгийн бүтцийн үндсэн алгоритмууд ба тэдгээрийн програмчлалын хэрэглээ

2.4.6. Нэг хэмжээст массивыг боловсруулах үндсэн алгоритмууд

2.4.7. Хоёр хэмжээст массивыг боловсруулах үндсэн алгоритмууд

2.4.8. "Үндсэн алгоритмууд ба тэдгээрийг хэрэгжүүлэх хэрэглээ" сэдвээр тестийн танилцуулга

2.4.9. "Үндсэн алгоритмууд ба тэдгээрийг хэрэгжүүлэх хэрэглээ" сэдвээр тестүүд

2.4.1. Үндсэн алгоритмуудыг ойлгох

Мэдээлэл боловсруулах үндсэн алгоритмууд нь олон арван жилийн судалгаа, боловсруулалтын үр дүн юм. Але өмхий урьдын адил өргөжин тэлж буй зогсонги тооцооллын процесст чухал үүрэг гүйцэтгэсээр байх болно.

Императив програмчлалын үндсэн алгоритмууд нь:

    Хамгийн энгийн алгоритмууд үндсэн алгоритмын бүтцийг хэрэгжүүлэх.

    Алгоритмууд Өгөгдлийн бүтэцтэй роботууд. Эдгээр нь алгоритмыг хэрэгжүүлэх, дүн шинжилгээ хийх, тохируулахад ашигладаг үндсэн зарчим, аргачлалыг заадаг. Мэдээллийн арга, танилцуулгын талаархи мэдэгдлээс татгалзахыг зөвшөөрнө. Ийм бүтцэд холбох жагсаалт, мөр, мод, стек, шүүгээ гэх мэт хийсвэр өгөгдлийн төрлүүд орно.

    Алгоритмууд ангилах өрөө, массив болон файлуудыг захиалах зориулалттай, онцгой ач холбогдолтой байж болох юм. Эрэмбэлэх алгоритмууд нь холбоотой, zokrema, chergi нь тэргүүлэх ач холбогдол, сонголтын сонголт, хорон муу.

    Алгоритмууд наргисан юмааЭлементүүдийн томоохон цуглуулгаас тодорхой элементүүдийг хайхад зориулагдсан. Үүнд дижитал түлхүүр модыг хайх үндсэн болон өргөтгөсөн аргууд, үүнд дижитал хайлтын мод, тэнцвэртэй мод, хэш хийх, түүнчлэн маш том файлуудтай ажиллахад тохиромжтой аргууд орно.

    График дээрх алгоритмуудөндөр, бага нугалах, чухал захиалгатай бор. Графикаас хайх анхны стратеги нь уялдаа холбоотой үндсэн асуудлууд, тэр дундаа хамгийн дөт замыг олох, хамгийн бага сойз мод бий болгох, хилийн урсгалын асуудал, уур үүсгэх асуудал зэрэгт хуваагдсан бөгөөд зогсонги байдалд орсон. Эдгээр алгоритмд хандах хандлагыг нэгтгэх нь тэдгээр нь ижил процедур дээр суурилж, энэ процедур нь тэргүүлэх ач холбогдол бүхий зургийн үндсэн хийсвэр өгөгдлийн төрөлд суурилсан болохыг харуулж байна.

    Алгоритмууд эгнээ тайрах(урт) дараалсан тэмдэгтүүдэд бага боловсруулалтын аргыг идэвхжүүлнэ. Хошигнолыг стандартын түвшинд хүргэх ёстой бөгөөд энэ нь өөрөө синтаксик шинжилгээнд хүргэдэг. Даалгаврыг аль ангилалд шилжүүлэх, файл шахах технологиуд.

2.4.2. Шугаман бүтцийн алгоритмууд

Өгзөг 2.4.2-1.

de x = -1.4; y = 0.8; өөрчлөгдөх боломжтой - бүхэл төрөл, бусад өөрчлөлтүүд - ярианы төрөл; [n] - n тооны бүхэл хэсэг.

QBasic, Pascal, C++ алгоритм ба программуудын диаграммыг Зураг дээр үзүүлэв. 2.4.2-1.

Үнэ цэнэгүй хүмүүст хүндэтгэл үзүүл кдугуйрсан утгууд n, гэхдээ бүх зүйл өөрчлөгдөх боломжтой м- нэмэлт функцэд зориулж тайрсан FIX()үнэ цэнийн бүхэл хэсэг хүртэл n.

Өгзөг 2.4.2-2. Одоогийн хэмжигдэхүүнүүдийн утгыг тооцоолж, дэлгэцэн дээр харуулна уу.

de x = 2.9512; y = 0.098633; өөрчлөгдөх боломжтой - бүхэл бүтэн төрөл; Бусад өөрчлөлтүүд нь материалын төрөл юм.

Програмын алгоритм ба кодын диаграммыг Зураг дээр үзүүлэв. 3.2.1-2.

Жижиг 2.4.2-2.

Гаралтын өгөгдөлд илүү өндөр утгыг оноох үед програмын үр дүн дараах байдалтай байна.

Өгзөг 2.4.2-3.Анхны сансрын шингэний утгыг тооцоолж дэлгэцэн дээр харуул.

Албан ёсны ажил хийцгээе. Сансрын хөлөг нь дэлхийн таталцлын талбарт хиймэл дагуул болж чадах хамгийн бага шингэн,

де – таталцал болсон; M - дэлхийн масс;
- Дэлхийн төв рүү сансрын хөлөг рүү яв.

Програмын алгоритм ба кодын диаграммыг Зураг дээр үзүүлэв. 3.2.1-3.

Жижиг 2.4.2-3.

Гаралтын өгөгдөлд илүү өндөр утгыг өгөх үед програмын үр дүн иймэрхүү харагдаж болно.

1. Алгоритмыг ойлгох

Алгоритм - даалгаварт хамаарах үйлдлүүдийн дарааллыг гүйцэтгэх эцсийн даалгаврыг илүү нарийвчлалтай, ухаалгаар эрэмбэлэх. нэр " алгоритмТөв Азийн математикч аль-Хорезмын нэрний латин хэлбэрийг санагдуулна - Алгоритми.

Виконавец алгоритм- энэ бол алгоритмаар хэрэгждэг vykonati dii-ийн бүтээсэн хийсвэр эсвэл бодит (техник, биологийн эсвэл биотехникийн) систем юм. Виконавцы онцлог шинж чанарууд нь: дунд газар, энгийн санаа, тушаалын систем, мэргэн ухаан. Середа(эсвэл орчин) - энэ бол Виконавийн "амьдрах газар" юм . Кожен виконовец нь өгөгдсөн жагсаалтаас тушаалуудыг виконовати хийх боломжтой - тушаалын системүүдВиконав. Арьсны командын хувьд оюун санааны зогсонги байдлыг тохируулах шаардлагатай (дунд хэсгийн зарим мужид виконан команд байж болно), viconn командын үр дүнг тайлбарлах шаардлагатай. Тушаалыг дарсны дараа та одоо өдөр тутмын үйл ажиллагаагаа үргэлжлүүлэх болно энгийн үйлдэл. VidmoviВиконавця үүнийг буруутгаж, учир нь командыг дунд нь хүлээн зөвшөөрөх боломжгүй нөхцөлд дууддаг.

Мэдээллийн технологи нь алгоритмд зориулагдсан бүх нийтийн компьютертэй.

2. Алгоритмуудын хүч

Та эдгээрийг харж болно Алгоритмуудын үндсэн хүч:

1) Эрүүл ухаанВиконавчуудын хувьд - tobto. Vikonavets алгоритм його vikonuvati шиг язгууртнуудын гэм буруутай юм.

2) Салангид байдал(солилцоо, салангид байдал) - ийм л байна. Алгоритм нь асуудлыг шийдвэрлэх үйл явцыг энгийн бөгөөд өмнөх ажлуудын дарааллаар илэрхийлэх ёстой.

3) Ач холбогдол- тобто. Алгоритмын дүрэм бүр нь тодорхой, хоёрдмол утгагүй, төрөлжүүлэх зай үлдээхгүй байх явдал юм.

4) Бүтээмж(эсвэл төгсгөл). Энэ хүч нь алгоритм нь хэдхэн минутын дотор даалгаврыг гүйцэтгэх үүрэгтэйд оршдог.

5) Масовист- асуудлыг шийдэх алгоритм нь гаднаас нь харахад хуваагдсан гэсэн үг юм. Гаралтын өгөгдлөөр хязгаарлагдах энэ ангиллын ажилд зогсонги байдал үүсч магадгүй юм. Энэ тохиолдолд гаралтын өгөгдлийг дууны хэсгээс сонгож болно алгоритмын талбар.

3. Алгоритмуудыг танилцуулах хэлбэр

Хамгийн өргөн алгоритмын танилцуулгын хэлбэрүүдє: аман, график, псевдокод болон програм.

1) Аман хэлбэрБичлэг нь байгалийн хэлээр (жишээлбэл, орос хэлээр) өгөгдөл боловсруулах дараагийн үе шатуудын тайлбар юм.

өгзөг.Хоёр натурал тооны хамгийн том өргөсгөгчийг (NDD) олох алгоритмыг бич.

Алгоритм: 1) хоёр тоог тохируулах; 2) хэрэв тоонууд тэнцүү бол тэдгээрээс нэгийг нь ишлэл болгон авч нэгтгэн дүгнэх, үгүй ​​бол алгоритмыг үргэлжлүүлнэ үү; 3) илүү олон тоог тооцоолох; 4) том тоог том ба бага тооны зөрүүгээр солих; 5) 2-р алхамаас алгоритмыг давт.

Алгоритмын тайлбарууд нь ямар ч натурал тоогоор хязгаарлагддаг бөгөөд эцсийн хэдэн цагийн дотор даалгаврыг дуусгахад хүргэдэг.

Аман арга нь өргөн цар хүрээтэй байдаггүй, зөвхөн дараахь тайлбарыг агуулдаг.

а) хатуу албан ёсны бус;

б) арвин их бичлэгээс болж зовж шаналах;

в) тодорхой захиалгын төөрөгдөл дэх тодорхой бус байдлыг зөвшөөрөх.

2) График аргаАлгоритмуудын илэрхийлэл нь илүү нягт бөгөөд аман хэллэгтэй төстэй. График диаграммын тусламжтайгаар алгоритмыг харилцан уялдаатай функциональ блокуудын дараалал хэлбэрээр харуулсан бөгөөд тэдгээр нь тус бүр нь ижил үйл ажиллагаатай тохирч байна. Ийм график илрэлийг алгоритмын диаграм эсвэл гэж нэрлэдэг блок диаграм . Блок диаграммд арьсны төрлийг геометрийн дүрсээр зааж өгсөн байдаг блоклох тэмдэг.Блок тэмдэгтүүд холбогдсон байна шилжилтийн шугамууд, Виконнигийн ёс бус байдал юу гэсэн үг вэ?

Үнийн талаар доор мэдээлнэ үү...

3) ПсевдокодЭнэ нь алгоритмыг бүртгэхэд зориулагдсан үнэ цэнэ, дүрмийн систем юм. Вин нь байгалийн болон албан ёсны хэлний хоорондох завсрын байр суурийг эзэлдэг.

Нэг талаараа байгалийн хэлтэй ойрхон тул алгоритмыг байгалийн текст шиг бичиж, уншиж болно. Нөгөө талаас, псевдокод нь vikorized байна үйлчилгээний үгсалгоритмын бүртгэлийг албан ёсоор хүлээн зөвшөөрөгдсөн математикийн бүртгэлд ойртуулдаг математикийн бэлгэдэл. Үйлчилгээний үгсийг гараар бичсэн бичвэрт тод үсгийн фонтоор бичсэн байх ба гар бичмэл дээр тодруулсан бөгөөд ингэснээр бусад бичвэрт харагдах болно.

өгзөг. 1) x ба y гэсэн хоёр тоог өг; 2) ЯКЩО x=y, ТЭГВЭЛ БУРХАН=х і KІNETS; 3) ХЭРЭВ x>y, THEN x=x-y, үгүй ​​бол y=y-x; 4) 2-р цэг рүү очно уу.

4) Програмын маягтє өөр өөр програмчлалын хэлээр бичигдсэн програмын текстүүд.

Блок диаграмм дээрх график тэмдгүүдийг доор харуулав.

"Дотримання" бүтэц

Повна сэрээ

Неповна Розвилка

Оюун санааны өөрчлөлттэй дугуй

(POKI мөчлөг)

Постумовагийн мөчлөг (DN мөчлөг)

Параметр бүхий мөчлөг

Диаграммд SERIES гэдэг нь нэг буюу хэд хэдэн оператор гэсэн үг; UMOVA бол логик илэрхийлэл (LV) (хэрэв түүний утга ҮНЭН бол шилжилтийг SO-ийн дагуу, өөрөөр бол - NO-ийн дагуу хийнэ). Використан параметр бүхий мөчлөгийн диаграмм дээр дараахь утгыг илэрхийлнэ: PT – мөчлөгийн параметр, NC – мөчлөгийн параметрийн анхны утга, KZ – мөчлөгийн параметрийн эцсийн утга, Ш – мөчлөгийн параметрийг өөрчлөх хугацааны хязгаар.

Урсгал диаграмм дахь алгоритмын эхлэл ба төгсгөлийг зууван хэлбэрээр зааж, өөрчлөлтийг параллелограмм хэлбэрээр бичнэ.

Принтерүүд