Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.12.2017
Сообщений: 3

Подскажите идею алгоритма

06.01.2018, 23:32. Показов 600. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите, пожалуйста, основную идею алгоритма. Желательно по шагам.
Реализацию необязательно.

Задача: Построить график функции, введенной пользователем.

Вводится, например, y = 2*x + 10
нужно определить иксы и игреки.

заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.01.2018, 23:32
Ответы с готовыми решениями:

Подскажите идею
Нужна идея для создания программы. Концепция такая: создать программу используя класс, содержащий как минимум 8 методов. Пример:...

Подскажите идею
:) Подскажите пожалуйста идею программы, что то чтоб использовала базу данных) Оч хочу написать что то новое)

на системы счисления. подскажите идею решения
Сколько существует натуральных чисел,меньших 81 (10), таких, чт в ихзаписи в троичной системе счисления будут использоваться ровно две...

4
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
06.01.2018, 23:51
mist_leet,
нужно определить иксы и игреки.
В смысле задать набор точек?
0
0 / 0 / 0
Регистрация: 25.12.2017
Сообщений: 3
07.01.2018, 00:32  [ТС]
заданы иксы, например, от 0 до 100
нужно определить игреки
0
 Аватар для Nishen
1358 / 856 / 366
Регистрация: 26.02.2015
Сообщений: 3,814
07.01.2018, 01:20
Для начала тебе необходимо распарсить то, что ввел пользователь в виде строки. Делать это можно различными способами, я бы попытался делать с помощью грамматик. У Страуструпа в книге рассматривается применение грамматик на основе построения калькулятора, есть еще книга с драконом.
При разборе строки нужно выделить переменные функции и проверить их количество и т.д. В случае, если все ок и пользователь кроме цифр ввел только лишь х и у, то необходимо перейти к вычислениям и подставлять вместо х новые значения всегда, запоминая получившиеся значения у в массив. После чего можно строить прямую.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
07.01.2018, 01:40
Цитата Сообщение от mist_leet Посмотреть сообщение
Задача: Построить график функции, введенной пользователем.
Функции введенной как?
1) Как удобно программисту. Берем польскую запись и собираем парсер выражения за пять минут на коленке. Просто как три копейки. Главное не слушать наркоманов которые будут учить вас обратной польской и ручной реализации операций со стеком. Но запись выражения весьма непривычна.
2) Как удобно пользователю. Представьте выражение в форме дерева узлами которого являются математические операции. Ну а дочерними деревьями - аргументы этих самых операций. Черновик накидал, парсер к нему сами дописывайте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
int polishNotation(const char*&str)
{
    switch(*str)
    {
    case'+':
        return polishNotation(++str)+polishNotation(str);
    case'*':
        return polishNotation(++str)*polishNotation(str);
    default:
        return strtol(str,(char**)&str,10);
    }
}
 
class Expression
{
public:
    virtual int calculate()const{return right->calculate();}
    virtual int priority()const{return 0;}
    void append(Expression*expr)
    {
        if(!right)
            right=expr;
        else if(right->priority()>expr->priority())
        {
            expr->left=right;
            right=expr;
        }else
            right->append(expr);
    }
 
    Expression*left=nullptr;
    Expression*right=nullptr;
};
 
class Plus:public Expression
{
public:
    int calculate()const{return left->calculate()+right->calculate();}
    int priority()const{return 1;}
};
 
class Mul:public Expression
{
public:
    int calculate()const{return left->calculate()*right->calculate();}
    int priority()const{return 2;}
};
 
class Const:public Expression
{
public:
    Const(int _value):value(_value){}
    int calculate()const{return value;}
    int priority()const{return 3;}
    int value;
};
 
int main()
{
    const char*str="+*2 2 2";
    //2+2*2. Да, тупо вбиваем все попорядку
    Expression root;
    root.append(new Const(2));
    root.append(new Plus);
    root.append(new Const(2));
    root.append(new Mul);
    root.append(new Const(2));
    std::cout<<polishNotation(str)<<std::endl;
    std::cout<<root.calculate()<<std::endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.01.2018, 01:40
Помогаю со студенческими работами здесь

Подскажите идею для курсовой
Доброго времени суток, нужно придумать тему для курсовой, но моего воображения не хватает, поэтому прошу помощи. Нужно сделать оконное...

Подскажите идею для онлайн алгоритма
Здравствуйте. Программирую как хобби алгоритмы (математика и не только). Сейчас задумался над выбором очередной задачи - подскажите что...

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

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru