Ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Ограничения: максимум вложений в сообщении — 3 (3 осталось), максимальный размер всех файлов — 300 КБ, максимальный размер одного файла — 100 КБ
Снимите пометку с вложений, которые необходимо удалить
Перетащите файлы сюда или используйте кнопку для добавления файлов
Вложения и другие параметры
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр

Сообщения в этой теме

Автор Bhudh
 - июля 20, 2021, 14:44
Цитата: maratique от июля 20, 2021, 14:34Это какие?
Это которые вводятся без каких-либо ключевых слов, но при этом находятся в функции.
Автоматического local в JS нет.

А за сишное ((k=cir.indexOf(c))>=0) в JS вообще бьют больно.
Автор maratique
 - июля 20, 2021, 14:34
ЦитироватьА глобальные переменные таки уберите. 3 штуки.
Это какие?
Я вообще ненавижу многословные языки программирования. Такое ощущение, что их создавали старые, чопорные мудаки. Я бы как сделал:

Всё переменные глобальные, кроме определённых в блоке. А если надо скрыть, то заключаем их в блок.

Никаких ";". Разве что вместо end

Самый, на мой взгляд, естественный язык — это Lua. Но и он страдает от вышеперечисленного.
Автор Bhudh
 - июля 20, 2021, 13:25
Можно даже одной регуляркой, если знать, что replace принимает обрабатывающую функцию. :eat:
А глобальные переменные таки уберите. 3 штуки.
Автор maratique
 - июля 20, 2021, 08:05
Интересно, можно только регулярками?
Автор maratique
 - июля 20, 2021, 07:58
На 172 символа короче, т. е. на 31%

function ruslat(s)
{
   function latin(c)
   {
      cir="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя"
      lat="AaBbVvGgDdEeooZzZzIihhKkLlMmNnOoPpRrSsTtUuFfXxCcCcSsXx''YyQqEeuuaa"
      if((k=cir.indexOf(c))>=0)return lat[k]
      return c
   }
   a=[]
s=s.replace(/([ёйюя])/g,"j$1").replace(/([ЁЙЮЯ])/g,"J$1").replace(/([ЖжЧчШшЩщЭэ])/g,"$1h")
   for(let c of s)a.push(latin(c))
   return a.join('').replace(/jh([^aou]|$)/g,"j$1").replace(/Jh([^aou]|$)/g,"J$1")
}
Автор kemerover
 - июля 20, 2021, 04:27
Извините, конечно, но такие многоэтажки из case это не велосипед, а, скорее, говновоз.
Автор Bhudh
 - июля 20, 2021, 01:28
Чаще всего они обозначают звук [й].
Автор maratique
 - июля 20, 2021, 01:11
Не ну диграфы для Ъ, Ь — это за гранью добра и зла. Они же даже звуков не обозначают!
Автор Bhudh
 - июля 20, 2021, 01:03
Цитата: maratique от июля 20, 2021, 00:20Я смотрел проги Bhudh'а и Lugat'а 9-тилетней давности
Где Вы там мою увидели? И Люгата, собственно, не Люгата, он там писал источник кода, и он примерно той же степени аматористости, что и Ваш.

А громоздкость моего нынешнего (и, в принципе, и тогдашнего, я его не менял) можете заценить:
Цитата: var Rus = {
   Diphths : 'ёжшщъьэяЁЖШЩЪЬЭЯ1',
   Monos   : 'абвггдезһийклмнопрстуфхцчыюӕѐАБВГДЕЗҺИЙКЛМНОПРСТУФХЦЧЫЮҺ1'
},
   Lat = {
   Diphths : 'ohzhshchuhihehahOhZhShChUhIhEhAh2',
   Monos   : 'abvgɡdezhijklmnoprstufxcqwyæèABVGDEZHIJKLMNOPRSTUFXCQWYH1'
};

function rus2tr(str){
   if(!str)str=Rus.Monos;
   for(var s in Rus){
      for(var r=0,l=0,len=Rus[s].length-1,δR=Number(Rus[s][len]),δL=Number(Lat[s][Lat[s].length-1]);r < len; r+=δR,l+=δL){
         str = str.replace(RegExp(Rus[s].substr(r,δR),'g'),Lat[s].substr(l,δL));
      }
   }
   str = str.replace(RegExp('\n','g'),'<br />');
   return str;
}

Сделаете проще — честь Вам и хвала.
Автор maratique
 - июля 20, 2021, 00:22
Профессиональные программисты же пишут много кода, нет времени на обслюнавливание. И получается очень труднопонимаемо и неизящно.

А меня никто не торопит, и я пишу с параноидальным аккуратизмом.