Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование, т. 6

Рекомендованные сообщения

Гость Camus

На самом деле, javascript потому что java была в то время популярна. А оригинальное назавние - Mocha (так и повелось, хех) а потом livescript. Тупо на популярности сыграли. Синтакс кстати сишный.

Поделиться сообщением


Ссылка на сообщение
  Camus написал 16.07.2015 в 12:45:

В JS так вообще бросит эксепшн too much recursion, потому поддержка хвостовой рекурсии неочень.

Да вообще странно, когда такие задания на js'e дают. У нас бы сказали на каком-нить haskell'e написать, студентоту развлечь.

 

  Camus написал 16.07.2015 в 12:45:

Все это одно и тоже, и все это программирование.

Приходишь такой на интервью или там на конференцию какую и гордо говоришь - Я html-программист!

Поделиться сообщением


Ссылка на сообщение

а у джавы чей синтаксис по-твоему?))


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
Гость Camus
  jsfwa написал 16.07.2015 в 15:22:
  Camus написал 16.07.2015 в 12:45:

Да вообще странно, когда такие задания на js'e дают. У нас бы сказали на каком-нить haskell'e написать, студентоту развлечь.

 

  Camus написал 16.07.2015 в 12:45:

Приходишь такой на интервью или там на конференцию какую и гордо говоришь - Я html-программист!

Формочки часть программирования, странно спорить с этим.

 

  Kant написал 16.07.2015 в 15:22:

а у джавы чей синтаксис по-твоему?))

))

Зачем синтакс с джавы слизывать, если он сишный?

Поделиться сообщением


Ссылка на сообщение
  Kant написал 16.07.2015 в 15:16:
  Just.Doit написал 16.07.2015 в 07:59:

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

Больше схожего ничего нет.

В каждом браузере находится свой интерпретатор джаваскрипта. Хтмл страница либо содержит в себе скрипты напрямую, либо указывает, откуда их скачать. И события страницы эти скрипты и вызвают.

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

 

 

 

 

 

 

 

 

А qt == html это просто :avtorklif:

Показать больше  

 

Я ж там выше кидал ссылку, почему жс стал называться жс. Сам так и не дочитал, да и не старался запомнить, просто бегло пробежал.

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

Поделиться сообщением


Ссылка на сообщение
  Camus написал 16.07.2015 в 15:26:
  jsfwa написал 16.07.2015 в 15:22:
Формочки часть программирования, странно спорить с этим.

 

  Kant написал 16.07.2015 в 15:22:
))

Зачем синтакс с джавы слизывать, если он сишный?

зачем разделять еслди у них один синтаксис

 

очень крутые котейки


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Гость Camus

Очень смешно

Поделиться сообщением


Ссылка на сообщение

/* squeeze: удаляет все с из s */
void squeeze(char s[], int с)
{
int i, j;
for (i = j = 0; s[i] != '\0'; i++)
 if (s[i] != c)
	 s[j++] = s[i];//вылетает на этой строчке
s[i] = '\0';
}

почему эта функция - взята из книги Кернигана Ритчи - отказывается работать

Поделиться сообщением


Ссылка на сообщение
  P0JIT0H написал 16.07.2015 в 21:56:

почему эта функция - взята из книги Кернигана Ритчи - отказывается работать

http://cpp.sh/4r67 niet

Поделиться сообщением


Ссылка на сообщение

Потому что ты ее неправильно вызываешь.

 

А на том сайте кстати странный баг. Установка '\0' игнорируется и выводит всю покореженную строку, а не только замененную часть :hmm:


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

она не игнорируется

там просто индекс неверный

должно быть

s[j] = '\0';

а не

s = '\0';

иначе оно ставит его всегда туда где он уже стоит, а надо в конец новой строки, т.е. j++ после там где последний раз шифтнулась буква

Поделиться сообщением


Ссылка на сообщение

вообще, должно быть

void squeeze(std::string& s, char c) {

s.erase(std::remove(s.begin(),s.end(),c),s.end());

}

Поделиться сообщением


Ссылка на сообщение
  TheDeadSkin написал 17.07.2015 в 09:24:

она не игнорируется

там просто индекс неверный

должно быть

s[j] = '\0';

а не

s = '\0';

иначе оно ставит его всегда туда где он уже стоит, а надо в конец новой строки, т.е. j++ после там где последний раз шифтнулась буква

Показать больше  

это да

  jsfwa написал 17.07.2015 в 00:02:
  P0JIT0H написал 16.07.2015 в 21:56:

http://cpp.sh/4r67 niet

почему то же самое но с squeeze("qweerty", 'q'); Отказывается работать, я понимаю что в ориганале это массив char, а я передаю строку, но в чём конкретно ошибка?

Поделиться сообщением


Ссылка на сообщение
  TheDeadSkin написал 17.07.2015 в 09:24:

она не игнорируется

там просто индекс неверный

должно быть

s[j] = '\0';

а не

s = '\0';

иначе оно ставит его всегда туда где он уже стоит, а надо в конец новой строки, т.е. j++ после там где последний раз шифтнулась буква

Показать больше  

ебать я слепой :avtorklif:

 

  P0JIT0H написал 17.07.2015 в 12:50:

почему то же самое но с squeeze("qweerty", 'q'); Отказывается работать, я понимаю что в ориганале это массив char, а я передаю строку, но в чём конкретно ошибка?

в том что ты возможно неправильно передаешь?

код в студию


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

В плюсах есть аналог шарповской string.split()?

Прост мне надо сепарировать строку с числами и всякой хуетой и числа пушить в вектор. Ну и в векторе веселиться. Еще числа типа 0546 я так понял он читает будто число в 8ричной системе и чо с этим делать? Писать самому перевод в 10ную или есть в stl что- то для этого?


Тень огня четвертого поколения

Поделиться сообщением


Ссылка на сообщение
  Kant написал 17.07.2015 в 12:53:
  TheDeadSkin написал 17.07.2015 в 09:24:

ебать я слепой :avtorklif:

 

  P0JIT0H написал 17.07.2015 в 12:50:

в том что ты возможно неправильно передаешь?

код в студию

http://cpp.sh/3ej74

 

  TheDeadSkin написал 17.07.2015 в 09:24:

она не игнорируется

там просто индекс неверный

должно быть

s[j] = '\0';

а не

s = '\0';

иначе оно ставит его всегда туда где он уже стоит, а надо в конец новой строки, т.е. j++ после там где последний раз шифтнулась буква

Показать больше  

и бтв я же правильно понимаю что при s[j]='\0' память же всё равно останется выделена под ненужные символы, из оригинальной строки идущие после j

Поделиться сообщением


Ссылка на сообщение
  Matgen написал 17.07.2015 в 13:14:

В плюсах есть аналог шарповской string.split()?

Прост мне надо сепарировать строку с числами и всякой хуетой и числа пушить в вектор. Ну и в векторе веселиться. Еще числа типа 0546 я так понял он читает будто число в 8ричной системе и чо с этим делать? Писать самому перевод в 10ную или есть в stl что- то для этого?

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

Написать функцию для твоей задачи самому - 10 строк где-то.

 

vector<vector> outputvectors

for ( it ... ; it < strsize ; ++it)

if (std::isdigit(str[it])

{

auto startit = it;

while ( it < strsize && std::isdigit(str[it]) )

++it;

vector<char> chars_of_value(str.begin() + startit, std.begin() + it);

output_vectors.emplace_back(chars_of_value);

}

 

return output_vectors;

 

 

конвертация систем исчисления... вроде на самая тяжелая вещь, написать ее совсем изи можно. Что-то похожее уже готовое пользовал, только не вспомню из стл или буста или обычного С. Не та вещь которую юзаешь каждый день.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Да понятное дело это изи делается, цикл до конца строки, статиккаст то что между сепараторами и пушить в интовый вектор. Да и перевод изи делается. Просто у меня задача не из обретать велик на плюсах, а научиться писать на 11ых и осваивать стл. Спасибо

Хотя интересно во что статиккаст переведет, в инты или в интовый эквивалент в таблице 8битной (не помню название)

 


Изменено пользователем Matgen

Тень огня четвертого поколения

Поделиться сообщением


Ссылка на сообщение
  P0JIT0H написал 17.07.2015 в 13:37:

 

http://cpp.sh/3ej74

 

 

и бтв я же правильно понимаю что при s[j]='\0' память же всё равно останется выделена под ненужные символы, из оригинальной строки идущие после j

 

так а зачем ты заново константу передаешь в метод, после того, как уже инициализировал ей же массив?

http://cpp.sh/8cdc

тот сайт вообще борзый и даже код с просто варнингами не дает исполнять.

 

 

 

да, правильно понимаешь, память никто не чистит. Просто функции вывода смотрят на \0 и дальше ничего не выводят.

Если хочешь и обрезать лишнее в памяти, можешь сделать что-то типа

 

char* newStr = strdup(str);

free(str);

Он должен сделать копию старой строку только по \0 и следовательно не копировать всё лишнее

 

Но тебе это не надо как минимум потому, что ты вообще не выделяешь память на куче. Освобождать то и нечего.


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)
  Matgen написал 17.07.2015 в 13:58:

Да понятное дело это изи делается, цикл до конца строки, статиккаст то что между сепараторами и пушить в интовый вектор. Да и перевод изи делается. Просто у меня задача не из обретать велик на плюсах, а научиться писать на 11ых и осваивать стл. Спасибо

ну тогда скачай последний стандарт и смотри секции algorithm / numeric / string.

если где и есть - то там.

но в 11 плюсах конкретно сплита не было, может в 14 появился. потому что его можно реализовывать несколькими методами, и в целом создатели плюсов не хотят добавлять функции которые возвращают контейнеры контейнеров. или контейнер чего-либо вообще, например пар итераторов. А тут по-другому никак.

если только юзать string::find_first_of( "0123456789", .. ) для нахождения первого численного, сохраняя конечную позицию каждый раз и передавая в качестве аргумента


Изменено пользователем Tinplz

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...