Паскал програмчлалын танилцуулга. Паскал програмчлалын хэл

ПАСКАЛ ХЭЛНИЙ ПРОГРАМЧЛАЛЫН ХЭЛНИЙ ТАНИЛЦУУЛГА 2006 ХИЧЭЭЛИЙН БҮТЭЦ Интерфэйс ба үндсэн тодорхойлолтууд; програмын бүтэц; текст мэдээллийг харуулах; гарны оролт; системийн модулиудын холболт, ашиглалт; үндсэн өгөгдлийн төрлүүдтэй ажиллах (бүхэл тоо, бодит, мөр, массив, файл), графиктай ажиллах; дэд програмуудыг ашиглах (процедур ба функц); модулиудын хэрэглээ. 2 ПАСКАЛЫН ОРЧНЫ ИНТЕРФЕЙС Програмчлалын хэл ТурбоПаскаль 7.0 хэрэглүүртэй. Үүнд: олон цонхны текст засварлагч; програмын холбогч; програмын дибаглагч; тусламжийн систем; хөрвүүлэгч. 3 ПАСКАЛ ОРЧНЫ ИНТЕРФЕЙС 4 Нээлттэй файлуудын жагсаалт: Alt + 0 Нээлттэй файлд хурдан хандах: Alt +<№ окна> ҮНДСЭН ТОДОРХОЙЛОЛТ Нөөцлөгдсөн үг гэдэг нь программчлалын хэлээр программын логик талбаруудыг салгахад ашигладаг тусгай үг юм. Оператор гэдэг нь ямар нэгэн үйлдэл хийх (нөхцөл шалгах, давталт зохион байгуулах гэх мэт) хэлний команд юм.Идентификатор гэдэг нь программистын программын элементүүдэд чөлөөтэй сонгосон нэр юм. Өгөгдлийн төрөл нь тодорхойлогчийн шинж чанар бөгөөд түүний авч болох утгуудын багцыг (бүхэл тоо эсвэл бутархай тоо, тэмдэгтийн мөр, логик илэрхийлэл гэх мэт) тодорхойлдог. 5 ХӨТӨЛБӨРИЙН ЕРӨНХИЙ БҮТЭЦ Хөтөлбөрийн нэр; залгаасуудын хэсгийг ашигладаг; Шошгоны шошгоны тайлбар хэсэг; Тогтмолуудын мэдэгдлийн Const хэсэг; Төрөл бүрийн өгөгдлийн төрлийг тодорхойлсон төрөл хэсэг; Хувьсагчийн мэдэгдлийн хэсэг; Эхлэх Хөтөлбөрийн үндсэн хэсэг; Төгсгөл. Хамгийн бага код: 6 SCREEN OUTPUT Дэлгэц дээр мэдээллийг харуулахын тулд дараах операторуудыг ашиглана: Write эсвэл Writeln. F9 - Compile + Verify Ctrl+F9 - Ажиллуулах F9 → Ctrl+F9 - Алдаа гарахаас зайлсхийх Програмын гүйцэтгэлийн үр дүнг харуулах 7 ДЭЛГЭЦИЙН ГАРЦ Тайлбаруудын үр дүн: WRITE "Empty" WRITELN мэдэгдэл нь хоосон мөр нэмнэ WRITELN 8 ДАСГАЛ Дэлгэц дээр мэдээлэл харуулах доор үзүүлсэн шиг Сайн байна уу! Уулзсандаа таатай байна! намайг компьютер гэж дууд. Ашигласан материал: Гаралтын мэдэгдлүүд: Write, WriteLn "Хоосон" оператор WriteLn; хоосон мөр оруулдаг. 9 НЭМЭЛТ МОДУЛЫГ ХОЛБОХ Нэмэлт модулиуд нь нэмэлт операторуудыг нэвтрүүлснээр таны программуудын чадавхийг өргөжүүлдэг. Ашиглалтын хэсэгт модулиудыг холбосон. ProgramMy; Module1, Module2 ашигладаг; ________________________ ________________________ ____________________________ ________________________ МОДУЛЬ 1 Нөөцийн багц 1 … МОДУЛЬ N Модуль: Системийн өөрийн нөөцийн багц N Текст дэлгэцийг цэвэрлэх Товчлуур дарахыг хүлээж байна CRT 10 САНАМСАР ДЭЛГЭЦГИЙН ГАРАЛТ GotoXY (X, Y: Бүхэл тоо) нэртэй холбогдсон модуль X, Y – familiar дэлгэц дээрх зохицуулалт. X нь 1-ээс 80 хүртэл, Y нь 1-ээс 25 хүртэлх утгыг авч болно. Жишээ нь: My_program программ; (Модуль холболт) Crt ашигладаг; Эхлэх (Дэлгэцийг цэвэрлэх) ClrScr; (өгөгдлийн гаралт) GotoXY(1, 1); бичих ("▒"); GotoXY(80, 1); бичих ("▒"); GotoXY(1, 25); бичих ("▒"); GotoXY(80, 25); бичих ("▒"); (дэлгэцийн саатал) ReadKey; Төгсгөл. Хөтөлбөр нь дэлгэцийн буланд "▒" (код 177) тэмдгийг харуулдаг. 11 ӨНГӨТЭЙ ГАРАЛТ TextColor (Өнгө); Тэмдэгтүүдийн өнгийг тодорхойлно. TextBackground(Өнгө); Танил байдлын өнгийг тодорхойлдог. ProgramMyProgram; crt ашигладаг; Эхлэх TextColor(Улаан); TextBackGround(Цэнхэр); Write("Гадна"); TextColor(Цагаан); Write("өвс,"); Текстийн өнгө(Ногоон); TextBackGround(Шар); Бичих("өвсөн дээр"); TextBackGround(Magenta); Бичих("түлээ. "); Төгсгөл. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Өнгө Хар Цэнхэр Ногоон Цэнхэр Улаан Магента Бор ЦайварСаарал Хар саарал ЦайварЦэнхэр ЦайварНогоон ЦайварCyan ЦайварУлаан ЦайварМагента Шар Цагаан 12 – хар – хөх – ногоон – цэнхэр – улаан голт бор - бор - цайвар саарал - хар саарал - хөх - цайвар ногоон - цайвар хөх - ягаан - цайвар голт бор - шар - цагаан ҮНЭ ЦЭНГҮҮД Өгөгдлийн үйлдлүүдийг таниулагч Тогтмол, хувьсагч, функц, процедур, бүрэлдэхүүн хэсэг болон хэрэглэгчийн тодорхойлсон бусад нэр томъёонд хамаарна. объект Зөвшөөрөгдсөн тэмдэгт: Латин үсэг, тоо, доогуур зураас Хязгаарлалт: Цифрээс эхэлж болохгүй, харин доогуур зураасаар эхэлж болно Олон үг байж болохгүй Түлхүүр үгийн аль нь ч таарахгүй. . Буруу танигч: Өгөгдөл Миний нэр 2Array Var ( ( ( ( Орос тэмдэгт ашигладаг ) Хоосон зай байна ) Тоогоор эхэлнэ ) Түлхүүр үгтэй тохирно ) тоо, тэмдэгтийн мөр, логик илэрхийлэл гэх мэт). 16 БҮХЭЛ ДАТА ТӨРӨЛ 17 Боломжит утгуудын эцсийн багц төрөл байт богино үг бүхэл уртын муж 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147483647! Хүрээнээс гадуур алдаа гарлаа! хэмжээ ХУВЬСАГЧИЙН МЭДЭГДЭЛ Хувьсагч гэдэг нь ямар нэг утгыг (тоо, мөр гэх мэт) хадгалж, программын үйл ажиллагааны явцад өөрчлөх чадвартай танигч юм. Синтакс: Var<имя переменной> : <тип переменной>; Програмын нэр; залгаасуудын хэсгийг ашигладаг; Хувьсагчийн мэдэгдлийн хэсэг; Эхлэх Хөтөлбөрийн үндсэн хэсэг; Төгсгөл. Компьютерийн санах ойд 3 хувьсагчдад зориулсан зай 18 ХУВЬСАГЧД УТГА ТОХИРУУЛАХ Хувьсагчийн утгыг тохируулахын тулд та оноох операторыг ашиглах ёстой:= Бичлэгийн синтакс:<Переменная> := <Значение>; 3-ын утгыг А нэртэй хувьсагч (бүхэл тоо)-д оруулна 19 БҮХЭЛ ТООН ХУВЬСАГЧТЭЙ ҮЙЛ АЖИЛЛАГАА 20 Арифметик үйлдлүүд: + - * / Стандарт үйлдлүүд: div | mod | sqr Бүхэл тоон төрлүүдэд ашиглах боломжгүй. S нэртэй хувьсагчийг X ба Y хувьсагчид хадгалсан утгуудын нийлбэрээр тохируулна. S нэртэй хувьсагчид хадгалагдсан утгыг дэлгэцэн дээр харуулна. ДАСГАЛ 21 1. 15 ба 20 тоог үржүүлсний үр дүн 2. x=11, y=3 үед f 2 x 3 y функцийн утгыг харуулах програм бичнэ үү Ашигласан материал: Var хэсэгт хувьсагчийг зарлана Бүхэл тооны төрлийг бүхэл тоо гэнэ. Хувьсагчид утга оноох синтакс нь:<Переменная> := <Значение> ; Оператор бүрийн дараа тэмдэг байрлуулсан; (эхлэл ба эцсийн төгсгөлөөс бусад) REAL DATA TYPE Утгын багц √ √ Ординал төрөл Бодит төрөл Нэг талын нийцтэй байдал: Бодит бүхэл тоо Бодит! Хамрах хүрээнээс гадуур, нийцтэй байдлын дүрмийг дагаж мөрдөхгүй байх нь алдаа гаргахад хүргэдэг! 22 БОДИТ ХУВЬСАГЧТАЙ ҮЙЛДЭЛ 23 Стандарт үйлдлүүд: pi | Дөрвөлжин | нүгэл | Cos | abs | exp | Ln Round | Trunc (бодит → бүхэл тоо) Жишээ нь (X, S – Бодит төрөл): X:= pi/3; S:= Нүгэл(X) * 100; Бичих(Дугуй(S)); X ба Y хувьсагчид хадгалагдсан утгуудын харьцааг S нэртэй хувьсагч руу оруулна. E тооны бутархай хэсгийн тооны байрлал ба тэмдэгтүүдийн тоо нь тухайн тооны хүчийг илтгэнэ. 5.6E-5 = 5.6·10-5 СТРИНГИЙН ӨГӨГДЛИЙН ТӨРӨЛ 24 Мөрүүд нь тэмдэгтүүдийн эрэмблэгдсэн багц юм. Мөрүүдийг апострофоор тэмдэглэсэн байдаг. Мөр нь бүхэл болон бодит төрлүүдэд тохирохгүй. Type Range String 255 тэмдэгт ( Үндсэн мөрийн операторууд ) + ( холболт ) Урт (S); ( string length ) Жишээ нь: X:= 'Vasya'; Write('Таны нэрээр', Length(X), 'lit.'); S:=X; X:=S; ДАСГАЛ 12.89 ба 0.22 тоонуудыг аравтын бутархайн араас гуравхан чухал цифрээр хуваасны үр дүнг харуулах программыг дараах хэлбэрээр бичнэ үү: эхний тоог хоёр дахь тоонд хуваах = үр дүн Бичих (X:1:3, ' razdelit na ' , y:1 :3, ' = ' z:1:3) Ашигласан материал: Мөрний төрлийг Мөр гэж нэрлэдэг Мөрүүдийг дараах хэсэгт хавсаргасан Мөрүүдийг + тэмдгээр холбодог. Дэлгэцийн өгүүлбэрт янз бүрийн төрлүүдийг таслалаар тусгаарладаг 25 KEYBOARD INPUT 26 Гараас мэдээлэл оруулахын тулд та оруулах операторыг ашиглах ёстой: Read эсвэл ReadLn. Синтакс: Унших (N1, N2, ... Nn); Энд N1, N2, ... Nn хувьсагч (бүхэл тоо, бодит, мөр) Х хувьсагчид гарнаас оруулсан утгыг оруулна.Утгыг оруулсны дараа Enter товчийг дарна.Хэрэв хэд хэдэн хувьсагч байгаа бол оператор, тэдгээрийг зайгаар эсвэл товчлуур дээр дарж оруулна ДАСГАЛ 27 1. Гараас оруулсан хоёр тооны нийлбэрийг тооцоолох мини тооны машин програм бич. 2. Таны нэрийг асуусан програм бич, таны нэрийг бичсэний дараа мэндчилгээ гарч ирнэ. Жишээлбэл, хэрэв та Ваня гэдэг нэрийг оруулсан бол програм нь "Сайн уу, Ваня" гэсэн хэллэгийг харуулах болно. Ашигласан материал: Оролтын мэдэгдлүүд: Унших, ReadLn ОПЕРАТОР НӨХЦӨТ ОПЕРАТОР 29 Нөхцөлт оператор нь “салбарлах”-ыг хэрэгжүүлдэг, өөрөөр хэлбэл зарим нөхцөлийн үнэн эсвэл худал байдлаас хамааран операторуудын гүйцэтгэх дарааллыг өөрчилдөг. Нөхцөл шалгах ҮГҮЙ Үйлдэл 1 Би далайн эрэг рүү явна Бороо орж байна ТИЙМ Үйлдэл 2 Би шүхэр авна Үйлдэл 3 Би кино театрт явна НӨХЦӨЛИЙГ ШАЛГАХ Харьцуулах үйлдлүүд: > - дэлгэрэнгүй< - меньше = - равно >= - түүнээс их буюу тэнцүү<= - меньше или равно <>- 30-тай тэнцүү биш Логик үйлдлүүд: Not And Or - Not -Ба - Эсвэл Жишээ нь: Хэрэв миний өндөр > Петягийн өндөр, Дараа нь би Петягаас өндөр Хэрэв (бороо орж байна) Эсвэл (цас орж байна), Дараа нь би үлдэх болно. Нүүр хуудас Хэрэв Үгүй бол ((бороо орж байна) БА (салхи)), дараа нь би зугаална Логик үйлдлүүдийг ашиглахдаа нөхцөлүүдийг хаалтанд бичнэ.<условие>тэгээд<оператор>; Жишээлбэл, хэрэв X хувьсагчийн утга 0-ээс бага бол 1-ийн утгыг ижил хувьсагчид бичнэ: Хэрэв X.<0 Then X:= 1; Полная форма: If <условие>тэгээд<оператор_1>өөр<оператор_2>; Жишээ нь: Хэрэв X>5 бол X:= X - 1 Өөр X:= X + 1; Дараа нь, Else гэсэн үгийн ард зөвхөн нэг оператор хэрэглэж болно Else гэдэг үгийн өмнө тэмдэг, тэмдэг; дутуу 31 ДАСГАЛ 32 1. Оруулсан дүнг доллараар, дүнг еврогоор хүлээн авч, аль валютаар илүү байгааг харуулах програм бич (1 доллар = 28 рубль, 1 евро = 35 рубль) 2. Програм бич. , энэ нь гурван тоог оролт болгон авч, дараа нь тэдгээрийн хамгийн их тоог харуулна. Ашигласан материал: Нөхцөлт операторын хэлбэрүүд: Хэрэв<условие>Дараа нь<оператор>; Хэрэв<условие>Дараа нь<оператор_1>Өөрөөр<оператор_2>; Else тэмдгийн өмнө; тохируулаагүй Харьцуулах үйлдлүүд: >< = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z >0 Дараа нь X эхлэх:= 1; Y:= -1; WriteLn('Мэдээллийг хүлээн зөвшөөрсөн'); End Else WriteLn('Алдаа'); 33 CASE SELECT ОПЕРАТОР Сонголт хэллэг нь үүрлэсэн нөхцөлт мэдэгдлийн бүтцийг орлуулахад хэрэглэгддэг. Кейсийн тэмдэглэгээний синтакс<порядковая_переменная>-ийн<значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N>Өөрөөр<оператор_N+1>; Төгсгөл; Сонгох хэллэгт хаалт хэрэглэж болно Нэмэлт мөр 34 СОНГОХ МЭДЭГДЭЛ CASE Оюутны өндөр 16..30: Та бага ангийн сурагч; 31,32,33: Та 5-6-р анги; 34..50: Та ахлах сургуулийн сурагч байна. Таслалыг утгуудыг жагсаахад, хоёр цэгийг мужийг сонгоход ашигладаг Эс бөгөөс Та оюутан биш нь тодорхой; Төгсгөл; -128..-1-ийн x тохиолдол: writeln('Сөрөг'); 0: writeln('Nil'); 1..127: writeln('Эерэг') Else WriteLn('Хүрээнээс гадуур'); Төгсгөл; 35 ДАСГАЛ Тоо өгвөл долоо хоногийн харгалзах өдрийг харуулах програм бич. Жишээлбэл, 2-ын тоог оруулна уу, програм нь "Мягмар гараг" гэсэн гаралттай байх ёстой. Хэрэв тоо нь 1..7-ээс гадуур байвал ийм өдөр байхгүй гэсэн мессеж гарч ирэх ёстой. Ашигласан материал: Сонгох оператор: Кейс<порядковая_переменная>-ийн<значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N>; Өөрөөр<оператор_N+1>; Төгсгөл; 36 ЦИКЛ 37 Алгоритмуудыг цикл гэж нэрлэдэг бөгөөд зарим операторын гүйцэтгэлийг ижил өөрчилсөн өгөгдлөөр давтан гүйцэтгэдэг (жишээлбэл, олон тооны нэмэх замаар тоог үржүүлэх журам). Паскаль хэл дээр гурван давталтын хэллэг байдаг: For (параметр бүхий давталт эсвэл тодорхой тооны давталтын хувьд) While (WHILE давталт) Repeat (BEFORE давталт) Хэрэв давталтын тоо нь мэдэгдэж байгаа бол давталтын операторыг ашиглах нь дээр. параметр. PARAMETER WITH LOOP 38 Параметрийн утгыг ихэсгэх буюу багасгах заасан тооны давталтаар давталт For (парам) := (эхлэх_утга) To (төгсгөлийн_утга) Do (оператор) ; Давталтын биет Тайлбар Параметр нь бүхэл тооны төрөл; Та гогцоонд оператор хаалт ашиглаж болно; Та гогцооны бие дэх давталтын параметрийг өөрчлөх боломжгүй; Циклийн параметрийг нэгээр нэмэгдүүлсэн; Эхлэх утга > төгсгөлийн утга, эс тэгвээс давталтын биеийг үл тоомсорлодог; Параметрийг багасгахын тулд To-ын оронд DownTo-г ашиглана уу. 39 ПАРАМЕТРТЭЙ ЦОГЦОЛТ (a, b) бүхэл тоонуудыг асуудаг програм бичнэ үү. := <нач_зн>руу<кон_зн>Хий<оператор>; Параметр нь бүхэл тооны төрөл (ихэвчлэн бүхэл тоо); Та гогцоонд оператор хаалт ашиглаж болно; Давталтын параметрийг нэгээр нэмэгдүүлнэ.40 WHILE LOOP While давталт нь эхлээд нөхцөлийг шалгадаг бөгөөд үнэн тохиолдолд л давталтын биеийг гүйцэтгэнэ. while (нөхцөл) хийх (мэдэгдэл); Доор бичсэн кодын биед давталт хэзээ ч биелэгдэхгүй: x:=1; x>1 байхад x:=x-1; Та хязгааргүй гогцоо авах боломжтой. Жишээ нь: x:=1 x>0 байхад x:=x+1; 41 WHILE LOOP a-аас b хүртэлх тооны нийлбэрийг харуулах програм. Товчлуур дээр дарагдаагүй байхад Delay (2000) эхэлнэ үү; Төгсгөл; Хувьсагч f нь b утгаас их болтол гогцоо ажиллана 42 ДАСГАЛ 43 1. Сансрын нисэгчид саран дээр хус тарихаар шийдэж, жил бүр хусны тоог 2 дахин өсгөж, эхний жилдээ 3 хус тарьжээ. Хэдэн жилийн дараа хусны тоо 10000-аас хэтрэхийг дэлгэцэн дээр хэвлэх 2. Оруулсан тооны дээд хэмжээг гараас (тооны оролт 0 тоогоор төгсдөг) тодорхойлох програм бич. Доорх санал болгож буй дэлгэцийн зохион байгуулалт: Тоо оруулна уу. 0-г оруулна уу. 89 15 0 Хамгийн их тоо нь 89. Ашигласан материал: While циклийн мэдэгдэл: While<условие>хийх<оператор>; While давталт нь эхлээд нөхцөлийг шалгадаг бөгөөд энэ нь үнэн тохиолдолд л давталтын үндсэн хэсгийг гүйцэтгэдэг. REPEAT LOOP 44 Repeat давталт нь эхлээд давталтын их биеийг гүйцэтгэх ба зөвхөн дараа нь нөхцөлийг шалгана Repeat (loop_body) Until (нөхцөл); Repeat гогцоонд нийлмэл хэллэг ашиглах шаардлагагүй, учир нь Энэхүү бүтээц нь нэг биш, харин давтах ба хүртэл гэсэн үгсийн хооронд хавсаргасан хэд хэдэн мэдэгдлийг гүйцэтгэх боломжийг олгодог. REPEAT LOOP ("Тэр хүртэл") a-аас b хүртэлх тооны нийлбэрийг харуулах програм. Давтамж нь f өөрчлөгдөж буй хувьсагч b утгаас их болох хүртэл ажиллана. Бид бараг үргэлж нэг гогцооны оронд өөр төрлийн гогцоо ашиглаж болно.ДАСГАЛ -4-өөс 4 хүртэлх мужид хэлбэлзэх y x 3 x 2 16 x 43 функцийн утгыг 0.5 алхамаар тооцоол. Ашигласан материал: Давталтын мэдэгдэл Давтах: Давтах<тело_цикла>хүртэл<условие>Repeat давталт нь эхлээд давталтын биеийг гүйцэтгэх ба зөвхөн дараа нь нөхцөлийг шалгана 47 ЦАГЛАЛТЫН ТАСРАЛТ 48 Цикл операторуудыг уян хатан удирдахад процедурыг ашигладаг: Break - давтахаас гарах; Үргэлжлүүлэх - мөчлөгийн дараагийн дамжуулалтыг дуусгах; Жишээ: 1-ээс i хүртэлх тоонуудын нийлбэр нь 100-аас их байх хамгийн бага i тоог ол. s (1-ээс i хүртэлх тооны нийлбэр) 100-аас их болмогц break командыг ажиллуулж, давталтаас гарна. . s:=0; I:= 1-ээс 100 хүртэл эхлэх юм бол s>100 бол тасарна; s:= s + i; Төгсгөл; Writeln ('(1+2+..+i)>100 нь тэнцүү байх i хамгийн бага тоо ',i); Гараас 10 тоог оруулах ба гогцоонд зөвхөн эерэг тоонуудын нийлбэрийг авч үзнэ. Хэрэв тоо сөрөг байвал давталтын дараагийн дамжуулалтыг эхлүүлсэн үргэлжлүүлэх командыг гүйцэтгэнэ. s:=0; I:= 1-ээс 10 хүртэл Readln(k); хэрэв к<0 then Сontinue; s:= s + k; end; Writeln (‘Сумма положительных чисел равна ’,s); МАССИВЫ МАССИВЫ 50 Простые типы: одна переменная – одно значение Структурированные типы: одна переменная – несколько значений Массив – это фиксированное количество значений одного типа. Доступ к конкретному значению осуществляется через индекс. Переменная массива Структура массива: A= Доступ к массиву: 0 1 2 3 Индекс 9 7 0 0 Значения <Имя массива> [ <Индекс>] A := 7; ARRAYS Var хэсэгт массив зарлагдсан: (Нэр) : Массив [ (эхлэх_утга) .. (төгсгөл_утга) ] of (төрөл); Массив зарлалын жишээнүүд: Var A: Array of String; B: Бодит массив; C: Бүхэл тоон массив; Массивыг утгуудаар дүүргэх жишээ: A:='Вася'; Х:='Петя'; A:='Маша'; A:='Олеся'; Бичих); f:=1-ээс 10-ын хувьд C[f] := f*2; f:=1-ээс 10 хүртэл WriteLn(C[f]); 51 ДАСГАЛ 52 Хэрэглэгчээс 7 бүхэл тоог санал болгож массивт хадгалах програм бич. Массив нь хамгийн их элементийг агуулсан бөгөөд дэлгэцэн дээр харагдана. Жишээ нь: 1-р тоог оруулна уу: 4 2-р дугаарыг оруулна уу: 8-р дугаарыг оруулна уу: 9-р дугаарыг оруулна: 2. 5-р дугаарыг оруулна: 4. 6-р дугаарыг оруулна: 5. 7-р дугаарыг оруулна: 0 Хамгийн их тоо: 9 Ашигласан материал: Массивын мэдүүлэг:<Имя>:Массив[<нач_зн> … <кон_зн>]-ийн<тип>; Массив хандалт:<Имя массива> [ <Индекс>] САНАМСАР ТООН ҮҮСГЭГЧ (RNG) Програмд ​​санамсаргүй тоо үүсгэхийн тулд дараах операторуудыг ашиглана: Randomize – RNG эхлүүлэх. Энэ нь зөвхөн хөтөлбөрийн эхэнд тунхаглагдсан; Санамсаргүй - 0-ээс 1 хүртэлх санамсаргүй тоог үүсгэдэг (бодит төрөл); Санамсаргүй (N) - 0-ээс N-1 хүртэлх санамсаргүй тоог үүсгэдэг (бүхэл тоон төрөл); 53 ОЛОН ХЭМЖЭЭТ МАССИВ 54 Массивын хэмжээс бүрийн интервалуудын жагсаалт (Нэр) : Массив [ (эхлэх_утга) .. (төгсгөл_утга) , (эхлэх_утга) .. (төгсгөл_утга) , (гэх мэт) ] (төрөл); 4 мөр, 6 багана бүхий хоёр хэмжээст массив (матриц, хүснэгт) зарлах жишээ: Var A: Array of Integer; Массив бөглөх жишээ: For i:=1 to 4 do For j:=1 to 6 do A := i+j; Ai , j 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8 6 7 8 9 7 8 9 10 ДАСГАЛ -10-аас 20 хүртэлх санамсаргүй тоо бүхий хоёр хэмжээст массивыг дүүргэж нийлбэрийг хэвлэх програм бич. хүснэгтийн диагональ дагуу байрлах элементүүдийн . Ашигласан материал: RNG эхлүүлэх: 0-ээс N-1 хүртэл санамсаргүй тоо: Санамсаргүй (N) 55 ФАЙЛЫН АЖИЛЛАГАА ФАЙЛД АЖИЛЛАХ 57 [имэйлээр хамгаалагдсан]$ku⌂|"Hd9v*9(L*M=BYGRMxduB █ 8e*BOtCDrTVzHGJ1aBD>@B\(r8sE) █ :wcJvAmRa"v/.Wai;$`SWI=y2]suB █ ?Hq>V4PF( .6b]o(QkВ8 █ cu<6`8Z":M^1;:8ANwak;,b2-4…u5 █ 2]suB?Hq>vF(LmBcAdz4wcP]o(QkВ █ 8c8df]e"v,su>+),VAEFБjFV,W$Q- █ y0G1GjN$-eБ|sqZ0`QnВ%\BD%y █ █ █ Varsa - мөрийн төгсгөлийн файл Үүсгэх, унших, бичих, хаах ФАЙЛТАЙ АЖИЛЛАХ Файлтай ажиллах үеийн үйлдлүүдийн дараалал: 1. Файлын хувьсагчийг зарлах (FP); 2. FP-г файлтай холбох; 3. Унших/бичих файлыг нээх; 4. Файлтай хийх үйлдлүүд 5. Файлыг хаах (файл болон FP хоорондын холболт мөн тасарсан); 1. FP-ийн мэдэгдэл<Имя>: Файл<тип> ; <Имя>:текст; Varf: Текст; h: Бүхэл тооны файл; 2. FP-г оноох файлтай холбох (<ФП>, <имя файла>); (f, 'c:\my\Data.ghm') оноох 58 ФАЙЛТАЙ АЖИЛЛАХ 3. Унших/бичих файлыг нээх Reset (<ФП>); - дахин бичихийг унших файлыг нээнэ (<ФП>); - файлыг бичихээр нээнэ 4. Файлтай хийх үйлдлүүд Read (<ФП>, <П1> , <П2>, …); - хувьсагч руу уншина<П1>, <П2>гэх мэт. заагч байрлал дахь нэг элемент. бичих(<ФП> , <П1> , <П2>, …); - файлд хувьсагчийн утгыг бичнэ<П1>, <П2>гэх мэт. заагч байрлал дахь нэг элемент. EoLn(<ФП>); - мөрийн төгсгөлд хүрсэн бол Үнэнийг буцаана. EoF(<ФП>); - файлын төгсгөлд хүрсэн бол True-г буцаана. 5. Файлыг хаах Хаах (<ФП>); 59 ФАЙЛЫН АЖИЛЛАГАА Матриц нь 5х5 гэдгийг мэдэж байгаа бол програмыг хялбаршуулна уу (For давталт ашиглана уу) 60 ДАСГАЛ 61 "DOM-3" программ бичнэ үү. Эхний файл нь нэр дэвшсэн тохиолдолд оролцогчдын нэрийг агуулдаг. Хоёрдугаарт, ижил нэрс, гэхдээ яллагч. Гурав дахь нь - мэдрэмжийн илэрхийлэл эсвэл зарим төрлийн үйлдлийн жагсаалт (хайртай, хайрладаггүй, үнсдэг, хазахыг хүсдэг, хайрладаг, хүндэлдэг, үзэн яддаг, харахыг хүсдэг, тэвэрдэг). Програм нь эдгээр файлуудаас санамсаргүй байдлаар мэдээлэл авч, дараах зарчмын дагуу шинээр үүсгэх ёстой.<имя в им. пад> <чувство/действие> <имя в вин. пад>Ольга Сергейд хайртай Олег Роман Катя Настя гэх мэт хүндлэлийг харахыг хүсдэг. Ашигласан материал: Операторуудын нэр: Assign, Rewrite, Reset, Write, Read, Close. ГРАФИК ГРАФИК Паскал хэл дээрх графиктай ажиллахын тулд graph.tpu модуль болон график адаптерийн драйвер egavga.bgi гэсэн хоёр файл хэрэгтэй. Эхнийх нь \UNITS лавлах, хоёр дахь нь \BGI дотор байна. ! egavga.bgi жолооч. Exe файлыг ажиллуулахад шаардлагатай! Зурахын тулд та: 1. GRAPH модулийг холбох (Ашиглах хэсэгт); 2. графикийг эхлүүлэх (InitGraph); 3. ямар нэг зүйлийг зурах; 4. график горимыг хаах (CloseGraph) 63 ГРАФИК График горимыг эхлүүлэх Шугам зур. Үзэг нь (0,0) цэгээс (639, 479) цэг рүү шилждэг. PROGRAM Primer_1; Graph, crt ашиглах; VarGd,Gm: Бүхэл тоо; ЭХЛЭХ Gd:=0; InitGraph (Gd,Gm,'d:\BP\bgi"); Шугам (0,0,639,479); ReadKey; CloseGraph; END. 639 пиксел. Координатын систем 479 пиксел. гурвалжин 2. Дэлгэцийн төвд тэгш өнцөгт зур. талууд дэлгэцийн харгалзах талуудаас хоёр дахин бага Ашигласан материал: График модуль: Графикийн эхлэл: InitGraph Графикийн горимыг хаах: CloseGraph;GRAPHICS + COLOR SetColor(Өнгө: үг); Үзэгний өнгийг тохируулна GetColor: word; үзэгний өнгө SetBkColor(өнгө: үг); Дэвсгэр өнгийг тохируулна GetBkColor: үг; Дэвсгэр өнгийг буцаана Өнгө Хар Цэнхэр Ногоон Цэнхэр Улаан Магента Бор ЦайварСаарал Хар саарал ЦайварЦэнхэр ЦайварНогоон ЦайварЦэнхэр ЦайварУлаан ЦайварMagenta Шар Цагаан 66 - хар - хөх - ногоон - цэнхэр – улаан – голт бор – бор – цайвар саарал – хар саарал – тэнгэрийн хөх – цайвар ногоон – цайвар хөхрөлт – ягаан – цайвар голт бор – шар – цагаан ГРАФИК ПРИМИТУУД Шугам (x, y); Одоогийн үзэгний координатаас (x,y) координат хүртэл шугам зурна. MoveTo(x, y); Үзэгний координатыг (x,y) тохируулна. PutPixel(x, y, Өнгө); Color-ийн тусламжтайгаар (x,y) координат дээр цэг зурна. GetPixel(x, y): үг; (x,y) координат дээрх цэгийн өнгийг буцаана. Тэгш өнцөгт(x1, y1, x2, y2); Тэгш өнцөгтийн тоймыг зурна. Тойрог (x, y, r); Төв (x,y) ба r радиустай тойрог зурна. SetLineStyle (Ln, 0, T) Тоймуудын параметрүүдийг өөрчилдөг. Ln - шугамын загвар (0..3): 67 x1, y1 T - шугамын зузаан: 1 = хэвийн; 3 = зузаан. FillEllipse(x, y, xr, yr); Xr ба Yr радиустай (x,y) төвтэй дүүргэсэн эллипс зурна. SetFillStyle(Төрөл, Өнгө); ClearDevice хаалттай дүрсүүдийн төрөл (0..11) болон өнгийг тохируулна; Цэвэрлэдэг график дэлгэц одоогийн дэвсгэр өнгөөр ​​будах x2, y2 ГРАФИК ПРИМИТИВ 68 ДАСГАЛ 69 1. Мониторын дэлгэц дээр байшин зурах програм бичнэ үү; 2. Хяналтын дэлгэц дээр санамсаргүй радиустай (1-ээс 5 пиксел хүртэл) одтой, санамсаргүй байрлалтай одтой тэнгэрийг зурах програм бич. Өнгө нь мөн санамсаргүй (цагаан, цайвар саарал, хар саарал); Хэрэглэсэн материал: SetColor(Өнгө: үг); - Зургийн өнгийг тохируулах SetBkColor (өнгө: үг); - Одоогийн дэвсгэр өнгийг тохируулна. мөр(x, y); - Одоогийн үзэгний координатаас (x,y) координат хүртэл шугам зурна. MoveTo(x, y); - Үзэгний координатыг (x,y) тохируулна. PutPixel(x, y, Өнгө); - Color-ийн тусламжтайгаар (x,y) координаттай цэг зурна. Тэгш өнцөгт(x1, y1, x2, y2); - Одоогийн өнгөний шугамаас тэгш өнцөгтийн тоймыг барина. Тойрог (x, y, r); - (x,y) төвтэй, r радиустай тойрог зурна. FillEllipse(x, y, xr, yr); - Xr ба Yr радиустай (x,y) төвтэй дүүргэсэн эллипс зурна. ГРАФИК + АНИМАЦИОН Мсек-н дотор түр зогсоо. 70 ДЭД ХӨТӨЛБӨРИЙН ДЭД ХӨТӨЛБӨР Дэд программууд нь кодын давтагдах хэсгийг тус тусад нь хэсэг болгон сонгож, програмын шаардлагатай газруудад оруулах боломжийг олгодог. Процедураас ялгаатай нь функц нь дуудлагын үр дүнг буцаана. Процедурууд Функцууд Дэд программууд: Begin End түлхүүр үгсийн хооронд бичигддэг; тодорхойлогчийг зааж өгөх дүрмийн дагуу бичигдсэн нэрээр тодорхойлогддог; оролт, гаралтын параметртэй байж болно; үндсэн програмын бүтцийг бүрэн давтах. 72 My Program; Дэд программ 1 [Дэд программ код 1] Дэд программ 2 [Дэд программ код 2] Дэд программ 2 эхлэх Дэд программ 1 Системийн горимын жишээ: Write("OK"); ClrScr; Урт(S); Санамсаргүй; // // // // Параметргүй нэг параметртэй процедур параметргүй нэг параметртэй функцтэй Дэд програм 2 Төгсгөл. ДЭД ХӨТӨЛБӨРҮҮД (SPR) Дэд хөтөлбөрүүдийг үүрлэх Хөтөлбөрийн дэд хөтөлбөр 1 Дэд хөтөлбөр 3 Дэд хөтөлбөр 4 Дэд хөтөлбөр 2 . DEP-д тодорхойлсон хувьсагчдын нэр нь бусад DEP-ийн хувьсагчийн нэрстэй ижил байж болно (ижил хувьсагчийг DEP бүрт зарлаж болно). PPR-д тайлбарласан хувьсагчийн нэр нь өгөгдсөн хувьсагчийг хавсаргасан PPR-аас ижил нэртэй хувьсагчдыг хамгаалдаг (хэрэв ижил хувьсагчдыг PPR1 ба PPR3-т зарласан бол эдгээр хувьсагчид PPR бүрт өвөрмөц байх болно). Програмын хувьсагчдыг глобал, дэд программын хувьсагчийг локал гэж нэрлэдэг. ПАРАМЕТРГҮЙ ПРОЦЕДУРУУД Бичлэгийн синтакс: Процедур (процедурын нэр); (Хувьсагч, тогтмол, төрөл, шошго, модулиудын хэсэг) Эхлэх (Процедурын хэсэг); Төгсгөл; Параметргүй процедурыг ашиглах жишээ: 74 ПАРАМЕТРГҮЙ ПРОЦЕДУРА Ижил нэртэй хувьсагчаас зугтах жишээ: Program My_program; crt ашигладаг; varA:string; // Процедурын тодорхойлолт Procedure My_Procedure; varA:string; Эхлэх A:= "Дэд програм"; WriteIn(A); Төгсгөл; Эхлэх A:= "Бие"; WriteIn(A); миний_процедур; WriteIn(A); Төгсгөл. // Процедурын дуудлага 75 ПАРАМЕТРТЭЙ ПРОЦЕДУРУУД 76 Дэд программуудыг илүү түгээмэл болгохын тулд програм болон түүний дэд программуудын хооронд өгөгдөл солилцох тусгай механизмуудыг ашигладаг. Параметр бүхий системийн процедурууд: SetColor (Улаан); ( Тэгш өнцөгттэй процедур (0, 0, 639, 479); ( InitGraph (Gd,Gm,'d:\BP\bgi"); ( ( Параметр нэг параметр ) хэд хэдэн параметртэй процедур ) хэд хэдэн өөр төрлийн ) ) Бичлэг параметртэй синтакс процедурууд Процедур (Нэр) ((Оролтын хувьсагчдын талбар) Var (Гаралтын хувьсагчийн талбар (хувьсагч бүр өөрийн Var)))); Талбайн бүтэц: Хувьсагч_1, Хувьсагч_2, … : Төрөл; .. ......... ............. Хувьсагч_N-1, Хувьсагч_N, ... : Төрөл; Аль ч бүс байхгүй байж болно ПАРАМЕТРТЭЙ ПРОЦЕДУРО Оролтын параметрүүдийг ашиглах Зураг зурах журам дэлгэцтэй хүрээлэгдсэн тэгш өнцөгт, заасан өнгө Параметр байхгүй Процедур Cir; Эхлэх SetColor (i); SetBkColor (b); Тэгш өнцөгт (0, 0, 639, 479); Төгсгөл; Процедурын тойрог (i, b: Бүхэл тоо); Эхлэх SetColor (i); SetBkColor (b); Тэгш өнцөгт (0, 0, 639, 479); Төгсгөл; Программ дахь процедурыг дуудах: Програм дахь процедурыг дуудах: i:=6; b:=12; Cir; Cir (6, 12);77 ПАРАМЕТРТЭЙ ПРОЦЕДУРУУД Процедурын гаралтын параметрүүдийг ашиглах Өнцгийг градусаас радиан болгон хувиргах ra. ХӨТӨЛБӨР EX_26_3; VAR x,a: бодит; PROCEDURE Rad(альфа: бодит; var betta: бодит); (гаралтын хувьсагч) BEGIN Бетта:= pi*alfa/180; ТӨГСГӨЛ; BEGIN Write("Өнцөгийг градусаар оруулна уу: "); readln(x); Рад(x, a); (Процедурын дуудлага) Writeln("Тэр нь радиан дахь өнцөгтэй тэнцүү = ",a:6:4); ТӨГСГӨЛ. 78 ДАСГАЛ 79 1. Гурвалжин зурах процедурыг дараах форматаар бичнэ үү: Гурвалжин (x1,y1, x2,y2, x3,y3, Color) 2. Дараах хэлбэрээр тэгш өнцөгтийн талбайг тооцоолох процедурыг бичнэ үү. формат: SRect (a, b, S) энд, S нь процедурын гаралтын параметр юм. Ашигласан материал: Процедур (Нэр) ((Оролтын хувьсагчийн хэсэг) Var (Гаралтын хувьсагчийн талбар)); Талбайн бүтэц: Хувьсагч_1, Хувьсагч_2, … : Төрөл; ............... ......... Хувьсагч_N-1, Хувьсагч_N, … : Төрөл; FUNCTIONS 80 Функцийн синтакс Функц ((Оролтын хувьсагчийн талбар) Var (Гаралтын хувьсагчийн талбар)): (Төрөл) ; Процедурын загвар Функцийн дизайн Процедур S(a,b:real; var s:real); Эхлэх s:= a+b; Төгсгөл; Function Sum(a,b: бодит): бодит; Эхлэх нийлбэр:= a+b; Төгсгөл; Процедурын дуудлага Функцийн дуудлага S(10, 20, A); Бичих); A:= S(10, 20); WriteLN(A); WriteLN (S(20, 30)); Зөвхөн ажлын үр дүн нь хүлээгдэж буй тохиолдолд л зарим дэд программыг функц болгон зохион бүтээхийг зөвлөж байна. Хэрэв дэд програм нь зөвхөн тодорхой дараалсан үйлдлүүдийг (харуулах, зурах гэх мэт) гүйцэтгэхэд чиглэгдсэн бол процедур хэлбэрээр бичих нь дээр. ДАСГАЛ Тэгш өнцөгтийн талбайг тооцоолох функцийг дараах форматаар бичнэ үү: SRect (a, b) Ашигласан материал: Функц (Нэр) ((Оруулах хувьсагчийн талбар) Var (Гаралтын хувьсагчийн талбар)): (Төрөл) ; Талбайн бүтэц: Хувьсагч_1, Хувьсагч_2, … : Төрөл; ........................ Хувьсагч_N-1, Хувьсагч_N, … : Төрөл; 81 МОДУЛУУД МОДУЛЬ 83 Нэгж (НЭГЖ) нь нөөцийг (процедур ба функц) бусад программд ашиглаж болох бие даасан програмын нэгж юм. ProgramMy1; Module1, Module2 ашигладаг; __________________________ __________________________ ________________________________ __________________ МОДУЛЬ 1 Нөөцийн багц 1 … My2 программ; Module1, Module2 ашигладаг; __________________________ __________________________ ________________________________ __________________ МОДУЛЬ N Нөөцийн багц N Модулуудыг АШИГЛАЛТЫН МОДУЛЬ хэсэгээр дамжуулан программд холбоно. БҮТЭЦ 84 Модуль нь дараах хэсгүүдээс бүрдэнэ: 1. Модулийн толгой. 2. Интерфэйсийн хэсэг. (харагдах объектын тайлбар) 3. Хэрэгжүүлэх хэсэг. (далд объектын тайлбар) 4. Эхлүүлэх хэсэг (заавал биш). Нэгж (модулийн нэр); Интерфэйс ( Глобал хувьсагчид, тогтмолууд, төрлүүдийн хэсэг) ( Модуль ) ( Процедур ба функцийн толгойн жагсаалт ) Хэрэгжүүлэх ( Локал хувьсагчид, тогтмолууд, төрлүүдийн хэсэг) ( Процедур ба функцүүдийн хэрэгжилт ) Эхлэх (Эхлэх хэсэг ) Төгсгөл. ! Модулийн толгойн нэр нь модулийн файлын нэртэй тохирч байх ёстой! MODULES Модулийн жишээ: Unit My_Unit; Интерфэйсийн Varms: Бодит массив; ( Глобал массив ) Function Cub(x:integer):Integer; ( Function Cub = x^3 ) Function ext4(x:integer):Integer; ( Функц ext4 = x^4 ) Хэрэгжүүлэх функц Cub(x:integer):Бүхэл; ( Cub функцийн хэрэгжилт ) Begin Cub:= x*x*x; Төгсгөл; Ext4(x:integer) функц: Бүхэл тоо; ( ext4 функцийн хэрэгжилт ) Ext4 эхлэх:= x*x*x*x; Төгсгөл; Төгсгөл. 85 ДАСГАЛ 86 Нэг функц, нэг процедуртай модуль бичнэ үү: ( Функцийн тооцоо X1=1/x ) X1(a:real):real; (X, Y WriteXY(S: String; X, Y: Iteger) байрлалд S үгийг дэлгэцэн дээр хэвлэх журам); Ашигласан материал (модулийн бүтэц): Нэгж (Модулийн нэр); Интерфейс ( Глобал хувьсагчийн хэсэг, тогтмол, төрөл) ( модулиуд ) ( Процедур ба функцийн толгойн жагсаалт ) Хэрэгжилт ( Локал хувьсагчийн хэсэг, тогтмолууд, төрлүүд ) ( Процедур ба функцүүдийн хэрэгжилт ) Эхлэл (Эхлэх хэсэг ) Төгсгөл )

Хичээлийн сэдэв: Програмчлалын хэл "PASCAL" Хэлний текст засварлагч.

Мэдээллийн технологийн багш

нэрэмжит GBOU 293-р сургууль. А.Т. Твардовский, Москва

Бахтинова Наталья Валерьевна


Хичээлийн зорилго :

  • Паскаль хэлний талаархи анхны мэдээллийг бий болгох; Паскаль текст засварлагчийг хэрхэн ашиглах талаар сурах .

Паскаль хэлний тухай түүхэн мэдээлэл

  • Паскаль програмчлалын хэл нь 1642 онд Францын агуу математикч, физикч Блез Паскалийн нэрэмжит нэрээр нэрлэгдсэн. арифметик үйлдлүүдэд зориулсан тооцоолох машин зохион бүтээж, "Паскалын дугуй" гэж нэрлэгддэг. 1968 оны сүүлээр Цюрих дэх Швейцарийн Холбооны Технологийн Хүрээлэнгийн профессор Вирт болон түүний хамтран ажиллагсад Паскаль хэлний анхны хувилбарыг боловсруулжээ. Хоёр жилийн дараа - хөрвүүлэгчийн анхны хувилбар. 1971 онд Вирт өөрийн хэлний тайлбарыг нийтэлжээ.

Блез Паскаль - Францын математикч, механикч, физикч, зохиолч, философич


Паскаль Виртийг бүтээх нь хоёр зорилгыг баримталсан:

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

Никлаус Вирт (Герман Никлаус Вирт, 1934 оны 2-р сарын 15-нд төрсөн) нь Швейцарийн эрдэмтэн, програмчлалын хэлний хөгжлийн салбарын хамгийн алдартай онолчдын нэг юм. Pascal, Modula-2, Oberon програмчлалын хэлийг тэргүүлэгч хөгжүүлэгч, бүтээгч.


Паскалыг эхлүүлж байна

Паскаль хэлийг ажиллуулахын тулд та дүрмээр бол PASCAL директорт байрлах PASCAL.EXE файлыг ачаалах хэрэгтэй.

Жишээ нь: D:\PASCAL\PASCAL.EXE



  • Цэнхэр дэвсгэр дээр бид програм бичих болно.
  • Сануулах мөрүүдийг саарал дэвсгэр дээр бичнэ.
  • Дээд эгнээнд доош унах цэсүүд байна: Фарал, Ттекст, INгүйцэтгэл, TOэмхэтгэл, Ргоримууд, ТУХАЙзасах, Хажиглалт.
  • Дээд цэс рүү очихын тулд F10 товчийг дарна уу. Alt товчлуур болон дээд цэсний аль нэг үгийн эхний үсгийг дарахад цонх нээгдэнэ. (жишээ нь alt + B)

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

  • PgUp - нэг хуудас дээш;
  • PgDn - нэг хуудас доош;
  • Нүүр хуудас - шугамын эхэнд;
  • Төгсгөл - мөрийн төгсгөл хүртэл;
  • Ctrl-PgUp - текстийн эхэнд;
  • Ctrl-PgDn - текстийн төгсгөл хүртэл.

  • Backspace (←) - курсорын зүүн талд байгаа тэмдэгтийг арилгах;
  • Del - курсороор заасан тэмдэгтийг устгах (курсорын баруун талд);
  • Ctrl-Y - курсор байрлах мөрийг устгах;
  • Оруулна уу - шинэ мөр оруулах, хуучин хэсгийг нь хасах;
  • Ctrl-Q L - одоогийн мөрийг сэргээх (хэрэв курсор өөрчлөгдсөн мөрийг орхиогүй бол үйлчилнэ).

  • Ctrl-K B - блокийн эхлэлийг тэмдэглэх;
  • Ctrl-K K - блокийн төгсгөлийг тэмдэглэх;
  • Ctrl-K Y - блок устгах;
  • Ctrl-K C - хуулбарлах блок;
  • Ctrl-K V - блок шилжүүлэх;
  • Ctrl-K W - дискний файлд блок бичих;
  • Ctrl-K R - дискний файлаас блок унших;
  • Ctrl-K P - хэвлэх блок;
  • Ctrl-K H - блокийн сонголтыг арилгах.

  • Паскаль програмчлалын хэлний анхны хувилбар хэдэн онд гарсан бэ?
  • Паскаль хэлний давуу тал юу вэ?
  • Курсорыг дэлгэцийн зүүн дээд булангаас баруун доод буланд хурдан шилжүүлэхийн тулд ямар товчлууруудыг ашиглахад тохиромжтой вэ? (Хэрэв энэ нь эсрэгээрээ байвал яах вэ?)
  • Програмын хэсгийг хуулбарлахын тулд юу хийх хэрэгтэй вэ?
  • Програмын текстэд оруулсан өөрчлөлтийг сэргээх боломжтой юу?

Николаус Вирт Гэхдээ Паскаль бол зөвхөн сурахад зориулагдсан хэл гэж бодох нь буруу байх болно. Энэ тухай Н.Вирт (1984) “Паскаль хэлийг заах хэл болгон хөгжүүлсэн гэж үздэг. Хэдийгээр энэ мэдэгдэл үнэн боловч сургалтанд ашиглах нь цорын ганц зорилго биш байв. Үнэндээ зарим практик асуудлыг шийдвэрлэхэд ашиглах боломжгүй ийм хэрэгсэл, техникийг сургалтын явцад ашиглах нь амжилтанд хүрнэ гэдэгт би итгэдэггүй. * *


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


Яагаад PASCAL гэж? Паскаль програмчлалын хэлийг 1642 онд анхны механик тооцоолох машин зохион бүтээсэн Францын эрдэмтэн Блез Паскалийн нэрээр нэрлэжээ. Энэ нь харилцан үйлчлэгч араа дугуйнуудын систем байсан бөгөөд тус бүр нь аравтын тооны нэг оронтой таарч, 0-ээс 9 хүртэлх тоог агуулдаг. Дугуй бүтэн эргэх үед дараагийнх нь нэг оронтой тоогоор шилждэг. Паскалийн машин нь нийлбэрийн машин байсан.


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




Integrated environment Turbo Pascal-7.0 Pascal-ыг олон нийтэд түгээхэд Borland International компани асар их үүрэг гүйцэтгэсэн. Тэрээр алдарт Turbo хөгжүүлэлтийн орчинг бүрдүүлж чадсан. Энэ нь програмчлалын үйл явцыг хөнгөвчлөхөд маш том алхам болсон. Яагаад турбо гэж? Англи хэлнээс орчуулбал турбо гэдэг нь хурдатгал гэсэн утгатай. Турбо Паскалийн нэг хэсэг болох хөрвүүлэгч нь программчлалын хэлнээс программыг маш хурдан машин код болгон хөрвүүлдэг.




Хэлний гол хэрэгсэл Хэлний тэмдэг нь эх бичвэр бэлтгэхэд ашигладаг энгийн тэмдэг юм. Аливаа хэлний цагаан толгой нь ийм тэмдэгтүүдийн багц юм. Turbo Pascal 7.0 хэлний цагаан толгойд: бүх латин том жижиг үсэг орно. Араб тоонууд(0 – 9) тэмдэгт + - * / =,. ; : _ () ( ) болон бусад туслах (нөөцлөгдсөн) үгс


Турбо Паскаль 7.0-ийн команд, функцын нэр, тайлбар нэр томъёог бичихийн тулд туслах буюу нөөц гэж нэрлэгддэг хатуу тодорхойлсон үгсийн багц байдаг (эдгээр нь англи хэлний товчлолууд юм). Үйлчилгээний үгсийг операторууд (READ, WRITELN гэх мэт) функцүүдийн нэр (SIN, COS гэх мэт) гэсэн гурван бүлэгт хуваадаг. түлхүүр үгс(VAR, BEGIN, END гэх мэт) Хэлний үндсэн шинж чанарууд


Үнэт зүйлийн нэр нь түүний тэмдэглэгээ бөгөөд энэ нь үсгээр эхэлсэн үсэг, тоо, доогуур зураас бүхий үг юм. Тоонууд: бүхэл тоо, бодит: тогтмол цэг (-1.23; 654.2), хөвөгч цэг (2, 437,). Зургаан үйлдэл: + нэмэх, - хасах, / хуваах, * үржүүлэх, үлдэгдлийг олох горим, бүхэл тоо хуваах.


Арифметик илэрхийлэл нь нэр, тоо, арифметик үйлдлийн тэмдэг, математик функцээс бүтээгдсэн байдаг. Үйлдлийн дарааллыг харуулахын тулд хаалт ашиглана. Квадрат болгохын тулд sqr(x) тэмдэглэгээг ашиглана. Квадрат язгуурыг гаргахын тулд sqrt(x) тэмдэглэгээг ашиглана. Модуль нь abs(x) гэж тэмдэглэгдсэн.


Даалгаврын оператор Хувьсагчийн нэр:= арифметик илэрхийлэл. x:= 3.24 эсвэл x:= x+4. Хувьсагчийн төрөл 1. Зүүн талд байгаа хувьсагч бодит төрлийн байвал арифметик илэрхийлэл нь бүхэл тоо эсвэл бодит төрлийн байж болно. 2. Зүүн талд байгаа хувьсагч бүхэл тоон төрлийн байвал арифметик илэрхийлэл нь зөвхөн бүхэл тоо байна.


Паскаль дахь програмын бүтэц 1-р хэсэг - өгөгдөл ба операторуудын тайлбар. 2-р хэсэг - програмын блок. Ерөнхий хэлбэрпрограм: Програм (програмын нэр) шошго (шошгоны жагсаалт) const (тогтмол утгуудын жагсаалт) төрөл (нийтийн өгөгдлийн төрлийн мэдэгдэл) var (програмын өгөгдлийн мэдэгдэл) эхлэл (програмын блок эхлэх) (алгоритм) төгсгөл. (хөтөлбөрийн төгсгөл)


Хөтөлбөрийн нэр: 8 тэмдэгтээс хэтрэхгүй, үсгээр эхэлнэ. цэгээр төгсдөг. Дүрслэх хэсэг нь шошго, тогтмол, нэр, хувьсагчийн төрөл гэсэн 4 хэсгээс бүрдэнэ. var хувьсагчийн нэр ба төрөл: бүхэл тоо (бүхэл тоо), бодит (бодит). Жишээ нь: var i, j: бүхэл тоо; x: бодит; Төрөл бүрийн тайлбар нь цэг таслалаар төгсдөг. Програмын блок нь асуудлыг шийдвэрлэх алгоритмыг дүрсэлсэн операторуудыг агуулдаг.


Оролтын болон гаралтын мэдэгдлүүд: унших (нэрсийн жагсаалт) - програмыг зогсоож, хэрэглэгч гар дээр (зайгаар тусгаарлагдсан) тоо бичихийг хүлээж, ENTER товчийг дарна. Жишээ нь: унших(i, j); Энэ операторыг ажиллуулсны дараа курсор сүүлийн дугаарын ард байрлах боловч шинэ мөрөнд хөрвүүлээгүй болно. Өгөгдлийг оруулсны дараа курсорыг шинэ мөрөнд шилжүүлэхийн тулд readln (нэрсийн жагсаалт) хэллэгийг ашиглана уу. бичих (гаралтын жагсаалт) - Дэлгэц рүү өгөгдөл бичнэ. Гаралтын жагсаалт - тооцооллын үр дүнгийн таслалаар тусгаарлагдсан нэрс, апостроф дахь тайлбар бичвэрүүд. Жишээ нь: бичих(x=, x); Тогтмол цэгийн дугаар дэлгэц дээр хэвлэгдэх болно. Жишээ нь: write(x=, x:6:2); дэлгэц дээр 6 оронтой тоо гарч ирэх ба тэдгээрийн хоёр нь аравтын бутархайн дараа (x =). Хоосон гаралтын оператор writeln курсорыг шинэ мөрөнд шилжүүлнэ. readln хоосон оролтын оператор






Turbo Pascal дээр ажиллах Alt + F10 - цэс File - Шинэ - үүсгэх шинэ файл Enter - мөр бүрийн төгсгөлд байх ёстой Ctrl + Y - мөрийг устгах Enter - мөр оруулах Програмыг ажиллуулахын тулд цэснээс Run командыг сонгоно Translator - програмыг Паскаль хэлнээс машины хэл рүү хөрвүүлэн хайна. синтакс алдаа. 1. Хэрэв алдаа олдвол засварлагч буцаж ирэх бөгөөд курсор алдааг заана. 2.Алдаа олдохгүй бол програмыг ажиллуулна










Заримдаа, THEN, ELSE гэсэн үгсийн дараа та нэг биш, хэд хэдэн хэллэгийг гүйцэтгэх хэрэгтэй. Дараа нь эдгээр операторууд операторын хаалтанд байна. Нээлтийн хаалт нь BEGIN, хаалтын хаалт нь END гэсэн үг юм. ELSE гэдэг үгийн өмнө цэг таслал байхгүй. BEGIN - END хос бүрийг нэг баганад бичихийг зөвлөж байна. IF нөхцөл Дараа нь мэдэгдэл 1 эхлэх; оператор 2; мэдэгдэл N төгсгөл ELSE эхлэл мэдэгдэл 1; оператор 2; оператор M төгсгөл;




E3 програм; var a,b: бүхэл тоо; бичиж эхлэх (хоёр бүхэл тоог хоосон зайгаар оруулаад дараа нь дарна уу); readln(a,b); хэрэв a mod 2 = 0 бол writeln (a нь тэгш) өөрөөр writeln (a нь сондгой); хэрэв b mod 2 = 0 бол writeln (b - тэгш) өөр writeln (b - сондгой); уншина уу.


3 бол a>0 6 бол 0 6 бол 0 6 бол 0 6 бол a0 6 бол гарчиг="3 бол a>0 6 бол a


E31 програм; var a, y: бодит; бичиж эхлэх (тоо оруулаад дарна уу); readln(a); хэрэв a >0 бол y:=3 өөр y:=6; бичих(y=,y); уншина уу. 0 дараа нь y:=3 өөр y:=6; бичих(y=,y); уншина уу."> 0 then y:=3 else y:=6; write (y=,y); readln end."> 0 then y:=3 else y:=6; write (y=,y); readln end." title="E31 програм; var a, y: бодит; бичиж эхлэх (тоо оруулаад дарна уу); readln(a); хэрэв a >0 бол y:=3 өөр y:=6; бичих(y=,y); уншина уу."> title="E31 програм; var a, y: бодит; бичиж эхлэх (тоо оруулаад дарна уу); readln(a); хэрэв a >0 бол y:=3 өөр y:=6; бичих(y=,y); уншина уу."> !}


A+b хэрэв a>b a*b хэрэв a b a*b бол a b a*b хэрэв a b a*b хэрэв ab a*b бол a гарчиг="a+b хэрэв a>b a* b бол a)


E32 хөтөлбөр; var a,b,x: бодит; бичиж эхлэх (хоёр тоог хоосон зайгаар оруулаад дараа нь дарна уу); readln(a); хэрэв a >b бол x:=a+b өөрөөр x:=a*b; бичих(x=,x); уншина уу. b дараа нь x:=a+b өөрөөр x:=a*b; бичих(x=,x); уншина уу."> b then x:=a+b else x:=a*b; write (x=,x); readln end."> b then x:=a+b else x:=a*b; write (x=,x); readln end." title="E32 хөтөлбөр; var a,b,x: бодит; бичиж эхлэх (хоёр тоог хоосон зайгаар оруулаад дараа нь дарна уу); readln(a); хэрэв a >b бол x:=a+b өөрөөр x:=a*b; бичих(x=,x); уншина уу."> title="E32 хөтөлбөр; var a,b,x: бодит; бичиж эхлэх (хоёр тоог хоосон зайгаар оруулаад дараа нь дарна уу); readln(a); хэрэв a >b бол x:=a+b өөрөөр x:=a*b; бичих(x=,x); уншина уу."> !}




Гогцоонуудын зохион байгуулалт Програмчлалд давтагдах үйлдлийг гогцоо гэнэ.Нөхцөлгүй үсрэх оператор goto n, n нь бүхэл тоо (4 тэмдэгтээс илүүгүй), шошго юм. Шошго нь 3 удаа давтагдана: 1. Label хэсэгт; 2. Goto мэдэгдэлд; 3.Нөхцөлгүй үсрэлт хийх операторын өмнө.


Нөхцөл ба болзолгүй шилжилтийн операторуудын тусламжтайгаар мөчлөгийг зохион байгуулах. Даалгавар. Эхний хорин тооны нийлбэрийг ол. (1+2+3….+20). a ……………20 S ………….


Евклидийн алгоритм: Бид хоёр тоо тэнцүү болох хүртэл тоонуудын томыг жижиг тоогоор багасгана. Жишээ нь: Эхний 1 алхам 2 алхам 3 алхам a= 25 b= gcd(a,b)=5


E5 програм; var a, b: бүхэл тоо; бичиж эхлэх (gcd=,a); readln; Төгсгөл. бичих (Хоёр натурал тоог хоосон зайгаар заана); readln(a,b); харин ab do if a>b дараа нь a:=a-b өөрөөр b:=b-a; b дараа нь a:=a-b өөр b:=b-a;"> b дараа нь a:=a-b өөр b:=b-a;"> b дараа нь a:=a-b өөр b:=b-a;" title="Program E5) ;var a, b: integer;begin write(gcd=,a);readln;end.write(Хоёр натурал тоог хоосон зайгаар оруулна);readln(a,b);хэрэглээ ab нь a>b байвал a:= a-b өөр b:=b-a;"> title="E5 програм; var a, b: бүхэл тоо; бичиж эхлэх (gcd=,a); readln; Төгсгөл. бичих (Хоёр натурал тоог хоосон зайгаар заана); readln(a,b); харин ab do if a>b дараа нь a:=a-b өөрөөр b:=b-a;"> !}




B дараа нь a:=a-b; хэрэв b>a дараа нь b:=b-a бичих (Хоёр эерэг бүхэл тоог хоосон зайгаар заана); readln (a,b);" title="Program E6; var a, b: integer; begin write (HOD=,a); readln; end. a=b хүртэл давтана; хэрэв a>b бол a :=a-b; b>a бол b:=b-a бичнэ (Хоёр натурал тоог хоосон зайгаар оруулна); readln (a,b);" class="link_thumb"> 40 !} E6 програм; var a, b: бүхэл тоо; бичиж эхлэх (HOD=,a); readln; Төгсгөл. a=b хүртэл давтах; хэрэв a>b бол a:=a-b; хэрэв b>a дараа нь b:=b-a бичих (Хоёр эерэг бүхэл тоог хоосон зайгаар заана); readln(a,b); b дараа нь a:=a-b; хэрэв b>a дараа нь b:=b-a бичих (Хоёр эерэг бүхэл тоог хоосон зайгаар заана); readln (a,b);"> b дараа нь a:=a-b; хэрэв b>a бол b:=b-a бичих (Хоёр натурал тоог хоосон зайгаар оруулна); readln (a,b);"> b дараа нь a:= a-b; хэрэв b>a дараа нь b:=b-a бичих (Хоёр эерэг бүхэл тоог хоосон зайгаар заана); readln (a,b);" title="Program E6; var a, b: бүхэл тоо; эхлэх бичих (HOD=,a); readln; төгсгөл. a=b хүртэл давтана; хэрэв a>b бол a :=a-b; b>a бол b:=b-a бичнэ (Хоёр натурал тоог хоосон зайгаар оруулна); readln (a,b);"> title="E6 програм; var a, b: бүхэл тоо; бичиж эхлэх (HOD=,a); readln; Төгсгөл. a=b хүртэл давтах; хэрэв a>b бол a:=a-b; хэрэв b>a дараа нь b:=b-a бичих (Хоёр эерэг бүхэл тоог хоосон зайгаар заана); readln(a,b);"> !}




слайд 1

ПРОГРАММЫН ХЭЛ ПАСКАЛ Богданов Владимир Үнэгүй танилцуулга http://prezentacija.biz/

слайд 3

Паскаль хэлийг Никлаус Вирт 1968-1969 онд Алгол-68 хэлний стандарт боловсруулах хорооны ажилд оролцсоныхоо дараа бүтээжээ. Энэ хэл нь хоёр тоог нэмдэг дэлхийн анхны механик машиныг бүтээсэн Францын математикч, физикч, зохиолч, гүн ухаантан Блез Паскалийн нэрээр нэрлэгдсэн юм. Виртын хэл дээрх анхны нийтлэл нь 1970 онд гарсан бөгөөд энэ хэлийг танилцуулсан бөгөөд зохиогч үүнийг бүтээх зорилго нь бүтэцлэгдсэн програмчлал, бүтэцлэгдсэн өгөгдлийг ашиглан сайн програмчлалын хэв маягийг дэмждэг жижиг, үр ашигтай хэлийг бий болгох явдал гэж тодорхойлсон. Виртын дараагийн ажил нь Паскаль хэл дээр суурилсан системийн програмчлалын хэлийг бий болгоход чиглэгдсэн бөгөөд үүний үндсэн дээр мэргэжлийн програмчлалын сургалтыг системтэй, цогц байдлаар явуулах чадварыг хадгалсан. Энэхүү ажлын үр дүн нь Modula-2 хэл юм.

слайд 4

UCSD Pascal Үндсэн өгүүлэл: UCSD Pascal 1978 онд Сан Диегогийн Калифорнийн Их Сургуульд UCSD p-системийг боловсруулсан бөгөөд үүнд Паскал хэлнээс Wirth хөрвүүлэгч портыг зөөврийн p-код, эх кодын засварлагч, Файлын системгэх мэт олон тооны Паскаль хэлний өргөтгөлүүдийг хэрэгжүүлэх, тухайлбал модуль, хувьсах тэмдэгтийн мөр, орчуулгын удирдамж, оролт гаралтын алдааг зохицуулах, файлд нэрээр хандах гэх мэт. Дараа нь Паскаль хэлний үндсэн хэрэглүүрүүд нь энэ аялгуун дээр суурилагдсан.

слайд 5

Object Pascal] Үндсэн өгүүлэл: Object Pascal 1986 онд Apple компани Паскаль хэл рүү объектын өргөтгөл боловсруулж, үүний үр дүнд Object Pascal бий болсон. Үүнийг Никлаус Вирттэй зөвлөлдсөн Ларри Теслерийн бүлэг боловсруулсан.

слайд 6

1983 онд ижил нэртэй Паскалийн хэрэгжилт дээр суурилсан Borland-ийн Turbo Pascal-ийн нэгдсэн хөгжлийн орчны анхны хувилбар гарч ирэв. 1989 онд Turbo Pascal 5.5 хувилбарт объект хэлний өргөтгөл нэмэгдсэн. Хамгийн сүүлийн үеийн хувилбар(7.0) нэрийг Борланд Паскал болгон өөрчилсөн. Объектийн байгууламжуудыг Apple-ийн Object Pascal-аас зээлсэн бөгөөд Object Turbo Pascal 5.5 болон Apple-ийн Object Pascal-ын хооронд хэлний ялгаа маш бага байдаг. Бараг Borland-тай зэрэгцэн Майкрософт өөрийн Pascal-ийн объект хандалтат хэлний хувилбарыг гаргасан ба] Pascal-ийн энэ хувилбар өргөн хэрэглэгдэж байгаагүй. Борландаас Паскалийн хэрэгжилтийн цаашдын хөгжил нь ижил нэртэй болсон Delphi програмчлалын орчныг хөгжүүлэх явцад Борландаас Object Pascal хувилбарыг бий болгосон.

Слайд 7

Хэлний хөгжилд чухал алхам бол Паскаль хэлний l ба GNU Pascl хэлийг үнэ төлбөргүй хэрэгжүүлсэн явдал бөгөөд энэ нь тухайн хэлний бусад олон аялгууны онцлогийг шингээгээд зогсохгүй түүн дээр бичигдсэн програмуудыг маш өргөн зөөвөрлөх боломжийг олгосон юм. жишээ нь GNU Pascal нь 20 гаруйг дэмждэг янз бүрийн платформууд, 10-аас доошгүй ялгаатай үйлдлийн системүүд, Чөлөөт Паскаль нь Turbo Pascal (бүрэн нийцтэй), Delphi болон бусад хэл гэх мэт янз бүрийн нийтлэг аялгуутай нийцтэй байх тусгай горимуудыг өгдөг. Delphi 2003 оноос хойш Net платформд зориулж хэлний хэрэгжилт бий болсон ч хөгжүүлэгчид Delphi-г өмнөх хувилбаруудаас нь ашигласаар байна. Free Pascal, GNU Pascal болон TMT Pascal хэл дээр арилжааны хөгжлийн талаар Энэ мөчбага мэддэг. Нэмж дурдахад Өмнөд Холбооны Их Сургууль PascalABC.NET буюу Pascal програмчлалын хэлийг хөгжүүлсэн бөгөөд үүнд Делфи хэлний ихэнх функцууд болон өөрийн хэд хэдэн өргөтгөлүүд багтсан болно. Энэ нь Microsoft.NT платформ дээр суурилсан бөгөөд орчин үеийн хэлний бараг бүх боломжуудыг агуулсан: ангиуд, операторын хэт ачаалал, интерфэйс, онцгой байдлын зохицуулалт, ерөнхий анги ба дэд програмууд, хог цуглуулах, lambda илэрхийлэл.

Слайд 8

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

Слайд 9

Гэсэн хэдий ч эхэндээ хэл нь хэд хэдэн хязгаарлалттай байсан: хувьсах урттай массивуудыг функцүүдэд дамжуулах боломжгүй, динамик санах ойтой ажиллах ердийн хэрэгсэл байхгүй, хязгаарлагдмал оролт / гаралтын номын сан, бусад хэл дээр бичигдсэн функцүүдийг холбох хэрэгсэл байхгүй байсан. хэл, тусад нь эмхэтгэх хэрэгсэл дутмаг гэх мэт. Тухайн үеийн Паскаль хэлний дутагдалтай талуудын нарийвчилсан дүн шинжилгээг Брайан Керниган "Яагаад Паскаль миний дуртай програмчлалын хэл биш юм бэ" гэсэн өгүүлэлд хийсэн (энэ нийтлэл нь эхэнд гарсан). 1980-аад он, Паскалийн удам болох Modula-2 хэл нь ихэнх муу муухай байдлаасаа ангижирч, Паскалийн илүү хөгжсөн аялгуунууд). Паскалийн зарим дутагдлыг 1982 оны ISO стандартаар зассан, тухайлбал хэл дээр нээлттэй массивууд гарч ирсэн нь янз бүрийн хэмжээтэй нэг хэмжээст массивыг боловсруулахад ижил процедурыг ашиглах боломжтой болсон.

слайд 10

Гэсэн хэдий ч хэлний олон дутагдал нь програмчилж сурахад гарч ирдэггүй, бүр давуу тал болдог. Нэмж дурдахад, 1970-аад оны эрдэм шинжилгээний орчин дахь үндсэн програмчлалын хэлтэй харьцуулахад (энэ нь Фортран байсан бөгөөд энэ нь илүү чухал сул талуудтай байсан) Паскаль нь урагшлах чухал алхам байв. 1980-аад он гэхэд Паскаль олон тооны үндэс суурь болсон сургалтын хөтөлбөр, зарим тохиолдолд түүний үндсэн дээр тусгай сургалтын програмчлалын хэл бий болсон, жишээлбэл, 1980-аад оны эхээр ЗХУ-д сургуулийн хүүхдүүдэд компьютерийн шинжлэх ухааны үндсийг заах, компьютерийн шинжлэх ухаанАндрей Ершов Алголо-Паскальтай төстэй "суралцах алгоритмын хэл" боловсруулсан.

слайд 11

Хэлний өргөн тархалт, хөгжлийг хангасан Паскалийн хамгийн алдартай хэрэглүүр бол Borland-ын Turbo Pascal программ бөгөөд дараа нь DOS (5.5 хувилбараас эхлэн) болон Windows-д зориулагдсан Паскаль, цаашлаад Delphi-д зориулагдсан объект болж хувирсан бөгөөд үүнд томоохон өргөтгөлүүд хийгдсэн. хэлийг нэвтрүүлсэн. DOS-д зориулсан Turbo Pascal болон Windows-д зориулсан Delphi-д хэрэглэгддэг Паскаль аялгуунууд нь бусад арилжааны амжилттай хэрэгжүүлэлгүйн улмаас түгээмэл болсон.

слайд 12

1970 онд Паскалийн хэрэглээ эхэлж, нэмэлтүүд төдийгүй синтаксаараа ялгаатай хэрэглүүрүүд гарч ирсний дараа хэлийг стандартчилах асуудал гарч ирэв. Хэлний стандартыг Никлаус Вирт 1974 онд Кэтлин Женсентэй хамтран боловсруулсан. Дараа нь ISO-аас олон улсын стандарт, ANSI-аас Америк стандартыг баталсан. Одоогийн байдлаар үндсэндээ ялгаатай гурван стандарт байдаг: Өргөтгөлгүй Паскаль (эх хувь), Өргөтгөсөн Паскаль (өргөтгөсөн), Паскаль руу чиглэсэн объект руу чиглэсэн өргөтгөлүүд (объект хандалтат Паскал өргөтгөл).

слайд 13

слайд 14

Синтакс ба хэлний бүтэц Паскаль нь анхны хэлбэрээрээ цэвэр процедурын хэл бөгөөд if, then, else, while, for, гэх мэт хадгалагдсан үгс бүхий олон Алголтой төстэй бүтэц, бүтцийг агуулдаг. Гэсэн хэдий ч Паскаль нь мөн олон тооны Анхны Алгол-60-д байгаагүй мэдээлэл, хийсвэрлэлийг бүтэцжүүлэх онцлог, тухайлбал төрлийн тодорхойлолт, бичлэг, заагч, тоолол, багц зэрэг. Эдгээр бүтээцийг Никлаус Вирт Алгол В (Англи) Орос хэлээр бүтээсэн Simula-67, Algol-64 хэлнээс хэсэгчлэн өвлөн авсан эсвэл сүнслэгээр авсан болно. Хоар санал болгосон. Орчин үеийн аялгуунд (Чөлөөт Паскаль) оператор болон функцийг хэт ачаалах зэрэг үйлдлүүд байдаг.

слайд 15

програм p; эхлэх төгсгөл. Хөтөлбөр нь юу ч хийхгүй бөгөөд хоосон блок мэдэгдлүүдийг агуулдаг. "Сайн уу, дэлхий!" гэсэн мөрийг хэвлэдэг програмын жишээ:

слайд 16

begin writeln("Сайн уу, Дэлхий!"); ( шугамын гаралтын оператор ) төгсгөл.

слайд 17

слайд 18

слайд 19

слайд 20

Паскал хэл дээр бүхэл тоон төрлүүд (байт, богино, үг, бүхэл тоо, longint болон тэдгээрийн муж) дээр битийн үйлдлийг хийхийг зөвшөөрдөг. Бит дээрх логик үйлдлүүд: Өмнө нь авч үзсэн логик үйлдлүүдийг not, and, or, xor гэсэн хоёр бүхэл операндын битүүд дээр хийж болно. Битийн болон логик үйлдлүүдийн хоорондох ялгаа нь битийн (битийн) үйлдлүүд нь аравтын бутархай (ихэвчлэн) дүрслэл дэх утгууд дээр биш, харин операндуудын тусдаа битүүд дээр хийгддэг. Ординаль өгөгдлийн төрлүүдийн тухай ойлголтыг ялгаж үздэг бөгөөд үүнд бүхэл тооны төрлүүд (тэмдэгт ба тэмдэггүй), логик (boolean), тэмдэгт (тэмдэгт), тоологдсон төрөл ба мужуудын төрлүүд орно. Ординал төрлүүд нь бүхэл тоогоор (код) тодорхойлогддог бөгөөд үүнийг ord функц ашиглан олж авах боломжтой. Ординал төрлүүд дээр хийгдсэн бүх үйлдлүүд нь тэдгээрийн кодууд дээр хийгддэг.

слайд 21

слайд 22

Ординал төрлүүдийн хувьд inc, dec, succ, pred, ord, харьцуулах үйлдлүүд (=>)

слайд 23

слайд 24

слайд 25

Женсен, Виртийн Паскал-д мөрүүдийг тэмдэгтүүдийн багцалсан массив хэлбэрээр дүрсэлсэн; тиймээс тэдгээр нь тогтсон урттай байсан бөгөөд ихэвчлэн тэр уртыг зайгаар дүүргэдэг байв. Орчин үеийн Паскаль хэлэнд мөртэй ажиллахын тулд холболт (+) ба харьцуулалтыг дэмждэг (> =) суурилагдсан төрлийн мөрийг ашигладаг.

слайд 26

1970-1990-ээд оны хэлний аялгуун дахь тэмдэгт мөр [n] буюу энгийн мөр нь char (UCSD Pascal-д n нь 80, Turbo/Borland Pascal-д 255) тэмдэгтийн массив, тэг тэмдэгт гэж тодорхойлогдсон. Энэ дүрслэл дэх код нь мөрний уртыг тус тус тохируулахад үйлчилдэг хамгийн их хэмжээ 255 тэмдэгт. Анхдагч байдлаар Delphi болон FreePascal-д AnsiString төрлийг мөр болгон ашигладаг бөгөөд санах ойг хөрвүүлэгч динамикаар хуваарилж, чөлөөлдөг бөгөөд одоогийн хэрэгжүүлэлт дэх мөрийн дээд хэмжээ нь 2 гигабайт байна. Нэмж дурдахад Delphi болон Free Pascal-д WideString төрлийг мөр болгон ашиглаж болох ба энд UCS-2 кодчилол дахь тэмдэгтүүдийн 16 битийн дүрслэлийг ашигладаг бол нэг байт мөрнөөс олон байт мөр рүү хөрвүүлэх ямар ч хэрэгсэл байхгүй. хэлний стандарт номын санд эсрэгээр.

слайд 27

Одоо байгаа төрлүүдээс шинэ төрлүүдийг тодорхойлж болно: төрөл (төрлийн мэдэгдлийн хэсэг) x = Бүхэл тоо; y=x;

слайд 28

Түүнчлэн, нийлмэл төрлүүдийг анхдагч төрлөөс байгуулж болно: төрөл (төрлийн мэдэгдлийн хэсэг) a = Бүхэл тоон массив; ( массивын тодорхойлолт ) b = бичлэг ( бичлэгийн тодорхойлолт ) x: Бүхэл тоо; y: Char; Төгсгөл; c = a файл; (файлын тодорхойлолт)

слайд 29

Паскаль хэл дээрх файлын төрлүүд нь бичигдсэн, текст болон төрөлгүй файлууд гэж хуваагддаг. Дээрх жишээнд үзүүлснээр Паскаль хэл дээр бичигдсэн файлууд нь ижил төрлийн элементүүдийн дараалал юм. Файл бүрийн хувьд f^-ээр тэмдэглэгдсэн буфер заагч хувьсагч байдаг. get (унших) болон put (бичих) процедур нь заагчийг дараагийн элемент рүү шилжүүлнэ. Унших нь read(f, x) нь get(f)-тэй ижил байхаар хэрэгждэг; x:=f^. Үүний дагуу бичих нь write(f, x) нь f^ := x; тавих (f). Текст текст файлуудЭдгээр нь char төрлийн файлын өргөтгөл гэж тодорхойлогддог бөгөөд бичигдсэн файлууд дээрх стандарт үйлдлүүдээс (унших, тэмдэгт бичих) гадна консолын оролт/гаралттай адил бүх төрлийн өгөгдлийн файлд тэмдэгт оруулах/гаралт хийхийг зөвшөөрдөг.

слайд 30

Төрөлгүй файлуудыг файлын төрлийн хувьсагч гэж зарлана. Тэдгээрийн тусламжтайгаар буферээр дамжуулан тодорхой урттай хэд хэдэн байт блокуудад байт ба байт төрөлгүй I / O үйлдлийг гүйцэтгэх боломжтой бөгөөд үүний тулд тусгай блок унших, блок бичих процедурыг (UCSD өргөтгөл) ашигладаг.

слайд 31

слайд 32

слайд 33

слайд 34

слайд 35

Заагч Паскаль нь заагч ашиглахыг дэмждэг (хэв бичигдсэн ^ төрөл ба төрөлгүй заагч): a = ^b төрөл; b = бичлэг x: Бүхэл тоо; y: Char; z:a; Төгсгөл; var pointer_to_b:a;

слайд 36

Энд байгаа заагч_to_b хувьсагч нь b өгөгдлийн төрлийн заагч бөгөөд энэ нь бичлэг юм. Бичсэн заагчийн төрлийг түүний хамаарах төрлийг зарлахаас өмнө зааж өгч болно. Энэ нь аливаа зүйлийг ашиглахын өмнө зарлах ёстой гэсэн дүрмийн үл хамаарах зүйл юм. Энэхүү үл хамаарах зүйлийг нэвтрүүлснээр шугаман жагсаалт, стек, дараалал зэрэг өгөгдлийн бүтцийн давтагдах тодорхойлолтыг зохион байгуулах боломжтой болсон бөгөөд үүнд энэ оруулгын тайлбар дахь оруулга руу заагч орно (мөн харна уу: null заагч - тэг). Бичсэн заагч нь ялгах үйлдэлтэй (түүний синтакс: заагч^). Бүтээх шинэ рекорд x ба y талбарт 10 утга болон А тэмдэгтийг оноож өгөхөд дараах хэллэг шаардлагатай.

Слайд 37

шинэ(б-д_заагч); ( заагч хуваарилалт ) заагч_б^.x:= 10; (заагч заагч болон бичлэгийн талбарт хандах) pointer_to_b^.y:= "A"; заагч_to_b^.z:= nil; ... dispose(заагч_б); (заагч дороос санах ойг чөлөөлөх)

слайд 38

Та мөн жишээн дээр үзүүлсэн шиг бичлэг болон объектын талбарт хандахын тулд with мэдэгдлийг ашиглаж болно: new(заагч_б); заагч_to_b^-ээр эхлэх x:= 10; y:= "A"; z:= төгсгөлгүй; ... dispose(заагч_б);

Слайд 39

Процедурын төрөл Паскаль Женсен, Вирт нарын анхны хэлэнд процедурын төрлийг зөвхөн албан ёсны параметрийг тайлбарлах үед ашигладаг байсан. TP-д аль хэдийн бүрэн процедурын төрөл байсан. Төрөл мэдэгдэл нь ерөнхийдөө дэд программын интерфейсийг тодорхойлсон процедур эсвэл функцийн гарчгийг (нэргүй) агуулдаг. Энэ төрлийн утга нь төрөл мэдэгдэлд заасан гарчигтай дэд програмын заагчийг агуулна. Хувьсагчийн тодорхойлогч нь тохирох процедур эсвэл функцийг дуудах боломжтой.

слайд 40

Паскаль бол бүтэцлэгдсэн програмчлалын хэл бөгөөд энэ нь програм нь GOTO командыг ашиглахгүйгээр дараалсан бие даасан стандарт хэллэгүүдээс бүрддэг гэсэн үг юм.

слайд 41

while, for, if, case өгүүлбэрт блокыг гүйцэтгэсэн хэллэг болгон ашиглаж болно. Энгийн мэдэгдэл эсвэл блок болох ийм бүтээн байгуулалтыг нарийн төвөгтэй мэдэгдэл гэж нэрлэдэг. Turbo Pascal-д эмхэтгэх үйл явцыг хянахын тулд тайлбар дээр байрлуулсан заавар байдаг бөгөөд хөрвүүлэгчийн ажиллагааны горимыг солих боломжийг олгодог - жишээлбэл, оролт, гаралтын үйлдлийг шалгахыг идэвхжүүлэх, идэвхгүй болгох:

слайд 42

Паскал хэл дээр дэд программуудыг процедур, функц гэж хуваадаг: Синтаксийн хувьд процедур, функцууд нь толгой хэсгээс бүрдэнэ (процедур эсвэл функц гэсэн түлхүүр үг агуулсан, хаалтанд оруулах параметрүүдийн тайлбарыг агуулсан нэр, буцах төрөл, функцийн хувьд хоёр цэг, процедурын хувьд цэг таслалаар тусгаарлагдсан) толгойн ард их бие, тэмдэгт ;.

слайд 43

Процедурын бие нь програмын нэгэн адил процедур ба функцүүдийн тайлбарыг агуулж болно. Тиймээс, процедур, функцуудыг хүссэнээрээ бие биендээ гүн оруулах боломжтой бол програмын хэсэг нь гинжин хэлхээний хамгийн дээд хэсэг юм. Түүгээр ч зогсохгүй процедур/функцын тайлбараас өмнө байрлах хувьсагчид, төрөл, тогтмолууд, гадаад биет (процедур, функц, программ) -ын тайлбарын хэсгүүдийн агуулгыг дотор нь авах боломжтой. Мөн ихэнх аялгуунд та процедураас гадаад процедурын параметрүүдэд хандах боломжтой. Процедур/функцын гарчгийн дагуу үндсэн хэсгийн оронд урагшлах түлхүүр үгийг байрлуулж болох бөгөөд энэ нь процедур/функцын тайлбар нь дуудагдсаны дараа програмд ​​байрлаж, програмыг эмхэтгэх боломжтой холбоотой бол үүнийг хийнэ. Паскал хэл дээр дэмжигдсэн нэг дамжуулалт. Процедурууд нь функцээс утгыг буцаадгаараа ялгаатай байдаг бол процедур нь утга буцаадаггүй.

слайд 44

Тэдний дотор холбогдсон модулиуд гарч ирэхээс өмнө орчин үеийн хэлбэрСи хэлний #include механизмтай төстэй толгой файлуудыг оруулах механизмын улмаас Паскалийн зарим хэрэгжүүлэлтүүд модульчлагыг дэмждэг: псевдо-тайлбар хэлбэрээр форматлагдсан тусгай удирдамжийг ашиглах, жишээлбэл, ($INCLUDE "файл"), агуулга заасан файлын эх текст хэлбэрээр програмын текстэд шууд оруулсан болно. Тиймээс хуваах боломжтой болсон програмчлалын кодзасварлахад хялбар болгох үүднээс олон фрагмент болгон хуваах боловч эмхэтгэхээс өмнө тэдгээрийг автоматаар нэг програмын файлд нэгтгэж, эцэст нь хөрвүүлэгч боловсруулдаг. Модульчлэлийн энэхүү хэрэгжилт нь энгийн бөгөөд олон илэрхий дутагдалтай тул үүнийг хурдан сольсон. Орчин үеийн Паскалийн хэрэгжилт (UCSD Pascal-аас эхлэн) модулиудыг дэмждэг. Програмын модулиуд нь хоёр төрлийн байж болно: програмын үндсэн модуль нь ердийнх шигээ програмын түлхүүр үгээр эхэлдэг бөгөөд үндсэн хэсэг нь програмыг санах ойд ачаалсны дараа ажилладаг кодыг агуулсан, төрөл, тогтмол, хувьсагч, процедурыг агуулсан туслах модулиуд юм. үндсэн модулийг оруулаад бусад модулиудад ашиглах зориулалттай функцууд.

слайд 45

Ерөнхий бүтэцПаскаль дахь залгаас дараах байдлаар харагдана: unit UnitName1; интерфэйс ... хэрэгжилт ... эхлэл ( орхигдуулж болно - эхлүүлэх хэллэгүүдийг байрлуулах шаардлагатай бол хэрэглэнэ) ... төгсгөл.

слайд 46

Өөр нэг сонголт бас боломжтой: UnitName2; интерфейс ... хэрэгжүүлэх ... эхлүүлэх ... дуусгах .... төгсгөл.

слайд 47

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

слайд 48

Интерфейсийн хэсэг нь эхлээд INTERFACE түлхүүр үгээр эхэлж, модулийн хэрэгжилтийн хэсэг эсвэл үндсэн хэсэг эхлэх цэг дээр төгсдөг. Интерфейсийн хэсэг нь модулийн гаднаас ашиглах боломжтой объектуудыг (төрлүүд, тогтмолууд, хувьсагчууд, процедур ба функцууд - тэдгээрт зориулж толгой хэсгийг байрлуулсан) зарладаг. Энэ тохиолдолд төрлийг хэсэгчлэн зарлахыг зөвшөөрнө: тэдгээрийг зөвхөн нэг нэрээр ямар ч бүтцийг зааж өгөхгүйгээр зарлаж болно. Энэ төрлийг гадны программд ашиглахдаа энэ төрлийн хувьсагч, параметрүүдийг зарлах, утга оноохыг зөвшөөрдөг боловч түүний хэрэгжилтийн дэлгэрэнгүй мэдээлэлд хандах боломжгүй байдаг. Интерфейсийн хэсэг дэх процедур ба функцуудыг форвард гэж зарласан - параметр бүхий толгой хэсэг, гэхдээ биегүй. Модулийн интерфейсийн хэсгийн найрлага нь энэ модулийг ашигладаг кодыг үүсгэхэд хангалттай юм. Интерфейсийн хэсэгт зарласан хувьсагч нь глобал шинж чанартай, өөрөөр хэлбэл тэдгээр нь нэг инстантад байдаг бөгөөд энэ модулийг ашигладаг програмын бүх хэсэгт байдаг.

слайд 49

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

Слайд 50

Модулийн бие нь дараахаас эхэлдэг дээд түвшин BEGIN түлхүүр үгээр үүрлэх. Их бие нь модулийг ачаалах үед нэг удаа хийгдэх програмын кодыг агуулдаг. Их биеийг эхлүүлэх, модулийн хувьсагчдад анхны утгыг оноох, ажиллах нөөцийг хуваарилах гэх мэтийг ашиглаж болно. Модулийн бие байхгүй байж магадгүй. Паскалийн хэд хэдэн хэрэгжүүлэлтэд, жишээлбэл, Delphi-д модулийн биетийн оронд ЭХЛҮҮЛЭХ ба ЭЦСҮҮЛЭХ гэсэн хоёр хэсгийг (мөн нэмэлт) ашиглаж болно. Тэдгээрийг модулийн төгсгөлд харгалзах түлхүүр үгийн дараа байрлуулна. Эхнийх нь эхлүүлэх хэсэг нь модулийг ачаалах үед гүйцэтгэх ёстой кодыг агуулдаг бол хоёр дахь нь дуусгах хэсэг нь модулийг буулгах үед гүйцэтгэх кодыг агуулдаг. Дуусгах хэсэг нь эхлүүлэхийн эсрэг үйлдлийг гүйцэтгэх боломжтой - санах ойноос объектыг устгах, файлуудыг хаах, хуваарилагдсан нөөцийг чөлөөлөх. Модуль нь END түлхүүр үгийн дараа цэгээр төгсдөг.

слайд 51

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

слайд 52

Интерфейсийн хэсэгт холбогдсон модулиудыг бүхэл бүтэн модульд ашиглаж болно - хэрэгжүүлэх хэсэг болон биед аль алинд нь. Гэхдээ хэрэгжүүлэх хэсэг нь интерфэйсийн хэсэгт байхгүй боловч хэрэгжүүлэх хэсэгт шаардлагатай залгаасуудын нэрийг агуулсан өөрийн оруулах мэдэгдэлтэй байж болно (энэ нь IPLEMENTATION түлхүүр үгийн дагуу). Хэрэгжүүлэх хэсэгт тусдаа холболтын жагсаалтыг ашиглах нэг шалтгаан нь хоёр ба түүнээс дээш модуль бие биенээ ашиглах явдал юм. Ийм модулиудыг ашиглах тухай мэдэгдэлд дугуй лавлагаа хийхээс зайлсхийхийн тулд тэдгээрийн дор хаяж нэг нь нөгөөг нь хэрэгжүүлэх хэсэгт оруулах ёстой.

слайд 53

Модулуудын интерфейсийн хэсгүүдэд зарлагдсан аливаа объектыг эдгээр модулиудыг холбосон программд ашиглаж болно. Plug-in-ээс импортолсон объектуудын нэр нь ижил хэвээр байгаа бөгөөд шууд ашиглах боломжтой. Хэрэв хоёр ба түүнээс дээш холбогдсон модуль нь ижил нэртэй объектуудтай бөгөөд хөрвүүлэгч тэдгээрийг хооронд нь ялгаж чадахгүй бол ийм объектыг ашиглах оролдлого нь эмхэтгэлийн алдааг үүсгэдэг - тодорхойгүй нэрийн тодорхойлолт. Энэ тохиолдолд програмист нэрийн шалгуурыг хэрэглэх ёстой - нэрийг "." форматаар зааж өгнө үү.

слайд 54

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

Слайд 55

Модулиудыг тусад нь эмхэтгэх зориулалттай - хөрвүүлэгч нь тэдгээрийг ашигладаг модулийг эмхэтгэхийн тулд импортын модулиудыг эмхэтгэх шаардлагагүй. Гэхдээ модулийг зөв хөрвүүлэхийн тулд хөрвүүлэгч нь ашигладаг бүх модулиудын интерфейсийн хэсэгт хандах эрхтэй байх ёстой. Ийм хандалтыг зохион байгуулах хоёр өөр, заримдаа хосолсон арга байдаг. Модулуудыг тусгай форматтай хоёртын файл болгон хөрвүүлдэг (хөрвүүлэгч бүр өөрийн гэсэн байдаг). дэлгэрэнгүй мэдээлэлИнтерфейсийн хэсэгт зарлагдсан объектуудын тухай нь модулийг эмхэтгэх үед үүссэн объектын хэлийг агуулж болох боловч зөвхөн модулийн интерфейсийн хэсгийг ашигладаг. Хэрэв номын сангийн модулийг эмхэтгэсэн хэлбэрээр (бүрэн эх бичвэргүйгээр) нийлүүлсэн бол хоёртын файлын хамт зөвхөн интерфейсийн хэсгийг агуулсан модулийн эх кодын таслагдсан файл байна. Энэ нь хөрвүүлэгч нь ашиглаж буй модулиудын дуудлагыг зөв боловсруулахад хангалттай бөгөөд програмыг эмхэтгэх үе шатанд холбогч нь програмд ​​хоёртын файлыг оруулдаг.

слайд 56

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

Слайд 57

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

Слайд 58

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

Слайд 59

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

слайд 60

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

слайд 61

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

Слайд 62

Object Pascal хэл дээр ангиудыг ашиглан тодорхойлогддог объектын төрөл, өгөгдлийн талбараас гадна процедур болон функцийн толгойг агуулж болох бичлэгтэй төстэй (тэдгээрийг аргууд гэж нэрлэдэг). Тайлбарласан аргуудын нэр нь цэгээр тусгаарлагдсан ангийн нэрийг дагаж мөрддөг.

слайд 63

Бүтээгч болон устгагчийг ердийн процедур гэж зааж өгсөн боловч процедур танигчийн оронд байгуулагч, устгагч гэсэн түлхүүр үгсийг зааж өгсөн болно. Үүний дагуу, C++-тэй төстэй хэлнүүдээс ялгаатай нь тэдгээр нь ангийн нэрнээс өөр нэртэй, хэд хэдэн устгагч байж болох ба параметртэй байж болно (практикт энэ функцийг бараг ашигладаггүй, ихэвчлэн анги нь виртуал хэлийг дарах ганц Destroy устгагчтай байдаг. эцэг эхийн ангийн устгагч).

слайд 64

Ганц удамшил, ангийн полиморфизм, виртуал аргын механизмыг дэмждэг (ангиллын аргын толгойн дараа виртуаль гэсэн үг). Мөн динамик аргууд байдаг (TP-д тэдгээрийг виртуал гэдэг үгийн ард бүхэл тоо нэмж тайлбарладаг бөгөөд ихэвчлэн мессеж боловсруулахад ашигладаг; Delphi болон FreePascal-д мессеж гэдэг үгийг энэ зорилгоор ашигладаг бөгөөд динамик гэдэг үгийг энгийн хэлбэрийг бий болгоход ашигладаг. динамик аргууд), энэ нь хүүхдийн VMT-д өвөг дээдсийн динамик аргуудын давхардал байхгүйгээс шалтгаалан санах ой бага зарцуулж, дуудлагын хурд багатай байдаг (гэхдээ FreePascal нь виртуал болон динамик аргуудыг ялгадаггүй). Delphi-д FPC нь үйлдлүүдийн хэт ачаалал, хийсвэр аргууд, хувийн, хамгаалагдсан, нийтийн, нийтлэгдсэн удирдамжуудыг хэрэгжүүлсэн (анхдагчаар, ангийн гишүүд олон нийтийн байдаг):

Слайд 65

Делфийн аялгуунд ангиудыг үгийн анги ашиглан байгуулж болно (түүнээс гадна объект ангиудтай харилцан өв залгамжлахыг зөвшөөрдөггүй) интерфейсүүд (интерфейс) нэвтрүүлсэн - бүх аргууд хийсвэр бөгөөд өгөгдлийн талбарыг агуулж болохгүй. Бүх ангиуд (ангиар үүсгэгдсэн) TObject-ээс өвлөгдөнө, бүх интерфейс нь IUnknown-ээс үүсэлтэй. Ангиар үүсгэгдсэн ангиуд нь олон интерфейсийг хэрэгжүүлэх боломжтой.

слайд 66

Microsoft-ын COM технологийг дэмжих интерфэйсүүдийг Delphi-д нэвтрүүлсэн. Ангиуд (Анги) нь энгийн ангиудаас (Объект) ялгаатай нь санах ойг тодорхой хуваарилах / задлах шаардлагагүй бөгөөд тэдгээрийн санах ойг Create нэртэй бүтээгчээр динамикаар хуваарилж, ангийн нэрээр дуудаж, Destroy нэртэй устгагч дуудагдах үед гаргадаг (тэдгээр нь өөр нэртэй байж болно). Ийм ангийн хувьсагч нь объектын ангиас ялгаатай нь ангиллын жишээний хаягийг санах ойд хадгалдаг, тэг утгыг хоосон лавлагааг илэрхийлэхэд ашигладаг тул объектыг гаргахын тулд TObject-д тусгай үнэгүй аргыг тодорхойлсон байдаг. nil гэсэн лавлагааг шалгаад Destroy виртуал устгагчийг дуудна. Ийм ангиудыг ашигласан код дараах байдалтай харагдана.

Слайд 67

1 слайд

“ПАСКАЛ ХЭЛТЭЙ ТАНИЛЦАХ” СЭДЭВТ ХИЧЭЭЛ: Волгоград мужийн Калач-на-Дону, МБО УСОШ №2, математик, компьютерийн шинжлэх ухааны багш Анисимова Н.А.

2 слайд

ХИЧЭЭЛИЙН ЗОРИЛГО: Турбо Паскаль хэлний программын бүтэц, операторууд, форматлах дүрэм, цэг таслал зэргийг олж мэдэх.

3 слайд

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

4 слайд

1) Turbo Pascal програмчлалын хэл; 2) нэгдсэн програмчлалын орчин (эмхэтгэгч: программыг машины код болгон хөрвүүлэх, тайлбарлагч: командуудыг гүйцэтгэх) TR ПРОГРАМЧЛАЛЫН СИСТЕМИЙН БҮРДЭЛ:

5 слайд

1) Латин үсэг - том, жижиг; 2) орос цагаан толгойн үсэг - том, жижиг; 3) тоонууд - 0-ээс 9 хүртэл; 4) үйл ажиллагааны шинж тэмдэг - +, -, /, *, =, =; 5) тэмдэгтүүдийг тусгаарлах - () ( ); . , ‘ _% & # гэх мэт TURBO PASCAL програмчлалын хэлний цагаан толгой

6 слайд

7 слайд

Програмын толгой Хувьсагчийг зарлах хэсэг Мэдэгдэлийн хэсэг (үндсэн хэсэг)

8 слайд

Хувьсагчийг зарлах хэсэг нь Var гэсэн үгээр эхэлж, дараа нь ижил төрлийн хувьсагчийн нэрсийн таслалаар тусгаарлагдсан жагсаалт байна. Паскал хэл дээр хоёр төрлийн тоо байдаг: бодит ба бүхэл тоо. Хувьсагчийн нэр нь латин үсэг, тооноос бүрдэх ба эхний тэмдэгт нь үсэг юм. Нэг төрлийн хувьсагчийн VAR жагсаалт: INTEGER; ижил төстэй хувьсагчдын жагсаалт:REAL;

9 слайд

Операторын хэсэг нь программын гол хэсэг юм. Хэсгийн эхлэл ба төгсгөлийг оператор хаалт болох BEGIN болон END гэсэн үйлчилгээний үгсээр тэмдэглэсэн байдаг. Эдгээр үгсийн хооронд Паскаль хэл дээр бичигдсэн алгоритмын бүх командууд (операторууд) байрладаг. Оператор тусгаарлагч нь цэг таслал юм. Програмын хамгийн төгсгөлд цэг байрлуулсан байна. BEGIN READ (оролтын жагсаалт); READLN(оролтын жагсаалт); хувьсагч:=арифметик илэрхийлэл; WRITE (гаралтын жагсаалт); WRITELN(гаралтын жагсаалт); ТӨГСГӨЛ.

10 слайд

Гараас анхны өгөгдлийг оруулах нь READ эсвэл READLN (унших) оператор дээр хийгддэг. READLN мэдэгдэл нь өгөгдөл оруулсны дараа курсор эхэнд шилждэгээрээ л READ-аас ялгаатай. шинэ шугам. хувьсагч:=арифметик илэрхийлэл; WRITE (гаралтын жагсаалт); WRITELN(гаралтын жагсаалт); ТӨГСГӨЛ. READ (оролтын жагсаалт); READLN(оролтын жагсаалт);

11 слайд

хувьсагч:=арифметик илэрхийлэл; Арифметик хуваарилалтын оператор: зүүн талд хувьсагч, баруун талд үнэлэх арифметик илэрхийлэл байна. Нийлмэл тэмдэгт:= нь "даалгах" гэж уншина. Эхлээд арифметик илэрхийллийг үнэлсний дараа үр дүнгийн утгыг хувьсагчид өгнө.Жишээ нь: a:= sqr (x) + sin (y) / (12*z + 5)

12 слайд

mod div / * - + SIN (x) COS (x) SQR (x) SQRT (x) ABS (x) Sin x Cos x x 2 |x| x нэмэх хасах үржүүлэх хуваах бүхэл тоо хуваах үлдэгдэл

13 слайд

Арифметик илэрхийлэл бичих дүрэм Арифметик илэрхийллийг мөрөнд бичнэ Арифметик үйлдлийн хоёр тэмдгийг дараалан тавьж болохгүй Хүчин зүйлийн хооронд үржүүлэх тэмдгийг орхиж болохгүй Зөвхөн хаалт хэрэглэнэ Үйлдлийн дарааллыг тэдгээрийн тэргүүлэх чиглэлээр тодорхойлно () F(x) ) * / + - div горим

14 слайд

Үр дүнгийн гаралт нь WRITE эсвэл WRITELN (бичих) -ээр гардаг. Үр дүнг жагсаасан дарааллаар нь харуулна. WRITE болон WRITELN командуудын гүйцэтгэлийн ялгаа нь WRITELN команд дээр гаралтын үйлдлийг гүйцэтгэсний дараа курсор шинэ мөрийн эхэнд шилжинэ. WRITE (гаралтын жагсаалт); WRITELN(гаралтын жагсаалт);

15 слайд

Даалгавар 1: AXby 6) TU154 2) R&B 3) 4Wheel 4) Вася 5) “PesBarbos” 7) 8) _ABBA 9) A+B

16 слайд

програмын даалгавар1; var a, b: бүхэл тоо; x, y: бодит; эхлэх a:= 5; 10:=x; y:= 7.8; b:= 2.5; x:= 2*(a + y); a:= b + x; Төгсгөл. хувьсагчийн нэр нь тэмдгийн зүүн талд байх ёстой:= бүхэл ба бутархай хэсгүүд таслалаар тусгаарлагдаж, төрөл таарахгүй. Төрөл таарахгүй байна ДААЛГАВАР 2: Програмын оруулгын алдааг ол.



Ачааж байна...
Топ