Суббота, 07 Декабря 2024, 02:53

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Какой синтаксис вам больше нравится
Какой синтаксис вам больше нравится?
1. Delphi syntax [ 7 ] [7.45%]
2. C syntax [ 60 ] [63.83%]
3. Other [ 27 ] [28.72%]
Всего ответов: 94
Andrey_MДата: Пятница, 20 Сентября 2013, 16:20 | Сообщение # 41
старожил
Сейчас нет на сайте
Цитата (PBPROG)
Что вам не понравилось в присвоении 0 переменной done?

То, что это происходит 5 раз на десятистрочном участке кода.


ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
PBPROGДата: Пятница, 20 Сентября 2013, 16:37 | Сообщение # 42
постоянный участник
Сейчас нет на сайте
Есть предложения как можно по другому выйти из цикла первого уровня, если ни разу не было выполнено условие внутри цикла второго уровня?
Andrey_MДата: Пятница, 20 Сентября 2013, 16:44 | Сообщение # 43
старожил
Сейчас нет на сайте
Цитата (PBPROG)
Есть предложения как можно по другому выйти из цикла первого уровня, если ни разу не было выполнено условие внутри цикла второго уровня?

exit


ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
PBPROGДата: Пятница, 20 Сентября 2013, 16:53 | Сообщение # 44
постоянный участник
Сейчас нет на сайте
Цитата (Andrey_M)
exit
Это если условие выполнено.
Но здесь нужна проверка чтобы в цикле условие НИ РАЗУ не было выполнено.
Переменная служит своеобразным флагом.
СибирскийДата: Пятница, 20 Сентября 2013, 17:10 | Сообщение # 45
Javatar
Сейчас нет на сайте
PBPROG, мне кажется, или вы написали неправильно? Работать-то оно будет, но ваш алгоритм полная фигня

Добавлено (20.09.2013, 17:10)
---------------------------------------------
Это какой-то пузырек, оптимизированный, да не оптимизированный


PBPROGДата: Пятница, 20 Сентября 2013, 17:16 | Сообщение # 46
постоянный участник
Сейчас нет на сайте
Да это пузырек, но не я его писал. Взял первый попавшийся код на форуме.
nonameДата: Пятница, 20 Сентября 2013, 17:57 | Сообщение # 47
заслуженный участник
Сейчас нет на сайте
Цитата (PBPROG)
Посмотрите на процедуру сортировки массива.

ну, и не к такому можно привыкнуть. хотя лично меня перспектива писать лишние буковки не привлекает.

лучше я после закрывающей скобки напишу коммент, точно и ясно поясняющий, что мы закрываем, там где этот коммент нужен.

а в этом вашем бэйсике получается, что если будет идти подряд 10 концов if, то мне придётся написать 10 раз подряд EndIf, а потом ещё и поясняющий коммент.

что ещё меня настораживает- так это отсутствие разделителей в конце строк. можно ли написать несколько операторов одной строкой? удобно бывает сделать в одну строку присваивания нескольким локальным переменным.

ну и необходимость заранее объявлять всякие i - это тоже жесть. в C++ объявил i в цикле, использовал и забыл- она будет существовать только в пределах цикла.

Цитата (Andrey_M)
То, что это происходит 5 раз на десятистрочном участке кода.

изменять флаг в условии внутри цикла- обычное дело. а вам не мешало бы ознакомиться с популярными алгоритмами, чтобы не удивляться подобным приёмам. вот, в данном случае, вы видели сортировку методом пузырька.

Цитата (PBPROG)
Переменная служит своеобразным флагом.

а чего у вас флаг не булевский?

и зачем вы переменные объявляете как Static? ваша же функция не пользуется результатами предыдущих выполнений функции.

Добавлено (20.09.2013, 17:55)
---------------------------------------------
Цитата (Andrey_M)
Вот почему я считаю делфи/паскаль понятным языком. Потому что выйти из блока exitом логичнее, чем возвращать значение 0 программе...

зато в C есть нормальный return. и везде где надо завершить функцию- пишем одно и тоже- return. причём компилятор проверит, чтобы вы поcле return указали корректное значение того, что надо возвращать. всё предельно чётко и ясно. есть и exit, но он предназначен для выхода из программы вообще.

а что имеем в Delphi: функция завершается по End, но может завершиться и по Exit. а что в каком из случаев функция вернёт- ищите в коде. забыли перед очередным выходом присвоить нужное значение переменной Result? - ваши проблемы. тут вам компилятор вам не помощник.

Добавлено (20.09.2013, 17:57)
---------------------------------------------
Цитата (Сибирский)
Это какой-то пузырек, оптимизированный, да не оптимизированный

совершенно обычный нормальный пузырёк.


все правила форумной игры Дуэль Программистов

Сообщение отредактировал noname - Пятница, 20 Сентября 2013, 18:02
TheAceДата: Пятница, 20 Сентября 2013, 17:58 | Сообщение # 48
Pain is Pleasure
Сейчас нет на сайте
Цитата (Andrey_M)
Вот почему я считаю делфи/паскаль понятным языком. Потому что выйти из блока exitом логичнее, чем возвращать значение 0 программе...

гхкм...

function addition(a:int; b:int):int
begin
addition := a+b;
end;

int addition(int a, int b)
{
return a+b;
}

И кто там что-то говорит про "понятность"?


The End [3D][TPS]

Сообщение отредактировал TheAce - Четверг, 03 Октября 2013, 19:09
nonameДата: Пятница, 20 Сентября 2013, 18:21 | Сообщение # 49
заслуженный участник
Сейчас нет на сайте
Цитата (PBPROG)
Да это пузырек, но не я его писал. Взял первый попавшийся код на форуме.

ну тогда вопросы по коду- не к вам. я вообще думаю, что мои вопросы к этому коду связаны с ограничениями и неудобствами PureBasic.

Добавлено (20.09.2013, 18:01)
---------------------------------------------

Цитата (TheAce)
function addition(int a, int b):int
{
addition := a+b;
}

а, точно. ведь вместо Result может быть использовано ещё и имя функции. вообще жесть. остальное что я думаю по этому поводу- написал выше.

Добавлено (20.09.2013, 18:21)
---------------------------------------------

Цитата (noname)
что ещё меня настораживает- так это отсутствие разделителей в конце строк. можно ли написать несколько операторов одной строкой? удобно бывает сделать в одну строку присваивания нескольким локальным переменным.

ну или наоборот- бывает удобно перенести кусок длинной строки на следующую строку.


все правила форумной игры Дуэль Программистов
PBPROGДата: Пятница, 20 Сентября 2013, 18:43 | Сообщение # 50
постоянный участник
Сейчас нет на сайте
Цитата (noname)
хотя лично меня перспектива писать лишние буковки не привлекает. лучше я после закрывающей скобки напишу коммент, точно и ясно поясняющий, что мы закрываем, там где этот коммент нужен.
В IDE есть автодополнение и достаточно ввести первые символы и выбрать в списке требуемое ключевое слово. smile
Комметны это тоже "буковки" и если их писать для каждой (или почти каждой) закрывающей скобки, то количество буковок может быть не малым. И для комментов нет автодополнения. wink

Цитата (noname)
что ещё меня настораживает- так это отсутствие разделителей в конце строк. можно ли написать несколько операторов одной строкой?
Двоеточие - разделитель строки.
Код
a=0 : b=10


Цитата (noname)
ну и необходимость заранее объявлять всякие i - это тоже жесть.
Нет их не нужно заранее объявлять. Но в данном случае, они объявлены статическими переменными (понятия не имею почему).
Строку "Static len, done, i" можно исключить из кода без потери его функциональности.

Цитата (noname)
и зачем вы переменные объявляете как Static? ваша же функция не пользуется результатами предыдущих выполнений функции.
Код не мой и как писал выше, перемеренные не обязательно должны быть статическими. Разница в том, что статические переменные, имеют постоянные адреса, а не хранятся в стеке текущего потока.

Цитата (noname)
а чего у вас флаг не булевский?
В данном случае, это не имеет большого значения. Тем более что переменная не может иметь размер 1 бит.

Добавлено (20.09.2013, 18:43)
---------------------------------------------

Цитата (noname)
ну или наоборот- бывает удобно перенести кусок длинной строки на следующую строку.
Это тоже можно. Например эта конструкция будет нормально компилироваться и правильно работать.
Код
hWnd = CreateWindowEx_(0,  
                        WindowClass,  
                        "Окно",  
                        #WS_SYSMENU |
                        #WS_MINIMIZEBOX,
                        0, 0, 200, 120,
                        0, 0, 0, 0)
СибирскийДата: Пятница, 20 Сентября 2013, 18:45 | Сообщение # 51
Javatar
Сейчас нет на сайте
А мне кажется, или автор решил развести холивар?

Andrey_MДата: Пятница, 20 Сентября 2013, 19:01 | Сообщение # 52
старожил
Сейчас нет на сайте
Цитата (noname)
зато в C есть нормальный return. и везде где надо завершить функцию- пишем одно и тоже- return. причём компилятор проверит, чтобы вы поcле return указали корректное значение того, что надо возвращать. всё предельно чётко и ясно. есть и exit, но он предназначен для выхода из программы вообще.

????
Офигеть, логично: завершить функцию - пишем return. Причём с нудным компилятором, которому важно, что именно возвращать. И ещё показывать это как достоинство... стыдоба.

Цитата (PBPROG)
В данном случае, это не имеет большого значения. Тем более что переменная не может иметь размер 1 бит.

Ага, есть разница, переменная однобайтовая или 64-байтная?


ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
nonameДата: Пятница, 20 Сентября 2013, 19:02 | Сообщение # 53
заслуженный участник
Сейчас нет на сайте
PBPROG, почитал немного про PureBasic. в-общем, ничего особо страшного не заметил.

Цитата (PBPROG)
Разница в том, что статические переменные, имеют постоянные адреса, а не хранятся в стеке текущего потока.

вот, чтобы понять, нужно ли это в данном алгоритме нужно формулировать разницу в терминах алгоритма, а не реализации. в данном случае смысла нет, ибо значения оставшиеся после предыдущего вызова функции не используются(затираются новыми).

Цитата (PBPROG)
В данном случае, это не имеет большого значения. Тем более что переменная не может иметь размер 1 бит.

в данном случае переменная по-умолчанию будет типа Long и занимать 4 байта, но это не важно. такие мелочи никто не ловит. экономить имеет смысл на больших массивах или структурах.

на C++ бы нормалный проггер объявил бы флаг как bool. и это даёт доп инфу, о том, как эта переменная будет использоваться в алгоритме. не потому что это важно, а потому что всё равно переменную нужно как-то объявить. в этом смысле C строже.

а в PureBasic вообще нет булевских переменных %)) не, ну чё- можно и без них. зато в бэйсике работа со строками удобнее.

вообще хороший нормалный бэйсик- удобная вещь.

надо бы как-нить изучить отличия Visual Basic 6 от Pure Basic.


все правила форумной игры Дуэль Программистов
PBPROGДата: Пятница, 20 Сентября 2013, 19:15 | Сообщение # 54
постоянный участник
Сейчас нет на сайте
Цитата (Andrey_M)
Ага, есть разница, переменная однобайтовая или 64-байтная?
Простите, какой проц нативно поддерживает 64-байтные переменные? biggrin wink

Цитата (noname)
а в PureBasic вообще нет булевских переменных
Это не вызывает затруднений, ведь как писал выше, проц нативно не поддерживает однобитовые переменные. Переменную можно объявить однобайтовой и использовать как булевую.
nonameДата: Пятница, 20 Сентября 2013, 19:29 | Сообщение # 55
заслуженный участник
Сейчас нет на сайте
Цитата (Andrey_M)
Офигеть, логично: завершить функцию - пишем return. Причём с нудным компилятором, которому важно, что именно возвращать. И ещё показывать это как достоинство...

да, завершать функцию всегда одним и тем же оператором return- действительно логичнее, чем иметь для этих же целей End, Exit, Result и имя переменной совпадающее с именем функции.

явно указать одним оператором, что функция возвращает, вместо того, что бы использовать оператор Exit, до которого ещё надо занести значение в какую-то переменную.. ну вот представь- читаешь ты чужую программу. нашёл Exit. как теперь понять, что функция вернёт? для этого надо сначала выполнить поиск по ключевому слову Result, а потом ещё по имени функции, чтобы понять, что именно в эту переменную будет занесено последним.

и возможность дать компилятору отловить хоть какие-то ошибки- никогда не лишняя.

Добавлено (20.09.2013, 19:29)
---------------------------------------------
Цитата (PBPROG)
Это не вызывает затруднений, ведь как писал выше, проц нативно не поддерживает однобитовые переменные. Переменную можно объявить однобайтовой и использовать как булевую.

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

но, да- вопрос не принципиальный. то есть- не стоит спора.


все правила форумной игры Дуэль Программистов

Сообщение отредактировал noname - Пятница, 20 Сентября 2013, 19:33
TheAceДата: Пятница, 20 Сентября 2013, 19:35 | Сообщение # 56
Pain is Pleasure
Сейчас нет на сайте
Цитата (Andrey_M)
Причём с нудным компилятором, которому важно, что именно возвращать. И ещё показывать это как достоинство... стыдоба.

Если один компилятор сует тебя рылом прямо в твою ошибку - это хороший компилятор. Если другому компилятору насрать - это плохой, мать его, компилятор. Чуешь разницу?


The End [3D][TPS]
СибирскийДата: Среда, 02 Октября 2013, 18:38 | Сообщение # 57
Javatar
Сейчас нет на сайте
Andrey_M, вот ты реально глупый совсем. Ничего не смыслишь, но всем свое мнение пытаешься рассказать. Зачем? Все поняли, что ты конченный быдлокодер и перспектив у тебя нет...

  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг