Marcis91 Ierakstīts Oktobris 10, 2011 Share Ierakstīts Oktobris 10, 2011 Sveiki, vai lūdzu varētu izpalīdzēt? Dota skaitļu virkne a(1), a(2), , a(n), kur visi elementi ir pa pāriem atšķirīgi. Samainīt vietām šajā virknē lielāko un pēdējo elementu. viss ir, tikai kā var uztaisīt, ka lietotājs nedrīkst ievadīt vienādus elementus, vai, ja ievada, tad izmet erroru, un pieprasa ievadit atkartoti??? Koda gabals, kur var ievadit elementus un pectam parbauda bet tas neder, jo man nevajag vienkārši zinojumu, ka neder, bet vajag, ka to elementu pa jaunu jaievada: http://paste.php.lv/db0797e1b5843f175df08e6c2cd6495f?lang=cpp Link to comment Share on other sites More sharing options...
HIGH-Zen Oktobris 11, 2011 Share Oktobris 11, 2011 (labots) Un kur problēma? Liec to pārbaudi iekšā pirmajā for ciklā, būs tev ziņojums un cikls turpinās. Figūriekava 5. rindā tiek pārvietota uz 18. rindu. Nu tur varbūt jāpielabo - ielasi ievadīto mainīgajā un tikai pēc pārbaudes, ja nav vienāds, tad liec masīvā. Labots Oktobris 11, 2011 - HIGH-Zen 1 Link to comment Share on other sites More sharing options...
Vilx- Oktobris 11, 2011 Share Oktobris 11, 2011 Es īsti nesaprotu, ko nozīmē "pa pāriem atšķirīgi"? Ar ko tas atšķiras no "visi atšķirīgi"? Link to comment Share on other sites More sharing options...
Marcis91 Oktobris 11, 2011 Author Share Oktobris 11, 2011 Es īsti nesaprotu, ko nozīmē "pa pāriem atšķirīgi"? Ar ko tas atšķiras no "visi atšķirīgi"? Ne ar ko, ķip matemātiķu valodā :D Link to comment Share on other sites More sharing options...
Somebody Oktobris 11, 2011 Share Oktobris 11, 2011 (labots) #include <stdio.h> #include <map> #include <vector> #include <iostream> #define n 5 using namespace std; int main() { int max_value=0,max_value_index; int c; map<int,int>skaitlu_kopa; int skaitli_pec_kartas[n+1];//nullto elementu neizmantosim, lai skaistaak for (int i = 1; i<=n; i++) { while(true) { cout<<i<<".elements:"; cin >> c; if(skaitlu_kopa.find(c)!=skaitlu_kopa.end())//Mekleejam vai taads jau bija { cout <<"Skaitlis "<<c<<" jau ir "<<endl; } else { skaitlu_kopa.insert(make_pair(c,i));//Liekam ieksaa, lai var naakosos paarbaudiit skaitli_pec_kartas[i]=c;//Liekam masiivaa //Piefikseejam lielaako,un taa indeksu (tikpat labi var beigaas map atrast peedeejo elementu) if((i==0)||(max_value<c)) { max_value=c; max_value_index=i; } break; } } } if(max_value_index==n) { cout << "Skaitlis "<<max_value<<" jau ir pedejais"<<endl; } else { cout << "Mainam pozicijas "<<max_value_index<<" un "<<n<<endl; c=skaitli_pec_kartas[max_value_index]; skaitli_pec_kartas[max_value_index]=skaitli_pec_kartas[n]; skaitli_pec_kartas[n]=c; } //Jaunais masiivs for(int i=1;i<=n;i++) { cout <<i<<".="<<skaitli_pec_kartas[i]<<endl; } return 0; } Vismaz man uz Linux ar g++ kompileejas un strādā ar 5 ; ja vajag vairaak - pietiek pamainiit augšā define uz citu vērtību. Labots Oktobris 11, 2011 - Somebody Link to comment Share on other sites More sharing options...
nemirst Oktobris 11, 2011 Share Oktobris 11, 2011 (labots) Izmanto vai nu to, ko HIGH-Zen iesaka, vai arī kaut ko līdzīgu, ko Somebody - vairāk C++ stilā, kas būtu vēlams, ja programmē C++. Ja raksti C++ stilā, tad visu var arī daudz vienkāršāk uzrakstīt, piemēram: Lai atrastu, vai vērtība jau eksistē masīvā (vektorā): std::find(v.begin(), v.end(), vertiba)!=v.end() Lai atrastu lielāko elementu un samainītu to vietām ar pēdējo: vector<int>::iterator maxValue = std::max_element(v.begin(), v.end()); int last = v.back(); v[v.size() - 1] = *maxValue; *maxValue = last; Labots Oktobris 11, 2011 - nemirst Link to comment Share on other sites More sharing options...
Marcis91 Oktobris 11, 2011 Author Share Oktobris 11, 2011 Paldies par atbildēm un ieteikumiem, kļuva skaidrs Link to comment Share on other sites More sharing options...
js.smi Novembris 6, 2011 Share Novembris 6, 2011 man vajag, ka to 1)programmu iespejams atkartot. 2)definet vinju, ka var ievadit lidz 20 skaitliem 3) iegut rezultatu ievadod 5 9 10 skaitlus nospiezot taustinu < Link to comment Share on other sites More sharing options...
habitbraker Novembris 6, 2011 Share Novembris 6, 2011 davai domaa pats, vai izveelies citu profesiju Link to comment Share on other sites More sharing options...
js.smi Novembris 6, 2011 Share Novembris 6, 2011 ja nevari palidzet, neraksti labak! Link to comment Share on other sites More sharing options...
js.smi Novembris 9, 2011 Share Novembris 9, 2011 ar programmas atkārtotu izpildi tiku galā, bet kā piemēram definēt programmu, lai tā būtu lietojama līdz 20 skaitļiem, un lietotājs var dabūt rezultātu ievadot piecus septiņus vai desmit skaitļus? Link to comment Share on other sites More sharing options...
valeri42009 Novembris 20, 2011 Share Novembris 20, 2011 cau visiem gudriem cilvekiem, man ir problema ar C++, ir dazi usdevumi...pilidziet uzrakstit: 1.Ir dots datnes nosaukums un divi veselie skaitļi N un K. Uzrakstīt programmu, kas izveido datni un ieraksta N rindas, katra no kurām sastāv no K ‘*’ simboliem. 2.Uzrakstīt programmu, kas ieraksta datnē tekstu “Reizinājuma tabula NxM” un reizinājuma tabulu NxM, kur N un M ievada lietotājs. Link to comment Share on other sites More sharing options...
Mezavecis Novembris 20, 2011 Share Novembris 20, 2011 Šeit parasti ir tā, ka cilvēki parasti cenšas palīdzēt tiem, kas kaut ko arī paši dara, respektīvi, parāda to koda daļu, kuru uztaisījis un apraksta problēmu. Pilnībā neviens te A-Z nepildīs uzdevumu. Link to comment Share on other sites More sharing options...
valeri42009 Novembris 21, 2011 Share Novembris 21, 2011 (labots) #include<iostream> #include <iostream> #include <conio.h> #include <math.h> #ifndef M_PI #define M_PI 3.14159265358979323846 #endif #include "pow_fun.h" using namespace std; //1.uzd // Aprakstīt bool tipa funkciju Even(K), // kas atgriež vērtību true, ja parametrs K ir pāra skaitlis, un false, // ja nav pāra skaitlis. Uzrakstīt programmu, kas, izmantojot funkciju, // atrod pāra skaitļu skaitu starp 10 veseliem skaitļiem. bool Even(int K) { if (K % 2 == 0) { return true; } else { return false; } } //2.uzd // Aprakstīt funkciju RadToDeg®, // kas atgriež leņķi grādos (R – leņķis radiānos, 0 < R < 2π, 1800 = π). // Par π skaitļa vērtību izmantot konstanti M_PI no bibliotēkas math.h. // Uzrakstīt programmu, kas, izmantojot funkciju, atrod 5 leņķu vērtības grādos. float RadToDeg(int R) { int G=R*(180/M_PI); { return G; } } //3.uzd // Aprakstīt funkciju Fact2(N), kas atgriež divkāršo faktoriālu. // N!! = 1*3*5…*N, ja N – nepāra skaitlis (N > 0); N!! = 2*4*6…*N, // ja N – pāra skaitlis (N > 0). Uzrakstīt programmu, // kas, izmantojot funkciju, atrod dotā skaitļa divkāršo faktoriālu. float Fact2(int N) { if (N % 2 == 0) { long f=1; for (int i=N; i>= 2; i=i-2) { f=f*i; } return f; } else (N % 2 !=0); { long f=1; for (int i=N; i>= 1; i=i-2) { f= f*i; } return f; } } // 4.uzd // Atsevišķā modulī aprakstīt funkciju Power(X, Y), // kas atgriež XY (nav atļauts izmantot nekādas gatavās iebūvētās funkcijas no C++ bibliotēkām). // Uzrakstīt programmu, kas, izmantojot funkciju, atrod dotā skaitļa A pakāpē B vērtību. // pow_fun.h void main() { cout << "*** Ievadiet 10 skaitljus! ***\n"; int skaits = 0; int skaitlis; for (int i = 1; i <= 10; i = i + 1) { cin >> skaitlis; if (Even(skaitlis) == true) { skaits = skaits + 1; } } cout << "Para skaitlju skaits ir vienads ar: " << skaits << endl; { cout << "Ievadiet 5 vertibas\n"; int G; int rezultats; for (int j=1;j<=5;j=j+1) { cin >> G; if (0 < G && G < 2* M_PI) { rezultats = RadToDeg(G); cout << G << "rad = "<<rezultats << " gradi" << endl; } else { cout << "ERROR!!!\n"; } } } { int n; cout << "Ievadiet skaitli:\n"; cin >> n; if (n > 0) { cout << n << "!! = " << Fact2(n) << endl; } else { cout << "ERROR!!!" << endl; } } { int A, B; cout << "Ievadiet skaitli un pakapi!\n"; cin >> A >> B; cout << power(A,B) << endl; } getch (); } ir kljudas? Labots Novembris 21, 2011 - Mežavecis Link to comment Share on other sites More sharing options...
Mezavecis Novembris 21, 2011 Share Novembris 21, 2011 Ļoti vēlams izmantot Code blokus, lai kods izskatās saprotamāks. 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!