Форум: "Потрепаться";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
ВнизУжас! Дожились... Найти похожие ветки
← →
raymond © (2005-09-15 10:20) [0]Разрабатываю вот такие конструкции:
type
tStatAtom = record
Name: string; // Название
Bell: Longword; // Количество разговоров (звонков)
Time: Longword; // Количество минут
Summa: Extended; // Сумма
// ... //
end; //tStatAtom
tStatUnit = array [0..1] of tStatAtom;
// 0 - Ручной набор
// 1 - Автомат
tStatLine = array of tStatUnit;
pStatLine = ^tStatLine;
tStatistic = array [0..1] of array of pStatLine;
Далее по коду:Statistic[j][i]^[IndEnt][0].Name := "Население";
Вообщем, закипаю. :)
← →
IceBeerg © (2005-09-15 10:24) [1]маза... 8(
← →
Igorek © (2005-09-15 10:26) [2]
> Далее по коду:
> Statistic[j][i]^[IndEnt][0].Name := "Население";
Зачем использовать указатели?
← →
raymond © (2005-09-15 10:31) [3]>Igorek © (15.09.05 10:26) [2]
Зачем использовать указатели?
Структура сложная, боюсь в динамических масивах зашьюсь.
Если не использовать указатели, что 4-мерный массив получается, чтоли?
← →
MeF Dei Corvi © (2005-09-15 10:32) [4]Кошмарная структура :)
← →
Igorek © (2005-09-15 10:35) [5]> raymond © (15.09.05 10:31) [3]
> Структура сложная, боюсь в динамических масивах зашьюсь.
> Если не использовать указатели, что 4-мерный массив получается,
> чтоли?
Имхо, служную структуру как раз легче разрулить без указателей многомерными массивами.
Вообще многомерный массив имеет смысл только если тебе надо выбирать данные по любому измерению отдельно.
А указатели никак не коррелируют с многомерностью массива.
← →
TUser © (2005-09-15 10:35) [6]Приведу свою сташилку
Protein.Models[0].GetChainByName("A").Residues[10].GetAtomByType("ca").PosX
← →
msguns © (2005-09-15 10:36) [7]Аффигеть ! А вот так просто взять и добавить в "атомный" рекорд байт-буль для признака "ручной" или "ножной" нельзя ? Надо строго через массивы-"этажерки" ?
И потом, почему массив, а, к примеру, не список ? Который можно сортануть.
← →
msguns © (2005-09-15 10:38) [8]>TUser © (15.09.05 10:35) [6]
>Приведу свою сташилку
А-А-А-А-А-А !!!!!!!!!!!!!!
← →
Igorek © (2005-09-15 10:39) [9]:)
Многмерные массивы разнородных данных - это обычно признак плохого проектирования.
← →
raymond © (2005-09-15 10:47) [10]> Аффигеть ! А вот так просто взять и добавить в "атомный"
> рекорд байт-буль для признака "ручной" или "ножной" нельзя ?
Хорошая идея, но если необходимо просчитать только "ручной" проще
через индекс массива.
> И потом, почему массив, а, к примеру, не список ? Который
> можно сортануть.
Опять же идея хорошая, но задача сортировки не стоит.
> Igorek © (15.09.05 10:39) [9]
> Многмерные массивы разнородных данных - это обычно признак
> плохого проектирования.
Спасибо, учту!
Спасибо всем за сочувствие!
> TUser © (15.09.05 10:35) [6]
> Приведу свою сташилку
> Protein.Models[0].GetChainByName("A").Residues[10].GetAtomByType("ca").PosX
Ой-ой-ой!
И где же такое используется?
← →
TUser © (2005-09-15 10:51) [11]> И где же такое используется?
Обычно в программах :). Конкретно - в биоинформатике.
← →
raymond © (2005-09-15 10:55) [12]
> Обычно в программах :). Конкретно - в биоинформатике.
Я думал такое на стенке в рамочке висит :)
← →
msguns © (2005-09-15 11:02) [13]>TUser © (15.09.05 10:51) [11]
>Обычно в программах :). Конкретно - в биоинформатике.
Угу. Это если я, например, причешусь арбузной коркой, то можно будет сказать, что бахчевые используются в гребено-расчесочной промышленности ?
← →
Плохиш © (2005-09-15 11:08) [14]Вот к чему приводят разработки собственных баз данных.
← →
TUser © (2005-09-15 11:12) [15]with рулит
← →
Ермак © (2005-09-15 11:22) [16]>Вот к чему приводят разработки собственных баз данных.
Совершенно справедливо. Хотя... Все равно затягиваемые из БД данные надо где-то хранить...
А вообще...
Вывод из всего этого:
Граждане, используйте языки с автоматическим управлением памятью!
Пишу на Обероне и не мучаюсь. Проблема указателей (висячих или потерянных) исчезает в принципе. Как и проблема, когда освободить память.
← →
Igorek © (2005-09-15 11:25) [17]
> Пишу на Обероне и не мучаюсь.
Урлы на тулзы, которые используешь можно?
← →
Игорь Шевченко © (2005-09-15 11:30) [18]
> Разрабатываю вот такие конструкции:
> type
> tStatAtom = record
> Name: string; // Название
> Bell: Longword; // Количество разговоров (звонков)
> Time: Longword; // Количество минут
> Summa: Extended; // Сумма
> // ... //
> end; //tStatAtom
type
tStatAtom = record
Name: string; // Название
NumberOfCalls; // Количество разговоров (звонков)
Duration; // Количество минут
//...//
end;
"Важной частью пропагандируемого мною стиля программирования является
разложение сложных процедур на небольшие методы. Если делать это неправильно,
то придется изрядно помучиться, выясняя, что же делают эти маленькие методы.
Избежать таких мучений помогает назначение методам хороших имен. Методам
следует давать имена, раскрывающие их назначение. Хороший способ для этого -
представить себе, каким должен быть комментарий к методу, и преобразовать
этот комментарий в имя метода.
Жизнь такова, что удачное имя может не сразу придти в голову. В подобной
ситуации может возникнуть соблазн бросить это занятие - в конце концов,
не в имени счастье. Это вас соблазняет бес, не слушайте его. Если вы видите,
что у метода плохое имя, обязательно измените его. Помните, что ваш код
в первую очередь предназначен человеку, а только потом - компьютеру.
Человеку нужны хорошие имена. Вспомните, сколько времени вы потратили,
пытаясь что-то сделать, и насколько проще было бы, окажись у пары методов
более удачные имена. Создание хороших имен - это мастерство, требующее
практики; совершенствование этого мастерства - ключ к превращению
в действительно искусного программиста.
То же справедливо и в отношении других элементов сигнатуры метода.
Если переупорядочивание параметров проясняет суть - выполните его."
(с) Мартин Фаулер
← →
boriskb © (2005-09-15 11:32) [19]Igorek © (15.09.05 11:25) [17]
Урлы на тулзы,
А так же мазы на фазы, кирлы на мырлы и призы на пьедестал, пожалуйста :)
← →
Prohodil Mimo © (2005-09-15 11:34) [20]Я подобным образом наклепал компонент наподобие Excela, и ничего, жив.
TADCell=Record
Text:String;
HAlign:Byte;
VAlign:Byte;
TextAngle:Word;
NumberFormat:String[20];
Borders:PADCellBorders;
Interior:PADCellInterior;
End;
TADCellBorders=Record
Top:Byte;
Bottom:Byte;
Left:Byte;
Right:Byte;
TopColor:TColor;
BottomColor:TColor;
LeftColor:TColor;
RightColor:TColor;
End;
TADCellInterior=Record
Font:TFont;
Pattern:Byte;
PatternColor:TColor;
BackGround:TColor;
End;
← →
Desdechado © (2005-09-15 11:34) [21]а такая страшилка? :))
with( liLevel ) do
if( {--- зубья вилки похожи? ---}
( TChainPoint( Items[ i - 1 ] ).pContactor.pContainer.nObj =
TChainPoint( TList( TList( Items[ i ] ).Items[ j ] ).Items[ k ] ).pContactor.pContainer.nObj ) and
( TChainPoint( Items[ i - 1 ] ).pContactor.nObj =
TChainPoint( TList( TList( Items[ i ] ).Items[ j ] ).Items[ k ] ).pContactor.nObj ) and
{--- указанная точка - ручка вилки? ---}
( oPoint.pContactor.pContainer.nObj =
TChainPoint( TList( Items[ i ] ).Items[ j - 1 ] ).pContactor.pContainer.nObj ) and
( oPoint.pContactor.nObj =
TChainPoint( TList( Items[ i ] ).Items[ j - 1 ] ).pContactor.nObj ) and
( oPoint.nCont =
TChainPoint( TList( Items[ i ] ).Items[ j - 1 ] ).nCont ) ) then
← →
MeF Dei Corvi © (2005-09-15 11:35) [22]
> Desdechado © (15.09.05 11:34) [21]
Наверняка можно сделать то же самое, но проще :)
← →
msguns © (2005-09-15 11:36) [23]>Игорь Шевченко © (15.09.05 11:30) [18]
Исключительно справедливая цитата. Чувствуется Мастер и просто опытный человек.
ЗЫ. Приятно хоть чуть-чуть походить на умных людей, ибо сам часто мучаюсь, придумывая "понятные" имена переменным, процедурам и объектам БД.
← →
TUser © (2005-09-15 11:37) [24]> Игорь Шевченко © (15.09.05 11:30) [18]
Вы Фаулера где-то в элетронном виде скачали? Можете дать ссылку?
← →
Игорь Шевченко © (2005-09-15 11:39) [25]TUser © (15.09.05 11:37) [24]
Нет, я купил два или три года назад, о чем не жалею. Его нужно, на мой взгляд, читать в бумажном виде.
← →
Ермак © (2005-09-15 11:40) [26]> Урлы на тулзы, которые используешь можно?
BlackBox Component Builder
Русские материалы:
http://www.inr.ac.ru/~info21/
У меня есть русский перевод документации, который мы в фирме делали.
Пока в инет не вкладывали, но могу прислать.
← →
Prohodil Mimo © (2005-09-15 11:42) [27]Desdechado © (15.09.05 11:34) [21]
тут страшен не код, а его форматирование
← →
Igorek © (2005-09-15 11:43) [28]
> Пока в инет не вкладывали, но могу прислать.
size?
← →
raymond © (2005-09-15 11:46) [29]
> Игорь Шевченко © (15.09.05 11:30) [18]
Спасибо. Придерживаюсь той же точки мнения. Иначе было бы так:type
tStatAtom = record
aaa: string; // Название
bbb: Longword; // Количество разговоров (звонков)
ccc: Longword; // Количество минут
ddd: Extended; // Сумма
// ... //
end; //tStatAtom
:)
← →
Ермак © (2005-09-15 11:57) [30]~3 метров.
Кого интересуют вопросы Оберон-систем, пишите мне на ermak@orel.ru.
← →
Desdechado © (2005-09-15 12:01) [31]2 Prohodil Mimo © (15.09.05 11:42) [27]
> тут страшен не код, а его форматирование
с этого места поподробнее
← →
TUser © (2005-09-15 12:09) [32]Как вам такой модуль
http://monkey.belozersky.msu.su/~evgeniy/tokens.c
← →
Anatoly Podgoretsky © (2005-09-15 12:12) [33]А где вопрос?
← →
Prohodil Mimo © (2005-09-15 12:39) [34]Desdechado © (15.09.05 12:01) [31]
я не включаю в свой код столько пробелов, у меня их несколько меньше. И по этой причине мне тяжело воспринимать твой код. Если его переформатировать под привычный, будет легкий для восприятия.
А сам код, если не вдаваться в подробности(оптимизацию и правильность написания), не такой уж и страшный :о)
← →
Плохиш © (2005-09-15 12:47) [35]
> Ермак © (15.09.05 11:22) [16]
> >Вот к чему приводят разработки собственных баз данных.
> Совершенно справедливо. Хотя... Все равно затягиваемые из
> БД данные надо где-то хранить...
А я, наивный, всегда думал, что надо работать с полученным набором данных.
PS. Вы уверены, что "затягиваемые из" - это по-русски.
← →
GuAV © (2005-09-15 22:32) [36]
> tStatUnit = array [0..1] of tStatAtom;
если непременно нужен массив, можно так облегчить:
tStatUnit = array [(suManual, suAutomatic)] of tStatAtom;
← →
Ученик чародея © (2005-09-16 04:21) [37]>>Desdechado © (15.09.05 11:34) [21]
И эти люди ругают мой код
← →
Alex Konshin © (2005-09-16 04:43) [38]Desdechado © (15.09.05 11:34) [21]
Эту страшилку ты сам себе придумал.
У тебя там несколько раз вычисляется одни и те же объекты. Если эти вычисления делать всего лишь раз (как нормальные люди) и завести временые переменные, то и код становится совершенно безобидным. Тем более, что это C++, где завести локальную переменную - не проблема. То есть, налицо просто незнание возможностей языка и, как следствие, корявый стиль программирования.
← →
msguns © (2005-09-16 10:00) [39]>Alex Konshin © (16.09.05 04:43) [38]
>Эту страшилку ты сам себе придумал.
Это не страшилка, это уродство. Вот что получается, когда за дело берутся фанатики копипасты.
← →
Alex Konshin © (2005-09-16 10:41) [40]Насчет C++ я погорячился, но и в Delphi так писать не стоит. Если уж используем with, то почему не использовать его для упрощения этих конструкций. Ну или очевидное решение - локальные переменные.
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.014 c