ოთო Posted April 11, 2013 Share Posted April 11, 2013 ამ თემაში დავწერ დავალებებს, დავიწყებ პრიმიტულიდან და ნელ-ნელა გავართულებ პრინციპი არის შემდეგი ვდებ ამოცანას და ველოდებით პასუხს, როდესაც დაიდება სწორი პაუსხი მერე გადავალ შემდეგზე და ა.შ თუ სწორი პასუხი დიდიხანი არ იყო, მე თვითონ დავწერ ამოხსნას პასუხის დადების წესი მარტივია უნდა დადოთ კოდი სქრინსაც თუ მოაყოლებთ კარგი იქნება კოდი თავისთავად კარგად უნდა იყოს დაწერილი, კარგი layout და კომენტარები მაშ ასე დავიწყოთ პირველი დავალება: ალბათ მათემატიკადან იცით ნიშნის გამსაზღვრელი ფუნქცია, რიცხვი დადებითია, უარყოფითი თუ 0 ანუ მათემატიკურად რომ ვთქვათ -1 თუ x < 0 1 თუ x > 0 0 თუ x = 0 ქვემოთ არის მოცემული ამის გამოსათვლელი პროგრამა. კითხვა: რას ბეჭდავს პროგრამა და არის თუ არა შეცდომა? (თუ არის შეცდომა, მიუთითეთ რა შეცდომაა და გაასწორეთ) #include <iostream> using namespace std; #define sgnMacro(z) (z > 0) - (z < 0) inline int sgnFct(int z) { return (z > 0) - (z < 0); } int main(void) { int z1 = -2, z2 = -2; cout << "sgn(z1) = " << sgnMacro(++z1) << endl; cout << "sgn(z2) = " << sgnFct(++z2) << endl; } ცოტა უფრო საინტერსოც რომ იყოს ქულების სისტემაც შემოვიღოთ ეს ამოცანა 1 ქულიანია 6 Quote Link to comment Share on other sites More sharing options...
ANuB1S Posted April 11, 2013 Share Posted April 11, 2013 #include <iostream> using namespace std; #define sgnMacro(z) (z > 0) - (z < 0) inline int sgnFct(int z) { return (z > 0) - (z < 0); } int main(void) { int z1 = -2, z2 = -2; cout << "sgn(z1) = " << sgnMacro(++z1) << endl; cout << "sgn(z2) = " << sgnFct(++z2) << endl; }იდეაში შეცდომა: z2 არაა განსაზღვრული.მე-3 და მე-4 ხაზი ვერ გავიგე :დ Quote Link to comment Share on other sites More sharing options...
jondo Posted April 11, 2013 Share Posted April 11, 2013 http://howtocode.ge/ Quote Link to comment Share on other sites More sharing options...
ANuB1S Posted April 11, 2013 Share Posted April 11, 2013 http://howtocode.ge/ძალიან კარგია მაგრამ არამგონა ამ თემაში ადგილი ჰქონდეს მაგ პოსტს :) Quote Link to comment Share on other sites More sharing options...
ოთო Posted April 11, 2013 Author Share Posted April 11, 2013 #include <iostream> using namespace std; #define sgnMacro(z) (z > 0) - (z < 0) inline int sgnFct(int z) { return (z > 0) - (z < 0); } int main(void) { int z1 = -2, z2 = -2; cout << "sgn(z1) = " << sgnMacro(++z1) << endl; cout << "sgn(z2) = " << sgnFct(++z2) << endl; } იდეაში შეცდომა: z2 არაა განსაზღვრული. მე-3 და მე-4 ხაზი ვერ გავიგე :დ განსაზღვრულია z2, int z1 = -2, და აქ მძიმე წერია და არა 2 წერტილი ესე რო იყოს int z1 = -2, z2 = -2; ხო სწრია? იგივე წერია რაც შეეხება მესამე და მეოთხე ხაზს 3 ხაზი #define sgnMacro(z) (z > 0) - (z < 0) ეს წარმოდიგინე როგორც ესე f(z) = (z>0) - (z<0) 4 ხაზი inline რო მოაშორო წინ ხო უბრალო ფუნქცია გამოდის? int sgnFct(int z) { return (z > 0) - (z < 0); } და inline უბრალოდ მეთოდია, მივალთ მაქამდეც Quote Link to comment Share on other sites More sharing options...
ANuB1S Posted April 11, 2013 Share Posted April 11, 2013 განსაზღვრულია z2, int z1 = -2, და აქ მძიმე წერია და არა 2 წერტილიესე რო იყოს int z1 = -2, z2 = -2; ხო სწრია? იგივე წერია რაც შეეხება მესამე და მეოთხე ხაზს3 ხაზი#define sgnMacro(z) (z > 0) - (z < 0) ეს წარმოდიგინე როგორც ესეf(z) = (z>0) - (z<0)4 ხაზი inline რო მოაშორო წინ ხო უბრალო ფუნქცია გამოდის?int sgnFct(int z) {return (z > 0) - (z < 0);} და inline უბრალოდ მეთოდია, მივალთ მაქამდეც აჰა ახლა გასაგებია. , < ვერ შევამჩნიე ^^მაგრამ 2 ფუნქცია რა საჭიროა?და კიდევ ერთი კითხვა რაც გამიჩნდა არის ცვლადის ინკრიმენტი(++) რა საჭიროა? დანიშნულება?(1-იანი რომ შევიდეს არასწორ პასუხს გვაძლევს) Quote Link to comment Share on other sites More sharing options...
ოთო Posted April 11, 2013 Author Share Posted April 11, 2013 აჰა ახლა გასაგებია. მაგრამ 2 ფუნქცია რა საჭიროა? და კიდევ ერთი კითხვა რაც გამიჩნდა არის ცვლადის ინკრიმენტი(++) რა საჭიროა? დანიშნულება? (1-იანი რომ შევიდეს არასწორ პასუხს გვაძლევს) რეალურად არ გჭირდება, "დასაბნევად" არის, იგივე აკეთებს 2ივე პრაქტიკულად არც ეხლა არ იძლევა სწორ პასუხს ისიც გაითვალსიწინე რომ i++ და ++i სხვადასხვა რაღაცას აკეთებს P.S ძაან ახლოს ხარ პასუხთან Quote Link to comment Share on other sites More sharing options...
მიშო Posted April 11, 2013 Share Posted April 11, 2013 საცნობარო მასალა: i++ და ++i-ს განსხვავება მნიშვნელოვანია მინიჭებისას. თუ ვწერთ a=++i მაშინ a-ს მიენიჭება i-ს ერთით გაზრდილი მნიშვნელობა. მაგალIთად თუ i=3, a=++i-ს შემთხვევაში ჯერ i გახდება 4 და შემდეგ მიენიჭება a-ს. ხოლო a=i++-ის შემთხვევაში ჯერ a გახდება 3-ის ტოლი, შემდეგ i გახდება 4. 3 Quote Link to comment Share on other sites More sharing options...
ANuB1S Posted April 11, 2013 Share Posted April 11, 2013 რეალურად არ გჭირდება, "დასაბნევად" არის, იგივე აკეთებს 2ივე პრაქტიკულად არც ეხლა არ იძლევა სწორ პასუხს ისიც გაითვალსიწინე რომ i++ და ++i სხვადასხვა რაღაცას აკეთებს P.S ძაან ახლოს ხარ პასუხთან ++i და i++ რა თქმა უნდა, მაგრამ აჰა შენ "იდეაში" მუშა კოდი :დ#include <iostream> using namespace std; int sgnFct(int z) { return (z > 0) - (z < 0); } int main(void) { int z1; cout<<"Enter Integer: n"; cin>>z1; cout << "sgn(z1) = " << sgnFct(z1) << endl; } 1 Quote Link to comment Share on other sites More sharing options...
ოთო Posted April 11, 2013 Author Share Posted April 11, 2013 სწორია მაგრამ უბრლოდ ++ ები რო მოგეშორებინა და სხვა ყველაფერი დაგეტოვებინა მაინც მუშაობდა ANuB1S - 1 ქულა დავალება 2 (1 ქულა): ეს დავალება ეხება "გადატვირთვას" (overloading) დაწერეთ პროგრამა myconst(); რომელსაც თუ გადაეცება 2 ინტეგერი, ითვლის ერთიდან მეორემდე ან თუ გადაეცემა ჩარი და სტრინგი, ითვლის რამდნჯერ არის ეს ჩარი ნახმარი სტრინგში შემდეგ დატესეთეთ თქვენი პროგრამა Quote Link to comment Share on other sites More sharing options...
ANuB1S Posted April 11, 2013 Share Posted April 11, 2013 რა კარგი გასართობი გავჩითეთ ყოჩაღ ჯუმპერ :P Quote Link to comment Share on other sites More sharing options...
ოთო Posted April 11, 2013 Author Share Posted April 11, 2013 თან ერთობი, თან სწავლობ Quote Link to comment Share on other sites More sharing options...
მიშო Posted April 11, 2013 Share Posted April 11, 2013 თქვენ გამო C++-ის ბიბლიოთეკები უნდა დავამატო ვიზუალ სტუდიოში რა გინდოდათ ვიყავი ჩემთვის და C#-ს ვსწავლობდი 1 Quote Link to comment Share on other sites More sharing options...
#Skinhead Posted April 11, 2013 Share Posted April 11, 2013 სწორია მაგრამ უბრლოდ ++ ები რო მოგეშორებინა და სხვა ყველაფერი დაგეტოვებინა მაინც მუშაობდა ანუ ესე? #include <iostream> using namespace std; #define sgnMacro(z) (z > 0) - (z < 0) inline int sgnFct(int z) { return (z > 0) - (z < 0); } int main(void) { int z1 = -2, z2 = -2; cout << "sgn(z1) = " << sgnMacro(z1) << endl; cout << "sgn(z2) = " << sgnFct(z2) << endl; system("PAUSE"); return 0; } Quote Link to comment Share on other sites More sharing options...
ოთო Posted April 11, 2013 Author Share Posted April 11, 2013 ანუ ესე? #include <iostream> using namespace std; #define sgnMacro(z) (z > 0) - (z < 0) inline int sgnFct(int z) { return (z > 0) - (z < 0); } int main(void) { int z1 = -2, z2 = -2; cout << "sgn(z1) = " << sgnMacro(z1) << endl; cout << "sgn(z2) = " << sgnFct(z2) << endl; system("PAUSE"); return 0; } ხო ეგრეც მუშაობს მაგრამ სისტემი რაში გჭირდებოდა Quote Link to comment Share on other sites More sharing options...
#Skinhead Posted April 11, 2013 Share Posted April 11, 2013 კომპაილის მერე დებაგერით რომ ვრთავ (პირდაპირ F5-ით), აღარ ითიშება ეგ ფანჯარა და მაგიტომ დავამატე და მანდ ვერ გავიგე ეხლა რა ხდება, როცა ვრთავ მიწერს ამას: sgn(z1) = -1 sgn(z2) = -1 Quote Link to comment Share on other sites More sharing options...
ოთო Posted April 11, 2013 Author Share Posted April 11, 2013 კომპაილის მერე დებაგერით რომ ვრთავ (პირდაპირ F5-ით), აღარ ითიშება ეგ ფანჯარა და მაგიტომ დავამატე და მანდ ვერ გავიგე ეხლა რა ხდება, როცა ვრთავ მიწერს ამას: აა ხო, შენ ხო visual studio ში ჭერ მაგას რო გიწერს ანუ z1 და z2 ორივე უარყოფითი რიცხვია ზემოთ ხო წერია ეგ ფუნქცია რას შვება, დავალება მთლიანად წაიკითხე მეორე ამოცანის პასუხს ველოდები Quote Link to comment Share on other sites More sharing options...
LedZeppelin Posted April 11, 2013 Share Posted April 11, 2013 დაწერეთ პროგრამა myconst(); რომელსაც თუ გადაეცება 2 ინტეგერი, ითვლის ერთიდან მეორემდე ან თუ გადაეცემა ჩარი და სტრინგი, ითვლის რამდნჯერ არის ეს ჩარი ნახმარი სტრინგში შემდეგ დატესეთეთ თქვენი პროგრამა ესე? #include <iostream> #include <string> using namespace std; void myconst(int x, int y){ for(int i=x; i<=y; i++){ cout << i << endl; } } void myconst (string d, char c){ cout << "nnn-------------------------nnn??"; } int main() { int a=15, b=18; char c = 'k'; string d = "jemali"; myconst(a, ; myconst(d, c); return 0; } ან თუ გადაეცემა ჩარი და სტრინგი, ითვლის რამდნჯერ არის ეს ჩარი ნახმარი სტრინგში ეს ვერ გავიგე პ.ს ძალიან ნუ გამაკრიტიკებთ დამწყები ვარ Quote Link to comment Share on other sites More sharing options...
ოთო Posted April 11, 2013 Author Share Posted April 11, 2013 ესე? #include <iostream> #include <string> using namespace std; void myconst(int x, int y){ for(int i=x; i<=y; i++){ cout << i << endl; } } void myconst (string d, char c){ cout << "nnn-------------------------nnn??"; } int main() { int a=15, b=18; char c = 'k'; string d = "jemali"; myconst(a, ; myconst(d, c); return 0; } ეს ვერ გავიგე პ.ს ძალიან ნუ გამაკრიტიკებთ დამწყები ვარ ხო დაახლოებით ეგ ოროღნდ გაითვლასიწნე x არის მეტი თუ y არ იცი, ანუ 2ივე შმეთხვევა უნდა დაწერო და მეორე რაც უნდა ქნას არის mycost("laptop", 'p'); და უნდა დააბრუნოს 2 Quote Link to comment Share on other sites More sharing options...
მიშო Posted April 11, 2013 Share Posted April 11, 2013 ეს ვერ გავიგე პ.ს ძალიან ნუ გამაკრიტიკებთ დამწყები ვარ სტრიქონს რომ გადასცემ ასოების რაოდენობა უნდა დაითვალოს. Quote Link to comment Share on other sites More sharing options...
LedZeppelin Posted April 11, 2013 Share Posted April 11, 2013 #include <iostream> #include <string> using namespace std; void myconst(int x, int y){ if (x<y){ for(int i=x; i<=y; i++) cout << i << endl; } else{ for(int i=y; i<=x; i++) cout << i << endl; } } void myconst (string d, char c){ cout << "nnn------------------------nnn"; int length = 0; while (d[length] != '0') { length++; } cout << length << endl; } int main() { int a, b; cin >> a; cin >> b; char c = 'k'; string d = "jondibagaturia"; myconst(a, ; myconst(d, c); return 0; } სწორეა? Quote Link to comment Share on other sites More sharing options...
მიშო Posted April 11, 2013 Share Posted April 11, 2013 არაა სწორი. იდეაში ეგრეა მაგრამ შეცდომები გაქვს როგორც ერთი შეხედვით შევატყე დაიცა არ დამიჯერო. შეიძლება გატყუებ Quote Link to comment Share on other sites More sharing options...
ოთო Posted April 11, 2013 Author Share Posted April 11, 2013 LedZeppelin, არასწორია შენ ითვლი სიტყვის სიგრძეს და არა რამდენჯერ არის ის კონკრეტული ასო გამოყენებული მინიშნება: სტინგი ჩაწერეთ როგორც ჩარების ერრეი და მერე არრეის თითოეული წევრი გაუტოლეთ იმ ჩარს, თუ ტოლია მთვლელი გაზარდეთ და ბოლოს მთვლელი დააბრუნეთ Quote Link to comment Share on other sites More sharing options...
მიშო Posted April 11, 2013 Share Posted April 11, 2013 ამას ვწერ ეხლა C#-ში LedZeppelin, მინიშნება: სტინგი ჩაწერეთ როგორც ჩარების ერრეი და მერე არრეის თითოეული წევრი გაუტოლეთ იმ ჩარს, თუ ტოლია მთვლელი გაზარდეთ და ბოლოს მთვლელი დააბრუნეთ ეგ მასივად რომ არ ჩაიწეროს ჩარს როცა ადარებ ხომ ისედაც სათითაო ასოს შეადარებს? Quote Link to comment Share on other sites More sharing options...
ოთო Posted April 11, 2013 Author Share Posted April 11, 2013 ამას ვწერ ეხლა C#-ში ეგ მასივად რომ არ ჩაიწეროს ჩარს როცა ადარებ ხომ ისედაც სათითაო ასოს შეადარებს? სტრინგი ასოს რო შეადარო? პირველ ასოებს შეადარებს სავარაუდოდ მარტო მაგრამ მაგალითად string a = "blablabla" for (i=0; i<a.sizeof(); i++ ) { cout << a << endl; } დაბეჭდავს ყველა ჩარს სათითაოდ აქედან უნდა მიხვდეთ ეხლა როგორ უნდა გააკეთოთ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.