mecadineoba # 7
praqtikuli mecadineobis Temebi: laboratoriuli mecadineobis Temebi:
funqciis parametrebi, dasabrunebeli udidesi elementi ricxvebs Soris
mniSvneloba da veqtorSi
funqciis prototipi, gansazRvra palindromi
funqciis gamoZaxeba SemTxveviTi namdvili ricxvi
amocanebi: amocanebi:
1. funqcia ariTmetikuli gamosaxulebis 1. or mTels Soris udidesis povnis
gamoTvlisTvis…>>> funqcia >>>
2. funqcia simboloTa Soris laTinuri 2. mocemul mTel SualedSi namdvili
anbanis asos amocnobisTvis…>>> SemTxveviTi ricxvis generireba >>>
3. count algoriTmis gamoyenebis 3. palindromis gamocnobis funqcia >>>
magaliTi >>> 4. veqtoris udidesi elementis indeqsis
4. count_if algoriTmis gamoyenebis gansazRvris funqcia >>>
magaliTi >>> damoukidebeli samuSao >>>
damoukidebeli samuSao >>>
masala damoukideblad gacnobisaTvis:
1. martivi funqciebis da ZiriTad programaSi maTi gamoZaxebis nimuSebi.
miTiTeba: imisaTvis rom vnaxoT Seqmnili funqciis muSaobis Sedegi, moyvanili
fragmentebi unda SevavsoT srul programamde. magaliTad, pirveli
fragmentisTvis unda davweroT:
#include <iostream>
using namespace std;
int my_abs(int );
int main(){
int a, n;
cin >> a;
n = my_abs(a);
cout << n << endl;
system("pause");
return 0;
}
int my_abs(int x){
if(x >= 0) return x;
return -x;
}
}
xolo sxva nimuSebSi SevcvaloT funqciis saTauri (prototipi), main()-is
fragmenti da funqciis gansazRvra Sesabamisad.
funqciis gamoZaxeba -
# funqcia
main()-is fragmenti
int main(){
/*funqcia poulobs mTeli ricxvis moduls*/ int a, n;
int my_abs(int x){ cin >> a;
1 if(x >= 0) return x; n = my_abs(a);
return -x; cout<<n<<endl;
} . . .
}
/* funqcia poulobs namdvili ricxvis moduls */ int main(){
2
float my_fabs(float x){ float y, k;
კ. გელაშვილი, ი. ხუციშვილი 53
if(x < 0) return -x; cin >> y;
return x; k = my_fabs(y);
} cout<<k<<endl;
. . .
}
/* funqcia adgens ricxvis niSans */ int main(){
float n; int s;
int my_sign(float x){ cin >> n;
3 if(x > 0) return 1; s = my_sign(n);
else if(x == 0) return 0; cout<<s<<endl;
return -1; . . .
} }
int main(){
/* funqcia poulobs 2 mTeli ricxvidan udidess */ int m, n, max;
int my_max2(int a, int b){ cin >> m >> n;
4 if(a > b) return a; max = my_max2(m,n);
return b; cout<<max<<endl;
} . . .
}
int main(){
/* funqcia poulobs 2 namdvili ricxvidan umciress float a, b, min;
*/ cin >> a >> b;
5 float my_fmin2(float x, float y){ min = my_fmin2(a,b);
return (x < y) ? x : y; cout<<min<<endl;
} . . .
}
int main(){
/* funqcia poulobs 3 mTeli ricxvidan umciress */ int k, n, m, min;
int my_min3(int a, int b, int c){ cin >> k >> n >> m;
int m = a; min = my_min3(k,n,m);
6 if(b < m) m = b; cout<<min<<endl;
if(c < m) m = c; . . .
return m; }
}
/* funqcia poulobs 3 namdvili ricxvidan udidess */ int main(){
float x, y, z, max;
float my_fmax3(float a,float b,float c){ cin >> x >> y >> z;
float m = a; max = my_fmax3(x,y,z);
7 if(b > m) m = b; cout<<max<<endl;
if(c > m) m = c; . . .
return m; }
}
int main(){
/* funqcia iTvlis mTeli ricxvis kvadrats */ int k;
int square(int a){ cin >> k;
8
return a * a; cout<<square(k)<<endl;
} . . .
}
/* funqcia iTvlis ori mTeli ricxvis int main (){
saSualos */ int a, b; double rez;
double average(int n, int m){ cin >> a >> b;
9 return (n + m)/2.; rez = average(a,b);
} cout<<rez<<endl;
. . .
}
int main(){
/* funqcia poulobs SemTxveviT ricxvs
int b, b, number;
[a,b] Sualedidan */ cin >> b >> b;
11 number = my_rand(b, b);
int my_rand(int a, int b){ cout<<number<<endl;
return rand()%(b + 1 - a) + a; . . .
} }
კ. გელაშვილი, ი. ხუციშვილი 54
/* funqcia iTvlis x ricxvis mTel n xarisxs, int main(){
x 0 , n 0 */ float x, degree;
float my_pow(float x, int n){ int n;
// precondition: n >= 0, x != 0 cin >> x >> n;
float d = 1; int i; degree = my_pow(x, n);
12 if(n == 0) return 1; cout<<degree<<endl;
else{ . . .
for(i = 1; i <= n; i++) }
d *= x;
return d;
}
}
2. martivi bool tipis funqciebi (funqcia-predikatebi) da ZiriTad programaSi maTi
gamoZaxebis magaliTebi
# funqcia funqciis gamoZaxeba
int main(){
/* funqcia adgens aris Tu ara mTeli n ricxvi int number, k;
3 –is jeradi */ cin >> number;
int Multiple_3(int n){ k = Multiple_3(number);
if(n % 3 = = 0) return 1; if(k == 1)
1 return 0; cout<<number<<" aris 3-is"
} " jeradi\n";
else cout<<number<<" ar aris"
" 3-is jeradi\n";
. . .
}
/* funqcia adgens aris Tu ara mTeli a ricxvi int main(){
luwi */ int num;
int IsEven(int n){ cin>>num;
return n % 2 = = 0; if( IsEven(num) )
2 } cout<<num<<" is even\n";
else cout<<num<<" is't"
" even\n";
. . .
}
/* funqcia adgens aris Tu ara namdvili d int main(){
ricxvi uaryofiTi */ float num;
cin >> num;
bool IsNegative(float d){ if( IsNegative(num) )
3 if(d < 0) cout<<num<<" is negative\n";
return true; else cout << num << " is't"
return false; " negative\n";
} . . .
}
/* funqcia adgens aris Tu ara mTeli n ricxvi int main(){
int number;
dadebiTi da 5 –is jeradi */
bool answer;
bool func(int n){ cin >> number;
if(n > 0 && n % 5 = = 0) answer = func(number);
4 return true; if(answer)
return false; puts("Yes");
} else puts("No");
. . .
}
/* funqcia adgens aris Tu ara misi parametri int main(){
simbolo-cifri */ char ch;
5 bool IsDigit(char p){ cin >> ch;
if(p >= '0' && p <= '9') if( IsDigit(ch) )
return true; cout<<ch<<" aris "
return false; "simbolo-cifri\n";
კ. გელაშვილი, ი. ხუციშვილი 55
} else cout << ch <<" ar aris "
"simbolo-cifri\n";
. . .
}
int main(){
/* funqcia adgens aris Tu ara misi parametri char sym;
didi aso */ cin >> sym;
if( IsUpperLetter(sym) )
bool IsUpperLetter(char p){ cout << sym << " aris"
6 return (p >= 'A' && p <= 'Z'); " didi aso\n";
else cout<<sym<<" ar aris"
} " didi aso\n";
. . .
}
saauditorio samuSao:
<<< 1. dawereT funqcia, romelic gamoiTvlis gamosaxulebas 2 x 3 3x 2 5x 10 ,
sadac x mTeli ricxvia. gamoiZaxeT funqcia ZiriTad programaSi klaviaturidan
Semotanili mTeli ricxvisTvis da Sedegi dabeWdeT.
#include <iostream>
using namespace std;
int func(int x); // ფუნქციის პროტოტიპი (ფუნქციაზე განაცხადი)
int main(){
int a, rezult;
cout<<"ShemoitaneT mTeli ricxvi ";
cin>>a;
rezult = func(a); // ფუნქციის გამოძახება
cout<<"Gamosaxuleba = "<<rezult<<endl;
return 0;
}
// ფუნქციის განსაზღვრა
int func(int x){
return 2*x*x*x+3*x*x-5*x-10;
}
programa dabeWdavs:
ShemoitaneT mTeli ricxvi 5
Gamosaxuleba = 290
Press any key to continue . . .
<<< 2. SeqmeniT funqcia prototipiT bool IsLetter(char p), romelic daadgens
aris Tu ara misi p parametri laTinuri anbanis aso. gamoiZaxeT funqcia ZiriTad
programaSi klaviaturidan Semotanili simbolosTvis da Sedegi dabeWdeT.
#include <iostream>
using namespace std;
bool IsLetter(char p);
int main(){
char sym;
cout<<"ShemoitaneT simbolo : ";
cin>>sym;
if( IsLetter(sym) )
cout<<sym<<" aris aso\n";
else cout<<sym<<" ar aris aso\n";
return 0;
}
კ. გელაშვილი, ი. ხუციშვილი 56
bool IsLetter(char p){
return (p >= 'a' && p <= 'z'
|| p >= 'A' && p <= 'Z')
}
programa dabeWdavs:
ShemoitaneT simbolo : R
R aris aso
Press any key to continue . . .
<<< 3. numbers.dat failSi Cawerilia mTeli ricxvebi. daiTvaleT, ramdeni
cxriania failSi.
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int number;
vector<int> N;
ifstream fin("numbers.dat");
while(fin>>number)
N.push_back(number);
int quantity;
quantity = count( N.begin(), N.end(), 9);
cout<<quantity<<endl;
return 0;
}
programis Sesrulebis Sedegia:
numbers.dat faili gamosatani ekrani
1 2 3 4 9 6 7 8 9 10 11 12 13 9 15 3
Press any key to continue . . .
<<< 4. numbers.dat failSi Cawerilia mTeli ricxvebi. daiTvaleT, maTgan ramdenia
kenti.
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
bool isOdd(int x) // ფუნქცია–პრედიკატზე განაცხადი
{ // და მისი განსაზღვრა
return x % 2 != 0;
}
int main(){
int number;
vector<int> N;
ifstream fin("number.dat");
while(fin>>number)
N.push_back(number);
int quantity;
// აქ გამოიყენება ფუნქცია isOdd
quantity = count_if( N.begin(), N.end(), isOdd);
კ. გელაშვილი, ი. ხუციშვილი 57
cout<<quantity<<endl;
return 0;
}
programis Sesrulebis Sedegia:
numbers.dat faili gamosatani ekrani
1 2 3 4 9 6 7 8 9 10 11 12 13 9 15 9
Press any key to continue . . .
<<< damoukidebeli samuSao:
1. dawereT funqcia, romelic gamoiTvlis gamosaxulebas:
a) x 3 4 x 2 5x 7 ;
b) 0.5x 2 2.5x 12 .
x mTeli ri.cxvia. gamoiZaxeT funqcia ZiriTad programaSi klaviaturidan
Semotanili mTeli ricxvisTvis da Sedegi dabeWdeT.
2 x 34, Tu x 10,
2. mocemulia piroba f ( x)
x x 1, winaaRmdeg SemTxvevaSi.
2
dawereT funqcia, romelic gamoiTvlis f (x) -is mniSvnelobas mTeli x
ricxvisTvis. gamoiZaxeT funqcia ZiriTad programaSi klaviaturidan Semotanili
mTeli ricxvisTvis da Sedegi dabeWdeT.
gaarCieT am amocanis Sesabamisi programa:
#include <iostream>
using namespace std;
int function(int x);
int main(){
int a, rezult;
cout<<"ShemoitaneT mTeli ricxvi ";
cin>>a;
rezult = function(a);
cout << "Gamosaxuleba = " << rezult << '\n';
//system("PAUSE");
return 0;
}
int function(int x){
if(x >= 10) return 2*x+34;
return x*x-x-1;
}
programis Sesrulebis Sedegia:
ShemoitaneT mTeli ricxvi 7
Gamosaxuleba = 41
Press any key to continue . . .
davaleba:
a) SeasruleT programa kompiuterze sxvadasxva mTeli a ricxvisTvis;
b) axseniT function funqciis algoriTmi.
3. mocemulia piroba:
5 x 3 12, Tu x 3,
a) f ( x) ;
x 2 x 4, winaaRmdeg SemTxvevaSi.
2
კ. გელაშვილი, ი. ხუციშვილი 58
0.2 x 3.45, Tu x 10,
b) f ( x) 2 ;
x x 1, winaaRmdeg SemTxvevaSi.
7 x 2 3, Tu x 1,
g) f ( x) x 25, Tu x 0, ;
x 6 x 8, Tu x 1.
3
11.4 x 0.3, Tu x 5,
d) f ( x) x 2.5 x 9, Tu x 5,
2
.
x 3 8, Tu x 5.
dawereT funqcia, romelic gamoiTvlis f (x) -is mniSvnelobas mTeli x
ricxvisTvis. gamoiZaxeT funqcia ZiriTad programaSi klaviaturidan Semotanili
mTeli ricxvisTvis da Sedegi dabeWdeT.
4. mocemulia piroba:
100.5 x 3 50, Tu x 20.5,
a) f ( x) ;
20 x 45.5, winaaRmdeg SemTxvevaSi.
15 x 2 30 x 20, Tu x 10.5,
b) f ( x) x 3 40 x 50, Tu x 10.5, .
x 25.5, Tu x 10.5.
dawereT funqcia, romelic gamoiTvlis f (x) -is mniSvnelobas namdvili x
ricxvisTvis. gamoiZaxeT funqcia ZiriTad programaSi klaviaturidan Semotanili
namdvili ricxvisTvis da Sedegi dabeWdeT.
5. dawereT funqcia, romelic daadgens:
a) aris Tu ara mTeli n ricxvi uaryofiTi. n funqciis parametria;
b) aris Tu ara mTeli k ricxvi 5 –is an 7 –is jeradi. k funqciis parametria;
g) aris Tu ara namdvili m ricxvi 10 –ze naklebi. m funqciis parametria;
d) bolovdeba Tu ara mTeli a ricxvi 3 –iT an 9 -iT. a funqciis parametria;
e) warmoadgens Tu ara misi parametri - simbolo b - patara asos;
v) aris Tu ara mTeli m ricxvi samniSna. m funqciis parametria.
6. dawereT funqcia, romelic ipovis:
a) m –dan n –mde CaTvliT kenti ricxvebis saSualo ariTmetikuls. m da n
funqciis parametrebia;
b) c –dan d –mde CaTvliT luwi ricxvebis raodenobas. c da d funqciis
parametrebia;
g) a –dan b –mde CaTvliT 7 –is jeradi ricxvebis jams. a da b funqciis
parametrebia;
d) k –dan m –mde CaTvliT 3 –is jeradi ricxvebis saSualo ariTmetikuls. k da
m funqciis parametrebia.
7. SeqmeniT funqcia, romelic:
a) gamoiTvlis sami mTeli ricxvis saSualo ariTmetikuls. gamoiyeneT funqcia
ZiriTad programaSi da dabeWdeT miRebuli Sedegi;
b) daabrunebs mTeli ricxvis kubs. es ricxvi funqciis parametrs warmoadgens.
gamoiyeneT funqcia main-Si da dabeWdeT 1-dan 100-mde ricxvTa kubebi;
კ. გელაშვილი, ი. ხუციშვილი 59
g) gamoiTvlis marTkuTxedis farTobs (marTkuTxedis sigrZe da sigane – funqciis
parametrebia). gamoiyeneT funqcia ZiriTad programaSi da SeadareT 2
marTkuTxedis farTobi;
d) daabrunebs 2 mTel ricxvs Soris umciress. ricxvebi funqciis parametrebs
warmoadgenen. gamoiyeneT funqcia ZiriTad programaSi da ipoveT 4 mTel
ricxvs Soris umciresi;
e) gamoiTvlis samkuTxedis farTobs 3 gverdis mixedviT. gamoiyeneT funqcia
ZiriTad programaSi da SeadareT 2 samkuTxedis farTobi;
v) daabrunebs 1-s, Tu misi parametri–simbolo aris xmovani aso, winaaRmdeg
SemTxvevaSi daabrunebs 0-s. ZiriTad programaSi gamoiZaxeT funqcia sxvadasxva
simboloebisaTvis;
z) parametrad miiRebs simbolos, da Tu es simbolo-cifria – daabrunebs mis
kods, winaaRmdeg SemTxvevaSi ki daabrunebs –1-s. gamoiyeneT funqcia failSi
Cawerili simboloebis mimdevrobisaTvis.
8. gaarCieT programa, romelic xsnis Semdeg amocanas:
umciresi mTeli ricxvi, romelic metia log 2 N -ze, warmoadgens bitebis
raodenobas mTeli N ricxvis orobiT CanawerSi. dawereT funqcia, romelic
gamoiTvlis log 2 N -ze met umcires mTel ricxvs. gamoiyeneT funqcia mTeli N
ricxvis orobiT warmodgenaSi bitebis raodenobis gansazRvrisTvis.
#include <iostream>
using namespace std;
int my_log2(int N);
int main(){
int N, degree;
cin >> N;
degree = my_log2(N);
cout << degree << endl;
system("PAUSE");
return 0;
}
int my_log2(int N){
int d;
if(N < 0) N = -N;
for(d =0; N > 0; d++, N /= 2);
return d;
}
programis Sesrulebis Sedegia:
9
4
Press any key to continue . . .
davaleba:
a) SeasruleT programa kompiuterze sxvadasxva mTeli N ricxvisTvis;
b) axseniT my_log2 funqciis algoriTmi.
9. dawereT funqcia, romelic iTvlis:
1 1 1 1 1 1
a) 1 jams; b) 1 jams, sadac kenti n ricxvi
2 3 20 3 5 n
funqciis parametria.
or cvlads Soris udidesis dadgenis funqcia
funqciis Seqmna, romelic daadgens, warmoadgens Tu ara striqoni palindroms
კ. გელაშვილი, ი. ხუციშვილი 60
laboratoriuli samuSao:
<<< amocana 1: SeqmeniT funqcia, romelic ipovis 2 mTeli ricxvidan udidess. es
ricxvebi funqciis parametrebia. gamoiyeneT funqcia main-Si klaviaturidan
Semotanili 2 mTeli ricxvisTvis da dabeWdeT maT Soris udidesi.
programis saxe Semdegia:
///////////////////////////////////////////
// პროგრამა: 2 მთელ რიცხვს შორის უდიდესის
// პოვნა
///////////////////////////////////////////
#include <iostream>
using namespace std;
int max2Int(int , int );
int main(){
int a, b;
cout << "SemoitaneT 2 mTeli ricxvi : ";
cin >> a >> b;
int max = max2Int(a, b);
cout << "udidesia " << max << endl;
//system("PAUSE");
return 0;
}
int max2Int(int x, int y){
return x > y ? x : y;
}
davalebebi:
1. SeasruleT programa sxvadasxva a da b ricxvebisTvis.
2. gaarCieT Tu ras akeTebs Semdegi programa:
///////////////////////////////////////
// პროგრამა: 2 სტრიქონს შორის უდიდესის
// პოვნა
///////////////////////////////////////
#include <iostream>
#include <string>
using namespace std;
string max2String(string , string );
int main(){
string a, b;
cout << "SemoitaneT 2 striqoni : ";
cin >> a >> b;
string max = max2String(a, b);
cout << "udidesia " << max << endl;
system("PAUSE");
return 0;
}
string max2String(string x, string y){
return x > y ? x : y;
}
<<< amocana 2: SeqmeniT funqcia, romelic klaviaturidan Seyvanili ori namdvili
ricxvisTvis daabrunebs am ricxvebs Soris moTavsebul erT-erT SemTxveviT ricxvs.
programas aqvs Semdegi saxe:
#include <iostream>
#include <cmath>
using namespace std;
double realRand(double , double );
კ. გელაშვილი, ი. ხუციშვილი 61
int main(){
cout << "ra shualedidan gindaT SemTxveviTi ricxvebis generireba?" << endl
<< "shemoitanet ori namdvili ricxvi" << endl;
cout << "SemoitaneT 2 mTeli ricxvi : ";
double a,b;
cin >> a >> b;
cout << "oci shemtxveviti ricxvi [" << a << ',' << b << "] shualedidan: " << endl;
for(int i=0; i < 20; ++i)
cout << realRand(a,b) << endl;
//system("PAUSE");
return 0;
}
double realRand(double x, double y){
return x+ ((double)rand()/RAND_MAX)*(y-x);
}
davaleba:
1. SeasruleT programa sxvadasxva a da b striqonebisTvis.
2. miaqcieT yuradReba, aqvs raime mniSvneloba a<=b sruldeba Tu piriqiT?
<<< amocana 3: dawereT funqcia, romlis parametri aris striqoni. funqciam unda
daadginos, warmoadgens Tu ara igi palindroms. striqoni aris palondromi, Tu is
erTnairad ikiTxeba rogorc marjvnidan marcxniv, ise marcxnidan marjvniv. magaliTad,
ANNA – striqoni-palindromia. gamoiyeneT funqcia klaviaturidan Semotanili
striqonisTvis da dabeWdeT Sedegi.
programis saxe Semdegia:
///////////////////////////////////////////
// პროგრამა: სტრიქონის შებრუნება
///////////////////////////////////////////
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
bool Palindrom(string );
int main(){
string s; bool p;
cout << "Enter string\n";
getline(cin, s);
p = Palindrom(s);
if( p ) cout << "Is Palindrom" << endl;
else cout << "Is't Palindrom" << endl;
//system("pause");
return 0;
}
bool Palindrom(string k){
string s = k;
reverse(k.begin(), k.end());
return (s == k);
}
davaleba:
a) SeasruleT programa sxvadasxva striqonebisaTvis, magaliTad, ai ia, level, Ai
Ia.
b) axseniT Palindrom funqciis algoriTmi.
c) gaarCieT palindrom funqciis altenatiuli kodi, romelic ar iyenebs
standartul algoriTms:
კ. გელაშვილი, ი. ხუციშვილი 62
bool Palindrom(string k){
int i, len;
len = k.size();
for(i=0; i<len/2; i++)
if(k[i] != k[len-1-i])
return false;
return true;
}
<<< amocana 4: failSi “data.txt” weria ramdenime namdvili ricxvi. gadawereT es
ricxvebi veqtorSi, Semdeg gansazRvreT maT Soris udidesis indeqsi. indeqsis
gansazRvrisTvis SeqmeniT Sesabamisi funqcia.
//-------------------------------------------------------------//
// პროგრამა: ვექტორის მაქსიმალური ელემენტის ინდექსის განსაზღვრა //
//-------------------------------------------------------------//
using namespace std;
int maxIndex(const vector<double>);
int main(){
vector<double> vec;
double x;
ifstream ifs("data.txt");
while(ifs >> x)
vec.push_back(x);
if( vec.size() > 0 )
cout << "Index of maximum element: " << maxIndex(vec) << endl;
else cout << "Vector is empty!" << endl;
//system("pause");
return 0;
}
int maxIndex(const vector<double> v)
{
int ind(0);
for(int i = 1; i<v.size(); ++i)
if(v[ind] < v[i])
ind = i;
return ind;
}
davaleba:
a) SecvaleT kodi ise, rom funqciam ipovos minimaluri elementis indeqsi.
b) SecvaleT kodi ise, rom funqcias gadaewodos klaviaturidan Sevsili veqtori.
b) ra gavlenas axdens funqciis Sedegze const rezervirebuli sityva?
<<< damoukidebeli samuSao:
1. SeqmeniT funqcia, romelic ipovis 2 simbolodan udidess. es simboloebi funqciis
parametrebia. gamoiyeneT funqcia main-Si klaviaturidan Semotanili 2
simbolosTvis da dabeWdeT maT Soris udidesi.
2. dawereT funqcia, romelic ipovis 2 namdvili ricxvidan udidess. es ricxvebi
funqciis parametrebia. gamoiyeneT funqcia main-Si klaviaturidan Semotanili 2
namdvili ricxvisTvis da dabeWdeT maT Soris udidesi.
3. dawereT funqcia, romelic gamoiTvlis naturaluri n ricxvis cifrTa jams.
gamoiZaxeT funqcia main-Si klaviaturidan Setanili n ricxvis cifrTa jamis
dasadgenad. miRebuli Sedegi dabeWdeT.
gaarCieT Sesabamisi programa:
#include <iostream>
კ. გელაშვილი, ი. ხუციშვილი 63
using namespace std;
int DigitsSum(int );
int main(){
int number, sum;
cin >> number;
sum = DigitsSum(number);
cout << "Digits sum of " << number
<< " = " << sum << endl;
system("pause");
return 0;
}
int DigitsSum(int n){
int s =0;
while(n != 0){
s += n % 10;
n /= 10;
}
return s;
}
davaleba:
a) SeasruleT programa sxvadasxva naturaluri ricxvisTvis.
b) axseniT DigitsSum funqciis algoriTmi
g) SecvaleT funqciaSi while(N != 0) striqoni while( N ) –iT, kvlav
SeasruleT programa da axseniT Sedegi.
4*. dawereT funqcia, romelic daadgens, warmoadgens Tu ara naturaluri m ricxvi
palindroms. ricxvi aris palindromi, Tu is erTnairad ikiTxeba rogorc
marcxnidan marjvniv ise marjvnidan marcxniv. magaliTad, 12321 – palindromia.
5.* dawereT funqcia, romelic daadgens aris Tu ara naturaluri n ricxvi
avtomorfuli. ricxvi aris avtomorfuli, Tu misi kvadratis Canaweri bolovdeba
amave ricxviT. magaliTad, 5, 6, 25 da a.S. – avtomorfuli ricxvebia.
6*. dawereT funqcia, romelic daadgens aris Tu ara naturaluri m ricxvi
srulyofili. ricxvi aris srulyofili, Tu is udris yvela Tavisi gamyofis
jams, garda Tavis Tavisa. magaliTad, ricxvi 6 – srulyofilia, vinaidan 6=1+2+3.
7*. dawereT funqcia, romelic daadgens aris Tu ara naturaluri n ricxvi martivi.
8. fibonaCis ricxvebi ganisazRvreba Semdegi wesiT: F0 F1 1 , Fn Fn1 Fn2 , Tu
n 2 . dawereT funqcia, romelic Cawers veqtorSi pirvel K fibonaCis ricxvs da
Semdeg dabeWdavs veqtors.
gaarCieT Sesabamisi C++– programa:
#include <iostream>
#include <vector>
using namespace std;
void Fibonacci_numbers(int );
int main(){
int K;
cout << "ShemoitaneT ricxvebis raodenoba : ";
cin >> K;
cout << "\nFibonachis pirveli " << K << " ricxvia\n\n";
Fibonacci_numbers(K);
system("pause");
return 0;
}
void Fibonacci_numbers(int K){
vector<int> F(K);
კ. გელაშვილი, ი. ხუციშვილი 64
F[0] = F[1] = 1;
for(int i=2; i<K; i++)
F[i] = F[i-1] + F[i-2];
for(int i=0; i<K; i++)
cout << F[i] << ' ';
cout << endl;
}
davaleba:
a) gauSviT programa Sesrulebaze da SeitaneT fibonaCis ricxvebis raodenobad 15.
darwmundiT, rom programam dabeWda:
Fibonachis pirveli 15 ricxvia
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
b) SeasruleT programa K –s sxvadasxva mniSvnelobebisTvis.
9. dawereT funqcia, romelic:
a) ipovis fibonaCis me-20 ricxvs;
b) ipovis fibonaCis N –ur ricxvs. N funqciis parametria;
g) gamoiTvlis iseTi fibonaCis ricxvebis jams, romlebic ar aRemateba M –s.
M funqciis parametria.
10. SeqmeniT funqcia void draw(int M); romelic erT striqonad gamoitans
ekranze M cal:
a) '*'-s; b) '+'-s; g) '-'-s; d) sleSs.
კ. გელაშვილი, ი. ხუციშვილი 65