Перейти к содержанию
АнимеФорум

Рекомендуемые сообщения

Опубликовано (изменено)
К услугам таких программистов готовые компоненты и библиотеки - элементы конструктора, опять же черных ящики для построения программы. А с другой стороны, если хорошенько подумать, может и не нужно все это прикладнику? Как не нужно системщику, например, умение писать игровые программы.

 

Оно, увы, нужно. Оно мышление развивает. Программиста ценить надо не по полноте знания языка, и не по количеству известных ему языков, нет. По полноте анализа каждой ситуации - вот по какому качеству нужно ценить программиста. Так вот эти "специалисты" - такими способностями не обладают. Их среды "кое-как, но работает" не развивают. Вообще, как писал Станислав Лем: разум отнюдь не узкая специализация, а напротив, как можно более высокая.

 

Вы работали с lex/yacc? Вопрос никак не связан с основной частью моего сообщения.

 

Нет, я же не занимаюсь Delphi или Builder'ом. Я вот чем занимаюсь (лся... :) ): http://www.mega-soft.ru/prg3143.html

Изменено пользователем lsor (смотреть историю редактирования)
  • Ответов 232
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Опубликовано
плохо знаком с VCL, но вспоминается, что там не все API функции представлены

Там вообще API в чистом виде не представлены. Это обертка в виде классов/функций. Причем по моему опыту, если что из WinAPI надо, чего нет, на базе базовых классов свои обертки на раз пишутся.

 

Обработка исключений процессора это не абстракция от железа, а наоборот, самый что ни на есть низкий уровень. Все это элементарно реализуется на ассемблере путем установки SEH и VEH обработчиков.

Исключения - это исключения. Это метод отслеживания и обработки логических ошибок программирования. Высокий уровень абстракции. Как оно на низком уровне организованно, никому не интересно.

Да и кстати, это не костыль - программ без логических ошибок не бывает.

 

 

Я предлагаю другую аналогию: <> инструмент более широкого назначения

Неправда ваша. Активная работа с указателями требуется редко, а мешает часто. Скорее аналогия с обычным универсальным ножом, и специальным, для рыбы там, которую универсальным чистить можно, но удобнее специальным.

 

А вообще, есть одна проблема: серьёзных программистов на самом деле чёрта-с-два сыщешь - в основном "специалисты" по SDK попадаются.
развелось много "тепличных" программистов, для которых компьютер и ОС этакие черные ящики.

Dont call them developers. Monkeys. © VSL

 

Программиста ценить надо не по полноте знания языка, и не по количеству известных ему языков, нет.

А это вообще перпендикулярно программированию. Зная парадигму языка и синтаксис, программировать можно на любом.

Опубликовано
Вопрос не о том. Вопрос о том, почему копия FreeUID не создаётся для каждого объекта класса, а одна на всех.

Потому-что используется совместно.

class MyClass

{

static int FreeUID;

int UID;

public:

MyClass():UID(FreeUID++){}

};

Ну или совсем уж тупой вариант:

class MyClass

{

static TCHAR PathToDefaultDirectory[MAX_PATH];

public:

void MethodOne();//один метод работающий с DefaultDirectory

void MeyhodTwo();//другой метод работающий с DefaultDirectory

};

Опубликовано
Там вообще API в чистом виде не представлены. Это обертка в виде классов/функций. Причем по моему опыту, если что из WinAPI надо, чего нет, на базе базовых классов свои обертки на раз пишутся.

 

Так чистый вид и не нужен. Нужны функции в концепции паскаля. Чтобы с паскалем, а не с си совмещались и не приходилось в явном виде с указателями работать.

 

А это вообще перпендикулярно программированию. Зная парадигму языка и синтаксис, программировать можно на любом.

 

Так я о том и говорю. ^_^

 

Потому-что используется совместно.

 

Да понятно это всё. Но для этих целей можно и завести глобальную переменную. А вот чтобы сделать функцию с внутренним флагом, что она уже вызывалась, придётся загромождать класс переменными флагов. Вот нужно мне, чтобы при первом обращении к функции создавался файл, а во всех остальных он дописывался. Так я в самой функции класса пишу static FirstStart=true, а так мне нужно в самом классе заводить такую переменную. Но это ладно, но ведь разделяемая переменная в классе ещё и нарушает идеологию. Она не очень-то логична. Все переменные у объектов свои собственные, а вот эта особенная и одна на всех. Было бы логичнее чтобы и static переменные функций и классов были собственностью объектов этих классов.

  • 3 месяца спустя...
Опубликовано (изменено)

Там присутвуют компоненты для работы с БД насколоко я помню, ну а дальше F1.

Также можно посомтреть в сторону http://www.devart.com/mydac/download.html

Изменено пользователем egik5hatki (смотреть историю редактирования)
  • 2 недели спустя...
  • 1 месяц спустя...
  • 1 месяц спустя...
Опубликовано (изменено)

Вопрос по RegEx.

Задача - надо в хтмл зацепить <TABLE>...</TABLE> элемент, внутри которого есть определенный урл.

<TABLE>.*?<xxx>.*?</TABLE> срабатывает с самого первого вхождения <TABLE> и захватывает практически всю страничку.

В общем, по сути - хотелось бы сделать non-greedy сравнение "назад".

Или, как вариант - .*, в котором не присутствует определенного слова - тогда бы я сделал <table>(.*, не содержащий <table>)<xxx>.*?</table>)

 

п.с. в принципе, реален вариант заданичя максимального кол-ва символов .{1,x}, но очень не хотелось бы, так как хз насколько большая тейбла.

п.п.с. язык - питон.

 

//edit

После пяти часов поиска и экспериментов вроде нашел. ((?!<table).)* - матчит строку, где нет вхождения "<table".

Логику работы - не понимаю, откуда получилось - хз, но вроде работает. Осталось потестить на рабочей программе...

Изменено пользователем Andy_Scull (смотреть историю редактирования)
  • 1 месяц спустя...
Опубликовано (изменено)

Подскажите, есть ли для Linux платформо-зависимая консольная библиотека, идентичная DOSовской с заголовочником conio.h?

PS Ещё не программировал в линуксе.

Изменено пользователем Baka Oni-chan (смотреть историю редактирования)
Опубликовано
Подскажите, есть ли для Linux платформо-зависимая консольная библиотека, идентичная DOSовской с заголовочником conio.h?

ncurses. Не совсем идентичная, да и не совсем аналогичная (ибо значительно больше возможностей дает).

Опубликовано
ncurses. Не совсем идентичная, да и не совсем аналогичная (ибо значительно больше возможностей дает).

Погуглил название, теперь в курсе. Благодарю за наводку.

 

Всем советую прочитать книгу Харви Дейтел, Пол Дейтел - "Как программировать на C". Не смотрите, что старьё. Конечно, кое-какие там огрехи есть, но книга хорошая, годная. Вырабатывает хороший стиль программирования (в отличии от мелкомягких примеров на C++, ИМХО).

Опубликовано (изменено)

Давно хотел узнать... Как загрузчик для x86 пишется? Сначала BIOS заботится о том, чтобы определить устройство для загрузки. Потом начинает читать с какого-то (первого?) сектора устройства команды процессор? Естественно, о секторах и прочем заботится контроллер устройства. А какими командами процессора можно организовать приглашение пользователю, работать с экраном? Прерывания использовать? И если да, то какие можно (x86)? И ещё, как написать программу, записывающую данные с командами в загрузочный сектор FDD/HDD/CD?

 

И ещё. Похоже, написать _интерактивное_ приложение под шелл невозможно без пратформенной зависимости (то есть, используя stdio.h, без функций, реализованных conio.h и ncurses)? Максимум, лайн-редактор наподобие ed?

Изменено пользователем Baka Oni-chan (смотреть историю редактирования)
Опубликовано
Похоже, написать _интерактивное_ приложение под шелл невозможно без пратформенной зависимости

Интерактивно - в смысле, с менюшками и окошками? Тут можно

1) ncurses использовать, он кроссплатформенный

2) Забить на С, Free Pascal использовать ;)

3) Свою реализацию (или гуглить, может и есть такое уже готовое) для conio.h через termcap.h (или что-там еще потребуется) для пингвина сделать.

 

Давно хотел узнать... Как загрузчик для x86 пишется?

ОМГ. Никак свою ОС хочется? Тут лучше гугла спрашивать, мне он, например, такое нашел:

Ксакеп - как писать загрузчик

 

Потом начинает читать с какого-то (первого?) сектора устройства команды процессор?

google://mbr

 

И ещё, как написать программу, записывающую данные с командами в загрузочный сектор FDD/HDD/CD?

Под линуксом просто

dd if=/dev/sda of=/home/user/saved.mbr bs=512 count=1 - сохранить mbr

dd if=/home/user/new.mbr of=/dev/sda bs=512 count=1 - записать свой

Полезно, кстати, при наличии винды в дуалбуте - она ведь при переустановке затирает линуховый загрузчик, поэтому поставил линь - сохранил mbr, после переустановки винды загрузился с лайв-сд и вернул на место.

 

P.S. Загрузчик может и не в mbr быть, а на разделе, но с этим опять к гуглу, хотя под линем просто /dev/sda меняется на /dev/sda1 (a и 1 - просто пример, и буква и цифра могут отличаться).

P.P.S. Старость - не радость, пять лет не программил, забыл все :D

Опубликовано
2) Забить на С, Free Pascal использовать

И вправду, что-то я забыл про него. Из-под него под любую платформу компилять можно.

 

ОМГ. Никак свою ОС хочется?

Ну, так далеко я не заглядывал :). Я реалист. Просто посчитал, что это мне надо знать. А статья интересная.

 

Под линуксом просто

Вот ведь. Полезная команда.

 

P.S. Загрузчик может и не в mbr быть, а на разделе, но с этим опять к гуглу, хотя под линем просто /dev/sda меняется на /dev/sda1 (a и 1 - просто пример, и буква и цифра могут отличаться).

Основы я уже усвоил.

 

P.P.S. Старость - не радость, пять лет не программил, забыл все

А может оно и к лучшему, если уже не надо? :) Или хотелось бы, да нет возможностей? :(

  • 3 месяца спустя...
Опубликовано (изменено)

Товарищи, подскажите, кто в курсе. Интересует вопрос оптимизации проверки логических условий для С++.

 

Конкретно -- такая вещь. Вот у нас есть сложно логическое выражение с && или ||. Вот оно проверяется. Как-то смутно брезжит в памяти, что полностью условие будет проверяться не всегда -- если всё становится понятно, то программа дальнейшую проверку сворачивает.

 

То есть, например, условие

 

if( func1() && func2() ) траляля

 

Вызывается func1() и становится известно, что она false. Верно ли то, что в данном случае программа проверку завершает и func2() уже не вызывается, т.к. ясно, что результат всего выражения -- false? Или неверно? Или как компилятор сделан?

 

Вожжа под хвост попала -- хочется использовать такую фишку. Но не в курсе, можно ли, и как у неё со стабильностью.

Изменено пользователем Shinsaku-To (смотреть историю редактирования)
  • Администрация
Опубликовано
Логические операции выполняются слева направо. Если значения первого операнда достаточно, чтобы определить результат

операции, второй операнд не вычисляется.

Т.е. если в if( func1() && func2()) func1()=false, то func2() не вызывается, с || наоборот, если первая истина, то проверка оканчивается.

Так как в этой книги дан чистый C/C++ без привязки к какому-нибудь компилятору, то думаю, что это правило универсально.

Во всяком случае, у меня это работало так:

if(!File&&cout

Если файл не был загружен, то текст выводился, если был - нет.

  • 4 недели спустя...
Опубликовано (изменено)

всем привет. мне бы очень хотелось портировать онскриптер на кпк известно для чего, но сам я ничерта не смыслю в wm-программировании и был бы рад любой помощи сведующих.

есть ли здесь такие?

Изменено пользователем Rosetau (смотреть историю редактирования)
Опубликовано

вообщем, такая ситуация. попросил брата придумать мне задание для реализации в паскале, он загадал следующее: программа, вычисляющая шансы на выигрыш в техасском холдеме (разновидность покера, если кто не знает). скажите, насколько это сложно реализуется и с помощью чего? понимаю, что вопрос довольно относительный, но попытайтесь, пожалуйста.

з.ы. программировать начал меньше недели назад, поэтому очень много не знаю

Опубликовано
как писать для wm?

Что гугль подсказал.

http://msdn.microsoft.com/en-us/windowsmobile/bb250560.aspx

Вкратце:

1. Visual Studio 2008 - download, install

2. Windows Mobile SDK - download, install

3. ActiveSync - download, install

4. запуск Visual Studio 2008

5. несколько тычков мышкой и программа 'Hello World' работает на КПК или эмуляторе.

Опубликовано
программа, вычисляющая шансы на выигрыш в техасском холдеме (разновидность покера, если кто не знает).

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

  • 1 месяц спустя...
Опубликовано (изменено)
как писать для wm?

Однако...писать под wm можно, и все куда проще, чем я думал.

Если вкратце - берется lazarus, устанавливаются дополнительные компоненты, и простейшая прога пишется и компилится за минуту.

Копипастить небуду, некий гайд здесь. Там же есть ссылка на гайд на ладошках про эмулятор, чтобы прогу каждый раз не таскать на кпк.

Еще много интресного можно почитать тут.

PS: еще увидел вот такую новость. Ненаписано только, это на .NET или паскаль...

PPS: KOL у меня не компилится почему-то, если у кго получится - напишите плиз...да и размер екзешника выходит почти 2 метра...что-то многовато...

 

--------------------------------------------------------

Upd:

Заработало. Для упешной пересборки лазаруса с KOL надо было всего-лишь переключить кодировку с японской на русскую, хотя лазарус вроде как полностью поддерживает юникод.

я использовал следующие верии:

 

lazarus-0.9.28.2-fpc-2.2.4-win32

Lazarus-0.9.28-fpc-2.2.4-cross-arm-wince-win32

kol-ce-2.80.3

 

чтобы нормально создать приложение с KOL как в гайде, надо чтобы пути к лазарусу и Вашему проекту содержали только латиницу, и, желательно, в нижнем регистре. Тогда KOL-проект при помещении на форму TKOLForm автоматически генерируется нормально, и после настройки компилятора пустя форма весит 45кб)))

Изменено пользователем Ayuu (смотреть историю редактирования)
Опубликовано
Скорее всего, не сложно, и реализуется в чём угодно. Но для ясности хотелось бы подробное изложение задачи.

только сейчас заметил(

итак, как я себе это представляю:

1. ввод параметров игры (число игроков

2. ввод собственных карт

3. вывод шанса

4. ввод флопа

5. вывод шанса

6. ввод тёрна

7. вывод шанса

8. ввод ривера

9. вывод шанса

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...

Важная информация