|
|
  |
Вопросы по C от ламера, В книжках ответа чёта не нахожу |
|
|
|
Apr 24 2009, 13:48
|

Чайник, 1 литр
   
Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168

|
Новички C++!!! Это очень понятный язык! Кому надо привожу пример вычисления числа Пи (чем больше круг, тем точнее вычисляется): Код #define _ F-->00 || F-OO--; long F=00,OO=00; void F_OO() { _-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_ } int main(){F_OO();printf("%1.3f\n", 4.*-F/OO/OO);} (Извините, не мог не запостить...)
|
|
|
|
Guest_Скопидор_*
|
Apr 24 2009, 14:16
|
Guests

|
Цитата(SysRq @ Apr 24 2009, 17:48)  Новички C++!!! Это очень понятный язык! «Если язык хорошо знаком программистам, они работают более производительно. Данные, полученные при помощи модели оценки Сосото II, показывают, что про- программисты, использующие язык, с которым они работали три года или более, при- примерно на 30% более продуктивны, чем программисты, обладающие аналогичным опытом, но для которых язык является новым» © (Boehm et al., 2000). Т.е. те, кого зачастую презрительно называют новичками, ламерами и т.п. всего лишь на 30% менее эффективны, чем профи. /////////////////////////////////////////// «Если вы работаете на конкурентном рынке ПО, половина ваших знаний устареет за три года. Без обучения вы превратитесь в ископаемое.» …. «Если программист не изучил С за год или два, еще три года не сыграют особой роли» © Макконэл «Совершенный код» /////////////////////////////////////////// Модератор. Вы нарушаете п.3.1 Правил форума. Либо придерживайтесь обозначенной Вами темы, либо весь топик будет перемещен в раздел Общение - Off topics.
|
|
|
|
|
Apr 24 2009, 16:09
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(Скопидор @ Apr 24 2009, 17:16)  «Если язык хорошо знаком программистам, они работают более производительно. Господа-товарищи, делающие всяческие подобные "научные" исследования просто поражают глубиной мысли. Слону понятно, что опытный работник работает более производительно, чем неопытный. Про 30% - вообще полная фигня. Код можно написать и даже запустить, но еще останется куча вопросов по его надежности, стабильности, отсутствию не очевидных ошибок периода выполнения и прочее. Какими процентами это можно подсчитать? Я никак не могу в толк взять. Вы задаете вопросы про одно. Потом перескакиваете на всякие enum и рекурсивные вызовы main. Это вопросы из спортивного интереса или на работе делать нечего? Изучение лучше всего происходит при решении конкретных "живых" задач. Вопрос про enum - это обычное приведение типов: int --> enum. Никто не запрещает это делать, но умные книги, которых вы уже ужас как много прочитали, все пишут про аккуратность приведения типов, чего и вам желаю использовать с оглядкой в будущей работе. Приколистский тон ваших сообщений не будет способствовать получению вами полезных советов от знающих людей. Хороших выходных.
|
|
|
|
Guest_Скопидор_*
|
Apr 24 2009, 19:02
|
Guests

|
Цитата(sergeeff @ Apr 24 2009, 20:09)  Я никак не могу в толк взять. Вы задаете вопросы про одно. Потом перескакиваете на всякие enum и рекурсивные вызовы main. Это вопросы из спортивного интереса или на работе делать нечего? Мне как раз есть делать что. Потому что мне нужно за неделю поднять свой уровень настолько, чтобы устроиться кодером C++. Поэтому я не тормоз, чтоб муссировать один и тот же вопрос неделями. У меня в голове крутиться одновременно тысячи вопросов, которые ищут ответа. И то, что я здесь задаю и что мне не понятно не составляет и сотой части того, что меня интересует. Я понятно объяснил?
|
|
|
|
Guest_Скопидор_*
|
Apr 24 2009, 22:13
|
Guests

|
Цитата(sergeeff @ Apr 25 2009, 01:51)  Понятно, хочется себя любимого втюхать кому-то как специалиста по С++. Успехов! Уточняю: как НАЧИНАЮЩЕГО специалиста по C++ (блин на работу уже 2 месяца не могу устроится, а 4 моих детей кушать просят). Но и реально знать C++ тоже хочу (ибо очень люблю процесс коддинга). P.S. А что? По-Вашему нужно "тормозить" и муссировать один вопрос неделями? Ведь тема называется "Вопрос ы ...", а не "Вопрос..."
|
|
|
|
|
Apr 24 2009, 22:24
|

Чайник, 1 литр
   
Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168

|
Раз все выяснилось, предлагаю принять правила игры: конструктивно, вопрос-ответ, без синих букв, художеств, бессмысленных цитат. Правильная игра, полагаю, будет приветствована: в тривиальных вопросах может быть скрыто нетривиальное, -- и это интересно :)
|
|
|
|
Guest_Скопидор_*
|
Apr 24 2009, 23:32
|
Guests

|
Цитата(SysRq @ Apr 25 2009, 02:24)  Раз все выяснилось, предлагаю принять правила игры: конструктивно, вопрос-ответ, без синих букв, художеств, бессмысленных цитат. Правильная игра, полагаю, будет приветствована: в тривиальных вопросах может быть скрыто нетривиальное, -- и это интересно  Вот и договорились. Это уже конструктив пошёл. //////////////////////////////////////////// Вопрос №200904250332 Почему мы пишем в проге на C++ Код cout << "Hello, World!!!" << '\n' и при выполнении программы курсор переиещается на следующую строку + переводится в начало строкиНо ведь служебный символ '\n' это символ 'Line feed', т.е. просто перевод на другую строку, без перемещения курсора в начало строкиДля перемещения строки в начало строки служит служебный символ '\r' ('Carriage return'). Т.е. по идее нужно было бы написать '\r\n'. Тогда почему в строках C++ символ '\n' работает также как '\r\n'?
|
|
|
|
|
Apr 25 2009, 00:07
|

Чайник, 1 литр
   
Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168

|
Цитата(Скопидор @ Apr 25 2009, 03:32)  Тогда почему в строках C++ символ '\n' работает также как '\r\n'? Исторически так уж сложилось, что в Windows корректный переход на след. строку - это \r\n (CR + LF). Поэтому \n неявно дополняется до \r\n в текстовом режиме. В std определена константа endl, пользуйтесь вместо явного '\n'. При записи в файл бинарных данных, не забывайте указывать что файл бинарный (там где это возможно, напр. fopen("file", "w b")), иначе оно тоже дополнит..
|
|
|
|
Guest_Andy Nikiforovv_*
|
Apr 27 2009, 19:14
|
Guests

|
Кто удаляет из исходника камменты (перед компиляцией) и склеивает строки разделённые символом склейки (\)? Компилятор или препроцессор? И где почитать инфу по «расколбасу» исходника прежде чем он достаётся собственно компилятору? Относительно main. Правда ли, что допустимы только две формы main: int main ( int narg, char **arg) и void main (void) ? Почему не меняется размер экзешника при последовательном заремливании строк снизу вверх? Код #include <iostream> using namespace std;
void main () { cout << "Hello, World" << endl; // 528 442 Байт Причём ENDL не катит (т.е. регистрочувствительный идентификатор) cout << "Hello, Moskau" << endl; // 528 442 Байт cout << "Hello, Moskau2" << '\n'; // 528 442 Байт cout << "Hello, Moskau3" << "\r\n"; // 528 442 Байт '\r\n' не работает; А "\r\n" работает также как '\n' и endl cout << "Hello, Moskau4" << endl; // 528 442 Байт
Сообщение отредактировал Andy Nikiforovv - Apr 27 2009, 19:07
|
|
|
|
Guest_Andy Nikiforovv_*
|
Apr 27 2009, 20:14
|
Guests

|
Написано, что параметры командной строки для Borland C++ 3.1 должны разделяться пробелами. А как быть если в параметре есть пробел? Дайте определения (в контексте языков программирования) терминов "лексика", "синтаксис", "семантика" и "грамматика". Я заметил, что некоторые ключевые слова регистронезависимы. А в книжках пишут, что в C++ все идентификаторы регистрозависимы. Объясните в чем дело. Как сделать так, чтобы под константу (const) не выделялась память? Почему сделано так, что литералу 40000 компилятор приписывает тип LONG, а не unsigned int? Функция (операция?) ЗайзэАф (sizeof) считает размер переменной/ константы с учётом выравнивания на границу слова или без учёта оного? Цитата(Andy Nikiforovv @ Apr 27 2009, 23:14)  Код #include <iostream> using namespace std;
void main () { cout << "Hello, World" << endl; // 528 442 Байт Причём ENDL не катит (т.е. регистрочувствительный идентификатор) cout << "Hello, Moskau" << endl; // 528 442 Байт cout << "Hello, Moskau2" << '\n'; // 528 442 Байт cout << "Hello, Moskau3" << "\r\n"; // 528 442 Байт '\r\n' не работает; А "\r\n" работает также как '\n' и endl cout << "Hello, Moskau4" << endl; // 528 442 Байт Почему в этом исходнике "дофени" что писать: '\n' или "\r\n"? Результат один и тот же Я написал (в консольном приложении) cout << '\a' а звука всё равно я не услышал. В чём фишка? char i ; имеет диапозон 0...255? Т.е. без знака? в отличии от int, которое по умолчанию со знаком? Какие операции допустимы над строками (символьными массивами) в "чистом" C++ (без библиотечных функций)? Какие преимущества использования манипулятора endl (кроме очистки буфера потока) по сравнению с использованием '\n'? Можно ли определить была ли очищена динамическая память, на которую указывает указатель или нет? Ну, типа, после delete указатель должен указывать не NILL? Или по стандарту это не гарантируется? Освобождение динамической памяти из-под массив происходит по команде delete []. А как менеджер кучи узнаёт сколько байт нужно освободить?
Сообщение отредактировал Andy Nikiforovv - Apr 27 2009, 19:50
|
|
|
|
|
Apr 27 2009, 20:48
|

Начинающий профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648

|
Цитата(Andy Nikiforovv @ Apr 27 2009, 23:14)  Кто удаляет из исходника камменты (перед компиляцией) и склеивает строки разделённые символом склейки (\)? Компилятор или препроцессор? И где почитать инфу по «расколбасу» исходника прежде чем он достаётся собственно компилятору? Взять препроцессор , запустить и посмотреть результат. Вопрос отпадет. Цитата(Andy Nikiforovv @ Apr 28 2009, 00:14)  Дайте определения (в контексте языков программирования) терминов "лексика", "синтаксис", "семантика" и "грамматика". Участники форума не на экзамене, чтобы допускать подобные формулировки. Цитата Почему сделано так, что литералу 40000 компилятор приписывает тип LONG, а не unsigned int? int и long для win32 одно и тоже. Цитата Можно ли определить была ли очищена динамическая память, на которую указывает указатель или нет? Ну, типа, после delete указатель должен указывать не NILL? Или по стандарту это не гарантируется? Освобождение динамической памяти из-под массив происходит по команде delete []. А как менеджер кучи узнаёт сколько байт нужно освободить? У Строуструпа это рассмотрено в соответствующем разделе. Какие книги по языку С++ Вы используете?
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|