Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 785
от 03.07.2007, 15:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 482, Экспертов: 62
В номере:Вопросов: 4, Ответов: 8


Вопрос № 93103: Помогите срочно нужно составить цикл с постусловием , произведение положительных элементов массива....
Вопрос № 93145: Здравствуйте, подскажите как толкова написать обработчик ошибок (Visual C++). Есть некое текстовое поле (textbox) в которое вводятся числа (к примеру, штук 5) через определённый разделитель (split, переменная в которой хранится некий символ - раз...
Вопрос № 93151: Добрый день. Мне нужно написать доклад на тему: "Инструменты и методы оценки быстродействия". Мне нужна ваша помощь, подскажите с чего начинать, о чем писать, и как можно измерить время выполнения программы в тактах процессора...
Вопрос № 93191: как в Visual C++ 2003 в приложение сгенерированное как диалоговое приделать стандарное меню....

Вопрос № 93.103
Помогите срочно нужно составить цикл с постусловием , произведение положительных элементов массива.
Отправлен: 27.06.2007, 16:43
Вопрос задала: Сорокина Ольга Николаевна (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Беликова Наталья Викторовна
Здравствуйте, Сорокина Ольга Николаевна!
насколько я поняла, цикл с постусловием - do-while?

Приложение:

Ответ отправила: Беликова Наталья Викторовна (статус: 1-ый класс)
Ответ отправлен: 27.06.2007, 16:55

Отвечает: Ross
Здравствуйте, Сорокина Ольга Николаевна!

Решение в приложении. Удачи

Приложение:

---------
Доступно только то, что видимо (c) Б. Керниган

Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 27.06.2007, 22:10

Отвечает: Попов А.С.
Здравствуйте, Сорокина Ольга Николаевна!
Смотрите в приложении

Приложение:

Ответ отправил: Попов А.С. (статус: 1-ый класс)
Ответ отправлен: 28.06.2007, 06:10

Отвечает: Olegzp
Здравствуйте, Сорокина Ольга Николаевна!
//---------------------------------------
#define Count 20 // Задаем размер массива
...
int Index,Result;
int Array[Count];

// Задаем первоначальное значение
Result = 1;

for(Index = 0; Index < Count; Index++)
{
// Заполнить массив значениями
}

Index = 0;
do{
If( Array[Index] > 0 ) Result = Result * Array[Index];
Index++
}while( Index < Count )
Ответ отправил: Olegzp (статус: 3-ий класс)
Ответ отправлен: 28.06.2007, 12:02


Вопрос № 93.145
Здравствуйте, подскажите как толкова написать обработчик ошибок (Visual C++).
Есть некое текстовое поле (textbox) в которое вводятся числа (к примеру, штук 5) через определённый разделитель (split, переменная в которой хранится некий символ - разделитель, например, «;»). Так вот, каким образом можно проверить введённые числа, перед выполнением операций над этими данными, на корректный ввод? И в случае чего вывести на экран сообщение о некорректном вводе данных.
Например (правильный ввод данных): 5,01; 4,78; 7; -184; 0,33
(неправильный ввод данных): 5,01; вау; 7; -184; 0,33
(неправильный ввод данных): 5.01; 4,78; 7; -184; 0,33
Точка вместо запятой в первом дробном числе.
Отправлен: 28.06.2007, 01:13
Вопрос задал: Vckaif (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Fenixk19
Здравствуйте, Vckaif!
В C есть набор функций, определенных в хидере ctype.h, которые проверяют типы символов. В вашем случае нужно использовать функцию isalpha для проверки наличия букв. Еще я бы сделал так, чтобы перед анализом из записи удалялись все пробелы. А еще можно сделать перевод числа посредством atoi(или какой-то модификации для дробных чисел). В случае неудачи эта функция возвращает ноль. Таким образом тоже можно проверить правильность.
Ответ отправил: Fenixk19 (статус: 3-ий класс)
Ответ отправлен: 28.06.2007, 02:29
Оценка за ответ: 3
Комментарий оценки:
Спасибо за ответ, но это не то, что я спрашивал. Я спрашивал, как самому написать обработчик ошибок, а не использовать стандартные функции

Отвечает: Ross
Здравствуйте, Vckaif!

Давайте сначала сформулируем что же именно является правильным вводом:
1.Значение должно содержать только цифры, символы ',' '+' '-'
2.Символы '+' и '-' могут находиться только на первом месте в строке
3.Символ ',' может находиться на любом месте кроме первого и последнего и только в одном экземпляре

В соответствии с этими правилами можно написать функцию проверки (возможный вариант в приложении)

Кстати говоря, если вы собираетесь в дальнейшем переводить строковые значения в числовые (например функцией atoi), то все же правильнее использовать в качестве разделителя целой и дробной части точку, а не запятую. А для вывода сообщения об ошибке можно использовать например функцию MessageBox

Приложение:

---------
Доступно только то, что видимо (c) Б. Керниган

Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 28.06.2007, 02:39
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ. Судя по описанию это то, что мне нужно.
Правда из-за незнания векторов окончательный разбор вашего
ответа немного затянется.


Вопрос № 93.151
Добрый день. Мне нужно написать доклад на тему: "Инструменты и методы оценки быстродействия". Мне нужна ваша помощь, подскажите с чего начинать, о чем писать, и как можно измерить время выполнения программы в тактах процессора
Отправлен: 28.06.2007, 03:17
Вопрос задал: Platon (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Boriss
Здравствуйте, Platon!
Конечно, считать тики - это прошлый век. Есть две функции:
QueryPerformanceFrequency и QueryPerformanceCounter. Вторая считывает показания счетчика производительности, первая - частоту.
В приложении пример консольного приложения, которое определяет длительность одной элементарной операции
SetThreadAffinityMask(GetCurrentThread(), 1); - на случай, если у Вас несколько процессоров

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: mte
WWW: Программирование на Паскале
----
Ответ отправлен: 29.06.2007, 11:07


Вопрос № 93.191
как в Visual C++ 2003 в приложение сгенерированное как диалоговое приделать стандарное меню.
Отправлен: 28.06.2007, 12:41
Вопрос задал: Афанасьев Михаил Владимирович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, Афанасьев Михаил Владимирович!
А очень просто. Создаем в ресурсах менюшку. Называем ее, например IDR_MENU1. Далее пишем в OnInitDialog:

CMenu mnuMain;
mnuMain.LoadMenu(MAKEINTRESOURCE(IDR_MENU1));
SetMenu(&mnuMain);

Вот и все.

Успехов.

---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
----
Ответ отправлен: 28.06.2007, 12:47


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное