Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/2081: Рейтинг темы: голосов - 2081, средняя оценка - 4.63
Модератор
Эксперт С++
 Аватар для zss
13735 / 10931 / 6483
Регистрация: 18.12.2011
Сообщений: 29,172
1

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

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

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

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

Содержание
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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
16.03.2019, 11:29 21
Author24 — интернет-сервис помощи студентам
Разбор арифметических выражений - пояснение двумя постами ниже

Преобразование записи чисел между системами счисления - готовая программа в разделе 6. Но сразу предупреждаю, здесь реализован именно правильный подход к решению задачи. Приличная доля преподавателей его НЕ осилит и может посчитать решение избыточно сложным
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
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;
}
3
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
29 / 21 / 8
Регистрация: 11.10.2021
Сообщений: 122
14.10.2021, 20:04 24
Профессиональные, минималистичные функции деления, для задач, в которых запрещено использование % и /. (очень полезные)

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
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
PHP 8: JIT-компиляция и улучшение производительно­сти
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
Сериализация данных с Apache Avro в Kafka
Javaican 12.03.2025
Apache Kafka стала одним из ключевых решений для работы с большими потоками данных. Однако с ростом объемов передаваемых данных возникает проблема: как эффективно сериализовать и десериализовать. . .
Создание потребителей Kafka с помощью Reactor Kafka
Javaican 12.03.2025
Reactor Kafka — это библиотека, объединяющая Apache Kafka с реактивным программированием на базе Project Reactor. Такое сочетание позволяет строить неблокирующие, асинхронные приложения с контролем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru