Jump to content

Recommended Posts

Posted

ამ თემაში დავწერ დავალებებს, დავიწყებ პრიმიტულიდან და ნელ-ნელა გავართულებ

 

პრინციპი არის შემდეგი

ვდებ ამოცანას და ველოდებით პასუხს, როდესაც დაიდება სწორი პაუსხი მერე გადავალ შემდეგზე და ა.შ

თუ სწორი პასუხი დიდიხანი არ იყო, მე თვითონ დავწერ ამოხსნას

 

პასუხის დადების წესი მარტივია

უნდა დადოთ კოდი :D

სქრინსაც თუ მოაყოლებთ კარგი იქნება

კოდი თავისთავად კარგად უნდა იყოს დაწერილი, კარგი 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;
}

 

 

 



ცოტა უფრო საინტერსოც რომ იყოს ქულების სისტემაც შემოვიღოთ :D

ეს ამოცანა 1 ქულიანია

  • Upvote 6
  • Replies 93
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted

#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 ხაზი ვერ გავიგე :დ

Posted
ძალიან კარგია მაგრამ არამგონა ამ თემაში ადგილი ჰქონდეს მაგ პოსტს :)
Posted

#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 უბრალოდ მეთოდია, მივალთ მაქამდეც :D

Posted

განსაზღვრულია 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 უბრალოდ მეთოდია, მივალთ მაქამდეც :D

აჰა ახლა გასაგებია. , < ვერ შევამჩნიე ^^

მაგრამ 2 ფუნქცია რა საჭიროა?

და კიდევ ერთი კითხვა რაც გამიჩნდა არის ცვლადის ინკრიმენტი(++) რა საჭიროა? დანიშნულება?

(1-იანი რომ შევიდეს არასწორ პასუხს გვაძლევს)

Posted

აჰა ახლა გასაგებია.

მაგრამ 2 ფუნქცია რა საჭიროა?

და კიდევ ერთი კითხვა რაც გამიჩნდა არის ცვლადის ინკრიმენტი(++) რა საჭიროა? დანიშნულება?

(1-იანი რომ შევიდეს არასწორ პასუხს გვაძლევს)

 

რეალურად არ გჭირდება, "დასაბნევად" არის, იგივე აკეთებს 2ივე პრაქტიკულად

 

არც ეხლა არ იძლევა სწორ პასუხს

 

ისიც გაითვალსიწინე რომ i++ და ++i სხვადასხვა რაღაცას აკეთებს

 

P.S ძაან ახლოს ხარ პასუხთან :D

Posted

საცნობარო მასალა: :D

i++ და ++i-ს განსხვავება მნიშვნელოვანია მინიჭებისას. თუ ვწერთ a=++i მაშინ a-ს მიენიჭება i-ს ერთით გაზრდილი მნიშვნელობა.

 

მაგალIთად თუ i=3,  a=++i-ს შემთხვევაში ჯერ i გახდება 4 და შემდეგ მიენიჭება a-ს. ხოლო a=i++-ის შემთხვევაში ჯერ a გახდება 3-ის ტოლი, შემდეგ i გახდება 4.

 

 

  • Upvote 3
Posted

რეალურად არ გჭირდება, "დასაბნევად" არის, იგივე აკეთებს 2ივე პრაქტიკულად

 

არც ეხლა არ იძლევა სწორ პასუხს

 

ისიც გაითვალსიწინე რომ i++ და ++i სხვადასხვა რაღაცას აკეთებს

 

P.S ძაან ახლოს ხარ პასუხთან :D

++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;
}
  • Upvote 1
Posted

სწორია მაგრამ უბრლოდ ++ ები რო მოგეშორებინა და სხვა ყველაფერი დაგეტოვებინა მაინც მუშაობდა :D

 

 

ANuB1S - 1 ქულა

 

დავალება 2 (1 ქულა):

 

ეს დავალება ეხება "გადატვირთვას" (overloading) 

 

 

დაწერეთ პროგრამა myconst(); რომელსაც თუ გადაეცება 2 ინტეგერი, ითვლის ერთიდან მეორემდე

ან თუ გადაეცემა ჩარი და სტრინგი, ითვლის რამდნჯერ არის ეს ჩარი ნახმარი სტრინგში

 

შემდეგ დატესეთეთ თქვენი პროგრამა

Posted

რა კარგი გასართობი გავჩითეთ :D

ყოჩაღ ჯუმპერ :P

Posted

თქვენ გამო C++-ის ბიბლიოთეკები უნდა დავამატო ვიზუალ სტუდიოში :D

რა გინდოდათ ვიყავი ჩემთვის და C#-ს ვსწავლობდი :xelitavi:

  • Upvote 1
Posted

სწორია მაგრამ უბრლოდ ++ ები რო მოგეშორებინა და სხვა ყველაფერი დაგეტოვებინა მაინც მუშაობდა :D

 

ანუ ესე? 

 

 

 

#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;
}
 

 

Posted

ანუ ესე? 

 

 

 

#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;
}
 

 

ხო ეგრეც მუშაობს

მაგრამ სისტემი რაში გჭირდებოდა :D

 

Posted

კომპაილის მერე დებაგერით რომ ვრთავ (პირდაპირ F5-ით), აღარ ითიშება ეგ ფანჯარა და მაგიტომ დავამატე :D



და მანდ ვერ გავიგე ეხლა რა ხდება, როცა ვრთავ მიწერს ამას:



sgn(z1) = -1
sgn(z2) = -1

 

Posted

კომპაილის მერე დებაგერით რომ ვრთავ (პირდაპირ F5-ით), აღარ ითიშება ეგ ფანჯარა და მაგიტომ დავამატე :D

და მანდ ვერ გავიგე ეხლა რა ხდება, როცა ვრთავ მიწერს ამას:

 

აა ხო, შენ ხო visual studio ში ჭერ

 

მაგას რო გიწერს ანუ

z1 და z2 ორივე უარყოფითი რიცხვია

ზემოთ ხო წერია ეგ ფუნქცია რას შვება, დავალება მთლიანად წაიკითხე

 

 

 

 

 

მეორე ამოცანის პასუხს ველოდები :D

Posted

დაწერეთ პროგრამა 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;

}

 

 

 

ან თუ გადაეცემა ჩარი და სტრინგი, ითვლის რამდნჯერ არის ეს ჩარი ნახმარი სტრინგში

ეს ვერ გავიგე

 

პ.ს ძალიან ნუ გამაკრიტიკებთ დამწყები ვარ :D

Posted

ესე?

 

#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;

}


ეს ვერ გავიგე

 

პ.ს ძალიან ნუ გამაკრიტიკებთ დამწყები ვარ :D

 

ხო დაახლოებით ეგ ოროღნდ გაითვლასიწნე x არის მეტი თუ y არ იცი, ანუ 2ივე შმეთხვევა უნდა დაწერო

 

და მეორე რაც უნდა ქნას არის

 

mycost("laptop", 'p');

და უნდა დააბრუნოს 2

Posted

ეს ვერ გავიგე

 

პ.ს ძალიან ნუ გამაკრიტიკებთ დამწყები ვარ :D

სტრიქონს რომ გადასცემ ასოების რაოდენობა უნდა დაითვალოს.

Posted
#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;

}

სწორეა? :D

Posted

არაა სწორი.

იდეაში ეგრეა მაგრამ შეცდომები გაქვს როგორც ერთი შეხედვით შევატყე



დაიცა არ დამიჯერო. შეიძლება გატყუებ :D

Posted

LedZeppelin,

არასწორია

შენ ითვლი სიტყვის სიგრძეს და არა რამდენჯერ არის ის კონკრეტული ასო გამოყენებული

 

 

მინიშნება:

სტინგი ჩაწერეთ როგორც ჩარების ერრეი და მერე არრეის თითოეული წევრი გაუტოლეთ იმ ჩარს, თუ ტოლია მთვლელი გაზარდეთ და ბოლოს მთვლელი დააბრუნეთ 

Posted

ამას ვწერ ეხლა C#-ში :D



LedZeppelin,

მინიშნება:

სტინგი ჩაწერეთ როგორც ჩარების ერრეი და მერე არრეის თითოეული წევრი გაუტოლეთ იმ ჩარს, თუ ტოლია მთვლელი გაზარდეთ და ბოლოს მთვლელი დააბრუნეთ 

ეგ მასივად რომ არ ჩაიწეროს ჩარს როცა ადარებ ხომ ისედაც სათითაო ასოს შეადარებს?

Posted

ამას ვწერ ეხლა C#-ში :D

ეგ მასივად რომ არ ჩაიწეროს ჩარს როცა ადარებ ხომ ისედაც სათითაო ასოს შეადარებს?

 

სტრინგი ასოს რო შეადარო?

პირველ ასოებს შეადარებს სავარაუდოდ მარტო

 

მაგრამ მაგალითად

string a = "blablabla"

 

for (i=0; i<a.sizeof(); i++ ) {

 cout << a << endl;

}

 

დაბეჭდავს ყველა ჩარს სათითაოდ

 

აქედან უნდა მიხვდეთ ეხლა როგორ უნდა გააკეთოთ

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.