Премини към съдържанието

notorious19

Потребител
  • Публикации

    35
  • Регистрация

  • Последно онлайн

Харесвания

2 Неутрална репутация

2 Последователи

Всичко за notorious19

  • Титла
    Потребител

Последни посетители

1140 прегледа на профила
  1. Някой може ли да разгадае тази задачка?
  2. На C# ми трябва по принцип, просто първоначално сметнах, че би било по-добре на C++ да споделя кода.
  3. Да, от университета го изискват това да се напише тази функция, която ще сравнява два стринга символ по символ ( да се предефинира strcmp един вид). По този начин който съм дал пак работи и подрежда масива от стрингове, но не в правилния ред, защото явно някъде бъркам в кода. Идеята ми е да се поддават по два стринга от масива към функцията и в нея да се прави посимволното сравнение на думите. В зависимост от резултата, който връща да се сортират тези думи в масива по ASCII код. static int comp(string s1, string s2) { int i1 = 0, i2 = 0; while ( (i1 < s1.Length) && (i2 < s2.Length) ) { if(Char.ToUpper(s1[i1]) != Char.ToUpper(s2[i2])) return (Char.ToUpper(s1[i1]) < Char.ToUpper(s2[i2])) ? -1 : 1; ++i1; ++i2; } int size1 = s1.Length, size2 = s2.Length; if (size1==size2) return 0; return (size1<size2) ? -1 : 1; } static void Main(string[] args) { string[] a = { "eggs", "Apple", "apple", "Eggs", "spaghetti" }; string temp; int n = a.Length; for (int j = 0; j < n - 1; j++) { for (int i = j + 1; i < n; i++) { if (comp(a[j], a[i]) < 0) { temp = a[j]; a[j] = a[i]; a[i] = temp; } } } for (int i = 0; i < a.Length; i++) Console.WriteLine(a[i]); Console.Read(); } // трябва да извежда [Apple Eggs apple eggs spaghetti] }
  4. Ясно ми е, че греша някъде, затова и реших да пиша тук, ако може някой от по-знаещите и по-можещите да ми помогне по някакъв начин.
  5. Да, но задачата ми е да напиша такава функция която да сравнява стрингове символ по символ.
  6. Идеята е да се сортира този масив от стрингове в case-sensitive order, като за целта се използва тази функция, която ги сравнява символ по символ.
  7. Здравейте, от известно време се мъча с написването на функция която да сравнява два стринга, символ по символ. В случай, че първите символи са еднакви се преминава към вторите, ако и те са еднакви към третите и т. н. Целта е да се използва тази функция за сортиране на масив от стрингове в case-sensitive order. bool Comp(string s1, string s2) { for (int i = 0; i < s1.length() && i < s2.length(); i++) { if (s1[i] != s2[i]) { if (s1[i] < s2[i]) return true; } } return false; } static void main() { string a[] = { "eggs", "Apple", "apple", "spaghetti" }; string temp; for (int i=0; i<sizeof(a)-1; i++) { for (int j=i+1; j<sizeof(a); j++) { if (Comp(a[i], a[j])) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } } for (int i = 0; i < sizeof(a); i++) cout << a[i] << endl; } // извежда [ spaghetti apple Apple eggs ] // трябва [Apple apple eggs spaghetti] Търсих в google доста, но безуспешно, така че всякаква помощ би ми била от полза. Благодаря предварително!
  8. notorious19

    Задача свързана с процеси

    И аз това се чудя, но ми трябва някакъв примерен код на С, който да реализира тази задача..
  9. Здрвейте, имам следната сложна задача по "Операционни системи" и тъй като силно се затруднявам с нея, моля някой, ако има някаква идея как би могла да стане задачата, да ми помогне.Благодаря!
  10. notorious19

    Процеси и обща памет

    Благодаря много, жив и здрав!
  11. notorious19

    Процеси и обща памет

    struct myStruct { int num[400]; int flag1; int flag2; int turn; }; struct myStruct *cs; cs = (struct myStruct *)getmem(4112); srand ( time(NULL) ); for (i = 0; i < 400; i++) cs->num[i] = rand()%100+1; По този начин ако се направи първия процес да генерира случайни числа в обща памет, правилно ли ще бъде, понеже не мога да разбера принципа на работа на семафорите.Променливите flag1, flag2 и turn служат за синхронизация по алгоритъма на Декер.
  12. notorious19

    Процеси и обща памет

    Условието гласи точно това което съм написал, но дори и да е грешно кой е най-простия начин да се извърши това сигнализиране между процесите.Иначе възможно ли е задачата да се направи така че първо първият процес да записва числата в паметта, а след това втория оттам да ги записва във файл?
  13. Здравейте имам задача "Да се състави програма на C която създава два процеса.Процесите комуникират през общата памет с размер едно цяло число.Първият процес генерира 400 произволни цели числа и ги записва в общата памет.Втория ги чете и ги записва във файл." Записа във файл ми е ясно как ще стане, но ми трябва малко помощ относно това как трябва да се генерират и запишат числата в общата памет.Имам дадена следната функция за заемане на обща памет : void * getmem (int i){ int shmid; shmid = shmget(70+i, SHMSIZE, IPC_CREAT|0666); return shmat(shmid,0,0); } А по този начин се извършва самото заемане : int *r; r = (int *)getmem(4112); *r=0; Проблема е там, че не знам как трябва да стане заемането на памет за 400 произволни цели числа.Ако може малко помощ ще съм благодарен
  14. Здравейте, може ли някой да ми помогне с написването на функция, която "Намира и връща в нов контейнер обекти, с цена под зададена стойност (параметър) и изтрива от стария.".При мен дава грешка като се опитам да използвам push_back() и pop_back() с вектора от обекти и не знам как иначе ще стане прехвърлянето и изтриването.Ето това е кода на класа: class Stock{ string ime; string proizvoditel; int cena; public: Stock(){ ime=" "; proizvoditel=" "; cena=0; } Stock(string i, string p, int c){ ime=i; proizvoditel=p; cena=c; } Stock(Stock& s){ ime=s.ime; proizvoditel=s.proizvoditel; cena=s.cena; } void set_ime(string i){ ime=i; } void set_proizvoditel(string p){ proizvoditel=p; } void set_cena(int c){ cena=c; } string get_ime(){ return ime; } string get_proizvoditel(){ return proizvoditel; } int get_cena(){ return cena; } bool operator<(const Stock& s){ return cena<s.cena; } friend void prehvurlqne(vector<Stock>vec, int c); };
  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване