Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Обучение и начало програмирования на С++

Автор: Xarde
Дата сообщения: 01.08.2005 08:28
TheChampion

Цитата:
Я еще не видел игр, написанных на этом. А вот на MSVS видел. Школьники, изучающие паскаль, --- это не все.

Я и не говорил о _всех_. Но использующих билдер и дельфи у нас много. А вижуал, кстати, тоже не везде лучше использовать. Все зависит от решаемой задачи.
Larry
Мелкомягкие купили у борланда дельфи и 2005-ая версия уже от них. Выглядит так же, как и вижуал студия 2005, вроде бы.
Автор: TheChampion
Дата сообщения: 01.08.2005 10:30
Xarde

Цитата:
Мелкомягкие купили у борланда дельфи и 2005-ая версия уже от них.

Так что ж от борланда осталось? Они ж теперь просто голодранцы!
Автор: Xarde
Дата сообщения: 01.08.2005 10:55

Цитата:
Так что ж от борланда осталось? Они ж теперь просто голодранцы!

Видимо, дела у борланда идут из рук вон плохо. Но у них есть еще C++Builder (который, похоже, они закрывают), JBuilder (про него и остальные продукты я не в курсе - может и будут развивать), C#Builder и др. Правда, продажи дельфи я от них совсем не ожидал - все-таки на ней и на Turbo Pascal/С они вылезли, по большому счету.
Автор: vserd
Дата сообщения: 01.08.2005 11:29
Xarde

Цитата:
Мелкомягкие купили у борланда дельфи и 2005-ая версия уже от них.

А инфу по этом впоросу в официале мде можно почитать?
Автор: Xarde
Дата сообщения: 01.08.2005 12:36

Цитата:
А инфу по этом впоросу в официале мде можно почитать?

Должна быть на микрософте... Но я там не нашел. Сходил на борланд.ком - пишут о ней как о своей. Ничего не понимаю - своими глазами вроде бы видел лэйблу... Прошу прощения за дезинформацию, в следующий раз буду тщательнее проверять то, что слышу и вижу.
Автор: OtD
Дата сообщения: 01.08.2005 19:47
TheChampion

Цитата:
релиз BCB6 относится еще к 2002 году!

Стандарт С++ принят, вроде, в 1997. Далее дополнения.
Борланд "Inprise Inc.", даёт бесплатный компилятор С++.
Скорость для многих не принципиальна, инфа есть в сети, при желании у народа есть инструментарий для нормальной работы. А удобство среды сборки, вопрос спорный.

Если мы говорим за язык С++, зачем хаить разроботчиков компиляторов.
На основе любого компилятора, вы можете сделать свою среду разроботки, скоро появится трёхмерная среда разработки. Главное на объектном уровне видеть взаимосвязь, лучше если это в трёхмерном представлении, Майкрософт идёт совсем другой дорогой, у них как у Скрудча (из мультиков), одни баксы в глазах, и говорить о равнении на них, значить не видеть полной картины мира IT.

Давайте говорить за язык С++, а кто хочет за среду, создайте тему "BCB vs MSVS" или в этом духе.
Автор: WiseAlex
Дата сообщения: 01.08.2005 20:50
OtD

Цитата:
Стандарт С++ принят, вроде, в 1997. Далее дополнения.

компилятор это не только стандарт, но и поддержка новых процессоров, исправление багов и т.д. как для любого софта

Цитата:
Борланд "Inprise Inc.", даёт бесплатный компилятор С++

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

Цитата:
при желании у народа есть инструментарий для нормальной работы.

ну так и для VC никто eclipse не отменял...
---
В целом если программа долго не обновляется, то это не значит, что она идеальна.

кстати, TheChampion, я так понял, ты тоже переехал с builder'a на VC ?
Автор: TheChampion
Дата сообщения: 02.08.2005 07:52
WiseAlex

Цитата:
кстати, TheChampion, я так понял, ты тоже переехал с builder'a на VC ?

Яволь, герр Оберст! Половину времени я провожу, читая справку. MSDN позволяет получать более качественную информацию. Ну и никаких проблем с DirectX. В смысле, не приходится каждый библиотечный файл гнать сквозь coff2omf.

OtD

Цитата:
Стандарт С++ принят, вроде, в 1997. Далее дополнения.

В 1998 году, если быть точным.

А насчет древности компилятора... Как-то я участвовал в соревнованиях по программированию. "Мой старший товарищ" жил в 16-битном мире с компилятором Borland C++ (это в 2003 году!!!) Ясен пень, он считал C++ убогим языком и писал на паскале. Я не заморачивался на морально устаревший софт и использовал сугубо 32-битный CppDev. В итоге из 4 решенных нами задач две решил я, причем на C++ и STL (надо признать, что использование этого считается у пасквилянтом смертным грехом: как же, мы пишем список сами и сортировку сами, а вы гнусно юзате STL!). И прошли в полуфинал!

А баксы тут совсем не причем.
Автор: raspe
Дата сообщения: 02.08.2005 08:07

Цитата:
ALL
вопрос по перечеслениям (enum)
Есть ли возможность определить последнее (верхнее) значение перечисления, и можно -ли использовать их в цикле?


Для получения последнего значения /в случае если нумерация сквозная/ используют обычно следующий финт

enum __MyEnum
{
FIRST = 1,
SECOND,
SOME,
NEXT,
LAST_ELEMENT
};


int enumValue = LAST_ELEMENT - 1; // Естественно тут идет привязка к символьному обозначению константы

Вопрос про использование в циклах значений enum не ясен. Enum - это не коллекция, по которой можно пройтись, это всего лишь набор именованных констант
Автор: wiwiw
Дата сообщения: 02.08.2005 18:30

Цитата:
Для получения последнего значения /в случае если нумерация сквозная/ используют обычно следующий финт

enum __MyEnum
{
FIRST = 1,
SECOND,
SOME,
NEXT,
LAST_ELEMENT
};


int enumValue = LAST_ELEMENT - 1; // Естественно тут идет привязка к символьному обозначению константы

Вопрос про использование в циклах значений enum не ясен. Enum - это не коллекция, по которой можно пройтись, это всего лишь набор именованных констант

легко и просто прохожусь по элементам данного перечисления:

Код:
for ( i=FIRST;i<=LAST_ELEMENT; i++)
{
...
}
Автор: TheChampion
Дата сообщения: 02.08.2005 18:32
wiwiw
А как тебе это?

Код: enum en { FIRST, SECOND = 200, THIRD, LAST = -1 };
Автор: wiwiw
Дата сообщения: 02.08.2005 20:18
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;
Автор: OtD
Дата сообщения: 02.08.2005 22:31
WiseAlex
TheChampion
Да ну Вас пацаны, Вы боретесь не за истиных разработчиков, а за своё тщеславие, гордыня это грех, будте благоразумны, любое множество кем-то когда-то будет решено, мы всего-лишь участники этого процесса. Всё дело в природе человека, возможность держать определённое количество информации, 25000 строк, кто-то больше кто-то меньше, но в глобальном понимании надо видеть беспомощность человека. Цель одна, тебя и меня, двинуть на новый виток видения, и научить этому наших политиков. Ещё Ботвиник об этом говорил, вечная борьба логики и чинушек. Программирование это инструмент, который позволит высказать своё видение мира, и банальное обсусждение инструментов уводит нас от главной цели созидания.
Кто-нибудь даст ссылку на трёхмерную таблицу Менделеева, или на наше государственное устройство. Наша задача, баранов политиков, загнать в стоило математического видения, объясняя им элементарную природу строения вещества.
Будте бдительны, тщеславные уроды мечтают Вас использовать. Делайте свой мир, Вы лучшие.
Автор: Xarde
Дата сообщения: 03.08.2005 07:10
WiseAlex

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

Кстати, а кто в курсе, бесплатен только компилятор или еще и библиотеки (то, что в папках include, source и lib)?
Автор: TheChampion
Дата сообщения: 03.08.2005 07:55
OtD
Я не за тщеславние, хотя чего скрывать, не в последней степени из-за него я стал программистом.

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

Код: typedef struct
{
int a;
double b;
char* c;
} S;

S s = { .a = 5, .b = 3.14 };
Автор: raspe
Дата сообщения: 03.08.2005 07:56

Цитата:

легко и просто прохожусь по элементам данного перечисления:

Код:
for ( i=FIRST;i<=LAST_ELEMENT; i++)
{
...
}



Это если нумерация сквозная. А вот если каждый элемент перечисления имеет собственное, недефолтное значение (полученное инкрементацией на еденицу значения предыдущего элемента enum-а) тогда тоже будет работать?
Автор: Xarde
Дата сообщения: 03.08.2005 08:15
raspe
Посмотри, что написал wiwiw - у него все очень просто, доходчиво и - главное - правильно. Для уменьшения вероятности "влипнуть" использу второ предложенный им вариант, когда числовые значения констант могут повторяться.
Автор: WiseAlex
Дата сообщения: 03.08.2005 10:07
Xarde

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

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


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

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

да уж скромность украшает...
Думаешь на том свете нас спросят хорошими ли мы были программистами? Сомневаюсь.
Автор: OtD
Дата сообщения: 05.08.2005 01:04
TheChampion

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

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

WiseAlex

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

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

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

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

На самом деле вещь очень удобная, я бы не отказался от нее в C++. Равно как от типов int16, int32, int64. А еще в [C99] очень круто записываются комплексные числа:

Код: complex z = 3 + 5 * I; // Математиков плющит!
Автор: Xarde
Дата сообщения: 05.08.2005 09:04
TheChampion

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

int64 там (в ВСВ6) точно есть.
Автор: WiseAlex
Дата сообщения: 05.08.2005 09:22
TheChampion

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

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

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

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

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

gcc!
Автор: WiseAlex
Дата сообщения: 05.08.2005 14:56
TheChampion

Цитата:
gcc!

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

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

Автор: segeich
Дата сообщения: 05.08.2005 16:14
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
Автор: WiseAlex
Дата сообщения: 08.08.2005 09:16
segeich
спасибо - не досмотрел
Автор: vserd
Дата сообщения: 11.08.2005 16:29
Подскажите в чем разница между следующим кодом:
VC 6.0
string one("ONE"), two, three;
two = "two";

Вариант 1
three = one;
three += two;

Вариант 2
three = One + two;

Вариант 1 компилируется, вариант 2 нет, говорит что немогу сложить два указателя.
Хотя у Страуструпа есть пример код по варианту 2. Да и у Пратта тоже есть пример и указание что в качестве второго параметра могут выступать символ, строка и С-строка.
Автор: WiseAlex
Дата сообщения: 11.08.2005 16:50
vserd

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

Вариант 2
three = One + two;

в обоих вариантах используются классы - так что разницы кроме временной переменной не должно быть.
Приведенный код точен?
Автор: vserd
Дата сообщения: 11.08.2005 18:26
из проекта
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.


Может какая-то настройка в свойствах проекта не указана?
Автор: wiwiw
Дата сообщения: 11.08.2005 20:00
все скомпилил. всё ОК. (VC6 sp5)
убедись, что есть

Код:
#include <string>

Страницы: 12345678910111213141516171819202122

Предыдущая тема: DELPHI. Счетчик ячеек со значенями, значений ячеек


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.