• Как распознать частоту звука (ноты) в C#?

    Использовать, например, эту библиотеку. Либо вот сразу на C#.
    Ответ написан
    Комментировать
  • Как распознать частоту звука (ноты) в C#?

    Griboks
    @Griboks Куратор тега C#
    Использовать преобразование Фурье для получения спектра записи. Затем проанализировать спектр на наличие гармоник нот.
    Ответ написан
    2 комментария
  • Как решить задачу с массивом?

    Stalker_RED
    @Stalker_RED
    Псевдокод:
    сумма = 0
    массивА = [234, 64, 8, 47567]
    массивБ = [0,0,0,0]
    for (i=0; i < длина_массивА; i++) {
      сумма = сумма + массивА[i]
      массивБ[i] = сумма / (i+1)
    }
    Ответ написан
    Комментировать
  • Перенос клиента в веб. ASP.NET Core MVC или ASP.NET Core Web API + Angular?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    рекомендую к прочтению - https://habr.com/company/epam_systems/blog/429766/

    однако сам бы поддержал совет Роман Мирр - попробовать оба подхода на небольшом макетном приложении. так вы лучше почувствуете и поймете что вам подойдет
    Ответ написан
    Комментировать
  • Есть ли аналог decimal типа данных в си++?

    @res2001
    Developer, ex-admin
    Использовать библиотеки для больших/длинных чисел.
    Ответ написан
    Комментировать
  • С чего лучше начинать VisualBasic или C#?

    ibeetle
    @ibeetle
    Танцы с бубнами:)
    C#
    Ответ написан
    Комментировать
  • С чего лучше начинать VisualBasic или C#?

    lam0x86
    @lam0x86
    VisualBasic (тот, что .NET) почти ничем не отличается от C#, кроме синтаксиса. Есть даже конвертеры из одного языка в другой - пишете программу на VB, получаете на выходе C# (и наоборот). Но я не советую начинать с VB, так как это фактически мёртвый язык, несмотря на то, что в самом авторитетном рейтинге популярности языков программирования он выше C#. Причина тому - США. Там до сих пор активно нанимают VB-разработчиков, которым приходится поддерживать устаревший код. Особенно это касается банковского сектора. Платят за VB больше, но копаться в легаси - то ещё удовольствие.
    В общем, учитывая, что оба языка - детища Microsoft, и что сама компания активно продвигает C#, лучше сразу начинать с него.
    Ответ написан
    Комментировать
  • Оператор двоеточия (::) java, какой принцип работы?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Прежде всего, квадраточие - это оператор, а не функция. Поэтому никаких аргументов он не принимает. У него есть левая часть выражения и правая часть выражения, как у оператора точка, например. Оператор точка позволяет получить значение поля, указанного в правой части выражения, класса, указанного в левой - SomeClass.someField Так же и квадроточие позволяет получить ссылку на метод, указанный в правой части, класса, указанного в левой.

    Компилятор выводит тип ссылки из контекста и приводит её к соответствующему функциональному интерфейсу. В частности метод forEach принимает Consumer<? super T>, к нему и будет приведена ссылка на метод println, возвращаемая выражением System.out::println

    На уровне виртуальной машины, как ссылки на методы, так и лямбды - это создаваемые в рантайме прокси-классы. Пример их генерации и композиции вы можете увидеть здесь.
    Ответ написан
    Комментировать
  • Какая ошибка в коде (C#)?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    А где сама переменная s?
    да!..
    .. учитывая предыдущий вопрос - а в чем собственно трудности? (см скрин)
    TUeYmph.png

    ps есть ощущение, что вы используете подход, как в п.4 (по ссылке)
    Ответ написан
    Комментировать
  • Оператор двоеточия (::) java, какой принцип работы?

    Это ссылка на метод. Ссылку можно получить на метод с любым количеством параметров.

    Но подставить ее можно только туда, где она подойдёт по типу.
    Ответ написан
    Комментировать
  • Какие книги по С++17 посоветуете?

    Крайне рекомендую "Мейерс С. - Эффективный и современный C++. 42 рекомендации по использованию C++11 и C++14". Не по 17-му стандрарту, но умные указатели и не в нём появились.
    Ответ написан
    Комментировать
  • Это одно и тоже с точки зрения стандарта?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Казалось бы, в обоих случаях у нас вызов конструктора,

    А вот и нет. A a(); -- это объявление функции a, без параметров, возвращающей значение типа A.


    И получаем странную ошибку при компиляции:
    ssd1306_128x32_i2c_test.ino:50:3: error: request for member 'f' in 'a', which is of non-class type 'A()'

    В сообщении об ошибке об этом явно написано.
    Ответ написан
  • Скрыть область видимости переменной?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Переменную можно поместить в блок, тогда переменная будет ограничена только этим блоком:
    int Test()
    {
        int result = 0;
    
        {
            int i = 10;
            for (int j = 0; j < 10; j++)
            {
                result += i;
            }
        }
        {
            string i = "xyz";
            Console.WriteLine(i);
        }
        return result;
    }
    Ответ написан
    1 комментарий
  • Цикл For в Java?

    Beshere
    @Beshere
    Разработчик
    System.out.println("run = " + run);
    Ответ написан
    1 комментарий
  • Java. Как получить все слова из строки введенные через пробел?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    String[] words = text.split(" ")
    Ответ написан
    Комментировать
  • Калькулятор с учетом скобок на Си?

    @Cheypnow
    Для этого легче всего использовать запись в форме обратной польской нотации.
    Гугли алгоритм сортировочной станции, найдешь реализацию и на Си.
    Ответ написан
    1 комментарий
  • Как удалить все уникальные элементы из коллекции?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    list = list.stream()
                .collect(Collectors.groupingBy(
                    Function.identity(),
                    Collectors.counting()))
                .entrySet()
                .stream()
                .filter(e -> e.getValue() > 1)
                .map(Map.Entry::getKey)
                .collect(Collectors.toList());
    Ответ написан
    3 комментария
  • C# vs Php. Что выбрать?

    @tiqq
    По личному опыту скажу, что C# и Visual Studio - это самый эстетически приятный тандем из всех, с которыми приходилось работать. C# прост, понятен и элегантен настолько, насколько это возможно.

    Касательно перспектив:

    Если в Ваших планах карьера программиста, то я бы однозначно посоветовал C# и .NET. Так как .NET-программистов значительно меньше, чем php-разработчиков, как следствие зарплаты значительно выше(но и вакансий меньше). Так же безусловным плюсом является то, что в случае с C# Вы не ограничены лишь веб-приложениями: на C#, помимо веб приложений, пишутся десктопные приложения, мобильные кроссплатформенные приложения(Xamarin), игры, о которых Вы упомянули, а это значит, что если, к примеру, какое-то направление Вам пришлось не по душе, Вы за гораздо меньшее время сможете переквалифицироваться. В случае же с php Вы имеете дело только с веб-приложениями.

    Если же Вы видите себя в будущем исключительно веб-ориентированным программистом, то, возможно, следует рассмотреть php. Бэкенд большинства веб-сайтов(особенно относительно простых) пишется именно на php, и, скажем, без работы Вы точно не останетесь, хоть и за в среднем меньшие деньги, чем если будете C#-программистом.

    Итог: я бы посоветовал C#. Погружайтесь в платформу .NET и становитесь экспертом. Удачи)
    Ответ написан
    3 комментария
  • C# - Как сделать выборку из текста?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    https://www.newtonsoft.com/json

    если вам предложат регулярки, стоит сравнивать производительность (регулярки не блещут скоростью upd все верно, простотой тоже, тривиальные случаи не считаем )))

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

    ps можно еще ленивый вариант - Split по
    {"userId":"
    тогда первый элемент отбрасываем, все остальные начинаются с искомой величины, надо только хвост
    "} bla-bla-bla
    отрубить

    ps держите прототип, содержит все 3 упомянутые подхода, но перфоманс можно сравнить только на реально больших данных )).. (но на больших данных могут и баги полезть ;)

    spoiler

    вопрос понравился, и выдалось время.. хотя и не за 15 минут, врать не буду, часа полтора порядка 45 минут ушло на заковырки )) в основном с json (мало опыта)

    upd и уже исправлено - была заготовка класса для частичной json выборки, но она не нужна

    using Newtonsoft.Json.Linq;
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace parsejson111
    {
        class Program
        {
            const string data = "{\"anchor\":\"aaabbbccc==\",\"members\":[{\"userId\":\"111\"},{\"userId\":\"2222\"},{\"userId\":\"333\"},{\"userId\":\"444\"}],\"has_more\":true}";
            // фишки замера заложены, но разница может проявиться только на больших объемах ))
    
            static void Main(string[] args)
            {
                Console.WriteLine("data:");
                Console.WriteLine(data);
    
                var sw = new Stopwatch();
                sw.Start();
                var ts = sw.Elapsed; // лень объявлять тип
    
                json();
                hand();
                lazy();
    
                sw.Stop();
                Console.WriteLine("press any key to continue...");
                Console.ReadKey();
    
                void json() // возможно существует более элегантный вариант. тут у меня опыта мало ))
                {
                    sw.Reset();
                    Console.WriteLine("... json");
                    var j = JObject.Parse(data);
                    var r = j["members"].Children().ToList();
                    foreach (var u in r)
                    {
                        var uid = JObject.Parse(u.ToString());
                        var id = uid["userId"].Value<string>();
                        Console.WriteLine(id);
                    }
                    ts = sw.Elapsed;
                    Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
                }
    
                void hand() // зато тут гарантирую - оптимизировать лучше не реально, и по перфомансу вряд ли можно лучше ))
                {
                    sw.Reset();
                    Console.WriteLine("... hand");
                    var p = 0;
                    while ((p = data.IndexOf("{\"userId\":\"", p)) > 0)
                    {
                        p += 11; //длина шаблона. заодно избегаем риска зацикливания
                        var f = data.IndexOf("\"}", p);
                        Console.WriteLine(data.Substring(p, f - p));
                    }
                    ts = sw.Elapsed;
                    Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
                }
    
                void lazy()
                {
                    sw.Reset();
                    Console.WriteLine("... lazy");
                    var t = data.Split(new string[] { "{\"userId\":\"" }, StringSplitOptions.RemoveEmptyEntries);
                    for (var i = 1; i < t.Length; i++) // здесь и везде - обработка пустого множества на вашей совести
                    {
                        var id = t[i].Split(new string[] { "\"}" }, StringSplitOptions.RemoveEmptyEntries);
                        Console.WriteLine(id[0]);
                    }
                    ts = sw.Elapsed;
                    Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
                }
            }
        }
    }

    Ответ написан
    Комментировать
  • Что не так с кодом?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что не так с кодом?
    operator int() const { return *this; }

    То, что он вместо int возвращает *this, неизвестно какого типа?
    Ответ написан
    6 комментариев