Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.82/676: Рейтинг темы: голосов - 676, средняя оценка - 4.82
Модератор
Эксперт С++
9801 / 8362 / 5091
Регистрация: 18.12.2011
Сообщений: 22,363
1

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

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

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

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

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

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

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

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

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

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

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

8. Вычисление выражения в инфиксной записи
14
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2015, 11:35
Ответы с готовыми решениями:

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

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

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

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

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

Преобразование записи чисел между системами счисления - готовая программа в разделе 6. Но сразу предупреждаю, здесь реализован именно правильный подход к решению задачи. Приличная доля преподавателей его НЕ осилит и может посчитать решение избыточно сложным
0
2660 / 1834 / 550
Регистрация: 05.06.2014
Сообщений: 5,305
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
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2019, 14:36

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

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

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

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

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


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

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

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