С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/1858: Рейтинг темы: голосов - 1858, средняя оценка - 4.94
Модератор
Эксперт С++
13727 / 10923 / 6479
Регистрация: 18.12.2011
Сообщений: 29,154
1

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

10.03.2015, 11:35. Показов 373932. Ответов 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
Случилась беда, на комп не могу установить Маткад, пользоваться могу им только на паре (очень мало...

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

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

23
Evg
Эксперт CАвтор FAQ
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
14.10.2021, 20:04
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/thread915743.html ...

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

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

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


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Следует разобраться.
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала согласования+ стартер fast регистров. Файлы прилагаю. . . .
UserScript для подсветки кнопок языков программировани­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форм быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru