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

илэрхийлэл1болон дотор илэрхийлэл2- мөчлөгийн параметрийн анхны ба эцсийн утга.

Дуртай давталтын операторын үйлдэл (шууд тоолох):

2. Нөхцөлийг шалгана: хувьсагчийн утга илэрхийлэл2-ийн утгаас их байна уу?

3. хэрэв тийм бол мөчлөг дуусна; хэрэв үгүй ​​бол хэллэгийг гүйцэтгэж, хувьсагчийн утгыг нэгээр өсгөж, дараа нь 2-р цэгээс эхлэн үйлдлийг давтана.

Доод хэлбэрийн давталтын операторын үйлдэл:

1. хувьсагчдад илэрхийлэл1-ийн утгыг өгсөн;

2. Нөхцөлийг шалгана: хувьсагчийн утга илэрхийлэл2-ын утгаас бага байна уу?

3. хэрэв тийм бол мөчлөг дуусна; хэрэв үгүй ​​бол хэллэгийг гүйцэтгэж, хувьсагчийн утга нэгээр буурч, дараа нь 2-р алхамаас эхлэн үйлдэл давтагдана.

Дүрэм:

1. Циклийн параметрзөвхөн бүхэл тоон хувьсагч байж болно.

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

Жишээлбэл:

i:=1-ээс 10 хүртэл хийх

i:=i+1; (буруу)

3. Циклийн алхам нь зөвхөн +1 (хүртэлх хүртэл) эсвэл –1 (доошоо хүртэл) байж болно.

4. Ерөнхий хэлбэрийн дагуу давталтын бие нь нэг оператороос бүрдэх ёстой; хэрэв хэд хэдэн оператор байгаа бол бид нийлмэл оператор ашиглаж, оператор хаалт эхэлнэ..end;.

5. Гогцоо нэг удаа ч биелэгдэхгүй байж болно.

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

var i,n: бүхэл тоо; x,s: бодит;

write('Тооны тоог оруулна уу');

for i:=1 to n do

бичих(‘Дугаарыг оруулна уу’,i);

writeln(‘Дундаж =’,s/n);

Урьдчилсан нөхцөл бүхий давталтын мэдэгдэл (while)

Оператор while давталт нь урьд өмнө тодорхойгүй давталтын тоотой давталтын оператор юм.

Ерөнхий хэлбэр:

логик илэрхийлэл хийх үед мэдэгдэл хийх;

логик илэрхийлэл- энэ бол мөчлөгийг үргэлжлүүлэх нөхцөл юм.

оператор

Операторын үйлдэл:

1. логик илэрхийллийг тооцоолсон;

2. хэрэв энэ нь үнэн бол мэдэгдлийг гүйцэтгэх бөгөөд үүний дараа 1-р цэгээс эхлэн бүх үйлдлүүд давтагдана;

3. Логик илэрхийлэл худал бол гогцоо зогсоно.

Дүрэм:

1. Давталтын бие нь зөвхөн нэг оператороос бүрдэх ёстой, хэрэв хэд хэдэн оператор байвал бид нийлмэл операторыг ашигладаг.

2. Нөхцөлийг давталтын эхэнд шалгадаг тул давталт нэг ч удаа биелэгдэхгүй байж болно.

3. Гогцоо төгсгөлгүй байхын тулд логик илэрхийлэлд орсон утгууд давталтын биед өөрчлөгдөх ёстой.

Жишээлбэл:

байхад а<100 do

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

var x,xn,xk,y,h: бодит;

writeln("Эхлэх утга, төгсгөлийн x утгыг оруулаад x алхамыг өөрчлөх");

writeln("| x | y |");

байхад x<=xk do

writeln("|",x:7:2,"|",y:7:2,"|");

Дараах нөхцөлтэй давталтын оператор (давталт давт..хүртэл).

давт..хүртэлх давталтын операторнь урьд өмнө тодорхойгүй давталтын тоотой давталтын оператор юм.

Ерөнхий хэлбэр:

операторууд;

логик илэрхийлэл хүртэл;


Давтан..хүртэл давталтын операторын нөлөө нь:

Логик илэрхийллийн утга ХУДАЛ болох хүртэл давталтын бие дэх мэдэгдлүүд гүйцэтгэгдэнэ; Булийн илэрхийлэл ҮНЭН болмогц давталтын мэдэгдлийн гүйцэтгэл зогсдог.

Дүрэм:

1. Нөхцөл нь давталтын төгсгөлд байдаг тул давталтын бие нь үргэлж дор хаяж нэг удаа биелдэг.

2. Энэ давталтын операторт нийлмэл оператор хэрэггүй, давталтын бие дэх бүх операторууд давталт..түлхүүр үг хүртэл хязгаарлагддаг.

Дасгал хийх.Тооцоолох блок схем, программ бичнэ үү .

програмын rep_unt;

var n,k,s: бүхэл тоо;

бичих("k-г оруулна уу");

write("Нийлбэр нь ",s-тэй тэнцүү);

Өгөгдлийн багц

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

2 5 –15 10 20 – 6 элемент бүхий бүхэл төрлийн массив;

2.3 9 2.45 4.78 5.32 – 5 элементтэй бодит төрлийн массив;

Иванов Иван Иванович - 20 элементийн тэмдэгтийн массив;

Нэг хэмжээст массивыг тайлбарлах ерөнхий хэлбэр:

var массивын нэр: төрлийн массив[эхний индексийн утга.. эцсийн индексийн утга];

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

Жишээлбэл:

var вектор: бодит массив;

Олон хэмжээст массивуудын тайлбарын ерөнхий дүр зураг:

var массивын нэр: массив[эхлэлийн индексийн утга.. төгсгөлийн индексийн утга, ... , ...] -ийн<тип>;

Жишээлбэл:

varmatrix: бүхэл тооны массив; - 3´5 матрицын тайлбар.

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

Та массивын элементүүдэд түүний нэрийг зааж, индексийн утгуудыг дөрвөлжин хаалтанд (таслалаар тусгаарласан олон хэмжээст массиваар) жагсаах замаар хандаж болно.

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

Жишээлбэл:

a[i], b, v1, a

ӨГӨГДЛИЙН САН

Өгөгдлийн сангийн тухай ойлголт

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

Ийм төрлийн Мэдээллийн системкомпьютерийн санах ойд үүсгэхийг шаарддаг динамикаар шинэчлэгдсэнасуудалд байгаа загвар сэдвийн хэсэгнэг репозитор ашиглах - Өгөгдлийн сан (DB). Сэдвийн хэсэг - хяналт, эцэст нь автоматжуулалтыг зохион байгуулах зорилгоор судлах ёстой бодит ертөнцийн хэсэг. Тус бүр сэдвийн хэсэгдурын нийлбэр багтана объектууд. Эдгээрийн бүлгүүд объектууд, аль нэгээр нэгдсэн бүлэглэх шинж чанар, ихэвчлэн дууддаг аж ахуйн нэгжүүд . Жишээлбэл, хэрэв бид агуулах дахь бүтээгдэхүүний нягтлан бодох бүртгэлийн тухай ярьж байгаа бол бид аж ахуйн нэгжүүдийг сонгож болно " бүтээгдэхүүн", "худалдан авагч", "нэхэмжлэх". Объектууд нь тэдний тодорхой төлөөлөгч байх болно, жишээлбэл, элсэн чихэр, ХК "Гефест", нэхэмжлэх № 252.

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

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

Өгөгдлийн сангийн нэр томъёогоор шугамуудхүснэгтүүд гэж нэрлэдэг бичлэгүүд , мөн тэр багануудталбайнууд . Бүгд бичлэгүүдижил бүтэцтэй - тэдгээр нь ижил бүтэцтэй байдаг талбайнууд , өөр өөр утгыг хадгалдаг шинж чанаруудобьект. Тус бүр талбайн бичлэгүүднэг шинж чанарыг агуулдаг обьектмөн хатуу тодорхойлсон байдаг өгөгдлийн төрөл(жишээлбэл, текстийн мөр, тоо, огноо). Нэг хүснэгтийн бүх бүртгэл ижил байна талбайнууд, зөвхөн тэдгээр нь өөр өөр утгыг агуулдаг шинж чанарууд.

Мэдээлэл оруулахаас өмнө хүснэгтүүд, та тодорхойлох хэрэгтэй бүтэцэдгээр хүснэгтүүд. Энэ нь тайлбар гэсэн үг юм зүйлсТэгээд талбайн төрлүүд, түүнчлэн бусад олон шинж чанарууд (жишээлбэл, талбайн хэмжээ, оролтын өгөгдлийг шалгах шалгуур). Худалдан авагчийн хүснэгтийн бүтцийг тодорхойлох жишээг 8.1-р зурагт үзүүлэв.

"Худалдан авагч" хүснэгтийн бүтэц.

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

Ийм Өгөгдлийн сангэж нэрлэдэг харилцааны(аас харилцаа- холболт, харилцаа). Харилцааны мэдээллийн сан харилцан уялдаатай цогц юм хүснэгтүүд, тус бүр нь тухай мэдээллийг агуулдаг объектуудтодорхой төрөл.

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

Үүнд агуулагдсан мэдээллийн төрлөөс хамаарна хүснэгтүүдМэдээллийн сангийн хооронд гурван үндсэн төрлийн холболт байж болно. нэгээс олон, Нэгийг харьцах нэгийн, олон-олон.

Хандлага нэгээс олон нэг бичлэг орсон тохиолдолд хүснэгтүүдийн хооронд суулгана эцэг эх охин компаниширээ. Өгөгдсөн жишээн дээр "Худалдан авагч" болон "Бараа олгох" хүснэгтүүдийн хооронд ийм төрлийн харилцаа тогтоогдсон болно.

Хандлага Нэгийг харьцах нэгийн нэг орох үед тохиолддог эцэг эххүснэгт нь нэгээс илүүгүй бичлэгтэй тохирч байна охин компаниширээ.

Харилцааны тохиолдолд олон-олон нэг оролт эцэг эхХүснэгт нь ямар ч тооны бичлэгтэй тохирч болно охин компанихүснэгт ба эсрэгээр.

Харилцаатай холбоотой хүснэгтүүдзарчмын дагуу харилцах гэр(мастер) - захирагч(дэлгэрэнгүй). Бидний жишээн дээр "Хэрэглэгч" гэсэн хүснэгт байна гэр, мөн хүснэгт "Гарлагдсан бараа" - захирагч. Гэрхүснэгтийг ихэвчлэн нэрлэдэг эцэг эх, А захирагчохин компани. Үүнтэй адил ширээБайж магадгүй голнэгтэй холбоотой ширээмэдээллийн сан ба охин компанинөгөөтэй нь холбоотой.

Өгөгдлийн сангийн удирдлагын систем (DBMS). Ангилал

Өгөгдөлтэй ажиллахын тулд тэдгээрийг ашигладаг Өгөгдлийн сангийн удирдлагын систем (DBMS). DBMS – Эдгээр нь өгөгдлийг тодорхойлох (өгөгдлийн сангийн бүтэц - хүснэгт, харилцааг тодорхойлох), өгөгдлийг боловсруулах, удирдахад зориулагдсан програм хангамжийн хэрэгслүүд юм. DBMS-ийн жишээнүүд - FoxPro, Oracle, SQL-Server, Delphi, dBase, Clipper, MS Access гэх мэт.

DBMS-ийн үндсэн гурван төрөл байдаг: үйлдвэрлэлийн бүх нийтийн зориулалттай, үйлдвэрлэлийн тусгай зориулалтынТэгээд тодорхой хэрэглэгчдэд зориулан боловсруулсан (захиалгат).

Мэргэшсэн DBMSНягтлан бодох бүртгэл, агуулах, банк гэх мэт тодорхой зорилгоор мэдээллийн санг удирдах зорилгоор бүтээгдсэн.

UniversalDBMSнь тодорхой тодорхойлогдсон хэрэглээний хамрах хүрээгүй, тэдгээр нь "бүх тохиолдолд" зориулагдсан бөгөөд үүний үр дүнд нэлээд төвөгтэй бөгөөд хэрэглэгчээс тусгай мэдлэг шаарддаг.

Дургүй аж үйлдвэрийн DBMS захиалгатхэрэглэгчийн (тодорхой аж ахуйн нэгж) ажлын онцлогийг хамгийн их хэмжээгээр харгалзан үзэх, тэдгээрийн интерфейс нь хэрэглэгчдэд ойлгомжтой бөгөөд тэднээс тусгай мэдлэг шаарддаггүй; Нөгөө талаар, мэргэшсэнТэгээд бүх нийтийн үйлдвэрлэлийн DBMSхарьцангуй хямд, нэлээд найдвартай (дибаг хийсэн) бөгөөд шууд ажиллахад бэлэн байдаг захиалгат DBMSихээхэн зардал шаарддаг бөгөөд тэдгээрийг ажиллуулах, дибаг хийхэд бэлтгэх нь ихээхэн хугацаа шаарддаг (хэдэн сараас хэдэн жил хүртэл).

DBMS-ийн байршлаас хамааран байдаг орон нутгийнТэгээд тараасан(үйлчлүүлэгч-сервер) DBMS. Бүх хэсгүүд орон нутгийн DBMS өгөгдлийн сангийн хэрэглэгчийн компьютер дээр байрладаг. Хэрэв хэд хэдэн хэрэглэгчид нэг мэдээллийн санд компьютерийн сүлжээгээр нэгэн зэрэг нэвтэрч байгаа бол хэрэглэгчийн компьютер бүр өөрийн гэсэн дотоод DBMS хуулбартай байх ёстой. Үүний эсрэгээр програм хангамж, техник хангамжийн нэлээд хэсэг нь тархсан DBMS төвлөрсөн бөгөөд нэлээд хүчирхэг нэг компьютер дээр байрладаг (сервер),гэж нэрлэгддэг DBMS-ийн харьцангуй бага хэсгийг хэрэглэгчдийн компьютер тээж байдаг бол үйлчлүүлэгч. Орон нутгийн DBMS нь сүлжээнд ажиллах эсвэл ажиллахгүй байж болно тараасан DBMS нь ажиллах ёстой компьютерийн сүлжээ.

Байршил нь өөрөө гэдгийг анхаарна уу Өгөгдлийн сан DBMS-ийн онцлогт ямар нэгэн байдлаар нөлөөлөхгүй: in орон нутгийн DBMS өөрөө мэдээллийн санхэрэглэгчийн компьютер болон алсын сүлжээний компьютер (файлын сервер) дээр хоёуланд нь байрлаж болно.

Болзолгүй нэр төр үйлчлүүлэгч-серверийн системүүдтөвлөрсөн байх боломж юм хандалтын хяналтруу мэдээллийн сан. Ийм системд мэдээллийн сантом хэмжээтэй хамгаалагдсансанамсаргүй болон санаатай гажуудлаас харахад тэдгээрийг хэрэгжүүлэхэд хялбар байдаг бүрэн бүтэн байдалТэгээд өгөгдлийн тууштай байдал.

DBMS нь хамгийн чухал бүрэлдэхүүн хэсэг юм мэдээллийн систем. Үүсгэх, удирдах мэдээллийн систем DBMS нь шаардлагатай хэмжээгээрээ шаардлагатай байдаг орчуулагчхөгжлийн төлөө хөтөлбөрүүддээр алгоритмын хэл.

DBMS-ийн гүйцэтгэдэг үндсэн функцууд:

Өгөгдлийн менежмент дэх гадаад санах ой(диск дээр);

Өгөгдлийн менежмент дэх санамсаргүй хандалт санах ой;

- мод бэлтгэхөөрчлөлт ба мэдээллийн санг сэргээхбүтэлгүйтлийн дараа;

Хэлний дэмжлэг мэдээллийн сан(өгөгдлийн тодорхойлолтын хэл - SDL хэл, өгөгдөл боловсруулах хэл - DML хэл, эсвэл мэдээллийн сантай ажиллахад шаардлагатай бүх хэрэгслийг агуулсан нэгдсэн нэгдсэн хэл - бүтэцлэгдсэн асуулгын хэл SQL).

Сайн байна уу, эрхэм уншигчид! Энд бид мөчлөгийн судалгаанд ирлээ. Паскаль дахь мөчлөг. Энэ юу вэ? Үүнийг хэрхэн ашиглах вэ? Тэд юунд хэрэгтэй вэ? Эдгээр асуултуудад би өнөөдөр хариулах болно.
Хэрэв та уншсан бол шугаман, салаалсан, мөчлөгт гурван төрлийн алгоритм байдгийг та мэднэ. Паскаль хэл дээр алгоритмыг хэрхэн хэрэгжүүлэхийг та бид аль хэдийн мэддэг болсон. Сүүлчийн төрлийн алгоритмуудыг судалж эхэлцгээе.
Ихэнх програмчлалын хэлнүүдийн нэгэн адил Паскаль хэлэнд гурван төрлийн давталт бүтэц байдаг.

Аливаа гогцоо нь их бие ба толгой хэсгээс бүрдэнэ. Давталтын бие нь давтагдсан хэллэгүүдийн багц бөгөөд нөхцөл нь давталтын үр дүнгээс хамааран логик илэрхийлэл юм.

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

Даалгавар 1. Гараас оруулсан 1-ээс бүх тоог хэвлэ.

while, эсвэл урьдчилсан нөхцөл бүхий давталт

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

Форматтай байхад:

байхад < условие> хийх<оператор 1>; (Баяртай...бол....)

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

Асуудлын шийдэл.

Програмын жишээ_while; var i, N: бүхэл тоо; (хувьсагчийг зарлах) эхлэл i:= 1; ( i-г 1 болгож тохируулах) readln(N); (Сүүлийн тоог уншина уу) байхад i<= N do {Как только i станет больше N, цикл прекратится (можно было бы написать просто <, но пришлось бы добавлять 1 к N) } begin {Открываем операторные скобки} write(i, " "); {Выводим i} Inc(i); {увеличиваем i на один.} end; { закрываем скобки } end.

Давтах, эсвэл дараах нөхцөл бүхий гогцоо

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

Давталт нь дараах хэлбэртэй байна.

давтана(давтах ...)
<оператор 1>;
< оператор 2>;

хүртэл(өмнө…) <условие>

ЭхлэхТэгээд Төгсгөлшаардлагагүй.

Асуудлын шийдэл.

Програмын жишээ_давталт; var i, N: integer;( хувьсагчийг зарлах ) begin i:= 1; ( i-г 1 болгож тохируулах) readln(N); ( Сүүлчийн тоог уншина уу ) давтана (давталтын дараа эхлэх ба дуусгах шаардлагагүй ) бичих(i, " "); (Гаралт i) Inc(i); (i-г нэгээр нэмэгдүүлнэ.) i = N + 1 хүртэл; (Жишээ нь, i = 11 ба N = 10. Гогцоо зогсох тул нөхцөл үнэн болно.) төгсгөл.

For, эсвэл параметртэй давталт

Учир ньнь биеийг тодорхой тооны удаа гүйцэтгэх давталт юм.

Энэ мөчлөгийг бүртгэх хоёр хэлбэр байдаг:

Эхний хэлбэр

төлөө<счетчик1> := <значение1>руу<конечное_значение>хийх<оператор1>;

<счетчик1>1-ээр нэмэгдэнэ.

<значение1>нь тоолуурын анхны утга юм. Энэ нь хувьсагч эсвэл тоо байж болно.
<конечное_значение>: үнэ цэнээ олсон даруйдаа<счетчик1>илүү их байх болно<конечное_значение>

Хэрэв та давталтын үндсэн хэсэгт хэд хэдэн хэллэг бичих шаардлагатай бол үүнийг ашиглана уу ЭхлэхТэгээд Төгсгөл.

БА<счетчик1>, Мөн<конечное_значение>, Мөн<значение1>- хувьсагч бүхэлтөрөл.

Ихэнх тохиолдолд i хувьсагчийг тоолуур болгон ашигладаг.

Хоёр дахь хэлбэр

төлөө<счетчик2> := <значение2>доошоо<конечное_значение>хийх<оператор1>;

Давталт бүрийн дараа утга<счетчик2>1-ээр буурах болно.

<значение2>нь тоолуурын анхны утга юм.
<конечное_значение>: үнэ цэнээ олсон даруйдаа<счетчик2>жижиг болно<конечное_значение>, гогцоо ажиллахаа болино.

Хоёр чухал тэмдэглэл:

  1. Тоолуурын утга нь интервалд [утга; эцсийн_утга].
  2. Биеийн доторх тоолуурын утгыг өөрчлөх энэ нь хориотой! Энэ бол хөрвүүлэгчийн гаралт юм:

Асуудлын шийдэл:

Програмын жишээ_for; var i, N: бүхэл тоо; уншиж эхлэх (N); (бид 10-ыг оруулсан гэж үзвэл) for i:= 1 to N do write(i, " "); (давталтын тоо - 10 - 1 + 1 = 10) төгсгөл.

Зөвшөөрч байна, энэ код нь өмнөх бүх кодуудаас илүү энгийн бөгөөд товч юм. Мөн дугуй төлөөэнэ нь маш энгийн гогцоо биш; энэ нь логик нөхцөлгүй; Ийм учраас параметр бүхий гогцоог програмчлалд синтакс сахар гэж нэрлэдэг. Синтаксик сахар гэдэг нь програмчлалын хэлний синтакс дахь нэмэлтүүд бөгөөд шинэ боломжуудыг нэмдэггүй, гэхдээ хэлийг хүмүүст илүү тохиромжтой болгодог.

Хоёулаа асуудлаа шийдье.

For1. Өгөгдсөн бүхэл тоо K ба N (N > 0). K N тоог хэвлэ.

Бид 1-ээс шаардлагатай тоо хүртэлх энгийн мөчлөгийг зохион байгуулдаг.

1-д зориулсан хөтөлбөр; var K, N, i: бүхэл тоо; уншиж эхлэх (K, N); for i:= 1 to N do write(K, " "); (Бид K зайгаар тусгаарлаж бичнэ) төгсгөл.

2-ын хувьд. < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.

Түүнээс хойш А< B, то цикл должен будет выводить все числа от А до B. Чтобы сосчитать количество чисел, используем формулу: <конечное_значение> — <начальное_значение> + 1.

2-т зориулсан хөтөлбөр; var A, B, i, тоолох: бүхэл тоо; уншиж эхлэх (A, B); for i:= A to B do write(i, " "); (бид тоонуудыг жижигээс том хүртэл бичнэ) тоолно:= B - A + 1; (тооны тоог тоолох) writeln; write("Тооны тоо - ", тоолох); Төгсгөл.

9-ийн хувьд. Өгөгдсөн хоёр бүхэл тоо A ба B (A< B). Найти сумму квадратов всех целых чисел от A до B включительно.

Бид өмнөх бодлоготой ижил мөчлөгийг зохион байгуулдаг боловч нэгэн зэрэг бүх тооны квадратуудыг нэгтгэдэг. Квадратыг тооцоолохын тулд функцийг ашиглана уу.

9-д зориулсан хөтөлбөр; var A, B, i, S: бүхэл тоо; уншиж эхлэх (A, B); S:= 0; (PascalABC үүнийг автоматаар хийдэг, гэхдээ танд өөр хөрвүүлэгчтэй бол хувьсагчдыг гараар дахин тохируулахыг зөвлөж байна) for i:= A to B do S:= S + Sqr(i); (бүх квадратуудыг нэмэх) writeln; write("Квадратуудын нийлбэр - ", S); Төгсгөл.

13 градусын хувьд. Бүхэл тоо N (> 0) өгөгдсөн. 1.1 – 1.2 + 1.3 – … (N гишүүн, тэмдэг ээлжлэн) илэрхийллийн утгыг ол. Нөхцөлт операторыг бүү ашигла.

Тэмдгийг өөрчлөхийн тулд давталтын давталт бүрт тусгай хувьсагчийн утгыг эсрэгээр нь өөрчилдөг.

13-т зориулсан хөтөлбөр; var N, A, i: бүхэл тоо; S: бодит; эхлэх бичих("N = "); readln(N); S:= 1.1; A:= 1; (Эхлээд эерэг) for i:= 2 to N do (бид давталтын эхний давталтыг аль хэдийн дуусгасан тул 2-оос тоолж эхэлнэ) start A:= -A; (Одоо сөрөг) S:= S + A * (1 + i / 10); (Нэмэх) төгсгөл; Бичсэн(S:5:1); (Бутархай хэсэгт нэг байр өгье) төгсгөл.

1° байхад. Өгөгдсөн эерэг тоо A ба B (A > B). А урттай сегмент нь B урттай (давхдалгүй) хамгийн их боломжтой сегментийг агуулна. Үржүүлэх, хуваах үйлдлүүдийг ашиглахгүйгээр А сегментийн эзгүй хэсгийн уртыг ол.

Бид A-аас B-г хасах бүрт A - B >= 0 хүртэл.

Program while1; var A, B: бүхэл тоо; readln эхлэх (A, B); while (A - B) >= 0 do A:= A - B; (Ялгаа эерэг байвал хасна. А ба В-ийн үржвэртэй хувилбарыг өгөх шаардлагатай тул >=) бичнэ (A); Төгсгөл.

4° байхад.Бүхэл тоо N (> 0) өгөгдсөн. Хэрэв энэ нь 3-ын хүчин чадалтай бол Үнэн биш бол Худал гэж хэвлэ.

Бид дараах байдлаар ажиллана: N нь гуравт хуваагдаж байхад N-г бүхэлд хуваа. Дараа нь хэрэв N = 1 бол тоо нь гурвын зэрэг болно; хэрэв Н<>1, тэгвэл тоо нь гурвын хүч биш юм. Энэ асуудлыг шийдэхийн тулд энэ нь юу болох, хэрхэн ажилладаг талаар мэдэх хэрэгтэй.

Program while4; var N: бүхэл тоо; эхлэх readln(N); харин N mod 3 = 0 do N:= N div 3; (Гурав хуваасны үлдэгдэл нь тэг байвал N-г бүхэлд хуваа) writeln(N = 1); (логийн илэрхийлэл) төгсгөл.

Энэ бол өнөөдрийнх! Манай вэбсайтад байнга зочилж, сэтгэгдлийн өмнө байрлах товчлуурууд дээр дарахаа бүү мартаарай.

Параметр бүхий гогцоо нь дараах форматтай байна.

for (эхлүүлэх; илэрхийлэл; өөрчлөлт) мэдэгдэл;

Эхлүүлэхгогцоонд ашигласан хэмжигдэхүүнүүдэд анхны утгыг зарлаж, онооход ашигладаг. Энэ хэсэгт та таслалаар тусгаарласан хэд хэдэн мэдэгдлийг бичиж болно ("дараалсан гүйцэтгэл" үйлдэл), жишээлбэл:

for (int i = 0, j = 2; ...

хувьд (k = 1, m = 0; ...

Давталтын эхлүүлэх хэсэгт зарласан хувьсагчдын хамрах хүрээ нь 1-р давталт юм. Давталтын гүйцэтгэлийн эхэнд нэг удаа эхлүүлнэ.

Илэрхийлэлдавталтыг гүйцэтгэх нөхцөлийг тодорхойлно: хэрэв түүний үр дүн bool төрөлд cast , үнэн бол давталтыг гүйцэтгэнэ. Параметр бүхий гогцоо нь урьдчилсан нөхцөл бүхий гогцоо хэлбэрээр хэрэгждэг.

Өөрчлөлтнь давталтын давталт бүрийн дараа хийгддэг бөгөөд ихэвчлэн давталтын параметрүүдийг өөрчлөхөд ашиглагддаг. Өөрчлөлтийн хэсэгт та таслалаар тусгаарлагдсан хэд хэдэн мэдэгдлийг бичиж болно. Энгийн эсвэл нийлмэл операторгогцооны биеийг илэрхийлнэ. For мэдэгдлийн аль ч хэсгийг орхиж болно (гэхдээ цэг таслалыг байранд нь үлдээх ёстой!).

Жишээ (1-ээс 100 хүртэлх тооны нийлбэрийг тооцоолох оператор):

for (Int i = 1, s = 0; 1<=100; i++) s += i;

Жишээ (програм нь функцийн утгуудын хүснэгтийг хэвлэдэг y=x 2 +1оруулсан мужид):

#Оруулах

хөвөх Xn, Xk, Dx, X;

printf("Аргументын муж болон өсөлтийг оруулна уу: ");

scanf (“%f%f%f”, &Xn, &Xk, &Dx);

printf("| X | Y |\n");

төлөө (X = Xn; X<=Xk; X+=Dx)

printf (" | %5.2f | %5.2f |\n”, X*X + 1);

Жишээ (програм нь эерэг бүхэл тооны бүх хуваагчийг олдог):

#Оруулах Int main())(

Int тоо, хагас, div;

cout<< “\n Введите число: "; cin >>тоо;

хувьд (хагас = тоо / 2, div = 2; div<= half; div++)

хэрэв (!(num %div))cout<< div <<"\n";

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

Дурын while давталтыг дараах схемийг ашиглан for loop болон эсрэгээр нь эквивалент болгон хувиргаж болно.

(b1: b2; bZ) операторын хувьд b1;

байхад (b2)( оператор; bЗ;)

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

q давталтын үндсэн хэсэгт хуваарилах операторуудын баруун талд гарч буй бүх хувьсагчдад анхны утгыг өгсөн эсэхийг шалгах (мөн бусад операторуудыг гүйцэтгэх боломжтой эсэхийг);


q давталтаас гарах нөхцөл байдалд орсон ядаж нэг хувьсагч давталтад өөрчлөгдөж байгаа эсэхийг шалгах;

q тодорхой тооны давталт хүрэх үед гогцооноос яаралтай гарах гарцыг хангах;

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

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

Do while хэллэг нь ихэвчлэн давталтыг дор хаяж нэг удаа гүйцэтгэх шаардлагатай үед ашиглагддаг (жишээлбэл, хэрэв давталтад өгөгдөл оруулсан бол).

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

Бусад ихэнх тохиолдолд (тоологчтой гогцоонуудыг зохион байгуулахад) for оператор нь илүү тохиромжтой байдаг.

Ерөнхийдөө өнөөдөр бид Паскаль дахь мөчлөг бүрийн талаар илүү дэлгэрэнгүй мэдээлэл авч, тэдгээрийг хэрхэн тодорхойлсон болохыг харах болно. Бид үүнийг цэгцлэх болно Урьдчилсан нөхцөл бүхий while давталт, параметртэй for давталтТэгээд давтах - дараах нөхцөлтэй давталт хүртэл.

1. Pascal - FOR хэлний параметртэй давталт

FOR давталт нь програмыг ажиллуулахын өмнө тодорхой нөхцөлийг тавьдаг бөгөөд бид програмыг 5 (эсвэл n) удаа давталт хийх шаардлагатай гэж бодъё. FOR гогцоо нь нэг онцлог шинж чанартай байдаг - тоолуур нь ихэвчлэн i эсвэл j үсгээр тэмдэглэгдсэн байдаг.

Паскаль дахь параметр бүхий давталтын харагдах байдал:

for i:= 1 to n do // i-г эхлээд нэг, дараа нь хоёр, гурав, ..., n-д онооно.

1-р дамжуулалтын дараа бид i хувьсагчдад 1-ийг оноож, хоёрдугаарт 2-ыг оноож, n-д хүрэх хүртэл үргэлжилнэ. to - this is up to.. өсөх дарааллаар, бас байдаг downto - хүртэл.. буурах дарааллаар.

Параметр бүхий блок циклийн диаграмм:

2. Паскаль хэл дээрх урьдчилсан нөхцөлтэй давталт - WHILE

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

Урьдчилсан нөхцөл бүхий давталтын бүтэц:

WHILE DO эхлэл төгсгөл;

Цикл операторын гүйцэтгэлийн эхэнд үнэнийг шалгадаг логик илэрхийлэл;

Гүйцэтгэх боломжтой аливаа хэллэг.

Гүйцэтгэх дараалал:

Нөхцөл үнэн байхад давталтын бие биелнэ. Нөхцөл худал болмогц давталтын гүйцэтгэл зогсдог.

Блок - урьдчилсан нөхцөл бүхий мөчлөгийн диаграмм:


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

Жишээ:

Даалгавар: 1+1.5+2+2.5+3+3.5+ .. + 30 цувааны нийлбэрийг тооцоол.

хөтөлбөрийн жишээ-while;

нийлбэр: бодит; n: бодит; BEGIN нийлбэр:=0; n:=1; байхад n

3. Дараах нөхцөлтэй давталт - Repeat - хүртэл.

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

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

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

Дараах нөхцөл бүхий блок циклийн диаграм:

Бичлэгийн формат, мөчлөгийн бүтэц:
ХҮРТЭЛ ДАВТАХ;

Жишээ:

Хөтөлбөрийн тест2; Var b: Бодит; Эхлэх b:=100; b:=b/2; b хүртэл

Дүгнэлт:

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

2. Урьдчилсан нөхцлийн давталт нь гүйцэтгэх нөхцөл худал болох хүртэл ажиллана, хэрэв нөхцөл үнэн бол үргэлжилнэ.

3. Дараах нөхцөл бүхий давталт нь нөхцөл үнэн болох хүртэл биелнэ, хэрэв нөхцөл худал бол давталт үргэлжилнэ.



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