Форум программистов, компьютерный форум CyberForum.ru

Большая коллекция решенных задач - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 2054, средняя оценка - 4.91
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
29.08.2009, 00:18     Большая коллекция решенных задач #1
Обработка строк
1. Вывести в алфавитном порядке все буквы, которые входят в текст по одному разу
2. Является ли введенная строка палиндромом

Обработка списков
1. Двойной связный список
2. Односвязные списки. Принцип работы.
3. Поместить в стек из динамического списка
4. односвязный линейный список на Си.
5. Однонаправленный список
6. Стек
7. Очередь
8. Двусвязный список
9. двусвязный список с итератором
10.вектор с итератором
11.Чуть более чем полностью нестандартный стек
12.очередь с итераторами
13.Дек на базе связного списка
14.Stack с вложенным классом iterator
15. двусвязный кольцевой список

Вычисления с использованием циклов
1. Натуральные числа, которые делятся на каждую из своих цифр.
2. Перебор всех возможных способов размещения n различных предметов по m различным ящикам
3. Найти суммы каждой пары подряд идущих чисел
4. Вывести кубы первых 10ти простых чисел
5. Поиск простых чисел через массив
6. Вычисление НОД с помощью модификаций алгоритма Евклида
7. быстрое нахождение количества делителей натурального числа
8. Быстрая проверка натурального числа на простоту
9. Быстрый поиск совершенных чисел
10. Вычисление функций разложением в ряд Тейлора
11. Вывод фигур символами в консоли
12. Рекурсивное вычисление n-ого числа Фибоначчи

Массивы
1. Подсчет нулевых элементов в заданном одномерном массиве;
2. Вычисление суммы положительных элементов в заданном одномерном массиве;
3. Поиск первого максимального элемента и его индекса в заданном одномерном массиве;
4. Поиск последнего минимального элемента и его индекса в заданном одномерном массиве;
5. Поиск простых чисел через массив
6. Найти номера всех элементов с максимальным значением.

Сортировки
1. Статьи и учебники C++
2. Алгоритмы сортировок строк (выбором, пузырьком, вставками, Шелла, пирамидальная, быстрая, поразрядная)
3. Сортировка подсчётом
4. Сортировка вычерпыванием

Двумерные массивы(матрицы)
1. Умножение матрицы на вектор.Использование функций.
2. Переставить столбцы в соответствии с ростом заданных характеристик
3. найти максимальный элемент в каждой строке матрицы
4. Транспонирование матрицы относительно главной и побочной диагоналей
5. Умножение матриц
6. Построить результат сглаживания заданной вещественной матрицы
7. В прямоугольной матрице найти номера первых отрицательных элементов каждой строки (столбца).
8. Исключить из матрицы нечетные столбцы
9. Умножение матрицы на вектор с использованием функций.
10.Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
11.Обратная матрица
12.Обход и вывод элементов "По спирали"
13.Заполнение матрицы змейкой (по спирали) #2
14.Найти первый положительный элемент кратный заданному числу
15.Сложение матриц
16.Поменять местами столбец и строку
17.Умножить матрицу на число
18.Найти номер столбца содержащего ноль(если такой есть)
19.Найти номер строки содержащей ноль(если такая есть)
20.Создать класс матрицы
21.Заполнение матрицы разными змейками

Решение систем линейных уравнений
1. Решение системы двух линейных уравнений.
2. Решение систем линейных уравнений методом Гаусса
3. Методом Крамера

Нахождение корней уравнений
1. Метод итераций
2. Метод Ньютона
3. Метод половинного деления
4. Дихотомии(половинного деления)
5. Золотого сечения
6. Фибоначчи
7. Метод хорд

Дискретная математика
1. Ориентированные, неориентированные графы. Выводит связанные вершины по матрице смежности
2. Алгоритм Уоршалла
3. Код Прюфера. Кодирование/декодирование дерева. Много комментариев.
4. Алгоритм Флойда-Уоршала. Поиск матрицы кратчайших путей. Матрица вершин через которые проходят кратчайшие пути. Поиск кратчайшего пути между двумя вершинами.

Игры
1.Крестики-нолики пользователь-пользователь.

Классы
1.Класс дат без дней недели
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2009, 00:18     Большая коллекция решенных задач
Посмотрите здесь:

Наследование, иерархия, коллекция, декомпозиция C++
C++ Большая степень
C++ Большая переменная
C++ vector - коллекция элементов Т ?
Небольшая коллекция реализованных программ на разную тематику! C++
C++ Коллекция алгоритмов от Johna Smith
C++ Есть ли где коллекция исходников простеньких программ ?
Большая ошибка вычисления C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
macewindujedii
4 / 4 / 0
Регистрация: 20.11.2015
Сообщений: 9
28.04.2016, 23:14     Большая коллекция решенных задач #2
Пример программы на двусвязный кольцевой список
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
using namespace std;
 
struct DoubleList //описание узла списка
{
    int data; //информационное поле
    DoubleList *next; //указатель на следующий элемент
    DoubleList *prev; //указатель на предыдущий элемент
};
 
 
void AddList(int value, int position);
int DeleteList(int position);
void PrintList();
void DeleteListKTimes(int k);
 
//************************ГЛАВНАЯ ФУНКЦИЯ************************
void main()
{
    setlocale(LC_ALL, "Rus");
    int value, position, x, n, k;
    do
    {
        cout << "1. Добавить элемент" << endl;
        cout << "2. Удалить элемент" << endl;
        cout << "3. Вывести список" << endl;
        cout << "4. Добавить несколько элементов сразу" << endl;
        cout << "5. Удалить с конца списка k элементов" << endl;
        cout << "0. Выйти" << endl;
        cout << "\nНомер операции > "; cin >> x;
        switch (x)
        {
        case 1:
            cout << "Позиция > "; cin >> position;
            cout << "Значение > "; cin >> value;
            AddList(value, position); break;
        case 2:
            cout << "Позиция > "; cin >> position;
            DeleteList(position); break;
        case 3:
            PrintList(); break;
        case 4:
            cout << "Сколько элементов вы хотите добавить в список > "; cin >> n;
            for (int i = 0;i < n;i++)
            {
                cout << "Позиция > "; cin >> position;
                cout << "Значение > "; cin >> value;
                AddList(value, position);
            } break;
        case 5:
            cout << "Сколько элементов вы хотите удалить из конца списка > "; cin >> k;
            DeleteListKTimes(k); break;
        }
    } while (x != 0);
}
 
DoubleList *head; //глобальная переменная (указатель на первый элемент списка)
 
void AddList(int value, int position)
{
    DoubleList *node = new DoubleList; //создание нового элемента
    node->data = value; //присвоение элементу значения
    if (head == NULL) //если список пуст
    {
        node->next = node; //установка указателя next
        node->prev = node; //установка указателя prev
        head = node; //определяется голова списка
    }
    else
    {
        DoubleList *p = head;
        for (int i = position; i>1; i--) p = p->next;
        if (position == 1) head = node;
        p->prev->next = node;
        node->prev = p->prev;
        node->next = p;
        p->prev = node;
    }
    cout << "\nЭлемент добавлен...\n\n";
}
//***********************УДАЛЕНИЕ ЭЛЕМЕНТА***********************
int DeleteList(int position)
{
    if (head == NULL) { cout << "\nСписок пуст\n\n"; return 0; }
    if (head == head->next)
    {
        delete head;
        head = NULL;
    }
    else
    {
        DoubleList *a = head;
        for (int i = position; i>1; i--) a = a->next;
        if (a == head) head = a->next;
        a->prev->next = a->next;
        a->next->prev = a->prev;
        delete a;
    }
    cout << "\nЭлемент удален...\n\n";
   return 1;
}
//*************************ВЫВОД СПИСКА*************************
void PrintList()
{
    if (head == NULL) cout << "\nСписок пуст\n\n";
    else
    {
        DoubleList *a = head;
        cout << "\nЭлементы списка: ";
        do
        {
            cout << a->data << " ";
            a = a->next;
        } while (a != head); cout << "\n\n";
    }
}
void DeleteListKTimes(int k)
{
    DoubleList *a = head;
    int i = 0;
    do
    {
        i++;
        a = a->next;
    } while (a != head);
    for (int n = 0;n < k;n++)
    {
        if (i <= 0)
            break;
        DeleteList(i);
        i--;
    }
}
Yandex
Объявления
28.04.2016, 23:14     Большая коллекция решенных задач
Закрытая тема Создать тему
Опции темы

Текущее время: 16:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru