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

Рекурсивная функция. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++/CLI Работа с массивами String. Считывание из файла, добавление новой строчки и новая перезапись http://www.cyberforum.ru/cpp-beginners/thread208962.html
Собственно далее по сабжу. Подскажите правильно ли я делаю? описал нужные мне переменные array <String^>^ test = gcnew array<String^>(50); int i = 0; int d = 0; String^ TLecture = Lecture->Text; вот код который вытаскивает все строчки из файла и заносит их в массив StreamReader^ sr = gcnew StreamReader( "list.txt" );
C++ структура для работы с матрицей Помогите написать программу...Создать структуру для работы с матрицей. Данные структуры: матрица A(3×3). Создать функции: ввод матрицы, вывод матрицы в квадратной форме, вывод на экран транспонированной матрицы. http://www.cyberforum.ru/cpp-beginners/thread208952.html
C++ Программа на структуры
Написать программу обработки файла типа запись, содержащую следующие пункты меню: - Создание, - Просмотр, - Коррекция – добавление новых данных или исправление старых. Для моего варианта данные следующие: Информация об участниках соревнований содержит: - Ф.И.О. игрока; - игровой номер; - возраст;
C++ "целые" точки
На плоскости задан многоугольник (не обязательно выпуклый) координатами своих вершин. Нужно найти количество точек с целочисельными координатами, которые лежат внутри многоугольника, не включая его сторон. Пример: 4 -1 -1 -1 1 1 1 1 -1 Ответ: 1
C++ В чём ошибка ? http://www.cyberforum.ru/cpp-beginners/thread208942.html
Задание: В одномерном массиве целых чисел заменить минимальное значение максимальным. Решение: { setlocale (LC_ALL, "Russian"); setlocale (LC_ALL, "rus"); int min=1; int mas;
C++ Работа с элементами массива Помогите пожалуйста решить задачку. Массив точек на плоскости ,задаваемых своими кооpдинатами,состоит не более чем из 70-ти элементов. Удалить из массива все точки, лежащие на pасстоянии , меньшем R от заданной окpужности, и опpеделить ближайшую к окpужности из оставшихся точек. подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2803 / 1579 / 247
Регистрация: 03.05.2010
Сообщений: 3,670
13.12.2010, 14:10     Рекурсивная функция.
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
//////////////////////////////////////////////////////////////////////////////////////
//проверить, соответствует ли введенная последовательность символов понятию список_списков:
//<список_списков> :: = <список>[;<список>]
//<список> :: = <элемент>[,<элемент>]
//<элемент> : = a|b|c|d|e|...|x|y|z
//////////////////////////////////////////////////////////////////////////////////////
#include <cctype>
#include <iostream>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
//////////////////////////////////////////////////////////////////////////////////////
//Объявления функций:
bool  parse_list   (T_str&  s);
bool  parse_lists  (T_str&  s);
//////////////////////////////////////////////////////////////////////////////////////
bool  parse_symb(T_str&  s, const char  c)
{
    bool  res_bool =    !s.empty() 
                     && s[0] == c;
    if(res_bool)
    {
        s.erase(0, 1);        
    }
    return res_bool;
}
//////////////////////////////////////////////////////////////////////////////////////
bool  parse_comma(T_str&  s)
{
    return parse_symb(s, ',');
}
//////////////////////////////////////////////////////////////////////////////////////
bool  parse_semicolon(T_str&  s)
{
    return parse_symb(s, ';');
}
//////////////////////////////////////////////////////////////////////////////////////
bool  parse_elem(T_str&  s)
{
    return    !s.empty() 
           && isalpha(s[0])
           && islower(s[0])
           && parse_symb(s, s[0]);
}
//////////////////////////////////////////////////////////////////////////////////////
bool  parse_list_tail(T_str&  s)
{
    return  !parse_comma(s)
            || parse_list(s);
}
//////////////////////////////////////////////////////////////////////////////////////
bool  parse_lists_tail(T_str&  s)
{
    return  !parse_semicolon(s)
            || parse_lists(s);
}
//////////////////////////////////////////////////////////////////////////////////////
bool  parse_list(T_str&  s)
{
    return  parse_elem(s)
            && parse_list_tail(s);
}
//////////////////////////////////////////////////////////////////////////////////////
bool  parse_lists(T_str&  s)
{
    return  parse_list(s)
            && parse_lists_tail(s);
}
//////////////////////////////////////////////////////////////////////////////////////
bool  is_lists_list(T_str  s)
{
    return     parse_lists(s)
            && s.empty();           
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите строку для проверки, не является ли она списком списков,"
              << std::endl
              << "где списки разделены точкой с запятой, а элементы списка "
              << std::endl
              << "(строчные латинские буквы) - запятой, например a,b,c;d,e"
              << std::endl;
 
    T_str s;
    for(;;)
    {
        std::cout << std::endl
                  << "-> ";
        getline(std::cin, s);        
        if(s.empty()) break;
        std::cout << "Строка "
                  << (is_lists_list(s) ? "" : "НЕ ")
                  << "является списком списков."
                  << std::endl;    
    }
}
 
Текущее время: 06:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru