Муҳаммад ал-Хоразмий номидаги тату самарқанд филиали Дастурий инжиниринг кафедраси



Download 113,27 Kb.
Sana12.04.2020
Hajmi113,27 Kb.
#44076
Bog'liq
Dasturlash2 3.1-laboratoriya mashg'uloti

Муҳаммад ал-Хоразмий номидаги ТАТУ Самарқанд филиали

Дастурий инжиниринг кафедраси

Лаборатория машғулотлари


ФАН





ДАСТУРЛАШ II(С++)

Ҳафта рақами





3

Машғулот мазмуни




string синфига доир дастур тузиш.

Мақсад:




  1. String синфини ўрганиш;


  2. String синфининг методларини қўллаш бўйича билим ва кўникмаларга эга бўлиш;

  3. String синфини қўллаган ҳолда дастурлар тузиш.

1-масала. Кўп ҳолларда маълум бир сатр ичидан сўзларни ажратишга тўғри келади. Тасаввур қиламиз сўзлар пробеллар билан ёзилган. stringstream синфини қўллаган ҳолда ҳар бир сўзни ялоҳида сатрда чоп этувчи дастур тузинг.
Дастур коди:
Листинг 3.1.1 KesibOlish.cpp


  1. #include

  2. #include

  3. #include

  4. using namespace std;

  5. int main()

  6. {

  7. string text("Dasturlash qiziq fan");

  8. stringstream s(text);

  9. cout << "Matndagi so'zlar: " << endl;

  10. string soz;

  11. while (!s.eof())

  12. {

s >> soz;

cout << soz << endl;



  1. }

  2. return 0;

  3. }


Натижа:


2-масала. s сатрида oldSubStr сатри маълумотларини oldSubStr сатри маълумотларига ўзгартирувчи дастур кодини тузинг.
bool replaceString(string& s, const string& oldSubStr,

const string& newSubStr)

Юқоридаги функция s сатри ўзгартирилган бўлса true қиймат қайтаради, акс ҳолда эса қиймати false бўлади.


Дастур коди:
Листинг 3.1.2 SatrniAlmashtirish.cpp


  1. #include

  2. #include

  3. using namespace std;

  4. // Zamena oldSubStr v s na newSubStr

  5. bool replaceString(string& s, const string& oldSubStr,

  6. const string& newSubStr);

  7. int main()

  8. {

  9. // Predlozhite polzovatelyu vvesti s, oldSubStr i newSubStr

  10. cout << "Satrni kiriting S, almashtiriladiganS, va o'rniga qo'yiladiganS: ";

  11. string s, oldSubStr, newSubStr;

  12. cin >> s >> oldSubStr >> newSubStr;

  13. bool isReplaced = replaceString(s, oldSubStr, newSubStr);

  14. if (isReplaced)

  15. cout << "Almashtirilgan satr " << s << endl;

  16. else

  17. cout << "O'xshash satr yo'q" << endl;

  18. return 0;

  19. }

  20. bool replaceString(string& s, const string& oldSubStr,

  21. const string& newSubStr)

  22. {

  23. bool isReplaced = false;

  24. int currentPosition = 0;

  25. while (currentPosition < s.length())

  26. {

  27. int position = s.find(oldSubStr, currentPosition);

  28. if (position == string::npos) // Net bolshe sovpodeniy

return isReplaced;

  1. else

  2. {

s.replace(position, oldSubStr.length(), newSubStr);

currentPosition = position + newSubStr.length();



isReplaced = true; // Khotya by odin sovpodeniye

  1. }

  2. }

  3. return isReplaced;

  4. }


Натижа:



3-масала. StackOfInteger синфини яратинг ва тартибланган сонларни чоп этинг.
Дастур коди:
Листинг 3.1.3 havola.h


  1. #ifndef HAVOLA_H

  2. #define HAVOLA_H

  3. class StackOfIntegers

  4. {

  5. public:

  6. StackOfIntegers();

  7. bool isEmpty() const;

  8. int peek() const;

  9. void push(int value);

  10. int pop();

  11. int getSize() const;

  12. private:

  13. int elements[100];

  14. int size;

  15. };

  16. #endif // HAVOLA_H

Листинг 3.1.4 havola.cpp




  1. #include "havola.h"

  2. StackOfIntegers::StackOfIntegers()

  3. {

  4. size = 0;

  5. }

  6. bool StackOfIntegers::isEmpty() const

  7. {

  8. return size == 0;

  9. }

  10. int StackOfIntegers::peek() const

  11. {

  12. return elements[size - 1];

  13. }

  14. void StackOfIntegers::push(int value)

  15. {

  16. elements[size++] = value;

  17. }

  18. int StackOfIntegers::pop()

  19. {

  20. return elements[--size];

  21. }

  22. int StackOfIntegers::getSize() const

  23. {

  24. return size;

  25. }

Листинг 3.1.5 main.cpp




  1. #include

  2. #include "havola.h"

  3. using namespace std;

  4. int main()

  5. {

  6. StackOfIntegers stack;




  1. for (int i = 0; i <10; i++)

  2. stack.push(i);

  3. while (!stack.isEmpty())

  4. cout <

  5. return 0;

  6. }


Натижа:



ДАСТУРЛАШ (С++) фанидан 3.1-лаборатория машғулотлари

Download 113,27 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish