Mavzu: C++Dasturlash tillarida satrlar bilan ishlash string turi va uning funksiyalari Bajardi: Chutbayev Bahodirjon


Download 57,79 Kb.
bet4/6
Sana09.04.2023
Hajmi57,79 Kb.
#1346993
1   2   3   4   5   6
Bog'liq
Bahodirjon

String ustida amallar
Matnlarni qo'shish operatori (+)
Matnlarni qo'shish uchun + operatoridan foydalanmiz:
ism = 'Ahmad'
print("Mening ismim " + ism)
Natija: Mening ismim Ahmad
ism = 'Ahad'
familiya = 'Qayum'
print(ism + familiya)
Natija: AhadQayum
Yuqoridagi kodda ism va familiya orasiga bo'shliq belgisini qo'shmaganimiz uchun ikki matn qo'shilib yozildi. Buni to'g'rilash uchun, 3-qatorni quyidagicha yozamiz:
ism = 'Ahad'
familiya = 'Qayum'
print(ism + ' ' + familiya) # ikki o'zgaruvchi orasiga bo'sh joy qo'shamiz
Natija: Ahad Qayum
f-string
Ikki (va undan ko'p) matn ko'rinishidagi o'zgaruvchilarni birlashtirish uchun f-string usulidan f"{matn1} {matn2}" ham foydalansak bo'ladi:
ism = "Ahad"
familiya = 'Qayum'
ism_sharif = f"{ism} {familiya}"
print(ism_sharif)
Bu usul yordamida uzun matnlarni ham yasash mumkin:
ism = "James"
familiya = 'Bond'
print(f"Salom, mening ismim {familiya}. {ism} {familiya}!")
Natija: Salom, mening ismim Bond. James Bond!
Mahsus belgilar
Matnga bo'shliq qo'shish uchun \t belgisidan, yangi qatordan boshlash uchun \n belgisidan foydalanamiz:
print('Hello World!')
print('Hello \tWorld!')
print('Hello \nWorld!')
Natija:
Hello World!
Hello World!
Hello
World!
String metodlari
Pythonda string ustida amalga oshirish mumkin bo'lgan tayyor amallar to'plami mavjud. Bunday amallar to'plami metodlar deb ataladi.
Metodlarni qo'llash uchun metod nomi matndan so'ng .metod_nomi() ko'rinishida yoziladi. Keling shunday metodlarning ba'zilari bilan tanishaylik.
upper() va lower() metodlari
upper() metodi matndagi har bir harfni katta harfga o'zgartiradi.
ism = 'Ahad'
familiya = 'Qayum'
ism_sharif = f"{ism} {familiya}"
print(ism_sharif.upper())
Natija: AHAD QAYUM
lower() metodi esa aksincha, har bir harfni kichik harfga o'zgartiradi.
ism = 'Ahad'
familiya = 'Qayum'
ism_sharif = f"{ism} {familiya}"
print(ism_sharif.lower())
Natija: ahad qayum
title() va capitalize() metodlari
title() metodi matndagi har bir so'zning birinchi harfini katta harf bilan yozadi.
ism_sharif = 'james bond'
print(ism_sharif.title())
Natija: James Bond
capitalize() esa faqatgina eng birinchi so'zning birinchi harfini katta bilan yozadi.
ism_sharif = 'james bond'
print(ism_sharif.capitalize())
Natija: James bond
Metodlarni faqat o'zgaruvchilarga emas, balki to'g'ridan-to'g'ri matnga ham qo'llash mumkin (aslida o'zgaruvchi ham matnning (yoki boshqa ma'lumotning) manzili xolos)
print('james bond'.upper())
Natija: JAMES BOND
strip(), rstrip() va lstrip() metodlari
Bu metodlar matnning boshi va oxiridagi bo'sh joylarni olib tashlaydi.
lstrip() — matn boshidagi bo'shliqni,
rstrip() – matn oxiridagi bo'shliqni,
strip() — matn boshi va oxiridagi bo'shliqlarni olib tashlaydi
meva = " olma "
print("Men " + meva.lstrip() + " yaxshi ko'raman")
print("Men " + meva.rstrip() + " yaxshi ko'raman")
print("Men " + meva.strip() + " yaxshi ko'raman")
print("Men " + meva + " yaxshi ko'raman")
Men olma yaxshi ko'raman
Men olma yaxshi ko'raman
Men olma yaxshi ko'raman
Men olma yaxshi ko'raman
Matnlar bilan ishlaydigan metodlar ko'p. Ularning ba'zilari bilan kelajakda yana tanishamiz, to'liq ro'yhatni esa quyidagi sahifada ko'rishingiz mumkin.
Metodlar o'zgaruvchi ichidagi asl matnni o'zgartirmaydi!
INPUT —FOYDALANUVCHI BILAN MULOQOT
Shu paytgacha biz o'zgaruvchilarning qiymatini dasturning ichida berayotgan edik. Keling endi qiymatni o'zimiz emas, balki dastur foydalanuvchilariga kiritish imkonini beramiz.
Buning uchun input() funktsyasidan foydalanamiz.
ism = input("Ismingiz nima?")
print("Assalom alaykum, " + ism)
Yuqoridagi dastur, avval 1-qatorda foydalanuvchining ismini so'raydi. Foydalanuvchi ismini kiritib, Enter tugmasini bosgach, foydalanuvchi kiritgan matnism degan o'zgaruvchiga yuklanadi va dasturining 2-qatori bajaradi:
Natija:
Ismingiz nima?anvar
Assalom alaykum, anvar
Keling yuqoridagi kod va uning natijasini chiroyliroq ko'rinishga keltiramiz.
ism = input("Ismingiz nima?\n>>>") # Foydalanuvchi ismini yangi qatordan kiritadi
print("Assalom alaykum, " + ism.title())
AMALIYOT
Quyidagi mashqlarni bajaring:
Quyidagi o'zgaruvchilarni yarating:
kocha="Bog'bon"
mahalla="Sog'bon"
tuman="Bodomzor"
viloyat="Samarqand"
Yuqoridagi o'zgaruvchilarni jamlab, quyidagi ko'rinishda konsolga chiqaring:
Bog'bon ko'chasi, Sog'bon mahallasi, Bodomzor tumani, Samarqand viloyati
Yuqoridagi o'zgaruvchilarning (kocha, mahalla, tuman, viloyat) qiymatini foydalanuvchidan so'rang. Va avvalgi mashqni takrorlang.
Yuqoridagi matnni konsolga chiqarishda har bir verguldan keyin yangi qatordan yozing
Yuqoridagi matnni f-string yordamida, yangi, manzil deb nomlangan o'zgaruvchiga yuklang
manzilga biz yuqorida o'rgangan title(), upper(), lower() , capitalize() metodlarini qo'llab ko'ring.
Quyidagi o'zgaruvchilarni yarating:
kocha="Bog'bon"
mahalla="Sog'bon"
tuman="Bodomzor"
viloyat="Samarqand"
Yuqoridagi o'zgaruvchilarni jamlab, quyidagi ko'rinishda konsolga chiqaring:
Bog'bon ko'chasi, Sog'bon mahallasi, Bodomzor tumani, Samarqand viloyati
Yuqoridagi o'zgaruvchilarning (kocha, mahalla, tuman, viloyat) qiymatini foydalanuvchidan so'rang. Va avvalgi mashqni takrorlang.
Yuqoridagi matnni konsolga chiqarishda har bir verguldan keyin yangi qatordan yozing
Yuqoridagi o'zgaruvchilarni f-string yordamida, yangi, manzil deb nomlangan o'zgaruvchiga yuklang
manzilga biz yuqorida o'rgangan title(), upper(), lower() , capitalize() metodlarini qo'llab ko'ring.
Iplar bilan ishlash. string klassi. Sinf konstruktorlari. assign() , append() , insert() , replace() , erase() , find() , rfind() , compare() , c_str() funksiyalari. Misollar
1. C++ dasturlarida string sinfining maqsadi nima?
String klassi char* tipidagi satrlar bilan ishlash uchun mo'ljallangan, bu null bilan tugallangan qatordir. String sinfi sifatida joriy qilingan Muqobil variant char* tipidagi satrlar bilan ishlash uchun. Belgi bilan tugaydigan qatorlar ‘\0’ C-strings deb ham ataladi. String sinf bo'lgani uchun siz ushbu sinf ob'ektlarini e'lon qilishingiz mumkin.
2. MS da string sinfining imkoniyatlaridan foydalanish uchun qanday modullar (kutubxonalar) ulanishi kerak. vizual studiya C++?
MS Visual Studio (C++) da string sinfining imkoniyatlaridan foydalanish uchun kutibxonani kiritish kerak va std nom maydoni.
#o'z ichiga oladi std nom maydonidan foydalanish;
3. String tipidagi o‘zgaruvchi qanday e’lon qilinadi? Misollar String tipidagi o'zgaruvchini e'lon qilish oddiy o'zgaruvchiga o'xshash tarzda amalga oshiriladi. Mumkin variant bir vaqtning o'zida ishga tushirish bilan deklaratsiyalar.
// s1 qatorini yozing; // string tipidagi s1 nomli o'zgaruvchi string s2 = "Bu string o'zgaruvchisi" ; // ishga tushirish bilan deklaratsiya // belgilash operatori bilan string tipidagi o'zgaruvchidan foydalanish s1 = s2; // s1 = "Bu satr o'zgaruvchisi" s2 = "yangi matn" ;
4. String sinfini char* tipiga nisbatan qo‘llashning qanday afzalliklari va kamchiliklari bor?

Yangi satr tipining yaratilishi char* tipini ko'rsatuvchi belgilar qatorlari bilan ishlashning kamchiliklari bilan bog'liq edi. Char* turiga nisbatan string turi quyidagi asosiy afzalliklarga ega:


standart C++ operatorlari bilan satrlarni qayta ishlash qobiliyati ( = , + , = = , <> va h.k.). Ma'lumki, char* turidan foydalanganda, hatto eng ko'p oddiy operatsiyalar strings bilan murakkab ko'rindi va ortiqcha yozishni talab qildi dastur kodi;
dastur kodining yanada ishonchliligini (xavfsizligini) ta'minlash. Misol uchun, satrlarni nusxalashda, string turi manba satrda mavjud bo'lsa, yuzaga kelishi mumkin bo'lgan tegishli harakatlarni ta'minlaydi kattaroq o'lcham maqsad qatoridan ko'ra;
kabi qatorni taqdim etish mustaqil turi ma'lumotlar. Satr turini satr sifatida e'lon qilish dasturdagi barcha o'zgaruvchilar uchun bir xil bo'lib, bu ma'lumotlarning izchilligini ta'minlaydi.
String tipining char* turiga nisbatan asosiy kamchiligi ma’lumotlarni qayta ishlash tezligining pastligidir. Buning sababi, string turi, aslida, konteyner sinfidir. Va sinf bilan ishlash dastur kodini qo'shimcha ravishda amalga oshirishni talab qiladi, bu esa o'z navbatida qo'shimcha vaqtni oladi.
Satr ob'ektlari bilan qanday operatorlardan foydalanish mumkin?
String klassi qulay, chunki u standart (ortiqcha yuklangan) operatorlar yordamida satrlarni qulay boshqarish imkonini beradi.
Quyidagi operatorlardan string sinfi obyektlari bilan foydalanish mumkin
= - topshiriq
+ - konkatenatsiya (satrlarni birlashtirish)
+= – bog‘lovchili topshiriq
== - tenglik
!= - tengsizlik
< - kichikroq
<= - kamroq yoki teng
> - Ko'proq
>= - ko'proq yoki teng
- indekslash
Misol, bu yuqoridagi bayonotlardan foydalanishni ko'rsatadi
// string yozing, satrlar ustida amallar string s1 = "s-1" ; string s2 = "s-2" ; string s3; bool b; // "=" operatsiyasi (satrni belgilash) s3 = s1; // s3 = "s-1" // "+" operatsiyasi - qatorni birlashtirish s3 = s3 + s2; // s3 = "s-1s-2" // operatsiya "+=" - biriktiruvchi bilan belgilash s3 = "s-3" ; s3 += "abc" ; // s3 = "s-3abc" // operatsiya "==" - satrni taqqoslash b = s2==s1; // b = noto'g'ri b = s2=="s-2" ; // b = rost // operatsiya "!=" - satrni taqqoslash (teng emas) s1 = "s1" ; s2 = "s2" ; b = s1 != s2; // b = rost // operatsiyalar"<" и ">" - qatorni taqqoslash s1 = "abc" ; s2="de"; b = s1 > s2; // b = noto'g'ri b = s1< s2; // b = true // operatsiyalar"<=" и ">= - satrni taqqoslash (kichik yoki teng, katta yoki teng) s1 = "abc" ; s2 = "ab" ; b = s1 >= s2; // b = haqiqiy b = s1<= s2; // b = false b = s2 >= "ab" ; // b = rost // operatsiya - indekslash char c; s1 = "abc" ; c = s1; // c = "c" c = s1; // c = "a"
6. String sinfida konstruktorlar bormi?
Har qanday sinf singari, string klassi ham bir qancha konstruktorlarga ega. Ulardan asosiylari quyidagilardir:
string(); string (const char *str); string (const string & str);
7. Konstruktorlar yordamida ishga tushirishga misollar
Quyida ishga tushirish misollari keltirilgan o'zgaruvchilar turi ip
String s1("Salom!" ); string s2 = "Salom!" ; // ishga tushirish - konstruktor qatori (const char * str) char*ps = "Salom" ; string s3(ps); // ishga tushirish satri s4(s3); // ishga tushirish - konstruktor qatori (const string & str) string s5; // ishga tushirish - string() konstruktori
8. Satrlarni belgilash. tayinlash() funktsiyasi. Misollar
Bir qatorni boshqasiga belgilash uchun siz ikkita usuldan birini qo'llashingiz mumkin:
tayinlash operatoridan foydalaning ‘=’ ;
string sinfidan assign() funksiyasidan foydalaning.
assign() funksiyasi bir nechta haddan tashqari yuklangan ilovalarga ega.
Birinchi variant funksiyani parametrlarsiz chaqirishdir
String &tayinlash(void );
Bunday holda, bir qatorni boshqasiga oddiy tayinlash mavjud.
Ikkinchi variant qatordan berilgan sonli belgilarni nusxalash imkonini beradi:
String &tayinlash(const string & s, size_type st, size_type num);
s - manba satr olinadigan ob'ekt;
st - num belgilarni nusxalash boshlanadigan satrdagi indeks (pozitsiya);
num - st pozitsiyasidan nusxa ko'chirish uchun belgilar soni;
size_type - tartibli ma'lumotlar turi. assign() funktsiyasining uchinchi varianti qo'ng'iroq qiluvchiga s qatorining birinchi raqamli belgilarini ko'chiradi:
String & assign(const char * s, size_type num);
s - belgi bilan tugaydigan qator ‘\0’ ;
num - qo'ng'iroq qiluvchiga ko'chiriladigan belgilar soni. s qatoridagi birinchi raqamli belgilar ko'chiriladi.
Quyida assign() funksiyasining turli ilovalariga misol keltirilgan.
Misol.
// satrni belgilash, assign() funktsiyasi string s1 = "sayt" ; string s2; string s3; char * ps = "sayt" ; s3 = s1; // s3 = "sayt" s2.assign(s1); // s2 = "sayt" s2.assign(s1, 0, 4); // s2 = "eng yaxshi" s2.assign(ps, 8); // s2 = "eng yaxshi dastur"
9. Chiziqlarni birlashtirish. append() funktsiyasi. Misol
Satrlarni birlashtirish uchun foydalaning qo'shish funktsiyasi() . Bundan tashqari, qatorlar qo'shish uchun operatsiyadan foydalanishingiz mumkin ‘+’ , Misol uchun:
s1 qatori; string s2; s1 = "abc" ; s2 = "def" ; s1 = s1 + s2; // s1 = "abcdef"
Biroq, agar siz satrning bir qismini qo'shishingiz kerak bo'lsa, append() funktsiyasi juda mos keladi.
Funktsiya quyidagi amalga oshirish imkoniyatlariga ega:
String & append(const string & s, size_type start); string & append(const char * s, size_type num);
Birinchi amalga oshirishda funktsiya string ob'ektiga havolani oladi s Bu qo'ng'iroq qiluvchiga qo'shiladi. Ikkinchi amalga oshirishda funktsiya '\0' belgisi bilan tugaydigan const char * tipidagi qatorga ko'rsatgich oladi.
String s1 = "abcdef" ; s2 = "1234567890" ; qo'shimchalar (s2, 3, 4); // s1 = "abcdef4567" char * ps = "1234567890" ; s1 = "abcdef" ; s1 ilovasi (ps, 3); // s1 = "abcdef123"
10. Satrga belgilar kiritish. insert() funktsiyasi. Misol
Bir qatorni boshqa qatorga ma'lum bir pozitsiyaga qo'shish uchun siz bir nechta amalga oshirish variantlariga ega bo'lgan insert() funktsiyasidan foydalanishingiz kerak.

Funktsiyaning birinchi versiyasi butun s qatorini chaqiruvchi satrning (chaqiruvchi ob'ekt) berilgan boshlang'ich pozitsiyasiga kiritish imkonini beradi:


String & insert(size_type start, const string &s);
Funktsiyaning ikkinchi versiyasi s satrning bir qismini (parametrlari insStart , num ) chaqiruvchi qatorning berilgan boshlang'ich pozitsiyasiga kiritish imkonini beradi:
String & insert(size_type start, const string &s, size_type insStart, size_type num)
Yuqoridagi funktsiyalarda:
s - chaqiruvchi qatorga kiritiladigan satr;
start - qo'ng'iroq chizig'idagi s qatori qo'shiladigan joy;
insStart - s satrida qo'shiladigan joy;
num - insStart pozitsiyasidan kiritilgan s qatoridagi belgilar soni.
string s1 = "abcdef" ; string s2 = "1234567890" ; s1.insert(3, s2); // s1 = "abc"+"1234567890"+"def"="abc1234567890def" s2.insert(2, s1, 1, 3); // s2 = "12bcd34567890"
11. Satrdagi belgilarni almashtirish. replace() funktsiyasi. Misol
replace() funksiyasi chaqiruvchi qatordagi belgilarni almashtirishni amalga oshiradi. Funktsiya quyidagi amalga oshirish imkoniyatlariga ega:
String &replace(size_type start, size_type num, const string &s); string &replace(size_type start, size_type num, const string &s, size_type replStart, size_type replNum);
Birinchi amalga oshirishda qo'ng'iroq liniyasi s qatori bilan almashtiriladi. s qatori bilan almashtirilishi kerak bo'lgan qo'ng'iroq qatoridagi joylashuv (boshlash) va belgilar sonini (son) belgilash mumkin.

replace() funksiyasining ikkinchi versiyasi birinchisidan farq qiladi, chunki u chaqiruvchi qatorni s satrining faqat bir qismi bilan almashtirish imkonini beradi. Bunday holda, ikkita qo'shimcha parametrlar: replStart pozitsiyasi va chaqiruvchi qator o'rnini bosuvchi pastki qatorni tashkil etuvchi s qatoridagi belgilar soni


Misol. replace() funksiyasining namoyishi.
String s1 = "abcdef" ; string s2 = "1234567890" ; s2.almashtirish(2, 4, s1); // s2 = "12abcdef7890" s2 = "1234567890" ; s2.almashtirish(3, 2, s1); // s2 = "123abcdef67890" s2 = "1234567890" ; s2.almashtirish(5, 1, s1); // s2 = "12345abcdef7890" // belgilarni almashtirish, replace() funktsiyasi string s1 = "abcdef" ; string s2 = "1234567890" ; s2.almashtirish(2, 4, s1); // s2 = "12abcdef7890" s2 = "1234567890" ; s2.almashtirish(3, 2, s1); // s2 = "123abcdef67890" s2 = "1234567890" ; s2.almashtirish(5, 1, s1); // s2 = "12345abcdef7890" s2 = "1234567890" ; s2.almashtirish(5, 1, s1, 2, 3); // s2 = "12345cde7890" s2 = "1234567890" ; s2.almashtirish(4, 2, s1, 0, 4); // s2 = "1234abcd7890"
12. Satrdan belgilangan belgilar sonini olib tashlash. erase() funktsiyasi. Misol
erase() funksiyasi chaqiruvchi qatordan belgilarni olib tashlash uchun ishlatiladi:
String & o'chirish(size_turi indeksi=0, o'lcham_turi soni = npos);
indeks - indeks (pozitsiya), undan boshlab siz chaqiruvchi qatordagi belgilarni o'chirmoqchisiz;
num - olib tashlanadigan belgilar soni.
Misol.
String s = "01234567890" ; s.oʻchirish(3, 5); // s = "012890" s = "01234567890" ; s.erase(); // s = ""
13. Satrdagi belgini qidiring. find() va rfind() funksiyalari. Misollar
String sinfida pastki qatordagi satrni qidirish ikki usulda amalga oshirilishi mumkin, ular qidiruv yo'nalishi bo'yicha farqlanadi:
find() funksiyasi yordamida satrni boshidan oxirigacha ko'rib chiqish;
rfind() funksiyasi bilan oxiridan boshigacha satrga qarab.
ind() funktsiyasi prototipi quyidagicha ko'rinadi:
Size_type find(const string &s, size_type start = 0) const ;
s - sabab bo'lgan satrda qidiriladigan pastki qator bu funksiya. Funktsiya s satrining birinchi paydo bo'lishini qidiradi. Agar berilgan funksiyani chaqirgan satrda s pastki satri topilsa, u holda birinchi hodisaning pozitsiyasi qaytariladi. Aks holda, -1 qaytariladi;
rfind() funktsiyasining prototipi quyidagicha ko'rinadi:
Size_type rfind(const string &s, size_type start = npos) const ;
s - chaqiruvchi qatorda qidiriladigan pastki qator. Satrdagi pastki qatorni izlash oxiridan boshigacha amalga oshiriladi. Agar s pastki satri chaqiruvchi qatorda topilsa, u holda funktsiya birinchi yuzaga kelgan joyni qaytaradi. Aks holda, funktsiya -1 ni qaytaradi;
npos - chaqiruvchi qatorning oxirgi belgisining pozitsiyasi;
start - qidiruv amalga oshiriladigan pozitsiya.
1-misol find() funktsiyasining natijasini ko'rsatadigan kod parchasi
// satr turi, find() funktsiyasi string s1 = "01234567890" ; string s2 = "345" ; string s3 = "abcd" ; int pos; pos = s1.find(s2); // pos = 3 pos = s1.find(s2, 1); // pos = 3 pos = s1.find("jklmn" , 0); // pos = -1 pos = s1.find(s3); // pos = -1 pos = s2.find(s1); // pos = -1
2-misol rfind() funksiyasining namoyishi.

// satr turi, find() va rfind() funksiyalari string s1 = "01234567890" ; string s2 = "345" ; string s3 = "abcd" ; string s4 = "abcd---abcd" ; int pos; pos = s1.rfind(s2); // pos = 3 pos = s1.rfind(s2, 12); // pos = 3 pos = s1.rfind(s2, 3); // pos = 3 pos = s1.rfind(s2, 2); // pos = -1 pos = s2.rfind(s1); // pos = -1 pos = s1.rfind(s3, 0); // pos = -1 // orasidagi farq funksiyalarni toping() va rfind() pos = s4.rfind(s3); // pos = 7 pos = s4.find(s3); // pos = 0


14. Satrlar qismlarini solishtirish. solishtirish() funktsiyasi. Misol
String turi sinf bo'lgani uchun ikkita satrni bir-biri bilan solishtirish uchun siz operatsiyadan foydalanishingiz mumkin ‘= =’ . Agar ikkita satr bir xil bo'lsa, taqqoslash natijasi rost bo'ladi. Aks holda, taqqoslash natijasi noto'g'ri bo'ladi.
Ammo agar siz bitta satrning bir qismini boshqasi bilan taqqoslashingiz kerak bo'lsa, buning uchun solishtirish() funksiyasi taqdim etiladi.
compare() funksiyasining prototipi:
int solishtiring(size_type start, size_type num, const string &s) const ;
s - chaqiruvchi qator bilan taqqoslanadigan satr;
boshlang'ich - s satrdagi pozitsiya (indeks), undan taqqoslash uchun satr belgilarini skanerlashni boshlash kerak;
num - s qatoridagi chaqiruvchi qator bilan taqqoslanadigan belgilar soni.

Xulosa
Dasturlarni ishlab chiqish jarayonida insonga ijodiy faoliyat bilan bogʻliq bosqichlar (muammo qoʻyish, uni algoritmlashtirish, dasturlash va natijalarni tahlil qilish) tayinlanadi, kompyuter esa ishlab chiqilgan algoritmga muvofiq ma‟lumotlarni qayta ishlashning muntazam bosqichlari uchun javobgardir. Amaliy muammolarni kompyuterda hal qilish usullarini bilish zamonaviy insonning axborot madaniyatining muhim tarkibiy qismidir.
Natijalar toʻgʻri yoki notoʻgʻri boʻlishi maqsadlarning aniq belgilanishiga bogʻliq. Kompyuterda masalalarni yechish usullari tegishli algoritmlar va ishlab chiqilgan dasturlar bilan ifodalanadi. Ularning rivojlanishi har doim algoritmik va dasturiy ta‟minot xatolarining paydo boʻlishi bilan bogʻliq. Algoritm va dastur har qanday qabul qilinadigan kirish ma‟lumotlari uchun qoʻllaniladigan muammolarni hal qilish uchun toʻgʻri natijalarni bergan taqdirda toʻgʻri va ishonchli hisoblanadi. Aks holda, xatolarni qidirishingiz va ularni tuzatishingiz kerak. Kompyuterlashtirish boshlanganda mashinalar tili oʻsha paytgacha odamlar ixtiro qila olmagan yagona til edi.
Dasturchilarni qoʻpol mashina dasturlash tilidan qutqarish uchun yuqori darajadagi tillar (ya‟ni mashina moʻljallanmagan tillar) yaratildi. Toʻgʻridan-toʻgʻri mashina qurilmalari tomonidan bajariladigan "kichik" (atomar) operatsiyalar "kattaroq", yuqori darajadagi operatsiyalar va butun tuzilmalarga birlashtirildi. Bu odam uchun ishlashi ancha oson va qulayroq edi. Shunday qilib, dasturlash ulkan yutuqqa erishdi: yangi tillar inson bilan kompyuterning mashina tili oʻrtasidagi bogʻlovchi koʻprikka aylandi.
Kompyuter texnologiyalarining rivojlanishi algoritmlarni (dasturlash tillarini) yozib olish uchun turli xil yangi belgi tizimlarining paydo boʻlishi va umuman dasturlash jarayonining rivojlanish jarayonini belgilab berdi.



Download 57,79 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling