Remus Ierakstīts Jūlijs 30, 2005 Share Ierakstīts Jūlijs 30, 2005 Attieciigais kompileris karaas uz manis rakstiitaam programmaam, bet no tutoriaalja njemtaas kompileejaas kaa tam jaabuut. luudzu pasakat kur manis rakstiitajaa kodaa kljuuta kas pie taa noved. #include<iostream.h> int main () { int i; cout << "ievadiet veertiibu: "; cin >> i; cout << "juus ievdiijaat"<<i; cout <<"tas dubultaa ir "<<i*2<<endl; return 0; } shobriid staav pakaaries pie "linking" P.S kljuudas netika atrastas. Topika nosaukums ir mainīts, un uzmaniiba jaapievērš manam postam Wed Aug 03, 2005 1:13 am Link to comment Share on other sites More sharing options...
VIL Jūlijs 30, 2005 Share Jūlijs 30, 2005 Instalācija ir legāla, t.i., no m$ lapas? Link to comment Share on other sites More sharing options...
Remus Jūlijs 30, 2005 Author Share Jūlijs 30, 2005 Iegūta pa sānu celjiem. Bet taa manupraat nav kompilera, bet gan mana vaina. Un es veelos izskaust kluudas kameer veel maacos. P.S aizmirsu pateikt, ka taa ir 6.0 versija. Link to comment Share on other sites More sharing options...
Remus Jūlijs 31, 2005 Author Share Jūlijs 31, 2005 Labi man izdevaas kljuudu noveerst! To izrasiija situaacija, kad starp peedijnjaam un << nebija atstarpes. Vai tas ir normaali? Link to comment Share on other sites More sharing options...
Dawis Jūlijs 31, 2005 Share Jūlijs 31, 2005 idejiski kodā nav kļūdu.. varbūt kaut kur paslēpies kāds viltīgs sintakses brāķism, bet tad normālam kompilatoram būtu jāuzrāda sintakses kļūda, ja vien dēļ šīs kļūdas viņš neinterpretē uzrakstīto pavisam savādāk nekā tu esi domājis(bet neizskatās ka tas tā ir šajā gadījumā).. jebkurā gadījuma kompilatora pakāršanās nav normāla reakcija - iesaku pārinstalēt vai dabūt normālu kompilatoru.. Iespējams šajā gadījumā ir problēma ar liekiem " ", taču cik atceros parasti tas neizsauc nekādas problēmas.. pamēģini tikt vaļā no visiem liekajiem " ".. teiksim pamēģini kas notiek ar šādu kodu.. #include<iostream.h> int main () { int i; cout<<"ievadiet veertiibu: "; cin>>i; cout<<"juus ievdiijaat "<<i; cout<<"tas dubultaa ir "<<i*2<<endl; return 0; } edit: tā kā pakarās linking procesā uz šādu vienkāršu programmu, tad pieņemu ka kompilators ir kaut kā nepareizi uzstādijiesuzinstalējies vai ir vienkārši sačakarēt - piemēram nevar atrast standarta bibliotēkas.. vēl ir gadījies ka šāda iostream iekļaušana neit cauri: #include<iostream.h> pamēģini šādi: #include<iostream> using namespace std; Link to comment Share on other sites More sharing options...
Remus Jūlijs 31, 2005 Author Share Jūlijs 31, 2005 Straadaa! Vieniiigaa starpiiba kaadu redzu starp 1 un 2 variantu ir mazaak space. Itkaa manuaali kas naaca liidzi bija maaciits rakstiit #include<iostream> using namespace std; Bet principaa straadaa abi varianti. Link to comment Share on other sites More sharing options...
Remus Jūlijs 31, 2005 Author Share Jūlijs 31, 2005 .....b.cpp(3) : error C2447: missing function header (old-style formal list?) piereizes pajutaashu ko tas noziimee. kompileris raada ka kljuuda ir #include<iostream.h> int main (); {<-----------------------------------------------SHEIT int a=256 //konta atlikums int i //ievadāmais skaitlis cout<<"Jūsu konta atlikums ir "<<a<<"Ls"<<endl; cout<<"Ievadiet summu kuru vēlaties izņemt "; cin>>i; cout<<"Jūsu kontā paliek "<<a-i<<"Ls"<<endl; return 0; } Link to comment Share on other sites More sharing options...
Guest bubu Jūlijs 31, 2005 Share Jūlijs 31, 2005 Tev tur ir nodefinēta funkcija int main(); bez koda!! semikols aiz fjas pabeidz tās deklarāciju. Tāpēc { ... } daļa vairs neattiecās uz funkcijas deklarāciju. Link to comment Share on other sites More sharing options...
Remus Jūlijs 31, 2005 Author Share Jūlijs 31, 2005 Oij cik stulba kljuuda no manas puses :oops: Paldies Dawis un Bubu. Link to comment Share on other sites More sharing options...
Vilx- Jūlijs 31, 2005 Share Jūlijs 31, 2005 M$ VC++ 6.0 ir daudzi gljuki. Pats esmu sastapies ar dazjiem no tiem. Labaakais bija tas, ka Debug versijaa viss gaaja labi, bet Release versijaa optimizators kaukaa maaceeja nooptimizeet saskaitiishanu taa, ka nekas negaaja (t.i. saskaitiija nepareizi). Iesaku pameegjinaat sho kodu uz citiem kompilatoriem vai arii iegaadaaties VS.NET 2003. Mosh buus izlabots. Link to comment Share on other sites More sharing options...
Remus Jūlijs 31, 2005 Author Share Jūlijs 31, 2005 Varbuut panjemt pro edition? taa mosk ir kaartiigaaka. Kaads ir nesaiisinaatais nosaukums VS.NET? visual .......... Link to comment Share on other sites More sharing options...
Vilx- Jūlijs 31, 2005 Share Jūlijs 31, 2005 VS.NET2003 = Visual Studio .NET 2003. Vislielaakaa pacinja saucas "Enterprise Architect". To arii iesaku njemt. Link to comment Share on other sites More sharing options...
Guest Jūlijs 31, 2005 Share Jūlijs 31, 2005 M$ VC++ 6.0 ir daudzi gljuki. Pats esmu sastapies ar dazjiem no tiem. Labaakais bija tas, ka Debug versijaa viss gaaja labi, bet Release versijaa optimizators kaukaa maaceeja nooptimizeet saskaitiishanu taa, ka nekas negaaja (t.i. saskaitiija nepareizi). Iesaku pameegjinaat sho kodu uz citiem kompilatoriem vai arii iegaadaaties VS.NET 2003. Mosh buus izlabots. visdrīzāk tu gļukains, vai tavs kods (bez apvainojumiem). Pasaulē ļoti daudz lieto šo te un nesūdzās un vispār, jāpariet uz GCC + kaut kāds GTK+, kamēr nav pa vēlu [vismaz crossplatform būs kaut kāds] Link to comment Share on other sites More sharing options...
Vilx- Jūlijs 31, 2005 Share Jūlijs 31, 2005 Nee, nee, tas patiesi bija VC++ 6.0 gljux! Toreiz es veel taas lietas maaciijos, un man ar to bugu paliidzeeja viens riktiigs Guru. Vinjsh panjeema, uztaisiija ASM source listingu tai progai un tur atklaajaas briinumu lietas. Tas patiesi BIJA VC++ 6.0 optimaizera gljux. Nupat veel atcereejos - ja taam rindinjaam pielika priekshaa kaut ko taadu kaa x=x; tad viss saaka straadaat. Un taas gljukojoshaas rindinjas patiesi bija kaukaadas skalaaras operaacijas ar int tipa mainiigajiem (vairs neateros, kas tieshi). Vot. 8) Link to comment Share on other sites More sharing options...
Guest Jūlijs 31, 2005 Share Jūlijs 31, 2005 Nee, nee, tas patiesi bija VC++ 6.0 gljux! Toreiz es veel taas lietas maaciijos, un man ar to bugu paliidzeeja viens riktiigs Guru. Vinjsh panjeema, uztaisiija ASM source listingu tai progai un tur atklaajaas briinumu lietas. Tas patiesi BIJA VC++ 6.0 optimaizera gljux. Nupat veel atcereejos - ja taam rindinjaam pielika priekshaa kaut ko taadu kaa x=x; tad viss saaka straadaat. Un taas gljukojoshaas rindinjas patiesi bija kaukaadas skalaaras operaacijas ar int tipa mainiigajiem (vairs neateros, kas tieshi). Vot. 8) nu nez. vai tas optimizer vajadz'igs,... bet kods uzreiz ir jaraksta smuks. + lietojam kādu kompresoru. PS: ja esi paranoikis, tad vari uzreiz inline asm bakstīt un neuztraukties par gļukiem Link to comment Share on other sites More sharing options...
Vilx- Jūlijs 31, 2005 Share Jūlijs 31, 2005 Nu, pag! Debug modee vinjsh tiishaam sajaaj kodu, iekljaujot tajaa lielu cjupu ar Debug info utml. lietaam. Kods sanaak daudz leenaaks un lielaaks, bet ir debugojams. Release modee vinjsh to visu vaac sasodīts aaraa un taisa kodu daudz aatraaku, mazaaku un vispaar! Protams, optimaizoshanu var atsleegt saglabaajot paareejaas Release modes iipashiibas, bet vai tam jeega, ja 99% gadiijumu tas patiesi nostraadaa? Sho gadiijumu es arii kaut kaa paarraxtiiju biki savaadaak un viss aizgaaja! Link to comment Share on other sites More sharing options...
Remus Augusts 2, 2005 Author Share Augusts 2, 2005 Es negribeeju taisiit jaunu topiku, taapeec paarsaucu sho te. Probleema sekojosha: Programma itkaa straada, bet tikai liidz briidim, kameer jaaizpildaas if un else. Tad taa vienkaarshi beidz darbu. Pats esmu iestreedzis, un man nesanaak sho kljuudu labot. Luuk kods. #include <iostream> using namespace std; int main () { int a=256; //konta atlikums int i; //ievadāmais skaitlis cout<<"Jusu konta atlikums ir "<<a; cout<<"Ls"<<endl; cout<<"Ievadiet summu kuru vēlaties iznemt "; cin>>i; cout<<"juus ievadiijaat veertiibu "<<i<<endl; if (i<=a) {cout<<"Jusu konta paliek "<<a-i<<"Ls"<<endl;} else {cout<<"pa maz naudas"<<endl; cout<<"nospiediet enter lia beigtu"<<endl;} return 0; } P.S kompiltors kljuudas neatrod. Link to comment Share on other sites More sharing options...
Guest bubu Augusts 2, 2005 Share Augusts 2, 2005 Pamēģini ielikt a-i iekavās, tb ..<<(a-i)<<.. P.S. Tu par tādu lietu kā debugošanu (atkļūdošanu) un debugeri esi dzirdējis? Link to comment Share on other sites More sharing options...
Remus Augusts 2, 2005 Author Share Augusts 2, 2005 Pamēģini ielikt a-i iekavās, tb ..<<(a-i)<<.. P.S. Tu par tādu lietu kā debugošanu (atkļūdošanu) un debugeri esi dzirdējis? Debugeris kljuudas neuzraada. nav. vieniigi kaut kaadus murgojums saraksta peec tam kad jamaa apgaazhas. Ko ,lai man taa lieta leeni iet uz priekshu. Link to comment Share on other sites More sharing options...
Remus Augusts 2, 2005 Author Share Augusts 2, 2005 Ieliku iekavaas, un pakaaraas svaigi paarinstaleetais kompileris :evil: shitaa var dabuut nervu sabrukumu...... Link to comment Share on other sites More sharing options...
Guest bubu Augusts 3, 2005 Share Augusts 3, 2005 Debugeris kļūdas nekad neuzrāda. Debueris palīdz cilvēkam, kas ar to strādā, vieglāk atrast kļūdas. Link to comment Share on other sites More sharing options...
Guest bljaaviens Augusts 3, 2005 Share Augusts 3, 2005 es nesaprotu, vai tieshaam gruuti salikt liekus probelus (atstarpes)!??? buus arii vieglaak lasiit savu kodu. cout<<"Ls"<<endl; - nu kursh taa raksta!? cout << "Ls" << endl; - kapeec nevar shitaa? un vispaar, mozh vajag iesleegt pilnos warningu/erroru pazinojumus (ja M$ kompilerim tas vispaar ir iespejams) tad tachu visas shiis sintakses kljuudas uzreiz izleks un nekas vispaar netiks linkots, kameer neizlabos! ne ar gcc, nedz bcc man nekad nav bijushi shaadi paarpratumi... Link to comment Share on other sites More sharing options...
PiRX Augusts 3, 2005 Share Augusts 3, 2005 remus, nokompilēju tavu kodu, notestēju - viss strādā Tev liekas, ka nestrādā, jo programma, tūlīt pēc izvades, beidz darbu un logs pazūd. Man, izmantojot MinGW izstrādes vidi, pati vide uztaisa pauzi pēc programmas beigšanās un tur es visu outputu redzu bljaaviens, programmēšanas stils ir jautājums, par kuru daudzi un dikti strīdās, bet jēga??? Varbūt ka citam kods liekas lasāmāks bez liekām atstarpēm... Link to comment Share on other sites More sharing options...
PiRX Augusts 3, 2005 Share Augusts 3, 2005 remus, palaid "command prompt", aizlien līdz vietai, kur dzīvo tava sakompilētā programma (*.exe) un tad palaid... redzēsi kā strādā p.s. Izskatās, ka tev ir viena neliela loģiska kļūda programmā, bet to jau pats vari atrast Link to comment Share on other sites More sharing options...
Guest bljaaviens Augusts 3, 2005 Share Augusts 3, 2005 programmēšanas stils ir jautājums, par kuru daudzi un dikti strīdās, bet jēga???iesacejam, manuprat, vieglaak buus orienteeties un debugeet shaadu kodu:int xtoint(char xdigit) { if (isxdigit(xdigit)) { if (xdigit <= '9') { return xdigit - '0'; } return toupper(xdigit) - 'A' + 10; } return -1; } nekaa to pashu saiisinaatajaa formaa: int xtoint(char xdigit){if(isxdigit(xdigit)){if(xdigit<='9') {return xdigit-'0';}return toupper(xdigit)-'A'+10;}return -1;} Link to comment Share on other sites More sharing options...
Remus Augusts 3, 2005 Author Share Augusts 3, 2005 2 PiRX To ka vinja straadsaa es zinaaju, bet vinja priekshlaiciigi beidza straadaat neprasot nospiest ENTER. Cik es saprotu nestraadaa taa dalja kas seko peec "else" Tikai nesaprotu kaapeec. 2 Bubu Tad aciim redzot nemaaku ar debuggeri riikoties(nevienaa tutoriaali neesmu redzeejis taa pamaaciibu.). lai atrasutu kljuudas es izmantoju "go to error/tag" Jaa programmeeshana ir smaga lieta :roll: Link to comment Share on other sites More sharing options...
PiRX Augusts 3, 2005 Share Augusts 3, 2005 Tā daļa pēc else strādā. Varbūt vienīgi nedara to, ko tu vēlējies panākt. Konkrētajā gadījumā tiek izvadīts pa maz naudas nospiediet enter lia beigtu nekur nekas netiek prasīts ievadīt P.S. cik ātrumā iečekoju gūglē - gaidīt entera ievadi iekš C++ nav nemaz tik vienkārši Link to comment Share on other sites More sharing options...
Guest aija Augusts 3, 2005 Share Augusts 3, 2005 Nevar būt tā, ka neprasa nospiest ENTER, jo kodā nemaz nav norādīts? Tur laikam kaut kāds getch() bija jāraksta... Link to comment Share on other sites More sharing options...
Guest bubu Augusts 3, 2005 Share Augusts 3, 2005 He, aijux arī te ira! getch() bija iekš C (vai arī ja grib bez streamiem darīties). Iekš C++ to var izdarīt šitā: cin.get(); Link to comment Share on other sites More sharing options...
PiRX Augusts 3, 2005 Share Augusts 3, 2005 bubu, man cin.gec() nenostrādāja izrādās - vajadzēja dubultā. Laikam jau no tā skaitļa ievades viens enter paliek kkādā rindā tb, vajadzēja: cin.get(); cin.get(); Link to comment Share on other sites More sharing options...
Remus Augusts 3, 2005 Author Share Augusts 3, 2005 O paarkompileeju, un pazuda gljuks, kad neipildiijas else dalja. Paldies visiem kas paliidzeeja.(liidz naakamajai reizei) Link to comment Share on other sites More sharing options...
Remus Augusts 3, 2005 Author Share Augusts 3, 2005 Ceru ka veel neesmu sakritis jums visiem uz nerviem, bet ko lai citu iesaak. taatad kaa lai noveersh gluku kura rezultaataa saakuma atlikums ir 308 nevis 256.(ja i deklaree ar int skaitlis ir lielaaks.) nu luuk kods #include <iostream> using namespace std; int main () { char i; //ievadāmais skaitlis int a=256; //konta atlikums sakums: cout<<"Jusu konta atlikums ir "<<a-i; cout<<"Ls"<<endl; cout<<"Ievadiet summu kuru velaties iznemt "; cin>> i; cout<<"juus ievadiijaat veertiibu "<<i<<endl; if (i<=a) cout<<"Jusu konta paliek "<<a-i<<"Ls"<<endl; else cout<<"pa maz naudas"<<endl; cout<<"Vai velaties iznjemt veel naudu?"<<endl; izvele: int b; cout<<"Nospiediet 1, lai beigtu darbu, 2, lai turpinātu"<<endl; cin>>b; if (b==1) goto beigas; if (b==2) goto sakums; if (b!=1,2) cout<<"nepareiza komanda"<<endl; goto izvele; beigas: return 0; } Paldies visiem, kas grasaas paliidzeet. Link to comment Share on other sites More sharing options...
Guest bubu Augusts 4, 2005 Share Augusts 4, 2005 Nezinu kādus skaitļus tu tur ievadi, ka tā sanāk, bet iesaku padomāt par mainīgā i tipu (char = 0..255). Tam tu robežas nepārsniedz? Nebūtu labāk to par int nodeklarēt!? Un pasaki kādus skaitļus tu ievadi, ka tādu rezultātu saka. P.S. goto ir evil. Iesaku padomāt par while, do vai for ciklu ciklu. if (b!=1,2) ir ļoti nekorekts pieraksts! Pie tam padomā - ja izpidlās viens no tiem b==1 vai b==2 ifiem, tad jau no šī ifa nav nekādas jēgas - 100% b nebūs ne 1, ne 2, vispār var nelikt nekādu ifu, bet uzreiz erroru izvadīt. Link to comment Share on other sites More sharing options...
Gljuks Augusts 4, 2005 Share Augusts 4, 2005 cout<<"Jusu konta atlikums ir "<<a-i; pirmo reizi izpildot rindiņu i vēl nav ievadīts, un nekur arī nav norādīts, kādam tam būtu jābūt, tāpēc i var gadīties dajebkāds skaitlis... Link to comment Share on other sites More sharing options...
Guest bubu Augusts 4, 2005 Share Augusts 4, 2005 Gljuks: un ko pēc tavām domām nozīmē šī rindiņa: int a=256; //konta atlikums Remius: vēl pie tam ņem vērā, ka char mainīgajā var ievadīt tikai vienu ciparu! Ja ievadīsi '0', tad tā ascii vertība būs 48, kas tiks izmantota tajā aritmētiskajā operācijā (atņemšanā) ar a. Link to comment Share on other sites More sharing options...
Gljuks Augusts 4, 2005 Share Augusts 4, 2005 char i; //ievadāmais skaitlis int a=256; //konta atlikums sakums: cout<<"Jusu konta atlikums ir "<<a-i; vietā int i=0; //ievadāmais skaitlis int a=256; //konta atlikums sakums: cout<<"Jusu konta atlikums ir "<<a-i; es jau nesaku, ka a nav zināms, nav zināms i Link to comment Share on other sites More sharing options...
Guest bubu Augusts 4, 2005 Share Augusts 4, 2005 Āh pārlasījos, likās, ka teici par a. Nu ja, bet i gan nav definēts. Link to comment Share on other sites More sharing options...
Vilx- Augusts 4, 2005 Share Augusts 4, 2005 Iesaku paarraxtiit shitaa: #include <iostream> using namespace std; int main () { int i; //ievadāmais skaitlis int a=256; //konta atlikums int b=1; do { cout<<"Jusu konta atlikums ir "<<a; cout<<"Ls"<<endl; cout<<"Ievadiet summu kuru velaties iznemt "; cin>> i; cout<<"juus ievadiijaat veertiibu "<<i<<endl; if (i<=a) cout<<"Jusu konta paliek "<<a-i<<"Ls"<<endl; else cout<<"par maz naudas"<<endl; cout<<"Vai velaties iznjemt veel naudu?"<<endl; while(1) { cout<<"Ievadiet 1, lai beigtu darbu, 2, lai turpinātu"<<endl; cin>>b; if ((b!=1) && (b!=2)) cout<<"nepareiza komanda"<<endl; else break; } } while (b == 1); return 0; } Dazji gan var piesieties pie while(1). Manupraat, taa ir optimaalaak. Link to comment Share on other sites More sharing options...
Guest Augusts 4, 2005 Share Augusts 4, 2005 Labi... es ar vienu jautājumu uzprasīšu... jūtos varen debils C++... #include <iostream> #include <fstream> using namespace std; int main() { int speisi = 0; int chari = 0; int teikumi = 0; char ch; string ca; cout << "Kura faila statistiku gribi zinaat?" << endl; cin >> ca; ifstream fails("/etc/mtab"); if (! fails) { cout << "A vot nevaru atveert!" << endl; return -1; } while (fails.get(ch)) { switch (ch) { case ' ': speisi++; break; case 'n': case 't': break; case '.': teikumi++; break; default: chari++; break; } } cout << "Taatad ir " << speisi << " atstarpes, " << chari << " burti/ziimes/hvzkas, " << teikumi << " teikumi" << endl; return EXIT_SUCCESS; } tas kods strādā... bet ja es nomainu ifstream fails("/etc/mtab"); uz ifstream fails(ca); šams izgrūž error.. kā to labot? Link to comment Share on other sites More sharing options...
Gljuks Augusts 4, 2005 Share Augusts 4, 2005 Negribas taisīt jaunu topiku... Tātad uzdevums ir šeit Mans variants testā savāc 8 no 10 punktiem, 2 nedabū, jo uzdevumam ir 3 sekunžu ierobežojums Tā, kā boot.lv forumā apgrozās daudzi gudri programmētāji/matemātiķi/utt. ,ceru, ka kāds palīdzēs un ieteiks veidus, kā uzlabot programmas ātrdarbību :wink: , vai parādīs, kā šo pašu uzdevumu izpildīt savādāk :twisted: Ar programmēšanu sāku (nopietni) ņemties šovasar, tāpēc nenolīdziniet mani ar zemi, ja kaut kas nav tā kā pieņemts, bet padomi - welcome Mans variants: #include <fstream.h> #include <math.h> int main() { //mainigo definesana int sakuma_skaitlis,beigu_skaitlis,ne_pirmskaitli=0; ifstream input; ofstream output; //mainigo nolasisana input.open("primes.in"); input>>sakuma_skaitlis; input>>beigu_skaitlis; input.close(); //parbauda cik skaitlu dotaja intervala nav pirmskaitli for(int i=sakuma_skaitlis,kvadratsakne;i<=beigu_skaitlis;i++) { //ja ir kads dalitajs, tad tas ir mazaks, vai vienads ar kvadratsakni kvadratsakne=(int)sqrt(i); for(int j=2;j<=kvadratsakne;j++) { if(i%j==0) { ne_pirmskaitli++; break; } } } //datu izvade output.open("primes.out"); output<<(beigu_skaitlis-sakuma_skaitlis+1-ne_pirmskaitli); output.close(); return 0; } Pats esmu mēģinājis izslēgt no cikla visus pāra skaitļus, un ja godīgi vairāk ideju man arī nav... Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!