Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2013, 19:40   #1
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
Вопрос Метрика Спена для кода Delphi

"Спен - это число утверждений, содержащих данный идентификатор, между его первым и последним появлением в тексте программы. Следовательно, идентификатор, появившийся n раз, имеет спен, равный n-1."

Как я понимаю утверждения разделяются ';', также есть составные.

Для данного случая это будет одно утверждение, или утверждение в утверждении?
Код:
while (условие) do 
  Identifier;
И для данного случая, это будет утверждение содержащее, в себе блок являющийся утверждением, содержащий утверждения, или это просто утверждение содержащее в себе утверждения?
Код:
while (условие) do
 begin 
   Identifier1;
   Identifier2;
 end;
Также объявления классов и записей, это ведь тоже составные утверждения?
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 14.11.2013, 19:52   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А что такое утверждения? Почему именно отделяются точкой с запятой?
if (A=B) AND (C=E) THEN ... ;
(A=B) - утверждение?
(C=E) - утверждение?
(A=B) AND (C=E) - утверждение?
или только if (A=B) AND (C=E) THEN ... ; - утверждение?
(A+x)*(B+x) - сколько раз содержит идентификатор X?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.11.2013, 20:00   #3
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А что такое утверждения?
http://de.wikipedia.org/wiki/Anweisung_(Programmierung)
Цитата:
Сообщение от Аватар Посмотреть сообщение
Почему именно отделяются точкой с запятой?
if (A=B) AND (C=E) THEN ... ;
(A=B) - утверждение?
(C=E) - утверждение?
(A=B) AND (C=E) - утверждение?
Про точку с запятой не обязательно (но в основном), как я понимаю условие тоже утверждение.
(A=B) AND (C=E) - это думаю как одно отверждение идет, хотя не факт

Цитата:
Сообщение от Аватар Посмотреть сообщение
(A+x)*(B+x) - сколько раз содержит идентификатор X?
Содержит то два раза, но по идее в список добавляем что просто содержится в данном утверждении, скок раз не важно.
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 14.11.2013, 20:09   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Содержит то два раза, но по идее в список добавляем что просто содержится в данном утверждении, скок раз не важно.
Не согласен. Этот термин вообще первый раз услышал, но поскольку это оценка сложности, сначала определиться с тем, что такое утверждение языка. Где это можно найти конкретно для паскаля или дельфи в применении к этому спену? Вот здесь http://habrahabr.ru/company/intel/blog/106082/ пишут
Цитата:
Спен — это число утверждений, содержащих данный идентификатор, между его первым и последним появлением в тексте программы. Следовательно, идентификатор, появившийся n раз, имеет спен, равный n-1.
По-моему хренотень. Если между 1-ым и последним исключая их, то n-2. Если включая - n. От какого верблюда n-1?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.11.2013, 20:15   #5
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
По-моему хренотень. Если между 1-ым и последним исключая их, то n-2. Если включая - n. От какого верблюда n-1?
Не знаю даже. Просто решил принять на веру что n-1 )

А вот с опредлением, что есть утверждение в языке, проблематично.
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 14.11.2013, 20:16   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
А вот с опредлением, что есть утверждение в языке, проблематично.
Вот именно, сначала корни, потом крона
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.11.2013, 20:18   #7
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

Про то где можно посмотреть, что есть утверждение в Delphi нашел только тут http://code-man.narod.ru/delphi/basics/2/ .
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 14.11.2013, 20:21   #8
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

и то некоторые моменты не ясны, как:
Код:
if (условие) then
 Identifier;
(условие) будет утверждением, или утверждением в утверждении.
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 14.11.2013, 20:22   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ага, утверждения - это оператор языка. Простой или составной. Исходя из этого и считать. Если входит в заголовок цикла - считать, и если входит в оперторы внутри цикла - тоже считать. Думаю так. Но только думаю

if (условие) then - составной оператор
Identifier; простой, вложенный в составной
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.11.2013, 20:28   #10
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

Буду надеяться что так и есть )

Еще вопрос, ток для другой метрики надо )
Код:
Var 
 a:Integer = 4;
Здесь '=' это оператор или как эл-т объявления?
<----Весы Там.
Npwas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метрика miftahovaar HTML и CSS 2 26.08.2013 19:45
Программа для создания кроссвордов - Lazarus[Delphi]-версия xwicked Общие вопросы Delphi 3 24.09.2012 21:02
Яндекс.Метрика - баги? Alexei91 Свободное общение 2 14.03.2012 17:15
Создание кодер и декодер для кода Хемминга на delphi ali213b Фриланс 2 24.12.2011 11:29
метрика Вудворда Pavel1992 Помощь студентам 0 12.10.2010 23:03