Uploaded by Eldor Saydullayev

3 - Amaliy ish

advertisement
Muhammad al-Xorazmiy nomidagi TATU Samarqand filiali
LABORATORIYA MASHG‘ULOTLARI
FAN
HAFTA
RAQAMI
MASHG‘ULO
T MAZMUNI
MAQSAD:
DASTURLASh (C++)
2
SINF A’ZOLARI (A’ZO FUNKSIYA VA O‘ZGARUVCHILAR)
DAN FOYDALANIB DASTUR TUZISH.
1. Sinf a’zolarini o‘rganish;
2. Sinf
va
dasturning
ishlab
chiqish
implementatsiyasini o‘rganish;
3. Sinf a’zolarini qo‘llagan holda dasturlar tuzish.
jarayonini
Sinf tanasining implementatsiyasi. C++ da sinf tanasini implementatsiya qilish
imkoni mavjud, Sinfni e’lon qilishda faqatgina sinfdagi ma’lumotlar maydonini,
konstruktorlarni, funksiyalarning prototiplarini ko‘rsatib o‘tish hisoblanadi, sinfning
realizatsiyasi esa konstruktor va funksiyalarni to‘liq ko‘rsatadi. Sinfni e’lon qilish va
realizatsiya qilish ikkita har xil fayllarda yozilishi mumkin. Faqat har ikkala fayl ham bir
xil nomalanishi zarur. Sinfni e’lon qilish faylining kengaytmasi .h (h sarlavha degani)
bo‘ladi, realizatsiyaning kengaytmasi esa .cpp bo‘ladi.
1-Mashq. Ekranda doira yuzasini chop etadigan dasturni Sinf tanasini
implementatsiya qilish orqali tuzilsin. Bu yerda Circle sinfi e’lon qilinishi Circle.h faylida
sinf a’zolari esa Circle.cpp faylida yozilishi dasturning kliyent qismi esa main.cpp faylida
yozilsin.
Dastur kodi:
Listing 2.1 Circle.h
1. class Circle
2. {
3. public:
ДАСТУРЛАШ (С++) фанидан 2.1-лаборатория машғулотлари
4. // Radius kruga
5. double radius;
6.
7. // konstruktor po umolchaniyu
8. Circle();
9.
10. // konstruktor s parametrom
11. Circle(double);
12.
13. // Vozvrasheniye ploshadi kruga
14. double getArea();
15. };
Listing 2.2 Circle.cpp
1. #include "Circle.h"
2.
3. // Construct a default circle object
4. Circle::Circle()
5. {
6. radius = 1;
7. }
8.
9. // Construct a circle object
10. Circle::Circle(double newRadius)
11. {
12. radius = newRadius;
13. }
14.
15. // Return the area of this circle
16. double Circle::getArea()
17. {
18. return radius * radius * 3.14159;
19. }
Simvol :: - operator bo‘lib, sinf a’zolarini sinfda ko‘rsatish uchun qo‘llaniladi.
Bu yerda Circle:: har bir konstruktor va funksiyaning Circle sinfiga mansubligi,
kompilyatorga mazkur konstruktorlar va funksiyalar Circle sinfida e’lon qilinganligini
ko‘rsatadi.
2.3 listingda Circle sinfining realizatsiyasi ko‘rsatilgan.
Listing 2.3 main.cpp
1.
2.
3.
4.
5.
6.
7.
8.
#include <iostream>
#include "Circle.h"
using namespace std;
int main()
{
Circle circle1;
Circle circle2(5.0);
ДАСТУРЛАШ (С++) фанидан 2.1-лаборатория машғулотлари
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
cout <<
<<
cout <<
<<
"Ploshad kruga
circle1.radius
"Ploshad kruga
circle2.radius
pri radiuse "
<< " ravna " << circle1.getArea() << endl;
pri radiuse "
<< " ravna " << circle2.getArea() << endl;
// Izmenennoye radius
circle2.radius = 100;
cout << "Ploshad kruga pri radiuse "
<< circle2.radius << " ravna " << circle2.getArea() << endl;
return 0;
}
Rezultat:
Ploshad kruga pri radiuse 1 ravna 3.14159
Ploshad kruga pri radiuse 5 ravna 78.5397
Ploshad kruga pri radiuse 100 ravna 31415.9
ДАСТУРЛАШ (С++) фанидан 2.1-лаборатория машғулотлари
Download