![]() |
|
Модераторы: PILOT |
![]()
|
|
| everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: нет Всего: 4 |
Очень нужно знать сколько получает программист, просто передо мной стоит тот нелёгкий выбор профессии, который рано или поздно перед всеми становится.
Простите, наверно это не скроомный вопрос, но на него не обязательно отвечать частными примерами, как-нибудь в общем, но желательно по-точнее, с указанием какими знаниями, опытом обладает программист и в какой отрасли работает. --------------------
Что написал, то написал (Пилат) |
|||
|
||||
| Russ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 27.4.2004 Репутация: нет Всего: нет |
everyone
Во-первых это зависит от региона в котором ты живешь. Естественно, что в Москве средняя з/п программиста намного больше, чем, скажем, в г. Саратове. Во-вторых это фирма в которой ты будешь работать. Есть фирмы, где программисты задницу от стула не поднимают, а з/п не очень высока, а есть наоборот один день в неделю нормально поработаешь, а все остальное время отдыхаешь и финансовых проблем особо не чувствуешь. Очень много зависит от начальства, кто-то понимает Твой тяжкий труд, а кто-то нет. Один раз я столкнуля с ситуацией, когда мне сказали, что труд программиста ничем не отличается от труда машинописки. Она стучит по клавишам и ты тоже стучишь по клавиатуре. В-третьих ты определись, что тебе больше нравится, писать под железки(контроллеры) или под ОС. И отсюда отталкивайся при повышении квалификации. Главное не сколько ты знаешь программных сред, а как ты ими умеешь пользоваться. |
|||
|
||||
| Она |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 23.4.2004 Где: Москва Репутация: нет Всего: 2 |
Так, насколько я знаю...по Москве средняя ЗП программиста 600 у.е. НО, есть программисты, и даже сисадмины, получающие +- 1000 у.е. Хотя найти такую работу очень трудно.
И вообще...штука баксов-это тааак мало..... Даешь ЗП программисту от1500 у.е. -------------------- С уважением. Мария. |
|||
|
||||
| AntonSaburov |
|
||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Может для Москвы это и мало. Хотя я сомневаюсь.
Хороший профи в Москве так и получает. НО !!! Именно хороший профи. А у нас с этим всегда проблема - и не только в программировании. И обычного сварщика или водопроводчика, который не пьет, который умеет дело делать, найти очень сложно |
||||
|
|||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: нет Всего: 9 |
У меня друг работает строителем получает 2000 а я 5 лет программирование учил что бы 1000 получать
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: нет Всего: 99 |
А строители тоже разные бывают
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Она |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 23.4.2004 Где: Москва Репутация: нет Всего: 2 |
AntonSaburov , не согласна....что 1000 это много, на жену и ребенка-это мало
ну и про профессионала...не получает...Если только начальнико отдела ( в большинстве совем) Хотя может муж у меня не там работает...хотя вроде страшный-инженер-программист? Вообще, возможно дело в том, что вся ЗП "чистыми деньгами идет"? -------------------- С уважением. Мария. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 162 |
Имея любую профессию можно получать нормальные деньги, если ты действительно хорошо делаешь эту работу.
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| AntonSaburov |
|
||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
У меня у самого есть жена и ребенок. И 1000 долларов в Питере - это очень приличные деньги. Очень. Думаю, что и в Москве тоже. Если запросы соответствуют. Я не говорю о покупке квартиры, машины и прочих подобных вещах. А на еду, нормальную одежду и не пальцованный отдых - вполне.
1500 - получает. Лично беседовал с московскими работодателями - просто это действиетельно должен быть профи, если приходишь с улицы. |
||||
|
|||||
| Она |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 23.4.2004 Где: Москва Репутация: нет Всего: 2 |
AntonSaburov , Питер И Москва-это две разные планеты в плане дороговизны проживания....
Москва входит в 6 самых дорогих городов мира, Питера там, к счастью нет.... Ну и вообще, кто такой профессионал? Как ты измериешь профессилнализм.... -------------------- С уважением. Мария. |
|||
|
||||
| AntonSaburov |
|
||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Я не говорю, что Москва - дешевый. Проживание в Питере максимум в два раза дешевле, чем в Москве. Не больше, чем в два раза - это не по домыслам. У меня отец живет в Москве и троюрдная сестра. Так что средний уровень цен в Москве я знаю.
Человек, который обладает оределенным набором практических и теоретических знаний. У которого есть достаточный опыт применения этих знаний. Практически все фирмы знают, сколько такой человек может стоить и предлагают цену. И выбирают лучшего из тех, кто приходит. Если не тянешь - ну значит не тянешь. Есть повод задуматься над своим образованием. Во всяком случае опускать руки нет причины. |
||||
|
|||||
| everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: нет Всего: 4 |
Я не имею ни малейщего понятия о программировании под промышленное оборудование, хотя, я ещё в школе учусь, и год ещё учиться,.. Я программист(слишком громкое слово), "С творческим началом", может быть потому, что началось всё это с web-программирования, которое кажется мне какой-то начальной ступенью, слишком уж легко это даётся, по крайней мере слишком лёгкое начало, но.. мечтаю программировать видеоигры, и... как вы думаете, найдёт ли когда-нибудь такая отрасль развитие в нашей стране?
И ещё, это сообщение не похоже на оффтопик, и.. может быть создать новую тему? --------------------
Что написал, то написал (Пилат) |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Буквально на днях разговаривал человеком - они как раз делают игры под приставку. Я не знаю, чем закончатся наши переговоры, но такой факт имеется. |
|||
|
||||
| Она |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 23.4.2004 Где: Москва Репутация: нет Всего: 2 |
AntonSaburov, я конечно может и не по теме...модеры, простите...
Можете ли Вы оценить код? Как программист...если Вы профессионал (я надеюсь Вы не обиделись на такую формулировку) Вы это...должны попробовать оценить... Вот кусочек....Интерфейс маленького модуля, без которого невозможно развивать большую систему... var // Нужна для переключения между режимами использования DLL WithDLL:boolean=true; type TProxyClass=class; TProxyClasses=class of TProxyClass; IDataCore=interface; TStreamProc=procedure (Stream:TStream) of object; ExceptCore=class(Exception); TInfoType=(itWork,itDoc); TSysOperation=(soCreate,soInitialized,soDestroy,soChanged,soNeedCheck,soUser); TObjPermitions=set of (opExec,opCreate,opView,opEdit,opDelete); TFieldKind=(ft_Unknown,ft_INT,ft_LINK,ft_RTF,ft_VARCHAR,ft_FLOAT, ft_DATE,ft_MEMO,ft_PICTUTE,ft_BLOB,ft_DICT,ft_CHAR, ft_MULTI,ft_CALC,ft_OLE); TFunctionDef=function(Sender:TObject; AtrList:TStrings):string; //---- ИНТЕРФЕЙС ОПИСАНИЯ ПОЛЕЙ -------- IFieldsInfo=interface ['{82DF39D1-182A-45C9-B2EB-AEA2BD80F36C}'] // Инициализация обработчиков полей. При создании вызывается автоматом procedure Init; // Получить ссылку на ядро function Core:IDataCore; // Получить датасет к которому пристегнут интерфейс function DataSet:TDataSet; // Возвращает список имен полей, которые были модифицированы function IsChanged(FieldList:TStrings=nil):boolean; // Получение имени таблицы, на которую ссылается данная function GetLinkTName(const FieldName:string):string; // Получение типа поля в терминх системы function GetFieldKind(const FieldName:string):TFieldKind; // Проверка является ли данное поле ссылкой на справочник function IsDictField(const FieldName:string):boolean; // Проверка является ли данное поле ссылкой 1->N function IsMultiField(const FieldName:string):boolean; // Проверка на обязательность значения полч (не NULL) function IsRequired(const FieldName:string):boolean; // Получение DataSet записей связанных с данной как 1->N function GetMultiField(const FieldName:string):TDataSet; //!! Добавление вычисляемого поля function AddCalcField(ObjectID:integer; const FieldName:string=''; const DisplayLabel:string=''):TField; //!! Работа с таблицей // Получить значение поля function GetValue(const FieldName:string):Variant; // Установить значение поля и установка связи 1->1 или 1->N function SetValue(const FieldName:string; Value:Variant):boolean; // Удаление связи 1->1 или 1->N function DelLink(const FieldName:string; RefID:integer):boolean; // Обновление текущей записи, после установки значений или удаления/добавления связей // возвращает пустую строку или описание ошибки function Update(Err:PString=nil):boolean; // Вставка новой записи, после установки значений или добавления связей // возвращает пустую строку или описание ошибки function Insert(Err:PString=nil):boolean; // Отмена всех изменений (сброс заданий Update, Insert) procedure Cancel; // Удаление текущей записи function Delete:boolean; // Перечитать рекордсет procedure Refresh; //====== Работа с BLOB (только вне Update, Insert function ReadBlob( const FieldName:string; LoadFromStreamProc:TStreamProc;InZip:boolean=false):boolean; function WriteBlob(const FieldName:string; SaveToStreamProc:TStreamProc;InZip:boolean=false):boolean; //====== Сортировки function OrderList(FieldList:TStrings):boolean; function AddOrder(const FieldName:string; Descending:boolean=false):boolean; // Если имя поля отсутствует, то удаляются все сортировки function DelOrder(const FieldName:string=''):boolean; // Применить сортировки function Order:boolean; //====== Фильтры // Фильтр - арифметическое выражение. Имена полей - переменные // Если результат выполнения выражения - пустая строка или 0, // то запись не будет показана. Для сброса фильтра надо передать // как аргумент функции пустую строку. // Можно использовать функции // Like(<шаблон в кавычках>,<строка>) // Null(<имя поля в кавычках>) // Значения полей типа "дата" возвращаются как float procedure SetFilter(FilterExpr:string=''); function GetFilter:string; // Переход по ключу function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; end; //--- ИНТЕРФЕЙС ЯДРА СИСТЕМЫ ----------- IDataCore=interface ['{A2887813-328C-4207-B63E-62742C766665}'] // Служебные функции, обеспечивающие работу системы по памяти и сообщениям // {} // Ссылка на приложение и экран {} {} function Application:TApplication; {} {} function Screen:TScreen; {} {} // Поиск свободного идентификатора в памяти {} {} function GetNewID(AClass:TProxyClass):integer; {} {} // Команда на исключение объекта из списка объектов {} {} procedure FreeNotify(Entity:TProxyClass); {} ///////////////////////////////////////////////////////////////////////////// // Сообщение об ошибке function Error(e:string; sender:string=''):TProxyClass; // Идентификатор пользователя function UserID:integer; // Установка значения глобальной переменной procedure SetValue(const VName,Value:string); // Чтение значения глобальной переменной function GetValue(const VName:string):string; // Добавление/замена функции ядра procedure DefFunction(const FncName:string; Fnc:TFunctionDef); // Извещение об изменении объекта procedure Notify(AObject:TObject; Operation:TSysOperation); // Регистрация класса procedure RegisterClass(AClass:TProxyClasses); // Получить список классов procedure GetClassList(ClassList:TStrings); // Получить список экземпляров в памяти по имени класса procedure GetObjectsList(const AClassName:string; List:TList); // Получить идентификатор объекта function ObjectIDbyName(const ObjectName:string):integer; // Сохранение информации об объекте (StreamProc=SaveToStream) procedure SaveInfo(ObjectID:integer; StreamProc: TStreamProc; Typ:TInfoType=itWork); // Чтение информации об объекте (StreamProc=LoadFromStream) function LoadInfo(ObjectID:integer; StreamProc:TStreamProc; Typ:TInfoType=itWork):boolean; // Сохрaнение информации об объекте c записью значений его свойств function SaveObject(AObject: TProxyClass):boolean; // Чтение информации об объекте c восстановлением значений его свойств function LoadObject(AObject: TProxyClass):boolean; // Создание объекта по имени класса function CreateObject(const AClassName:string; ObjectID:integer=-1):TProxyClass; // Получение ссылки на объект по списку в памяти и БД function GetObject(const ObjectID:integer; InstanceID:integer=0):TProxyClass; // Получение множества прав на объект function Permitions(const ObjectID:integer):TObjPermitions; //Выполнение вычислений function Calc(const Expression:string):string; //Вызов функции function DoFunction(const FuncName:string; Args:TStrings=nil):string; // Выполнить/открыть файл procedure ExecFile(const FileName:string; const Params:string=''); // Выполнение запроса на главном коннекте // Дополнительные команды (над таблицами abCoreTypes и abCoreRefs) // OBJECT <ID> - получить запись системной информации об объекте // PATTERN <Num> - получить объекты по номеру шаблона(см.табл. abCorePattern) // TARGETS <ID> - получить объекты, зависимые от данного (дочерние) // SOURCES <ID> - получить объекты от которых зависит данный (родительские) // KILL <ID> - удалить объект и все его связи function sysSQL(const Query:string; ErrMsg:PString=nil):TDataSet; // Получение списка полей таблицы (false=таблицы не существует) function CheckTable(const TableName:string; FieldList:TStrings):boolean; // Импорт таблицы function ImportTable(const TableName:string):boolean; // Получение запроса на создание таблицы function CreateDDL(const TableName:string):string; // Получение запроса на добавление полей function AlterDDL(const TableName:string):string; // Получение списка коннектов procedure GetDBList(List:TStrings); // Проверка наличия соединения function DBExist(const Name:string):boolean; // Добавить соединение в список function AddDB(const DBName,Params:string):boolean; // Получить список таблиц на коннекте procedure GetTableNames(List:TStrings;const DBName:string=''); // Открыть транзакцию function Transaction(const DBName:string=''):boolean; // Проверка транзакции function InTransaction(const DBName:string=''):boolean; // Откат транзакции procedure Rollback(const DBName:string=''); // Подтверждение транзакции procedure Commit(const DBName:string=''); // ExecQuery - выполнение запроса на произвольном коннекте // Можно выполнять подряд несколько SQL и дополнительных команд, // команды и запросы разделяются точкой с запятой, допустимы крментарии, // коментарий задается двумя слешами в начале строки. // В случае, если произошла ошибка и задан список параметров, то в параметре // Error вернется имя класса ошибки и строка ошибки // // Дополнительные команды: // // STORED <Name&Params> - вызов хранимой процедуры с использованием объекта TADOStoredProc // Отличается от обычного вызова тем, что может вернуть рекордсет и выходные // значения параметров. ВНИМАНИЕ!!! Команда игнорирует ошибки. // // SET <ValName>=<FieldName> - установить значение переменной в значение поля. // Переменные могут использоваться как параметры последующих запросов. // Значения полей берутся из последнего полученного рекордсета. // В правой части также допустимы формулы... // // PARAMS <ParamName> - добавляет параметр в список параметров. Через запятую // можно перечислить несколько параметров. // // IsDate <список имен полей, разделенных запятыми> - Указывает какие параметры // последующих SQL команд следует пытаться преобразовать к дате // // SHAPE <Def> - автоматически создаст MS Shape соединение для текущего алиаса, // вернет рекордсет только для чтения, предварительно освободив // соединение MS Shape. // // EDIT <Имя таблицы> - указывает для последнего выполненного селекта какая таблица // результирующего множества будет редактируемой. Проверяет в запросе // наличие поля <Имя таблицы>.ID, в случае отсутствия добавляет его в запрос // ВНИМАНИЕ!!! Команда небезопасна. // // IF <условие> - оператор ветвления. В условии могут быть вычисления // [ELSE] false=0 или пустая строка // END; // // MAXCOUNT <Выражение> - установить максимальное количество ожидаемых записей // // FOREACH [<Имя поля>/<SQL выражение>] - оператор цикла. // END; Если комада без параметров, то в качестве исходного // рекодсета используется последний результат запроса. // Второй вариант использования команды - задать как параметр // имя поля последнего результата запроса, которое разворачивается // в рекордсет. // Третий вариант задать после FOREACH SQL выражение в // синтаксисе SELECT (слово "SELECT" при этом писать не надо) // В этом случае будут перебираться записи, полученные в результате // выполнения этого SELECT'а // // EXCEPT <выражение> - вызывает исключение. сообщение об ошибке - // результат выполнения выражения-параметра // // LОAD <выражение> - результат выполнения команды рекордсет, загруженный из файла // имя файла - результат выполнения выражения. Для загрузки // допустимы форматы ADO XML и ADTG. // // SAVE <выражение> - сохраняет последний рекордсет в файл DBF, ADO XML или ADTG // имя файла - результат выполнения выражения. // Формат зависит от расширения имени файла. // SAVE <ИмяПоля> TO <Выражение> - выражение задает имя файла в который надо // положить содержимое BLOB текущего DataSet // // FREE - освобождает последний полученный рекордсет // // WIDTH <Имя поля>=<выражение> - позволяет установить видимую в таблице ширину поля // Если значение выражения 0 - поле будет невидимым // // STOP [выражение]- прекратить выполнение скрипта. Если задано выражение, то // результат его выполнения будет предъявлен в диалоге с кнопками // <ДА> и <НЕТ>. При нажатии на кнопку <НЕТ> выполнение скрипта будет // остановлено. // // SAFE <любая команда SQL> - выполнить команду без уничтожения предшествующего // результата (Наример SAFE UPDATE ... не приведет к уничтожению // выборки из предыдущего SELECT,SHAPE или LOAD) // // TRACE <выражение> - вывод результата выполнения выражения в окно трассировки // // SQL <выражение> - вызов хранимого запроса. Результатом выражения должно быть имя или ID запроса. // После имени или ID в круглых скобках можно перечислить через запятую // параметры запроса в формате <Имя параметра>=<значение> // // ADD <AliasName>:<ConnectionString> - Добавить строку соединения в глобальный список // // ALIAS <Name> - установить соединение, на котором будут выполнятся последу- // ющие запросы и команды // // CLOSE [AliasName] - закрывает указанное соединение или все соединения кроме системного // // TRANS [AliasName] - переведет соединение в транзакцию, при успешном выполнении // пакета запросов = автоматичческий Commit. При любой ошибке в // любой команде - RollBack. // // ROLL [AliasName] - откат транзакции на указанном соединении или всех соединениях, // для которых была объявлена транзакция // // COMMIT [AliasName] - подтверждение транзакции на указанном соединении или всех соединениях, // для которых была объявлена транзакция // function ExecQuery(SQL:string;const DBName:string=''; Rows:PInteger=nil; Params:TStrings=nil; Master:TDataSet=nil):TDataSet; // Получение из скрипта аналогичного ExecQuery значения поля или параметра (приоритет у параметров) function SQLValue(const SQL,ParamName:string; Params:TStrings=nil):Variant; // Экспорт данных DataSet в файл формата DBF, ADO XML или ADTG function SaveDataSet(DS:TDataSet; const FileName:string):boolean; // Возвратить данные из указанной таблицы с учетом порядка полей // функция автоматически вызовет GetFieldsInfo function Table(const TableName:string):TDataSet; // Переименовать поля и задать их атрибуты в соответствии с метаданными function GetFieldsInfo(DataSet:TDataSet):IFieldsInfo; //-------- Работа с BLOB ------------------ function ReadBlob(const Table,Where,BLOBField:string; LoadFromStreamProc:TStreamProc; const Alias:string=''; InZip:boolean=false):boolean; function WriteBlob(const Table,Where,BLOBField:string; SaveToStreamProc:TStreamProc; const Alias:string=''; InZip:boolean=false):boolean; function FileToBlob(const Table,Where,BLOBField,FileName:string; const Alias:string=''; InZip:boolean=false):boolean; function BlobToFile(const Table,Where,BLOBField,FileName:string; const Alias:string=''; InZip:boolean=false):boolean; //--------- Работа с ZIP -------------- //Список файлов function ZIP_List(const ZipFile:string; List:TStrings):boolean; // Распаковка файлов в директорию function UnZip(const ZipFile:string; FileList:TStrings; Directory:string; RecreateDirs:boolean=false):boolean; overload; // Распаковка файла в поток function UnZip(const ZipFile,FileName:string; LoadFromStreamProc:TStreamProc):boolean; overload; // Зипование файла function Zip(const ZipFile:string; FileList:TStrings; RecreateDirs:boolean=false):boolean; overload; // Зипование потока function Zip(const ZipFile,FileName:string; SaveToStreamProc:TStreamProc; Append:boolean=false):boolean; overload; end; // БАЗОВЫЙ КЛАСС РАЗДЕЛЯЕМЫХ ОБЪЕКТОВ ------------- TProxyOptions=set of (poFreeAfterCall, // Освобождать память после обращения к объекту poOnlyOne, // Только один (первый созданный объект) poReloadable, // Возможна смена ObjectID с перезагрузкой объекта poAutoLoad, // Чтение при открытии poMenuItem, // Можно вызывать из меню poPermited // Обязательное чтение прав при загрузке ); TProxyClass=class(TComponent) private fCore:IDataCore; fInstanceID: integer; fObjectID: integer; fUserText: string; fTypName: string; fPermit: TObjPermitions; procedure SetObjID(const Value: integer); protected function GetValue(ValName: string): string; virtual; procedure SetValue(ValName: string; const Value: string); virtual; public constructor Create(Core:IDataCore; ObjID:integer); virtual; destructor Destroy; override; class function Options:TProxyOptions; virtual; class function Documentation:string; virtual; // Инициализация объекта средствами Proxy procedure AssignObject(var AObject:TObject); virtual; // Вход вызова команды procedure Action(Sender: TObject); virtual; // Список переменных procedure ValueList(List:TStrings); virtual; // Доступ к переменным объекта property Values[ValName:string]:string read GetValue write SetValue; // Список функций procedure FunctionList(List:TStrings; WithArgs:boolean=true); virtual; // Обращение к функции function DoFunction(const FuncName:string; Args:TStrings):string; virtual; // Ссылка на интерфейс ядра property Core:IDataCore read fCore; // Чтение и запись объекта function Load:boolean; virtual; procedure Save; virtual; // Основные свойства property InstanceID:integer read fInstanceID; property ObjectID:integer read fObjectID write SetObjID; property TypName:string read fTypName write fTypName; property UserText:string read fUserText write fUserText; property Permitions:TObjPermitions read fPermit; end; implementation ЗЫ: Критический взгляд со стороны очень интересует. -------------------- С уважением. Мария. |
|||
|
||||
| BearBeer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Модератор Сообщений: 902 Регистрация: 25.3.2002 Репутация: 4 Всего: 9 |
эээ, а может ли такой код что-либо сказать?
Вы мне лучше скажите, как бы Вы в "плюсах" присвоили один массив другому? ;) мм? Или навскидку решение задачи коммивояжера напишите. для симметричной, а потом несимметричной. Или в определенной прикладной задаче (какой-нибудь простенькой) покажите какие классы хотите создать и почему. ну и т.п. ;) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Обсуждение работы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |