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

Ввод строки типа {a,b,c,d,f,{a,b,c,f},g,h,j}, исправить код - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно написать программу со строками http://www.cyberforum.ru/cpp-beginners/thread666360.html
Пожалуйста помогите написать программу, которая будет подсчитывать количество заглавных букв в строке, введенной с клавиатуры. e. выполнить пункты a и b на оценку 4 балла. f. реализовать меню пользователя, состоящее как минимум из 4-х пунктов: a. ввод данных; b. обработка данных; c. вывод результата на экран; d. выход. g. Для корректной работы меню организовать промежуточное хранение...
C++ Сумма ряда до точность E Четвёртый член ряда равен 0.001411 (можете проверить запустив программу) Вопрос: почему не срабатывает строчка (последняя) if(E<b) printf("Sum ryada do tochnosty %f ravna: %f\n", E, w); Когда 0.0001<0.001411? #include <iostream> #include <stdio.h> #include <math.h> using namespace std; int function(); http://www.cyberforum.ru/cpp-beginners/thread666344.html
Обьясните, пожалуйста, строчки C++
CRect rect; GetWindowRect(&rect); rect.OffsetRect(20,20); if (pic_wnd) delete pic_wnd; pic_wnd = new CPicWnd; pic_wnd->some = this; pic_wnd->CreateEx(NULL, "", "", WS_VISIBLE|WS_OVERLAPPEDWINDOW, rect, this, 0);
Реализовать класс Account, представляющий собой банковский счет C++
Б15.12 Реализовать класс Account , представляющий собой банковский счет. В классе должны быть реализованы 4 поля: фамилия владельца, номер счета, процент начисления и сумма в рублях. Необходимо выполнять следующие операции: сменить владельца счета, снять некоторую сумму со счета, положить деньги на счет, начислить проценты, перевести сумму в доллары, перевести сумму в евро, ...
C++ Компилятор и исполняющая среда CUDA http://www.cyberforum.ru/cpp-beginners/thread666324.html
Помогите разобраться... что не так?? Подскажите.. Должно получиться как на первом скрине
C++ Для заданного числа найти не превышающие его дружественные Написать программу, которая для заданного натурального числа N находит, не превышающие это число дружественные. подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1237 / 986 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.10.2012, 22:49     Ввод строки типа {a,b,c,d,f,{a,b,c,f},g,h,j}, исправить код
Аполлон-13, вы меня слышите? Советую вынести парсер отдельно от класса, ему там делать нечего. Приём.

Потому что удобно будет парсить, если переделаете строку в stringstream и будете читать оттуда посимвольно. У парсера есть... эээ... 3 состояния:
(1) ожидается {
(2) ожидаются пробел, символ, { или }
(3) ожидается пробел, запятая или }

В первом состоянии выдаёте ошибку на всё, что не {, иначе переход во второе состояние. Парсинг начинается в этом состоянии.

Во втором состоянии:
1) остаётесь в нём же, если считался пробел;
2) если символ, то добавляете этот символ в множество и переходите в третье состояние;
3) если {, то возвращаете { обратно в поток и вызываете рекурсивно парсер на этот поток, полученное множество добавляете и переходите в третье состояние;
4) если }, то возвращаете то множество, что построили.

В третьем состоянии:
1) если пробел, то там и остаётесь;
2) если запятая, то переходите во второе состояние;
3) если }, то возвращаете то множество, что построили;
4) если что-то другое, то выдаёте ошибку.

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