Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обучение и начало програмирования на С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

Открыть новую тему     Написать ответ в эту тему

TheChampion

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wiwiw
А как тебе это?

Код:
enum en { FIRST, SECOND = 200, THIRD, LAST = -1 };

Всего записей: 656 | Зарегистр. 25-06-2004 | Отправлено: 19:32 02-08-2005
wiwiw

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheChampion
да я просто прикололся над неудачным примером.  
 
а теперь серьезно. перебор значений перечисления:

Код:
 
enum en { FIRST, SECOND = 200, THIRD, LAST = -1 };  
int sequence[] = {FIRST, SECOND, THIRD, LAST};
// дальше можно не читать - идея понятна
for(int i=0;sequence[i]!=LAST;)//надеюсь в перечислении все константы уникальные
cout << sequence[i++]<< endl;
// или
for(i=0;i<sizeof a / sizeof a[0];)// а здесь мне пох на уникальность
cout << sequence[i++]<< endl;
// или
for(int i=0;(current_value=sequence[i])!=LAST;i++)// а здесь нет
cout << current_value<< endl;
 

 
 

Всего записей: 127 | Зарегистр. 20-03-2004 | Отправлено: 21:18 02-08-2005
OtD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WiseAlex
TheChampion
Да ну Вас пацаны, Вы боретесь не за истиных разработчиков, а за своё тщеславие, гордыня это грех, будте благоразумны, любое множество кем-то когда-то будет решено, мы всего-лишь участники этого процесса. Всё дело в природе человека, возможность держать определённое количество информации, 25000 строк, кто-то больше кто-то меньше, но в глобальном понимании надо видеть беспомощность человека. Цель одна, тебя и меня, двинуть на новый виток видения, и научить этому наших политиков. Ещё Ботвиник об этом говорил, вечная борьба логики и чинушек. Программирование это инструмент, который позволит высказать своё видение мира, и банальное обсусждение инструментов уводит нас от главной цели созидания.
Кто-нибудь даст ссылку на трёхмерную таблицу Менделеева, или на наше государственное устройство. Наша задача, баранов политиков, загнать в стоило математического видения, объясняя им элементарную природу строения вещества.
Будте бдительны, тщеславные уроды мечтают Вас использовать. Делайте свой мир, Вы лучшие.  

Всего записей: 50 | Зарегистр. 02-06-2005 | Отправлено: 23:31 02-08-2005
Xarde



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WiseAlex

Цитата:
VC компилятор так же бесплатен

Кстати, а кто в курсе, бесплатен только компилятор или еще и библиотеки (то, что в папках include, source и lib)?

Всего записей: 266 | Зарегистр. 06-07-2003 | Отправлено: 08:10 03-08-2005
TheChampion

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OtD
Я не за тщеславние, хотя чего скрывать, не в последней степени из-за него я стал программистом.
 
Есть в мире такая штука --- прогресс. Из-за него появляются новые стандарты ISO. Так, [C99] гораздо более удобная штука, чем [C89]. Соответствует ли Borland С++ Builder 6 этому стандарту, когда ты ставишь галочку напротив строчки "исходник на C"? Не знаю, надо бы проверить. Как, например, он отнесется к объявлению переменной в середине кода, после инструкций? По-моему, плохо. И еще, можно набрать код

Код:
typedef struct
{
  int a;
  double b;
  char* c;
} S;
 
S s = { .a = 5, .b = 3.14 };

 
и посмотреть на результат. gcc с этим справляется.
 
Лично мне вполне достаточно 4 лет необновления, чтобы отказаться от используемого софта.

Всего записей: 656 | Зарегистр. 25-06-2004 | Отправлено: 08:55 03-08-2005
raspe



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
легко и просто прохожусь по элементам данного перечисления:  
 
Код:  
for ( i=FIRST;i<=LAST_ELEMENT; i++)  
{  
...  
}  
 
 

 
Это если нумерация сквозная. А вот если каждый элемент перечисления имеет собственное, недефолтное значение (полученное инкрементацией на еденицу значения предыдущего элемента enum-а) тогда тоже будет работать?

Всего записей: 421 | Зарегистр. 22-07-2005 | Отправлено: 08:56 03-08-2005
Xarde



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
raspe
Посмотри, что написал wiwiw - у него все очень просто, доходчиво и - главное - правильно. Для уменьшения вероятности "влипнуть" использу второ предложенный им вариант, когда числовые значения констант могут повторяться.

Всего записей: 266 | Зарегистр. 06-07-2003 | Отправлено: 09:15 03-08-2005
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xarde

Цитата:
Кстати, а кто в курсе, бесплатен только компилятор или еще и библиотеки

сам я toolkit не скачивал, но по непроверенным данным туда не входит mfc и, возможно, еще что-то из библиотек microsoft. stl вроде входит.  
all
Если есть возможность скачать toolkit 2003 и проверить что там есть - буду благодарен.
OtD
я нигде не писал, что vc лучший компилятор. Любая вещь в этом мире есть компромисс, что-то лучше что-то хуже, но идеала нет. (прошу прощения за банальности)


Цитата:
Вы боретесь не за истиных разработчиков, а за своё тщеславие
...

Цитата:
Цель одна, тебя и меня, двинуть на новый виток видения, и научить этому наших политиков.

да уж скромность украшает...
Думаешь на том свете нас спросят хорошими ли мы были программистами? Сомневаюсь.

Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 11:07 03-08-2005
OtD

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheChampion

Цитата:
и посмотреть на результат. gcc с этим справляется.
S s = { .a = 5, .b = 3.14 };
 

BCB6 не справился. Первый раз вижу такое начисление, в ANSI C++ такго нет, может ты имеешь ввиду [C99], тогда для меня это не актуально.
 
WiseAlex

Цитата:
Думаешь на том свете нас спросят хорошими ли мы были программистами? Сомневаюсь.

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

Всего записей: 50 | Зарегистр. 02-06-2005 | Отправлено: 02:04 05-08-2005
TheChampion

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OtD

Цитата:
 BCB6 не справился

Но в нем есть флажок типа "Чистный C-код". Тогда не стоило быть себя пяткой в грудь и делать такие флажки в 2002 году. Стандарт принят в 1999.
 
На самом деле вещь очень удобная, я бы не отказался от нее в C++. Равно как от типов int16, int32, int64. А еще в [C99] очень круто записываются комплексные числа:

Код:
complex z = 3 + 5 * I; // Математиков плющит!  

Всего записей: 656 | Зарегистр. 25-06-2004 | Отправлено: 08:57 05-08-2005
Xarde



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheChampion

Цитата:
Равно как от типов int16, int32, int64.

int64 там (в ВСВ6) точно есть.

Всего записей: 266 | Зарегистр. 06-07-2003 | Отправлено: 10:04 05-08-2005
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheChampion

Цитата:
Но в нем есть флажок типа "Чистный C-код". Тогда не стоило быть себя пяткой в грудь и делать такие флажки в 2002 году. Стандарт принят в 1999.  

могу сказать несколько слов в защиту bcb
1) vc тоже не поддерживает с99
2) не могу сказать что видел много компиляторов С, но из тех что видел (в основном для микроконтролеров) поддержка с99 встречается не часто и это при том, что компиляторы чисто С (без всяких ++)

Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 10:22 05-08-2005 | Исправлено: WiseAlex, 15:56 05-08-2005
TheChampion

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WiseAlex

Цитата:
vc так не поддерживает с99  

Но и пяткой в грудь они себя не бьют. Заметь, есть VC++, но нет VC.

Цитата:
поддержка с99 встречается не часто

gcc!

Всего записей: 656 | Зарегистр. 25-06-2004 | Отправлено: 14:54 05-08-2005
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheChampion

Цитата:
gcc!

и где я его использовать буду? написал же:

Цитата:
в основном для микроконтролеров


Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 15:56 05-08-2005
segeich

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheChampion

Цитата:
gcc!

Полной поддержки C99 в gcc пока нет: http://gcc.gnu.org/c99status.html
 
WiseAlex

Цитата:
Если есть возможность скачать toolkit 2003 и проверить что там есть - буду благодарен.  

Да вроде и без закачки понятно (http://msdn.microsoft.com/visualc/vctoolkit2003/ - внизу страницы FAQ)

Цитата:
 
What does the Visual C++ Toolkit install on my machine?
The Toolkit installs (1) the Visual C++ command-line compiler and linker, and their dependencies, (2) the Visual C++ C Runtime Library and static-link modules, and the Standard C++ Library, including STL, (3) the Microsoft .NET Framework Runtime, including library files necessary for building C++ applications that run on the .NET Common Language Runtime, and (4) four samples demonstrating key features of the Visual C++ compiler and libraries
 

Всего записей: 112 | Зарегистр. 03-01-2003 | Отправлено: 17:14 05-08-2005 | Исправлено: segeich, 17:38 05-08-2005
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
segeich
спасибо - не досмотрел

Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 10:16 08-08-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите в чем разница между следующим кодом:
VC 6.0
string one("ONE"), two, three;
two = "two";
 
Вариант 1
three = one;
three += two;
 
Вариант 2  
three = One + two;
 
Вариант 1 компилируется, вариант 2 нет, говорит что немогу сложить два указателя.  
Хотя у Страуструпа есть пример код по варианту 2. Да и у Пратта тоже есть пример и указание что в качестве второго параметра могут выступать символ, строка и С-строка.
 

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 17:29 11-08-2005
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserd

Цитата:
Вариант 1
three = one;
three += two;
 
Вариант 2  
three = One + two;  

в обоих вариантах используются классы - так что разницы кроме временной переменной не должно быть.
Приведенный код точен?

Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 17:50 11-08-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
из проекта
string One("One"), two, t3;
two = "test";
t3 = One + two ;
 
D:\Project\cpp\Source\dialogs2.cpp(557) : error C2784: 'class std::reverse_iterator __cdecl std::operator +(_D,const class std::reverse_iterator &)' : could not deduce template argument for '' from 'class std::basic_string,class std::allocator >'
D:\Project\cpp\Source\dialogs2.cpp(557) : error C2676: binary '+' : 'class std::basic_string,class std::allocator >' does not define this operator or a conversion to a type acceptable to the predefined operator
Error executing cl.exe.
 
 
string One("One"), two, t3;
    two = "test";
    t3 = One + " x " ;
 
D:\Project\cpp\Source\dialogs2.cpp(557) : error C2784: 'class std::reverse_iterator __cdecl std::operator +(_D,const class std::reverse_iterator &)' : could not deduce template argument for '' from 'class std::basic_string,class std::allocator >'
D:\Project\cpp\Source\dialogs2.cpp(557) : error C2676: binary '+' : 'class std::basic_string,class std::allocator >' does not define this operator or a conversion to a type acceptable to the predefined operator
Error executing cl.exe.
 
 
Может какая-то настройка в свойствах проекта не указана?

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 19:26 11-08-2005
wiwiw

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
все скомпилил. всё ОК. (VC6 sp5)
убедись, что есть  

Код:
 
#include <string>
 

Всего записей: 127 | Зарегистр. 20-03-2004 | Отправлено: 21:00 11-08-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обучение и начало програмирования на С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru