| 15.07.2010, 05:53 | |
|
Ответы с готовыми решениями:
1272
Элементарные программы, для лучшего понимания языка...
Литература для лучшего понимания сути программирования |
| 03.08.2010, 22:41 | |
|
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
| 03.08.2010, 22:42 | |
|
0
|
|
|
|
||||||
| 03.08.2010, 22:46 | ||||||
|
как вариант еще одно подобное извращение
0
|
||||||
|
|
||||||
| 03.08.2010, 22:47 | ||||||
|
Тогда задача на тему "хакерства" (с вышеобозначенной позиции). Данный код на некоторых компиляторах даёт разный результат в режиме с оптимизациями и без оптимизаций. Это означает, что код некорректный. В чём его некорректность?
0
|
||||||
|
|
|
| 03.08.2010, 23:50 | |
|
некорректность
По стандарту Си операция разности указателей (а может и вся поинтерная арифметика) определена только для указателей, смотрящих на один и тот же объект. Под словом "объект" здесь подразумевается то, что на бытовом уровне называется "переменная", а не "объект Си++". Как следствие итоговое значение delta с точки зрения стандарта undefined
На двух компиляторах с мощным контекстным анализатором и какими-то хитрыми аппаратными фичами тест отработал некорректно. Тест был немного в другом виде, но для простоты оставил таким. Что за компиляторы - толком не помню, ибо давно было. Но один из них вроде бы был Intel'овский компилятор для Itanium'а. Каким был второй компилятор - никак не вспомню.
5
|
|
|
|
||||||
| 04.08.2010, 00:06 | ||||||
|
получается, что такой к примеру код тоже не корректен?
0
|
||||||
|
|
|||||||
| 04.08.2010, 00:11 | |||||||
|
По поводу теста. Вспомнил, в чём там была проблема. Более "корректный" исходник выглядит так
Некорректность
В строках 13 и 14 имеются две операции обращения в память: запись по указателю *ptr и чтение глобальной переменной "b". С точки зрения стандарта получается, что эти два обращения в память независимы, поскольку запись делается в объект "a" (но по факту запись делается в объект "b"), а чтение объекта "b". У потому продвинутый компилятор операции чтения и записи может поменять местами (поскольку с точки зрения стандарта эти два обращения в память не конфликтуют между собой). Операции чтения из памяти как правило компиляторы ставят как можно раньше по исполнению (потому что обращение в память - медленная операция).
Добавлено через 1 минуту Добавлено через 1 минуту "Смотрят на один и тот же" наверно криво выразился. Скорее "смотрят вовнутрь одного и того же объекта"
4
|
|||||||
|
|
||
| 04.08.2010, 00:19 | ||
|
Слабенький анализатор на gcc видит запись по неизвестному указателю (поскольку адрес для записи вычисляется) и чтение конкретного объекта. Поскольку указатель может смотреть куда угодно, то он считает, что эти две операции могут конфликтовать и переставлять чтение и запись не будет. Если завтра не забуду, попробую на работе Sun'овский или Intel'овский компилятор толкнуть
2
|
||
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 04.08.2010, 09:15 | |
|
А вот ещё: Напишите программу, которая будет менять значения ТРЁХ переменных a, b и c (так что а(нов.)=/=а(стар.) b(нов.)=/=b(стар.) c(нов.)=/=c(стар.)) НЕ ИСПОЛЬЗУЯ ДОП. ПЕРЕМЕННЫХ.
Добавлено через 1 минуту Напишите программу умножения двух чисел ЛЮБЫМ способом. условие только одно - НИГДЕ не использовать оператор *.
0
|
|
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|||||||||||||
| 04.08.2010, 10:27 | |||||||||||||
1
|
|||||||||||||
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
||||||
| 04.08.2010, 10:35 | ||||||
|
neske, вот решение на умножение без использования оператора *. ваши решения вполне подойдут, но вот моё:
я слышал что задачку также можно решить используя битовые операции, но я пока до этого не "дорос" если кто знает как, выложите плиз
1
|
||||||
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
||||||
| 04.08.2010, 10:36 | ||||||
|
Да, вы правы.
2
|
||||||
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 04.08.2010, 10:37 | |
|
neske, в принципе такая задачка уже была, но на две переменные, так что я ступил выложив её... если знаете что нить интересное, напишите пожалуйста...
1
|
|
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 04.08.2010, 10:40 | |
|
Не знаю, к сожалению.
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||||||
| 04.08.2010, 10:44 | |||||||
3
|
|||||||
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 04.08.2010, 10:46 | |
|
Nameless One, а чем отличается return EXIT_SUCCESS от return 0?
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 04.08.2010, 10:48 | ||
|
3
|
||
| 04.08.2010, 10:48 | |
|
Помогаю со студенческими работами здесь
500
Набор задачь для тренировки и улучшения понимания программирования Проверить на правильность и закомментировать весь код для лучшего понимания Нужны задачи для тренировки
Нужны задачи для тренировки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|