Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: nezabelejimata в Jul 05, 2015, 17:15



Титла: Сортиране по азбучен ред С++
Публикувано от: nezabelejimata в Jul 05, 2015, 17:15
Здравейте,
Много се рових и много теми и т.н. изчетох и в крайна сметка нищо не можах конкретно да намеря и да ми свърши работа... Езика е с++ и на една тъпа задача не мога да я реша просто, защото на всякъде ми трябва сортиране по азбучен ред... и някак си не се получава..
Условието на цялата задача е :

Напишете компютърна програма, която извършва изброените по-надолу обработки на данни за домашни любимци:
 1. Въвежда с контрол на стойността брой на любимците от 5 до 160 и за всеки от тях въвежда (без контрол на стойностите) следните данни: име на любимеца (низ до 30 знака, възможно с интервали); вид на любимеца (низ до 20 знака, например куче, котка, рибка, паяк и т. н.); възраст на любимеца в брой навършени месеци; име и фамилия на стопанина на любимеца разделени с интервал (низ до 40 знака).
2. Извежда пълните данни за всички любимци, подредени по азбучен ред на вида, а при един и същ вид – по намаляване на възрастта. За всеки любимец данните да се изписват на един ред като първо е името му, после видът, след това възрастта му, но в години и месеци (както в примерите по долу), а накрая стопанина. Например: Рики - Острия нокът, котка, 3 г. и 2 мес., Сашо Миков Ариел, рибка, 0 г. и 8 мес., Фани Петрова
 3. Въвежда фамилия на човек и извежда списък с имената и вида на всички домашни любимци на стопани с такава фамилия, а също и средната възраст на тези любимци. Списъкът да бъде азбучно подреден по име на любимеца.   

но като цяло ме интересува конкретно за сортитрането по азбучен ред ... много благодаря предварително ;)


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: michael1960 в Jul 05, 2015, 18:29
За проверка на два стринга, ще ти трябва функцията:
Код:
int strcmp ( const char * str1, const char * str2 );

Освен това е хубаво, препоръчително, но не задължително, двата стринга, които ще проверявате предварително да са с еднакъв шрифт, в смисъл само малки букви или само големи букви и да премахнете всички интервали, и в двата стринга, и тогава да сравнявате двата стринга.




Титла: Re: Сортиране по азбучен ред С++
Публикувано от: nezabelejimata в Jul 05, 2015, 19:14
Да,но не е ли само за сравнение само дали не са еднакви, а не кое е по-голямо...?


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: michael1960 в Jul 05, 2015, 19:18
Цитат
http://www.cplusplus.com/reference/cstring/strcmp/

Какво е сортировка, това е подреждане накратко казано стойностите на някакъв масив по възходящ или по низходящ ред, цялата работа практически се свежда до проверка дали предишния елемент на масива е по - голям или най - много равен на следващият. Ако това е така двата елемента се разменят, ако не, се оставят така като са. Е въпросната функция връща число по - голямо от нула ако първият й параметър е по - голям от втория, по - малко от нула ако първият й параметър е по - малък от нула и равно на нула ако двата параметъра са равни. В случая със стрингове, тя сравнява ASCII кодовете на символите. Това е в общи линии.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: gat3way в Jul 05, 2015, 22:54
String класа в C++ има предефинирани операторите < и > за лексикографски сравнения, което е същото като strcmp() само че върху String, а не върху char*. Предполагам щом е C++, на това ще се зарадват.

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


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: tdonev в Jul 06, 2015, 13:26
... Изтрито от автора ...


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: chen_dzen в Sep 01, 2015, 21:30
че от тва по-лесно няма

жокер:

     char ch;
     int x;
     x=char(ch);


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: NorthBridge в Sep 02, 2015, 00:43
String класа в C++ има предефинирани операторите < и > за лексикографски сравнения, което е същото като strcmp() само че върху String, а не върху char*. Предполагам щом е C++, на това ще се зарадват.

Може и да зависи от университета, но при мен редовна практика на упражнения бяха задачи в които трябваше да си пишем собствени имплементации на стекове, опашки, листи и графове, а целия STL беше абсолютно забранен. Така че по-добре да си кара със strcmp, да си няма ядове после.

П.С: Тази тема е малко некромантска вече.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: go_fire в Sep 02, 2015, 00:52
@NorthBridge брат, ти ме разби. Че то като махнеш от Ц+1 стандартната библиотека, нищо не остава, по-добре да ползваш дѐдо му.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: gat3way в Sep 02, 2015, 01:23
Цитат
по-добре да ползваш дѐдо му.

Тотално съгласен, крайно време е C++ да бъде изличен от лицето на земята, това е световно зло и трябва да бъде ликвидирано за доброто на човечеството.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: NorthBridge в Sep 02, 2015, 11:21
Тотално съгласен, крайно време е C++ да бъде изличен от лицето на земята, това е световно зло и трябва да бъде ликвидирано за доброто на човечеството.

Добре, аз примерно както искам да се занимавам с game development за в бъдеще, и като ненавиждам .JavaScript, с кой език да се захвана  :D Някъде ползват вече C#, обаче там е още по-голям мармалад отколкото ако си караш със С+1.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: chen_dzen в Sep 02, 2015, 11:34
java  ;D специално за тази задача STL не е нужен просто един масив от  чарове го представяш в инт(ASCII) и ги сравняваш по мехурчетата или там както ти харесва. Поне на мен някво такова решение ми се върти в главата.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: gat3way в Sep 02, 2015, 11:54
Цитат
Добре, аз примерно както искам да се занимавам с game development за в бъдеще, и като ненавиждам .JavaScript, с кой език да се захвана

Lua, много ясно. Останалото не е интересно.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: go_fire в Sep 02, 2015, 12:39
Луа се ползва там, където скоростта не е критична, например поведението на вразите. Иначе имам предложение за Норд, как хем да му е бързо, хем да има благинките на съвременните езици — Нимрод. Той има всички модерни финтифлюшки и в същото време се транслира до Ц=Ц+1, където може да се пипне преди да се докара окончателно до двоично състояние.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: gat3way в Sep 02, 2015, 13:00
Той днешния гейм девелопмънт поне доколкото са ми обяснявали, се свежда предимно до вземане на някой готов енджин който в добрия случай нещо малко трябва да му се преправя, в общия случай обаче повечето се свежда предимно до скриптване. Нещо като Мишо Шамара с неговите албуми за повече пари и за още повече пари, нали требе да се изцеди колкото може. То навсякъде е така де, не само там, скучната реалност срещу смелите очаквания и тем подобни.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: spec1a в Sep 02, 2015, 14:36
   Хора, осъзнайте се, какво му е на С++  като език.
   Обектно ориентиран, и може да  пипа на ниско ниво,това
НЕ МОГАТ да го правят "модерни" езици  като
  java,perl,PHP,С#,Python,Ruby и т.н.
  Да не говорим за  по-доброто управление на паметта (голяма част от горепосочените  "модерни" езици имат само garbage collector   или нещо подобно, и не могат директно да освобождават памет).
(в  С++ е готино: ob=new  <нещо си>; .......   delete ob; И ТОЛКОЗ)
  Аз обаче не можах да разбера какъв точно е проблема на мадамата, нищо конкретно не е написано.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: gat3way в Sep 02, 2015, 15:57
"Ръчното" управление на паметта е по-скоро проклятие, отколкото благодат, всеки знае каква красота е да се дебъгват memory leak-ове и dereference-ванки на указатели към вече освободена памет в някой по-голям проект. Особено когато става въпрос за многонишково приложение.

ООП наклонностите на C++ са раздути, ненужно комплексни и нерядко тласкащи към много лоши идеи, примерно не знам защо им е трябвало въобще да измислят глупости като множественото  унаследяване, friend класовете и тем подобни безумия.

Въобще крайно време е да го пенсионират най-накрая, за доброто на човечеството.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: spec1a в Sep 02, 2015, 17:34
  Аз пак не успях да разбера с какво точно Java (примерно)
превъзхожда С++ .
  Това, което може да се постигне на Java, може  да се постигне
и на С++ ,но обратното не е вярно ( на  С++ може да имаш
пълен контрол, вкл. и на най-ниско ниво , а на Java това не
може да се постигне).
  Затова и се налага да има библиотеки ,компилирани от С/С++
ако е необходим достъп на ниско ниво (най-общо казано),чиито
функции се извикват от съотв. Java код .
  Това с особена сила важи напр. за андроид приложенията.
  А "езика" С# пък въобще не е за коментар. ;D 


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: 4096bits в Sep 02, 2015, 18:05
На мен пък Python  ми харсва все повече и повече.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: gat3way в Sep 02, 2015, 20:00
Това какво може да се постигне не е кой знае колко значим критерий (в противен случай хората нямаше да се напъват да измислят други програмни езици след могат да си напишат всичко на асемблер - тук по едно време се подвизаваше един такъв пурист).

Примерно цялата купчина j2ee неща търкалящи се по света може и да се пренапишат на cpp...но просто не виждам кой би си го причинил това.

Както и да е, C++ се е сдобил с популярност в едни други времена, когато изчислителните възможности са били доста по-ограничени и нуждата от софтуер е била по-малка в сравнение с днес. Всичко това вече не стои така. За капак на всичко, C++ прогресира по още по-извратен начин, имам предвид C++11.



Титла: Re: Сортиране по азбучен ред С++
Публикувано от: chen_dzen в Sep 02, 2015, 20:18
C# не се ли прекръсти на .net
защото C# без .NET = 0
За game dev и аз си мисля, че C/C++/UDK е много добре.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: spec1a в Sep 03, 2015, 14:02
  Някой от форума занимава ли се с андроид приложения ?
  Като че ли цялата концепция е неефективна.
  Приложенията се изпълняват в dalvik виртуални машини,които интерпретират специфичен псевдокод.Със сигурност би се повишило сериозно бързодействието ако приложенията са нативни (т.е изпълним машинен код ).
  Понякога (напр. при по-бавни процесори) сериозно се
забавя и самото стартиране на приложение (форква се
родителска dalvik виртуална машина (zygote), после
се зареждат съотв. данни и т.н.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: go_fire в Sep 03, 2015, 14:13
Ей сега стана боя, като дойдат жабарите и цъострите  :D

п.п. Далвик го изхвърлиха преди две версии в полза на джит.



Титла: Re: Сортиране по азбучен ред С++
Публикувано от: BRADATA в Sep 03, 2015, 17:02
  Някой от форума занимава ли се с андроид приложения ?
  Като че ли цялата концепция е неефективна.
  Приложенията се изпълняват в dalvik виртуални машини,които интерпретират специфичен псевдокод.Със сигурност би се повишило сериозно бързодействието ако приложенията са нативни (т.е изпълним машинен код ).
  Понякога (напр. при по-бавни процесори) сериозно се
забавя и самото стартиране на приложение (форква се
родителска dalvik виртуална машина (zygote), после
се зареждат съотв. данни и т.н.
Мале, човече... Ти с какво точно се занимаваш? Освен с тролене разбира се.... Разбира се, че ще има сериозно повишаване на бъзодействието ако се пише на асемблер.... Само, че я си помисли до какво ще доведе това? Поразсъждавай малко и ми отговори... Ще ти дам един хинт - защо програма писана за 8031 няма да тръгне на 6502?


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: spec1a в Sep 03, 2015, 18:51
  Разбира се,че не става въпрос за тролене, що за въпрос.
  Просто  някаква дама във форума, иска да и се напише
програма за сортиране , дискусията се отклони в съвсем
друга посока, започнаха коментари за различните програмни
езици, това е .Просто защитавам някои програмни езици.
Имам доста сериозен опит с андроид приложенията,пиша
такива и коментирах ефективността ...
Пък и не съм предлагал да се унищожи даден език,нали ;D  .
  По отношение на биткоините (ако и затова става дума),
неслучайно пуснах темата във "Живота,вселената ...", има и
съответните емотикони и т.н.
   Любопитни са ми някои реакции на съфорумци ...
   Смятам ,че умея да си защитавам тезите.
   Бъдете здрави !


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: spec1a в Sep 03, 2015, 22:42
   BRADATA, ако не е тайна,кои са твоите любими програмни езици (или
предпочитани по-общи концепции в програмирането).
  Аз все пак съм се изказвал достатъчно аргументирано.
  P.S. не крия, че с пича ,които обича да програмира на асемблер,имаме
много общи възгледи .. ;D


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: daniel_vulchev в Sep 03, 2015, 23:24
http://www.cplusplus.com/forum/beginner/12089/ ($2) прочети тук. Като не можете да пишете код дали на жава или пхп ще се пънете е все там и кой е по добрия като кода е написан некадърно е без значение вместо да помогнете си мерите клавиатурите и късите кабели


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: BRADATA в Sep 04, 2015, 05:51
   BRADATA, ако не е тайна,кои са твоите любими програмни езици (или
предпочитани по-общи концепции в програмирането).
  Аз все пак съм се изказвал достатъчно аргументирано.
  P.S. не крия, че с пича ,които обича да програмира на асемблер,имаме
много общи възгледи .. ;D
Какво значи "любими"? Пиша на това, което ми върши работа. Аз съм по-скоро системен интергратор/администратор отколкото програмист. Занимавам се с интегрирането на хардуерни устройства във вече съществуващи системи. И съответно ми се налага да пиша front&backend приложения с оглед безпроблемна работа на системата. Имам познания в ООП/ЛП с PHP, perl, писал съм на C и C++, pascal(turbo&Delphi), bash scripting, HTML, JavaScript, SQL, писал съм на асемблер когато се е налагало. Все пак се занимавам с компютърни системи от началото на 90-те години миналия век. На тема концепции - всичко зависи от конкретната задача. Давам пример - глупаво е за една страничка, показваща състоянието на дадена система (брой събития например) да се ползва ООП.


Титла: Re: Сортиране по азбучен ред С++
Публикувано от: spec1a в Sep 04, 2015, 22:37
  Баси, как сме се отплеснали ...
  Няма ли кой,да напише курсовата работа на мадамата... ;D 
  А ние тук спорим за програмните езици, щяхме да се сбием ;D