Люди, почему вы не используете классы, когда пишете на С++? И почему вы всегда пихаете весь код в один файл?
Это ж сколько надо "раскуривать" этот код, чтобы понять, что тут вообще делается? По-моему, самому же приятнее, когда все разбито на классы, каждый максимум на 300 строчек кода. И баги находить легче.
В общем, "tl; dr") Советую нормально оформить код, чтоли...
Сообщение отредактировал Pesets - Воскресенье, 20 Ноября 2011, 22:35
Вообще пользуюсь тем, чем скажут. С CVS и Bazaar работать не доводилось. Когда пишу один (или могу выбрать), использую SVN. Имею установленный SVN-сервер на своей машине) Имхо, незаменимая вещь для более-менее крупных проектов, не раз меня выручала, даже когда один работал.
Тут вспомнил, как я пару лет назад делал на эмуле похожий процессор, правда другой ориентации немного... Решил отписаться) Что могу посоветовать: 0) Никто просто так писать программы для непонятно какого проца не будет. Ну, может кто-то и будет, но шанс тебе этого кого-то встретить довольно мал. Надо заинтересовать народ. Например, можно устроить мини-конкурс - написать простенькую программу на заданную тему и посмотреть, у кого будет быстрее. 1) Напиши некое подобие компилятора. Достаточно, чтобы он принимал столбик команд наподобие х86 и преобразовывал их в формат команд твоего процессора. Писать код будет в разы удобнее, чем на нех-кодах 2) Расширь адресацию до 16 бит хотя бы. На процессоре с 8-битной адресацией далеко не уедешь. 3) Выставлять схему в виде картинки - имхо бесполезно. Читать ее все равно никто не будет, а преобразовывать во что-то рабочее - тем более. Выложи уж тогда что-нибудь, что можно собрать в эмуляторе и запустить на этом программу.
Quote (05142)
Какие команды добавить? И пишите свои программки для него, протестирую.
Булевые операции (and, or, xor, not), операцию сравнения, операцию условного перехода (соответственно, понадобится флаговый регистр). Еще умножение можно, благо тоже легко делается. Если хочешь стать гуру - сделай деление, будет весело, обещаю)
Quote (Zizilk)
А Risc для конкретного устройства работаете или для общего развития, а то насколько помню из курса лекций они быстрее но менее универсалны CISC-ов
Просто на заметку: RISC'и - вполне себе универсальные процессоры. А то, что почти все современные ЦП (по крайней мере, Intel и AMD) делаются именно на RISC - тому доказательство)
Quote (SWFcreator)
Для реализации такой схемы, наверно, физика очень серьезная нужна.
Нет, на самом деле. Достаточно иметь чип программируемой логики и программатор. Другое дело, что практическое применение такому чуду будет сложно найти.
Алсо, интересует, до какой частоты можно разгонять этот процессор и какие команды по сколько тактов выполняются?
Начинал как фанатский порт. После долгих разговоров с автором решили сделать его офицальным. Пока еще полностью не перенес его на оффсайт osu!, но планирую.
Чувствуется призрак двача. Жаль, тут материться нельзя...
Quote
ЛОР, опрос про любимый язык программирования:
anonymous: "Давайте представим аналогичный опрос скажем, на форуме врачей:
какой ваш любимый инструмент ? -скальпель рулит! -нифига, скальпель только лохи юзают, вот градусник - сила!! -да все отстой, за горчичниками будущее...."
()() (0_0) [:|||||:] (_|_) картина "Заяц с баяном"
Сообщение отредактировал Pesets - Воскресенье, 28 Августа 2011, 21:56
А почему Eclipse нету?) И Qt? Собссно у меня стоят эти две IDE и студии 2008, 2010 Ultimate (обе образовательные версии) и 2010 Express. А, ну и Dev C++, хотя я им редко пользуюсь. Практика показала, что для разных целей (а точнее для разных проектов с разными командами) нужны разные IDE.
froex Прогнал 1ю задачку через компилятор, долго втыкал, почему не 10) Минту через пять только вспомнил, что делает оператор ++. Зачет) Вторую задачу решил почти правильно, вместо sheep 2001 в третьей строчке написал cat 2001, но это типа невнимательность) Остальное как компилятор сказал. В третьей задаче написал venus mars venus вместо mars venus venus... В общем, ты меня сделал... я нубайко)
Добавлено (27.08.2011, 13:30) --------------------------------------------- Вариант на С:
Кстати, тут можно обойтись одним буфером, но тогда его надо будет в конце еще раз заполнять. Зато памяти вдвое меньше.
Добавлено (27.08.2011, 13:35) --------------------------------------------- Упс, че-то я совсем забыл, что в С нету new delete и переменные в начале функции задавать надо. Ща запилю
Сообщение отредактировал Pesets - Суббота, 27 Августа 2011, 13:38
Собссно, я на ноутбук поставил Вин7 еще где-то за неделю до оф. релиза (местные представители тех-кого-нельзя-называть презентовали), с тех пор не сносил. Антивируса нету, только Security Essentials, хотя это тот же антивирус же. Причем я как раз "сумасшедший разработчик с маниакальными наклонностями", у меня порядка 100 гигов всяких SDK и прочей лабуды. Все держится и даже не лагает.
http://acm.timus.ru/submit.aspx?space=1&num=1220 Только я хз как там сейчас с регистрацией. И ввод-вывод там не в файлы а в stdin/stdout, но это правится в твоем случае двумя строчками.
Ради интереса допилил твой код, попутно убрал еще один баг и отправил тестировщику. Тестировщик сказал, что программа обрушилась по сегфолту на втором же тесте.
e4ea61d4-503b-40f3-ab98-81ac177b4a26 e4ea61d4-503b-40f3-ab98-81ac177b4a26(80) : warning C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details. S:\checker\compile\vc10\include\stdlib.h(867) : see declaration of 'itoa' e4ea61d4-503b-40f3-ab98-81ac177b4a26(102) : warning C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details. S:\checker\compile\vc10\include\stdlib.h(867) : see declaration of 'itoa' e4ea61d4-503b-40f3-ab98-81ac177b4a26.obj : error LNK2019: unresolved external symbol _itoa referenced in function "void __cdecl perform_task(void)" (?perform_task@@YAXXZ) e4ea61d4-503b-40f3-ab98-81ac177b4a26.exe : fatal error LNK1120: 1 unresolved externals
Ну, то, что я писал выше. Функции, которых нет в стандарте, идут лесом.
b1bae136-b6a5-4516-ae7b-66f18dfa10a1 b1bae136-b6a5-4516-ae7b-66f18dfa10a1(24) : error C2380: type(s) preceding 'task' (constructor with return type, or illegal redefinition of current class-name?) b1bae136-b6a5-4516-ae7b-66f18dfa10a1(35) : error C2274: 'function-style cast' : illegal as right side of '.' operator b1bae136-b6a5-4516-ae7b-66f18dfa10a1(36) : error C2274: 'function-style cast' : illegal as right side of '.' operator b1bae136-b6a5-4516-ae7b-66f18dfa10a1(44) : error C2274: 'function-style cast' : illegal as right side of '.' operator b1bae136-b6a5-4516-ae7b-66f18dfa10a1(70) : error C2084: function 'void get_task(char *)' already has a body b1bae136-b6a5-4516-ae7b-66f18dfa10a1(29) : see previous definition of 'get_task' b1bae136-b6a5-4516-ae7b-66f18dfa10a1(75) : error C2274: 'function-style cast' : illegal as right side of '.' operator b1bae136-b6a5-4516-ae7b-66f18dfa10a1(76) : error C2274: 'function-style cast' : illegal as right side of '.' operator b1bae136-b6a5-4516-ae7b-66f18dfa10a1(84) : error C2274: 'function-style cast' : illegal as right side of '.' operator b1bae136-b6a5-4516-ae7b-66f18dfa10a1(92) : error C2274: 'function-style cast' : illegal as right side of '.' operator b1bae136-b6a5-4516-ae7b-66f18dfa10a1(120) : error C3861: 'get_task': identifier not found
PS Я бы дописал, но все-таки это твоя прога)
Добавлено (27.08.2011, 03:05) --------------------------------------------- PPS Прога скорее всего завалится, тк в стеке может быть макс 10 000 элементов, а за 100 000 операций можно положить 100 000 элементов в один стек
Сообщение отредактировал Pesets - Суббота, 27 Августа 2011, 03:01
Аффтар, а аффтар... Хм... вроде кому-то только что я это уже говорил... лан... Кароче, перед тем, как катать игру на HGE, набери хотя бы немного знаний ООД. А то так далеко не уйдешь. Уже после десятка тысяч строк ты просто увязнешь в своем же коде и бросишь проект. Уровни в коде писать - вообще последнее дело, учитывая, что ты юзаешь HGE, в котором загрузка ресурсов пишется в две строчки.