Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* ------- ООП - Лаб. вежби 2 -------
- ----------------------------------
- 1-ва задача [АГОЛ]
- ----------------------------------
- Да се развие податочна структура Agol која ќе биде претставена со степени, минути и секунди. Потоа да се напишат функции во рамки на структурата за операциите собирање и одземање на два агли. Степените, минутите и секундите се цели броеви. Секој агол се прикажува во форматот st°min’sec”. Аголот е во границите од 0°0’0” до 359°59’59”.
- ----------------------------------
- Sample input:
- 70 15 40 30 20 45
- Sample output:
- 70 15 40
- +
- 30 20 45
- =
- 100 36 25
- 70 15 40
- -
- 30 20 45
- =
- 39 54 55
- ---------------------------------- */
- #include <iostream>
- using namespace std;
- // vashiot kod ovde
- struct Agol{
- int stepeni,minuti,sekundi;
- Agol soberi(Agol a2){
- Agol rez;
- rez.stepeni=0;
- rez.minuti=0;
- rez.sekundi=0;
- rez.sekundi=sekundi+a2.sekundi;
- if(rez.sekundi>=60){rez.sekundi-=60; rez.minuti++;}
- rez.minuti+=minuti+a2.minuti;
- if(rez.minuti>=60){rez.minuti-=60; rez.stepeni++;}
- rez.stepeni+=stepeni+a2.stepeni;
- if(rez.stepeni>360)rez.stepeni-=360;
- return rez;
- }
- Agol odzemi(Agol a2){
- Agol rez;
- rez.stepeni=0;
- rez.minuti=0;
- rez.sekundi=0;
- rez.sekundi=sekundi-a2.sekundi;
- if(rez.sekundi<=60){rez.sekundi+=60; rez.minuti--;}
- rez.minuti+=minuti-a2.minuti;
- if(a2.minuti>minuti){rez.minuti+=60; rez.stepeni--;}
- rez.stepeni+=stepeni-a2.stepeni;
- if(rez.stepeni<0)rez.stepeni+=360;
- return rez;
- }
- void pecati(){
- if(stepeni<10)cout<<0;
- cout<<stepeni<<" ";
- if(minuti<10)cout<<0;
- cout<<minuti<<" ";
- if(sekundi<10)cout<<0;
- cout<<sekundi<<"\n";
- }
- };
- int main() {
- Agol a1,a2;
- cin >> a1.stepeni >> a1.minuti >> a1.sekundi;
- cin >> a2.stepeni >> a2.minuti >> a2.sekundi;
- a1.pecati();
- cout << "+" << endl;
- a2.pecati();
- Agol a = a1.soberi(a2);
- cout << "=" << endl;
- a.pecati();
- a1.pecati();
- cout << "-" << endl;
- a2.pecati();
- a = a1.odzemi(a2);
- cout << " = " << endl;
- a.pecati();
- return 0;
- }
- /* ----------------------------------
- 2-ра задача [КРУГ]
- ----------------------------------
- Да се дефинира класа Krug, во која се чуваат информации за:
- -радиус float
- -бројот π const float.
- Во класата да се реализираат:
- -default конструктор и конструктор со аргументи
- -метод за пресметување плоштина
- -метод за пресметување периметар.
- ----------------------------------
- Sample input:
- 5
- Sample output:
- 31.4
- 78.5
- ---------------------------------- */
- #include <iostream>
- using namespace std;
- class Krug {
- private:
- float rad;
- static const float pi=3.14;
- public:
- Krug(float r){rad=r;}
- Krug(){rad=0;}
- ~Krug(){}
- float perimetar(){return 2*rad*pi;}
- float plostina(){return rad*rad*pi;}
- };
- int main() {
- float r;
- cin >> r;
- // Konstruktor so argumenti
- Krug k(r);
- cout << k.perimetar() << endl;
- cout << k.plostina() << endl;
- // default konstruktor
- Krug x;
- return 0;
- }
- /* ----------------------------------
- 3-та задача [ФИЛМ]
- ----------------------------------
- Да се дефинира класа Film, во која ќе се чуваат информации за:
- -име низа од 100 знаци
- -режисер низа од 50 знаци
- -жанр низа од 50 знаци
- -година цел број
- Сите променливи треба да бидат приватни. Соодветно во рамките на класата да се дефинираат:
- -default конструктор и конструктор со аргументи
- -метод за печатење на информациите за филмот
- Дополнително да се реализира надворешна функција:
- -void pecati_po_godina(Film *f, int n, int godina) која ќе прима аргумент низа од филмови, вкупниот број на филмови и година, а треба да ги отпечати само филмовите кои се направени во дадената година.
- ----------------------------------
- Sample input:
- 4
- Frankenweenie
- Tim_Burton
- Animation
- 2012
- Lincoln
- Steven_Spielberg
- History
- 2012
- Wall-E
- Andrew_Stanton
- Animation
- 2008
- Avatar
- James_Cameron
- Fantasy
- 2009
- 2008
- Sample output:
- Ime: Frankenweenie
- Reziser: Tim_Burton
- Zanr: Animation
- Godina: 2012
- Ime: Lincoln
- Reziser: Steven_Spielberg
- Zanr: History
- Godina: 2012
- Ime: Wall-E
- Reziser: Andrew_Stanton
- Zanr: Animation
- Godina: 2008
- Ime: Avatar
- Reziser: James_Cameron
- Zanr: Fantasy
- Godina: 2009
- Ime: Wall-E
- Reziser: Andrew_Stanton
- Zanr: Animation
- Godina: 2008
- ---------------------------------- */
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Film
- {
- private:
- char ime[100];
- char reziser[50];
- char zanr[50];
- int godina;
- public:
- friend void pecati_po_godina(Film* ,int ,int);
- Film(){};
- Film(char *name,char *rez,char *zan,int god)
- {
- strcpy(ime,name);
- strcpy(reziser,rez);
- strcpy(zanr,zan);
- godina=god;
- }
- void pecati()
- {
- cout<<"Ime: "<<ime<<endl;
- cout<<"Reziser: "<<reziser<<endl;
- cout<<"Zanr: "<<zanr<<endl;
- cout<<"Godina: "<<godina<<endl;
- }
- };
- void pecati_po_godina(Film* f,int n,int godina){
- for(int i=0;i<n;i++)if(f[i].godina==godina)f[i].pecati();
- }
- int main() {
- int n;
- cin >> n;
- Film f[n];
- for(int i = 0; i < n; ++i) {
- char ime[100];
- char reziser[50];
- char zanr[50];
- int godina;
- cin >> ime;
- cin >> reziser;
- cin >> zanr;
- cin >> godina;
- f[i] = Film(ime, reziser, zanr, godina);
- f[i].pecati();
- }
- int godina;
- cin >> godina;
- pecati_po_godina(f, n, godina);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement