![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программный анализатор [D7, XP]
Deled © (2008-03-19 14:43:00)Доброго времени суток всем! У меня такая проблема...мне достался курсач по интел.системам на тему 'программный анализатор'..т.е.нужно написать прогу которая будет отличать программный текст друг от друга и говорить автора(заранее внесенного в б.д.) а если автора не оказалось,то надо добавить его в базу со своим листингом программы..вот..вопрос : какие критерии отличают авторство? На что мне смотреть в первую очередь. Спасибо
Johnmen (2008-03-19 15:04:00) [1]
> Обломись. Это вообще другой отдел писал.
Значит ты не понял сути.
ANB (2008-03-19 15:00:00) [2]
> следовательно - это ANB.
Обломись. Это вообще другой отдел писал. Я даже не знаю - чего она делает. Просто одна из самых коротких хранимок.
Плюс я завсегда пишу в нижнем регистре и ставлю коммент в начале процедуры - что это я писал.
ИМХО, курсач то полезный, но если на фирме есть стандарт программирования, то все пишут очень похоже и отличить авторство мона только если его явно указали.
Deled (2008-03-19 14:53:00) [3]Должна быть база даных,с которой нужно сопоставлять код...а по каким критериям..фантазия не работает чет..
Deled (2008-03-19 14:53:00) [4]Должна быть база даных,с которой нужно сопоставлять код...а по каким критериям..фантазия не работает чет..
Johnmen (2008-03-19 14:53:00) [5]
> Определи, плз, автора по этому программному тексту. :)
Легко:
- выравнивание предикатов SELECT
- сдвиг на 2 позиции для "вложенных" выражений
- отделение коммента одним пробелом
- ...
следовательно - это ANB.
Вот в этом и суть.
Игорь Шевченко (2008-03-19 14:53:00) [6]Хороший курсач. Полезный.
Deled (2008-03-19 14:50:00) [7]Ну например синтаксис,верхнии нижний регистры, их процентое соотн. Я например всегда пиши в нижнем,меня легко найти.
Deled (2008-03-19 14:47:00) [8]А может есть прототипы?..
ANB (2008-03-19 14:47:00) [9]
CREATE OR REPLACE FUNCTION CheckExistObespCont(
iCalcDate IN DATE,
iContNum IN VARCHAR2,
iGuarCode IN NUMBER)
RETURN NUMBER IS
tSum NUMBER;
BEGIN
SELECT NVL(SUM(DECODE(TypeOper, 0, SumOper, -SumOper)), 0)
INTO tSum
FROM GuarCrOper
WHERE TypeCont = 0 AND
GuarNum IN (SELECT /*+ index_asc(GUARCRED GuarCred2)*/
OperNum
FROM GuarCred
WHERE TypeNum = 0 AND ContNum = iContNum AND GuarCode = iGuarCode AND Status > 0) AND
DateOper <= iCalcDate;
IF tSum > 0.005 THEN
RETURN 0;
END IF;
SELECT /*+ index_asc(CrGuarOper CGuarOp1)*/
NVL(SUM(DECODE(TypeOper, 0, SumOper, -SumOper)), 0)
INTO tSum
FROM CrGuarOper
WHERE GuarNum IN (SELECT /*+ index_asc(CrGuarCont CGuarC2)*/
C.GuarNum
FROM CrGuarCont C
WHERE C.GuarCode = iGuarCode AND
EXISTS( SELECT /*+ index_asc(CrGuarDstr CGuarD1)*/
CrNum
FROM CrGuarDstr
WHERE GuarNum = C.GuarNum AND
DateGuar IN (SELECT /*+ INDEX_ASC(CrGuarDstr CGuarD1)*/
MAX(DateGuar)
FROM CrGuarDstr
WHERE GuarNum = C.GuarNum AND DateGuar <= iCalcDate) AND
TypeNum = 1 AND CrNum = iContNum AND ShareGuar > 0.000005)) AND
DateOper <= iCalcDate;
IF tSum > 0.005 THEN
RETURN 0;
END IF;
RETURN 1;
EXCEPTION
WHEN OTHERS THEN
--manager.putMessage('Ошибка выполнения CheckExistObespCont:'||SQLERRM);
RETURN -1;
END CheckExistObespCont;
/
Определи, плз, автора по этому программному тексту. :)
Johnmen (2008-03-19 14:46:00) [10]
> какие критерии отличают авторство?
Почерк во всем своем многообразии. Ну если нет прямой подписи...