Вопрос № 101108: Привет! Как на borland c++ builder поставить общий фоновый цвет, как для формы, так и для компонентов TImage? То есть по умолчанию, когда в timage не загружен рисунок - его цвет - белый... как это изменить?...Вопрос № 101119: Здравствуйте! Подскажите, где и какую книгу по Си взять для самостоятель изучающего программирование.
А если кто-то может, то подскажите решение задачи, а то застряла в книге:
Для массива из 20 целых чисел со значениями от 1 до 20 надо написа...Вопрос № 101172: Привет все м я взорвусь если не пойму ПОЧЕМУ:
int i = 5;
i = ++i + ++i;
Вопрос: Чему равно i?
ответ
14
ПОчему 14!!!...Вопрос № 101190: Уважаемые експерты у меня возник вопрос.
Файл можно скопировать спомощью функции ::CopyFileA().
Как скопировать папку ? Есть ли функцыя?
Или как организовать копирование папки?
...Вопрос № 101225: Привет всем! Есть ли в bcb какой-нибудь компонент, позволяющий устанавливать на определенные действия нормальные хот кии (f1,esc, например, а не ctrl+o Ж))?
...
Вопрос № 101.108
Привет! Как на borland c++ builder поставить общий фоновый цвет, как для формы, так и для компонентов TImage? То есть по умолчанию, когда в timage не загружен рисунок - его цвет - белый... как это изменить?
Ответ отправил: Sov (статус: 7-ой класс)
Ответ отправлен: 07.09.2007, 05:41 Оценка за ответ: 3
Вопрос № 101.119
Здравствуйте! Подскажите, где и какую книгу по Си взять для самостоятель изучающего программирование.
А если кто-то может, то подскажите решение задачи, а то застряла в книге:
Для массива из 20 целых чисел со значениями от 1 до 20 надо написать функцию, разрабатывающую элементы массива произвольным образом, а затем создать случайное число из того же диапазона и найти позицию этого случайного числа в массиве.
Если у кого-то получиться, то пожалуйста пришлите с объяснениями на мой email:Helen1402@ya.ru
Отвечает: Терсков Сергей
Здравствуйте, Елена Стоилова!
По литературе С++ было достаточно много вопросов. Например вопрос № 98397. В ответах вы найдете достаточно много источников. А что касается вашей задачи, то смотрите в приложении два варианта. Один с использованием собственных функций, а второй с использованием STL.
Приложение:
Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 07.09.2007, 05:00 Оценка за ответ: 5 Комментарий оценки: Большое спасибо!
Сейчас наберу и попробую разобрать.
Вопрос № 101.172
Привет все м я взорвусь если не пойму ПОЧЕМУ:
int i = 5;
i = ++i + ++i;
Вопрос: Чему равно i?
ответ
14
ПОчему 14!!!
Отправлен: 07.09.2007, 10:55
Вопрос задал: Tatarin (статус: 2-ой класс)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 8)
Отвечает: Sergey A. Wedensky
Здравствуйте, Tatarin!
Но Вам ведь уже объясняли, если не ошибаюсь.
Компилятор сначала вычисляет операнды. Выражение
++i
означает, что надо увеличить на 1 значение i, а уже затем использовать его в качестве операнда. Это проделывается дважды - для каждого из операндов. Т.е. компилятор дважды увеличивает значение i на единицу (после чего оно становится равным 7), а затем использует значение i (которое теперь равно 7) в качестве обоих операндов бинарной операции +. В результате сложения получается 7+7=14.
Для наглядности приведу еще раз ассемблерный код (кто-то это уже тоже делал, кажется), сгенерированный компилятором VisualC++ 2005 из Вашего кода.
Приложение:
Ответ отправил: Sergey A. Wedensky (статус: Студент)
Ответ отправлен: 07.09.2007, 11:10
Отвечает: Виктор Пырлик
Здравствуйте, Tatarin!
1. ++i = 6
2. ++i = 7
i = 7
3. i + i = 7 + 7 = 14
на первом шаге - увеличили i а 1 (стало i = 6)
на втором шаге опять увеличили i на 1 (стало i = 7)
и.. потом идет просто сложение одного и того же числа i (i = 7).
Это не разные переменные! вы работаете с одним адресом памяти (с одной переменной). Поэтому, не может быть в один момент i = 6 и i = 7.
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 07.09.2007, 11:22
Отвечает: Shurka
Здравствуйте, Tatarin!
Потому что сначала делается компилятор избавляется от ++ - ов i == 7. Потом ему остается вычислить i = i + i. Такова семантика C++.
Ответ отправил: Shurka (статус: 3-ий класс)
Ответ отправлен: 07.09.2007, 16:35
Отвечает: Sema
Здравствуйте, Tatarin!
Оказалось просто как все гениальное...
сначала Вы делаете левую операцию ++х в ячецку памяти по адресу х записывается 6
далее делается правый ++х
и в ту же ячейку памяти пишется уже 7
а потом получается 7+7 = 14 т.к. первое и второе слагаемое обращаются к одной ячейки памяти...
Ответ отправил: Sema (статус: 3-ий класс)
Ответ отправлен: 07.09.2007, 17:22
Отвечает: kool
Здравствуйте, Tatarin!
Вроде был уже этот вопрос.
Выяснили, что сначала значение i увеличивается
на две 1, т.е. на 2, получаем i=7, а затем
складываются два значения i+i=14. Такова жизнь и
синтаксис C++. можно принять как данность и не
заморачиваться, хотя вроде все логично.
Удачи!
--------- I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 07.09.2007, 19:16
Вопрос № 101.190
Уважаемые експерты у меня возник вопрос.
Файл можно скопировать спомощью функции ::CopyFileA().
Как скопировать папку ? Есть ли функцыя?
Или как организовать копирование папки?
Отправлен: 07.09.2007, 13:53
Вопрос задал: Tadey (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Rockie
Здравствуйте, Tadey!
Можно, создавая папку и вызывая команду копирования через system("md ..."). и system("xcopy..."). Синтаксис команд можно посмотреть, набрав в консоли xcopy /? или md /?. Но в этом случае есть подозрение, что будет появляться окно консоли. Если оно мешает - можно написать функцию копирования вручную, так как функции создания дирректории и копирования файлов в с++ есть(MakeDirectory, mkdir, в зависимости от среды).
Пример "ручного" копирования папки на С++ есть тут:
http://articles.org.ru/cfaq/index.php?qid=2378&catid=64
Ответ отправил: Rockie (статус: 3-ий класс)
Ответ отправлен: 07.09.2007, 22:50 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ.
Вопрос № 101.225
Привет всем! Есть ли в bcb какой-нибудь компонент, позволяющий устанавливать на определенные действия нормальные хот кии (f1,esc, например, а не ctrl+o Ж))?
Отвечает: Irina Surina
Здравствуйте, Попов Максим алексеевич!
Создаете TAction. Дальше Properties->ShortCut->Выбираете или вводите клав. (Esc вводится. f1 есть в списке)
Ответ отправила: Irina Surina (статус: 1-ый класс)
Ответ отправлен: 08.09.2007, 12:33