Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Реальный-учебный проект


Автор: Podarochek 3.4.2008, 17:27
Уважаемые практики, подскажите пожалуйста проекты (хотелось бы парочку, а не один, не только для меня ;)), которые бы дали возможность: 1. закрепить изученный материал по СИ (не с++, без ВИНАпи). 2. Оценить знания. 3. Получить первый опыт (не учебный).
Если есть предложения ЛЮБЫЕ - буду рад!!!

Автор: Alek86 3.4.2008, 17:30
напиши прогу для игры в точки  smile 

Автор: Podarochek 3.4.2008, 17:34
описание игры есть?где? Еще предлагаем!!1  smile 

Автор: 0lmer 3.4.2008, 17:44
Цитата(Podarochek @  3.4.2008,  17:34 Найти цитируемый пост)
описание игры есть?где? Еще предлагаем!!1


Может это и не те точки про которые упоминалось выше, но:

есть размеченный вклеточку листок, игроки поочереди ставят в пересечениях клеток точки
(например разного цвета), надо окружить своими точками как можно больше точек противника и не дать ему окружить свои. Окружать надо таким образом чтобы свои точки вокруг чужой можно было
соединить линиями в замкнутую фигуру и точка противника (или несколько) была внутри.
Окружил - соединяешь свои точки и игра продолжается. Нельзя пересекать новыми линиями уже существующие. Если надо могу кинуть скан с примером игры smile

Добавлено через 50 секунд
Цитата(Podarochek @  3.4.2008,  17:34 Найти цитируемый пост)
описание игры есть?где? Еще предлагаем!!1


Может это и не те точки про которые упоминалось выше, но:

есть размеченный вклеточку листок, игроки поочереди ставят в пересечениях клеток точки
(например разного цвета), надо окружить своими точками как можно больше точек противника и не дать ему окружить свои. Окружать надо таким образом чтобы свои точки вокруг чужой можно было
соединить линиями в замкнутую фигуру и точка противника (или несколько) была внутри.
Окружил - соединяешь свои точки и игра продолжается. Нельзя пересекать новыми линиями уже существующие. Если надо могу кинуть скан с примером игры smile

Автор: mes 3.4.2008, 20:41
Цитата(Podarochek @  3.4.2008,  17:34 Найти цитируемый пост)
описание игры есть?


правила можно посмотреть здесь
http://www.tochki.info/rules
а обсудить здесь
http://www.logicsworld.net/forum/viewtopic.php?t=103

тут список сайтов посвяшенных игре
http://pointsxt.logicsworld.net/forum/index.php?showtopic=894

примитивный задачник
http://opendots.net/?problems


Автор: marcusmae 3.4.2008, 20:43
Podarochek, на сях что ни возьмись писать - всё будет неудобно и выбор языка будет неумён (имхо). За исключением разве что ядра ОС или каких-нибудь быстрых маленьких программ, не использующих API. Хорошей тренировкой последнего могло бы явиться, например, написание функции, вычисляющей 16 и/или 32-битный http://en.wikipedia.org/wiki/Cyclic_redundancy_check хэш.

Автор: susanin 4.4.2008, 00:21
стандартный пример...написать калькулятор, котрый бы считывал из файла строку типа (2+3)*5 и выводил бы в другой текстовый файл ответ...

Автор: Podarochek 4.4.2008, 10:24
Цитата(susanin @  4.4.2008,  00:21 Найти цитируемый пост)
стандартный пример...написать калькулятор, котрый бы считывал из файла строку типа (2+3)*5 и выводил бы в другой текстовый файл ответ... 



ну это больше пример чем реальная задача, но спасибо...уже сделана посредством стека...


Цитата(marcusmae @  3.4.2008,  20:43 Найти цитируемый пост)
Podarochek, на сях что ни возьмись писать - всё будет неудобно и выбор языка будет неумён (имхо). За исключением разве что ядра ОС или каких-нибудь быстрых маленьких программ, не использующих API. Хорошей тренировкой последнего могло бы явиться, например, написание функции, вычисляющей 16 и/или 32-битный CRC (Cyclic redudancy) хэш.



думаю что хорошая задача, но эх...нужно время чтобы понять что это smile...если поподробней...буду благодарен..

Шустрый спасибо...взгляну..

Автор: Podarochek 4.4.2008, 10:58
Тут есть предложения "Японский кроссворд", как вы думаете...возможно ее написать в консоле?

Автор: korian 4.4.2008, 11:57
Цитата(Podarochek @  4.4.2008,  09:58 Найти цитируемый пост)
Тут есть предложения "Японский кроссворд", как вы думаете...возможно ее написать в консоле?

чтобы решало - можно
чтобы составляло - имху не удобно в консоли

Автор: inside_pointer 4.4.2008, 12:03
Цитата(Podarochek)

возможно ее написать в консоле

Конечно, только нужно сначала сделать интерактивную карту.

Типа делаешь окно в консоли в котором отображается текущая часть рисунка, кнопками верх, низ, лево, право можешь двигать рисунок под этим окном, который будет рисоваться только в месте этого окна.

Я морской бой писал, написал половину, там два поля, в каждом поле можно двигать курсор, как бы два окна, и в процессе написания становятся ясны принципы прорисовки элементов на поле, и вот такой вариант интерактивной карты не так уж далёк от неинтерактивной. А судя по тому что ты знаешь си весь, сложности сделать такую тебе не составит труда.

Просто делаешь рисование карты с такого-то по такой-то элемент, если ты про размеры кроссворда.

Автор: marcusmae 4.4.2008, 12:37
Цитата(Podarochek @  4.4.2008,  10:24 Найти цитируемый пост)
если поподробней...буду благодарен..


Так я же ссылку дал на определение, разве мало? В поиск всегда можно подсмотреть - многие решали эту задачу.

А на счёт курсора и допотопной графики - имхо, глупости. Зачем этим заниматься, если эти навыки нигде не востребованы, и это не даёт по большому счёту никаких фундаментальных знаний?.. Немного не те времена теперь smile Раньше-то было мнение, что каждый желающий почувствовать себя профессиональным ремесленником должен написать http://ru.wikipedia.org/wiki/Жизнь_(игра) (Conway) или какой-нибудь хаосово-фрактальный генератор красивых ковриков. В этом тоже больше романтики, чем практического смысла smile Так что мой совет - на сях по возможности занимайтесь чистыми вычислениями! 

Автор: inside_pointer 4.4.2008, 13:17
Цитата(marcusmae)

А на счёт курсора и допотопной графики - имхо, глупости. Зачем этим заниматься, если эти навыки нигде не востребованы, и это не даёт по большому счёту никаких фундаментальных знаний?

А у тя что только деньги на уме ? Не все ж такие.

Глупости не глупости, а чем ты предлагаешь мне заниматься ? С чего ты начал сам ?

Щас модно сетевые тенологии, мне они вообще не упёрлись эти сетевые технологии, щас модно .NET то же самое, мне интересно ассемблер и С и C++ изучу только для ремесла как ты сказал, потому что считаю там слишком много наворотов и решать простые задачи с помощью C++ которые не является для них необходимым, но который выбирают из-за того что он модный - это и есть глупости.

Ой я хочу скопировать несколько чисел из файла - на тебе двадцать строк на C++.
Проще взял разложил на детали и написал 5 строк, которые делают то же самое.

Автор: Alek86 4.4.2008, 13:26
inside_pointer, эти заявления, во флейм, пожалуйста
отвечать нужно по теме

Автор: marcusmae 4.4.2008, 13:54
Цитата(inside_pointer @  4.4.2008,  13:17 Найти цитируемый пост)
С чего ты начал сам ?


inside_pointer, я ещё раз говорю, что то, с чего я начинал Вам не подходит потому что здесь всё начинается сейчас, а я начинал 7 лет назад. Деньги для меня лично играют незначительную (наверно, даже слишком незначительную) роль, речь идёт об элементарной целесообразности : Вы же не учитесь, как пользоваться примусом или механической кофемолкой. Почему? = Потому что чайнику теперь не нужен керосин и выключается он сам, а кофе для Вас приготовит робот-кофеварка. Я клоню к тому, что в любое время знания и навыки должны быть адекватны этому времени. Псевдографика и VGA-графика как раз совершенно неадекватны в 2008 году.

Вы правы, что нужно чувствовать влияние моды, в особенности, где мода (общественное мнение) промахивается мимо. Основной недостаток всех этих веяний именно в том, что лучше воспринимается владение ремеслом, языком или технологией. То есть, механическая работа, фактически. Интеллект - дело десятое. Вы правы, это плохо. Именно поэтому я предлагаю не заниматься беготнёй курсором по экрану, а делать шаги по чати алгоритмов и вычислений. Если овладеете, работодатели, конечно, за Вас драться не будут, тк во-первых сами подвержены стадным веяниям, а во-вторых эти знания невозможно оценить в ходе часового собеседовании (владение технологией-то как раз можно). Зато, где бы Вы ни стали работать, Вам будут легче даваться концептуальные вещи.

Цитата(inside_pointer @  4.4.2008,  13:17 Найти цитируемый пост)
я хочу скопировать несколько чисел из файла - на тебе двадцать строк на C++.Проще взял разложил на детали и написал 5 строк, которые делают то же самое.


Интересно было бы посомтреть на эти пять строк, потому что навскидку на плюсах это сделать проще smile 

А в целом, непонятно, в чём спор. Если к Вашим аргументам прибавить логику, получатся именно те выводы, о которых я пишу.

Автор: inside_pointer 4.4.2008, 14:11
Цитата(Alek86)

эти заявления, во флейм, пожалуйста
отвечать нужно по теме 

Я по теме говорю, где я не по теме сказал ?

Цитата(marcusmae)

Псевдографика и VGA-графика как раз совершенно неадекватны в 2008 году.

Адекватны они, так же как числа в времён Пифагора адекватны будущему 3000 году.

Цитата(marcusmae)

Вы же не учитесь, как пользоваться примусом или механической кофемолкой.

Если она сломается я её сам починю, а не понесу к ремесленникам, потому что я знаю как она устроена.

О, давай 4 строки

http://forum.vingrad.ru/forum/topic-203219.html


Автор: marcusmae 4.4.2008, 14:31
Цитата(inside_pointer @  4.4.2008,  14:11 Найти цитируемый пост)
Адекватны они, так же как числа в времён Пифагора адекватны будущему 3000 году.


Сравнение псевдографики с числами - извините, без комментариев. Могу только улыбнуться smile

Цитата(inside_pointer @  4.4.2008,  14:11 Найти цитируемый пост)
Если она сломается я её сам починю, а не понесу к ремесленникам, потому что я знаю как она устроена.


Не думаю, что в этом есть однозначный выигрыш. Особенно, если Вы можете за то же самое время больше полезной работы сделать, работая по своей специальности. То есть, Вы будете разбираться с дурацким чайником, будучи топ менеджером банка? smile 

Цитата(inside_pointer @  4.4.2008,  13:17 Найти цитируемый пост)
я хочу скопировать несколько чисел из файла - на тебе двадцать строк на C++.

Цитата(inside_pointer @  4.4.2008,  14:11 Найти цитируемый пост)
О, давай 4 строки


Код

// Read the double precisions values from the text file with the specified name assuming
// the data is arraged as column - one value per line.
double* ColumnFileReader::Read(const char* columnFileName, unsigned int valuesCount) {

    std::ifstream columnFile(columnFileName, std::ios::in);
    double *result = new double[valuesCount], *resultPtr = result;
    for (unsigned int index = 0; !columnFile.eof() && (index < valuesCount); index++)
        columnFile >> *(resultPtr++);
    columnFile.close();
    return result;
}


После удаления всех проверок, функционально очень похоже на Ваш вариант.

Автор: Alek86 4.4.2008, 14:36
Цитата(inside_pointer @  4.4.2008,  13:17 Найти цитируемый пост)
Щас модно сетевые тенологии, мне они вообще не упёрлись эти сетевые технологии

и так далее
особеенно про C и C++
разжигать священные войны здесь не нужно
особенно когда
Цитата(inside_pointer @  4.4.2008,  13:17 Найти цитируемый пост)
Ой я хочу скопировать несколько чисел из файла - на тебе двадцать строк на C++.

демонстрирует ... эээ... плохое знание C++
Код
std::ifstream file("D:\\111.txt");
  std::vector<int> vect;
  std::copy(std::istream_iterator<int>(file),std::istream_iterator<int>(),std::back_inserter(vect));

читает числа из файла типа
Код

123
213
43345 543543
6436 345

в вектор

Автор: inside_pointer 4.4.2008, 15:00
Цитата(marcusmae)

Сравнение псевдографики с числами - извините, без комментариев.

Так с чего ты начинал, как то ты пропустил ответ ?
Я думаю ты в псевдографике ну мягко говоря ноль.

Цитата(marcusmae)

То есть, Вы будете разбираться с дурацким чайником, будучи топ менеджером банка?

Чо это ты тут флеймишь? Alek86, прижми его, или у тебя цели избранные ?
Ты, marcusmae, можешь только съезжать с темы, сначала на чайники, потом на менеджеры. Ты по теме говори, а то Alek86 не дремлет.

Цитата(marcusmae)

После удаления всех проверок, функционально очень похоже на Ваш вариант.

Каких удалений проверок, напиши свой вариант, потому что я думаю ты шиздишь. И на псевдографику гонишь, не потому что она плохая, а потому что сам в ней плохо разбираешься.
Кстати чо ты предложишь топик-стартеру ?

Цитата(Alek86)

и так далее
особеенно про C и C++
разжигать священные войны здесь не нужно

Да без тебя бы разобрались.

Автор: marcusmae 4.4.2008, 15:22
Цитата(inside_pointer @  4.4.2008,  15:00 Найти цитируемый пост)
Я думаю ты в псевдографике ну мягко говоря ноль.


отнюдь! я увлекаюсь ASCII-артом smile

Цитата(inside_pointer @  4.4.2008,  15:00 Найти цитируемый пост)
Ты, marcusmae, можешь только съезжать с темы, сначала на чайники, потом на менеджеры. Ты по теме говори, а то Alek86 не дремлет.


Я привёл аналогии, чтобы объяснить свою позицию.

Цитата(inside_pointer @  4.4.2008,  15:00 Найти цитируемый пост)
Каких удалений проверок, напиши свой вариант, потому что я думаю ты шиздишь.


Но это - мой вариант! Кроме меня указателем по массиву тут никто не перемещается smile  Из функции удалены проверки на существование файла и валидность данных. Что тут непонятно?

Цитата(inside_pointer @  4.4.2008,  15:00 Найти цитируемый пост)
Кстати чо ты предложишь топик-стартеру ?


Я предложил - почитайте. Пожалуйста, не надо так грубо - не очень приятно с Вами общаться.

Автор: inside_pointer 4.4.2008, 16:04
Хватит изображать из себя, сказал что короче напишешь код - докажи.
А так ты пришёл всё обоср... и точки эти и морской бой, сам ничо не предложил, какие-то алгоритмы для вычислений.
Он спросил про C, С может больше чем просто алгоритмы.
Кому неудобно а кому в самый раз.

Автор: marcusmae 4.4.2008, 16:58
Здесь и до этого я не хочу никого обидеть, а выражаю своё мнение. Если Вы, уважаемый, inside_pointer, несогласны, то прошу, так сказать, к оружию : фактам и аргументам.

Простой для начинающего и актуальной алгоритмической задачей могло бы быть нахождение пары простых делителей заданного очень большого целого числа. С помощью одного из http://ru.wikipedia.org/wiki/Решето_Аткина или собственными методами. Перспективно тем, что в этой области последние десятилетие идёт большая гонка вооружений, связанная с шифрованием/подбором ключей - я слышал, можно даже премию получить smile C/asm для этой задачи - в самый раз, правда?

Вычислительные задачи можно обнаружить повсюду. http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms, http://en.wikipedia.org/wiki/LAPACK, http://www.intel.com/cd/software/products/asmo-na/eng/307757.htm, http://math-atlas.sourceforge.net/ - всё это вычислительные пакеты общего применения. Первые два используются в графических картах, инженерных и математических приложениях, да и повсюду, в самом деле, проще сказать, где они не используются smile Пара других - это пакеты от производителей думающего кремния, оптимизированные под различные процессоры. На чём, Вы думаете всё это пишется? = Правильно, в основном на С (немного на asm-е и на fortran-e). Если интересно, есть достаточно открытых источников, позволяющих овладеть этим искусством и пописать собственные оптимизированные решалки, начиная от метода Гаусса и кончая итерационными методами.

С - это мощный функциональный язык. Но моё мнение - если не брать API, ядро и драйвера, то он best fits именно для описанных выше двух направлений. Калькуляторы, морской бой и точки - это стереотипы, сформированные, возможно, не лучшими представителями от отечественного образования. Я Вас умоляю, не этому надо учиться smile Среди школьных олимпиадных задачек по информатике (это, кстати, к вопросу о том, с чего я начинал) можно найти массу более интересного. Я уж не говорю о том, что без всякой псевдографики.

Кстати-кстати, знаете, чем можно воспользоваться, если нужна какая-то простенькая клеточная графика? Браузером! = Написать html-файл с разметкой страницы-экрана и программой на javascript (немного похож на Си)...

Автор: korian 4.4.2008, 17:14
Цитата(inside_pointer @  4.4.2008,  15:04 Найти цитируемый пост)
Он спросил про C, С может больше чем просто алгоритмы.

все конечно замечательно, но нарисуйте хоть что-нить используя только стандарт C/C++.
насколько я знаю ни в одном ни в другом стандарте нету функций перемещения курсора, выбора цвета символа и тп...
т.е. только чисто потоковый вывод.
а значит, чтоб нарисовать графику, придеться использовать какое-то API.

Автор: marcusmae 4.4.2008, 17:22
Цитата(korian @  4.4.2008,  17:14 Найти цитируемый пост)
выбора цвета символа


Изменение цвета символа платформозависимо, это правда.

Автор: Podarochek 4.4.2008, 20:24
Цитата(marcusmae @  4.4.2008,  16:58 Найти цитируемый пост)
Кстати-кстати, знаете, чем можно воспользоваться, если нужна какая-то простенькая клеточная графика? Браузером! = Написать html-файл с разметкой страницы-экрана и программой на javascript (немного похож на Си)...


оч. интересно...а примерчик моно...smile

Добавлено через 1 минуту и 6 секунд
html знаю (не ас конечно, но есть), javУ тоже видел..

Автор: Любитель 4.4.2008, 21:01
Цитата(Podarochek @  4.4.2008,  20:24 Найти цитируемый пост)
 javУ

Причём ява и яваскрипт?! Ну сколько можно...

Автор: marcusmae 4.4.2008, 21:01
Podarochek, ну вот, упомянутая http://ru.wikipedia.org/wiki/Жизнь_(игра) (автор - я  smile). Запускать нужно хтмл-файл. Во избежание недоразумений, сначала прочитайте в интернете, что это такое. То есть, это не игра, а скажем так, занимательный лабораторный симулятор.

http://ipicture.ru/Gallery/Viewfull/1202187.html

Жаль, я куда-то посеял продвинутую версию smile 


Автор: inside_pointer 5.4.2008, 00:26
Цитата(korian)

а значит, чтоб нарисовать графику, придеться использовать какое-то API

Любое, создатели так и пишут, мы не хотели изобретать язык с наворотами, мы хотели сделать базу к которой можно подключить всё что угодно.
Тут смысл в том, чтобы не ограничивать язык временными рамками, потому что были бейсики паскали, как сказал marcusmae, это уходит в прошлое и остаётся невостребованным и как сказал я, на этом можно только учиться, потому что основы везде одинаковые у графики.
C до сих пор и работает потому что он вот такой.

Цитата(marcusmae)

Но моё мнение - если не брать API, ядро и драйвера, то он best fits именно для описанных выше двух направлений. Калькуляторы, морской бой и точки - это стереотипы, сформированные, возможно, не лучшими представителями от отечественного образования.

Вот напиши сначала хотя бы калькулятор, шобы он при перегонке -1 в двоичную систему показывал правильное число, или такой морской бой в который реально интересно будет играть, а не который бух пах быдыщ но при этом через два раза скушный становится, вот будут в него играть, это и будет твой результат, а не школьные задачки(ты опять не уточнил какие).

Вот я написал, только половина
http://img232.imageshack.us/img232/188/66363799xv7.png

Автор: korian 5.4.2008, 00:36
ответа не понял...
из начально вопрос был такой:
Цитата(Podarochek @  3.4.2008,  16:27 Найти цитируемый пост)
1. закрепить изученный материал по СИ (не с++, без ВИНАпи).

и как вы предлагаете писать какую-нить игру с графикой, не используя WinApi?

Автор: inside_pointer 5.4.2008, 03:51
Цитата

Тут есть предложения "Японский кроссворд", как вы думаете...возможно ее написать в консоле? 

Так ему не нужно графику

Цитата(korian)

все конечно замечательно, но нарисуйте хоть что-нить используя только стандарт C/C++.

Да я не про это, я про то что C и C++ ваш позволяет подключать эти API, а другие языки ну вот эти старые отваливаются(я просто не знаю в дельфи вообще ничего, знаю что он разрастается, а C наоборот остаётся прежним).
WinAPI это щас, сёдня в эти годы.
А что WinAPI никакого отношения к C или C++ не имеет ?
В моём представлении это набор функций для языков программирования, которые позволяют управлять ОС Windows.

Автор: archimed7592 5.4.2008, 04:29
Ребят, не кормите троля...

Автор: opjox 5.4.2008, 16:06
Есть так называемые искусственные нейронные сети. Может быть, автору темы подойдет этот вариант. В частности, можно реализовать сеть, которая распознавала бы буквы, цифры или другие образы. При этом ввод данных можно организовать через обычный BMP или текстовый файл.  

Автор: inside_pointer 6.4.2008, 02:31
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)