Klaviaturadan belgini kiritish

|
Klaviaturadan belgini kiritish
|
bet | 6/18 | Sana | 14.05.2024 | Hajmi | 91,02 Kb. | | #231246 |
Bog'liq 1. Kompyuter nima hardware, software-fayllar.orgKlaviaturadan belgini kiritish:
cout << “Belgi kiriting: "; char ch;
cin >> ch; // Belgini o’qish
cout <
Siz ekranga qo’shtirnoqli matn chiqarmoqchisiz. Quyidagicha yo’l tutish mumkinmi?
cout << “U dedi“Dasturlash judayam qiziq”” << endl;
Yo’q, bu buyruq xatolikni keltirib chiqaradi. Bunday holatdan chiqish uchun C++ da maxsus belgilardan foydalaniladi. Bu jarayon (holatdan) chiqish ketma-ketligi deyiladi (escape sequence).
33.Belgilar ustida sonli va munosabat amallari (numeric operators on characters, comparing and testing characters);
char turini ixtiyoriy sonli turga o’tkazish mumkin va aksincha. Butun son char turiga o’tkazilaganda, faqat oxirgi 8 bitdan foydalaniladi. Qolgan qismi tashlab yuboriladi. Misol:
char c=0XFF41; // oxirgi 8 bitdagi o’n oltilik tizimdagi 41 c ga ta’minlanmoqda
cout<
Haqiqiy sonlarni char turiga o’tkazishda, dastlab sonning butun qismi olinadi, so’ngra char turiga o’tkaziladi:
char c=65.25; // c o’zgaruvchisiga 65 ta’minlanmoqda
cout<
char turidan sonli turga o’tishda, belginig ASCII kodi ta’minlanadi.
int i=‘A’; // A ning ASCII kodi i ga ta’minlanmoqda cout<
‘a’<‘b’ – true, chunki ‘a’(97) ning ASCII kodi ‘b’(98) ning ASCII kodidan kichik.
‘a’<‘A’ – false, chunki ‘a’(97) ning ASCII kodi ‘A’(65) ning ASCII kodidan katta.
‘1’<‘8’ – true, chunki ‘1’(49) ning ASCII kodi ‘8’(56) ning ASCII kodidan kichik.
34.Satrli ma’lumot turi, satr funksiyalari (instance function, at(index));
Satr – belgilar ketma-ketligi.
char turi faqat bitta belgini namoyish qila olar edi. Belgilar ketma-ketligini namoyish qilish uchun esa, string turidan foydalaniladi. Misol uchun, Dasturlash judayam qiziq jumlasini quyidagicha ta’minlash mumkin:
string xabar=“Dasturlash judayam qiziq”;
string turi c++ tilining bazaviy tili hisoblanmaydi. U ob’yekt tur deb nomlanadi. Yuqoridagi misolda, xabar Dasturlash judayam qiziq kontentlarini string ob’yekti namoyish qilmoqda.
Ob’yektlar klaslar orqali aniqlanadi. string sinfi header fayli yordamida aniqlanadi. Bundan tashqari ob’yekt sinfning nusxasi ham deb ataladi.
s.at(index) funksiyasi s satrda 0 dan s.length()-1 oraliqdagi indeksda joylashgan belgini qaytarishini anglatadi. Misol uchun, message.at(0) funksiyasi C belgisini chiqaradi. Satrlarda birinchi belgi har doim 0- indeksadan boshlanadi.
35.Satrdan belgini ajratib olish. Satrlarni qo`shish (subscript operator, string concatenation);
Satrdan biror belgini ajratib olish uchun satr ob’yekti yoniga [ ] qavslarini qo’yib, qavslar ichiga indeks yozilsa, shu indeksdagi belgini boshqa satrga ta’minlash mumkin.
string s = "ABCD";
s[0] = 'P';
cout s satrida alohida elementga murojaat qilishda indeks chegarasidan chiqib ketish umumiy dasturlash xatoligini(common programming error) keltitib chiqaradi. Bunday xatolikdan qochish uchun s.length() – 1 chegaradan chiqlmayotganiga ishonch hosil qilish lozim. Misol uchun funksiyalarni s.at(s.length()) yoki s[s.length()] kabi qo’llash xatolik keltirib chiqaradi.
C++ da + operatori orqali satrlarni qo’shish mumkin. Quyida s1 va s2 satrlarini qo’shib, s3 satrga ta’minlash ko’rsatilgan:
string s3 = s1 + s2;
+= operatorini satlar uchun ham qo’llash mumkin. Misol uchun quyidagi kodda xabar satridagi “C++ ga xush keilbsiz. ” jumlasiga “Dasturlash judayam qiziq.” jumlasini qo’shish ko’rsatilgan:
xabar+= “Dasturlash judayam qiziq.”;
Endi xabar satrida “C++ ga xush kelibsiz. Dasturlash judayam qiziq.” jumlasi paydo bo’ldi.
Satrga char turidagi belgini qo’shish mumkin.
string s = "ABC";
s += 'D';
Endi s satrda “ABCD” paydo bo’ldi.
Muhim!
string cites = "London" + "Paris"; //noto’g’ri
string s = "New York";
string cites = s + "London" + "Paris"; //to’gri
36.Satrlarni taqqoslash. Satrni klaviaturadan o`qish (comparing strings, read a string);
Satrlarni taqqoslash uchun ==, !=, <, <=, >, >= amallari ishlatiladi.
string s1 = "ABC";
string s2 = "ABE";
cout << (s1 == s2) << endl; // 0 chiqadi (ya’ni false)
cout << (s1 != s2) << endl; // 1 chiqadi (ya’ni true)
cout << (s1 > s2) << endl; // 0 chiqadi (ya’ni false)
cout << (s1 >= s2) << endl; // 0 chiqadi (ya’ni false)
cout << (s1 < s2) << endl; // 1 chiqadi (ya’ni true)
cout << (s1 <= s2) << endl; // 1 chiqadi (ya’ni true)
Satrlarni o’qitishda cin ob’yektidan foydalanish mumkin.
1.string city;
2 .cout<< “Shaharni kiriting: ";
3 .cin>> city; // satrni o’qib olish
4 .cout << “Siz "<< city << “ ni kiritidingiz.”getline(cin, s, ajratuvchiBelgi)
Ajratuvchi belgi kiritilganda funksiya belgilarni o’qishni to’xtatadi. Ajratkich o’qiladi, ammo satga qo’shilmaydi. Funksiyaning 3-parametri bo’lmish ajratuvchiBelgi dastlabki holda (‘\n’) bo’ladi.
1 string city;
2 cout<< “Shaharni kiriting: ";
3 getline(cin, city, ‘\n’); // getline(cin, city) bilan bir xil
cout << “Siz "<< city << “ ni kiritidingiz.”<
37.Satrli ma’lumotni konsol oynaga chiqarilishini formatlash (format console output);
Konsolga matnni formatlangan holda chiqarish uchun oqim manipulyatorlaridan foydalaniladi.
Dasturda ko’pincha matnni formatlangan holda chiqarish talab etiladi. Misol uchun, quyidagi dastur kodida bankka qo’yilgan omonatning foizi va yillik foizini hisoblaydi:
double omonat = 12618.98;
double foiz = 0.0013;
double summa = omonat * foiz;
cout << “Summa: " << summa << endl;
38.Fayldan kiritish (stream manipulator, writing to a file);
Маълумотларни файлдан ўқиш учун ifstreamтуридаги ўзгарувчини эълон қилишимиз керак.
ifstreaminput;
файлни кўрсатиш учун эса openфункциясидан фойдаланамиз:
input.open("numbers.txt");
бу оператор numbers.txtномли файлни очади. Агарда бундай файл яратилмаган бўлса хатоликга олиб келади.
Файлдан ўқишнинг яна бир усули мавжуд:
ifstreaminput("numbers.txt");
маълумотларни файлдан ўқиш учун оқимдан маълумотни чиқариш (>>)операторидан фойдаланилади, худди cin да ишлатилгани каби, мисол учун:
input>>score1;
input>>score2;
input>>score3;
ёки
input>>score1>>score2>>score3;
бу ерда файлдаги маълумотларни score1score2ваscore3ўзгарувчиларига ёзиб олади.
Файл билан ишни тугатгандан сўнг, маълумотни киритишдан чиқиш учун қуйидаги код киритилади: input.close();
39.Faylga chiqarish (stream manipulator, reading from a file);Маълумотларни файлга ёзиш учун кутубхонасидан фойдаланамиз, аввало ofstreamтуридаги ўзгарувчини эълон қилишимиз керак.
ofstreamoutput;
файлни кўрсатиш учун эса openфункциясидан фойдаланамиз:
output.open("numbers.txt");
бу оператор numbers.txtномли файлни яратади. Агарда бундай файл яратилган бўлса ичидаги маълумотларни ўчириб, янгитдан шундай файлни яратади.
Файлга ёзишни яна бир усул билан ёзиш ҳам мумкин:
ofstreamoutput("numbers.txt");
маълумотларни ёзиш учун оқимга қўшиш (<<) операторидан фойдаланимиз, худди cout да ишлатганимиз каби. Мисол учун:
output<<95<<""<<56<<""<<34<бу оператор файлга 95, 56 ва 34 сонларини ўртасида биттадан бўш жой билан бирга ёзади.
Файл билан ишни тугатгандан сўнг, маълумотни киритишдан чиқиш учун қуйидаги код киритилади:
output.close();
close функцияси дастурдан чиқишдан олдин маълумотларни файлга ёзиб қолиш учун ишлатилади.
(Raqamlar yig’indisini hisoblang). Uch xonali butun son berilgan ushbu sonning raqamlar yig’indisini hisoblaydigan dastur tuzing. (algoritm blok-sxemasi va dastur kodi tuzilishi shart).
Natija quyidagicha bo’ladi:
Kiruvchi ma’lumot
|
Chiquvchi ma’lumot
|
992
|
20
|
|
| |