| 15.07.2010, 05:53 | |
|
Ответы с готовыми решениями:
1272
Элементарные программы, для лучшего понимания языка...
Литература для лучшего понимания сути программирования |
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
||
| 20.11.2010, 12:57 | ||
|
Мысль читерская, но других нет
Закомментировать его, тогда точно скомпилируется ![]() Если это деструктор, то =0, это чисто синтаксический элемент, значит, бесполезно пытаться сделать каким бы то ни было образом T равным нулю. Если только #define, но тогда вместо <class T> уже будет фигня.
1
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 20.11.2010, 23:39 [ТС] | ||||||
|
Somebody, C #define мысль верная. Надо вспомнить об еще одной директиве препроцессора, которая вернет T значение шаблонного типа.
Добавлено через 8 часов 59 минут Собственно чуть поменяю тот код. Тут он более очевиден что-ли и на любом компиле вызовет ошибки. Задача все та же
0
|
||||||
|
|
|||||||||||
| 22.11.2010, 13:06 | |||||||||||
|
Задача на понимаение работы с плавающими (float point) числами
Дан исходник. Содержимое функции func неизвестно
3
|
|||||||||||
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
| 22.11.2010, 15:15 | |
|
Возможно
return 0.0/0.0.
3
|
|
|
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
|
|
| 22.11.2010, 15:28 | |
|
Читай про not a number
1
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 01.12.2010, 05:30 [ТС] | |
|
Таки решите кто-нибудь в посте 922.
0
|
|
|
|
||||||
| 02.12.2010, 13:14 | ||||||
|
Сразу предупреждаю, что задача сложная.
Имеется тест. Тест явился результатом разбора на большой задаче, с ошибкой в которой мы столкнулись на работе. Конструкция __attribute__((noinline)) запрещает компилятору делать подстановку функции (чтобы на оптимизациях там что-нибудь не схлопнулось). Это самый простой способ, чтобы оптимизации гарантированно не убили интересную ситуацию (чтобы не нужно было бы писать более сложные примеры).
sparc: "gcc" напечатал "0 0" sparc: "gcc -O2" напечатал "0 0" intel: "gcc" напечатал "0 1" intel: "gcc -O2" напечатал "1 1" Объяснить расхождение. Так или иначе при разборе ситуации полезно было бы иметь возможность повторить всё это самому, но, понятное дело, практически ни у кого нет возможности запустить этот код на sparc'е. Вместо sparc'а можно попробовать запустить под виндой при помощи microsoft'овского или borland'овского комплятора. Я не знаю, какие они выдадут результаты, но в любом случае что-то с чем-то не совпадёт (потому как мы уже видим три разных результата) Поскольку задача слишком сложная для начинающего, то оставляю подсказку. Задачу помещаю в первую очередь для того, чтобы на весьма коротком примере, можно было бы пронаблюдать проблему переноса программы с одной архитектуры на другую Подсказка
SPARC'овский gcc работает правильно. Intel'овский gcc косячит и выдаёт неправильный результат (без оптимизаций он ошибается только в одном примере, с оптимизациями - в обоих)
2
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 02.12.2010, 14:36 [ТС] | |
|
Evg, Студия сие компилировать не решилась. Не в Си, не в CPP.
0
|
|
|
C/C++
93 / 93 / 18
Регистрация: 01.07.2010
Сообщений: 281
|
|
| 02.12.2010, 15:06 | |
|
0
|
|
|
|
|||
| 02.12.2010, 15:10 | |||
|
Добавлено через 1 минуту
0
|
|||
|
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
|
|
| 02.12.2010, 15:10 | |
|
ForEveR, у меня билдер тоже отказался компилировать, пришлось __attribute__((noinline)) убрать. Выдает 0 1.
0
|
|
|
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
|
||
| 02.12.2010, 16:51 | ||
|
Думается так
Ковыряние дизассемблерного кода и справочника по ассемблеру показало следующее. Код для обоих функций генерируется практически идентичный за некоторым исключением. В обоих случаях ll приводится к вещественному типу и результат помещаеться в регистр сопроцессора. Далее вторая функция использует непосредственно регистр, а первая - преобразованное ll (сохраняет d1) записывает в стек. При этом в 64 бита стека запихивается 80-ти битный регистр сопроцессора, достигается это путем округления числа мантиссы до значения, соответствующего размеру мантиссы приемника. Вот из-за этого округления и объясняется, на мой взгляд, разница в работе этих функций. Только вот может я что-то проглядел или недопонял, но мне кажется intel'ая верся работает правильно, а spark'ая - нет.
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 02.12.2010, 16:58 [ТС] | |
|
MS без оптимизаций выдает 0 1
0
|
|
|
|
|
| 02.12.2010, 19:03 | |
|
to kazak
В общем-то написано всё правильно. Но на самом деле правильно работает sparc'овская версия. Потому что по стандарту в преобразовании int64->float64 должна быть потеря точности. А в коде intel'а при преобразовании int64->float80 потери не происходит. Т.е. intel'овский код работает с более высокой точностью, но это идёт в противоречии со стандартом. Возможно, что это какое-то соглашение для платформы Intel, что допустимо по умолчанию работать таким образом. Наверняка есть какие-то опции, по которым код начинает работать в строгом соответсвии со стандартом (но становится более медленным)
2
|
|
|
|
||||||
| 02.12.2010, 21:19 | ||||||
|
Evg, хм...
0
|
||||||
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 02.12.2010, 22:17 | |
|
Вечер добрый
![]() Ребят, с помощью какого алгоритма решается эта задача? Дано N камней и их массы Wb ... Wn. Написать программу, которая распределяет камни на две кучи так, чтобы разница между массами куч была минимальной. Простым перебором, или еще каким-то образом?
0
|
|
| 02.12.2010, 22:17 | |
|
Помогаю со студенческими работами здесь
940
Набор задачь для тренировки и улучшения понимания программирования Проверить на правильность и закомментировать весь код для лучшего понимания Нужны задачи для тренировки
Нужны задачи для тренировки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|