Fuhrer писал(а):И действительно, не бросается...
Всё таки буду рад, если подскажете магическую природу условия "q+2!=!!(q+2)", я её не могу осилить.
А ответ, как я понимаю будет: первый. Именно в первом варианте условие таково, что будет всегда выполняться в силу свойств самой переменной.
Вы правильно зацепились за беззнаковый тип, но продумали немного не до конца. Когда 0 уменьшается на 1, то происходит переполнение, при этом получается значение 4294967295. Если сравнить его с -1, то получим что они равны (приведение знакового типа к беззнаковому при смешении). А вот во втором варианте, очевидно что любое число из диапазона 0...4294967295 больше или равно 0, поэтому это вечный цикл. Это именно то, о чём я писал - в записи, которая кажется очевидной, труднее всего найти ошибку... В третьем варианте используется два логических отрицания:
Код: Выделить всё
x !x !!x x!=!!x
0 1 0 0
1 0 1 0
другое 0 1 1
Фактически выражение x != !!x ложно только для двух значений x, а именно 0 и 1. В данном случае цикл завершается когда q+2==1, т. е. при q==-1. В четвёртом варианте q+1 обращается в 0 при q==-1.
Если бы q было описано как
то работали бы все 4 варианта...
Fuhrer писал(а):Задачка понравилась, спасибо. А Си я действительно не знаю, никогда не изучал. Я бейсер, если можно так выразится. Да и то, весьма посредственный.
Си мне очень нравится за предоставляемую свободу действий и многие возможности, которых нет в других языках. Всегда пишу на нём консольные приложения... Однако, программы с формами я пишу на Бейсике. Из .NET'овских языков он лучший! Если Вы не заметили, все мои программы на этом форуме именно на нём.
Fuhrer писал(а):Вообще-то меня волнует что мы здесь флуд разводим не по теме. Это обычно наказуемо, да и не красиво это. Люди ведь сюда ходят об интерфейсе читать. Может хоть что-то по теме выдадим? Или перенесём разговор в другую ветку?
Всего несколько сообщений... Б
ольшая часть всё-таки по теме. А подходящей ветки здесь всё равно нет...
Fuhrer писал(а):Мне очень понравился диалог удаления: и просто, и в корзину, и со стиранием, и эти две милые кнопки внизу для появления чекбокса и комбобокса, и сохранение настроек, и всё такое. Правда, понравилось, я сам так люблю: сложно, и куча мелких кнопочек. Но возникает вопрос: зачем? Зачем создавать двойное количество элементов управления, если ими никто не пользуется? Кто-то может объяснить?
А почему Вы считаете, что ими никто не пользуется? Хотя действительно немного необычно выносить настройки в сам диалог. Можно и с диалогом копирования сделать то же самое
- есть флажок/нет флажка.
Fuhrer писал(а):Qwertiy писал(а):Все диски были успешно созданы, правда медленнее чем обычно.
А разве это плохо? Основная задача - запретить запись в системные каталоги, да и вообще куда не следует. Или Вы намекаете, что через эти созданные диски можно получить прямой доступ, минуя песочницу?
Не знаю. Но если сделать вот так
Run As.png
то получаю результат "Нет доступа: C:\Temp" 26 раз. Диски, естественно, при этом не создаются.
Fuhrer писал(а):Кстати, что за команда System?
system - это передача строки на выполнение, как если бы она была введена в командной строке.
Кстати, в Си регистр имеет значение. Так что команды System не существует. Правда, в VS в Си существует такое пространство имён для .NET'овских классов... Но .NET в Си - это просто ужас...
У вас нет необходимых прав для просмотра вложений в этом сообщении.