Длинна формул указывается в количестве знаков, без учёта знака "="
Севершенно не согласен, знак нужно вводит с клавиатуры, поэтому его нужно считать Ну раз в правилах ты так прописал, то буду всегда подписывать, что с учетом "="
Цитата (Serge_007)
Длинна макроса указывается в количестве знаков, без учёта первой Sub Название () и последней End Sub строк кода
Здесь разумнее написать что длина указывается в знаках без учета пробелов, табуляции и переносе строк, а вот Sub ... и End нужно считать
Цитата (Serge_007)
Внес изменения в правила этой ветки
Цитата (Serge_007)
Длинна формул указывается в количестве знаков, без учёта знака "="
Севершенно не согласен, знак нужно вводит с клавиатуры, поэтому его нужно считать Ну раз в правилах ты так прописал, то буду всегда подписывать, что с учетом "="
Цитата (Serge_007)
Длинна макроса указывается в количестве знаков, без учёта первой Sub Название () и последней End Sub строк кода
Здесь разумнее написать что длина указывается в знаках без учета пробелов, табуляции и переносе строк, а вот Sub ... и End нужно считатьMCH
Сообщение отредактировал MCH - Пятница, 25.01.2013, 12:30
Здесь разумнее написать что длина указывается в знаках без учета пробелов, табуляции и переносе строк, а вот Sub ... и End нужно считать
А какой вообще смысл считать длину макроса в символах? Название самого макроса, названия переменных, их объявление - это навскидку то, что считать уж точно не нужно.
Цитата (MCH)
Здесь разумнее написать что длина указывается в знаках без учета пробелов, табуляции и переносе строк, а вот Sub ... и End нужно считать
А какой вообще смысл считать длину макроса в символах? Название самого макроса, названия переменных, их объявление - это навскидку то, что считать уж точно не нужно._Boroda_
[offtop] Давно собираюсь предложить еще один вид "мозгового спорта" - написание однострочных макросов в окне отладки VBE
Например, вот такая строка [vba]
Код
a="123":?a:b="456"&"789":c=a &b:?c
[/vba]
после нажатия Enter напечатает 2 значения: [vba]
Код
123 123456789
[/vba]
Впрочем, не такие уж они и однострочные - возможно расположение на нескольких строках (до 25): [vba]
Код
a="123":?a:b="456"& _ "789":c=a & _ b:?c
[/vba]
Эквивалентная обычная процедура: [vba]
Код
Sub io() Dim a, b, c a = "123": Debug.Print a b = "456" & "789" c = a & b Debug.Print c End Sub
[/vba]
Возможны, например, циклы:
for i=1 to 100:?i:next
i=0:for each cell in Range("A1:A100"):i=i+1:cell.Value=i:next
i=0:for each c in [A1:A100]:i=i+1:c.value=i:next
И заметьте - ни объявления переменных, ни Sub/End Sub, ни лишнего пробела - совсем как в формулах. Т.е. пробелы - конечно, по желанию, но на отсутствие некоторых ругается. Например, здесь пробел перед & оказался обязательным: c=a &b
[offtop] Давно собираюсь предложить еще один вид "мозгового спорта" - написание однострочных макросов в окне отладки VBE
Например, вот такая строка [vba]
Код
a="123":?a:b="456"&"789":c=a &b:?c
[/vba]
после нажатия Enter напечатает 2 значения: [vba]
Код
123 123456789
[/vba]
Впрочем, не такие уж они и однострочные - возможно расположение на нескольких строках (до 25): [vba]
Код
a="123":?a:b="456"& _ "789":c=a & _ b:?c
[/vba]
Эквивалентная обычная процедура: [vba]
Код
Sub io() Dim a, b, c a = "123": Debug.Print a b = "456" & "789" c = a & b Debug.Print c End Sub
[/vba]
Возможны, например, циклы:
for i=1 to 100:?i:next
i=0:for each cell in Range("A1:A100"):i=i+1:cell.Value=i:next
i=0:for each c in [A1:A100]:i=i+1:c.value=i:next
И заметьте - ни объявления переменных, ни Sub/End Sub, ни лишнего пробела - совсем как в формулах. Т.е. пробелы - конечно, по желанию, но на отсутствие некоторых ругается. Например, здесь пробел перед & оказался обязательным: c=a &bGustav
А какой вообще смысл считать длину макроса в символах?
Сереге виднее
Цитата (Serge_007)
{} - для ФМ тоже вводится с клавиатуры
Я не ввожу эти символы для формул массива, и думаю никто не вводит, поэтому считать не нужно
Цитата (Serge_007)
без учета пробелов Это ещё почему?
Пробелы (код символа 32) в макросах используются в том числе и для оформления кода - отступы, также как и табуляция (код символа 09). Один и тотже код может иметь различный размер в зависимости от оформления
Как правило в олимпиадах по программированию учет ведется без лишних символов Достловно: "В качестве критерия ранжирования лучших попыток служит размер кода закачиваемой программы. При подсчете размера кода не учитываются пробелы, а так же символы переноса и табуляции."
Цитата (_Boroda_)
А какой вообще смысл считать длину макроса в символах?
Сереге виднее
Цитата (Serge_007)
{} - для ФМ тоже вводится с клавиатуры
Я не ввожу эти символы для формул массива, и думаю никто не вводит, поэтому считать не нужно
Цитата (Serge_007)
без учета пробелов Это ещё почему?
Пробелы (код символа 32) в макросах используются в том числе и для оформления кода - отступы, также как и табуляция (код символа 09). Один и тотже код может иметь различный размер в зависимости от оформления
Как правило в олимпиадах по программированию учет ведется без лишних символов Достловно: "В качестве критерия ранжирования лучших попыток служит размер кода закачиваемой программы. При подсчете размера кода не учитываются пробелы, а так же символы переноса и табуляции."MCH
Сообщение отредактировал MCH - Пятница, 25.01.2013, 14:46
а примера "спортивного задания" нету? мне вот пока одно в голову пришло. на 3 секунды, наверное.
"написать минимально короткий код, в результате которого в ячейках A1:A9 текущего листа отображаются степени двойки (от 2 до 512)" у меня 25 символов получилось.
Цитата (Gustav)
еще один вид "мозгового спорта"
а примера "спортивного задания" нету? мне вот пока одно в голову пришло. на 3 секунды, наверное.
"написать минимально короткий код, в результате которого в ячейках A1:A9 текущего листа отображаются степени двойки (от 2 до 512)" у меня 25 символов получилось.ikki
помощь по Excel и VBA ikki@fxmail.ru, icq 592842413, skype alex.ikki
написать минимально короткий код, в результате которого в ячейках A1:A9 текущего листа отображаются степени двойки (от 2 до 512)" у меня 25 символов получилось.
Это включая SUB и END SUB? У меня с ними получилось 34, без них - 20 (если без пробелов, которые VBA ставит автоматом, то 18).
Цитата (ikki)
написать минимально короткий код, в результате которого в ячейках A1:A9 текущего листа отображаются степени двойки (от 2 до 512)" у меня 25 символов получилось.
Это включая SUB и END SUB? У меня с ними получилось 34, без них - 20 (если без пробелов, которые VBA ставит автоматом, то 18)._Boroda_
Ходатайствую перед админами о возвращении сообщений №5 (мой "оффтоп"), №8 (задача ikki) и последующих в отдельную новую тему "Мозгового штурма", раз уж новый "спорт" пытается зародиться...
тоже нашёл 18
Ходатайствую перед админами о возвращении сообщений №5 (мой "оффтоп"), №8 (задача ikki) и последующих в отдельную новую тему "Мозгового штурма", раз уж новый "спорт" пытается зародиться...Gustav
2 Gustav: админы уже пытались наехать на меня за размещение своего поста "не там", но я отмазался - сослался на примитивность задачки какой-нибудь другой нет на примете?
2 Gustav: админы уже пытались наехать на меня за размещение своего поста "не там", но я отмазался - сослался на примитивность задачки какой-нибудь другой нет на примете?ikki
помощь по Excel и VBA ikki@fxmail.ru, icq 592842413, skype alex.ikki
сколько не пытался, без "=" в "Источник" в "Проверке данных/Список" не получается ввести формулу Без "=" - получается текстовая константа
А в ячейке?
Миш, давай закроем эту тему. Я знаю - ты упёртый, покруче меня Но к аргументам прислушаться можешь
В Европе (не во всей) и США скорость считают как мили в час, у нас как километры в час. Кто прав? Да никто! Просто так договорились в своё время Так и у нас. Я не считаю аргументом то, что "=" вводится с клавиатуры (можно нажать + и тогда равно с клавиатуры уже не вводится), равно как и {}, которые тоже вводятся нажатим Ctrl+Shift+Enter с клавиатуры, но в общей длинне формулы не учитываются. Так же аргумент "Так считали в Избушке" - это не аргумент
Поэтому, ИМХО, единственно правильное решение - считать только значимые знаки, т.е. знаки самой формулы, но никак не служебные
Надеюсь что я найду твоё понимание, ну или на крайняк услышу разумные (неоспоримые) доводы против
сколько не пытался, без "=" в "Источник" в "Проверке данных/Список" не получается ввести формулу Без "=" - получается текстовая константа
А в ячейке?
Миш, давай закроем эту тему. Я знаю - ты упёртый, покруче меня Но к аргументам прислушаться можешь
В Европе (не во всей) и США скорость считают как мили в час, у нас как километры в час. Кто прав? Да никто! Просто так договорились в своё время Так и у нас. Я не считаю аргументом то, что "=" вводится с клавиатуры (можно нажать + и тогда равно с клавиатуры уже не вводится), равно как и {}, которые тоже вводятся нажатим Ctrl+Shift+Enter с клавиатуры, но в общей длинне формулы не учитываются. Так же аргумент "Так считали в Избушке" - это не аргумент
Поэтому, ИМХО, единственно правильное решение - считать только значимые знаки, т.е. знаки самой формулы, но никак не служебные
Надеюсь что я найду твоё понимание, ну или на крайняк услышу разумные (неоспоримые) доводы против
Сергей, я многократно озвучивал свою позицию, но ты не хочешь ее услышать Повторюсь: 1. Невозможно ввести формулу без ввода знака "=", даже если использовать мастер функций или автосумму, то Excel сам добавляет этот знак в строку формул (именно знак!). Без данного знака получается текстовая константа, а не формула. Даже если вводится формула в ячейку через VBA, то ее нужно вводить Range("A1").Formula = "=SUM(B1:D1)", если знак "=" не указывать, то в ячейке будет текст. 2. При копировании всех знаков из строки формул, текст формулы содержит знак "=" 3. Если получать значение формулы из свойств ячейки любыми другими путями, то текст формулы сожержит знак "=" Range("A1").Formula =Ф.ТЕКСТ(A1) =ПОЛУЧИТЬ.ЯЧЕЙКУ(6;A1) =ПОЛУЧИТЬ.ФОРМУЛУ(A1) 4. Почему все поголовно на форуме, в т.ч. и ты, публикуя свои формулы, указывают их со знаком "="?
Фигурные скобки в формулах массива не являются символами, их не нужно вводить (как символы), при копировании текста формулы из ячейки или получения из свойств ячейки данные символы не копируются, соответственно при подсчете символов их не нужно учитывать.
В Европе (не во всей) и США скорость считают как мили в час, у нас как километры в час. Кто прав?
Не совсем корректный пример, т.к. в разных странах применяются различные системы счисления Кроме того в Европе применяется метрическая система. из Википедии:
Цитата
В настоящее время метрическая система официально принята во всех государствах мира, кроме США, Либерии и Мьянмы (Бирма).
Данный пример можно было привести в том случае, если одни измеряют длину текста в байтах, другие в символах юникода, но на сам подход, какие знаки считаются, данный пример не применим.
Ты же хочешь подменить абсолютную скорость на относительную: на сколько автомобиль движется быстрее пешехода, идущего со скоростью 5км/час, даже если автомобиль движется со скоростью 60 км/час, то относительно пешехода его скорость - 55 км/час. И другие автомобили движутся относительно пешехода также на 5км/ч меньше (пешеход ведь все равно идет, так давайте из скоростей автомобилей уберем его скорость). На мой взгляд это не верно.
Но т.к. ты вынес в правила относительную методику расчета, без учета "=", то в своих ответах я буду указывать, что размер подсчитан с "=" (ну или забань меня за то, что я не соблюдаю правила)
ЗЫ: вероятно, данное обсуждение лучше вынести в отдельную тему
Сергей, я многократно озвучивал свою позицию, но ты не хочешь ее услышать Повторюсь: 1. Невозможно ввести формулу без ввода знака "=", даже если использовать мастер функций или автосумму, то Excel сам добавляет этот знак в строку формул (именно знак!). Без данного знака получается текстовая константа, а не формула. Даже если вводится формула в ячейку через VBA, то ее нужно вводить Range("A1").Formula = "=SUM(B1:D1)", если знак "=" не указывать, то в ячейке будет текст. 2. При копировании всех знаков из строки формул, текст формулы содержит знак "=" 3. Если получать значение формулы из свойств ячейки любыми другими путями, то текст формулы сожержит знак "=" Range("A1").Formula =Ф.ТЕКСТ(A1) =ПОЛУЧИТЬ.ЯЧЕЙКУ(6;A1) =ПОЛУЧИТЬ.ФОРМУЛУ(A1) 4. Почему все поголовно на форуме, в т.ч. и ты, публикуя свои формулы, указывают их со знаком "="?
Фигурные скобки в формулах массива не являются символами, их не нужно вводить (как символы), при копировании текста формулы из ячейки или получения из свойств ячейки данные символы не копируются, соответственно при подсчете символов их не нужно учитывать.
В Европе (не во всей) и США скорость считают как мили в час, у нас как километры в час. Кто прав?
Не совсем корректный пример, т.к. в разных странах применяются различные системы счисления Кроме того в Европе применяется метрическая система. из Википедии:
Цитата
В настоящее время метрическая система официально принята во всех государствах мира, кроме США, Либерии и Мьянмы (Бирма).
Данный пример можно было привести в том случае, если одни измеряют длину текста в байтах, другие в символах юникода, но на сам подход, какие знаки считаются, данный пример не применим.
Ты же хочешь подменить абсолютную скорость на относительную: на сколько автомобиль движется быстрее пешехода, идущего со скоростью 5км/час, даже если автомобиль движется со скоростью 60 км/час, то относительно пешехода его скорость - 55 км/час. И другие автомобили движутся относительно пешехода также на 5км/ч меньше (пешеход ведь все равно идет, так давайте из скоростей автомобилей уберем его скорость). На мой взгляд это не верно.
Но т.к. ты вынес в правила относительную методику расчета, без учета "=", то в своих ответах я буду указывать, что размер подсчитан с "=" (ну или забань меня за то, что я не соблюдаю правила)
ЗЫ: вероятно, данное обсуждение лучше вынести в отдельную темуMCH
Сообщение отредактировал MCH - Четверг, 05.09.2013, 09:03
2. При копировании всех знаков из строки формул, текст формулы содержит знак "=" 3. Если получать значение формулы из свойств ячейки любыми другими путями, то текст формулы сожержит знак "="
И? Ему и положено его содержать. Повторюсь: Какое отношение это имеет к длине формулы? Знак "=" всегда есть в любой формуле. ЗАЧЕМ ЕГО СЧИТИТАТЬ-ТО?
Почему все поголовно на форуме, в т.ч. и ты, публикуя свои формулы, указывают их со знаком "="?
Для того что бы пользователь мог скопировать формулу с форума и вставить в свой файл. Опять-таки к длине формулы это не имеет никакого отношения. К тому же, в "Мозговом штурме" мы не выкладываем формулы до момента "вскрытия", а просто пишем кол-во знаков
в разных странах применяются различные системы счисления
Если тебе так будет удобнее понять, то представь что "Избушка" - это одна страна, а "Мозговой штурм" - это другая страна. В "Избушке" приняты мили, а в "Мозговом штурме" - километры. Ну или наоборот - не принципиально
другие автомобили движутся относительно пешехода также на 5км/ч меньше
Считаю твой пример некорректным, потому как в нем подразумевается наличие пешехода ВСЕГДА, и если пешеход есть всегда, то то как считать скорость (относительно дороги или пешехода) - это уже вопрос определения методики подсчета
2. При копировании всех знаков из строки формул, текст формулы содержит знак "=" 3. Если получать значение формулы из свойств ячейки любыми другими путями, то текст формулы сожержит знак "="
И? Ему и положено его содержать. Повторюсь: Какое отношение это имеет к длине формулы? Знак "=" всегда есть в любой формуле. ЗАЧЕМ ЕГО СЧИТИТАТЬ-ТО?
Почему все поголовно на форуме, в т.ч. и ты, публикуя свои формулы, указывают их со знаком "="?
Для того что бы пользователь мог скопировать формулу с форума и вставить в свой файл. Опять-таки к длине формулы это не имеет никакого отношения. К тому же, в "Мозговом штурме" мы не выкладываем формулы до момента "вскрытия", а просто пишем кол-во знаков
в разных странах применяются различные системы счисления
Если тебе так будет удобнее понять, то представь что "Избушка" - это одна страна, а "Мозговой штурм" - это другая страна. В "Избушке" приняты мили, а в "Мозговом штурме" - километры. Ну или наоборот - не принципиально
другие автомобили движутся относительно пешехода также на 5км/ч меньше
Считаю твой пример некорректным, потому как в нем подразумевается наличие пешехода ВСЕГДА, и если пешеход есть всегда, то то как считать скорость (относительно дороги или пешехода) - это уже вопрос определения методики подсчетаSerge_007
Если тебе так будет удобнее понять, то представь что "Избушка" - это одна страна, а "Мозговой штурм" - это другая страна. В "Избушке" приняты мили, а в "Мозговом штурме" - километры.
В своем посте я ни слова не говорил про "Избушку". К тому же система счисления и методика подсчета это разные вещи.
Ну хочешь ты считать относительные величины - ну считай, я же не против, я буду считать в абсолютных величинах С твоим подходом можно не считать в макросах строки Sub и End Sub (они же есть во всех макросах), в формулах ссумирования не считать функцию СУММ и скобки (они же есть во всех формулах суммирования, где используется СУММ) и т.п.
Мое мнение, "=" - это часть формулы, поэтому я его и считаю Это не формула
Если тебе так будет удобнее понять, то представь что "Избушка" - это одна страна, а "Мозговой штурм" - это другая страна. В "Избушке" приняты мили, а в "Мозговом штурме" - километры.
В своем посте я ни слова не говорил про "Избушку". К тому же система счисления и методика подсчета это разные вещи.
Ну хочешь ты считать относительные величины - ну считай, я же не против, я буду считать в абсолютных величинах С твоим подходом можно не считать в макросах строки Sub и End Sub (они же есть во всех макросах), в формулах ссумирования не считать функцию СУММ и скобки (они же есть во всех формулах суммирования, где используется СУММ) и т.п.MCH
Сообщение отредактировал MCH - Четверг, 05.09.2013, 11:40