Титла: линеен двусвързан списък Публикувано от: theenemy в May 09, 2010, 19:16 1. Да се състави линеен двусвързан списък за част от владетелите от Първата Българска Държава (около 8-10 записа). В структура да се дава :
името (и титлата); години на царуване – начална, крайна Програмата да дава чрез меню: А) Добавяне на владетел в началото и края. Б) Добавяне на владетел след владетел със зададено име. В) Изтриване на владетел – в началото, в края, при посочено име. Г) Да търси владетел с дадено име и да дава неговия наследник и предшественик. Д) Да извежда на екрана владетелите, царували повече от 10 години. Е) Разпечатване на целия списък; имам една примерна програма със двупосочен списък, която може да помогне, но нямам никаква представа как :D. Ако нямой може да помогне, ще съм му много благодарен :) Код
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 19:30 Какъв ти е проблема, че нямаш return на main-a ли?
Всъщност моя грешка, main() ти е деклариран като void, т.е. може и без return. Ето ти програмата: Титла: Re: линеен двусвързан списък Публикувано от: theenemy в May 09, 2010, 20:01 а това с какво да го отворя?
Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 20:09 В смъсъл с какво да отвориш?
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 20:14 Код: ~$chmod +x hanovete Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 20:16 Еми не знам за вас, ма тоя код без малко преправяне няма да мине през моето g++. Говоря за изходния в началото.
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 20:18 Код
Това сложих на 3-тия ред. Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 20:20 моя изрично поиска да му дам int main() а и няма как да приеме че <iostream.h>! h няма такова нещо аре за С библиотеката ясно.
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 20:21 Ммм да правилно, махнах h-то, но main()-а си остана void.
Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 20:26 ./spisak.cpp:287: error: ‘::main’ must return ‘int’
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 20:48 Код: #c++ file.cpp Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 20:50 Еми аз го оправям на int ама незнам защо е така.
gcc version 4.4.3 е да де аз ползвам g++ ./ Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 20:53 Код: c++ --version Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 20:55 А сега де аз винаги срещам тоя проблем особенно с шибаните задачи от университета дето никога не бачкат ако не ги прегледам за разни такива неща.
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 20:56 gat3way ще каже, сигурен съм че знае :)
Титла: Re: линеен двусвързан списък Публикувано от: gat3way в May 09, 2010, 22:03 Доколкото знам, в C++ main() трябва да връща int. Това че може да не връща нищо по принцип не е коректно и в C, но gcc го приема. Ама не знам според кой велик C стандарт това е така.
Така или иначе, освен streamed I/O-то, нищо друго от C++ не се ползва и е доста лесно това да се пренапише така че да се компилира с C компилатор. Свързани списъци много лесно се реализират и не виждам какво толкова има да му се мисли. Тая програма трябва само да й се бутне структурата node така че да държи имена на ханове и години, а не само някаква int стойност. Съответно да се въвеждат дати и имена. Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 22:06 @gat3 аз гледах само програмата да тръгне. Пуснах я изписука за cout и cin-а, аднах едно using namespace std, поле махнах h-а и накрая извика за че main-а трябва да връща int стойност, но извика защото я пуснах с gcc, като я пуснах със c++ file.cpp всичко тръгна. Но и аз като tyuio съм се чудил защо gcc и c++ ми правят такива въртели при компилация.
Титла: Re: линеен двусвързан списък Публикувано от: gat3way в May 09, 2010, 22:33 Сигурно е много учудващо защо трябва да връща int, при положение че никой не го интересува какво връща main(). Само че не е точно така. return X от main() е еквивалентно на exit(X) където и да било. Оттам идеята е че някой може и да се поинтересува от exit статуса, примерно ако някой bash скрипт иска да провери статуса от изпълнението на твоята програма, гледайки променливата $?. Та затова. Иначе не знам да има нещо друго, което да го налага.
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 22:40 Значи все пак трябва да има return дори и main-а да е дефиниран както тука с void отпред? Питам в практиката как е.
Титла: Re: линеен двусвързан списък Публикувано от: gat3way в May 09, 2010, 22:43 Не, ако е void няма как да има return, компилаторът ще те наплюе. Мм не знам какъв exit код връща когато е декларирано като void main(), предполагам винаги връща 0. Ама пак казвам, това е изгъзица на gcc, не е много следващо стандартите и няма гаранция че ще се държи така ако го компилираш с друг компилатор.
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 22:48 Хммм.. вярно така се получи. int main() се компилира с и без return, а void-а не поиска. Мерси!
Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 22:49 със сигурност го прави само гцц при мен има още 4 компилатора. Обаче защо при еднакъв компилатор на мен ми плюе грешка на него не?
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 22:52 tyuio чакай да проверя, че може в бързането да съм те излъгал без да искам. Аз гледах грешките и една по една ги отсранявах.
Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 22:53 Аз само за void не проверих другите като ги видях щото са в началото на кода ми стана ядно че няма да стане.
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 22:57 @tyuio аз съм в грешка, от бързането и аз съм се заблудил. Значи, махам h-то, после добавам един using namespace std; и после void main() става на int mani(), с и без ретърн се компилира, но по думите на gat3way трябва да има return. Сори ::)
Титла: Re: линеен двусвързан списък Публикувано от: gat3way в May 09, 2010, 23:01 Да бе, то не му пречи да няма return :) С -Wall трябва да изреве едно предупреждение за това, но пак ще се компилира.
Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 23:09 Уф, сички я ми университетски код дето го имам от упражнения е все за вижуъл студио 6. Накрая като направя нещо тука трябва да ходя на уин да го компилирам в .ехе за да видя дали работи. И накрая КУРсовата трябва да е в .ехе иначе майната ти, а всички компове в уинито са с двойно зареждане и убунту и си има гцц, нетбийнс на всеки ма не.
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 23:19 Код Честито, и при нас е така, само че ние сме с VS2008 и няма нито един компютър с линукс. Докато работех в университета имаше един Slackware, който ми беше сървъра, но сега са само на Win 2k3 server. Може да питаш да си пускаш линукса и да работиш на него :) Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 23:24 Ама то янма проблеми на упражненията аз съм си все на убунту щото съм свикнал и с нетбийн покрай php и С ама за курсова да я предадеш в Линукс изпълним не може. Е да ма може презентацията да е на формата на ОО.о :D >:D
Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 09, 2010, 23:29 По темата: аз не разбрах какво искаше момчето?
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 23:29 ММмм сега, до колкото съм запознат (малко) ако я напишеш на линукс-а после само трябва да include-неш stdsfx.h, и сега зависи какво още си добавял, но това (за мен) са козметични промени. Подкарват се и на VS 6. :)
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 09, 2010, 23:32 По темата: аз не разбрах какво искаше момчето? Иска exe, ама няма да го получи в този форум, поне не и от мен. Вчера в IRC-то някой пита дали някой друг е подкарвал windows компилатор на линукс, не искам аз да съм този някой, въпреки, че може да се окаже забавно :). @tyuio не знам какво е искал иска програма - дадохме му програма, това което съм му качил работи ;) Титла: Re: линеен двусвързан списък Публикувано от: gat3way в May 09, 2010, 23:51 Няма stdsfx.h в стандартната C библиотека в лайнукса :)
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 10, 2010, 00:05 stdafx.h
Обърках се де, да не я пиша всеки ден :) :) :) Титла: Re: линеен двусвързан списък Публикувано от: gat3way в May 10, 2010, 00:15 Няма и stdafx.h :)
Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 10, 2010, 00:29 Харесва ми как ме измъчваш в момента да отварям google и да търся определения. Еми добре - stdafx.h явно е библиотека която е произведение на изкуството на Microsoft. До колкото разбрах от определението (някакво в нет-а) е написана за избягване на компилатора за re-parse-ва всички хедъри. Обикновенно, повечето време отива в парсване на хедърите от колкото на самия код, като се използва този прекомпилиран хедър значително се увеличава времето за компилиране. :)
Титла: Re: линеен двусвързан списък Публикувано от: tyuio в May 10, 2010, 00:44 е то има и библиотеки за С дето ги има само за Юникси така че ...
Титла: Re: линеен двусвързан списък Публикувано от: bop_bop_mara в May 10, 2010, 00:47 Вчера в IRC-то някой пита дали някой друг е подкарвал windows компилатор на линукс, не искам аз да съм този някой, въпреки, че може да се окаже забавно :).А това не е трудно, mingw32 си сложи например :) После се компилираше с едни команди със странни и дълги имена, ама даже май работеше :) Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 10, 2010, 00:52 Идеята беше, че като си пишеш на линукса после може и под VS 6 да си пуснеш програмата.
Титла: Спешно ми трябва някои,който може да ми оправи грешките Публикувано от: theenemy в May 13, 2010, 21:01 Това ми е програмата, плс помогнете ми, защото не мога си оправя грешките, но успях да ги намаля от 24 на 11, а ми трябжа за утре :(
Код
Титла: Re: Спешно ми трябва някои,който може да ми оправи грешките Публикувано от: Lord Bad в May 13, 2010, 21:42 Спешно се научи да програмираш. Предлагам на модераторите да затворят тази тема. Тук не е място да се проси помощ за домашни работи.
Титла: Re: Спешно ми трябва някои,който може да ми оправи грешките Публикувано от: Acho в May 13, 2010, 21:51 Спешно да се учи, че за утре му трябва задачата.
Титла: Re: линеен двусвързан списък Публикувано от: bop_bop_mara в May 13, 2010, 23:16 И като знаеш колко на брой са грешките, сигурно знаеш и къде са, какви са. Започвай една по една да ги отстраняваш. Може да питаш какво означава такава и такава грешка, ама чак да кажеш оправете ми ги е малко в повече.
Титла: Re: линеен двусвързан списък Публикувано от: romeo_ninov в May 13, 2010, 23:58 или cygwin, компилираш си (почти) като в линукс и след това имаш нужда само от един dll :)Вчера в IRC-то някой пита дали някой друг е подкарвал windows компилатор на линукс, не искам аз да съм този някой, въпреки, че може да се окаже забавно :).А това не е трудно, mingw32 си сложи например :) После се компилираше с едни команди със странни и дълги имена, ама даже май работеше :) Титла: Re: линеен двусвързан списък Публикувано от: b2l в May 14, 2010, 01:22 @theenemy
От мен да мине: Ето ти две от грешките: Код
|