Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.97/363: Рейтинг темы: голосов - 363, средняя оценка - 4.97
zss
Модератор
Эксперт С++
8100 / 7237 / 4505
Регистрация: 18.12.2011
Сообщений: 19,132
Завершенные тесты: 1
1

Образцы (шаблоны) программ для типовых задач

10.03.2015, 11:35. Просмотров 69193. Ответов 22
Метки нет (Все метки)

Постим сюда образцы программ для решения типовых задач.

Образцы не должны быть истиной в последней инстанции,
а только иллюстрацией (идеей) оформления решения.

Содержание
1. Образец для обработки матриц (двумерных динамических массивов)

2. Образец для одномерного массива (вектора)

3. Образец для создания классов (базовый, производный, виртуальная функция)

4. Базовый класс для любого конечного автомата.

5. Велосипедный стек на односвязном списке

6. Вычисление значения кусочно заданной функции

7a. Функция с переменным числом параметров
7b. Вычисление суммы чисел функцией с переменным числом аргументов при помощи variadic templates (c++11)
7с. Функция с переменным числом параметров использующая std::initializer_list

8. Вычисление выражения в инфиксной записи
14
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2015, 11:35
Ответы с готовыми решениями:

Комплекс типовых задач обработки числовых одномерных массивов
1. Разработать и отладить программу на С++ для решения комплекса типовых задач обработки числовых...

Программирование типовых числовых задач обработки одномерных массивов
1) Вычислить и запомнить в структуре одномерного массива (таблица 1) фиксированное количество...

Алгоритм генерации типовых задач по теме "Многочлены"
Помогите с алгоритмом) никак не могу написать алгоритм генерации((( Например, деление многочленов

Решение типовых задач в MathCAD
Случилась беда, на комп не могу установить Маткад, пользоваться могу им только на паре (очень мало...

ПОЛЕЗНО! Примеры решений типовых задач
http://www.cyberforum.ru/matlab/thread915743.html ...

22
Evg
Эксперт CАвтор FAQ
19884 / 7514 / 574
Регистрация: 30.03.2009
Сообщений: 20,968
Записей в блоге: 30
16.03.2019, 11:29 21
Разбор арифметических выражений - пояснение двумя постами ниже

Преобразование записи чисел между системами счисления - готовая программа в разделе 6. Но сразу предупреждаю, здесь реализован именно правильный подход к решению задачи. Приличная доля преподавателей его НЕ осилит и может посчитать решение избыточно сложным
0
Renji
2195 / 1618 / 489
Регистрация: 05.06.2014
Сообщений: 4,685
16.03.2019, 20:51 22
Ну нельзя ссылкой так нельзя. Вычисление выражения в инфиксной записи. Вспомогательные структуры? Токены? Nobody cares. Оставьте эту ерунду для задачи "перевести выражение в какой-то промежуточный байт-код", а этот код делался тупым как валенок. Оригинал там.
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include<cstdlib>
#include<stdexcept>
#include<iostream>
 
inline double evalPlusMinus(const char*&expression);
inline double evalMulDiv(const char*&expression);
inline double evalPrefixAndBracket(const char*&expression)
{
    while(isspace(*expression))
        ++expression;
    switch(*expression)
    {
    case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':
        return strtod(expression,(char**)&expression);
    case'-':
        return -evalPrefixAndBracket(++expression);
    case'+':
        return evalPrefixAndBracket(++expression);
    case'(':
    {
        double res=evalPlusMinus(++expression);
        if(*expression++==')')
            return res;
    }
    default:
        throw std::runtime_error("Bad expression");
    }
}
 
inline double evalMulDiv(const char *&expression)
{
    double res=evalPrefixAndBracket(expression);
    while(true)
    {
        while(isspace(*expression))
            ++expression;
        switch(*expression)
        {
        case 0:
            return res;
        case'*':
            res*=evalPrefixAndBracket(++expression);
            break;
        case'/':
            res/=evalPrefixAndBracket(++expression);
            break;
        default:
            return res;
        }
    }
}
 
inline double evalPlusMinus(const char *&expression)
{
    double res=evalMulDiv(expression);
    while(true)
    {
        while(isspace(*expression))
            ++expression;
        switch(*expression)
        {
        case 0:
            return res;
        case'+':
            res+=evalMulDiv(++expression);
            break;
        case'-':
            res-=evalMulDiv(++expression);
            break;
        default:
            return res;
        }
    }
}
 
inline double evalExpression(const char *expression)
{
    const double res=evalPlusMinus(expression);
    while(isspace(*expression))
        ++expression;
    if(*expression)
        throw std::runtime_error("Bad expression");
    return res;
}
 
int main()
{
    std::cout<<evalExpression("2+2*2")<<std::endl;
    return 0;
}
1
PEG_0
0 / 0 / 0
Регистрация: 01.04.2019
Сообщений: 2
01.04.2019, 14:36 23
Найти минимальное и максимальное значений из трех чисел

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
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "");
    int a, b, c;
    
    cout << "1243 214 346: ";
    cin >> a >> b >> c;
    
    int min = a;
    int max = a;
    
    if (b < min) {
        min = b;
    }
    if (c < min) {
        min = c;
    }
    
    if (b > max) {
        max = b;
    }
    if (c > max) {
        max = c;
    }
    
    cout << "Max: " << max << endl;
    cout << "Min: " << min << endl;
    
    return 0;
}
0
01.04.2019, 14:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2019, 14:36

Разработка типовых программ обработки информации
Помогите , срочно, в документе на 3-ей странице сделать первый вариант.

Получить навыки создания сценариев на языке РНР при решении типовых и нестандартных задач.Лабораторная робота!
Задача.!! 1) У Вас есть две переменные: $ a = 5 i $ b = 7, поменяйте значения данных переменных...

Раскрыть принципы разработки алгоритмов и программ для решения прикладных задач: операциональный и структурный
Раскрыть принципы разработки алгоритмов и программ для решения прикладных задач: операциональный и...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru