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


Автор: st4lk3r0k 20.8.2007, 20:53
Народ, я тут немного поковырял С++ память освежил вот тока никак не могу придумать на чёмбы по тренироватся?

Давайте чтобы я 100 тем не создавал вы просто дадите мне какоенить задание (лехкая программка) а я её буду делать и все вопросы по ходу задавать тут?

Заранее пасиба!

Автор: archimed7592 20.8.2007, 21:00
http://acm.mipt.ru/judge/problems.pl?psorto=compl~u
Там же сможешь проверить корректность решения(если зарегистрируешься).

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

Автор: CDell 20.8.2007, 21:12
Интересный ресурс.
А вот может книги какиенить есть, Где упор идёт на задачи?

Автор: st4lk3r0k 20.8.2007, 21:24
Да, есть пара интересных задачек smile , но меня щас больше интересуют именно простеньгие программки.
Желательно DialogBased ну хотябы калькулятор smile 
Точняк с него и начну!

Автор: st4lk3r0k 20.8.2007, 22:39
Писец, не поверите не получается по нажатию кнопки текст запихнуть в Edit Control.... 

Делаю так:

Создаю переменную CString от IDC_EDIT1, называем её edit и создаю переменную CEdit от тогоже IDC_EDIT1 и называем её ctrl_edit.
Дальше смотрим код:

Код

void Cqwe2Dlg::OnBnClickedButton5()
{
    edit = L"1";
    ctrl_edit.UpdateData(true);
}


Чё не так?

Автор: bsa 20.8.2007, 22:42
Думаю, теперь тебе в другой раздел надо

Автор: st4lk3r0k 20.8.2007, 22:46
Цитата(bsa @  20.8.2007,  22:42 Найти цитируемый пост)
Думаю, теперь тебе в другой раздел надо


По идее это как раз общие вопросы... хотя скажите куда и я через секунду я там smile

Автор: mr.Anderson 20.8.2007, 23:24
Судя по приведенному фрагменту кода, это в Visual C++...

Автор: st4lk3r0k 20.8.2007, 23:26
Поздно, уже разобрался... мля сложно всё это вспоминать smile

Вот решение:
Код

CString func(CString str, CString edit)
{
     edit += str;

    return edit;
}

void Cqwe2Dlg::OnBnClickedButton5()
{
    CString str = L"1";

    GetDlgItemText(IDC_EDIT2, edit);

    ctrl_edit.SetWindowTextW(func(str, edit));
    ctrl_edit.UpdateData(true);
}


З.Ы.
А вообще модераторы могут переместить тему т.к. подобных вопросов будет много...

Автор: Любитель 21.8.2007, 02:11
[offtop]
st4lk3r0k, не стоит сейчас браться за МФЦ. Правда не стоит. Знаменитая Qt и удобней, и приятней, и функциональней.
[/offtop]

Автор: st4lk3r0k 21.8.2007, 07:30
ОК, чё за QT Хде взять ну вообщем можно подробней?

Автор: MAKCim 21.8.2007, 08:45
st4lk3r0k, 
по QT смотреть
http://trolltech.com
хорошая книга http://oz.by/books/more1015393.html?id_search=240367

Автор: archimed7592 21.8.2007, 12:12
st4lk3r0k, а ты попробуй http://acm.mipt.ru/judge/problems.pl?problem=119 калькулятор написать smile. А то кнопочки - эт неинтересно...
Чекер и генератор тестов кстати я писал -  30 минут времени заняло smile.

Автор: Dreamer_0x01 21.8.2007, 14:23
Цитата

ctrl_edit.SetWindowTextW(func(str, edit));    
ctrl_edit.UpdateData(true);


Хоть и не по теме, уточню - в данном случае UpdateData() не нужна.
Вы запомнили разные строчки кода из разных примеров ;)

Автор: zkv 21.8.2007, 14:30
и стиль хреновый:
Цитата(Dreamer_0x01 @  21.8.2007,  14:23 Найти цитируемый пост)
SetWindowTextW

надо:
SetWindowText

Добавлено через 58 секунд
Цитата(st4lk3r0k @  20.8.2007,  23:26 Найти цитируемый пост)
    CString str = L"1";

лучше:
CString str = _T("1");

Автор: st4lk3r0k 21.8.2007, 17:53
Цитата(zkv @  21.8.2007,  14:30 Найти цитируемый пост)
надо:SetWindowText


Мне даёт только SetWindowTextW :(


Цитата(zkv @  21.8.2007,  14:30 Найти цитируемый пост)
надо:SetWindowText

А в чём разница?

Попробовал написать такой же калькулятор на С# ...ушло примерно 20минут.
Тут даже первую функцию написать не могу а потратил 3 часа на поиски ресурсов

Цитата(Dreamer_0x01 @  21.8.2007,  14:23 Найти цитируемый пост)
Хоть и не по теме, уточню - в данном случае UpdateData() не нужна.Вы запомнили разные строчки кода из разных примеров ;)

По примерам MSDN пихаю UpdateData() везде smile

про QT почитал, попробовал... ничё так, но было в падлу искать VS2005 так что пробовал не долго smile (под VS2008 вставать не хочет :( )

Может мне просто не дано выучить С++? smile на с# все задачи решаются за час максимум (поиск примеров итд...) а тут запаришся искать.

Автор: zkv 21.8.2007, 17:59
Цитата(st4lk3r0k @  21.8.2007,  17:53 Найти цитируемый пост)
А в чём разница?

поиск по форуму по словам TCHAR, Unicode тебе все расскажет
Цитата(st4lk3r0k @  21.8.2007,  17:53 Найти цитируемый пост)
Мне даёт только SetWindowTextW

не может быть - обманываешь  smile 
Цитата(st4lk3r0k @  21.8.2007,  17:53 Найти цитируемый пост)
Может мне просто не дано выучить С++?

может быть. Люди вот учат-учат, кто-нибудь может с уверенностью сказать, что знает С++?  (те может ответить на любой вопрос, хотя бы по синтаксису) smile 

Автор: DjoNIK 25.8.2007, 00:50
Цитата

Мне даёт только SetWindowTextW

У тебя в проекте видимо по-умолчанию стоит Unicode, а в мастдайевских хедерах обычно существует две реализации функций:
1) Multi-Byte;
2) Unicode.
Помимо этого практически всегда(а мне так думается всегда) существует макрос являющийся как бы псевдонимом реальной функции.
Напрмере твоей SetWindowText. Есть две функции:
1) SetWindowTextA;
2) SetWindowTextW,
соответственно.
Нет такой функции SetWindowText, но есть такой макрос, который в соответствии с настройками твоего проекта выберет между двумя данными функциями.
Хорошо, у тебя высветился SetWindowTextW(в настройках стоит Unicode), и у тебя проект собрался, но завтра этот код скомпилирует человек, у которого проект в мультибайте, и что он получит - компилтор не найдет функции SetWindowTextW, т.к. препроцессор через #define закроет доступ к ней.

Автор: Optimus 1.9.2007, 23:45
На форуме есть тема:http://forum.vingrad.ru/forum/topic-60383.html

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