Mecadineoba # 7: Praqtikuli Mecadineobis Temebi: Laboratoriuli Mecadineobis Temebi
Mecadineoba # 7: Praqtikuli Mecadineobis Temebi: Laboratoriuli Mecadineobis Temebi
კ. გელაშვილი, ი. ხუციშვილი 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; }
}
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 . . .
კ. გელაშვილი, ი. ხუციშვილი 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 . . .
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;
}
კ. გელაშვილი, ი. ხუციშვილი 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.
კ. გელაშვილი, ი. ხუციშვილი 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?
კ. გელაშვილი, ი. ხუციშვილი 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.
კ. გელაშვილი, ი. ხუციშვილი 65