Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,283

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

10.03.2015, 11:35. Показов 405363. Ответов 23
Метки нет (Все метки)

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

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

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

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

3. Обработка массива структур

4. Образец для создания классов (базовый, производный, виртуальная функция)
5. Простой шаблон класса "Матрица"

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

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

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

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

10. Вычисление выражения в инфиксной записи
16
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.03.2015, 11:35
Ответы с готовыми решениями:

Подскажите пожалуйста, где можно найти образцы (шаблоны) программ для типовых задач на Паскале?
Здравствуйте ! Подскажите пожалуйста, где можно найти образцы (шаблоны) программ для типовых задач на Паскале?

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

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

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

Преобразование записи чисел между системами счисления - готовая программа в разделе 6. Но сразу предупреждаю, здесь реализован именно правильный подход к решению задачи. Приличная доля преподавателей его НЕ осилит и может посчитать решение избыточно сложным
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
16.03.2019, 20:51
Ну нельзя ссылкой так нельзя. Вычисление выражения в инфиксной записи. Вспомогательные структуры? Токены? 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;
}
3
0 / 0 / 0
Регистрация: 01.04.2019
Сообщений: 2
01.04.2019, 14:36
Найти минимальное и максимальное значений из трех чисел

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
29 / 21 / 8
Регистрация: 11.10.2021
Сообщений: 122
14.10.2021, 20:04
Профессиональные, минималистичные функции деления, для задач, в которых запрещено использование % и /. (очень полезные)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
unsigned int extra_mega_genius_div_pro_2021_v1(unsigned int a, unsigned int b)
{
  while (a > b)
    a -= b;
 
  return a - b;
}
 
unsigned int extra_mega_genius_div_pro_2021_v2(unsigned int a, unsigned int b)
{
  unsigned int r = 1;
 
  while (a > b)
  {
    a -= b;
    r += 1;
  }
 
  return r;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.10.2021, 20:04

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru