Тема: Тема для студентов-программистов и желающих им помочь

Ответить в теме
Страница 3 из 10 ПерваяПервая 1 2 3 4 5 ... ПоследняяПоследняя
Показано с 41 по 60 из 184
  1. Вверх #41
    User banned
    Пол
    Мужской
    Сообщений
    785
    Репутация
    20
    Продолжаем тему для студентов......

    Программист-стажер

    Для работы в проектах по разработке и внедрению ERP систем мы ищем желающих учиться и быть лучшими!

    Требования:

    - базовые знания теории БД;

    - базовые знания SQL;

    - опыт разработки программного обеспечения.

    Резюме слать в [email protected] Олегу Эдуардовичу


  2. Вверх #42
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Константин, правильно.
    вот еще ситуация когда он не будет работать
    int j,i=1;
    j=MAX(i,++i);

    а на первый мой вопрос можешь ответить?
    у меня еще таких штук восемь.
    если да, то контракт у тебя в кармане.
    Последний раз редактировалось Ull9; 08.12.2006 в 11:28.

  3. Вверх #43
    Постоялец форума Аватар для Пилигрим
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    39
    Сообщений
    1,161
    Репутация
    136
    Цитата Сообщение от Ull9
    а на первый мой вопрос можешь ответить?
    Этот ??
    here is a simplest test of c++

    what value of i will be, after the following code?

    int i=1;
    i=i+++i;
    i+++i эквивалентно (i++)+i
    ответ писать ??
    у меня еще таких штук восемь.
    если да, то контракт у тебя в кармане.
    хм .. я всегда считал, что на собеседовании вопросы задают посущественнее..
    или тут вся соль в слове "контракт"

  4. Вверх #44
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Цитата Сообщение от Пилигрим
    Этот ??
    i+++i эквивалентно (i++)+i
    ответ писать ??
    напиши ответ, напиши.
    а я посмотрю, посчитаю сам и проверю.

  5. Вверх #45
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Цитата Сообщение от Пилигрим
    хм .. я всегда считал, что на собеседовании вопросы задают посущественнее..
    а ты ответь сначала, а потом будешь судить о существенности вопроса.

  6. Вверх #46
    Постоялец форума Аватар для Пилигрим
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    39
    Сообщений
    1,161
    Репутация
    136
    Цитата Сообщение от Ull9
    напиши ответ, напиши.
    а я посмотрю, посчитаю сам и проверю.
    тогда выполняю роль дебаггера :
    int i=1;
    i=i+++i разбивается на следущие этапы:
    i++ - результат =1, i после этой операции =2
    далее
    1+2
    и того
    "value of i will be" 3.
    З.Ы. на такие вещи, как ни странно, у нас в универе еще на 1-ом курсе на лекция обращали внимание...
    З.Ы.Ы. блин какой же хреновый резалт выходит, когда надо что-то СРОЧНО написать на ++, а последнюю прогу на ++ писал почти пол года назад...
    а ты ответь сначала, а потом будешь судить о существенности вопроса.
    Существенность этого вопроса - знание приоритетов операций в ++(уровней которых, если мне не изменят моск, 11 кажись в ++)

  7. Вверх #47
    Частый гость Аватар для Hunter_83
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    42
    Сообщений
    917
    Репутация
    216
    Подскажите пожалуйста где можно достать исходник IDEA на VSC++? Если у кого-нибудь есть сбросьте плиз на ящик.

  8. Вверх #48
    Посетитель
    Пол
    Мужской
    Сообщений
    110
    Репутация
    16
    Цитата Сообщение от Ull9
    Константин, правильно.
    вот еще ситуация когда он не будет работать
    int j,i=1;
    j=MAX(i,++i);

    а на первый мой вопрос можешь ответить?
    у меня еще таких штук восемь.
    если да, то контракт у тебя в кармане.
    Попробую))

    here is a simplest test of c++

    what value of i will be, after the following code?

    int i=1;
    i=i+++i;

    Интересная ситуация, и дело здесь не только в приоритете, но и в разбивке при лексическом анализе. Честно говоря, я только смутно что-то помнил об этом, и засомневался в решении Piligrim. Этот пример заставил меня скачать стандарт iso c++
    http://anatolix.naumen.ru/files/books/CPPStandard2003.zip
    страница 11(по оглавлению стандарта)

    В общем, если у нас непрерывная строка - i+++i, то после "i" следующий обрабатываемый токен - максимальный, который можно сформировать;
    то есть i+++i = i++ + i;
    чтобы наглядно убедиться в этом,
    int i = 2
    int a = 12
    i = a+++i;
    cout <<"a = " <<a<<"i = "<<i<<endl;
    a = 13 i = 14


    решение Piligrim даёт правильный ответ, но по поводу приоритетов :
    тогда выполняю роль дебаггера :
    int i=1;
    i=i+++i разбивается на следущие этапы:
    i++ - результат =1, i после этой операции =2
    далее
    1+2
    и того
    "value of i will be" 3.
    насколько я понимаю, вначале вычисляеться
    1+1, затем после выражения инкремент i: 2+1;
    здесь это не имеет значения, но в приведённом мной примере a+++i твой порядок вычислений приведёт к неверному результату :
    a++ - результат = 12, после этой операции 13
    далее
    13 + 2
    и того
    "value of i will be" 15, откомпилированная программа выдаст другой результат
    Последний раз редактировалось Konstantin.od; 09.12.2006 в 02:06.

  9. Вверх #49
    Постоялец форума Аватар для Пилигрим
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    39
    Сообщений
    1,161
    Репутация
    136
    Цитата Сообщение от Hunter_83
    Подскажите пожалуйста где можно достать исходник IDEA на VSC++? Если у кого-нибудь есть сбросьте плиз на ящик.
    мне тоже интересно, где сожно скачать исходники IDEA, которая продаеть по 400$ (если имелось ввиду IntelliJ IDEA)
    Интересная ситуация, и дело здесь не только в приоритете, но и в разбивке при лексическом анализе. Честно говоря, я только смутно что-то помнил об этом, и засомневался в решении Piligrim. Этот пример заставил меня скачать стандарт iso c++
    ну так я стандарт iso c++ не курил, а всего лишь Страуструпа..
    Теперь буду знать правильный ответ на такой вопрос.
    Ull9 жги дальше

  10. Вверх #50
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Ребята, вы оба неправильно ответили на этот вопрос, вы оба срезались.

    итак смотрим
    i=i+++i,
    вы правильно разболи это на
    (i++) + i,
    но дальше вы допускаете оба ошибку
    в соответствии с (великим, святым) стандартом языка с++.компилятор свободен в порядке вычесления левого аргумента и правого аргумента. Т.е он сначала может выполнить i++, затем i, затем сложить оба значения. А может поступить наоборот
    сначала i, затем i++, затем сложить. резуьтат будет разный.

    правильный ответ звучит так. эта операция даст неопределенный результат.
    может 2 может 3.

    все, срезались учите стандарт.
    Последний раз редактировалось Ull9; 09.12.2006 в 11:43.

  11. Вверх #51
    Новичок
    Пол
    Мужской
    Возраст
    42
    Сообщений
    68
    Репутация
    12
    Ull9, Если бы я был у тебя на собеседовании, то тебе пришлось ответить на один маленький вопрос. Раз ты говоришь, что стандарт позволяет двоякое толкования выражения, то в топку стандарт. (извините за такое слово). Хотя я не знаю ни одного компилятора, который бы выполнял стандарт.
    Поэтому, нужно говорить так: так как стандарт допускает разное толкование, но компиляторы (точнее их создатели) вольны выбирать одно с решений. (Компилятор, который дает при каждой компиляции разный результат нам не нужен.) Поэтому говорим так. Компилятор от MS (VS2005) даст результат 3. Тоже запоет нам и Борландовский (BDS2006).
    Это навело меня на одну мысль. Я вспомнил книгу Страуструпа, где было сказано, что если есть неоднозначность трактовки, то применяется правило "слева направо". Тогда все стает на свои места. Жаль я сейчас не могу проверить другие компиляторы, но при первой возможности сделаю. Хочеться попробывать скомпилить под FreeBSD (gcc).
    раз так хорошо знаеш стандарты и поведение компиляторов, расскажи о результате следующего выражения
    int i=1;
    int j=10;
    int q=i+++++j;

  12. Вверх #52
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    Цитата Сообщение от Ull9
    вот еще ситуация когда он не будет работать
    int j,i=1;
    j=MAX(i,++i);

    а на первый мой вопрос можешь ответить?
    странно, что ты можешь ответить на первый вопрос, но приводишь тут пример, который не будет работать по той же самой причине, даже если MAX будет функцией

  13. Вверх #53
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    Цитата Сообщение от KoVadim
    расскажи о результате следующего выражения
    int i=1;
    int j=10;
    int q=i+++++j;
    если тебя интересует разбивка на лексемы, то таким же, как и i ++ ++ + j
    а если интересно, почему это не соберется, то потому, что постфиксный инкремент получает lvalue, а возвращает rvalue

  14. Вверх #54
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    момент, пока я ездил в универмаг вы тут наворочали, давайте попорядку.

    Цитата Сообщение от KoVadim
    Ull9, Если бы я был у тебя на собеседовании, то тебе пришлось ответить на один маленький вопрос. Раз ты говоришь, что стандарт позволяет двоякое толкования выражения, то в топку стандарт. (извините за такое слово).;
    я не говорил что стандарт позволяет двоякое толкование, я говорил что стандарт оставляет на усмотрение компилятора, что выполнить первым.
    как компилятор захочет, исходя из своих соображений, так он и поступит.программист, должен это знать и писать код так, чтоб у компилятора небыло возможности создать неправильный результат.
    например

    int i = 1;
    int j = i++;
    i=i+j;
    при таком коде компилятор даст всегда однозначный результат.

    Цитата Сообщение от KoVadim
    Хотя я не знаю ни одного компилятора, который бы выполнял стандарт.
    Полностью стандарт выполняет кажется цомпилятор фирмы комо. Что касается нашего случая, то многие компиляторы это делают. например
    VS7, gcc. HP aCC.

    Цитата Сообщение от KoVadim
    Поэтому, нужно говорить так: так как стандарт допускает разное толкование, но компиляторы (точнее их создатели) вольны выбирать одно с решений. (Компилятор, который дает при каждой компиляции разный результат нам не нужен.);
    не так! есть одна тонкость. Стандарт оставляет свободу компилятору в принятии решения. Авторы компилятора такую свободу дают ему.

    это означает, что при одних обстоятельствах (контексте) при выражении
    int i = foo() + boo();
    сначала выполнится foo() потом boo();
    при другом контексте эта же самая строка, развернется компилятором подругому. компилятор ради оптимизации свободен как ему это делать.

    Цитата Сообщение от KoVadim
    У Поэтому говорим так. Компилятор от MS (VS2005) даст результат 3. Тоже запоет нам и Борландовский (BDS2006).
    Ты не можешь этого знать, в твоем коде ты создал такой контекст, что компилятор сгенерил код так, нельзя исключать что в другом контексте тот же самый компилятор, возможно несколько строк ниже не сгенерит обратное. еще раз, нужно писать так чтоб компилятор всегда давал один и тот же результат. и ТОЧKА. хватит об этом

  15. Вверх #55
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Цитата Сообщение от pal
    странно, что ты можешь ответить на первый вопрос, но приводишь тут пример, который не будет работать по той же самой причине, даже если MAX будет функцией
    не понял твоей реплики

  16. Вверх #56
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    это ты пробелы передвинул

  17. Вверх #57
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    Цитата Сообщение от Ull9
    не понял твоей реплики
    моя реплика стостояла в том, что если MAX является функцией и не страдает от double evaluation, результат MAX(i,++i) все равно неопределен, потому что аргументы можно вычислить в любом порядке

  18. Вверх #58
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    да верно
    ну можно сказать так
    int i=1,j=2;
    MAX (i++,j);

    здесь уже ошибка. и ошибка именно связаная с природой макроса.
    и кстати МАХ не функция, если уж на то пошло.

  19. Вверх #59
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    вот я и удивлялся, зачем в качестве примера недостатков макросов по сравнению с функциями приводить пример, неработающий и с функциями тоже

  20. Вверх #60
    Не покидает форум Аватар для Ull9
    Пол
    Мужской
    Адрес
    Мюнхен
    Сообщений
    19,028
    Репутация
    1490
    Цитата Сообщение от pal
    вот я и удивлялся, зачем в качестве примера недостатков макросов по сравнению с функциями приводить пример, неработающий и с функциями тоже
    ну а скажи если изменить пример как я до этого показал,
    теперь вопрос.
    какие ты видишь проблемы с макросом?


Ответить в теме
Страница 3 из 10 ПерваяПервая 1 2 3 4 5 ... ПоследняяПоследняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения