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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 2054, средняя оценка - 4.91
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
#1

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

29.08.2009, 00:18. Просмотров 259739. Ответов 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     Большая коллекция решенных задач
Посмотрите здесь:

vector - коллекция элементов Т ? - C++
сохраненных в массиве, увеличиваемом по мере необходимости. Для того, чтобы начать использование данной коллекции, включите #include...

Коллекция алгоритмов от Johna Smith - C++
Коллекция алгоритмов от Johna Smith в качестве учебного материала Источник: http://vingrad.ru схема, не для копипейста, не...

Наследование, иерархия, коллекция, декомпозиция - C++
Суть предельно проста: декомпозиция объектов; объект класса base содежит имя(char name) и указатель на двунаправленный список указателей...

Небольшая коллекция реализованных программ на разную тематику! - C++
Мы с курсом решали задачи на экзамен,хочу поделиться ими!Вдруг поможет кому-то! Задачи,которые тут присутствуют: 1. Сформировать...

Есть ли где коллекция исходников простеньких программ ? - C++
Ковыряюсь с изучением VS 2010 С++ и хотелось бы примеры всякие типа калькулятора, пайнта, блокнота и т.п. в натуре таксказать. Может...

Большая степень - C++
Здраствуйте. У меня нарисовалась такая проблемка: надо подщитать число 2 в степени n (2^n), где n<=10000. n - натуральное. Вывести на екран...

Большая переменная - C++
Скажите пожалуйста тип который может вместить число из 250 цифр

Большая ошибка вычисления - C++
Реализую класс комплексных чисел. и при вычислении чисел накапливается большая ошибка Например просто выводя на экран число 10exp( 9pi*I...

Не большая ошибка в коде (массивы) - C++
Само задание: Задана матрица размером AxB. Получить массив M, присвоив его n- му элементу значение 0, если все ...

Компонента w вектора слишком большая - C++
Здавствуйте. Пишу 3д рендеринг: без никаких opengl, directx и прочих api. В общем, как обычно, есть три матрицы: Transformation (состоит из...

Помогите разобраться!Большая проблема.. - C++
есть класс и компилятор ругается на какую то ерунду. почему такая ошибка появляется?? в хедере newtype.h написано enum...

Ребята большая просьба к вам - C++
Может знает кто с помощью чего можно открыть файл формата .may ?


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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--;
    }
}
Закрытая тема Создать тему
Опции темы

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