| 
| 
 | Вопрос # 5 361/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Кто-нибудь может помочь перевести код из C++(вроде он, я не знаю в нем ничего) в Delphi?
 Приложение:Переключить в обычный режим private: link insertR (link h, { Key v = x.key(); if ((h->bit >= d) Item x, int d, link p) || (h->bit <= p->bit)) { t->l = (digit (v, t->bit) ? h : t) ; t->r = (digit (v, t->bit) ? t : h) ; return t; }if (digit (v, h->bit) = 0) h->l = insertR(h->l, x, d, h) ; else h->r = insertR(h->r, x, d, h) ; return h; } public: void insert (Item x) { Key v = x. key () ; int i ; Key w = searchR (head->l, v, -1) . key() ; if (v = w) return; for (i = 0; digit(v, i) = digit(w, i) ; head->l = insertR(head->l, x, i, head); } ST(int maxN) { head = new node (nullItem) ; head->l = head->r = head; } 
|  |   Вопрос задал: NeStor (статус: Посетитель)Вопрос отправлен: 1 июня 2011, 20:49
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 13; последнее сообщение — 5 июня 2011, 09:39; участников в обсуждении: 5. 
|   | NeStor (статус: Посетитель), 1 июня 2011, 20:52 [#1]:фрагмент кода осуществляет вставку элемента в patricia-дерево |  
|   | min@y™ (статус: Доктор наук), 1 июня 2011, 20:55 [#2]:А нахрена переводить-то? Проще ж по алгоритму просто новый код на паскале написать и всё. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | NeStor (статус: Посетитель), 1 июня 2011, 21:00 [#3]:я в некоторые операции совершенно не вникаю. никогда с С++ не работал. ща сижу ищу материал что там чего означает |  
|   | min@y™ (статус: Доктор наук), 1 июня 2011, 21:19 [#4]: Цитата (NeStor): я в некоторые операции совершенно не вникаю. никогда с С++ не работал. ща сижу ищу материал что там чего означает  Чтобы написать что-то на паскале, не надо в С++ вникать. Надо:
 а) входные данные;
 б) что и как из них получить на выходе;
 ц) прямые руки и мозги.
 Всё.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | NeStor (статус: Посетитель), 1 июня 2011, 21:30 [#5]:это само собой. тогда пару вопросов, чисто для полного понимания алгоритма. 1) что такое Link и Item?
 2) || - это and? или что?
 3) link t « new node(x); t->bit = d;
 t->l = (digit (v, t->bit) ? h : t) ; - вот здесь вот что вообще происходит? что там за знак вопроса?
 
 прости за тупые вопросы, просто реально не славливаю
 |  
|   | NeStor (статус: Посетитель), 1 июня 2011, 21:35 [#6]:хотя про знак вопроса я уже посмотрел. мож и другие разберу тогда |  
|   | NeStor (статус: Посетитель), 1 июня 2011, 22:16 [#7]:не, нефига не понятно |  
|   | min@y™ (статус: Доктор наук), 1 июня 2011, 22:35 [#8]: Цитата (NeStor): 1) что такое Link и Item? Link - это какой-то юзерский тип данных.
 Item - тоже тип. Похоже, что это узел дерева
 
 Цитата (NeStor): 2) || - это and? или что? Это логический "or" (не путать с побитовым).
 
 Цитата (NeStor): 3) link t « new node(x); t->bit = d; t->l = (digit (v, t->bit) ? h : t) ; - вот здесь вот что вообще происходит? что там за знак вопроса? Здесь символ "«" надо бы заменить на "=", т.к. идёт вызов конструктора и присвоение указателя (я так предполагаю).
 
 Дальше влом разбираться.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | NeStor (статус: Посетитель), 1 июня 2011, 22:48 [#9]:спасибо и на этом. дальше сам как-нибудь |  
|   | Вадим К (статус: Академик), 2 июня 2011, 10:53 [#10]:знак вопроса - это условный тернарный оператор. выражение вида
 x = a?b:c;
 эквивалентно такому на делфи
 if a then x := b else x := c;
 или, если подключить модуль Math
 x := IfThen(a, b, c);
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | NeStor (статус: Посетитель), 2 июня 2011, 11:04 [#11]:спасибо, а private:
 link insertR (link h, Item x, int d, link p)
 { Key v = x.key();  а это типа начало процедуры или функции?
 |  
|   | Толяныч (статус: 4-ый класс), 3 июня 2011, 01:26 [#12]:Вадим К: >знак вопроса - это условный тернарный оператор.
 > выражение вида
 > x = a?b:c;
 > эквивалентно такому на делфи
 > if a then x := b else x := c;
 
 Когда программил на С, недолюбливал эту конструкцию и никогда ее не использовал. Мне в ней чудится что-то противоестественное, как хоккей на траве.
 |  
|   | Егор (статус: 10-ый класс), 5 июня 2011, 09:39 [#13]: Цитата (NeStor): link insertR (link h, Item x, int d, link p)в с/с++ нет процедур, только функции. в данном случае функция возвращает значение типа link{ Key v = x.key(); а это типа начало процедуры или функции?
 
 
 Цитата (Толяныч): Когда программил на С, недолюбливал эту конструкцию и никогда ее не использовал. Мне в ней чудится что-то противоестественное, как хоккей на траве.чудесная конструкция. а в некоторых случаях вообще единственно возможная, без альтернатив. Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |