|
Foydalanilgan adabiyotlar
|
bet | 10/19 | Sana | 17.02.2024 | Hajmi | 88,92 Kb. | | #158115 |
Bog'liq C da massivlar bilan ishlash-fayllar.orgFoydalanilgan adabiyotlar.
CIO Wiki (2019). Modulli dasturlash. Olingan: cio-wiki.org.
IT ta'riflari (2020). Modulli dasturlash. Olingan: defit.org.
New Mexico Tech (2020). Funksiyalar bilan modulli dasturlash. Olingan: ee.nmt.edu.
Kristian Mayoli (2020). Modulli kod yozishning 3 ta ijodiy texnikasi. Tech Beacon. Olingan: techbeacon.com.
Geeks uchun Geeks (2020). Dasturlashda modulli yondashuv. Olingan: geeksforgeeks.org.
O'qish (2020). Modulli dasturlash: Java-da ta'rif va dastur. Olingan: study.com
Reja. 1.Sintaksis haqida malumot. 2.Dastur sintaksisini o’rganish.
Eng oddiy dastur
C++ da ikkita raqam qo'shadigan eng oddiy dastur quyidagicha ko'rinadi:
#include
using namespace std;
int main() {
int a, b;
cin >> a >> b;
int s = a + b;
cout << s << endl;
return 0;
}
Keling, uni satr satrga ajratamiz.
#include
(Bu erda burchak qavslari belgilardan kichik va kattaroqdir.)
a bilan boshlanadigan qatorlar #C++ da kompilyator direktivalari (yoki aniqrog'i, preprotsessor direktivalari ) deb ataladi . Deyarli barcha boshqa til konstruktsiyalaridan farqli o'laroq, ular alohida satrda yozilishi kerak.
Direktiv , qo'pol qilib aytganda, klaviatura kiritish va ekran chiqishi bilan ishlash qobiliyatini bog'laydi. Birinchi taxmin sifatida, C++ tilidagi direktiva python va paskal tillarida o'xshash - bu sizga dasturda ba'zi qo'shimcha funktsiyalar va konstruktsiyalardan foydalanish imkoniyatini beradi.#include #includeimportuses
Shu bilan birga, C ++ da, python va paskaldan farqli o'laroq, sukut bo'yicha dastur uchun juda kam narsa mavjud. Deyarli barcha funktsiyalar, ma'lumotlar turlari va boshqalar, juda oddiy to'plamdan tashqari, o'zlarining #include. Xususan, hatto importpython-da va paskalda ham mavjud bo'lmagan klaviatura kiritish usesuchun alohida #include.
Undan keyin keladigan narsa sarlavha fayli#include deb ataladi . Python va paskalda shunga o'xshash vaziyatda qo'llaniladigan "modul" atamasini ishlatish shart emas; C++ da modullar butunlay boshqacha (va aslida faqat C++ 20 dan boshlab mavjud).
Aslida, direktiva #includenafaqat sarlavhali fayllarni, balki boshqa fayldan kod kiritish kerak bo'lgan boshqa joylarda ham ishlatilishi mumkin. Ammo buni
qilish kerak emas, faqat juda kamdan-kam hollarda, yaqin kelajakda kerak bo'lishi dargumon.
Shuni ham ta'kidlaymanki, direktivaning mavjudligining #includeo'zi C++ tili (aniqrog'i, direktiv meros bo'lib qolgan C tili) juda qadimiy dasturlash tili ekanligini ko'rsatadi. Boshqa fayllardan kodni qandaydir tarzda kiritish zarurati dasturlash tillari paydo bo'lishida paydo bo'lganligi aniq va dasturning hozirgi joyiga boshqa fayl kodini oddiygina ahmoqona kiritadigan konstruktsiyalar qilishning eng oddiy usullaridan biri ekanligi aniq. bu va ayni paytda juda kuchli yo'l. Zamonaviyroq tillarda modul kabi tizimlar mavjud bo'lib, ular bir tomondan murakkabroq (kompilyatorda amalga oshirish nuqtai nazaridan), lekin ikkinchi tomondan, aniqroq va bir qator afzalliklarga ega; #includeZamonaviy tillardagi turdagi konstruktsiyalar faqat ba'zi oddiy belgilash tillarida yoki shunga o'xshash tillarda, tilning o'zi juda sodda bo'lsa, topiladi.
Keling, keyingi qatorga o'tamiz.
using namespace std;
Bu qator, ular aytganidek, nom maydonini (nomlar maydoni) o'z ichiga oladi std. Usiz ko'plab standart funktsiyalar, turlar, o'zgaruvchilar va boshqalar. prefiks bilan yozish kerak bo'ladi std::, masalan, std::cino'rniga yozing cin( cindasturda keyinroq ko'rib chiqamiz). Buyruq sizga hech qanday yangi funksiyalardan foydalanishga ruxsat bermaydi (farqli o'laroq ), u faqat kiritilgan funksiyalarga kirish usulini o'zgartiradi.using namespace#include
Buyruqlar jiddiy C++ dasturlarida tavsiya etilmaydi , ammo kichikroq dasturlarimizda ular yaxshi.using namespace
Bularning barchasi python tilidagiga o'xshaydi, masalan, yozsangiz, kvadrat ildiz funktsiyasini oddiy deb atay olmaysiz , lekin yozishingiz kerak .import mathsqrtmath.sqrt Xususan, C++ standart kutubxonasidan deyarli barcha funksiyalar (turli qo‘shimcha kutubxonalardan emas, ya’ni har qanday kompilyatorga kiritilgan funksiyalar) std. Shunga ko'ra, agar siz yozgan bo'lsangiz , u holda siz klaviatura va ekran bilan ishlash qobiliyatini yoqdingiz, ammo tegishli funktsiyalar va o'zgaruvchilarga , masalan, orqali kirish kerak .#include std::std::cin Boshqa tomondan, konstruktsiya nomlar maydoni nomini aniq ko'rsatmasdan, ko'rsatilgan nomlar maydonidagi funktsiyalardan foydalanishga imkon beradi. Xususan, yozish orqali siz standart funktsiyalardan prefikssiz foydalanishingiz mumkin .using namespace std;
Jiddiy dasturlarda konstruksiyadan foydalanish tavsiya etilmaydi - chunki u bir xil funktsiya nomlari muammolarini qaytaradi, ular uchun nomlar bo'shliqlari endigina ixtiro qilingan. Ammo bizning kichik dasturlarimizda siz funktsiya nomlarida chalkashliklarga duch kelishingiz dargumon, shuning uchun siz odatda yozishingiz mumkin. (Muammolar mavjud bo'lsa-da; masalan, esimda, ba'zi kompilyatorlar funksiyasiga ega . Agar siz yozsangiz , unda siz o'zgaruvchini nomlay olmaysiz . Lekin bular faqat alohida kompilyatorlar kabi ko'rinadi va bizning dasturlarimizda bunday hollarda o'zgaruvchining nomini o'zgartirish osonroq.)using namespaceusing namespace std;std::y1using namespace std;y1
Va C++ da bir-biridan mustaqil bo'lgan ikkita tushuncha mavjud: nomlar maydoni va sarlavha fayllari va ular qandaydir tarzda bog'lanishi shart emas. Turli nomlar bo'shliqlarining funktsiyalari bitta sarlavha faylida aniqlanishi mumkin (garchi bu odatiy bo'lmasa-da) va aksincha, bitta nom maydonining funktsiyalari ko'plab sarlavha fayllari bo'ylab tarqalishi mumkin va keyin ular alohida kiritilishi kerak #include. Bundan tashqari, hatto C++ 20 modullari ham boshqa tillardagi kabi bilvosita yangi nom maydonlarini yaratmaydi - hatto modulli C++ 20 da ham nomlar maydoni avvalgidek ishlatiladi.
"Nomlar maydoni" atamasining o'zi g'alati tuyulishi mumkin va aslida bu, albatta, inglizcha nomlar maydonidan olingan kuzatuv qog'ozi, lekin aslida ma'no aniq: bu qandaydir "bo'sh joy", "nomlar" mavjud bo'lgan maydon. jonli - funktsiyalar, o'zgaruvchilar, turlar va boshqalar nomlari. Shunga ko'ra, C ++ da joylashgan barcha nomlar bu bo'shliqlar, bir-biri bilan kesishmaydigan maydonlar bo'ylab taqsimlanadi.
Keyingi qator (ish bo'yicha ko'proq matn va kamroq eslatmalar davom etadi):
int main() {
mainBu qator argumentlarni qabul qilmaydigan va turdagi qiymatni qaytaradigan funktsiyani belgilaydi int(bu butun sonlar uchun eng standart ma'lumotlar turi). Bu paskalda yoki pythonda yozishning ekvivalenti (faqat pythondan farqli o'laroq, C++ da siz qaytariladigan qiymat qanday turdagi bo'lishini aniq ko'rsatishingiz kerak, bizning holatlarimizda bu ).function main:integerdef main():int
cout << s << endl; Javobni ekranda ko'rsatamiz. Bu erda coutekranga chiqish uchun mas'ul bo'lgan o'zgaruvchi (konsol chiqishi) va bu safar ma'lumotlar harakati yo'nalishini aniq ko'rsatuvchi kamroq belgilar ishlatiladi: sdan cout. Keyinchalik , biz chiqaramiz endl- bu maxsus o'zgaruvchi bo'lib, uning chiqishi cout chiziqning uzilishiga olib keladi. (Aslida, men quyida yozganimdek, dan foydalanmaslik kerak endl, bu juda sekin.. Agar boshqa biror narsani chiqarishimiz kerak bo'lsa, ha, chiziq tasmasi mantiqiy bo'lishi mumkin, aks holda bu haqiqatan ham kerak emas.)
return 0;
Boshqa tillarda bo'lgani kabi, buyruq returnfunktsiyani tugatish va belgilangan qiymatni qo'ng'iroq saytiga qaytarishni anglatadi. Lekin bu erda biz asosiy funktsiyadamiz, mainshuning uchun bu buyruq dasturni tugatadi.
Mana C++ returnfunksiyasidagi buyruq bo'lib main, dasturingiz qaysi qaytarish kodini qaytarishi kerakligini belgilaydi. Biz yozamiz : bu dastur muvaffaqiyatli yakunlanganligini anglatadi. Masalan, biz yozishimiz mumkin edi, keyin dasturni boshqargan kishi nimadir noto'g'ri bo'lganini tushunishi mumkin edi. Xususan, agar test tizimidagi ba'zi testlarda siz bilan yakunlansangiz, "ish vaqti xatosi" yoki "nol bo'lmagan qaytarish kodi" kabi test natijasini olasiz.return 0return 1mainreturn 1
Boshqa dasturlash tillarida, albatta, qaytarish kodi tushunchasi ham mavjud, masalan, faqat python va paskal tillarida, agar bajarilish asosiy kodning oxiriga yetgan bo'lsa, qaytarish kodi shunday bo'ladi, deb ishoniladi. nol. Ammo, ehtimol, siz qaytarish kodini aniq ko'rsatish zaruratini qondirdingiz - masalan, qurilishda sys.exit(0)nol faqat dasturni tugatish kerak bo'lgan qaytarish kodidir.
Va aynan shuning uchun funktsiya maintype ni qaytarishi kerak int, shuning uchun funktsiya sarlavhasi ga o'xshaydi .int main() {
Aslida, endi mainsiz funktsiyada maxsus yozishingiz shart emas - keyin u nolga qaytadi. (Ammo funktsiya hali ham sifatida emas, deb belgilanishi kerak .) Lekin har doim ni aniq yozish yaxshidir , xususan, agar siz aniq yozmagan bo'lsangiz, ko'plab eski kompilyatorlar tasodifiy qaytarish kodini yaratishi mumkin . Qaytgan boshqa funktsiyalarda yozmaslik mumkin emas .return 0 intvoidreturn 0; return 0; intreturn 0;
|
| |