| 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 | |
|
Набор задачь для тренировки и улучшения понимания программирования Проверить на правильность и закомментировать весь код для лучшего понимания Нужны задачи для тренировки
Нужны задачи для тренировки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|