Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Вниз

Пишем программы по русски?   Найти похожие ветки 

 
Kolan ©   (2006-12-04 23:57) [0]

В проделжение темы про паттерны и про BDS. Гы, теперь вот и такое компилируется:

TForm3 = class(TForm)
   BitBtn1: TBitBtn;
   BitBtn2: TBitBtn;
   procedure BitBtn2Click(Sender: TObject);
   procedure BitBtn1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   ЦелоеЧисло: Integer;
 end;

var
 Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.BitBtn2Click(Sender: TObject);
begin
 ЦелоеЧисло := 10;
 ShowMessage(IntToStr(ЦелоеЧисло));
end;


Да к возможности отношусь очень положительно, а к тому чтобы ее использовать в реальных приложениях - крайне отрицательно.

ЗЫ
 Сор, если это боян...


 
Petr V. Abramov ©   (2006-12-05 00:07) [1]

Borland догнал по фичам 1С


 
Kolan ©   (2006-12-05 00:09) [2]

> [1] Petr V. Abramov ©   (05.12.06 00:07)
> Borland догнал по фичам 1С

Имхо тут совсем другое дело. В 1С происходит тупой перевод в  Бэйсик..


 
Petr V. Abramov ©   (2006-12-05 00:21) [3]

а БДСМ переводит в МСИЛ. разница ы чем??? даже если win32, то, будь уверен, что русский, что инглдицкий идент - одно и то же. памяти под небольшое кол-во таблиц у компайлера возрастет, но не на столько, на сколько ВДСМ требует больше, чем Д7


 
Marser ©   (2006-12-05 00:29) [4]


> Petr V. Abramov ©   (05.12.06 00:21) [3]
> а БДСМ переводит в МСИЛ.

Куда BDSM переводит? :-)


 
Petr V. Abramov ©   (2006-12-05 01:02) [5]

в MSIL должна :)


 
DrPass ©   (2006-12-05 01:13) [6]


> Да к возможности отношусь очень положительно, а к тому чтобы
> ее использовать в реальных приложениях - крайне отрицательно

А ты прояви фантазию:

if Проверить(Маша, ОднаДома) = Да_Совсем_Одна then
begin
Купить([Цветы, Конфеты, Водка]);
Такси(Маша);
end


 
Petr V. Abramov ©   (2006-12-05 01:36) [7]

> DrPass ©   (05.12.06 01:13) [6]
 то, что между begin и end правильная среда разработки сама сгенерить должна, и потанцевать тоже. программисту должно остаться суть реализовать.


 
Джо ©   (2006-12-05 01:38) [8]

> [6] DrPass ©   (05.12.06 01:13)
> if Проверить(Маша, ОднаДома) = Да_Совсем_Одна then
> begin
> Купить([Цветы, Конфеты, Водка]);
> Такси(Маша);
> end

Run-time error: Access Violation at [Маша].
:D


 
Petr V. Abramov ©   (2006-12-05 01:40) [9]

> Джо ©   (05.12.06 01:38) [8]
либо неверный алгоритм, либо мало опыта :)))))))))


 
Джо ©   (2006-12-05 01:41) [10]

> [9] Petr V. Abramov ©   (05.12.06 01:40)
> > Джо ©   (05.12.06 01:38) [8]
> либо неверный алгоритм, либо мало опыта :)))))))))

Нет, машин муж вернулся из коммандировки :~(


 
Игорь Шевченко ©   (2006-12-05 10:11) [11]

Боян.

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1091


 
DevilDevil ©   (2006-12-05 13:01) [12]

Господа, ни кто не знает DEFINE-ы в Delphi ещё не введён/не собираются вводить?


 
clickmaker ©   (2006-12-05 13:11) [13]


> [12] DevilDevil ©   (05.12.06 13:01)

$DEFINE уже давно есть


 
DevilDevil ©   (2006-12-05 13:17) [14]

#define INIT_STCNT if(START==DEF_VALUE)START=0;if(Count==DEF_VALUE)Count=FRowsCount;
#define INC_POINTERS  M_I++;R++;}
#define SORT_NEXT_START if(ArraySorting&&CurrentColumnArrayIndex<MAX_INDEX){int Ind=CurrentColumnArrayIndex,L=0,CNT;while(L<Count){CNT=1;while((L+CNT)<Count&&(
#define SORT_LAST_PART if(CNT>1){SortColumn(COLUMN_ARRAY[++CurrentColumnArrayIndex],Order,START+L,CNT);CurrentColumnArrayIndex=Ind;}L+=CNT;}}free(Memory);
#define SORT_NEXT_END ))CNT++; SORT_LAST_PART
#define SORT_END_OBJ )){delete Memory[L+CNT].OBJ; CNT++;} delete Memory[L].OBJ; SORT_LAST_PART
#define RESTORE_ROWS M_I=Memory;R=(int*)(FRows.Memory+START); for(int i=0;i<Count;i++){*R=(int)M_I->Row; INC_POINTERS
#define RESTORE_ROWS_OBJ M_I=Memory;R=(int*)(FRows.Memory+START); for(int i=0;i<Count;i++){*R=(int)M_I->Row; delete M_I->OBJ; INC_POINTERS
#define FIRST_PART TRow*CurRow;int*R;M_I=Memory;R=(int*)(FRows.Memory+START); for(int i=0;i<Count;i++){M_I->Row=CurRow=(TRow*)(*R);
#define RESTORE_AND_SORT_NEXT_OBJ RESTORE_ROWS SORT_NEXT_START *Memory[L].OBJ==*Memory[L+CNT].OBJ SORT_END_OBJ


 
DevilDevil ©   (2006-12-05 13:22) [15]

Я понимаю, что то же самое можно при помощи {$Include SomeFile} реализовать... но Дифайны с параметрами так не реализуешь. Да и файлы создавать - плохое решение

P.S. инлайны не предлагать :)


 
Vga ©   (2006-12-05 13:23) [16]

Ты имеешь в виду макросы? Лучше не надо...


 
Gero ©   (2006-12-05 13:27) [17]

> [14] DevilDevil ©   (05.12.06 13:17)

Какой понятный код.


 
Vga ©   (2006-12-05 13:27) [18]

> [17] Gero ©   (05.12.06 13:27)

Точно, я о том же.


 
Игорь Шевченко ©   (2006-12-05 13:31) [19]

Всем, кто пишет на С идентификаторы с большой буквы, срочно переквалифицироваться в управдомы


 
Vga ©   (2006-12-05 13:37) [20]

> [19] Игорь Шевченко ©   (05.12.06 13:31)

Это не си, это билдер с висиэльной идеологией именования...


 
DevilDevil ©   (2006-12-05 13:50) [21]


> Gero ©   (05.12.06 13:27) [17]
>
> > [14] DevilDevil ©   (05.12.06 13:17)
>
> Какой понятный код.


А вот так понятнее:

//-------------  сортировка TItsFixed -----------------------------------------
void __fastcall TInfoTable::SortFixed(int Column, bool StdOrder, int START, int Count)
{
 INIT_STCNT
 T_FIXED *M_I, *Memory = FIXED_ARRAY(Count);

// цикл по i по всем строкам; Row (= CorRow) заполняется автоматически
 FIRST_PART
   M_I->OBJ = new TItsFixed(CurRow->Items[Column]->Text.c_str());
 INC_POINTERS
// <-- цикл

// сортировка
 FixedQuickSort(Memory, Count, StdOrder);
// восстановить отсортированные строки, освободить память, занимаемую массивом

RESTORE_AND_SORT_NEXT_OBJ
}


 
clickmaker ©   (2006-12-05 13:53) [22]


> // цикл по i по всем строкам; Row (= CorRow) заполняется
> автоматически
>  FIRST_PART

вот это называется "программить по-русски" ))


 
DevilDevil ©   (2006-12-05 13:54) [23]

А вот теперь представьте, что существует 12 таких сортировок, отличие которых состоит в паре строк. Попробуйте реализовтаь (а потом месяц отлаживать) без макросов.


 
DevilDevil ©   (2006-12-05 13:55) [24]

Sorry, я поинтересовался о нововведениях кроме UNICODE.


 
Игорь Шевченко ©   (2006-12-05 14:00) [25]


> А вот так понятнее:


Так тоже непонятнее


> А вот теперь представьте, что существует 12 таких сортировок,
>  отличие которых состоит в паре строк. Попробуйте реализовтаь
> (а потом месяц отлаживать) без макросов.


Да запросто. Шаблоны - рулез. Паттерны - дважды рулез. Макросы - маст дай.


 
Vga ©   (2006-12-05 14:01) [26]

> [21] DevilDevil ©   (05.12.06 13:50)

Нет, не понятнее. И любому, кроме разработчика, придется гонять по файлу туда-сюда в поисках макросов. А еще кое-что против макросов упоминалось в статье "Как заставить неправильный код выглядеть неправильно"
http://local.joelonsoftware.com/mediawiki/index.php/Как_заставить_неправильный_код_выглядеть_неправильно


 
DevilDevil ©   (2006-12-05 14:02) [27]

> Шаблоны,  Паттерны

Что из себя представляют, где почитать, с какой версии появились?


 
Vga ©   (2006-12-05 14:05) [28]

> [27] DevilDevil ©   (05.12.06 14:02)

Про шаблоны - в любом (или почти любом) учебнике по C++. В Delphi отсутствуют.
Про паттерны ничего не скажу, единственное что мне казалось, это не языковой инструмент.


 
Игорь Шевченко ©   (2006-12-05 14:06) [29]

DevilDevil ©   (05.12.06 14:02) [27]

Шаблоны в С++ появились с первой версии, насколько я помню (template)
Паттерны в языке С++ не появились, про паттерны написали книжку Эрих Гамма и товарищи.
Раз сортировка - она одна, то разумно ее вынести в один класс и не мучится.


 
DevilDevil ©   (2006-12-05 14:11) [30]

> Игорь Шевченко ©   (05.12.06 14:06) [29]

Сортировка далеко не совсем одна, макросы меня вполне устроили, в данном случае создание класса не является крайне необходимой, с шаблонами в данном случае сложнее.

Мой подвопрос предлагаю закрыть, я интересовался по поводу Delphi.


 
Игорь Шевченко ©   (2006-12-05 14:15) [31]


> Сортировка далеко не совсем одна


> А вот теперь представьте, что существует 12 таких сортировок,
>  отличие которых состоит в паре строк


Как прикажешь тебя понимать, Саид ?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.051 c
4-1154069681
Kubivan
2006-07-28 10:54
2006.12.24
Как програмно Завершить процесс


1-1162902003
infom
2006-11-07 15:20
2006.12.24
Expert для Delphi 7 с возможностью соврачивания кусков кода.


15-1165239877
Завтра
2006-12-04 16:44
2006.12.24
Российские Национальные проекты


2-1165326212
Сергей И
2006-12-05 16:43
2006.12.24
Скопировать файл с датой на день меньше текущей!


2-1165420972
Aleksandr77
2006-12-06 19:02
2006.12.24
Ответьте на вопрос о частоте монитора





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский