Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 1.
- დაწერეთ პროგრამის ფრაგმენტი, რომელიც reals.txt ფაილში ჩაწერილ 2000 ნამდვილ რიცხვს
- განათავსებს დინამიკურ მეხსიერებაში (გამოიყენეთ new ოპერატორი), შემდეგ ფაილის რიგით
- მეორე რიცხვისაგან განსხვავებულ რიცხვებს დაბეჭდავს 11 სვეტად. ჩათვალეთ, რომ ასეთი
- რიცხვები ფაილში არის. (3 ქულა)
- */
- #include <iostream>
- #include <iomanip>
- #include <fstream>
- #define Size 2000
- using namespace std;
- int main()
- {
- double *ptr = new double[Size];
- ifstream ifs("reals.txt");
- for (int i = 0; i < Size; i++)
- ifs >> ptr[i];
- ifs.close();
- for (int i = 1, int amount = 0; i < Size; i++)
- {
- if (ptr[1] != ptr[i])
- {
- cout << setw(5) << left << ptr[i] << "\t";
- amount++;
- }
- if (amount % 11 == 0)
- cout << endl;
- }
- cout << endl;
- delete [] ptr;
- ptr = NULL;
- system("PAUSE");
- return (0);
- };
- /*
- 2.
- containers.txt ფაილი შეიცავს ინფორმაციას ტვირთის გადამზიდი კონტეინერების შესახებ – თითოეულის
- საიდენტიფიკაციო ნომერს (მაგალითად, 217AcTe), სიგრძეს, სიგანეს და სიმაღლეს. კონტეინერების
- რაოდენობა არ აღემატება 1000 –ს. დაწერეთ პროგრამა, რომელიც little.txt ფაილში ჩაწერს ყველა
- იმ კონტეინერის საიდენტიფიკაციო ნომერს და მოცულობას, რომელთა მოცულობა არ აღემატება 200 მ^2.
- ამოცანის ამოსახსნელად შექმენით კლასი Container, რომელშიც გაითვალისწინეთ თქვენი აზრის საჭირო
- კლასის ფუნქციები. კლასის ობიექტისთვის გადატვირთეთ >> და << ოპერატორები. მონაცემების ფაილიდან
- წასაკითხად და ფაილში ჩასაწერად შექმენით გლობალური ფუნქციები. მოთხოვნილი თვისების მქონე
- კონტეინერის დასადგენად ასევე შექმენით ფუნქცია. ინფორმაცია containers.txt ფაილიდან განათავსეთ
- დინამიკურ მეხსიერებაში. (6 ქულა)
- */
- #include <iostream>
- #include <fstream>
- #include <string>
- #define Size 1000
- using namespace std;
- class Container
- {
- private:
- string ID;
- double Length, Width, Height;
- public:
- Container(){};
- ~Container(){};
- friend istream& operator >> (istream &cin, Container &a)
- {
- cin >> a.ID >> a.Length >> a.Width >> a.Height;
- return cin;
- };
- friend ostream& operator << (ostream &cout, Container &a)
- {
- cout << a.ID << a.Length << a.Width << a.Height;
- return cout;
- };
- friend bool Predicate(Container &a)
- {
- return ( (a.Length * a.Width * a.Height) < 200 );
- };
- };
- void ReadFromFile(Container *A, ifstream &ifs)
- {
- for (int i = 0; ifs != NULL; i++)
- {
- ifs >> A[i];
- };
- };
- void WriteInFile(Container *A, ofstream &ofs)
- {
- for (int i = 0; i < Size; i++)
- {
- if ( Predicate(A[i]) )
- ofs << A[i];
- };
- };
- int main()
- {
- ifstream ifs("containers.txt");
- Container *ptr = new Container[Size];
- ReadFromFile(ptr, ifs);
- ifs.close();
- ofstream ofs("little.txt");// ( <= 200 )
- WriteInFile(ptr, ofs);
- ofs.close();
- delete [] ptr;
- ptr = NULL;
- system("PAUSE");
- return (0);
- };
- /*
- 3.
- შექმენით კლასი Circle მონაცემებით – წრის ცენტრის კოორდინატები და რადიუსი (ნამდვილი რიცხვები).
- კლასში შემოიღეთ ფუნქციები – პარამეტრებიანი კონსტრუქტორი, დესტრუქტორი, წრის ფართობის გამოთვლის
- ფუნქცია და საჭიროების მიხედვით კლასის სხვა ფუნქციები. Circle კლასის საფუძველზე შექმენით კლასი
- Conus საკუთარი მონაცემით – კონუსის სიმაღლე (ნამდვილი რიცხვი). Conus კლასში შემოიღეთ ფუნქციები –
- პარამეტრებიანი კონსტრუქტორი, დესტრუქტორი, კონუსის მოცულობის გამოსათვლელი ფუნქცია და საჭიროების
- მიხედვით კლასის სხვა ფუნქციები.
- main -ში გააკეთეთ განაცხადი ორივე კლასის თითო–თითო ობიექტზე.
- დაბეჭდეთ წრის მონაცემები და ფართობი, კონუსის მონაცემები და მოცულობა.
- შემდეგ გაზარდეთ კონუსის ფუძის რადიუსი 3–ით და კლვავ დაბეჭდეთ მისი მოცულობა. (6 ქულა)
- */
- #include <iostream>
- #include <iomanip>
- using namespace std;
- class Circle
- {
- protected:
- double x, y, radius;
- public:
- Circle(double x2 = 0., double y2 = 0., double radius2 = 0.):x(x2), y(y2), radius(radius2){};
- ~Circle(){};
- double Area()
- {
- return ( 3.14 * radius * radius );
- };
- void PrintCircleInfo()
- {
- cout << setw(5) << left << x << "\t" << y << "\t" << Area() << endl;
- };
- };
- class Conus : public Circle
- {
- private:
- double height;
- public:
- Conus(double x2 = 0., double y2 = 0., double radius2 = 0., double height2 = 0.)
- :Circle(x2, y2, radius2), height(height2){};
- ~Conus(){};
- double Volume()
- {
- return ( Circle::Area() * height );
- };
- void PrintConusInfo()
- {
- cout << setw(5) << left << x << "\t" << y << "\t" << Volume() << endl;
- };
- void SetRadius(double radius2)
- {
- radius = radius2;
- };
- };
- int main()
- {
- Circle Cir(1.5, 2.5, 5.0);
- Conus Con(1.2, 2.4, 3.0, 7.0);
- Cir.PrintCircleInfo();
- Con.PrintConusInfo();
- Con.SetRadius(6.0);
- cout << Con.Volume() << endl;
- system("PAUSE");
- return (0);
- };
Advertisement
Add Comment
Please, Sign In to add comment