Прашања https://www.cprogramming.com/tutorial/quiz/quiz12.html
1. What purpose do classes serve?
A. data encapsulation
B. providing a convenient way of modeling real-world objects
C. simplifying code reuse
D. all of the above
2. Which is not a protection level provided by classes in C++?
A. protected
B. hidden
C. private
D. public
3. What value must a destructor return?
A. A pointer to the class.
B. An object of the class.
C. A status code determining whether the class was destructed correctly
D. Destructors do not return a value.
4. Which of the following is a valid class declaration?
A. class A { int x; };
B. class B { }
C. public class A { }
D. object A { int x; };
5. Which functions will every class contain?
A. None
B. Constructor
C. Destructor
D. Both a constructor and a destructor
6. What does a class in C++ holds?
a) data
b) functions
c) both data & functions
d) arrays
7. How many specifiers are present in access specifiers in class?
a) 1
b) 2
c) 3
d) 4
8. Which is used to define the member of a class externally?
a) :
b) ::
c) #
d) !!$
9.Which of the following is a valid class declaration?
a) class A { int x; };
b) class B { }
c) public class A { }
d) object A { int x; };
10.The data members and functions of a class in C++ are by default
a) protected
b) private
c) public
d) public & protected
11.Constructors are used to ____________
a) initialize the objects
b) construct the data members
c) both initialize the objects & construct the data members
d) delete the objects
12. Изврши корекција за да се добие валиден код
class Test
{
int x;
};
int main()
{
Test t;
cout << t.x;
return 0;
}
13.What will be the output of the following C++ code?
#include <iostream>
using namespace std;
class rect
{
int x, y;
public:
void val (int, int);
int area ()
{
return (x * y);
}
};
void rect::val (int a, int b)
{
x = a;
y = b;
}
int main ()
{
rect rect;
rect.val (3, 4);
cout << "rect area: " << rect.area();
return 0;
}
a) rect area: 24
b) rect area: 12
c) compile error because rect is as used as class name and variable name in line #20
d) rect area: 56
14.Number of constructors a class can define is?
a) 1
b) 2
c) Any number
d) None of the mentioned
Задачи со класи
1)
Класа со едноставна функција – членка без параметри Креирана е класа со име Primer која содржи функција Ispis().
#include <iostream>
using namespace std;
class Primer //deklaracija na klasa pod ime Primer
{
public:
void Ispis()
{ cout<<"Ispis na tekst so koristenje na klasa Ispis\n"<<endl; }
};
int main()
{
Primer test; // deklaracija na object so ime test spored nacrtot vo klasata Primer
test.Ispis(); // povikuvanje na funkcija Ispis() nad objektot test
return 0;
}
Излез : Ispis na tekst na ekranot so koristenje na klasa Ispis
2)
Класа со функција – членка со параметри : ( функцијата е дефинирана во самата класа)
#include <iostream>
using namespace std;
class Kvadrat
{ public:
void Poraka(int broj){ сout << "Kvadratot na brojot e:"<< broj*broj<<endl; }
};
int main()
{ int br;
cout<<”Vnesete broj”;
cin>>br;
Kvadrat objKvadrat;
objKvadrat.Poraka (br);
return 0;
}
Излез: Vnesete broj 5
Kvadratot na brojot e:25
Пример за функција дефинирана надвор од класа ( scope resolution ::
operator )
#include <iostream>
using namespace std;
class Car {
public:
int speed(int maxSpeed);
};
int Car::speed(int maxSpeed)
{
return maxSpeed;
}
int main() {
Car myObj; // Create an object of Car
cout << myObj.speed(200); // Call the method with an argument
return 0;
}
200
#include <iostream>
using namespace std;
class Car
{
public:
int maxSpeed;
void setS(int a)
{ maxSpeed=a; }
int speed(int maxSpeed);
};
int Car::speed(int maxSpeed)
{
return maxSpeed;
}
int main() {
int a;
cout<<"Vnesi a=";
cin>>a;
Car myObj; // Create an object of Car
myObj.setS(a);
cout << myObj.speed(a); // Call the method with an argument
return 0;
}
Пресметување плоштина, периметар и дијагонала на правоаголник
// site clenki se public
#include <iostream>
#include <math.h>
using namespace std;
class Pravoagolnik
{
public:
double visina;
double sirina;
double plostina()
{
return visina * sirina;
}
double perimetar()
{
return 2*(visina + sirina);
}
double dijagonala()
{
return sqrt(pow(visina,2) + pow(sirina,2));
}
};
main()
{
Pravoagolnik mal;
mal.visina =5;
mal.sirina = 10;
cout<< " Plostinata na pravoagolnikot e " << mal.plostina() << endl;
cout<< " Perimetarot na pravoagolnikot e " << mal.perimetar() << endl;
cout<< " Dijagonalata na pravoagolnikot e " << mal.dijagonala() << endl;
return 0;
}
Plostinata na pravoagolnikot e 50
Perimetarot na pravoagolnikot e 30
Dijagonalata na pravoagolnikot e 11.1803
Seter/ Geter
// primer private i public clenki
#include <iostream>
#include <cmath>
using namespace std;
class Pravoagolnik
{
double visina; //podatocna clenka
double sirina; //podatocna clenka
public:
void setVisina_Sirina( double a,double b)
{
visina=a;
sirina=b;
}
double plostina() //definicija na funkcija clenka plostina
{ return visina * sirina; }
double perimetar() //definicija na funkcija clenka perimetar
{ return 2*(visina + sirina); }
double dijagonala() //definicija na funkcija clenka
{ return sqrt(pow(visina,2) + pow(sirina,2)); }
};
main()
{ double a,b;
Pravoagolnik mal; //mal e objekt od klasata Pravoagolnik
cout<<"Vnesi visina "; cin>>a;
cout<<"Vnesi sirina "; cin>>b;
//objektot ke pristapi preku funkcija-clenka za postavuvanje vrednost
//setVisina_Sirina(double a, doublr b)
mal.setVisina_Sirina(a,b);
cout<< "Plostinata na pravoagolnikot e " << mal.plostina() << endl;
cout<< "Perimetarot na pravoagolnikot e " << mal.perimetar() << endl;
cout<< "Dijagonalata na pravoagolnikot e " << mal.dijagonala() << endl;
return 0;
}
Vnesi visina 3
Vnesi sirina 4
Plostinata na pravoagolnikot e 12
Perimetarot na pravoagolnikot e 14
Dijagonalata na pravoagolnikot e 5
3) Класа со податочни членки- (тоа се податоци – атрибути за сите објeкти што припаѓа на класата, кои се дефинираат внатре во класата) и функциите-членки во класата set и get
#include <iostream>
using namespace std;
class ucenik
{
//public:
string Prezime,Ime; // декларирање на податочните членки
float mat,mak,ang; // декларирање на податочните членки
// функција set за поставување на податоци внесени од тастатура во објектот
public:
void setPodatoci (string P, string I, float o1,float o2, float o3)
{ Prezime=P;
Ime=I;
mat=o1;
mak=o2;
ang=o3;
}
// функција get за добивање на податочните членки од објектот
string getPrezimeIme()
{ return Prezime+" "+Ime; }
float Prosek(float mat, float mak, float ang)
{ float p;
p=(mat+mak+ang)/3;
return p; }
}; // завршува дефинирањето на класата
int main()
{
string P,I;
float o1,o2,o3;
ucenik objucenik; // креирање на објект со име objucenik од класата ucenik
cout<<"Vnesi Prezime i ime na ucenikot"<<endl;
cin>>P>>I;
cout<<"Vnesi gi ocenkite po matematika, makedoski i angliski jazik"<<endl;
cin>>o1>>o2>>o3;
objucenik.setPodatoci(P,I,o1,o2,o3); // повикување на функцијата set
cout<<"Ucenikot "<<objucenik.getPrezimeIme()<<" ima "<<objucenik.Prosek(o1,o2,o3)<< " prosek";
return 0;
}
Izlez:
Vnesi Prezime i ime na ucenikot
Stojanoska
Ana
Vnesi gi ocenkite po matematika, makedoski i angliski jazik
3 5 5
Ucenikot Stojanoska Ana ima 4.33333 prosek
Во примерот внесени се податоци за име и презиме . Преработи ја програмата така што за внесување на име и презиме / string so poveke zbоrovi, ќе ја користиш функцијата getline
4) Kласа со име vraboten што содржи податочни членки : Prezime (string), Ime(string), Godvrab(int) и функции членки: set, get и функција членка што ќе пресметува работен стаж на вработениот во години.#include <iostream>
#include <string>
using namespace std;
class vraboten
{
//public:
string Prezime,Ime;
int godvrab;
void setPodatoci(string P,string I,int g)
{ Prezime=P;
Ime=I;
godvrab=g; }
string getPodatoci()
{ return Prezime+" "+Ime; }
int Staz(int godvrab)
{ int p;
p=2020-godvrab;
return p; }
};
int main()
{ string P,I;
int g;
vraboten objvraboten;
cout<<"Vnesi Prezime i ime na vraboteniot"<<endl;
cin>>P>>I;
cout<<"Vnesi ja godinata na vrabotuvanje"<<endl;
cin>>g;
objvraboten.setPodatoci(P,I,g);
cout<< “Vraboteniot “<< objvraboten.getPodatoci()<<" ima staz od "<< objvraboten.Staz(g)<<” godini”;
return 0;
}
Izlez:
Vnesi Prezime i ime na vraboteniot
Stojanoska
Ana
Vnesi ja godinata na vrabotuvanje
2010
Vraboteniot Stojanoska Ana ima staz od 10 godini
public - members are accessible from outside the class
#include <iostream>
using namespace std;
class Rectangle
{
public:
int length; //length of rectangle
int breadth; //breadth of rectangle
int getArea()
{
return length * breadth;
}
};
int main()
{
Rectangle rt;
rt.length = 7;
rt.breadth = 4;
int area = rt.getArea();
cout << "Area : " << area << endl;
return 0;
}
private - members cannot be accessed (or viewed) from outside the class
#include <iostream>
using namespace std;
class Rectangle
{
int length;
public:
int breadth;
void setLength( int l );
int getArea();
};
void Rectangle::setLength( int l )
{
length = l;
}
int Rectangle::getArea()
{
return length * breadth;
}
int main()
{
Rectangle rt;
rt.setLength(7);
rt.breadth = 4;
int area = rt.getArea();
cout << "Area : " << area << endl;
return 0;
}
#include <iostream>
using namespace std;
// create a class
class Room {
public:
double length;
double breadth;
double height;
double calculateArea() {
return length * breadth;
}
double calculateVolume() {
return length * breadth * height;
}
};
int main() {
// create object of Room class
Room room1;
// assign values to data members
room1.length = 4.5;
room1.breadth = 3.5;
room1.height = 2;
// calculate and display the area and volume of the room
cout << "Area of Room = " << room1.calculateArea() << endl;
cout << "Volume of Room = " << room1.calculateVolume() << endl;
return 0;
}
Izlez
Area of Room = 15.75
Volume of Room = 31.5
// Program to illustrate the working of public and private in C++ Class
#include <iostream>
using namespace std;
class Room {
private:
double length;
double breadth;
double height;
public:
// function to initialize private variables
void getData(double len, double brth, double hgt) {
length = len;
breadth = brth;
height = hgt;
}
double calculateArea() {
return length * breadth;
}
double calculateVolume() {
return length * breadth * height;
}
};
int main() {
// create object of Room class
Room room1;
// pass the values of private variables as arguments
room1.getData(4.5, 3.5, 2);
cout << "Area of Room = " << room1.calculateArea() << endl;
cout << "Volume of Room = " << room1.calculateVolume() << endl;
return 0;
}
Izlez
Area of Room = 15.75
Volume of Room = 31.5
Збир на првите n природни броеви ( n се внесува преку тастатура)
#include <iostream>
using namespace std;
class Broevi {
private:
int n;
public:
void set_n(int m) {
n = m;
}
void fukncija(int n) {
int suma = 0;
for (int i = 1; i <= n; ++i)
suma += i;
cout<<suma;
}
};
int main() {
Broevi broj;
int n;
cin>>n;
broj.fukncija(n);
return 0;
}
Конструктор / деструктор
Конструктор без параметри
#include <iostream>
using namespace std;
class apple {
public:
int roll;
apple() { // konstruktor
roll=5;
cout<<"Roll is "<<roll<<endl;
}
~apple() { roll=5; // destuktor
cout<<"Roll is "<<roll<<endl;
}
};
int main()
{
apple obj1;
return 0;
}
Конструктор со параметри
1.
#include <iostream>
using namespace std;
class Cube
{
public:
int side;
Cube(int x) {
side=x; }
};
int main()
{ int x,y,z;
cin>>x>>y>>z;
Cube c1(x);
Cube c2(y);
Cube c3(z);
cout << c1.side;
cout << c2.side;
cout << c3.side;
;
return 0;
}
1'.
#include <iostream>
using namespace std;
class Cube
{
public:
int side;
Cube(int x)
{
side=x; }
};
int main()
{ int x;
cout <<"Vnesi go x="; cin>>x;
Cube c1(x);
Cube c2(x+20);
Cube c3(x=30);
Cube c4(x+30);
cout << c1.side<<endl;
cout << c2.side<<endl;
cout << c3.side<<endl;
cout << c4.side;
}
2.
#include <iostream>
using namespace std;
class Proizvod
{ public:
Proizvod( float x , float y )
{ cout<<x*y; }
};
int main ()
{ float br1,br2;
cout<<"Vnesi dva broja"<<endl;
cin>>br1>>br2;
//Proizvod mojProizvod( br1 , br2 ); ili
Proizvod ( br1 , br2 );
return 0;
}
#include <iostream> #include <cmath> using namespace std; class Triangle { private: int a, b, c; public: // Constructor Triangle(int x, int y, int z) { a = x; b = y; c = z; } // Destructor ~Triangle() { } int permeter() { return a + b + c; } float area() { float s = (a + b + c) / 2; return sqrt(s * (s - a) * (s - b) * (s - c)); } }; int main() { int a, b, c; cin >> a >> b >> c; Triangle t(a, b, c); cout << "Area: " << t.area() << endl; cout << "Permeter: " << t.permeter() << endl; return 0; }
Плоштина и волумен на коцка
#include <iostream>
using namespace std;
class Kocka
{
private:
float a;
public:
Kocka(){ //konstruktor-sluzi za inicijalizacija na var klasa
a=10;
}
Kocka(float aa){ //konstruktor so parametri koi se prenesuvaat pri kreiranje klasа
a=aa;
}
//~Kocka() {} // destruktor - ja cisti memorijata koja klasata ja zafatila ( moze no ne mora da stoi )
float plostina()
{return 6*a*a;}
float volumen()
{return a*a*a;}
};
int main() {
Kocka koc;
cout<<"Plostina na kocka " <<koc.plostina()<< endl;
cout<<"Volumen na kocka " <<koc.volumen()<< endl;
float aa; cout<<"\nVpisi a: "; cin>> aa;
Kocka koc2(aa);
cout<<"Plostina na kocka " <<koc2.plostina()<< endl;
cout<<"Volumen na kocka " <<koc2.volumen()<< endl;
return 0;
}
Plostina na kocka 600
Volumen na kocka 1000
Vpisi a: 2
Plostina na kocka 24
Volumen na kocka 8
Напишете класа под име Registracija, која претставува регистрација на автомобили. Класата нека има две јавни варијабли од тип int, со имиња reg1 i reg2, кои содржат два трицифрени броја кои ја чинат регистрацијата.
На пример ако reg1=143, a reg2=186, тогаш регистрацијата е “143-186”.
Класата нека има default konstruktor кој и reg1 и reg2 ги иницијализира на вредност 100. Во главната програма декларирајте објект со име r од класата Registracija, чија вредност ќе биде 234-567”. Испишете ја регистацијата зчувана во објектот r, коректно форматирана .
#include <iostream>
using namespace std;
class Registracija
{ public: int reg1; int reg2;
Registracija();
};
//definiranje na konstruktor
Registracija::Registracija()
{ reg1 = 100; reg2 = 100; }
main()
{ Registracija r;
// javnite varijabli na klasata se postavuvaat na odredenite vrednosti
r.reg1 = 234; r.reg2 = 567;
cout << r.reg1 << "-" << r.reg2 << endl; // ispis registracija
}
Извршете измена на класата Registracija така што reg1 и reg2 ќе бидат приватни варијабли. Креирајте две нови функции :
- функција Postavi која ги поставува вредностите на регистрацијата. Прототипот нека е : void Postavi( int temp1, int temp2); Функцијата Postavi нека податочните членки reg1 и reg2 ги постави на вредности temp1 и temp2, доколку temp1 и temp2 се позитивни трицифрени броеви. Инаку нека не ги менува reg1 i reg2.
- функција Ispisi која ја испишува регистрацијата на екран reg1 - reg2. Прототипот нека е : void Ispisi();
Дефинирај класа podatok која има два реални private податоци x , y. Во public има ф-јa srednaV (inline – vo klasata, пресметува средна вредност на x, y и го печати резултатот ) која нема повратна вредност и нема параметри и конструктор со два реални парамeтри а , b (на податоците x и y им доделува вредности a и b) Дефинирај ги ф-циите, при што конструкторот има подразбирливи вредности 0.0
Во главната програма: Декларирај објект Р на класата podatok предавајќи му вредности 10 и 5 . За објектот P повикај ја ф-јата srednaV
Дефинирај класа slozPodatoci која има tri private податоци x - целоброен , y- реален , z - знаковен. Во public има ф-јa pisiPod ( ги прикажува x, y и z ) која нема повратна вредност и нема параметри и конструктор со три парамeтри а целоброен , b реален c знаковен ( на податокот x – доделува вредност a, на податокот y – доделува вредност b, на податокот z – доделува вредност c ) Дефинирај ги ф-циите.
Во главната програма: Декларирај објект Р на класата slozPodatoci . За објектот P повикај ја ф-јата pisiPod
#include<iostream>
#include<cmath>
using namespace std;
class slozPodatoci
{
int x;
double y;
char z;
public:
void pisiPod();
slozPodatoci(int a, double b, char z);
};
void slozPodatoci::pisiPod()
{
cout<<"Podatocite se "<<x<<" "<<y<<" "<<z<<endl;
}
slozPodatoci::slozPodatoci(int a, double b, char c)
{
x=a;
y=b;
z=c;
}
main()
{
int x1;
double y1;
char z1;
cout <<"Vnesi x="; cin>>x1;
cout <<"Vnesi y="; cin>>y1;
cout <<"Vnesi z="; cin>>z1;
slozPodatoci P(x1,y1,z1);
P.pisiPod();
}
No comments:
Post a Comment