Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Вниз

Программный анализатор   Найти похожие ветки 

 
Deled   (2008-03-19 14:43) [0]

Доброго времени суток всем! У меня такая проблема...мне достался курсач по интел.системам на тему "программный анализатор"..т.е.нужно написать прогу которая будет отличать программный текст друг от друга и говорить автора(заранее внесенного в б.д.) а если автора не оказалось,то надо добавить его в базу со своим листингом программы..вот..вопрос : какие критерии отличают авторство? На что мне смотреть в первую очередь. Спасибо


 
Johnmen ©   (2008-03-19 14:46) [1]


> какие критерии отличают авторство?

Почерк во всем своем многообразии. Ну если нет прямой подписи...


 
Deled   (2008-03-19 14:47) [2]

А может есть прототипы?..


 
ANB   (2008-03-19 14:47) [3]



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;
/


Определи, плз, автора по этому программному тексту. :)


 
Deled   (2008-03-19 14:50) [4]

Ну например синтаксис,верхнии нижний регистры, их процентое соотн. Я например всегда пиши в нижнем,меня легко найти.


 
Deled   (2008-03-19 14:53) [5]

Должна быть база даных,с которой нужно сопоставлять код...а по каким критериям..фантазия не работает чет..


 
Deled   (2008-03-19 14:53) [6]

Должна быть база даных,с которой нужно сопоставлять код...а по каким критериям..фантазия не работает чет..


 
Johnmen ©   (2008-03-19 14:53) [7]


> Определи, плз, автора по этому программному тексту. :)

Легко:
- выравнивание предикатов SELECT
- сдвиг на 2 позиции для "вложенных" выражений
- отделение коммента одним пробелом
- ...
следовательно - это ANB.
Вот в этом и суть.


 
Игорь Шевченко ©   (2008-03-19 14:53) [8]

Хороший курсач. Полезный.


 
ANB   (2008-03-19 15:00) [9]


> следовательно - это ANB.

Обломись. Это вообще другой отдел писал. Я даже не знаю - чего она делает. Просто одна из самых коротких хранимок.
Плюс я завсегда пишу в нижнем регистре и ставлю коммент в начале процедуры - что это я писал.

ИМХО, курсач то полезный, но если на фирме есть стандарт программирования, то все пишут очень похоже и отличить авторство мона только если его явно указали.


 
Johnmen ©   (2008-03-19 15:04) [10]


> Обломись. Это вообще другой отдел писал.

Значит ты не понял сути.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
2-1206029759
wowa1
2008-03-20 19:15
2008.04.13
TImageList.Draw


15-1204384413
senius
2008-03-01 18:13
2008.04.13
Фотографии


2-1205762898
Михаил
2008-03-17 17:08
2008.04.13
Компонент для выбора толщины и вида линии


3-1195555634
shah
2007-11-20 13:47
2008.04.13
Распределенные базы данных


2-1205839489
alex810
2008-03-18 14:24
2008.04.13
SQL запрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский