Жил бүр програмчлалын сонирхол нэмэгдэж байна. Хэрэв хөтөлбөр бичих чиглэлээр мэргэшсэн байгууллагуудад C ++ гэх мэт програмчлалын хэл дээр тулгуурладаг бол сургууль, техникийн сургуульд оюутнууд "Паскаль" хэлтэй танилцдаг. Энэ хэлний үндсэн дээр тэд Delphi програм хангамжийг ашиглан програмчлалыг ойлгож эхэлдэг. Эдгээр програмчлалын хэлүүд нь тэдний төсөөллийг илэрхийлэх асар том орон зайг бүрдүүлдэг гэдгийг нэн даруй тэмдэглэх нь зүйтэй. Хэрэв Паскал хэлний тусламжтайгаар та програмчлалын үндсэн ойлголтуудтай танилцаж чадвал Delphi дээр та аль хэдийн бүрэн хэмжээний програм бичиж болно. Програм бичихэд заримдаа "Паскаль" дээр массивыг шийдвэрлэх нь нэлээд чухал байр суурь эзэлдэг.
Олон тооны маш өөр хувьсагч байгаа байдал
Програмчлалын хэлэнд маш олон янзын хувьсагч байдаг бөгөөд тэдгээр нь зөвхөн нэг утгатай байдгаараа онцлог юм. Тэд тодорхой төрлийн нэг утгыг хадгалах боломжтой. Мөр хувьсагч нь үл хамаарах зүйл юм. Тэд байнатэмдэгтийн төрөл нь онцлогтой тэдгээр өгөгдлийн цуглуулга юм. Гэхдээ ийм хувьсагчдыг ихэвчлэн тусдаа утгын байрлалаас авч үздэг.
Компьютерийн тусламжтайгаар та их хэмжээний өгөгдөлтэй холбоотой тодорхой ажлыг гүйцэтгэх хугацааг эрс багасгадаг нь нууц биш. Гэхдээ зөвхөн хүмүүст мэдэгдэж буй төрлүүдтэй хувьсагчдыг ашиглахдаа ажлын үр дүнг санах ойд хадгалах, мөн олон тооны мөр агуулсан өгөгдлийг хэрхэн боловсруулах боломжтой вэ? Ийм ажил үйл ажиллагааны аль ч салбарт нэлээд түгээмэл байдаг.
Мэдээж та зорилгодоо хүрэхийн тулд хэдийд ч олон хувьсагчийг оруулж болно. Та мөн тэдний хувьд зарим утгыг тодорхойлж болно. Гэхдээ програмын код үүнээс л нэмэгдэх болно. Олон тооны мөртэй кодыг уншихад хэцүү байдаг. Ялангуяа алдаа олох шаардлагатай үед.
Үүний дагуу програмистууд энэ асуултын талаар бодож байсан. Тийм ч учраас өнөөг хүртэл хөгжүүлсэн хэлүүд нь асар их хэмжээний өгөгдлийг өөртөө хадгалах боломжийг олгодог ийм хувьсагчтай байдаг. "Паскаль" дахь массив нь програмчлалын арга барилд ихээхэн өөрчлөгдсөн. Тиймээс үүнийг програмчлалын хэлэнд чухал хувьсагч гэж үздэг.
Массив ашиглах нь кодын хэмжээг эрс багасгаж чадна
Энэ нэр томъёоны дор нэг төрлөөр тодорхойлогддог эрэмбэлэгдсэн өгөгдлийн дараалал нуугдаж байна. Нэмж дурдахад энэ бүх өгөгдөл ижил нэртэй болно. Энэ нь бас байх ёстойБодит ертөнцийн олон объектууд энэ тодорхойлолтод нийцэж чадна гэдгийг тэмдэглэх нь зүйтэй: толь бичиг, хүүхэлдэйн кино гэх мэт. Гэсэн хэдий ч "Паскаль" дээр массивыг үзүүлэх хамгийн хялбар арга бол хүснэгтийн хэлбэр юм. Тусдаа нүд бүр нэг хувьсагчтай. Координатыг ашиглан та хувьсагчийн ерөнхий хүснэгтэд эзлэх байр суурийг тодорхойлж болно.
Нэг хэмжээст массив нь юу гэсэн үг вэ?
Хамгийн энгийн хүснэгт бол шугаман хүснэгт юм. Энэ массив дээр параметрийн байршлыг тодорхойлохын тулд зөвхөн нэг тоог зааж өгөхөд хангалттай. Тэдгээр дээр үндэслэн илүү төвөгтэй массивууд үүсдэг.
"Паскаль" хэл дээрх нэг хэмжээст массивыг тайлбарлахын тулд дараах кодыг оруулна уу: Array of.
гэж бичнэ үү.
Тоонууд нь дарааллын төрөлтэй байж болох хувьсагчууд юм. Мужийг зааж өгөхдөө эхний тоо нь эцсийнхээс өндөр байж болохгүй гэдгийг ойлгох нь зүйтэй. Массивын элементүүдийн төрөл нь юу ч байж болно - стандарт эсвэл өмнө нь тайлбарласан. Сонголт нь тодорхой асуудлыг шийдвэрлэх хэрэгцээ шаардлагаас хамаарна.
Шугаман массивыг хэрхэн дүрсэлсэн бэ?
"Паскаль" хэл дээр нэг хэмжээст массивыг шууд дүрслэх боломжтой. Үүнийг тусгай хэсэгт хийх ёстой бөгөөд энэ нь тодорхой журамд зайлшгүй шаардлагатай. Та дараах кодыг оруулах шаардлагатай: Var: Array Of.
Паскаль хэл дээр массивыг хэрхэн дүрсэлж болохыг ойлгохын тулд та дараах кодыг оруулна уу:
- Var
- S, VV: Массив[5..50] Бодит;
- K: Массив[‘C’.. ‘R’] Бүхэл тоо;
- Z: Массив [-10..10] Word;
- E: Массив [3..30] Бодит.
Энэ жишээнд S, VV болон T хувьсагч нь бодит тоонуудын массив юм. K хувьсагч нь тэмдэгтийн төрөл болон тэдгээр элементүүдийг нуудаг. Аль нь бүхэл тоо юм. Z массив нь Word төрлийн тоонуудыг хадгалдаг.
Массивтай ажиллахад ашиглаж болох бүх үйлдлүүдийн дотроос даалгаварыг ялгаж болно. Хүснэгтийг бүхэлд нь үүнд хамруулж болно. Жишээлбэл, S:=VV. Гэхдээ хуваарилалтын үйлдлүүд нь зөвхөн "Паскаль"-ын тодорхой төрлийн массивт хамрагдах боломжтой гэдгийг ойлгох хэрэгтэй.
Бүх массив дээр нэг дор гүйцэтгэх үйлдлүүд байхгүй. Гэсэн хэдий ч та тодорхой төрлийн бусад анхны тоонуудтай ижил аргаар элементүүдтэй ажиллах боломжтой. Хувь хүний параметрт хандахын тулд та массивын нэрийг зааж өгөх ёстой. Дөрвөлжин хаалт ашиглан та хүссэн элементийн шинж чанар болох индексийг тодорхойлох ёстой. Жишээ нь: K[12].
Масив болон бусад хувьсагчийн гол ялгаа
Хүснэгтийн бүрэлдэхүүн хэсгүүд болон энгийн хувьсагчдын хоорондох үндсэн ялгаа нь зөвхөн индексийн утгыг хаалтанд оруулахаас гадна хүссэн утгад хүргэх ийм илэрхийлэлийг оруулах боломжтой юм. Шууд бус хаяглалтын жишээ нь: V[K] байж болно. Энэ тохиолдолд K хувьсагч тодорхой утгыг авна. ЭндээсҮүний дагуу та массив бөглөх, боловсруулах, хэвлэх үед гогцоо ашиглаж болно.
Зохион байгуулалтын ийм хэлбэр нь шинж чанараараа Char төрлийн массивтай ойрхон байгаа мөрт хувьсагчийн хувьд тохиолдож болно. Гэхдээ бас ялгаа бий. Тэдгээр нь дараах байдалтай байна:
- Мөрт хувьсагчдыг гараас байнга оруулж, дэлгэцэн дээр хэвлэх боломжтой.
- Мөрт хувьсагчийн урт нь хязгаарлагдмал. Та дээд тал нь 255 тэмдэгт оруулах боломжтой. Массивын чухал хэмжээ нь 64 кб.
Дэлгэц дээр массив өгөгдлийг харуулах ямар аргыг ашиглаж болох вэ?
Та массивын агуулгыг харуулах аргад анхаарлаа хандуулах хэрэгтэй. Хэд хэдэн байна.
- Бичсэн (A[1], A[2], A[3]). Ийм жишээ нь анхдагч боловч хүснэгтэд агуулагдах элемент бүрд хэрхэн шууд хандаж болохыг харуулах боломжтой. Гэсэн хэдий ч Паскал массив энгийн хувьсагчдаас давуу талтай байдаг нь энд харагдахгүй байна.
-
Program A1;
Var B: Массив [1..10] Бүхэл тоо;
K: Бүхэл тоо;
Эхлэх
K For:=1-ээс 10 Do {Энэ тушаал нь }
Readln(A[K]) параметртэй давтагдана; {A[I]-г гар ашиглан оруулж байна }
K For:=10 Down to 1 Do {Хүснэгтийг урвуу дарааллаар хэвлэж байна}
Бичих(A[K], 'VVV') Төгсгөл.
"Паскаль" дахь массивын програмын ижил төстэй код нь гар ашиглан 10 тоог хэрхэн оруулж, тэдгээрийг хэвлэж, утгыг урвуу дарааллаар нь өөрчлөх боломжтойг харуулж байна. Хэрэв ижил программыг дахин бичсэн болмассивын оронд олон тооны хувьсагчийг ашигласнаар код мэдэгдэхүйц нэмэгдэх болно. Мөн энэ нь програмыг унших үйл явцыг ихээхэн хүндрүүлдэг.
Массив ашиглах замаар боломжийг нэмэгдүүлэх
Хүснэгтүүдийг элементийн индексийн квадраттай тэнцүү утгуудаар дүүргэх боломжтой. Мөн "Паскаль" хэл дээр ийм массив мөр үүсгэх боломжтой бөгөөд энэ нь бүх тоог автоматаар оруулах боломжийг олгоно. Таны харж байгаагаар массив ашиглах нь Паскаль програмчлалын хэлний чадварыг ихээхэн сайжруулдаг.
Шугаман массивыг боловсруулах нь янз бүрийн даалгаварт маш түгээмэл байдаг. Тиймээс тэднийг институт, сургуульд сурдаг нь сонин зүйл байхгүй. Нэмж дурдахад массивын зөөвөрлөх боломжууд нэлээд өргөн байдаг.
Хоёр хэмжээст массивуудын доор юу нуугдаж байна вэ?
Та нэгэн зэрэг хэд хэдэн мөрөөс бүрдэх хүснэгтийг төсөөлж болно. Тусдаа мөр бүр хэд хэдэн нүдтэй. Ийм нөхцөлд нүднүүдийн байрлалыг үнэн зөв тодорхойлохын тулд шугаман массивын нэгэн адил нэг индекс биш, харин мөр, баганын онцлог шинж чанартай хоёр тоог тэмдэглэх шаардлагатай. "Паскаль" дахь хоёр хэмжээст массивууд ижил төстэй дүрслэлээр тодорхойлогддог.
Ийм төрлийн хүснэгтийг хэрхэн дүрслэх вэ?
Ийм хүснэгтийн утгыг хадгалахын тулд Паскаль хэлэнд байдаг өгөгдлийн бүтэц ньхоёр хэмжээст массивын нэр. Ийм массивыг хоёр аргыг ашиглан шууд тайлбарлах боломжтой.
- Var B: Массив[1..15] Массив [1..30] Бүхэл тоо;
- Var B: Массив [1..15, 1..30] Бүхэл тоо.
Эдгээр бүх тохиолдолд 15 мөр, 30 багана бүхий хоёр хэмжээст массивыг дүрсэлсэн болно. Дээр өгөгдсөн эдгээр тодорхойлолтууд нь туйлын тэнцүү юм. Аль нэг элементтэй ажиллаж эхлэхийн тулд хоёр индексийг хуваарилах шаардлагатай. Жишээлбэл, A[6][5] эсвэл A[6, 5].
Дэлгэцэнд гарах гаралт нь нэг хэмжээст массивтай бараг ижил байх болно. Та зөвхөн хоёр индексийг зааж өгөх хэрэгтэй. Бусад бүх талаараа ийм ялгаа байхгүй тул энэ талаар удаан ярих шаардлагагүй.
Ангилах эхний арга
Заримдаа өгөгдлийг ангилах шаардлагатай болдог. Үүний тулд хэл нь холбогдох тушаалуудтай байдаг. Паскал хэл дээр массивыг эрэмбэлэх хоёр алгоритм байдаг. Шууд сонголтын аргын утга нь гогцоог үүрлэснээр хүснэгтийн хувьсагч бүрийг бусад утгуудтай харьцуулах болно гэсэн үг юм. Өөрөөр хэлбэл, 15 тооны массив байвал эхний 1-ийг бусад тоотой харьцуулна. Энэ нь жишээлбэл эхний тооноос их элемент олдох хүртэл явагдана. Дараа нь харьцуулалт яг энэ тоогоор явагдана. Хамгийн том нь олдох хүртэл энэ нь давтагдана.санал болгож буй бүх элемент. Энэ арга нь хэл дээр дөнгөж ажиллаж эхэлсэн програмистуудад маш энгийн.
Хоёр дахь массив эрэмбэлэх арга
Хоёр дахь арга бол хөөс. Энэ аргын мөн чанар нь хөрш зэргэлдээх элементүүдийг хос хосоор нь харьцуулах явдал юм. Жишээлбэл, 1 ба 2, 2 ба 3, 3 ба 4 гэх мэт. Олдсон утга нь эрэмбэлэх нөхцөлтэй бүрэн нийцэж байгаа тохиолдолд бүх массивын төгсгөлд шилжих болно, өөрөөр хэлбэл энэ нь цонхоор гарч ирнэ. "хөөс". Энэ алгоритм нь санахад хамгийн хэцүү байдаг. Гэсэн хэдий ч та үүнийг нунтаглах шаардлагагүй. Хамгийн гол нь кодын бүтцийг бүхэлд нь ойлгох явдал юм. Зөвхөн энэ тохиолдолд л хүн програмчлалын өндөр оргилд хүрсэн гэж хэлж болно.
Дүгнэлт
Та массив гэж юу болох, тодорхой утгыг олох эсвэл тодорхой зорилгод хүрэхийн тулд хэрхэн ангилахаа ойлгосон гэдэгт найдаж байна. Хэрэв та массивууд чухал байр суурь эзэлдэг тодорхой асуудлыг шийдвэрлэхийн тулд "Паскаль"-ыг сонгосон бол тэдний судалгаанд сайтар хандах хэрэгтэй болно. Үүнд бүхэл бүтэн кодыг хялбаршуулахын тулд тодорхой нөхцөл байдалд хэрэглэгддэг хангалттай олон тооны хувьсагчид хэл дээр байгаа зэрэг хүчин зүйл нөлөөлдөг. Массивууд нь үндсэн хэмжигдэхүүнд зүй ёсоор тооцогддог бөгөөд тэдгээрийн судалгааг зайлшгүй хийх ёстой.