vakho

კოლოქვიუმისთვის – ამოცანა 2

May 4th, 2012
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. /*
  2. 2.  როგორი იქნება შემდეგი პროგრამის გამოსატანი ეკრანი?
  3.     პასუხი დაასაბუთეთ.
  4. */
  5.  
  6. #include<iostream>
  7.  
  8. using namespace std;
  9.  
  10. int func(int = 12);
  11.  
  12. int main()
  13. {
  14.     for(int n = 9; n < 11; ++n)
  15.     {
  16.         cout << n << " " << func(n) << endl;
  17.         int a = func(n);    
  18.         cout << "a = " << a << endl;
  19.     }
  20.     system("pause");
  21.     return 0;
  22. }
  23. int func(int a)
  24. {
  25.     static int b = 1;  
  26.     return b += a;    
  27. }
  28.  
  29. /*
  30.     პასუხი:
  31.         ეკრანზე გამოიტანს: 
  32.         a = 10
  33.         a = 20
  34.  
  35.     დასაბუთება:
  36.         for ციკლში ხდება n–ის 9 და 10 მნიშვნელობისთვის func(n)–ის გამოძახება, მისი მნიშვნელობის a–სთვის მინიჭება და ეკრანზე გამოტანა.
  37.             1. n = 9–ს,     a გახდება 10;
  38.             2. n = 10–ს,    a გახდება 20;
  39.         რადგან b არის ფუნქციის სტატიკური ცვლადი, ამიტომ მისი მნიშვნელობები არ დაიკარგება ფუნქციიდან გასვლიდ შემდეგ.
  40.         პირველ ბიჯზე ფუნქცია: func(n) დააბრუნებს 10–ს, ხოლო მეორე ბიჯზე დააბრუნებს 20–ს.
  41. */
Advertisement
Add Comment
Please, Sign In to add comment