Вопрос № 120245: Здравствуйте, уважаемые эксперты!
В модальном диалоговом окне (DoModal) есть элемент управления CEdit
В обычном случае, если пользователь поставил курсор в CEdit ввел цифры и нажал на Enter, то диалог закроется.
Мне очень нужно, чтобы по ...Вопрос № 120262: Сформировать матрицу B(M,N) элементами которой являются случайные числа, равномерно распре¬деленные в интервале (-5,7). Переставляя её строки и столбцы, добиться того, чтобы наибольший элемент матрицы оказался в правом нижнем углу. ...Вопрос № 120278: Здравствуйте уважаемые эксперты!
Помогите пожалуйста решить задачу. Необходимо вывесть на экран все
уникальные элементы одномерного массива например a[7]={1,2,1,3,4,4,1}; Зараннее благодарен....Вопрос № 120324: Здравствуйте!
помогите написать программу, которая выводит содержимое массива наоборот.
...Вопрос № 120325: Здравствуйте!
сможет ли кто -нибудь мне объяснить как задавать условие к программе.
на что в первую очередь надо ориентироваться.
не могу сдвинуться с места никак. вроде бы все понимаю, а как дело доходит к программам. то что-то никак.<br...Вопрос № 120336: Добрый вечер уважаемые специалисты. Очень сильно нужна ваша помощь в решении программ. По идее вроде бы все понятно но в тоже же время сделать не получается. Всем кто поможет высокие оценки гарантирую ;)
1. Пользователь с клавиатуры вводит строк...Вопрос № 120338: Здраствуйте уважаемые эксперты. Прошу помочь с праграммой на языке С. Я ее в приложении написал для удобного чтения!
..Вопрос № 120343: Здравствуйте. Помогите изменить программу в приложении таким образом, чтобы в paint'е окна по нажатию кнопки ("press me") рисовалась линия. Координаты линии неважно какие, главное чтоб было видно....
Вопрос № 120.245
Здравствуйте, уважаемые эксперты!
В модальном диалоговом окне (DoModal) есть элемент управления CEdit
В обычном случае, если пользователь поставил курсор в CEdit ввел цифры и нажал на Enter, то диалог закроется.
Мне очень нужно, чтобы по Enter диалог не закрывался, а, например, диалог что-то делал, и ставил фокус ввода на следующий элемент управления. После этого если нажать на Enter, то можно закрыть диалог.
Как такое можно сделать?
Если возможно, приведите, пожалуйста, какие-нибудь примеры реализации.
Если есть подобные примеры, очень прошу ссылку.
Спасибо за внимание, пока.
Добавьте в класс диалога (наследника CDialog) метод OnOK().
virtual void OnOK();
Этот метод вызывается при нажатии на кнопку Ok, или на клавишу Enter. В нем вы можите выполнять любые действия, а для закрытия диалога вызовите CDialog::OnOK().
ps: При нажатии на кнопку Cancel (Отмена) или клавишу Esc вызывается метод OnCancel().
--------- нет ничего невозможного
Ответ отправил: Aristos (статус: 9-ый класс)
Ответ отправлен: 26.01.2008, 12:55
Отвечает: Сандров Алекс
Здравствуйте, Александр Лагий!
Нужно сделать обработчик для диалога
CMyDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
if(wParam == IDOK) // это ентер
{
// смотрим, где фокус и делаем нужные приседания
}
//....
}
Ответ отправил: Сандров Алекс (статус: 2-ой класс)
Ответ отправлен: 28.01.2008, 06:12
Вопрос № 120.262
Сформировать матрицу B(M,N) элементами которой являются случайные числа, равномерно распре¬деленные в интервале (-5,7). Переставляя её строки и столбцы, добиться того, чтобы наибольший элемент матрицы оказался в правом нижнем углу.
Отправлен: 26.01.2008, 14:15
Вопрос задал: LAN1988 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Терсков Сергей
Здравствуйте, LAN1988!
Вариант решения вашей задачи смотрите в приложении.
Приложение:
Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 28.01.2008, 04:04 Оценка за ответ: 5
Вопрос № 120.278
Здравствуйте уважаемые эксперты!
Помогите пожалуйста решить задачу. Необходимо вывесть на экран все
уникальные элементы одномерного массива например a[7]={1,2,1,3,4,4,1}; Зараннее благодарен.
Отвечает: X-men
Здравствуйте, Мокренко Игорь !
Вот, пожалуста.
Написана в среде MS Visual C++ 2005.
Приложение:
Ответ отправил: X-men (статус: 10-ый класс)
Ответ отправлен: 26.01.2008, 17:31 Оценка за ответ: 5 Комментарий оценки: Большое спасибо X-men! Все замечательно работает.
Вопрос № 120.324
Здравствуйте!
помогите написать программу, которая выводит содержимое массива наоборот.
Отвечает: X-men
Здравствуйте, Рак Оксана !
В этой программе нет ничего сложного.
В приложении - программа на MS Visual C++.
Приложение:
Ответ отправил: X-men (статус: 10-ый класс)
Ответ отправлен: 26.01.2008, 22:06 Оценка за ответ: 5
Отвечает: Касаткин Сергей Сергеевич
Здравствуйте, Рак Оксана !
В пирложении содержится интерисующий вас код. Хочу заметить, что я использовал стандартные функции STL.
Приложение:
--------- WIT BEYOND MEASURE IS MAN’S GREATEST TREASURE.
Отвечает: Dr_Andrew
Здравствуйте, Рак Оксана !
В приложении - ещё одно решение с использованием STL. Без algorithm, но зато с использованием векторов.
Приложение:
Ответ отправил: Dr_Andrew (статус: 5-ый класс)
Ответ отправлен: 27.01.2008, 07:14
Вопрос № 120.325
Здравствуйте!
сможет ли кто -нибудь мне объяснить как задавать условие к программе.
на что в первую очередь надо ориентироваться.
не могу сдвинуться с места никак. вроде бы все понимаю, а как дело доходит к программам. то что-то никак.
Видно ли с рисунка сразу как задать условие. Хотя бы даже в том же треугольнике или ромбе?
Отвечает: X-men
Здравствуйте, Рак Оксана !
Давайте я вам попробую объяснить. Смотрите, всё просто: в программировании есть такая конструкция
if (условие) { оператор_1; оператор_2; ...; оператор_n; }
else { оператор_1; оператор_2; ...; оператор_n; }
Когда программа доходит до этой строчки, то сначала проверяется условие. Оно проверяется на истину, т.е. если условие "правильное" (например 1 < 5), то выполняется код, заключенный в фигурные скобки (который стоит сразу после условия). Если условие "неправильное" (например 1 > 5), то выполняется код в блоке else (код_2). Блок else необязателен.
В блок-схемах этот оператор обозначается с помощью ромбика, в котором написано это самое условие. От этого ромба отходят 2 линии: у одной должно быть название ДА, у другой - НЕТ, другими словами ИСТИНА или ЛОЖЬ.
Вот как это должно выглядеть (рисунок без операторов)
http://konsulytant-inf.narod.ru/progr/image002.gif
Ответ отправил: X-men (статус: 10-ый класс)
Ответ отправлен: 26.01.2008, 22:33 Оценка за ответ: 4
Отвечает: Касаткин Сергей Сергеевич
Здравствуйте, Рак Оксана !
Для задания условия, а если точнее для разветвления работы программы служит оператор if(<логическое_выражение>){}else{}. Где на месте логического выражения ставится некоторое условие. Например если вам нужно проверить является ли число введённое с клавиатуры нулём, в случае деления например, т.к. делить на ноль нельзя. То сделать это можно следующим образом. Пусть число хранится в переменной а.
if(a==0)/*Для краткости можно использовать if(!a) результат тот же, а писать меньше. Ведь программисты такие лентяи. :-)*/
{
//дейсвия при а=0
}
else//если а не 0
{
//действия при а!=0
}
Также можно комбинировать условия. Т.е. использовать составное условие. При этом && - логическое и, || - логическое или.
if(a==1&&b==1||c)//Если a=1 и b=1 или с!=0
Кроме всего этого существует ещё оператор switch(<значение>). Он используется когда нам нужно выбрать действие совершаемое при определённом значении переменной. Написано конечно туманно, постараюсь объяснить на примере.
int a=1;
switch(a)
{
case 1:cout<<"a=1";break;//Сюда мы попадём и выведем на экран a=1
case 2:cout<<"a=2";break;
case 3:cout<<"a=3";break;
default:cout<<"Не удалось определить значение а!";break;
};
Надеюсь вам стало немного понятнее. И главное всё просто! Нужно только разобраться. ;-)
--------- WIT BEYOND MEASURE IS MAN’S GREATEST TREASURE.
Ответ отправил: Касаткин Сергей Сергеевич (статус: 1-ый класс)
Ответ отправлен: 26.01.2008, 23:02 Оценка за ответ: 5
bool bVar;
int a;
int b;
//
//...
if(true == bVar)
{
a = 4;
}
else
{
a = 5;
}
//...
if(5 == a)
{
b = 3;
}
else
{
b = a;
bVar = FALSE;
}
Ответ отправил: Сандров Алекс (статус: 2-ой класс)
Ответ отправлен: 28.01.2008, 06:17 Оценка за ответ: 4
Отвечает: Lang21
Здравствуйте, Рак Оксана !
У Вас были задачи, где нужно было выводить на экран с помощью звездочек разные фигуры. Все они решаются одним способом. Но для этого нужно правильно записать условие, чтобы получить заданную фигуру. Как мне кажется, ваш вопрос заключается в том, как это сделать.
Попробую вам помочь в этом, в дополнение к уже сказанному об операторе if - else.
Фрагмент программы:
for (i=0; i<10; i++ ) {
for (j=0; j<10; j++) {
cout << '*';
}
cout << endl;
}
выведет квадрат из звездочек (размером 10х10). В процессе вывода:
i - обозначает номер выводимой строки сверху вниз,
j - номер позиции символа в строке слева направо.
То есть, символы нумеруются так:
_______ j
|
|
|
i
Если вставить в программу условие:
for (i=0; i<10; i++ ) {
for (j=0; j<10; j++) {
if (условие)
cout << '*';
else
cout << ' ';
}
cout << endl;
}
то, когда условие выполняется, будет выведена звездочка, когда не выполняется - пробел.
Так можно получить любую фигуру, выбирая условие для i и j.
Например, если в качастве условия в скобках записать i<5,выведется верхняя половина квадрата (строки с 0 по 4), если записать i>=5 - нижняя (строки с 5 по 9)
Аналогично, j<5 выведет левую а j >= 5 - правую половину квадрата.
Условия можно комбинировать, например i<5 && j<5 означает, что звездочка выведется только, если выполняются оба условия, то есть, это условие выделит верхнюю левую четверть квадрата (пересечение прямоугольников). Если записать i<5 || j<5 - условие будет выполнено, если выполнено хотя бы одно из условй, то есть, если точка находится или в верхней половине квадрата, или в левой (получится квадрат без правой нижней четверти).
И так далее.
Для треугольников чуть-чуть сложнее: условие i+j<10 означает, что в нулевой строке (i=0)
будут выведены все 10 символов "*" в первой (i=1) - первые девять, во второй - первые 8
и т. д. Таким образом получится прямоугольный треугольник, занимающий левую верхнюю часть квадрата. Аналогично, условие i+j>10 даст правую нижнюю часть. Аналогично,
i>j - соответствует левому нижнему, а i<j - правому верхнему треугольнику. Эти условия также можно комбинировать, например (i+j<10)&&(i<j) или (i+j>10)||(i<j), выбирая объединения или пересечения треугольников.
Если трудности именно в этом, проще всего поэкспериментировать с такой программой для разных условий, и посмотреть, что получается.
Ответ отправил: Lang21 (статус: 4-ый класс)
Ответ отправлен: 30.01.2008, 16:53 Оценка за ответ: 5 Комментарий оценки: Вы правильно поняли мой вопрос,большое Вам спасибо, буду разбираться.
Вопрос № 120.336
Добрый вечер уважаемые специалисты. Очень сильно нужна ваша помощь в решении программ. По идее вроде бы все понятно но в тоже же время сделать не получается. Всем кто поможет высокие оценки гарантирую ;)
1. Пользователь с клавиатуры вводит строку. Создается числовой одномерный массив с таким же количеством элементов, сколько у строки – значащих символов. Записывает коды этих символов в числовой массив и, оба массива показывает на экран.
2. Пользователь вводит строку с клавиатуры в фиксированный массив. Необходимо проверить, cколько элементов массива теперь занято, сколько свободно и сколько всего вообще.
3. Показать на экран с m по n символов строки, введенной пользователем и записать данный отрезок в другой массив. (m и n также вводятся пользователем)
4. Удалить с m по n символов, перезаписать строку и показать ее на экран.
5. Пользователь вводит отдельно строку и символ, необходимо показать на экран номера по порядку всех совпадений (нумерация с единицы).
6. Пользователь вводит отдельно строку и символ, необходимо показать на экран номер по порядку только последнего совпадения (нумерация с единицы).
Отвечает: Касаткин Сергей Сергеевич
Здравствуйте, Белоусов Алексей Леонидович !
Вы правы задачи действительно простые. Решения смотри в приложении.
Приложение:
--------- WIT BEYOND MEASURE IS MAN’S GREATEST TREASURE.
Ответ отправил: Касаткин Сергей Сергеевич (статус: 1-ый класс)
Ответ отправлен: 26.01.2008, 23:37 Оценка за ответ: 5 Комментарий оценки: Большое спасибо за оперативность и помощь в решении программ. Теперь то уж можно почитать и разобраться в чем там не получалось :)
Отвечает: X-men
Здравствуйте, Белоусов Алексей Леонидович !
Вот оставшиеся 3 задачи.
Здесь я использовал несколько иной подход, воспользовавшись массивами символов, а не строками типа string. Дешево и сердито. :)
Приложение:
Ответ отправил: X-men (статус: 10-ый класс)
Ответ отправлен: 27.01.2008, 05:13 Оценка за ответ: 5 Комментарий оценки: Большое спасибо за помощь. Тоже очень интересный подход, особенно разобрать разные варианты решения. Это очень хорошо. Спасибо :)
Вопрос № 120.338
Здраствуйте уважаемые эксперты. Прошу помочь с праграммой на языке С. Я ее в приложении написал для удобного чтения!
Приложение:
Отправлен: 26.01.2008, 23:02
Вопрос задал: ValZdoM (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: X-men
Здравствуйте, ValZdoM!
Программа, как всегда, написана на MS Visual C++ 2005 Express Edition.
Для вывода информации по столбикам (для красоты) можете воспользоваться функцией setw(int), незабыв подключить заголовочный файл <iomanip>
Удачи!
Приложение:
Ответ отправил: X-men (статус: 10-ый класс)
Ответ отправлен: 27.01.2008, 04:15
Вопрос № 120.343
Здравствуйте. Помогите изменить программу в приложении таким образом, чтобы в paint'е окна по нажатию кнопки ("press me") рисовалась линия. Координаты линии неважно какие, главное чтоб было видно.
Приложение:
Отправлен: 26.01.2008, 23:25
Вопрос задал: Blackie (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
case WM_COMMAND:
if (LOWORD(wParam) == 100) // должно быть значение параметра HMENU кнопки
DoProc(); // смотрите реализацию в приложении
break;
Приложение:
Ответ отправил: Попов А.С. (статус: 7-ой класс)
Ответ отправлен: 27.01.2008, 09:51 Оценка за ответ: 4 Комментарий оценки: У меня пишет сначала Illegal case, а потом illegal break. Но если закомментировать, то работает.