Перейти к содержанию

nonlux

Пользователи
  • Постов

    91
  • Зарегистрирован

  • Посещение

Весь контент nonlux

  1. NTYM_2882_ Запрос в гусл сразу дает +100500 ссылок. Может тему посмотрят много уважаемые Сисники* ( извините описался хотел Сишники) И дадут мне пару советов.
  2. Ну по поводу. Компонентов делфей и вообще делфи не знаю Но а так все работать должно как-то, так: База всего приложения это проток HTTP. То есть если посмотриш на верхнюю строку в браузере http://ulanovka.ru/forum/viewtopic.php?t=314392&sid=000 это ссылка на настоящую тему. Это тебе как пользователю достаточно ее куда то ввести. Обращение по этой ссылке самим браузеро упрошенно выглядит так GET /forum/viewtopic.php?t=314392&sid=000 HTTP/1.1 Host: ulanovka.ru Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Cache-Control:max-age=0 Connection:keep-alive Cookie:phpbb2mysql_data=????????; .... Host:ulanovka.ru Referer:http://ulanovka.ru/forum/viewforum.php?f=137&sid=000 User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19 (пустая строка) Ответ сервера: HTTP/1.1 200 OK Cache-Control:no-cache, pre-check=0, post-check=0 Connection:keep-alive Content-Type:text/html Date:Fri, 04 May 2012 12:08:22 GMT Expires:0 Pragma:no-cache Server:nginx/0.7.67 Set-Cookie:phpbb2mysql_data=&&&&& Transfer-Encoding:chunked (Пустая строка) страница Но суть в том что первое что должно делать твое приложение это вести HTTP - диалог как ты это сделаешь не суть важно, можешьнайти компонент, или использовать сокеты. 2. если вернемся к ссылке http://ulanovka.ru/forum/viewtopic.php?t=314392&sid=000 На серве лежит скрипт viewtopic.php ему можно передовать параметры, он например воспринимает параметр t - который обозначает идентификатор темы, и sid - который обозначает идентфикатор твой сессии Что бы просматривать темы мы и указываем t=314392, а например номер соседней темы t=314230 Вот чтобы как нибуть взаимодействовать с сервером тебе нужно знать его API. или если ты и сервер писать будеть то придумать его. Например www.mydocsite.ru/superPuperClient.php?tast=setMeOnline&my_ip=192.0.0.1&user=000123&pass=123 - например такая хня может подключать твой клиент, ты говориш подключи мой клиент мое уникальное имя 000123 www.mydocsite.ru/superPuperClient.php?task=getNewComand -например такая хня будет дай мне следующее сообщение www.mydocsite.ru/superPuperClient.php?task=compliteComand&id=999&state=ok -например такая хня значит что клиент отлично выполнил команду номер 999 www.mydocsite.ru/superPuperClient.php?task=compliteComand&id=666&state=fail - а такая хня сообщит серверу что клиент не стал выполнять команду 666 ( он же не сатанист) На эту всю фигню сервер должен уметь отвечать, опять же если готового нет то можно посмотреть в сторону XML и JSON. Полюбас на делфях если либы которые могут жрать ету хрень и возвращать добные структуры. например при запросе www.mydocsite.ru?superPuperClient.php?task=getNewComand сервер может отвечать XML <?xml version="1.0" encoding="UTF-8"?> 1 fuck yourself in the ass или JSON {id:1,action:"fuck yourself in the ass"} а можешь просто посылать голый ответ fuck yourself in the ass Вот в принципе и все что тебе предстоит сделать. Но имей ввиду такая реализация сетевго взаимодействия не совсем удатчно потому что. Пока клиент не послал запрос серверу от тупо дрыхнет и ему пофигу на клиентов которые подключились или же которые что нибуть выполняют. То есть тебе не удасться реализовать полного интерактива в сетевом взаимодействии.. Плюс он при каждом запросе клиента снова должен узнать или вспомнить что вообще происходит, кто его теребит да и вообще ВСЁ ( понимаешь HTTP сервера много спят и много бухают, поэтому они всегда у всех спрашивают ты кто чего хочешь) Вот такая лабуда. Ну я думаю направление мыслей тебе дал. Так что удачного кодинга и успешных тестов.
  3. class b: public a{ b(void); } как запустить конструктор родителя? 2. class a { char * getValue(); wchar_t * getValue(); } Не могу определить два метода возвращающих нужный тип данных по контексту? 3 classA *a=new classA(); classB *b=new classB(); classC *c=new classC(); --- как нибуть можно избавится от этой писанины? а то писать постоянно по двадцать раз имена классов зае#$%#ло, а то головоломный vs2010 отказывается подключать свой intellisense аля автокомплит в С/C++ проектах. ---- каа я понимаю коде выше a,b,c это указатели на какие то объекты. Как мне сделать массив из этих указателей? 4. Тестирование. Как вы тестите проекты ( хотелось бы минимум левых библиотек)? Рефлексия на C++ реальность? Как сделать прозрачную обертку для функции? class a { bool fun1(); bool fun2(); void wraper(bool flag); } void main(){ a *obj=new a(); a->wraper(a->fun1()); a->wraper(a->fun2()); } Хочу запустить a->fun1(); без a->wraper(); Добавлено спустя 52 секунды: P.S. еще полчаса потребовалось что бы найти нужную тему)))
  4. Проблема в том, что Win старше 98. Блокирует прямую работу с портами аппаратных устройств. <_
  5. у меня нет под рукой компа идея использовать отладчик не приходила?
  6. ясен пень фигрный скобки дядя ставить будет?
  7. 0 1 2 3 x 3 5 6 4 когда i равно 3 w равно 4 вот это w тебе надо переместить на позицию 1 на первом шаге станет x2 4, x3 6 x 3 5 4 6 на втором шаге x1 4 x2 5 x 3 4 5 6 не понял еще? x(j+1)=x(j) x(j)=w
  8. ага там x[j+1]=x[j] x[j+1]=w не замечаешь странностей а в функцию 1 ты три раза в программе используешь этот код тебе не лень? 2 написав 100 программ ты напишишь ввод массива 300 раз а если учесть что ввод массива подразумевает не только это строку а еще пару( у тебя цыкл ты не забыл)? сколько лишнего времени ты теряешь повтаряя одно и тоже каждый раз береги свое время для нужных дел, а не для повторения одного и того же изза дня в день Добавлено спустя 4 минуты 7 секунд: superman ок спасибо, раньше эти конструкции пропускал из внинимания, теперь повникаю php все таки прививает небрежность в низкоуровневых деталях
  9. вот и начни писать так, напиши все алгоритмы в отдельных функциях отдельно сделай функцию ввода отдельно вывода а так и посмотрим) Добавлено спустя 3 минуты 26 секунд: хотя я вижу где ошибка)))... если тебе нах не нужно писать проги и это тебе не интересно скажи, и узнаешь где ошибка если интересно напишим красивую прогу)
  10. superman Спасибо, полностью согласен. Этого нет в примере, потому что: 1. Я не C/C++ программист, а web), и последнее програ на С++ была написана более трех лет назад. 2. В примере хотелось показать не тонкости работы с коткрентым языком, а общий подход к написанию приложения,используюя слабую связность, и паттерны программирования( проектирования). Потому как видя код топик стартера пришел в свящетое Неистовство))), ибо так учат писать в ВУЗе, а точнее не совсем не учат. Например тут я попытался изобразить праттерн Стратегия. Это классы AbstractSortAlgorithm и наследники. Используя подобную технику можно свободно выбирать необходимую реализацию того или иного действия. То есть если представить, что в нашей проге очень важно быстро сортировать массивы. Допустим BubbleSort оптимален на массивах до 100 элементов InsertSort оптимален на массивах от 100 до 500 а SelectSort оптемален на остальных Тогда взаввисиммости от длинны массива можно выбирать нужный алгоритм, при этом жестко не задавая нужного алгоритма в программе. А для получения нужного алгоритма можно использовать еще один паттерн фабричный метод пример SortAlgorithmInfo::algorithmFactory Добавлено спустя 51 секунду: Кстати это что ? и почему убрать?
  11. алгоритм вставок пример на 4 проходе 1342.... сравнение 2 и 4 престановка 2 и 4 сравнение 2 и 3 престановка 2 и 3 сравнение 2 и 1 престановок нет то есть сравнений на любом шаге будет на одно больше. но на первом шаге когда i равно 0 сколько будет сравнений? цикл не будет проходить так как -1 элемента в массиве нет поэтому я и добавил +1 перестановку а условие if(i) тоже самое что и if(i>0) Р.S. если ты хочушь стать нормальным программером сравни свой код и мой какой легче читать и искать в нем ошибки, модифицировать, твой или мой? не пиши говнокод в котором ты сам не можешь отследить что и куда утекает, продумывай структу программы, вникни в конструкции языка,что такое ооп например, почитай что такое рефакторинг, и что такое паттерны проектирования. это в вузе преподаватели поощряют говнокод, в реальной жизни приложение умрет. а главное делай это красиво, так и желание и мотивация и самооцека растут,
  12. maip.cpp #include "SortAlgorithmInfo.cpp" int main(int argc, char** argv) { int arrLen = 20; int arr[] = {32, 4, 21, 5, 23, 66, 3, 56, 556, 67, 69, 67, 34, 23, 12, 89, 43, 12, 56, 99}; new SortAlgorithmInfo(arr, arrLen, BUBLE); new SortAlgorithmInfo(arr, arrLen, INSERT); new SortAlgorithmInfo(arr, arrLen, SELECTION); } SortAlgorithmInfo.cpp #include "AbsrtactSortAlgorithm.cpp" #include "BubbleSortAlgorithm.cpp" #include "InsertSortAlgorithm.cpp" #include "SelectionSortAlgorithm.cpp" const int BUBLE =0; const int INSERT=1; const int SELECTION=2; class SortAlgorithmInfo { private: void printArray(int *arr, int len, char *text) { printf("%s:", text); for (int i = 0; i < len; i++) { printf("%i ", arr[i]); } printf("\r\n"); } void printAlgorithmInfo(AbstractSortAlgorithm *alg, char *text){ printf("%s\r\nShift:%i\r\nCondition:%i\r\n",text,alg->getShiftCount(),alg->getConditionCount()); } AbstractSortAlgorithm* algorithmFactory(int type){ switch(type){ case BUBLE: return new BubleSortAlgorithm(); case INSERT: return new InsertSortAlgorithm(); case SELECTION: return new SelectionSortAlgorithm(); } } char * getAlgorithmName(int type){ switch(type){ case BUBLE: return (char *)"BubleSortAlgorithm"; case INSERT: return (char *) "InsertSortAlgorithm"; case SELECTION: return (char *) "SelectionSortAlgorithm"; } } public: SortAlgorithmInfo(int *unsortArray, int len, int algType) { AbstractSortAlgorithm *alg = algorithmFactory(algType); int *sortArray = alg->execute(unsortArray, len); printf("********************************************************\r\n"); printAlgorithmInfo(alg, getAlgorithmName(algType)); printArray(unsortArray, len, (char *) "unsort"); printArray(sortArray, len, (char *) " sort"); printf("********************************************************\r\n"); } }; #include AbsrtactSortAlgorithm.cpp #ifndef _MY_ASA_ #define _MY_ASA_ class AbstractSortAlgorithm { protected: int _shiftCounter; int _conditionCounter; void addShift() { _shiftCounter++; } void addCondition() { _conditionCounter++; } public: AbstractSortAlgorithm(void) { _shiftCounter = 0; _conditionCounter = 0; } ~AbstractSortAlgorithm(void) { }; int getShiftCount() { return _shiftCounter; } int getConditionCount() { return _conditionCounter; } virtual int* execute(int* unsortArray, int len) = 0; }; #endif BubbleSortAlgorithm.cpp #include "AbsrtactSortAlgorithm.cpp" #include #include class BubleSortAlgorithm : public AbstractSortAlgorithm{ public: int* execute(int* unsortArray, int len){ int *sortArray=new int[len]; memcpy(sortArray,unsortArray,sizeof(int)*len); for(int i=len-1;i>=0;i--){ bool shifted=false; for(int j=0;j addCondition(); if (sortArray[j]>sortArray[j+1]){ addShift(); int temp=sortArray[j]; sortArray[j]=sortArray[j+1]; sortArray[j+1]=temp; shifted=true; } } if (!shifted) break; } return sortArray; }; }; InsertSortAlgorithm.cpp #include "AbsrtactSortAlgorithm.cpp" #include #include class InsertSortAlgorithm : public AbstractSortAlgorithm { public: int* execute(int* unsortArray, int len) { int *sortArray = new int[len]; memcpy(sortArray, unsortArray, sizeof (int) *len); for (int i = 0; i < len; i++) { int insertItem = sortArray[i]; for (int j = i - 1; j >= 0 && sortArray[j] > insertItem; j--) { addCondition(); addShift(); //!!!!Condition==Shift+1 sortArray[j + 1] = sortArray[j]; sortArray[j] = insertItem; } if (i) addCondition(); } return sortArray; }; }; SelectionSortAlgorithm.cpp #include #include class SelectionSortAlgorithm : public AbstractSortAlgorithm { public: int* execute(int* unsortArray, int len) { int *sortArray = new int[len]; memcpy(sortArray, unsortArray, sizeof (int) *len); for (int i = 0; i < len; i++) { int shiftPos = i; int min = sortArray[i]; for (int j = i + 1; j < len; j++) { addCondition(); if (sortArray[j] < min) { min = sortArray[j]; shiftPos = j; } } if (shiftPos != i) { addShift(); sortArray[shiftPos] = sortArray[i]; sortArray[i] = min; } } return sortArray; }; }; #include "AbsrtactSortAlgorithm.cpp" Добавлено спустя 1 минуту 20 секунд: Вот как то так *124
  13. Koshak Бл.......$#$?++$+#?$# если до завтра терпит, то покажу как должна выглядеть нормальная программа. но попробуй после этого писать такой код)
  14. А я почитал, что как то так Длина числового типа данных, 8 байт Количество значащих цифр числового типа данных 15..16 Диапазон десятичного порядка числового типа данных -324..+308 ??? Где правда то есть это в районе 10^308 а он явно это не перепутал. А если бы перепутал, проявилось бы это скорее в -отрицательном значении, а не в отбрасывании чисел))
  15. Помогите пожалуйста с конфигой Цена на системник около 25000 Чел занимается фотографией, соответственно (основное это фотожаб и большие row) Планирует брать FullHD моник и большим разрешением
  16. Ну вообще если в твоей записи нет дроби это не значит что ее вообще нет. Здесь по видимому компилятор оперирует не 88817841970012530000000000000000000 88817841970012523233890533447265625 а 8881784197001253x10^19 8881784197001252,3233890533447265625x10^19 как это обойти в пакале? хз. Стандартная функция для степени почему не катит? Если нужет бесконечный порядок то S:=S*a не подойдет, ищи алкоритмы по умножению длинных чисел
  17. Вообще то Koshak прав. Говнокод тяжело искать в просторах интернета. Koshak То что ты пишешь называется спагети-код. Это не самый лучший метод написаниния программы. Напиши тоже но например в виде функций хотя бы, чтобы чувствовалась логики приложения. А потом дальше будем разбирать ошибки
  18. dibar +1 Вова0711 опять же если цель просто сайт, а ты вообще ни понимаешь как построить быструю и безопасную архитектуру твоего приложения, то вникай в движки, но имей ввиду что большинство движков ниписанны на php и если ты незнаешь не только язык но и методики разработки, методики патерны проектирования толкового ( не с твоей ) а с техической точки зрения будет кривое, медленое, небезопасное решение.
  19. ок Так и не понимаю тогда, когда режимы sli crossfire дают преимушество?
  20. Спасибо тебе огромное Intel по Цене не нравится. решение дороже. По AMD Про 1090T по отзывам разгонится лучше чем 1100T, там вроде разблокированный множитель мамка не поддерживает не sli не crossfire на своей конфиге думал позже взять вторую hd6950, две hd6950x2(разогнанные до 6970) лучше 560ti? Вообще цель собрать нормальный комп и не перереплачивать. То есть хотелось бы баланса между ценовым решением и производительностью
  21. Оу фак)) Спасибо, затупил 8ГБ оперативки А два моника, работать удобнее. Цели разные кодинг, рендеринг картинок, может и поиграться))
×
×
  • Создать...