Нравится мне С++. Знаю хорошо основы С++. А что дальше изучать не могу выбрать. Может у кого-нибудь найдутся какие-нибудь задачи небольшие (пока пусть будут небольшие) из коммерческих проектов (что-то типа такого), базируясь на которых можно с чего-то начать. В дальнейшем хотелось бы, чтобы эти навыки пригодились при работе. Пока работаю в ИТ среде, но в другом напралвении — не программинг.
Надеюсь я в тот форум залез
"Minimaxus" <26589@users.rsdn.ru> wrote in message news:1143566@news.rsdn.ru... > Нравится мне С++. Знаю хорошо основы С++. А что дальше изучать не могу > выбрать. Может у кого-нибудь найдутся какие-нибудь задачи небольшие (пока > пусть будут небольшие) из коммерческих проектов (что-то типа такого), > базируясь на которых можно с чего-то начать. В дальнейшем хотелось бы, чтобы > эти навыки пригодились при работе. Пока работаю в ИТ среде, но в другом > напралвении — не программинг.
Задача:
template<int N>
class B
{
enum { value = 0 };
};
template<>
class B<2>
{
enum { value = 2 };
};
template<>
class B<18923>
{
enum { value = 9240 };
};
assert(MaxValueOfAllSpecializations<B>::value == 9240);
Написать класс MaxValueOfAllSpecializations<B>, реализовать не перебирая все
значения инта, никакой информации за пределами классов B, единственно что
можно — наличее какого-нибудь базового класса у каждой специализации B.
"Minimaxus" <26589@users.rsdn.ru> wrote in message news:1143566@news.rsdn.ru... > Нравится мне С++. Знаю хорошо основы С++. А что дальше изучать не могу > выбрать. Может у кого-нибудь найдутся какие-нибудь задачи небольшие (пока > пусть будут небольшие) из коммерческих проектов (что-то типа такого), > базируясь на которых можно с чего-то начать. В дальнейшем хотелось бы, чтобы > эти навыки пригодились при работе. Пока работаю в ИТ среде, но в другом > напралвении — не программинг. > Надеюсь я в тот форум залез
Еще одна:
Напиши typeof без регистрации типов на чистом C++03
Здравствуйте, Pavel Chikulaev, Вы писали:
PC>Время пошло. 30 минут.
Неее, со временем пока напряги Я на работе. Завтра с утреца посмотрю.
Всем спасибо.
Здравствуйте, Pavel Chikulaev, Вы писали:
PC>Напиши typeof без регистрации типов на чистом C++03
typeof для всех типов должен работать? т.е. для пользовательских классов тоже? Объектов и т.д.?
"MaxLamer" <35993@users.rsdn.ru> wrote in message news:1143726@news.rsdn.ru... > typeof для всех типов должен работать? т.е. для пользовательских классов тоже? > Объектов и т.д.?
естественна
PC>Написать класс MaxValueOfAllSpecializations<B>, реализовать не перебирая все PC>значения инта, никакой информации за пределами классов B, единственно что PC>можно — наличее какого-нибудь базового класса у каждой специализации B.
Я немного подумал, но писать не могу. Наверное нужен базовый класс, от которого все пораждаются, в котором есть общая переменная для всех типов классов (типа static). И при создании нового класса в эту статическую переменную записывается значение данного класса, если оно больше той константы.
Подход правильный? Вообще ответы есть? PC>-- PC>Pavel Chikulaev
Здравствуйте, Minimaxus, Вы писали:
M>Нравится мне С++. Знаю хорошо основы С++. А что дальше изучать не могу выбрать. Может у кого-нибудь найдутся какие-нибудь задачи небольшие (пока пусть будут небольшие) из коммерческих проектов (что-то типа такого), базируясь на которых можно с чего-то начать. В дальнейшем хотелось бы, чтобы эти навыки пригодились при работе. Пока работаю в ИТ среде, но в другом напралвении — не программинг. M>Надеюсь я в тот форум залез
Классика из серии "Программисты развлекаются".
1) Life.
2) Mandelbrot.
3) Julia.
4) 1000000 знаков числа пи.
5) 1000000 знаков числа e.
6) Странные аттракторы.
7) Живые маштнки с простейшей нервной системой.
Погляди старые выпуски Мартина Гарднера в Scientific American (в русском переводе). Там можно много чего интересного найти.
"MaxLamer" <35993@users.rsdn.ru> wrote in message news:1143758@news.rsdn.ru... > Я немного подумал, но писать не могу. Наверное нужен базовый класс, от > которого все пораждаются, в котором есть общая переменная для всех типов > классов (типа static).
И при создании нового класса в эту статическую переменную записывается значение
данного класса, если оно больше той константы. > Подход правильный?
Так не получиться.
Вообще ответы есть?
Есть. Но скажу потом, пусть подумают...
Здравствуйте, Pavel Chikulaev, Вы писали:
PC>Еще одна:
PC>Напиши typeof без регистрации типов на чистом C++03
вобщем я только это сегодня успел глянуть))
даже не знаю, правильно ли я тут все понял.
С++03 — это что такое?
Вобщем я только нашел такой клевый класс tipeid. Все за меня сделал. Или без этого надо?
Все равно расскажу.
Создаю вот такой класс:
class my
{
int i;
public:
my()
{i=0;}
};
Где-нибудь в main пишу:
my ** p;
cout<<typeid(p).name();
В результате выводится вот что:
class my * *
Типа вот так определяется тип класса.
А вообще пытался идти по коду и посмотреть куда заходит программа при вызове функции name() и увидел только асемблеровский код. Поэтому я решил что еще дальше на С не подобраться.
Что на это можно сказать? )) Типы я не регистрировал, как видно! PC>-- PC>Pavel Chikulaev
Здравствуйте, Minimaxus, Вы писали:
M>Нравится мне С++. Знаю хорошо основы С++. А что дальше изучать не могу выбрать. Может у кого-нибудь найдутся какие-нибудь задачи небольшие (пока пусть будут небольшие) из коммерческих проектов (что-то типа такого), базируясь на которых можно с чего-то начать. В дальнейшем хотелось бы, чтобы эти навыки пригодились при работе. Пока работаю в ИТ среде, но в другом напралвении — не программинг. M>Надеюсь я в тот форум залез
Тут над тобой злые дядьки прикалываются... не слушай их
Единственно по делу сказал Шахтёр.
Если тебе будет интересно, могу предложить такую задачу:
Надо сделать консольное приложение, которое является системой ввода информации по автомобилям.
Программа запрашивает название марки, производителя и цену автомобиля, сохраняя эту информацию во внутренних структурах.
Должна быть возможность сохранения информации в файл и считывания информации из файла.
Формат файла определяешь ты.
Также должен быть предусмотрен режим работы при котором пользователь вводит минимальную и максимальную суммы, которые он готов заплатить за машину, и программа выводит ему список автомобилей удолетворяющих данному условию.
K>Тут над тобой злые дядьки прикалываются... не слушай их K>Единственно по делу сказал Шахтёр.
K>Если тебе будет интересно, могу предложить такую задачу:
K>Надо сделать консольное приложение, которое является системой ввода информации по автомобилям. K>Программа запрашивает название марки, производителя и цену автомобиля, сохраняя эту информацию во внутренних структурах. K>Должна быть возможность сохранения информации в файл и считывания информации из файла. K>Формат файла определяешь ты. K>Также должен быть предусмотрен режим работы при котором пользователь вводит минимальную и максимальную суммы, которые он готов заплатить за машину, и программа выводит ему список автомобилей удолетворяющих данному условию.
Вот же дядьки Да все равно полезно было с типами покопаться, ща я им вопрос задам в новой теме, надеюсь они ответят на него!
За задачку спасибо. Это больше структуры данных. Подумаю на досуге. А вообще смысл моего вопроса был такой, чтобы вот такую задачу, например, я начал решать применея STL. Попробую найти сегодня какой-нибудь классик, который мне поможет это сделать. Сам себя пинать я не могу, чтобы заняться чем-то, вот и думал тут меня кто-нибудь нагрузит ))
Здравствуйте, Minimaxus, Вы писали:
M>Нравится мне С++. Знаю хорошо основы С++. А что дальше изучать не могу выбрать. Может у кого-нибудь найдутся какие-нибудь задачи небольшие (пока пусть будут небольшие) из коммерческих проектов (что-то типа такого), базируясь на которых можно с чего-то начать. В дальнейшем хотелось бы, чтобы эти навыки пригодились при работе. Пока работаю в ИТ среде, но в другом напралвении — не программинг.
Когда-то я такую задачу студентам 2 курса давал.
Имитатор файловой системы. Дан массив некоторого фиксированного размера. Рассматривая его как диск, создать на нем нечто вроде файловой системы FAT (ну пусть без подкаталогов) и реализовать командный интерфейс в стиле MS-DOS (команды create, copy, delete и т.д.)ю Естественно, с обработкой ошибок и т.д.
Здравствуйте, Pavel Chikulaev, Вы писали:
PC>"Minimaxus" <26589@users.rsdn.ru> wrote in message news:1143566@news.rsdn.ru... >> Нравится мне С++. Знаю хорошо основы С++. А что дальше изучать не могу >> выбрать. Может у кого-нибудь найдутся какие-нибудь задачи небольшие (пока >> пусть будут небольшие) из коммерческих проектов (что-то типа такого), >> базируясь на которых можно с чего-то начать. В дальнейшем хотелось бы, чтобы >> эти навыки пригодились при работе. Пока работаю в ИТ среде, но в другом >> напралвении — не программинг.
PC>Задача:
PC>
PC>Написать класс MaxValueOfAllSpecializations<B>, реализовать не перебирая все PC>значения инта, никакой информации за пределами классов B, единственно что PC>можно — наличее какого-нибудь базового класса у каждой специализации B.
PC>Время пошло. 30 минут.
Так и несмогли корректно решить вашу задачу.
На сколько я понял, речь идёт об компил-тайм решении.
Есть два варианта:
Первый:
template <template <int> class Y, int current> class GetMax
{
public:
enum {value = Y<current>::value > GetMax< Y, current+1 >::value ? Y<current>::value : GetMax< Y, current+1 >::value};
};
template <template < int > class Y >
class GetMax <Y, 1070>
{
public:
enum {value = Y<1070>::value };
};
template<template <int> class X>
class MaxValueOfAllSpecializations
{
public:
enum {value = GetMax<X,0>::value};
};
и второй
template <int N> class Some: public Some<N+1>
{
public:
enum { value = Some<N+1>::value > B<N>::value ? Some<N+1>::value:B<N>::value};
};
template <> class Some<1400>
{
public:
enum { value = B<1400>::value};
};
В каждом из них вы можете видеть магические цифры 1400 и 1070. Это граници до которых просматриваются специализации. Если они больше — компилятор выдаёт ошибку. (VS.NET 2003)
Если не секрет поделитесь правильным решением.