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

что за точки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ срочно!задаchи! http://www.cyberforum.ru/cpp-beginners/thread278138.html
помогите кто-нибудь с задачками,срочно нужно! Задание 2. Написать программу, которая вводит с клавиатуры два символа, являющихся цифрами из интервала . Предусмотреть "защиту от дурака", т.е. при...
C++ Не правильно считает((( Запрограммируйте алгоритм возведения числа в целую положительную и отрицательную степень. Пользователь вводит данные с клавиатуры. #include "stdafx.h" #include <stdlib.h> #include... http://www.cyberforum.ru/cpp-beginners/thread278106.html
Перевести программу C++
Вот программа написанная на си++ в среде borland builder c++ 6: TStringList * name1 = new TStringList; TStringList * name2 = new TStringList; TStringList * name3 = new TStringList; ...
С чего начать? C++
Хочу изучить C++ Пожалуйста посоветуйте что прочесть и какую прогу и где скачать(купить). Спасибо!
C++ Программа на цикл. http://www.cyberforum.ru/cpp-beginners/thread278091.html
Дано натуральное число. Определить номер цифры "8" в нем, считая от конца. Если такой цифры не, ответом должно быть число 0, если таких цифр в числе несколько-должен быть определен номер самой левой...
C++ биквадратное уравнение Решите биквадратное уравнение ax4 + bx2 + c = 0 (помогите срочно надо). TURBO PASCAL подробнее

Показать сообщение отдельно
VASSUV
MiThEoN
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 418
Записей в блоге: 2
Завершенные тесты: 1

что за точки - C++

17.04.2011, 16:58. Просмотров 302. Ответов 4
Метки (Все метки)

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
134
135
136
137
138
139
140
#include <string>
#include <sstream>
#include <iostream>
#include <fstream>
#include <vector>
 
COMPILER expr 
 
enum ExprType {t_id, t_num};
 
enum Operator { t_div, t_times, t_plus, t_minus};
 
std::vector<std::wstring> identlist;
 
int toInt(const std::wstring& strbuf)
{
    std::wstringstream converter;
    int value = 0;
 
    //converter.precision(4);
    //converter.fill('0');
    //converter.setf( std::ios::fixed, std::ios::floatfield );                              
 
    converter << strbuf;
    converter >> value;
    return value;
}
 
std::wstring toString ( int Number )
{
     std::wostringstream ss;
     ss << Number;
     return ss.str();
}
 
 
IGNORECASE
CHARACTERS
letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".
digit = "0123456789".
cr  = '\r'.
lf  = '\n'.
tab = '\t'.
 
TOKENS
ident  = letter {letter | digit | "_"}.
number = digit {digit}.
 
 
COMMENTS FROM "/*" TO "*/" NESTED
COMMENTS FROM "//" TO cr lf
 
IGNORE cr + lf + tab
 
PRODUCTIONS
 
expr (.std::wstring str;.) = (.std::wstring s,s1,s2,s3,s4; ExprType t1,t2;.) 
     ident (.s1=t.val; identlist.insert(s1);.)":=" NumExpr<s2,t1> ";" 
{
    ident (.s3=t.val; identlist.insert(s3);.)":=" NumExpr<s4,t2> ";" (.s=s3; s+=L":="; s+=s4; s+=L";\n";.)
}
     (.
          str=L"var ";
          for(int i=0; i<identlist.size(); i++)
          {
               str+=identlist[i];
               if(i!=ident.size()-1)
                    str+=L", ";
               else
                    str+=L":";
          }
          str+=L"integer;\n";
          str+=s1; str+=L":="; str+=s2; str+=L";\n";
          str+=s;
               
          std::wofstream outfile (L"out.txt", std::ios_base::out);
          outfile << str << std::endl;          
          outfile.close();
     .)           .
  
NumExpr<std::wstring &str, ExprType &t> = (.std::wstring s1,s2; operator op; ExprType t1,t2;.)
    Term<s1,t1> 
{ 
     ("+" (.op=t_plus;.)|"-" (.op=t_minus;.)) NumExpr<s2,t2>
     (.
          if(t1==t_num && t2==t_num)
          {
               t=t_num;
               int n;
               if(op==t_plus)
                    n=toInt(s1)+toInt(s2);
               else
                    n=toInt(s1)-toInt(s2);
                           
               str=toString(n);
          }
          else
          {
               t=t_id;
               str=s1;
               if(op==t_plus)
                    str+=L"+";
               else
                    str+=L"-";
               str+=s2;
          }
     .)
}.
 
Term<std::wstring &str, ExprTipe &t> =(.str::wstring s1,s2; ExprType t1,t2; Operator op;.) 
    Multiplier<s1,t1> 
{ 
     ("*" (.op=t_times;.)|"/"(.op=t_div;.)) Term<s2,t2> 
     (.
          if(t1==t_num && t2==t_num && op==t_times)
          {
               t=t_num;
               int n;
               n= toInt(s1)*toInt(s2);
               str=toString(n);               
          }
          else
          {
               t=t_id;
               str=s1;
               if(op==t_div)
                    str+=L"/";
               else
                   str+=L"*";
               str+=s2;
          }
     .)
}.
 
Multiplier<std::wstring &str, ExprType &t> = (.std::wstring s; ExprType t1;.)
     ident (.str=t.val; t=t_id; identlist.insert(t.val);.) 
          | number (.str=t.val; t=t_num;.)
               | "(" NumExpr<s,t1> ")" (.str=s; t=t1;.).
  
END expr.
обясните смысл точек во многих местах.

код объяснять не надо, его я так для примера выложил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru