1. Kompyuter nima hardware, software
Klaviaturadan belgini kiritish
Download 0.75 Mb.
|
Oraliq javoblari
Klaviaturadan 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<Misol uchun, ‘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 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);Маълумотларни файлга ёзиш учун ofstreamoutput; файлни кўрсатиш учун эса openфункциясидан фойдаланамиз: output.open("numbers.txt"); бу оператор numbers.txtномли файлни яратади. Агарда бундай файл яратилган бўлса ичидаги маълумотларни ўчириб, янгитдан шундай файлни яратади. Файлга ёзишни яна бир усул билан ёзиш ҳам мумкин: ofstreamoutput("numbers.txt"); маълумотларни ёзиш учун оқимга қўшиш (<<) операторидан фойдаланимиз, худди cout да ишлатганимиз каби. Мисол учун: output<<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:
Download 0.75 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling