Задать вопрос
  • Выделение фрагментов/блока текста пальцем и подсчет количества выделенных слов?

    @DmitrySolomennikov
    Для начала нужно научиться определять положение в тексте (т.е. позиция в символах) от экранных координат.
    Это позволит позиционировать один клик в тексте. Затем, в процессе манипуляции пользователя необходимо записывать все координаты, до которых пользователь дотянулся. Получится некоторая сетка.
    Далее, все координаты этой сетки переводятся в символьные координаты. Получается символьная сетка.
    По символьной сетке ищется минимальная/максимальная позиции затронутых символов, тем самым получая искомый диапазон символов.
    Можно поступить иначе, реализовав алгоритм поиска выпуклой оболочки для выделенных символов. Это уже должно определяться тем, как искомый диапазон обрабатывается в дальнейшем в программе. Кроме того, в этом случае необходимо еще учитывать символьные координаты границ предложений внутри абзацев, т.е. понимать, где края текста.

    Если предполагается, что областей может быть несколько, тогда необходимо дополнительно разработать метрики "отрыва" одной области от другой. Это может быть смещение по вертикали в 2 символа, например, или пауза в 400-500 мс, но это, опять же, определяется моделью использования разрабатываемой системы.
    Ответ написан
    Комментировать
  • Что надо поменять чтобы переменные стали локальными вместо глобальных?

    @DmitrySolomennikov
    #include "stdafx.h"
    #include <iostream>
    #include <stdio.h>
    #include <locale.h>
    #include <string.h>
    struct detail { char name[50]; int price; int col; };
    
    void v(int s, detail const (*mas)[5]) {
        for (int i = 0; i < s; i++) {
            printf_s("Деталь №%d\n", i + 1);
            printf_s("Введите название детали:");
            scanf_s("%s", (*mas)[i].name, 50);
            printf_s("Введите цену детали:");
            scanf_s("%d", &(*mas)[i].price);
            printf_s("Введите количество деталей:");
            scanf_s("%d", &(*mas)[i].col);
        }
    }
    
    int maximum(int s, detail const (*mas)[5]) {
        int max;
        int n = 0;
        max = (*mas)[0].price;
        for (int i = 0; i < s; i++) {
            if ((*mas)[i].price > max) {
                max = (*mas)[i].price;
                n = i;
            }
        }
        return n;
    }
    
    void f(const char* z, detail const (*mas)[5]) {
        int c = 0;
        int x = 0;
        for (int i = 0; i < 5; i++) {
            x = strcmp((*mas)[i].name, z);
            if (x == 0) c = i;
        }
        printf_s("Цена указаннной детали: %d\n", (*mas)[c].price);
        printf_s("Количество штук указанной детали: %d\n", (*mas)[c].col);
    }
    
    int main()
    {
        detail mas[5];
    
        setlocale(LC_ALL, "Rus");
        v(5, &mas);
        int z = maximum(5, &mas);
        printf_s("Самая дорогая деталь это %s\n", mas[z].name);
        printf_s("Цена самой дорогой детали %d\n", mas[z].price);
        printf_s("Количество деталей %d\n", mas[z].col);
        char y[10];
        while (getchar() != '\n');
        gets_s(y);
        f(&y[0], &mas);
    }

    Переменную detail mas[5]; нужно перенести внутрь функции main, а в остальные функции передать указатель на эту переменную.

    (Обсуждение вида указателей оставим за скобками этого вопроса)
    Ответ написан
    Комментировать
  • Как распространять только модификацию кода, без основы?

    @DmitrySolomennikov
    Технически то, что вы хотите - это применение патча. Если вы можете сделать git diff, то результат этой команды позднее можно применить к исходному файлу (файлам) и получить модифицированную версию.
    Делается это при помощи команды patch:
    patch < diff.patch
    где diff.patch получен как
    git diff > diff.patch
    Ответ написан
    1 комментарий
  • Куда идти в 14 лет в it?

    @DmitrySolomennikov
    Вам 14! В этом возрасте, как мне представляется, расширение кругозора гораздо важнее конкретных навыков. Здорово, когда есть какое-то интересное направление. Если же нет - ищите!
    Смело заходите в разные области, особенно незнакомые. Берите небольшие задачи и пробуйте их «на вкус». Неважно, будет ли у задач практическое применение или нет, опыт их решения позже будет очень сильно помогать. Желательно при этом задачи доводить до решения, чтобы ещё был опыт свершений.
    Не забывайте про мир вокруг себя. Житейский кругозор, общение с друзьями, спорт, многое другое, что делает человека человеком, также сильно помогает в профессиональной жизни.
    Так, шаг за шагом, кристаллизуется опыт и станет понятно направление, в котором будет желание развиваться.
    Ответ написан
    Комментировать
  • Как клонировать репозиторий без работы в этом репозитории?

    @DmitrySolomennikov
    На GitHub есть функция скачивания репозитория.
    На кнопке Code нажимаете стрелку, после выбираете Download ZIP.
    Оттуда же можно взять ссылку и скачивать архив скриптом.

    629e5cefe2329534677744.jpeg
    Ответ написан
    2 комментария
  • Средства для деплоя lisp-приложений

    @DmitrySolomennikov
    Спросите на lisper.ru
    Ответ написан
    Комментировать