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

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

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

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

17.04.2011, 16:58. Просмотров 292. Ответов 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.
обясните смысл точек во многих местах.

код объяснять не надо, его я так для примера выложил
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2011, 16:58     что за точки
Посмотрите здесь:

C++ Определить номер точки, через которую проходит окружность с центром в начале координат, внутрь которой попадают все оставшиеся точки.
C++ Массив, заполненный 1 и 0. Найти путь, состоящий из нулей, от точки до точки.
Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару C++
Найти самый короткий путь от точки до точки в матрице C++
C++ Отсортировать и вывести точки по удаленности от некоторой заданной точки
C++ Две прямые описываются уравнениями напечатать координаты точки пересечения этих прямых, либо сообщить что эти прямые совпада
Задача (вывести длину кратчайшего пути от точки до точки.) C++
Найти минимальное расстояние от точки до точки C++
C++ Заменить все запятые на точки, а точки - на восклицательные знаки
C++ Вычисление ближайшей точки, что не так? как переделать ?
В символьной строке вместо каждой точки вставить три точки C++
C++ Определить кратчайшее расстояние от заданной точки до границы заданной фигуры, считая, что точка находится вне

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
531 / 436 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.04.2011, 17:05     что за точки #2
" :: " - это обращение к какому-то пространству имен... Мол, типа, ты будешь использовать всякие функции и прочие "вещицы" из этого пространства... Очень удобная штука

после подключения библиотек можно дописать
C++
1
using namespace std;
- ты подключил это пространство...
тогда можно убрать все " std:: " и спокойно продолжать программировать!
VASSUV
MiThEoN
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 414
Записей в блоге: 2
Завершенные тесты: 1
17.04.2011, 17:07  [ТС]     что за точки #3
Цитата Сообщение от Mиxaил Посмотреть сообщение
::
Я не про эти точки, а про те кот. всречаются единожды

Файл в котором я нашел этот код, имел расширение atg
может чем то поможет
Mиxaил
531 / 436 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
17.04.2011, 17:08     что за точки #4
Например, вот такие?
C++
1
 ("+" (.op=t_plus;.)|"-" (.op=t_minus;.)) NumExpr<s2,t2>
VASSUV
MiThEoN
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 414
Записей в блоге: 2
Завершенные тесты: 1
17.04.2011, 17:16  [ТС]     что за точки #5
Цитата Сообщение от VASSUV Посмотреть сообщение
(.op=t_times;.)
например вот такие (. ___ .)

Добавлено через 5 минут
и такие ).
или даже такие }.
Yandex
Объявления
17.04.2011, 17:16     что за точки
Ответ Создать тему
Опции темы

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