Вопрос № 18727: Уважаемые эксперты, мне нужно написать прогу-оценщик программ написааных на разных языках программирования. Хотел бы услышать ваши предложения по критериям для оценки. Код программ объекто-ориентированный. Заранее благодарен...Вопрос № 18751: гДПЮБЯРБСИРЕ, СБЮФЮЕЛШЕ ЩЙЯОЕПРШ!
ъ БННАЫЕ-РН МНБХВНЙ, ОНЩРНЛС ОПНЯРХРЕ ГЮ, ЛНФЕР АШРЭ, МЕЛМНЦН "ЙНПЪБНЕ" ХГКНФЕМХЕ ОПНАКЕЛШ.
ъ ОШРЮЧЯЭ ЯНГДЮРЭ НРВЕР Б QReport. хЯОНКЭГСЧ ДКЪ БШБНДЮ ДЮММШУ ХГ ОНКЕИ АЮГШ ДЮММШУ QRDBtext. дКХМЮ ОНКЪ Я...Вопрос № 18754: Как сделать примерно следующее: БД Interbase
на форме два листбокса. Первый нужно заполнить именами таблиц БД, а во втором при перемещении по первому высвечивались бы поля соответствующих таблиц ?
Заранее спасибо !...Вопрос № 18764: Здраствуйте уважаемые эксперты! Подскажите пожалуйста как установить в своей программе в качестве разделителя целой и дробной части не запятую, а точку, для функции FloatToStr?
...Вопрос № 18769: Здравствуйте.
Хочу в Delphi самостоятельно обработать некоторые сообщения окна. Как это возможно сделать?
Спасибо....
Вопрос № 18727
Уважаемые эксперты, мне нужно написать прогу-оценщик программ написааных на разных языках программирования. Хотел бы услышать ваши предложения по критериям для оценки. Код программ объекто-ориентированный. Заранее благодарен
Отправлен: 25.03.2005, 00:47
Вопрос задал: Master135 (статус: 2-ой класс)
Всего ответов отправлено: 6
Отвечает: Malish
Здравствуйте, Master135!
Вопрос просто бешанный ;) . Проги можно оценивать по скорости, по размеру, но как по мне так можно потерять немного в скорости если интерфейс проги будет интуитивно понятен и удобен, а это не измерить. Вот отдельные процедуры или функции - запросто. Сложная задача, но очень интересная. Тут ответ напрашивается сам - ИИ (исскуственный интелект). Надо и самому подумать над такой задачей, мне такие не попадались.
Ответ отправил: Malish (статус: 4-ый класс)
Отправлен: 25.03.2005, 01:11 Оценка за ответ: 4 Комментарий оценки: Может я неправильно выразился, но вобщето надо тестить исходники программ.
Отвечает: sir henry
Здравствуйте, Master135!
Слишком расплывчато.
А что Вы хотите оценивать:
- исходники программ,
- % объектно-ориентации в исходнике,
- размер откомпилированой программы,
- быстродействие...
????? :)
Если Вам "нужно", то должна быть, как минимум, четко поставленая задача, без неоднозначного ее толкования. Критерии для исходников и откомпилированного кода будут разными.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 25.03.2005, 06:26
Отвечает: Delphin
Здравствуйте, Master135!
хз... Я не понял вопроса. Тебе нужно узнать как-бы критерии по которым можно узнать как написана программа (с исходников), уже готовую или тебе надо просто сказать какие могут быть оценки?
-----------------------------------------------------------------------------------------------------------------
Если:
1. Смотри на циклы перебора. На алгоритмы. На повторяемость кода и используемые модули.
Например если эту функцию можно использовать без этого модуля то -1 балл. За умный
цыкл плюс 2 и т.п.
Или разбей по разделам удобности. Например если программа в коде DLL'ky использовала
то добавь плюсик в другой массив. Если использовала Много стандартных модулей то
минус. За колличество пояснений и разбитость на Unit'ы ставь по (+) или (0,5 + ).
2. Размер программы. Возможность сжатия. Колличество рессурсов которые потребляет.
Есть ли плагины и DLL'ки.
3. Ну допустим по 100 бвльной системе. Или сколько твоя программа найдет. Например нашла
200 оценок из них 150 это + значит 150 / 200 = 0,75 бала. Типа 1 это самая крутая.
А потом можно допустим умножить 0,75*5=3,75 бала. чтоб была 5 бальная система.
Ну ты понял я думаю идею.
-----------------------------------------------------------------------------------------------------------------
Задавай вопрос точнее. А вобще зачем тебе такое делать?
Ответ отправил: Delphin (статус: 1-ый класс)
Отправлен: 25.03.2005, 09:56 Оценка за ответ: 5 Комментарий оценки: Я конечно же имел в виду исходники. Вобщето это задача на бакалаврский проэкт.
Отвечает: Voituk Alexander
Здравствуйте, Master135!
Интересно всем, по каким критериям оценивать программу?
Можно оценивать по стоимости программы в $ :)
Можно оценивать по размеру проги и по ее быстродействию. Но вряд ли ты найдешь две программы выполняющие совершенно одинаковые действия, но написанные на разных языках.
Все равно функции будут разные. По моему все эти оценки - это чисто субъективный подход.
Особенно если оценивать внешний вид.
Ответ отправил: Voituk Alexander (статус: 6-ой класс)
Отправлен: 25.03.2005, 11:32
Отвечает: Samum
Здравствуйте, Master135!
Обычно в таких случаях проверяют работу программы на нескольких тестах (от простых до сочень сложных). Оценивать следует:
- время работы программы;
- объем оперативной памяти, который требует программа;
- нагрузка на процессор.
В зависимости от решаемой задачи можно еще попытаться оценить, например, нагрузку на винчестер и пр. - это достаточно индивидуально.
Ответ отправил: Samum (статус: Специалист)
Отправлен: 25.03.2005, 15:23
Отвечает: Гриценко Юрий Алексеевич
Здравствуйте, Master135!
Абсолютной оценки проги не существует в принципе, но могу предложить оценивать отдельные функции(если есть код) на быстродействие и точность,либо тоже ко всей проге, её ресурсоёмкость, сложность и объём в строках(с поправкой на язык реализации)
Ответ отправил: Гриценко Юрий Алексеевич (статус: 3-ий класс)
Отправлен: 26.03.2005, 14:13 Оценка за ответ: 4
Ответ отправил: Master135 (статус: 2-ой класс)
Отправлен: 25.03.2005, 23:07
Вопрос № 18754
Как сделать примерно следующее: БД Interbase
на форме два листбокса. Первый нужно заполнить именами таблиц БД, а во втором при перемещении по первому высвечивались бы поля соответствующих таблиц ?
Заранее спасибо !
Отправлен: 25.03.2005, 14:12
Вопрос задал: Sniffer (статус: 10-ый класс)
Всего ответов отправлено: 1
Отвечает: michael91
Здравствуйте, Sniffer!
чтобы в листбокс засунуть названия таблиц БД, надо сначала подключиться к БД
через TIBDatabase и выполнить строку:
ibdatabase1.GetTableNames(listbox1.Items, true);
по нажатию на listbox1 определяем, выделен какой-нибудь эл-т или нет и получаем его содержимое:
procedure TForm1.ListBox1Click(Sender: TObject);
var
table: string;
begin
if listbox1.selcount = 1 then // выделено?
begin
table := listbox1.Items.Strings[listbox1.itemindex];{получаем название таблицы...}
ibdatabase1.GetFieldNames(table, listbox2.Items); {...и получаем список ее полей в listbox2}
end;
end;
Ответ отправил: michael91 (статус: 2-ой класс)
Отправлен: 25.03.2005, 15:58 Оценка за ответ: 5 Комментарий оценки: Спасибо !
Вопрос № 18764
Здраствуйте уважаемые эксперты! Подскажите пожалуйста как установить в своей программе в качестве разделителя целой и дробной части не запятую, а точку, для функции FloatToStr?
Отправлен: 25.03.2005, 19:04
Вопрос задал: Roman_npi (статус: Посетитель)
Всего ответов отправлено: 6
Отвечает: mvp
Здравствуйте, Roman_npi!
DecimalSeparator := '.', но не забывайте его перед этим сохранить, а потом восстановить - мало ли :)
Ответ отправил: mvp (статус: 1-ый класс)
Отправлен: 25.03.2005, 21:30
Отвечает: Malish
Здравствуйте, Roman_npi!
Вообще это зависит от настройки винды Язык и Стандарты --- Числа. В самом Delphi я не нашел как это сделать поэтому предлагаю так , если очень надо:
Переводишь в строку, а потом меняешь сивол "," на ".", или выделяешь целую часть + '.' + дробная часть.
Ответ отправил: Malish (статус: 4-ый класс)
Отправлен: 26.03.2005, 02:43
Отвечает: Полховский Александр Владимирович
Здравствуйте, Roman_npi!
Есть 2 вида этой функции. У второго есть параметр formatsettings. Всё это есть в справке. нажмите F1 и вперёд.
Отвечает: komatoz
Здравствуйте, Roman_npi!
var
s:real;
st:string;
begin
sysutils.DecimalSeparator:='#';
s:=192.12;
st:=FloatToStr(s);
showmessage(st);
Ответ отправил: komatoz (статус: 1-ый класс)
Отправлен: 26.03.2005, 04:04
Отвечает: sir henry
Здравствуйте, Roman_npi!
В модуле SysUtils находится переменная DecimalSeparator. Присвойте ей нужный Вам знак разделения.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 26.03.2005, 05:42
Отвечает: Гриценко Юрий Алексеевич
Здравствуйте, Roman_npi!
Вроде никак(в книжке написано что энто глюк), в итоговой строке ручками поменяй запятую на любой символ(в цикле находишь и заменяешь)
Здравствуйте.
Хочу в Delphi самостоятельно обработать некоторые сообщения окна. Как это возможно сделать?
Спасибо.
Отправлен: 25.03.2005, 21:01
Вопрос задал: andrey (статус: Посетитель)
Всего ответов отправлено: 5
Отвечает: mvp
Здравствуйте, andrey!
procedure Obrabotchik(var mes : TMessage); message WM_MESS;
Описываем подобную процедуру в классе формы, где вместо WM_MESS - подставляете ваше сообщение:
procedure TForm1.Obrabotchik;
begin
//-----
end;
Ответ отправил: mvp (статус: 1-ый класс)
Отправлен: 25.03.2005, 21:40
Отвечает: Malish
Здравствуйте, andrey!
Тебе надо просто производить обработку сообщений. Писать очень много и сообщений много. Давай мыло вышлю книгу и там все найдешь. Книга неплохая, и вроде все доступно описано о сообщениях: какие бывают, как отлавливать и обрабатывать.
Ответ отправил: Malish (статус: 4-ый класс)
Отправлен: 25.03.2005, 22:38
Отвечает: sir henry
Здравствуйте, andrey!
Все процедуры обработки сообщений должны отвечать следующим требованиям:
- Процедура должна быть методом объекта;
- Процедуре должен передаваться один передаваемый по ссылке параметр, т.е. с помощью описания var. Тип параметра должен быть TMessage или другой, зависящий от типа специализированного сообщения;
- Описание процедуры должно включать ключевое слово message, за которым должна следовать константа, задающая тип обрабатываемого сообщения.
Вот пример объявления процедуры, обрабатывающей сообщение WM_Paint :
procedure WMPaint(var Msg: TWMPaint); message wm_Paint;
Соглашение по присвоению имён требует присваивать обработчику сообщения то же имя, что и имя обрабатываемого сообщения, но без символа подчёркивания и указанием первым знаков имени прописными буквами.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 26.03.2005, 05:47
Отвечает: Гриценко Юрий Алексеевич
Здравствуйте, andrey!
Отработай соответствующие события! Прототипы добавь дизайнером, либо руками перегрузив функции обработчики ведь форма наследуется от окна!
Отвечает: Voituk Alexander
Здравствуйте, andrey!
Я почитал все ответы - вроде все правильно. Но попробуй еще так - переопредели в классе окна функцию WndProc. Это оконный (и не только) обработчик <b>ВСЕХ</b> сообщений, приходящих в окно. А в ней выбирай, какие тебе нужно и обрабатывай. Но не забывай вызвать родительский обработчик. Иначе труба :)))
Ответ отправил: Voituk Alexander (статус: 6-ой класс)
Отправлен: 28.03.2005, 15:23