Results 1 to 2 of 2
Thread: ìàëêî ïîìîù çà çàäà÷êà
Hybrid View
-
24th June 2012 19:22 #1Registered User
Join Date: Jan:2012
Location: Nowhere
Posts: 1
ìàëêî ïîìîù çà çàäà÷êà
Çäðàâåéòå. Âúçëîæåíà ìè å çàäà÷à íà C/C++, ïî÷òè å ãîòîâà, íî ñëåä ñòàðòèðàíåòî íà âòîðàòà èëè òðåòàòà ñòúïêà çàáèâà è äàâà ãðåøêà çà Send Report. Ñòèãà äî ñðàâíåíèåòî íà äâå ïîäðåäåíè òðîéêè è ñëåä âúâåæäàíåòî èì crash-âà. Ùå ñå ðàäâàì àêî íÿêîé ìîæå äà ïîãëåäíå êàêâî òî÷íî íå å íàðåä â êîäà è àêî ìîæå äà ãî ðåäàêòèðà. Òà çàäà÷àòà å:
Äà ñå ïðîåêòèðà è ðåàëèçèðà èíñòðóìåíòàëíî ñðåäñòâî çà ìîäåëèðàíå ñ ìíîæåñòñâà, ðàáîòåùî â öâåòåí òåêñòîâ è ãðàôè÷åí ðåæèì íà ìîíèòîðà è ðåàëèçèðàùî ñëåäíèòå èçèñêâàíèÿ:
• âúâåæäàíå íà ìíîæåñòâî îò ïîäðåäåíè ñèìâîëíè òðîéêè îò òåêñòîâ ôàéë;
• èçïúëíåíèå è ãðàôè÷íî ïðåäñòàâÿíå íà îïåðàöèÿòà ñîðòèðàíå íà ïîäðåäåíè òðîéêè;
• èçïúëíåíèå è ãðàôè÷íî ïðåäñòàâÿíå íà îïåðàöèÿòà òúðñåíå íà ïîäðåäåíà òðîéêà;
• ïðîâåðêà çà íåðàâåíñòâî íà äâå ïîäðåäåíè òðîéêè ;
• çàïèñâàíå íà äàííèòå è ðåçóëòàòèòå îò ïúðâàòà îïåðàöèÿ â òåêñòîâèÿ ôàéë.
êîä:
ïðèìåðåí òåêñòîâ ôàéë asd.txtCode:#include <iostream> #include <string> #include <fstream> #include <conio.h> #include <windows.h> #include <dos.h> using namespace std; string line; char lineouttofile[1000]; int brtz = 0; HANDLE hConsole; char **Mas; // Masiv int ReadFile () { char imefile[10]; cout<< "Ime na fail: "; cin >> imefile; ifstream myfile (imefile); if (myfile.is_open()) { while (! myfile.eof() ) { getline (myfile,line); cout << line << endl; } myfile.close(); } else cout << "Unable to open file" << endl; return 0; } int WriteFile () { int ii = 0; for (unsigned int i = 0; i<line.length()-3; i+=4) { lineouttofile[i] = Mas[ii][0]; lineouttofile[i+1] = Mas[ii][1]; lineouttofile[i+2] = Mas[ii][2]; lineouttofile[i+3] = ';'; ii++; } ofstream myfile ("example.txt"); if (myfile.is_open()) { myfile << lineouttofile; myfile.close(); } else cout << "Failyt ne moje da se otvori." << endl; return 0; } void GetText2Masiv () { int textlen = line.length(); for (int i = 0; i < textlen; i++) { if (line[i] == ';') brtz++; } //Sazdava nov masiv Mas = new char *[brtz]; if (! Mas) { printf("Greshka! Nqma dostatachno pamet!\n"); return; } for (int i=0; i < brtz; i++) { Mas[i] = new char [3]; if (! Mas[i]) { printf("Greshka! Nqma dostatachno pamet!\n"); return; } } int k=0; for (int i = 0; i < brtz; i++) { Mas[i][0] = line[k]; Mas[i][1] = line[k+1]; Mas[i][2] = line[k+2]; k+=4; } } void ShowMasiv() { for (int i = 0; i < brtz; i++) { cout << i+1 << "- "; for (int j=0;j<3;j++) cout << Mas[i][j]; cout << endl; } } void IsEqual() { int pyrvatr; int vtoratr; cout << "Izberete 2 troiki za sravnenie " <<endl; cout << "Izberete pyrvata troika (neiniat nomer)"; cin >> pyrvatr; pyrvatr = pyrvatr--; cout << "Izberete vtorata troika (neiniat nomer)"; cin >> vtoratr; vtoratr = vtoratr--; if ((Mas[pyrvatr][0] != Mas[vtoratr][0]) || (Mas[pyrvatr][1] != Mas[vtoratr][1]) || (Mas[pyrvatr][2] != Mas[vtoratr][2])) cout << "Dvoikite ne sa ravni" <<endl; if ((Mas[pyrvatr][0] == Mas[vtoratr][0]) && (Mas[pyrvatr][1] == Mas[vtoratr][1]) && (Mas[pyrvatr][2] == Mas[vtoratr][2])) cout << "Dvoikite sa ravni" <<endl; } void FindTroika() { hConsole = GetStdHandle(STD_OUTPUT_HANDLE); char tyrs[10]; cout << "Vavedete troika za tyrsene " <<endl; cin >> tyrs; if (strlen(tyrs) > 3) { cout << "Vyvedete maksimum 3 simvola "<<endl; exit(0); } bool found = false; for (int i = 0; i < brtz; i++) { if ((Mas[i][0] == tyrs[0]) && (Mas[i][1] == tyrs[1]) && (Mas[i][2] == tyrs[2])) { found = true; SetConsoleTextAttribute(hConsole, 3); cout << Mas[i][0] << Mas[i][1] << Mas[i][2] << endl; Sleep(500); } else { SetConsoleTextAttribute(hConsole, 6); cout << Mas[i][0] << Mas[i][1] << Mas[i][2] << endl; Sleep(500); } } SetConsoleTextAttribute(hConsole, 7); if ( found ) cout << "Namerena e troikata, koiato tyrsite "<<endl; else cout << "Ne e namerena e troikata, koiato tyrsite " <<endl; } void SortTroika () { hConsole = GetStdHandle(STD_OUTPUT_HANDLE); system("cls"); int color = 3; int elem1; int elem2; SetConsoleTextAttribute(hConsole, 5); ShowMasiv(); cout << endl; char temp[3]; for (int i = brtz; i >= 0; i--) { for (int j = 0; j < i-1; j++) { if ( int(Mas[j][0]) > int(Mas[j+1][0]) ) { color = 2; elem1 = j; elem2 = j+1; temp[0] = Mas[j][0]; temp[1] = Mas[j][1]; temp[2] = Mas[j][2]; Mas[j][0] = Mas[j+1][0]; Mas[j][1] = Mas[j+1][1]; Mas[j][2] = Mas[j+1][2]; Mas[j+1][0] = temp[0]; Mas[j+1][1] = temp[1]; Mas[j+1][2] = temp[2]; for (int ki = 0; ki < brtz; ki++) { if (ki == elem1 || ki == elem2) color = 2; else color = 3; SetConsoleTextAttribute(hConsole, color); cout << ki+1 << "- "; for (int kj=0; kj<3; kj++) cout << Mas[ki][kj]; cout << endl; } } cout << endl; Sleep(1500); } } SetConsoleTextAttribute(hConsole, 7); cout << endl; } int main () { ReadFile (); GetText2Masiv (); ShowMasiv(); IsEqual(); FindTroika(); SortTroika (); ShowMasiv(); WriteFile(); for (int is=0; is < brtz; is++) delete []Mas[is]; delete []Mas; system("pause"); return 0; }
êàòî äåáúãâàì ïðîãðàìàòà ñòðåëêàòà ñî÷è ðåäà, êúäåòî ñå ïðàâÿò ïðîâåðêè ñ ìàñèâèòå, à èìåííî:Code:1- tje 2- kuj 3- sgr 4- gjg 5- geq 6- yjd 7- bjp 8- qhv 9- dwe 10- hjd 11- qcf
Ïðîáëåìà å íÿêúäå âúâ "vtoratr" ïðåäïîëàãàì, íî íå ìîãà äà ãî îïðàâÿ. Íÿìàì ìíîãî âðåìå è òðÿáâà äà äîâúðøà êóðñîâàòà ðàáîòà, ìîæå ëè íÿêîé äà ïîìîãíå?Code:if (Mas[pyrvatr][0] != Mas[vtoratr][0] || Mas[pyrvatr][1] != Mas[vtoratr][1] || Mas[pyrvatr][2] != Mas[vtoratr][2]) cout << "Dvoikite ne sa ravni"<<endl; if (Mas[pyrvatr][0] == Mas[vtoratr][0] && Mas[pyrvatr][1] == Mas[vtoratr][1] && Mas[pyrvatr][2] == Mas[vtoratr][2]) cout << "Dvoikite sa ravni"<<endl;
-
25th June 2012 13:01 #2
Íàé-âåðîÿòíî èçëèçàø èçâúí ðàìêèòå íà ìàñèâà Mas. Ñëîæè ïðîâåðêà äàëè òúðñåíèòå òðîéêè ñúùåñòâóâàò è ÷àê òîãàâà ãè ñðàâíÿâàé.
Îñâåí òîâà, âúâ ôóíêöèÿòà çà ñðàâíåíèå ìîæå äà çàìåíèø òîâà:
ñ òîâà:Code:if ((Mas[pyrvatr][0] != Mas[vtoratr][0]) || (Mas[pyrvatr][1] != Mas[vtoratr][1]) || (Mas[pyrvatr][2] != Mas[vtoratr][2])) cout << "Dvoikite ne sa ravni" <<endl; if ((Mas[pyrvatr][0] == Mas[vtoratr][0]) && (Mas[pyrvatr][1] == Mas[vtoratr][1]) && (Mas[pyrvatr][2] == Mas[vtoratr][2])) cout << "Dvoikite sa ravni" <<endl;
çàùîòî óñëîâèåòî èëè å âÿðíî, èëè íå å - íÿìà íóæäà äà ñå îïèñâàò äâàòà ìó âàðèàíòà.Code:if ((Mas[pyrvatr][0] != Mas[vtoratr][0]) || (Mas[pyrvatr][1] != Mas[vtoratr][1]) || (Mas[pyrvatr][2] != Mas[vtoratr][2])) cout << "Dvoikite ne sa ravni" <<endl; else cout << "Dvoikite sa ravni" <<endl;
Îùå ïî-äîáðå å äà ñå èçïîëçâà âãðàäåíàòà ôóíêöèÿ çà ñðàâíÿâàíå - strcmp() (àêî å âúçìîæíî, íå ñúì ïîãëåäíàë êàê ïúëíèø ìàñèâèòå) è äà ñå íàïèøå òàêà:
Code:if (!strcmp(Mas[pyrvatr], Mas[vtoratr])) cout << "Dvoikite ne sa ravni" <<endl; else cout << "Dvoikite sa ravni" <<endl;
Èçâúí òåìàòà - òîçè êîìåíòàð ìå óáè íàïðàâî.
Code:char **Mas; // Masiv
Fujistu Lifebook E756 | Core i7-6500U / 400MHz-3.1GHz | 8 GB DDR4-2133 | Samsung PM871 / 256 GB SSD | 15" 1920x1080 | Manjaro Linux + kernel 4.19




Reply With Quote
Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè