You are on page 1of 7

ლაბორატორიული მეცადინეობა № 1

ლაბორატორიული მეცადინეობის თემები:


ამოცანები:
 C++ -ის მარტივი პროგრამის სტრუქტურა, გამოტანის
ოპერატორი C++ -ში >>> 1-2. სახელისა და გვარის დაბეჭდვა >>>
 მონაცემთა ძირითადი ტიპები >>> 3. ორი რიცხვის ჯამის გამოთვლა >>>
 არითმეტიკული ოპერატორები 4. მთელი n რიცხვის მეხუთედის ბეჭდვა >>>
 გამოსახულების ტიპის განსაზღვრა, მარტივი 5. ნამდვილი რიცხვის მეცხრედის ბეჭდვა
 გამოსახულების მნიშვნელობის გამოთვლა >>> 6. მთელი რიცხვის მესამედის მთელი ნაწილისა და
 გამოსახულების ჩაწერა C++-ზე. C++-ის გამოსახულე- ზუსტი მნიშვნელობის ცვლადებისთვის მინიჭება >>>
ბის გადაყვანა მათემატიკურ ჩანაწერში >>> 7. გამოსახულებების გამოთვლა >>>
დამოუკიდებელი სამუშაო >>>
ლაბორატორიული სამუშაო:

C++ -ის მარტივი პროგრამის სტრუქტურა, გამოტანის ოპერატორი C++ -ში

ამოცანა 1. დაწერეთ პროგრამა, რომელიც დაბეჭდავს თქვენს სახელს და გვარს. პროგრამას დაურთეთ
საწყისი კომენტარები.
შესაბამის C++-პროგრამას აქვს სახე:
/////////////////////////////////////////
// ავტორი:
// პროგრამა: სტუდენტის ვინაობის ბეჭდვა
// თარიღი: 09/18/2023
// online კომპილერი: https://www.onlinegdb.com/online_c++_compiler
/////////////////////////////////////////
#include <iostream> // მიმართვა შეტანა–გამოტანის
using namespace std; // სტანდარტულ კლასებზე
int main() // პროგრამის მთავარი ფუნქცია
{
cout << "I am . . .\n";
// system("PAUSE");
// return 0;
}
დავალება:
ა) შეიტანეთ პროგრამაში ცვლილება: დაბეჭდეთ სახელი, გვარი და მისამართი.
ბ) სახელი, გვარი და მისამართი დაბეჭდეთ ცალ-ცალკე სტრიქონზე.
გ) ჩასვით გამოსატანი ტექსტის – მისამართის – ბოლოში და შემდეგ შუაში რიგრიგობით სიმბოლოები:
\n, \a, \t, \b, \r. თითოეულ შემთხვევაში გაუშვით პროგრამა და გააანალიზეთ შედეგი.

<<< ამოცანა 2. დაწერეთ პროგრამა, რომელიც შემოიტანს სტრიქონის ტიპის 2 ცვლადს სახელისთვის და
გვარისთვის, მოახდენს მათ საწყის ინიციალიზებას, და შემდეგ დაბეჭდავს მისალმების ტექსტს.
შესაბამისი C++-პროგრამის სახეა:
////////////////////////////////////////
// ავტორი:
// პროგრამა: მოცემული სახელისა და გვარის ბეჭდვა
// თარიღი: 09/18/2023
////////////////////////////////////////
#include <iostream>
#include <string>
using namespace std;
int main()
{
string firstName{"Giorgi"},
lastName{"Abashidze"};
cout << "Hello, " << firstName << ' ' << lastName << "!\n";
}
1
დავალება:
ა) გააკეთეთ განაცხადი მთელი ტიპის ცვლადზე ასაკის აღსანიშნავად, განაცხადისთანავე მოახდინეთ
მისი საწყისი ინიციალიზება;
ბ) შემდეგ დაამატეთ პროგრამას კიდევ ერთი სტრიქონი ასაკის დასაბეჭდად.

<<< მონაცემთა ძირითადი ტიპები


სავარჯიშო: გააკეთეთ განაცხადი C++-ის ზოგიერთი ტიპის ცვლადზე და განაცხადშივე მოახდინეთ
ცვლადების საწყისი ინიციალიზება (საწყისი მნიშვნელობების მინიჭება):
// C/C++ -ში მიღებული ინიციალიზების ფორმა
ა) ბ)
string name = "Giorgi"; string name("Giorgi");
int age = 17; int age(17);
double time = 15.30; double time(15.30);
char decimal_point = '.'; char decimal_point('.');
bool is_odd = true; bool is_odd(true);
// C++11 –ში მიღებული ინიციალიზების ფორმა
გ)
string name { "Giorgi" }; int x = 5.7; / / ინიციალიზების შეცდომა არ არის,
string name = { "Giorgi" }; int x (5.7); / / მაგრამ x -ს ენიჭება მნიშვნელობა 5
double time { 15.30 }; int x { 5.7 }; / / ფიქსირდება ინიციალიზების
double time = { 15.30 }; int x = { 5.7 }; / / შეცდომა
char decimal_point { '.' }; char c { 99999 }; / / ფიქსირდება ინიციალიზების
char decimal_point = { '.' }; / / შეცდომა: c -ს კოდი დიდია
/ / ოთხივე განაცხადი ჩაწერს j -ში 0 -ს double d = { 10 }; / / შეცდომა არ არის, d -ს ენიჭება
int j = 0; double d { 10 }; / / მნიშვნელობა 10.0
int j(0);
int j{};
int j = {};

<<< ამოცანა 3. შექმენით პროგრამა, რომელიც გამოითვლის და გამოიტანს ორი რიცხვის ჯამს.
შესაბამისი C++-პროგრამის სახეა:
///////////////////////////////////////
// ავტორი:
// პროგრამა: მოცემული ორი რიცხვის ჯამის გამოთვლა
// და შედეგის ბეჭდვა
// თარიღი: 09/18/2023
///////////////////////////////////////
#include <iostream>
using namespace std;
int main()
{
int number1 = -141, number2(123),
sum;
sum = number1 + number2;
cout << number1 << " + " << number2 << " = "
<< sum << '\n';
double d, f, result;
d = 12.25;
f = 37.5;
result = d + f;
cout << d << " + " << f << " = " << result << endl;
}

2
<<< გამოსახულების ტიპის განსაზღვრა, მარტივი გამოსახულების მნიშვნელობის გამოთვლა

სავარჯიშო:

ა) გამოთვალეთ C++-ზე ჩაწერილი შემდეგი გამოსახულებების მნიშვნელობები და მიანიჭეთ შედეგი


შესაბამისი ტიპის ცვლადს:

 answer ცვლადს მიანიჭეთ n რიცხვის ნახევარი, თუ მოცემულია განაცხადი int n(7); რა


ტიპისა უნდა იყოს answer ცვლადი ზუსტი შედეგის მისაღებად?
 სათანადო ტიპის result ცვლადს მიანიჭეთ k/2, თუ მოცემული გვაქვს განაცხადი
double k(7);
 დაბეჭდეთ და გააანალიზეთ შემდეგი გამოსახულებები
7%2; –12%3; –11%4  –(11%4).

ბ) განსაზღვრეთ C++-ზე ჩაწერილი გამოსახულების ტიპი (მთელი თუ ნამდვილი) და მისი


მნიშვნელობა

 (4 - 9)* 5; 3 + 2.5; 25/4;


 25./4; 19 % 4; -1.5 * (7 + 3).

<<< ამოცანა 4. მოცემული მთელი n რიცხვისთვის დაბეჭდეთ მისი მეხუთედის მთელი ნაწილი და
ზუსტი მნიშვნელობა.
შესაბამის C++-პროგრამას აქვს სახე:
////////////////////////////////////////////////
// ავტორი:
// პროგრამა: მთელი n რიცხვის მეხუთედის ბეჭდვა
// თარიღი: 09/18/2023
////////////////////////////////////////////////
#include <iostream>
using namespace std;
int main()
{
int n = 4;
cout << n/5 << endl;
cout << n/5. << endl;
// system("PAUSE");
// return 0;
}
დავალება:
ა) შეასრულეთ პროგრამა და ახსენით მიღებული შედეგი.
ბ) პროგრამა გაუშვით n–ის შემდეგი მნიშვნელობებისთვის: 9, 17, 33 და გააანალიზეთ შედეგები.

ამოცანა 5. მოცემული ნამდვილი d რიცხვისთვის დაბეჭდეთ მისი მეცხრედი. შემდეგ გაზარდეთ


მიღებული მეცხრედი ერთით და კვლავ დაბეჭდეთ შედეგი.
დავალება:
დამოუკიდებლად დაწერეთ და გამართეთ პროგრამა. შეასრულეთ იგი d -ის მნიშვნელობებისთვის 27.,
49, 193 და გააანალიზეთ შედეგები.

<<< ამოცანა 6. მოცემული მთელი n რიცხვისთვის მიანიჭეთ მისი მესამედის მთელი ნაწილი და ზუსტი
მნიშვნელობა სათანადო ტიპის ცვლადებს. დაბეჭდეთ მიღებული შედეგები.
შესაბამის C++-პროგრამას აქვს სახე:
////////////////////////////////////////////////
// ავტორი:
// პროგრამა: მთელი n რიცხვის მესამედის მთელი ნაწილისა და
3
// ზუსტი მნიშვნელობის გამოთვლა, სათანადო ცვლადებში შენახვა
// და გამოტანა
// თარიღი: 09/18/2023
////////////////////////////////////////////////
#include <iostream>
using namespace std;
int main()
{
int n{ 10 };
int answer = n / 3;
cout << "integer part of division = " << answer << endl;
double result = n / 3.;
cout << "exact value of division = " << result << endl;
// system("PAUSE");
// return 0;
}

<<< გამოსახულებისა და რიცხვების ჩაწერა C++-ზე. C++-ის გამოსახულების გადაყვანა


მათემატიკურ ჩანაწერში
სავარჯიშო:
ა) ჩაწერეთ რიცხვი ფიქსირებული წერტილით და სამეცნიერო ფორმით

 -0,000000892 -0.000000892 -8.92e-07


 3622473,5 3622473.500000 3.62247e+06

ბ) ჩაწერეთ C++-ზე შემდეგი გამოსახულებები:

 −9 (x+ y )−2 , 32 ;  -9*(x + y)-2.3*2.3


2 3 2
5 c −82 ab +a
 ;  5*c*c – 82*a*b*b*b + a*a;

 x [ 23( x + y )−3 ,5( y −x ) ] ;  x*( 23*(x + y) – 3.5*(y - x) );


a−b
 15 ;  (a - b)/15;
−u+3 , 4 z
 uz ;  (-u + 3.4*z)/(u*z); ან (-u + 3.4*z)/u / z;
თუ მნიშვნელში გამოვტოვებთ მრგვალ ფრჩხილებს, მაშინ
−u+3 , 4 z
z ¿ (−u+3 , 4 z )z
(-u + 3.4*z)/u*z;  u u ;
 შემდეგი მაგალითები გაარჩიეთ დამოუკიდებლად
y 73 x
(n−k )−
 x 24 y ;  y*(n - k)/x - 73*x/(24*y);
k ( x− y )+m ( x+ y )
 ( y −x )(k +m ) ;  (k*(x - y) + m*(x + y)) / ((y - x)*(k + m)) ;
თუ მნიშვნელში გამოვტოვებთ მრგვალ ფრჩხილებს:
( k ( x− y )+m ( x + y ) ) ( k +m)
(k*(x-y) + m*(x+y))/(y-x)*(k+m) ;  ( y −x ) ;
c+ d
− −8 cd
3
 d−c ;  ( -(c + d)/3 – 8*c*d )/(d - c);

4
თუ მნიშვნელში გამოვტოვებთ მრგვალ ფრჩხილებს:
c+ d
− −8 cd
3
−c
( -(c + d)/3 – 8*c*d )/d - c;  d ;
თუ გამოვტოვებთ მრგვალ ფრჩხილებს მრიცხველშიც და მნიშვნელშიც:

c+ d 8 cd
− − −c
3 d
-(c + d)/3 – 8 * c * d/d - c;  .

გ) C++-ზე ჩაწერილი გამოსახულებები ჩაწერეთ ჩვეულებრივი ფორმით:

 0.25 * x * x + 4 * x *y + 3.7 * y * y;  0,25 x 2 +4 xy+3,7 y 2 ;


km
 k * m /(5 * m – 2 * k);  5 m−2 k ;
( a+ c ) y z
+
 (a + c)/x * y + z/(b + x);  x b+ x ;
 შემდეგი მაგალითები გაარჩიეთ დამოუკიდებლად

d b+a
+
 d/(a * b) + (b + a)/d;  ab d ;
db b+a
+
 d/a * b + (b + a)/d;  a d ;
ab
−27(c +d )
5
 ( a * b/5 – 27 *(c + d))/(0.43 * n);  0 , 43 n ;
u 0 , 05 z

 u/(z - 0.3 * u) - 0.05/u * z;  z−0 , 3u u ;
9 , 2(k−2 n ) 7,9

 9.2*(k - 2*n)/k – 7.9/((n + 1)*(n -2) + 3);  k (n+1)(n−2 )+3 .

<<< ამოცანა 7. დაწერეთ პროგრამა, რომელიც მოცემული მთელი a და b რიცხვებისთვის


გამოითვლის
ა). 2,5(a + b) გამოსახულების მნიშვნელობას, შეინახავს შესაბამისი ტიპის c ცვლადში და
შემდეგ დაბეჭდავს;
ბ). (2a - b)+ 0,5ab გამოსახულების მნიშვნელობას, შეინახავს შესაბამისი ტიპის d ცვლადში
და შემდეგ დაბეჭდავს;
გ). a და b რიცხვების საშუალო არითმეტიკულს, შეინახავს შესაბამისი ტიპის average ცვლადში
და შემდეგ დაბეჭდავს.
ა).
////////////////////////////////////////////////
// ავტორი:
// პროგრამა: 2,5(a + b) გამოსახულების გამოთვლა
// თარიღი: 09/18/2023
////////////////////////////////////////////////
#include <iostream>
using namespace std;
int main()

5
{
int a = 10, b = 3;
double c;
c = 2.5 *(a + b);
cout << "c = " << c << '\n'; // პასუხი
// ან
cout << "\na = " << a << ", b = " << b << endl; // სრული პასუხი
cout << "2.5 *(a + b) = " << c << endl;
// system("PAUSE");
// return 0;
}
დავალება:
ა) შეასრულეთ პროგრამა და ახსენით მიღებული შედეგი.
ბ) შექმენით კოდი შემდეგი ორი დავალების შესასრულებლად, შეასრულეთ პროგრამა და ახსენით
მიღებული შედეგები.

<<< დამოუკიდებელი სამუშაო:


1. დაწერეთ პროგრამა, რომელიც ეკრანზე გამოიტანს შემდეგ ტექსტს:
გაიღიმე! გაიღიმე! გაიღიმე!
გაიღიმე! გაიღიმე!
გაიღიმე!

2. დაწერეთ პროგრამა, რომელიც მოცემული მთელი a რიცხვისთვის დაბეჭდავს მისი მესამედის


მთელ ნაწილს და ზუსტს მნიშვნელობას. პროგრამა შეასრულეთ a–ს მნიშვნელობებისთვის 2, 10,
25. ახსენით მიღებული შედეგები.
3. დაწერეთ პროგრამა, რომელიც C++ -ზე ჩაწერილი გამოსახულების მნიშვნელობას შეინახავს
სათანადო ტიპის ცვლადში და შემდეგ დაბეჭდავს:
ა) (3 + 7.)*12;
ბ) c/5 + 8.35, თუ c მთელი რიცხვია და უდრის 15 -ს;
გ) (14%3 + 2)/5;
დ) (a + b + c)/3, თუ მოცემული გვაქვს აღწერა int a = 2, b = 1, c { 4 };
ე) (m + n)/2.0, თუ მოცემული გვაქვს აღწერა int n(3), m = { 4 };
ვ) 14 - x/4, თუ x ნამდვილი რიცხვია და უდრის 9 -ს.

4. გამოთვალეთ და დაბეჭდეთ ax2 + bx + c სამწევრის მნიშვნელობა, თუ x უდრის 10 -ს, 50 -ს


და 100 -ს, ხოლო a = 0.5, b = 3, c = 100.
5. ჩაწერეთ C++-ზე შემდეგი რიცხვები და გამოსახულებები:

 -6750; ; 0,04; 921,054; -0,000075;


 10x; y + 48; 3,25a - 14b; 42p2 - 8; c3;
b−a
 3 ; (x + y)2; c 2 + cd+ d 2 ; -5ax2 + 4,25bx - 3c;
k mn a−b y c+ b
+ + 2
 mn k ; y1 a+b ; ( x21 + y 21 )( x 22− y 22 ) ; 9 a (b−c ) ;
( a+1 )2
 [ 3 ( p−q )+5 ( p+q )] z ; 2,7{ x +[(x - 2y)2 + 5,09y ] }; a2 −1 ;

6
1 1 x+ y
2 + 10
1−2 y + y 1 n m 1 1 a−c bc
+ − −
 y 3+ 1 ; ac+3 b−ab ; n−m ; x y; b +d a+ c .
6. C++-ზე ჩაწერილი გამოსახულებები ჩაწერეთ ჩვეულებრივი ფორმით:
k * n/(n + k); x – y /3 * z; a * b/(c - a)*(b + c);
(12 * t*(x + y)- z*p)/d; m/(6*(k-n)+(3*m-n)/k);
(5.4*(a*a + b)- d)/ b * b * d; 0.06 *(a - b)*(a - b)/((a + b)*(a + b)-1.25);
(c /(b + d)- 8 *a)/(a /(d - b)+ b /a * c).

7. დაწერეთ C++-ზე პროგრამა, რომელიც გამოითვლის


ah
S=
ა) სამკუთხედის ფართობს: 2 , სადაც a სამკუთხედის გვერდია, h კი მასზე დაშვებული
სიმაღლე.
ბ) წრეწირის სიგრძეს (პერიმეტრს): L=2 πR , სადაც R წრის რადიუსია;
2
გ) კვადრატის ფართობს და პერიმეტრს: S= x და P=4 x , სადაც x კვადრატის გვერდია;
დ) მართკუთხედის ფართობს და პერიმეტრს: S=ab და P=2 (a+b ) , თუ მართკუთხედის და
გვერდები მოცემული ნამდვილი რიცხვებია;
2
ე) დაწერეთ პროგრამა, რომელიც გამოითვლის წრის ფართობს: S=πR , თუ წრის რადიუსი
R მოცემული ნამდვილი რიცხვია.

8. ცვლადების მნიშვნელობების მიხედვით განსაზღვრეთ მათი ტიპი

ა) 'a'; ბ) -27; გ) true; დ) "I study C++"; ე) -101.0037; ვ) '9';


ზ) false; თ) 50074; ი) 3.14159; კ) "Bjarne Stroustrup".

You might also like