[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.32496 Reply
File: сап-конь.png
Png, 224.07 KB, 1022×765 - Click the image to expand
edit Find source with google Find source with iqdb
сап-конь.png
Сап, ли/с/п. Проскроллил, но не нашел подходящего треда, по этому создам свой.

Пусть это будет помощи новичкам тред.

А теперь проблемка. Наткнулся я на книгу Ричарда Д. Кларка "Let's Build a Roguelike" с русским переводом. Рогалики я люблю, особенно к чаю, стало интересно, посему ради такого дела решил попробовать. Кларк описывает процесс создания с нуля рогалика, на Free Basic. До этого ЯПами вообще не был знаком, начал изучать потихоньку, уже дошел до пятой главы, о создании персонажа. Дошел и застрял. Суть в том, что у меня начинает глючить языковая панель, если программа включается в графическом режиме, я не могу переключить язык, а при запуске автоматически переключается на русский. Как пофиксить это? Ну, или хотя бы как сделать так, чтобы при запуске язык автоматом перескакивал на английский?
>> No.32497 Reply
File: сап-конь-лисп.png
Png, 225.83 KB, 1022×765 - Click the image to expand
edit Find source with google Find source with iqdb
сап-конь-лисп.png
>>32496
Ой. Пикча не та.
>> No.32499 Reply
>>32496
> при запуске язык автоматом перескакивал на английский?
Вангую поставить в системе язык по-умолчанию английский, а не русский.
>> No.32501 Reply
>>32496
Попробуй
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
export LANGUAGE="en"
>> No.32502 Reply
>>32496
Начнем с того, что ты пизд использовать BASIC для обучения программированию — это все равно что отрывать себе руки (точно так же не сможешь ри черта толкового написать). Закончим тем, что описанная проблема — это исключительно проблема Free Basic.

Но попробуй, что говорит >>32499.
>> No.32503 Reply
>>32502
Ты так говоришь, как будто это что-то плохое. Для развлечения и разминки мозга мне этого хватает, я же не собираюсь зарабатывать этим на жизнь. Если бы автор книги пользовался С++, например, то я бы изучал его.

>>32499
Попробую.

>>32501
И это попробую.
>> No.32510 Reply
Анон, умоляю помочь - завтра всё сдать надо. Такая вот задача:
Задана строка символов. Требуется преобразовать последовательность следующим образом. Удалить группы пробелов, которыми начинается и заканчивается последовательность, а также заменить каждую внутреннюю группу пробелов одним пробелом.
Вот что я понаписывал:

#include <iostream>
#include <string.h>
using namespace std;
int i, j, len; char a[256];
int main() {
   cout << "Enter dat shit" << endl;
   cin >> a;
   len = strlen(a);
   for (i = 0; i < len; i++) {
   if (a[i] == ' ' && a[i+1] == ' ') {
   for (j = i+1; j < len; j++) {
a[j] = a[j+1];
   }
   a[len-1] = '\0';
   }
   }
   cout << a << endl;
   return 0;
}

Решил проверить - группу пробелов в самом началу убирает, пишет первое слово, а дальше - ничего, хотя там дальше идут и слова, и группы пробелов. Подскажите пожалуйста, где я налажал в своём мерзком быдлокоде.
С меня няши, конечно-же.
>> No.32511 Reply
File: 1372171832365.png
Png, 1.06 KB, 300×20 - Click the image to expand
edit Find source with google Find source with iqdb
1372171832365.png
>>32510
Попробуй выполнить преобразование из одной строки в другую за несколько шагов.

Шаг первый: пропустить все пробелы вначале и выполнить strncpy()
Шаг второй: отсчитать все пробелы с хвоста и выполнить strncpy()
Шаг второй: в цикле переносить буквы, пропуская второй пробел.

Не пиши вложенные циклы.
Не ставь цикл внутри условия.
И убери нахер глобальные переменные.
>> No.32512 Reply
>>32510
Для начала, если не умеешь в разметку, залил бы хоть на пастбин или идеон, читать невозможно.
Осло:
cin extraction stops reading as soon as if finds any blank space character
>> No.32514 Reply
>>32510
Начнём с того, что в C нет iostream, а в C++ используют string. Выбери что-то одно.
Продолжим тем, что у тебя в условии a[i+1] это выход за грань массива ибо может быть равно len. А это нихуя не смешно. По этому делай проверку вроде a[i-1]
Потом ещё попробуй вставить cout << a << endl; сразу после cin >> a;. Вывод тебя очень удивит. Используй std::getline(std::cin, str); в C++ или получай символы с ввода при помощи getc в C.
>> No.32517 Reply
>>32511
> Не пиши вложенные циклы.
> Не ставь цикл внутри условия.
Почему?
>> No.32518 Reply
>>32517
Это сложнее отлаживать и читать. Лучше выдели отдельную функциюне забудь её обозвать по человечески. Особенно это касается циклов внутри условий. В крайнем случае обязательно комментируй такие куски.
А ещё лучше весь алгоритм перенести в функцию. Так легче её тестировать.
>> No.32527 Reply
File: sample-6ef127baf7...
Jpg, 194.61 KB, 850×1251
edit Find source with google Find source with iqdb
sample-6ef127baf7...
File: sample-08a4cb038c...
Jpg, 338.82 KB, 850×1176
Your censorship settings forbid this file.
r-18
File: sample-5a8194c008...
Jpg, 292.48 KB, 850×1065
edit Find source with google Find source with iqdb
sample-5a8194c00826788e01ba53cc238a1082.jpg

>>32511
кк, погуглю (ибо я об этой функции вообще не знал, лол), спасибо.
>>32512
Анон, прости, я просто забыл что в вакабамарке есть ништяки для кода. Алсо, если переписать всё по Ъ-printf() и вообще всё написать на С то будет паштет?
>>32514
И вправду, спасибо.

Всем няшек!
>> No.32531 Reply
>>32527
С адресной арифметикой на Си получилось бы красивее, как-то так -

Узнать, сколько пробелов в начале и в конце, затем рассчитать указатель на начало подстроки и её длину.
Адрес увеличить: pointer += heading_spaces;
Длину уменьшить: length -= (headingspaces + tailingspaces);

Затем копировать в новую строку. Второй, третий, четвёртый и т.д. пробелы пропускать, т.е. выполнять "continue" внутри цикла, и тогда выбирается следующий символ.

Кстати, ещё надо ловить случаи когда строка будет пустой или состоять только из пробелов.
>> No.32536 Reply
>>32531
Вот только я нихуя не знаю, как это сделать. Найдётся ли здесь кто-нибудь, кто по доброте душевной запилит мне эту задачу? Ну или хотя-бы дать линк на нужную литературу, ибо вообще не могу в строки..
>> No.32538 Reply
>>32536
Опиши их как массивы байтов длины MAXLEN, с децтва так со строками работаю.
>> No.32539 Reply
>>32501
Опаньки. А что это и куда его пихать?
>> No.32540 Reply
>>32539
Да вот как раз "char a[256]" подойдёт.
>> No.32543 Reply
File: b523e83523edfc11bbb4af0852c50f10.jpg
Jpg, 299.90 KB, 750×640 - Click the image to expand
edit Find source with google Find source with iqdb
b523e83523edfc11bbb4af0852c50f10.jpg
>>32510-кун возвращается.
Попробовал перепилить своё говно под С++. А вот, собственно, и оно: http://pastebin.com/xVs9zu80
Компилится без ошибок, запускается, стоит только ввести условие - выбивает это:
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::at
Что делать? Я опять где-то налажал?
>> No.32544 Reply
>>32543
У тебя пока цикл выполняется длина строчки уменьшается, а len остается тем же.
http://ideone.com/rjYd1M
>> No.32545 Reply
File: gener-чай.png
Png, 132.06 KB, 1023×767 - Click the image to expand
edit Find source with google Find source with iqdb
gener-чай.png
Оп возвращается из небытия.
>>32501
Что это, с чем его едят и как использовать этот код я так и не понял.
>>32499
А вот твой совет, анон, оказался годным, только заебывает каждый раз лезть в настройки.
>> No.32546 Reply
>>32544
Ну и я таки набыдлокодил за тебя.
http://ideone.com/kjlfsq
>> No.32547 Reply
>>32545
> с чем его едят и как использовать этот код я так и не понял.
*nix же.
> заебывает каждый раз лезть в настройки
Оставь раскладку по-умолчанию английской. И не трогай же. Зачем каждый раз лезть же?
>> No.32548 Reply
>>32547
Русской раскладкой я же чаще пользуюсь, так удобнее, чем постоянно переключать (у меня раскладка автоматически на установленную по умолчанию включается).
> *nix же.
?
>> No.32551 Reply
File: 4b5e4aa9c0c64a3c683ce63df6094efa.jpg
Jpg, 1815.46 KB, 2955×4211 - Click the image to expand
edit Find source with google Find source with iqdb
4b5e4aa9c0c64a3c683ce63df6094efa.jpg
>>32546
Спасибо, анон, но я уже и сам разобрался :3
Держи няшу.
>> No.32553 Reply
Тем временем, это снова я, >>32551-кун. У меня тут осталась последняя задача:
Дан файл F, компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Файл F содержит столько же отрицательных чисел, сколько положительных. Используя вспомогательный файл H, переписать компоненты файла F в файл G так, чтобы в файле G сначала шли положительные, потом отрицательные числа.

Раньше я вроде умел через freopen() считывать-записывать в файл, думаю, задачу сам осилю, но я откровенно не понимаю, что мне делать с файлом H? Куда его засунуть? Или просто сделать из него клон файла G?
>> No.32554 Reply
>>32553
Читаем файл F
   Если попадается положительное число, то записываем его в G
   Если отрицательное, то в H
Потом перемещаем содержимое файла H в конец файла G.
Теоретически это нужно для малых затрат оперативной памяти
>> No.32556 Reply
>>32554
Спасибо, анон. Я попробовал это дело написать, но получилось как всегда. Вот: http://pastebin.com/XywJTbdr
Чуть ниже закомментировал то, что получилось в этих чортовых файлах. Быть может, проблема в кодировке?
>> No.32557 Reply
>>32556
Зойчем тебе freopen? Есть же fopen. Он тебе файл откроет. http://www.cplusplus.com/reference/cstdio/fopen/
Для чтения из файла есть fscanf добавилась f в начале.
Смотри сколько там функций: http://www.cplusplus.com/reference/cstdio/ И тебе придется с ними разобраться ежели хочешь это всё на C.
И да. Раз это C-стайл то убери using namespace std; ибо у тебя нет пространства имен под именем std.
Кстати у тебя while проверяет константу EOF. Зачем? Выражение !EOF всегда ложно.

У тебя же компилятор Visual Studio? Тогда google://msdn+c%2B%2B и далее. Изучай доки и будет тебе счастье.
>> No.32558 Reply
>>32557
> Зойчем тебе freopen? Есть же fopen. Он тебе файл откроет. http://www.cplusplus.com/reference/cstdio/fopen/
Ну, запомнил я с прошлого года только fropen, лол. Спасибо.
> Смотри сколько там функций: http://www.cplusplus.com/reference/cstdio/ И тебе придется с ними разобраться ежели хочешь это всё на C.
Да я погуглил работу с файлами в С++, нашёл там ifstream/ofstream, вроде приготовил всё правильно, но не паштет, вот и решил на Ъ-шном С :3.
> И да. Раз это C-стайл то убери using namespace std; ибо у тебя нет пространства имен под именем std.
Уже. Просто пережиток редактирования, извини.
> Кстати у тебя while проверяет константу EOF. Зачем? Выражение !EOF всегда ложно.
Хм.. я думал, что оно так будет считывать до конца файла... а как тогда правильно сделать?
> У тебя же компилятор Visual Studio?
Ноуп, Code::Blocks.
>> No.32559 Reply
>>32558
> паштет, вот и решил на Ъ-шном С
То что один %langname% няшен, а другой нет есть чистый субъективизм.
>> No.32560 Reply
А как вообще можно считать intовский массив из файла? Особенно с учетом того, что придётся считывать двухзначные отрицательные числа, и простое a[i]-'0' выдаёт какую-то абракадабру.
>> No.32561 Reply
>>32558
> Хм.. я думал, что оно так будет считывать до конца файла... а как тогда правильно сделать?
#include <stdio.h>
int main(void) {
  // Сюда будем сохранять число
  int input_num; 
  // А тут у нас файл открывается
  FILE * F = fopen("myfile.txt","r");

  // Читаем пока числа не кончатся
  // если файл кончился, то fscanf вернёт -1
  while(fscanf("%d", &input_num) > 0){
      printf("%d\n", input_num);
      // тут уже проверяем, является ли x > или < нуля
      if(input_num > 0){
        // записываем в файл G
      }
      if(input_num < 0){
        // Записываем в файл H
      }
      // вариант input_num==0 пропускаем
  }

  // Копируем файл H в конец G
  // Кстати можно не переоткрывать файл H, а просто
  // fseek(pFile, 0,SEEK_SET);
  // сделать.

  return 0;
}
Сам дальше напишешь?
> Ноуп, Code::Blocks.
Тогда компилятор у тебя gcc из комплекта MinGW.
Для винды вроде, как лучше Visual StudioОно и IDE и компилятор в одном.
>> No.32562 Reply
>>32561
Вдогонку хинт: пиши сначала коммент на русском, а потом этот коммент преобразуй в код(при этом сохраняя коммент).
Так тебе свой же код будет понятен.
>> No.32563 Reply
>>32561
C:\Users\x\Desktop\6.cpp||In function 'int main()':|
C:\Users\x\Desktop\6.cpp|14|error: cannot convert 'const char*' to 'FILE* {aka _iobuf*}' for argument '1' to 'int fscanf(FILE*, const char*, ...)'|
C:\Users\x\Desktop\6.cpp|19|error: cannot convert 'const char*' to 'FILE* {aka _iobuf*}' for argument '1' to 'int fprintf(FILE*, const char*, ...)'|
C:\Users\x\Desktop\6.cpp|25|error: cannot convert 'const char*' to 'FILE* {aka _iobuf*}' for argument '1' to 'int fprintf(FILE*, const char*, ...)'|
C:\Users\x\Desktop\6.cpp|34|error: cannot convert 'const char*' to 'FILE* {aka _iobuf*}' for argument '1' to 'int fscanf(FILE*, const char*, ...)'|
C:\Users\x\Desktop\6.cpp|35|error: cannot convert 'const char*' to 'FILE* {aka _iobuf*}' for argument '1' to 'int fprintf(FILE*, const char*, ...)'|
||=== Build finished: 5 errors, 0 warnings (0 minutes, 0 seconds) ===|
Даже в твоих участках кода. Чо делать?
> Visual Studio
Она у меня постоянно вякает на неразрешенный символ "_mainCRTStartup", или что-то в этом роде. Гугл нашёл много страждущих, но реального решения проблемы я так и не нашёл. Такие дела.
>> No.32564 Reply
>>32563
В любом fscanf() и fprintf(), да.
>> No.32568 Reply
>>32563
Ксо. Поставь первым аргументом любой f... функции кроме fopen разумеется указатель на файл открытый.
Например
while(fscanf("%d", &input_num) > 0){ на
while(fscanf(F, "%d", &input_num) > 0){ Замени.

Кстати printf(...) равноценен fprintf(stdout, ...) А scanf(...) равноценен fscanf(stdin, ...) А в моём примере нет fprintf там есть только printf
>> No.32570 Reply
>>32568
Теперь хотя-бы компилится, но всё равно не работает как надо. В файле H отображает последние 2 числа, в файле G - последнее чиcло (хотя на деле их 6, взятые от пизды числа в соответствии с условием задачи)
http://pastebin.com/B78LQEcd
>> No.32571 Reply
>>32570
http://pastebin.com/f0abM7pL
Вот так я просил тебя сделать. Всё ли понятно?
>> No.32572 Reply
File: 46768826106563212...
Jpg, 62.81 KB, 540×361
edit Find source with google Find source with iqdb
467688261065632128.jpg
File: всем-лучи-добра-п...
Jpeg, 99.24 KB, 465×681
Your censorship settings forbid this file.
r-18

>>32571
Понятно. Единственное, что вызывает вопросы, так это fseek(), потому-что я ё просто не знаю.
Спасибо, сотен добра тебе!
>> No.32573 Reply
File: df5ce5641b25036895a0908b16d9afc9.jpeg
Jpeg, 89.78 KB, 604×497 - Click the image to expand
edit Find source with google Find source with iqdb
df5ce5641b25036895a0908b16d9afc9.jpeg
>>32572
> Единственное, что вызывает вопросы, так это fseek(), потому-что я ё просто не знаю.
Если ты что-то не знаешь - то попробуй загуглить. Вот например первая ссылка в гугле по запросу fseek http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/13/fseek.htm

Кстати ежели ты хочешь нормально выучить программирование, то советую тебе следующее:
скачать, а лучше купить эти книги http://habrahabr.ru/post/135897/ + парочку книг по конкретным языкам программирования. Релейтед паста http://pastebin.com/3LXd4HAc
А в институте тебя мало чему научат в плане программирования
>> No.32577 Reply
Здравствуй анон, у меня сложилась небольшая проблема - дело в том, что когда мне объясняют что-то по кодингу ирл, схватываю мгновенно, а вот с самообучением немного туго, особенно, если с чем-то встречаюсь впервые. Но так как учить меня больше некому, кроме как здесь спросить, негде. Если не лень опиши пример какого-нибудь php-скрипта с ООП и без с одинаковым итогами. А то всё как днище без объектов и классов говнокод пишу
>> No.32579 Reply
>>32577
> php-скрипта
> ООП
Начнем с того, что PHP — это фрактал отсоса. Соответственно, и ООП в нём фрактально уёбищно. Лучше реквестируй пример на Eiffel, ну или на худой конец C#.
>> No.32580 Reply
>>32579
> Начнем с того
Начнем с того, что Ваше мнение очень ценно для нас.
> пример какого-нибудь php-скрипта с ООП и без с одинаковым итогами
Одинаковых итогов не будет. ОО модель дает лучшие результаты для повторного использования кода и его сопровождения.
>> No.32581 Reply
Анон, такой вопрос. Есть n-страничная форма а именно вот эта http://myilpatio.ru/ - халявный десерт, нужно автоматически заполнить поля (текстбоксы и радиобаттоны), на первой странице данные могут меняться (тащемта, это можно и вручную забить). Как это можно делать? Чем нибудь вроде autohotkey пользоваться не хочу, либо долго, либо будет ломаться при любом лаге. Куда интереснее через сам браузер установить нужные значения. Но вот совершенно не представляю, чем это обычно делают.
Есть мысли в сторону userJS, с которым я не сталкивался. Отловить загрузку определенной страницы он может, найти элемент по имени может, наверное может установить значение. Не знаю, каким образом можно ткнуть на кнопку (опять же, найти ее по имени не сложно)? Каждая кнопка ведет на "/rosinter/desktop/survey.do", так что просто этот линк вызвать не получится. Как работать с post-запросам тоже не представляю.
UserJS или в какую другу сторону надо гуглить?
>> No.32582 Reply
>>32579
Плохо, негодно.

>>32577
Советую почитать код этого фреймворка http://www.slimframework.com/
http://getjump.github.io/ru-php-the-right-way/
>> No.32591 Reply
File: bgso.jpg
Jpg, 68.93 KB, 700×1027 - Click the image to expand
edit Find source with google Find source with iqdb
bgso.jpg
Коллеги, прошу, подкинтье какой-нибудь маст-рид на русском или на английском по теме доски. Попсовый маст-рид со стековерфлоу уже давно осилен (всякие фаулеры-макконелы-кормены-рефакторинги), ничего в таком духе читать больше не хочу; кнута не предлагать — алгоритмизация не слишком интересует. Зато можете покидать что-нибудь на тему дискретной математики (и тп) для самых маленьких, ибо профильного образования у меня нет. Надеюсь, другим гуманитарным кодерам тоже пригодится.
>> No.32592 Reply
>>32591
От создателя теории множеств: http://yadi.sk/d/NOi7XzXA4-9XQ
Не по теме, но интересно.
>> No.32593 Reply
>>32582
Нет, хорошо и правильно.
>> No.32606 Reply
>>32591
"Компьютерная графика", Виктор Порев. Там есть немного линейной алгебры.
>> No.32704 Reply
>>32573
> http://pastebin.com/3LXd4HAc
Есть люди занимающиеся/занимавшиеся по этой пасте?
>> No.32706 Reply
>>32704
Я начал.
>> No.32707 Reply
>>32706
И как успехи?

Мне бы хотелось послушать людей которые прошли его хотя бы до середины.

Меня смущают некоторые пункты. Например:
> Доказываете теоремы. Надеюсь, дедушка Кнут научил вас, что доказывать теоремы – это весело. Найдите себе товарища, доказывайте вместе. Это развивает мышление.
Выучить и доказывать? В чём тогда развитие мышления?
Самому придумывать теоремы и доказывать? А как убедиться, что ты верно рассуждал и рассмотрел все варианты?
>> No.32708 Reply
>>32707
> Выучить и доказывать?
Читаешь у Кнута условие, доказательство пишешь сам. Например, докажи, что симметрическая разность множеств ассоциативна. (A Δ B) Δ C = A Δ (B Δ C)
>> No.32709 Reply
>>32707
> А как убедиться, что ты верно рассуждал и рассмотрел все варианты?
Доказывай так, чтобы убедить себя.
>> No.32710 Reply
>>32707
Если бы ты открыл Кнута, ты бы знал что в конце каждой главы есть огромная куча упражнений. Если бы прочитал хотя бы одну главу, то ты бы знал что заметная часть из упражнений это небольшие теоремы. Если бы ты прочитал введение, ты бы знал что в конце книги есть ответы на упражнения.

Паста годная, сам по ней не занимался. Но в моем "обучении" присутствовало или будет присутствоать многое из описанного в ней.

Надо сказать что для работы простым быдлокодером действительно не нужно большинство написанного в пасте
>> No.32713 Reply
Что такое Legacy? Это что-то вроде старых или стабильных версий программ?
>> No.32714 Reply
>>32707
> И как успехи?
Неочень, главным образом потому, что некогда. Работа сама себя не сделает.
Хотя в иные минуты мне кажется, что это тупые отмазки.
>> No.32716 Reply
>>32709
Многочисленные создатели вечных двигателей убедили себя, что вечные двигатели существуют. Так что это достаточно сомнительная методика обучения.
>> No.32717 Reply
File: mainframe-vs-pc.jpg
Jpg, 54.09 KB, 1216×412 - Click the image to expand
edit Find source with google Find source with iqdb
mainframe-vs-pc.jpg
>> No.32719 Reply
>>32716
А другие физики убедили себя, что вечных двигателей не существует.
>> No.32720 Reply
>>32719
Мне бы не хотелось стать человеком, которого большая часть его коллег считают поехавшим.
>> No.32721 Reply
>>32720
Но именно так наука и устроена. У каждого своя теория, каждый её пилит самостоятельно, время от времени воруя идеи у коллег.
>> No.32731 Reply
>>32704
Я начал недавно, например. Освоил "C++: how to program", начал читать "SICP", попутно делаю упражнения из него на python, иногда заглядывая в "Dive into Python". "Thinking in Java" пролистал. Недавно написал текстового "сапера", слегка кривого и без документации, на C, хочу написать также что-нибудь на Java или C++, да даже и "Mines" переписать, но искренне не понимаю, как к "саперу" (да и вообще к чему угодно) можно присобачить ООП, и, что важнее, не понимаю, зачем.
>> No.32737 Reply
>>32721
> время от времени воруя идеи у коллег
Ага и на конференциях ученые опускают друг друга, а самый неудачливый потом отправлятеся мыть пробирки в лабораторию органической химии.
>> No.32738 Reply
>>32731
Кстати, может кто-нибудь на относительно простых примерах показать какую-нибудь задачу, которую намного проще решать, применяя к ней ООП?
>> No.32739 Reply
>>32737
Не пали контору.
>> No.32751 Reply
>>32738
Посмотри "паттерны проектирования" Гаммы и др. же. Там описываются постоянно применяющиеся приёмы, которые стоит знать, называемые паттернами, и там подробные примеры в большом количестве. Только ООП скорее для большого программного продукта чем для одной маленькой подзадачи, заметь. Хотя завит от смысла, вкладываемого в слово задача.
>> No.32753 Reply
>>32751
Про паттерны я слышал, даже немного читал, но теперь посмотрю подробнее, спасибо. Но это же инструмент, а не цель.
Ну вот я писал Mines на C, они у меня заняли 108 строк, нет никакой справки и интерфейс текстовый, то есть, например, поле 4x4 в начале игры выглядит, как
@ @ @ @
@ @ @ @
@ @ @ @
@ @ @ @
И так далее в том же духе. Если сделать все немного красивее (например, написать процедуру, открывающую все соседние поля рядом с 0, пока что это приходится делать вручную и прочее в том же духе), то займет максимум строк 150. Я пытался найти в интернете чужие Mines с исходным кодом, написанные с привлечением ООП. Так вот, на Java (проект с gui, правда, взятыми из какой-то библиотеки, но, вроде как, графика занимает от силы треть кода) умещался в 660 строк, проект на Delphi (в котором я особо не копался, честно скажу, потому что Delphi не очень понимаю, и который, кстати, тоже с графикой) - около 320 строк. Так в чем преимущество ООП? И кстати, я, в принципе, представляю себе выгоду от ООП в больших проектах, бОльшая структрированность, все дела. Я не хочу что-то кому-то доказать, я только недавно начал этим заниматься, мне просто хочется понять, где я, со своими малыми знаниям, могу потренироваться в применении ООП, чтобы пойти дальше по этому курсу http://pastebin.com/3LXd4HAc .
>> No.32754 Reply
>>32731
> начал читать "SICP", попутно делаю упражнения из него на python
И тебе не мешает питонова рекурсия, точнее отсутствие поддержки оптимизации хвостовых вызовов?
>> No.32755 Reply
>>32754
О чем речь идет, я понял, но нет, не мешает, думаю только потому, что я пока совсем недалеко продвинулся (но я и начал недавно, пару недель назад у меня вообще нулевые знания были).
>> No.32759 Reply
Кто-нибудь смотрел видеолекции SICP, много отличий от книги?
>> No.32760 Reply
>>32731
> как к "саперу" (да и вообще к чему угодно) можно присобачить ООП
Есть две книжки за авторством Б. Мейера:
Основы объектно-ориентированного программирования
Объектно-ориентированное конструирование программных систем
>> No.32761 Reply
>>32713
Legacy code — код, доставшийся от прошлых разработчиков.
>> No.32762 Reply
>>32707
Похоже у тебя совсем плохая в школе математика была. Прочитать формулировку и попытаться доказать, исходя из уже известных тебе сведений. Доказательство ­— это такая парная деятельность, один человек доказывает, а другой ищет в доказательстве изъяны, поэтому неизвестный автор рекомендовал доказывать с товарищем. Если товарища нет, придется играть обе роли сразу.
>> No.32819 Reply
>>32731
> начал читать "SICP", попутно делаю упражнения из него на python
Там как бы Scheme советуют…
>> No.32824 Reply
>>32819
Ну и что?
>> No.32827 Reply
>>32819
Новый курс SICP на питоне.
>> No.32831 Reply
>>32827
Это упрощённый курс. MIT упростил его под давлением рынка (которому нафиг не сдались такие крутые специалисты по алгоритмизации — ему code monkeys подавай, да побольше), одновременно увеличив процент недоумков от IT. Расово верный, вправляющий мозги SICP — это SICP на Scheme.

c:нахер секс рад артиллерия мангу спонтанном
>> No.32835 Reply
>>32831
Предпоследний абзац. http://notabenoid.com/book/39615/146857
>> No.32854 Reply
>>32827
SICP на схеме. Его заменили на два других курса, один из которых на питоне.
>> No.32855 Reply
Анон, помоги. Я тут написал функцию, которая, в идеале, должна переводить римское число в арабское, но у меня какого-то хуя стабильно вылетает std::outofrange
Вот паста: http://pastebin.com/zSgzd5R4
Вроде бы и в цикле учёл (ибо i < r.length()-1), чего оно так? Может всё-таки с r.compare() налажал? Таки в первый раз юзаю, все дела
Сама код, в принципе, слишком индусский? Есть варианты, как его улучшить?
>> No.32858 Reply
>>32855
> но у меня какого-то хуя стабильно вылетает std::outofrange
Пройдись по нему пошаговой отладкой.
> Есть варианты, как его улучшить?
Есть. Так писать не стоит
    if (r.at(i) == 'M') d += 1000;
    if (r.at(i) == 'L') d += 500;
    if (r.at(i) == 'C') d += 100;
    if (r.at(i) == 'L') d += 50;
    if (r.at(i) == 'X') d += 10;
    if (r.at(i) == 'V') d += 5;
    if (r.at(i) == 'I') d += 1;
Лучше писать так
    if (r.at(i) == 'M') d += 1000;
    else if (r.at(i) == 'L') d += 500;
    else if (r.at(i) == 'C') d += 100;
    else if (r.at(i) == 'L') d += 50;
    else if (r.at(i) == 'X') d += 10;
    else if (r.at(i) == 'V') d += 5;
    else if (r.at(i) == 'I') d += 1;
    else printf("ОШИБКА!!!!!!!!!!!!!1111");
Тогда лучше определяются ошибки вида "но этого не может происходить, потому что этого не может происходить никогда".
>> No.32859 Reply
>>32858
Хм, спасибо. С r.compare(), я так понимаю, тоже самое проделать?
Алсо, никогда не пользовался пошаговой отладкой, даже не знаю, где она. Стыд мне и позор.
>> No.32860 Reply
File: 9a2ef868c44542c73c90a4adcd5819aa.png
Png, 106.89 KB, 400×400 - Click the image to expand
edit Find source with google Find source with iqdb
9a2ef868c44542c73c90a4adcd5819aa.png
>>32854
А можно поподробнее? Есть ли книги? В свободном доступе? Перевод книг?
>> No.32862 Reply
>>32859
> С r.compare(), я так понимаю, тоже самое проделать?
Да, и более того. Если у тебя программа ветвится в зависимости от какого-либо величины, желательно писать так, чтобы через ветки ветвления проходили все значения этой величины, а не только те, которые как тебе кажется там возможны.

Напиши лишний раз после хитромудрого условия
else {
    printf("Э-э. Сюда вообще-то мы попадать не должны.");
}
и потом проведешь в отлалдке на 1 минуточку меньше времени.
>> No.32863 Reply
>>32855
а) кто тебя так switch/case писать учил?
б) continue избыточен, если ты пользуешься конструкцией else if
в) это задача для КА, напиши КА блеать
г) никогда не передергивай переменную цикла внутри цикла, лал
д) и вообще почему бы тебе не использовать итераторы?
е) слово "исключение" не надо использовать в том смысле, в котором ты это делаешь
>> No.32864 Reply
File: 2201120423106909.jpg
Jpg, 86.77 KB, 642×573 - Click the image to expand
edit Find source with google Find source with iqdb
2201120423106909.jpg
>>32859
> Алсо, никогда не пользовался пошаговой отладкой, даже не знаю, где она. Стыд мне и позор.
>> No.32866 Reply
>>32862
Анон, спасибо, во всём разобрался. Посмотрев на код еще разочек, я понял, что я дикая бака и добавил ненужной херни. Теперь всё няшно и всё работает :3
Если интересно: http://pastebin.com/5EscB3GP теперь всё вот так вот.
>> No.32871 Reply
File: 1372185530_249635315.jpeg
Jpeg, 60.76 KB, 700×522 - Click the image to expand
edit Find source with google Find source with iqdb
1372185530_249635315.jpeg
Доброго тебе вечера в моем часовом поясе, доброанон. Суть такова: есть программа на C++, которая должна до определенного момента должна сообщать программе на Python набор чисел, и получать от нее пару чисел. Как это лучше организовать? Я думал переопределить потоки ввода-вывода или воспользоваться временными файлами для чтения и записи (я так понимаю, это почти одно и то же), но чем больше я об этом думаю, тем меньше я понимаю, как это сделать. Проще всего было бы написать функцию на Python, принимающую набор чисел и возвращающую пару чисел, а потом вставить ее в программу на крестах, но как это сделать, я понимаю еще меньше.
Я, конечно, в курсе, что можно было бы все написать на одном языке, но это учебное упражнение, которое я выдумал сам и для себя, и мне интересно именно их совместить. В интернете я порылся, для первого способа инструменты вроде есть, но не могу сообразить, как их использовать, а для второго нет вообще ничего. Решил спросить у анона.
Буду очень признателен за любую помощь и подсказки.
>> No.32876 Reply
>> No.32878 Reply
>>32871
man pipe
man dup
man exec
man fork
>> No.32880 Reply
>>32871
> Как это лучше организовать?
Это зависит от очень многого. Будут ли запускаться программы на одной машине, какой объем данных будет гоняться и т.п. Потому что способов дофига и больше: линуксовые shmem, message queues, пайпы, юниксовые сокеты, обышные сокеты, питоновское ffi, это если не говорить о миллиарде внешних брокеров.
> Проще всего было бы написать функцию на Python, принимающую набор чисел и возвращающую пару чисел, а потом вставить ее в программу на крестах, но как это сделать, я понимаю еще меньше.
Тогда FFI
>> No.32885 Reply
>>32866
> http://pastebin.com/5EscB3GP
Тут все еще есть потенциал для улучшения. Например подумай над тем, что тебе понадобится чтобы записывать результаты работы твоей функции в файл или отправлять по сети. И можно ли написать ее таким образом, чтобы она стала универсальной и с ее данными можно было делать все что угодно?
>> No.32889 Reply
>>32885
> > http://pastebin.com/5EscB3GP
Анон, а разве continue тут не лишние?
>> No.32891 Reply
>>32753
> Но это же инструмент, а не цель.
В этой книге расписаны и цели применения этих инструментов тоже. Там вообще описание каждого паттерна начинается сразу с цели.
>> No.32935 Reply
>>32866
Я бы переделал вот так. http://pastebin.com/MdB6eN3A for лучше не использовать когда ты вытворяешь разные вещи с переменной по которой его делаешь.

К.О. Поясняет что for(A;B;C){D} это всего лишь
A
WHILE(B){
D
C
}
>> No.32936 Reply
>> No.32939 Reply
>> No.32942 Reply
>> No.32950 Reply
>>32942
Я так полагаю код сам за себя все скажет, и комментарии и нормальные имена переменных для слабых?
>> No.32952 Reply
Доброкодеры, такая ситуация. Прошел 2 главы Sicp с упражнениями, писал на схеме, потом на шарпе. Окулова (там алгоритмы, стр. данных, немного матчасти), опять же, со многими упражнениями. Но уже дискретка не пошла особо, какие-то определения на определениях, матан разочаровал сразу (хотя сдал сам, на 5). Понапридумывают же! Головоломки в детстве были куда интереснее. Олимпиадное программирование не взлетело по многим причинам. Решил изучать с++ по книге Праты. За пару месяцев дошел до конца, stl тоже захватил, хотя практики не было почти. Начал Qt по книге Шлее, так же для документации начал английский осваивать. Дошел до сцены, представления. И тут до меня дошло, что я вроде и знаю все, а вроде ничего не знаю, практики мало. Как будто я не программированием занимался, а контакт читал. Скорость низкая, но ошибки не совершаю. Что посоветуете? Уже месяц ничего не делаю, английский разве что осваиваю, хотя и с ним проблема та же, никак английский вторым русским не становится. Практики мало.
>> No.32953 Reply
>>32952
Идти джуниором.
>> No.32954 Reply
>>32952
> Понапридумывают же!
Это всё не от балды же придумывается, а для чего-то. Матан XIX века был заточен под механизмы - паровозы, пароходы, станки. Матан XX века - под электричество и космологию.
>> No.32973 Reply
>>32952
Доброчую вот этого >>32953
Практика из ниоткуда не появится, работа - самый простой способ получить опыт на реальных, для кого-то полезных задачах.
>> No.32974 Reply
>>32952
> Головоломки в детстве были куда интереснее.
Безусловно! Они придуманы, чтобы быть интересными как цель. А это придумано для чего-то.
>> No.32981 Reply
>>32973
Хотя это сложно, я вот не смог потому, что из деревни, но это оправдания хоть и советую.
Вот решаю сицп и думаю пойти в опенсорс или написать пару проектиков уровня курсовых для портфолио.
>> No.32982 Reply
>>32981
Почему вас так этот SICP "задел"? Чем он отличается от других книг по программированию/CS?
>> No.32983 Reply
>>32982
У меня в универе был курс по фп, где мы затронули самые основы LISP. И он мне так понравился, что решил когда-нибудь потом им потом заняться. Вот меня из универа выкинули, восстанавливаюсь только через пол года, решил почитать SICP.
Но, вангую, что другие читают его как годные энтрилэвл в CS или потому, что его распиарил MIT.
Можешь привести какую-нибудь другую годную энтрилэвл книгу именно в CS, а не в язык?
>> No.32984 Reply
>>32983
> потом им потом
потом им
> годные
годный
Слоусамопочин.
>> No.32988 Reply
В природе вообще есть эмулятор cmd под linux? Мне погонять хочется, а винду ставить ради ее командной строки - это немного по-идиотски, мне кажется.
>> No.32989 Reply
>>32988
Если и есть аналоги, скорее всего они будут не до конца точными.
Cmd есть в wine. Просто ставишь wine и пишешь wine cmd.
Но лучше поставь XP под VirtualBox - сможешь поразвлекаться с группами, политиками и т.п.
>> No.32990 Reply
>>32988
> погонять
Слабо прочитать до конца?
http://blog.karmanov.org/2013/06/03/casus
>> No.32991 Reply
>>32990
Я это уже читал, впечатлился, но за собой стремления "погонять" в контексте данного опуса почти не замечал. Паста совершенно не применима к моему случаю, потому что я не собираюсь использовать cmd в каких-то практических целях, а после процесса "погоняния" не собираюсь никого уверять в том, что я специалист. Слово "погонять" в данном контексте означает "попробовать с целью выяснения степени удобства для неподготовленного пользователя и/или провести свободное времени за освоением навыка поверхностного использования инструмента".
В моем посте, кстати, не сказано, зачем мне нужна cmd, но тебе все равно, ты увидел знакомое слово и начал всех детектить, молодец.
Добра.
>> No.32993 Reply
>>32991
Чтение манов даст тебе гораздо больше знаний, чем гоняние. Да, я молодец.
Добра и тебе!
>> No.33004 Reply
File: 20353928821863286289190985407.jpg
Jpg, 31.70 KB, 425×425 - Click the image to expand
edit Find source with google Find source with iqdb
20353928821863286289190985407.jpg
Анон, подскажи, пожалуйста.
За лето мне нужно постичь основы С и С++, в том числе классы, чтобы успешно пересдать экзамен осенью. В программировании я чайник, если алгоритмы без особых проблем осваиваю, то вещи типа распределения памяти мне, как чистому математику, понять очень непросто. Может быть, есть какая-нибудь доступная литература\лекции, где просто и понятно рассказывалось бы об этом?
>> No.33005 Reply
>>33004
Стивен Прата.
>> No.33006 Reply
>>33004
Казалось бы тебе, как математику, должно быть проще. Задавай свои вопросы, отвечу как математик математику.
>> No.33007 Reply
File: sltW9m8_x3c.jpg
Jpg, 87.89 KB, 577×807 - Click the image to expand
edit Find source with google Find source with iqdb
sltW9m8_x3c.jpg
Кто-нибудь пробовал ставить mysql на ubuntu?
Захотел освоить базы данных, но у меня софт не получается поставить, вот такой я криворукий. В интернете много материала на эту тему, но у меня тем не менее ничерта не получается. Я пытался следовать инструкциям, но дальше apt-get install mysql-client mysql-server и правок файла my.cnf (я понятия не имею, что я делаю, следую howto) дело не идет, "Access denied for user 'root'@'localhost'" и я понятия не имею, что я делаю неправильно. Если кто-то запостит howto, буду очень благодарен, если кто-то объяснит, что я делаю (когда правлю my.cnf) и как вообще mysql работает, буду рад вдвойне.
Добра всем.
Капча: люто замышлял.
>> No.33008 Reply
File: 137320580426562.jpg
Jpg, 145.25 KB, 1000×660 - Click the image to expand
edit Find source with google Find source with iqdb
137320580426562.jpg
Доброанон, у меня к тебе есть немного странный вопрос: как мне сделать из моего кода продукт? Вот у меня есть код на каком-то языке (пусть на C), который что-то делает (допустим, выводит helloworld), и я его компилирую (я делаю это при помощи gcc). У меня получился файл, но как мне его запустить не из консоли, а каким-нибудь иным способом (по клику, скажем)? Как мне убедиться, что этот файл будет нормально работать под любую ОС, не только под мою уютную openSUSE?
>> No.33009 Reply
>>33004
А что К&R и "C++: how to program" не помогли?
>> No.33011 Reply
Я знаю, анон, что у тебя есть "Ядро Linux в комментариях" не в формате chm, или замена этой книжке. Подскажи, будь так добр. Доброчан же.
>> No.33012 Reply
>> No.33014 Reply
>>33007
Когда ты ставил mysql-server бубунта просила придумать пароль для мускулёвого рута, его тебе нужно использовать для следующей команды:
mysql -uroot -pПАРОЛЬ-ТАКОЙ-ТО
Дальше гугли всё остальное для создание других пользователей или баз данный. Можешь еще phpmysqladmin поставить например.

капча шалит: вкратце разрушить
>> No.33015 Reply
>>33014
Пробовал, все равно access denied, только при этом еще пишет, что password: yes. А при командах, не требующих пароля, было password: no.
Вообще, у меня получилось поставить mysql на ноутбук, с той же самой версией ubuntu, причем ставил я ее по тому же самому howto, что самое смешное. Надо будет попробовать снести mysql на стационаре и поставить заново, для чистоты эксперимента.
Капча раздухарилась: совесть местам.
>> No.33032 Reply
File: 112132.png
Png, 46.16 KB, 1049×104 - Click the image to expand
edit Find source with google Find source with iqdb
112132.png
Анон, правильно ли я понял пикрелейтед "вращение вправо на n двоичных разрядов"?
https://ideone.com/3vMB1B
>> No.33033 Reply
>>33032
Возможно, ты столкнулся с переводом надмозга. Как выглядит текст задания в оригинале?
>> No.33034 Reply
File: Без-имени.png
Png, 13.37 KB, 671×102 - Click the image to expand
edit Find source with google Find source with iqdb
Без-имени.png
>>33033
Это K&R
>> No.33048 Reply
>>33033
Алсо, http://stackoverflow.com/questions/6637578/kr-understanding-exercise-2[...]-here
То есть нужно "сдвинуть" цисло на n двоичных разрадов вправо. Эти n разрядов должны появиться теперь слева. Все верно?

В гугле нашел такой код той же задачи https://gist.github.com/michael-galpin/1933571 - для чего там нужен цикл? ведь и без него можно справиться.
>> No.33049 Reply
File: 77033.png
Png, 124.98 KB, 512×512 - Click the image to expand
edit Find source with google Find source with iqdb
77033.png
Суп, котаны.

Есть один проект весь такой корявый, ужасный и на пхп. В нем используется смарти и доктрина, а всё остальное сплошные 20к строк бурлящего говна. Без паттернов, без мвц, просто отдельные пхп-файлы, что-то творящие.
На что бы лучше это добро переписать: питон/джанго, руби/рельсы или еще что? Посоветуйте, антоны.
>> No.33050 Reply
>>33049
> Есть один проект весь такой корявый, ужасный и на пхп.
> На что бы лучше это добро переписать: питон/джанго, руби/рельсы или еще что?
На что хочешь на то и переписывай, главное выбор обосновать, например тем, что одно из этого ты знаешь лучше.
>> No.33051 Reply
>>33049
Это и есть паттерны и MVC.
>> No.33067 Reply
>>33049
Не переписывай.
>> No.33068 Reply
>>33049
Попробуй на common lisp. Под него есть неплохой фреймворк restas.
>> No.33128 Reply
>>33008
Я понимаю, что вопрос идиотский, но доброчан же.
>> No.33143 Reply
>>33128
>>33008
Если у тебя код на C, который выводит, допустим "helloworld" и ты его скомпилировал, допустим, с помощью gcc, под openSUSE, допустим. То из этого следует следущее:
  • Исполняемый файл использует только glibc, скорее всего, а следовательно запустится под любым линуксом той же архитектуры.
  • Под другую архитектуру нужно перекомпилять, ну или в случае если 64хбитная система поставить библиотеки для совместимости с 32х битными бинарниками. (Но все нормальные люди делают два бинарника и/или выкладывают код)
  • Под другую ОС нужно перекомпилять, есть шанс что такое простое приложение будет работать под BSD, но весьма маленький, под вендой точно не будет работать.
  • Запуск, скажем, по клику возможен из графической оболочки и файлового менеджера (нужно исполняемый файл найти и запустить применяемым для этого файлового менеджера способом). Если что, то иконка на десктопе - тоже часть файлового менеджера.
Надеюсь объяснил.
>> No.33185 Reply
File: e574d8d9d8f587938ddf7f698eda6b83.jpg
Jpg, 331.23 KB, 595×842 - Click the image to expand
edit Find source with google Find source with iqdb
e574d8d9d8f587938ddf7f698eda6b83.jpg
>>32496
Анон, подскажи, пожалуйста, в С# поиск ключей в Dictionary<> как-нибудь оптимизирован? В смысле, может быть там как-нибудь деревья используется, или всё как-то индексируется? Или просто перебираются все подряд ключи, пока не попадётся нужный? Dictionary<string> будет сильно медленнее работать, чем Dictionary<int>?
>> No.33187 Reply
File: drunk.jpeg
Jpeg, 28.57 KB, 416×350 - Click the image to expand
edit Find source with google Find source with iqdb
drunk.jpeg
>>33185
Наркоман штоле? Конечно используется. Dictionary использует hashtable, так что в худшем случае O(n).
>> No.33188 Reply
Прочитал свой >>33185-пост, лицопальма, уточнение: одинаковая скорость перебора для любого типа ключа.
>> No.33189 Reply
>>33188
Загляни в MSDN: http://msdn.microsoft.com/ru-ru/library/xfhwa508.aspx
> Заметки
> (...) Извлечение значения по его ключу происходит очень быстро, со скоростью, близкой к O(1), поскольку класс Dictionary<TKey, TValue> реализован как хэш-таблица.
> Примечание
> Скорость извлечения зависит от качества алгоритма хэширования, тип которого задан для TKey.
>> No.33190 Reply
>>33188
А как О(n) там получается? Если хеш-функция всем значением присвоила одно и то же? Для встроенной функции для строк такое бывает?
>> No.33192 Reply
>>33189
Забавно, я сверялся с той же статьей, только английской, но интерпретировал её иначе.
Скорость поиска не зависит, зависит скорость, с которой будет рассчитан хэш для объекта, который требуется найти.
Если речь идет о скорости работе с коллекцией, то я предполагаю что n очень велико, и время расчета хэша соответственно пренебрежимо мало по сравнению с поиском.
> > > очень быстро, со скоростью, близкой к O(1)
Мне ремарка странной кажется, я привык всегда по худшему случаю смотреть, для хэш-таблицы это O(n).
>> No.33193 Reply
>>33185
> Dictionary<string> будет сильно медленнее работать, чем Dictionary<int>?
Скорее всего с одинаковой скоростью из-за интернирования. Это во-первых.
Во-вторых, что мешает тебе сделать бенчмарк и посмотреть?
В-третьих, строкам обычно свосйственно претерпевать изменения со временем разработки программы, особенно в случае добавления многоязыковой поддержки, так что количество случаев, когда тебе действительно нужны ключи-строки сводится к тем немногим случаям, когда строки содержат имена типов из отражения, регулярные выражения или что-нибудь ещё в этом роде.
>> No.33194 Reply
>>33190
У тебя есть таблица из n пар хэш:значение, и хэш интересующего тебя ключа. Если искомый хэш последний в последовательности, ты выяснишь это за n сравнений.
>> No.33196 Reply
>>33192
> Скорость поиска не зависит.
Зависит ведь от того, насколько хороша хеш-функция. Если она инъективна, то всегда О(1). Если хеш одинаков у не более чем 50 значений, то не более 50 операций. Переход к всем значениям с данным хешем всегда за O(1). Далее остаётся перебрать значения данного одинакового хеша, если их вдруг не одно. O(n) будет, если все или почти все значения имеют одинаковых хеш. Но я не знаю, какие хеш-функции по умолчанию используются. Кто-нибудь может дать инфу? Плюс ещё есть какие-то функции перераспределения. С ними я тоже не знаком.
> Мне ремарка странной кажется, я привык всегда по худшему случаю смотреть, для хэш-таблицы это O(n).
Я думаю, что надо смотреть на все случаи вместе с их вероятностями. O(n) - это, по-моему, какая-то катастрофа для хеш-таблицы. В основном близко к О(1) должно быть. Если кто не понял в чём подвох хеш-таблиц - они едят много оперативы.
>>33193
> Во-вторых, что мешает тебе сделать бенчмарк и посмотреть?
Ещё надо бы знать теоритические оценки О для структур данных.
>> No.33197 Reply
>>33194
но ведь положение хеша в таблице извлекается за O(1)!
>> No.33198 Reply
>>33196
> Ещё надо бы знать теоритические оценки О для структур данных.
Если речь о выборе между двумя типами ключей, то бенчмарк однозначно даст понять, кто быстрее.
>> No.33199 Reply
>>33194
> Если искомый хэш последний в последовательности, ты выяснишь это за n сравнений.
Извените, но вы несёте пургу. Хеши идут как в массиве подряд в памяти, так что обращение идёт за О(1).
>> No.33200 Reply
>>33198
Я бы удивился, если бы строки оказались быстрее. Впрочем попробуйте.
>> No.33201 Reply
>>33200
строки должны оказаться не медленнее
>> No.33202 Reply
>>33199
Действительно, чушь несусветная. Пойду спать.
>> No.33203 Reply
>>33201
Но быстрее они вряд ли будут. Я думаю, что хеш от них чуть дольше считается.
>> No.33204 Reply
>>33203
Это несущественные расходы, ведь для всех значений в словаре хеш уже рассчитан.
>> No.33206 Reply
>>33204
А когда пытаешься получить значение по ключу, хеш от ключа-аргумента что, не считается?
>> No.33207 Reply
>>33206
Я говорю, строки медленнее, но совсем не намного.
>> No.33209 Reply
O(n) - скорость расчёта хэша для строки, где n - длинна строки. Я не знаю как работают строки в шарпе, но если они константа, то было бы логично рассчитывать хэшь при создании и потом возращать за О(1). Знатоки шарпа, просветите по этому поводу.
О(1) - получение коллекции пар ключ:значение с одинаковым хэшем ключа. Потом мы должны искать по этой коллекции пару с конкретным ключём. Скорее всего мы это сможем делать за O(log(n)).
Это одна из возможных реализаций, есть много других вариантов. Буду благодарен анону, который распишет как это у майкрософта.
>> No.33211 Reply
>>33209
Как оно сделано у мелкомягких можно выяснить только опытным путем, т.е. построить графики и посмотреть какая сложность на глаз.
>> No.33214 Reply
>>33209
Мне кажется, мостырить там O(log(n)) будет выгодно только, если там дофига значений. Скорее всего предусмотрено мало значений на одном хеше, так что скорее там простая последовательность с О(n), где n - количество значений на данном хеше.
>> No.33216 Reply
>>33209
> было бы логично рассчитывать хэшь при создании и потом возращать за О(1)
наоборот, было бы не логично усложнять компилятор ради столь незначительной экономии
>> No.33217 Reply
>>33216
Это сводится к тому, что компилятор должен заранее вычислять значения, которые он может вычислить заранее. Протягивание констант, подстановка литералов, проверка вычислимости. Это в компиляторах есть, но при работе с динамической памятью они тупят, насколько я знаю. Так что вряд ли компилятор это смогёт.
>> No.33219 Reply
>>33216
Какой компилятор? При создании объекта же, просто в конструкторе прописать, но это будет занимать дополнительную память и по умолчанию не нужно.

Есть хоть один язык который позволяет кэшировать значения функций?
>> No.33220 Reply
>>33219
> При создании объекта
Какого объекта? Самой таблицы? В этот момент у неё ещё нет данных же, чьи и какие хэши ты собрался писать в её конструкторе?
> будет занимать дополнительную память и по умолчанию не нужно.
Где, зачем?
> Есть хоть один язык который позволяет кэшировать значения функций?
На уровне синтаксиса, что ли?
>> No.33224 Reply
>>33216 >>33217
И да, я имел ввиду только строки.
В яве и вроде бы в шарпе строки - константы. Как создал объект таким он и будет, а значит хэщь объекта одинаков в любой момент существования строки. Т.е. при создании строки мы можем посчитать её хэшь и потом возвращать его и больше не пересчитывать. Таким образом операция подсчёта хэша будет выполнятся за O(1) (не считая первый раз), а не за O(n). Быстрее, но это бы занимало дополнительную память.

Так вот, есть языки или библиотеки для языков, которые позволяли бы кэшировать значения функций? Было бы круто сказать компилятору: кэшируй значения функции getHash() у объектов типа String. Тогда каждый следующий вызов этой функции выполнялся бы за O(1).
Да, можно написать свой стринг, но хочется чего-то более универсального. И вроде бы есть что-то похожее в haskell, но я его пока не осилил.
>> No.33233 Reply
>>33224
на текущий момент это решается только методами контекствнго программирования, которое было черезпеньколоду реализованно в лишпе (не в стандарте, а в принципе) и вроде бы все.
А в хачкеле используется ленивая арифметика и это работает примерно как создание еще одной переменной, в которой лежит хэш строки (статически) в тех случаях, когда он вызывается минимум дважды
>> No.33247 Reply
File: 1248474706130.jpg
Jpg, 126.50 KB, 550×400
Your censorship settings forbid this file.
unrated
>>33224
> хэшь
Ты меня под ст. 107 УК РФ подвести хочешь, что ли?
>> No.33249 Reply
>>33233
Нашёл что-то в спринге реализацию http://static.springsource.org/spring/docs/3.2.x/spring-framework-refe[...].html
Насколько я понял это и есть аспектно-ориентированное программирование синоним контекстного?, аспект и совет реализованы за нас, а аннотация является точкой соединения. Срезом же является условие, например: condition="#name.length < 32". Ну а внедрения тут вроде бы нет, хотя я не совсем понял что это такое.

>>33247
Спасибо. Но раз ты считаешь себя граммар наци, то почему на этом остановился? Я более чем уверен, что там ещё полно ошибок.
>> No.33251 Reply
>>33249
Контекстное программирование позволило бы включить кэширование для контекста (который при этом может даже содержать результаты профилировки на "типичных" тестах). Например, не помешало бы кэшировать любой геттер (получение хэша по сути есть геттер), работающий более чем за константу. Декларируем это - и вуаля, все включилось. А аспектное суть есть макрос для конкретных решений, т.е. по факту тот же "свой стринг", только с минимумом кода
>> No.33252 Reply
>>33219
> Есть хоть один язык который позволяет кэшировать значения функций?
Возможно, в D есть что-то похожее для Pure функций.
>> No.33253 Reply
>>33251
> Например, не помешало бы кэшировать любой геттер (получение хэша по сути есть геттер), работающий более чем за константу.
Я б посмотрел на попытки кэшировать значение, возвращаемое геттером свойства System.DateTime.Now.
>> No.33254 Reply
>>33249
Просто на этом слове (в твоем исполненни) у меня лопнуло терпение.
>> No.33255 Reply
>>33252
Там есть модификатор pure, но он не предназначен для кеширования.
>> No.33263 Reply
>>33253
DateTime.Now не является геттером (по крайней мере в интерпретации того поста). Все же геттер - чистая функция состояния класса.
>> No.33306 Reply
>>32496
Не нашел нужного треда, но может тут кто-то поможет.
Нужно решить пару задач на Пайтоне.
  
Первая: На вход подается строка, содержащая имена файлов в некотором каталоге.
Требуется определить, имеется ли в данном каталоге заданный файл.
На входе две строки: В первой строке имена всех файлов в каталоге, разделенные пробелами.
Во второй строке имя искомого файла.
Формат результата: YES или NO заглавными буквами.

И вторая:
Найдите максимальный из простых делителей данного числа.
На выходите - максимальный простой делитель.

И по возможности, например, третья:
В одной строке через пробел дано N чисел. Сколько из них простых?
Формат входных данных: Одна строка, содержащая некоторое количество чисел, разделенных пробелами.
Формат результата:Одно число — количество простых чисел в исходной последовательности.


Если что и получится, то киньте решения (можно просто сообщением, можно сразу файлом, в общем, как удобно) на nomenahaim1@gmail.com
И огромное спасибо тем, кто решит. Или хотя бы подаст идею как (это можно и тут)
По возможности перенаправьте в нужны тред/доску.
>> No.33307 Reply
>>33306
> Первая
>>> xs = input(); print("YES") if input() in xs.split() else print("NO")
yoba.txt dobrochan.avi desu.mp3 mokrie-pisechiki.py
yoba.txt
YES
> третья
>>> print(len([a for a in [int(x) for x in input().split()] if all(a % n for n in range(2, a))]))
3 5 7 9 1
4
python 3.2.5
>> No.33308 Reply
>>33307
python 4.2!
>> No.33309 Reply
File: persimg4008.jpg
Jpg, 16.75 KB, 200×300 - Click the image to expand
edit Find source with google Find source with iqdb
persimg4008.jpg
Привет.
Анон, дай пожалуйста ссылку на скачку годного учебника по С++.
С меня чай с печеньками каждому отозвавшемуся.
>> No.33310 Reply
>>33306
> вторая
>>> x = input()
>>> next(d for d in range(x, 2, -1) if not x%d and all(d%n for n in range(2, int(d**.5) + 1)))
>> No.33314 Reply
File: Zadachi.txt
Txt, 0.00 KB, 0 lines - Click the image to get file
view edit
Zadachi.txt
Анон, спасай!
Снова питон... (Файл прикреплен)
>> No.33317 Reply
>>33314
Cделаю за отзiв.
>> No.33319 Reply
>>33309
Новый Страуструп по С++11 вышел. Поищи его.
>> No.33320 Reply
>>33317
Вут из зис? А впрочем, я уже на что угодно согласен. Потому что задач около ста, а время ограниченно.
>> No.33322 Reply
>>33320
Если ты думаешь, что за тебя тут все решат, то ошибаешься. Помочь — может и помогут. Но помогают обычно тем, кто сам что-то пытается делать. Не поверю, что ты не осилил даже написать факториал.
> Потому что задач около ста
freelance.ru
>> No.33325 Reply
>>33322
Осильть то можно, но времени на это в самом деле нет.
>> No.33328 Reply
>>33319
> дай пожалуйста ссылку на скачку
> ссылку
> на скачку
> Страуструп по С++11 вышел
> Поищи его.
Если твой ответ таков, то...
Чай без печенек тебя бы тоже устроил, да?
>> No.33331 Reply
>>33328
Дай человеку ссылку и ты снабдишь его информацией на день.
Научи человека гуглить и ты даешь ему информации на всю жизнь.

4-е издание плохо гуглится и я подозреваю его на этом языке еще нет. Вангую что тебе нужен этот язык.
А 2го и 3го полным полно на том же рутрацкере.
>> No.33332 Reply
>>33331
Этот язык - это русский, что ли? Да ну, английский ебашь.
>> No.33334 Reply
Суп, покажи мне хорошее чтиво по теме третьей главы SICP. По парадигмам программирования, локальным и глобальным окружениям, нутыпонял.
>> No.33335 Reply
А мне подскажите аудиокнижки по CS. Не начитку книжек в стиле "сидишь и кодишь вместе с автором"
>> No.33336 Reply
>>33328
http://www.stroustrup.com/4th.html - на офстайте дохлострауса есть несколько глав, пиратбей ничего не предлагает.
>> No.33345 Reply
>>33334
www.RSDN.ru - весь.
>> No.33346 Reply
>>33335
> аудиокнижки
Вата, только текст, только хардкор.
>> No.33357 Reply
>>33346
У меня в день 2,5-3 часа дорога
>> No.33358 Reply
>>33357
Сочувствую, но результат работы с текстом будет намного выше.
И если просишь именно аудиокнижки, то я полагаю это сидение в пробке за рулем? Не рекомендую еще потому, что либо будешь следить за дорогой, либо за мыслью автора.
>> No.33359 Reply
>>33358
Дорога выучена наизусть, тем более что за ней следить пока она стоит. Я понимаю, что надо работать с текстом (и лучше всего сидя за нетбуком), но этого мне на работе хватает, да и дома бывает засиживаюсь до поздней ночи
>> No.33360 Reply
>>33359
Рекомендую печатное издание. Ну или на худой конец телефон с большим экраном/планшет.
>> No.33368 Reply
File: images.jpeg
Jpeg, 4.38 KB, 259×194 - Click the image to expand
edit Find source with google Find source with iqdb
images.jpeg
разжуйте мне как эта хрень работает, из четвёртого поста, кто в imagemagick разбирается
http://www.wizards-toolkit.org/discourse-server/viewtopic.php?f=1&t=15[...]890c0
convert cyclops_question.png cyclops.png \
\( -clone 0 -clone 1 -compose difference -composite -threshold 0 \) \
-delete 1 -alpha off -compose copy_opacity -composite -trim \
cyclops_sep.png
>> No.33383 Reply
File: Шутить-изволишь.jpeg
Jpeg, 22.16 KB, 500×409 - Click the image to expand
edit Find source with google Find source with iqdb
Шутить-изволишь.jpeg
>>33331
> Дай человеку ссылку и ты снабдишь его информацией на день.
> Научи человека гуглить и ты даешь ему информации на всю жизнь.
Кто тебе сказал пару столь глупых предложений? Или тебе заняться самому нечем, как такую глупость придумывать? Раздел /b/ в другом месте, шёл бы ты отсюда, как вариант, туда.
>> No.33384 Reply
>>33383
Этому выражению ну не этому, а тому из которого парафраз около двух тысяч лет, школьник. Так что убери своего петросяна подальше.
>> No.33398 Reply
Я тебя искал, тред. Вопрос у меня страшно нубский и вместе с этим философски-фундаментальный.
Короче, есть крохотное одностраничное приложение на голом js, в html'е которого придется лепить большое количество повторяющихся тегов: например, много селектов с одинаковыми опциями. Так вот, как мне его отдраить? Темплейтовым движкам на js нельзя генерировать сложный html на лету - только вставка строк. И как теперь быть? Плюнуть на DRY?
>> No.33399 Reply
>>33398
А в чём проблема вообще? Я не совсем понимаю, о чём речь, но, например, если нужно делать селекты с разными опциями, то можно, скажем, сделать джаваскрипт-функцию, которая выплёвывает селект с поданными ей на вход опциями. В общих чертах. Опиши конкретнее, что ли.
>> No.33402 Reply
>>33399
Не нужно разных опций - все статично. Просто у меня огромное количество повторяющегося html, который бы хотелось разбить на поименованные части, а потом их собрать как это делается обычно в шаблонизаторах, но используя только серверсайд.
хотя... может я и обойдусь одной селектов, спасибо - уже все не так мусорно
>> No.33410 Reply
File: 1289071196180.jpg
Jpg, 89.12 KB, 450×450 - Click the image to expand
edit Find source with google Find source with iqdb
1289071196180.jpg
>>33384
Поговори мне тут.
Давай-ка ты мне расскажешь интересную историю о том, как твоё умение гуглить (давшее тебе информацию как раз на всю жизнь) заменило твою способность пользоваться мозгом, если такая способность у тебя вообще была. Так что не мне убрать Петросяна нужно, тем более, что я и не школьник, а тебе стоило бы покинуть тред.
Иначе говоря, далеко не всё можно загуглить и получить при этом искомую информацию, а значит "научить человека гуглить" можно приравнять к тому же самому предложению "снабдишь его информацией на день" (так как "умение загуглить" может совершенно не удовлетворить потребности искателя информации).
Так что Петросян пусть здесь останется. А ты уберёшься "подальше".
>> No.33411 Reply
>>33410
когда пожарные доберутся, будет уже слишком поздно, так что будь няшей и прекрати возбухать. Тебе никто ничего не должен. Если ты приходишь требовать - тебя пошлют
>> No.33413 Reply
File: 25476.jpg
Jpg, 32.36 KB, 604×169 - Click the image to expand
edit Find source with google Find source with iqdb
25476.jpg
>>33384
> Этому выражению около двух тысяч лет
> выражению около двух тысяч лет
> двух тысяч
Ахаха, ахаха, ухуху.

>>33331
Давайте-ка разберёмся. 4-е издание плохо гуглится, и анон подозревает что его на этом языке ещё нет.
Мне достаточно было б получить ссылку, "снабдившей меня информацией на день"%% (чтоб скачать учебник)%%.
А, да, да. Точно. Научиться гуглить с помощью пары мотивирующих предложений для меня явно важнее по его мнению. Я забыл об этом.
>> No.33414 Reply
File: 552738422.jpg
Jpg, 17.26 KB, 250×339 - Click the image to expand
edit Find source with google Find source with iqdb
552738422.jpg
>>33411
> Тебе никто ничего не должен.
Надо же, ты меня удивил.
> Если ты приходишь требовать - тебя пошлют
Я рад тому, что ты не доброчанер по натуре и к тому же любишь давать плохие советы. Между тем я пока здесь ни от кого ничего и не требовал.
%% Пожар здесь только у тебя, если ты не понял. %%
>> No.33416 Reply
>>33414
но я же мимокрокодил
>> No.33418 Reply
File: Agent-Smith-51855554478.jpeg
Jpeg, 33.47 KB, 775×498 - Click the image to expand
edit Find source with google Find source with iqdb
Agent-Smith-51855554478.jpeg
>> No.33419 Reply
File: Lao-Tsé.jpg
Jpg, 104.93 KB, 352×402 - Click the image to expand
edit Find source with google Find source with iqdb
Lao-Tsé.jpg
>>33413
> Ахаха, ахаха, ухуху.
Скажи ему это в лицо, щенок.
>> No.33422 Reply
File: каменная-могила-небо.jpg
Jpg, 85.10 KB, 700×467 - Click the image to expand
edit Find source with google Find source with iqdb
каменная-могила-небо.jpg
>>33419
А где?
Где мне ему это сказать надо?
>> No.33423 Reply
File: 9392242.jpg
Jpg, 22.09 KB, 350×436 - Click the image to expand
edit Find source with google Find source with iqdb
9392242.jpg
>>33422
>>33419
Успокойтесь, добро-тяны, гуглить не нужно, и петросян ваш не смешной.
>> No.33478 Reply
>>33423
Мимокрокодил, ты?
>> No.33547 Reply
>>33478
Анон, привет, у меня дурацкий, по-моему, вопрос. Поэтому запощу его сюда. Я пишу приложение, использующее базы данных и MySQL в частности. Для конкретики, это библиотека книг и проектов, содержащая всевозможную о них информацию. Пишу я на Java, и к своей базе данных я подключаюсь при помощи JDBC. Однако если я захочу запустить это все на другой машине, то работать это не будет, потому что там нет нужных драйверов, нет MySQL и нет оформленных баз данных. И если драйвер я еще могу распространять вместе с программой, то вот как мне распространять вместе с моей библиотекой базы данных, я ума не приложу. Так вот, как мне все это организовать, подскажи, пожалуйста.
>> No.33550 Reply
>>33547
инсталятор
>> No.33552 Reply
>>33547
Используй SQL Lite.
>> No.33567 Reply
>>33550
>>33552
Можно поподробнее?
>> No.33568 Reply
>> No.33572 Reply
File: кпч.png
Png, 0.93 KB, 300×20
edit Find source with google Find source with iqdb
кпч.png
File: хоро2.png
Png, 392.87 KB, 831×1200
edit Find source with google Find source with iqdb
хоро2.png

Хочу постичь html, css и javascript. Везде пишут, что лучше создать свой сайт бла бла бла, но никаких идей, что можно было бы создать у меня нет. Не тупо же делать пустые страницы с HELLO WORLD разными цветами. Подскажи, анон, что можно такое запилить, чтобы это был хороший полигон?
>> No.33573 Reply
>>33572
Создать формочки с вводом текста и проверять текст на корректость с помощью JS, сделать несколько форм, связанных ссылками, слепить их покрасивее, сделать какой-нибудь хитрый ввод данных с эффектами.
>> No.33574 Reply
>>33572
Вот тут что-то есть http://www.codecademy.com/learn
Принцип изучения языков программирования один: ставить задачу, пытаться писать, не получается - гуглить. Например напиши аналог любимой игры с денди.
Насчёт вёрстки я встречал такую рекомендацию: брать понравившийся сайты и пытаться сверстать так же. Пиксель в пиксель.
>> No.33575 Reply
>>33574
Раз уж такое дело. Моя главная цель это именно языки программирования, но я просто как-то раз наткнулся на Stylish и немного обмазался CSS поэтому как ни странно я сейчас CSS знаю лучше чем HTML. Насколько вообще нормально будет взять да начать изучать какой-нибудь C++, если вообще понятия не имеешь что это, как и остальные ЯПы.

>>33573
> проверять текст на корректость
В каком смысле?
>> No.33576 Reply
>>33575
> В каком смысле?
А в каком придумаешь и чтобы забиться проблемами, которые будут требовать разных решений. Проверка, что это действительно chto-to@chot-toeshe.ieshe, поиск мата, проверка орфографии, подсветка синтаксиса и т.д. и т.п.
>> No.33579 Reply
>>33575
JS хорош, но, ИМХО, не для начала.
Посмотри пасту http://pastebin.com/3LXd4HAc Тут после SICP'а рекомендуют учебник по C++, что достаточно спорно. И этот учебник рекомендуют дропнуть до указателей, что ещё более спорно, но все остальные рекомендации в пасте - более-менее годны, если кроме того что написано в учебниках луркать рилэйтед инфы.

Но если ты хочешь просто выучить какой-нибудь язык, то бери любой учебник лучше чаще других рекомендуемый и начинай читать. Если идёт туго - бери другой. И попробуй интерактивные курса как на codeacademy или найди курсы по программированию с coursera или её аналогов. Как только более-менее освоишься в языке - пиши как можно больше кода и читай про непонятные вещии.
>> No.33580 Reply
>>33579
Мне не понравилась паста. Зачем изучать ОС, если в планах языки довольно высокого уровня?
--Крокодил
>> No.33581 Reply
>>33580
Альтернатива?
>> No.33582 Reply
>>33580
Что бы понять в каком окружении и как будет работать твоя программа, как работают треды, в каком порядке выполняются, какие есть алгоритмы назначения задач и т.д. Это нужно что бы лучше параллелить программы и искать малоочевидные баги, например.
Кроме того Таненбаум очень круто пишет, его легко и интересно читать. А часть алгоритмов настолько просты, что можно самому их придумать.
А вообще это паста всего лишь рекомендация - не хочешь учить какую-то часть - дропаешь. Можешь прямо в самом начале. Но что интересно, все люди, которых я считаю крутыми программистами я знаю мало программистов, поэтому выборка не репрезентативна всё это знают и на специальностях где обучают программистов всё это преподают.
Алсо если хочешь упороться java то нужно прочитать как работает её VM, если python - читаешь об его интерпретаторе, c++ - о его компиляторах и оптимизаторах.
>> No.33587 Reply
>>32854
> SICP на схеме. Его заменили на два других курса, один из которых на питоне.
Курс на питоне видел. А что ты посчитал за другой SICP-курс?
>> No.33589 Reply
>>33579
Не знал о книге Дейта по БД, которая тут перечислена, прочёл вместо неё Грабера. Чувство зазря просраного времени. Впрочем пока хватит с меня БД, в принципе у Дейта много почти того же самого.
>> No.33594 Reply
>>33589
А что вообще такого особенного и сложного с БД, почему с ними все так носятся?
>> No.33599 Reply
>>33594
с простыми дб для обычных софтин сложностей нет. Теория больше для высоконагруженых БД нужна
>> No.33602 Reply
>>33599
Но почему ее тогда вставили в эту копипасту?
>> No.33603 Reply
>>33602
потому что паста такая паста
>> No.33607 Reply
>>33602
Потому, что большинство из нас так до сих пор так и не выучили СУБД, а нужны они везде, вот почему.
>> No.33608 Reply
>>33602
Чтобы проектировать и поддерживать высоконагруженные БД?
>> No.33719 Reply
>>32496
Привет, анон.
Поясни, куда копать и что гуглить, если я хочу написать простенький download manager на C. С сетевыми технологиями я раньше не сталкивался.
>> No.33720 Reply
>> No.33721 Reply
>>33720
То есть тут даже писать ничего не надо? Прямо из командной строки работать, годно.
>> No.33775 Reply
>>33721
Все написано до нас.
>> No.33776 Reply
>> No.34670 Reply
File: 1323801095553_1.gif
Gif, 331.73 KB, 500×455 - Click the image to expand
edit Find source with google Find source with iqdb
1323801095553_1.gif
>>32496
   iOS б-ги, помогите с code review.
Тут фрагменты тестового (junior), которое не прошло. Хочу узнать свои косяки.
Задача для тестового - вывести на экран последние 10 твитов Леди Гаги. Твиты сохранять в Core Data, устаревшие - удалять.

AppDelegate: http://pastebin.com/6EzndUsP
ViewController: http://pastebin.com/ECqBneWB
DataManager: http://pastebin.com/eJhjFUWc
Timeline: http://pastebin.com/UdTqXbgT
>> No.34671 Reply
>>34670
Да вроде норм код.
Немного оффтопика: как можно было из няшной сделать такое уебанство а не ЯП, яббл упоротые.
мимошел
>> No.34672 Reply
File: Пошагово.jpg
Jpg, 25.53 KB, 415×206
edit Find source with google Find source with iqdb
Пошагово.jpg
File: Обычн.-выполнение...
Jpg, 24.52 KB, 423×223
edit Find source with google Find source with iqdb
Обычн.-выполнение.jpg
File: Задание-по-дв-мас...
Pas, 0.00 KB, 0 lines
view edit
Задание-по-дв-масс.-№6.pas

Доброго времени суток, анон.
Имеется программа, которую нам задали сделать на лабе. 1 курс, кодим на паскале через PascalABC.NET.
Суть программы в том, что пользователь должен ввести вручную двумерный массив, размером n на m, или же заполнить его автоматически. Потом в полученном массиве считается кол-во специальных элементов. Спец. элементом считается элемент, в строке которого все элементы слева - меньше него, а справа - больше. Потом вывод на экран этой матрицы и кол-ва спец. элементов
После ввода вручную - всё считает правильно. При автоматическом заполнении весь массив забивается первым случайным числом. При пошаговом же выполнении программы и автоматическом заполнении выходит как надо.
В универе вроде всё работало как надо, а дома выходит такая непонятная фигня. Из-за чего так?
Текст проги открывается в любом текстовом редакторе
>> No.34673 Reply
>>34672
randomize надо вызывать только один раз при старте программы, насколько я помню из школьного курса паскаля. Прозреваю, что за сид оно автоматически берёт время с низкой точностью и при быстром выполнении каждый раз сбрасывает на начало одной и той же последовательности.
>> No.34674 Reply
>>34673
Спасибо. Теперь работает как надо.
А то нам не объясняли ничего кроме базовых операторов ввода и вывода. Дальше сказали разбираться самим.
>> No.34675 Reply
>>34674
Если вас там бросили на самообучение, ну или просто если есть желание научиться хорошо и правильно программировать, почитай http://newstar.rinet.ru/~goga/sicp/sicp.pdf
>> No.34676 Reply
File: F-internets-1.jpg
Jpg, 42.21 KB, 639×480
Your censorship settings forbid this file.
unrated
>>34671
Т.е. это просто стечение обстоятельств? Спасибо, продолжу искать работу тогда.

>>34675
А еще этот курс есть на хекслете (нужна регистрация, но сайт хороший)
http://hexlet.org/course/sicp/
>> No.34677 Reply
Спасибо большое. В следующие 2-3 недели попытаюсь освоить.
>> No.34697 Reply
Привет, кодач.
Есть один прототип на си (а точнее плюсах, но с совместимостью между си и плюсами я буду разбираться потом)
here it is:
HANDLE WINAPI CreateFile(
  _In_      LPCTSTR lpFileName,
  _In_      DWORD dwDesiredAccess,
  _In_      DWORD dwShareMode,
  _In_opt_  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  _In_      DWORD dwCreationDisposition,
  _In_      DWORD dwFlagsAndAttributes,
  _In_opt_  HANDLE hTemplateFile
);
Я работаю с COM-портом, где номер порта присваиваевается и передается таким образом:
#include <string.h>
// [...]
char comp[10] = "\\\\.\\COM";
strcat(comp, comid);
Вопрос: как передать comp прототипу?

Нечто навроде *port = CreateFile(comp, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); очевидно не сработает, ибо присваивать строки так нельзя, и присвоит он скорее всего первый элемент массива. Это же мне не питон.
>> No.34698 Reply
>>34697
Хотя краткие советы по совместимости от адепта си, работающего с винапи, мне бы тоже не помешали.
>> No.34700 Reply
File: 1381224423233.png
Png, 1.12 KB, 300×20 - Click the image to expand
edit Find source with google Find source with iqdb
1381224423233.png
>>34697
> присваивать строки
Падажжы, это возврат указателя на только что созданную область памяти (где, кстати?) и присвоение... зойчем вы тrавити конпелятор? Звёздочку слева от "port" зойчем ставити?
>> No.34702 Reply
>>34700
Я тоже ничего не понял зачем он передаёт какую-то фигню в качестве имени файла и зачем присваивает что-то по указателю, если ему возвращает хэндл, который вообще абстракция винды и его трогать не надо.
>> No.34703 Reply
>>34702
Потому что хэндл создается извне, затем передается аргументом функции в которую вызывается указателю. А странное имя файла выводится из багрепортов многострадальцев на http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx плюс из иной логики работы CreateFile.
>> No.34704 Reply
>>34703
Так падажжи. Давай сначала. Первым параметром принимает строку вида \\.\COM10 так? И почему ты решил, что передача строки очевидно не сработает?
>> No.34705 Reply
>>34704
В одном учебнике, который я читал очень давно, аргументы функции представлялись в виде переменных внутри этой функции, к которым переменные извне не могут иметь другого доступа, кроме как записи (инициализации) при вызове функции...
Хм. Мое же объяснение натолкнуло меня на гипотезу.
char foo[] = "spam";
char bar = foo;
printf(bar);
Что если присваивать строку строке нельзя лишь если вторая строка (адресат) не инициализирована? Это довольно криво с точки зрения языка, но вполне возможно.
Компилятора под рукой пока нет, пишу с тостера.

До сих пор не могу снова привыкнуть к этим точкам с запятой. Даже в листинге сверху чуть не забыл их...
>> No.34706 Reply
>>34705
s/не\ инициализирована/инициализирована/
>> No.34707 Reply
>>34705
> к которым переменные извне не могут иметь другого доступа
И не переменные, а код. И, вроде, там делалась поправка на статичные переменные, по крайней мере я бы ее сделал. Извини меня, доброчан - жутко устал.
>> No.34710 Reply
>>34697
> Нечто навроде *port = CreateFile(comp, GENERICREAD | GENERICWRITE, 0, NULL, OPEN_EXISTING, 0, NULL); очевидно не сработает, ибо присваивать строки так нельзя, и присвоит он скорее всего первый элемент массива.
Сработает, т.к. comp - просто указатель на область памяти, содержащую строку. У тебя какая-то мешалда в голове.
>> No.34713 Reply
>>34710
Тогда бы эта часть прототипа имела бы вид
_In_ LPCTSTR* lpFileName а передаваемый параметр имел бы вид &comp Это же и пояснялось в той книге - с точки зрения любви к байтам, экономнее было бы чаще использовать в объявлении\определении указатели, а при вызове - передавать им адрес. Ну, если тип имеет больший размер, чем указатель на него.
Исходя из моей подготовки и опыта, не могу вам поверить.
>> No.34714 Reply
>>34713
Из-за однострочных кавычек типа `, новые строки (и точка, вроде) нещадно урезались местами. Я не виноват.
>> No.34716 Reply
>>34713
1) LPCTSTR и есть указатель. На что, кстати, намекает префикс ( ruwiki://Венгерская_нотация )
2) typeof &comp == char** на самом деле char (*)[10], но разница не велика
>> No.34717 Reply
>>34713
> с точки зрения любви к байтам, экономнее было бы чаще использовать в объявлении\определении указатели, а при вызове - передавать им адрес. Ну, если тип имеет больший размер, чем указатель на него.
В си, кстати, массивы по значению и нельзя передавать, но можно структуры.
Советую освежить/пополнить знания о си, иначе постоянно придется бороться с глупыми ошибками от незнания.
>> No.34719 Reply
Вот смотри, доброчан. Есть некое определение struct в файле который инклудится.
struct ss_t {
	char one[DEFINED_BY_PREPROC+1];
	void *something;
	enum prefix_action_e action;
	someothertype someotherid;
};
Как я с ним работаю:
int test() {
	typedef struct ss_t ss_t_t;
	ss_t_t foo;
	foo.one = "text";
	//unrelated code [...] unrelated code
	return 0; }
TCC выдает:
test.c:4: error: lvalue expected

Что я делаю не так?
Ведь это совсем не логично.
>> No.34720 Reply
>>34719
Не читаешь книжки перед тем как код писать. Это тебе не питон, и уж тем более не халявный жабаскрипт.
>> No.34722 Reply
>>34720
Сейчас на это нет, увы, времени.
Самому сложно жертвовать перфекционизмом, и искать легкий всеобъясняющий абзац, вместо того чтобы брать заветную книжку k&r и идти по пути их объяснения.
Это не худлит, одного прочтения и воображения очевидно не хватит.

Серьезно, я бы хотел. Выбор похоже, "идеально или никак", где в роли никак - значение того, на что указывает "плохо". Обычно, все наоборот.
>> No.34723 Reply
>>34722
Окей.жпг. Если честно, я ничего не понял из твоих оправданий.
В общем строк в си нету. Кстати почему именно си, а не кресты? Так вот, one в данном случае - массив. Нельзя просто взять и присвоить переменной-массиву другое значение, тем более, что строковые константы имеют тип const char*, который хоть и может указывать на начало массива, но формально таковым не является. Так что использует strcpy для копирования значения строки и следи, чтоб за размер не вылезти.
>> No.34733 Reply
>>34723
Было стало стыдно от вторичных граблей, но...
Ты неправ. giggle.
При инициализации - можно.
Что опять странно, учитывая что "foo"[1] == "o", а "bar"[2] == "r", причем это легитимные конструкции.
Хотя... и инициализация массива массивом работает без нареканий. Но лишь инициализация. Ну не кривизна ли языка? Грр.

Ошибка была в другом - объявляя struct, где-то в инклудах уже определенный, я объявляю на деле указатель.
Если поставить звезду до port - все работает компилируется.
Что странно - передача стракта другой функции с прототипом "somefun(struct ss_t *n);" через подобный вызов: "somefun(n);" - не компилируется, но если аргументом поставить &n - компилируется.
Тоже видится странным и неясным, ведь согласно докам, указатель при использовании должен выводить указываемый адрес, что логично, т.к. таковы данные которые хранит указатель. А используя &указатель, я передаю уже адрес указателя.

Кстати, все же годная штука этот Visual Studio, при всей моей нелюбви к шинде. Особенно радуют подчеркивания. Для настоящих индусов.
>> No.34736 Reply
>>34723
Странно, я тебе уже отвечал, но пост исчез, хотя я не постил чего-то плохого.
>> No.34738 Reply
File: 136962216688237.jpg
Jpg, 14.73 KB, 200×250 - Click the image to expand
edit Find source with google Find source with iqdb
136962216688237.jpg
>>34670
Может, еще есть желающие проревьюить? Я был бы очень признателен.
>> No.34751 Reply
Ты пиздец. Нет, правда. Ты бы уже два раза мог прочитать главу по стстандартным типам данных, вместо того чтоб методом тыка перебирать.
>> No.34761 Reply
>>34733
> Ну не кривизна ли языка? Грр
Это такая расплата за то, что массив - простой кусок памяти, без какой-либо дополнительной информации. Компилятор может не знать, сколько данных ему можно копировать.
> При инициализации - можно
При инициализации размеры известны, всё логично.
> Что опять странно, учитывая что "foo"[1] == "o", а "bar"[2] == "r", причем это легитимные конструкции
А как тебе такое: 1["foo"] == "o" и 2["bar"] == "r"?
А массивы в Си вообще хитрая вещь. Начнём с того, что идентификатор массива не указатель в полном смысле этого слова, но обладает некоторыми его свойствами (что логично). Закончим чем-нибудь вроде:
int a[2];
if (a == &a) {
    printf("Magic");
}
> Что странно - передача стракта другой функции с прототипом "somefun(struct ss_t *n);" через подобный вызов: "somefun(n);" - не компилируется, но если аргументом поставить &n - компилируется
Это означает только то, что n у тебя - структура, а не указатель на неё. И вообще, привёл бы все эти хитрые объявления структур.
>> No.34763 Reply
Черт побери, как эти жындузятники используемые библиотеки линкуют?
Ни мейкфайлов, ни должной документации по компилятору, ни малейшего указания на то где находятся системные .h файлы, ни нормального хотя бы гуевого меню с распознанием инклудов и их не статической компиляцией, а собиранием из dll.
Самое печальное - времени нет, но и howto step-to-step тоже нет.

Пиздец.

Ну серьезно - как можно было сделать такой естественный банальный процесс настолько неясным?
Я даже пробовал добавлять зависимости в проекте, находящиеся внутри туевой хучи бесполезных настроек. Все то же резкое "C1083: Не удается открыть файл включение".
Присутствует "добавить класс" в контекстном меню в подменю слева "внешние зависимости", но мне-то добавить нужно совсем не класс.

А еще там какие-то странные .lib файлы, которые как я понял обычные .o файлы. Но если в юниксах, .so библиотеки имеют при себе символьную таблицу, почему для компиляции в жыдовсе нужен .lib?

Может, просто скопипастить код с либы и линковать статически?
Но что, если мне когда нибудь понадобится линковать либу динамически на жыдовсе?

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

Как же мне хочется здесь просто сдатся. Только вот невозможно это.
>> No.34764 Reply
Да и статически линковать тоже сложновато. Либа большая, а если брать ее vcxproj, то придется изощрятся с тем чтобы компилировать ее как консольный exe, а не dll.
>> No.34765 Reply
>>34764
А может просто я идиот.
>> No.34767 Reply
Да, опять я, репортинг ин.
	int port_i = "1";
	char port_c[2];
	itoa(port_i, port_c, 10);
	printf(port_c);
На выводе получаю адреса, вроде "11491416". Что не так?
Гугл говорит что все так. Может быть проблема в том что жыжуал студио использует плюсовый itoa, а он по каким-то причинам не совместим с сишным? Как исправить тогда?

Пробовал и printf(), и itoa() передавать адреса port_c.
>> No.34768 Reply
>>34765
А с dll-ками разобрался, все так же просто как в юниксах за исключением bloated интерфейса, который не дает все найти. Пилим путь для инклуда объявлений компилятору, и для поиска определений - таблицу символов с либой, линкеру. Все это настраиваем в свойствах проекта.
Только вот странно, что линкеру нужна эта самая либа. Разве я ему не дал достаточно данных уже объявлением и использованием функции? Адрес можно искать динамически, по этой же самой символьной таблице, которая есть в каждом dll и so.
>> No.34770 Reply
>>34767
> int
> "1"
Ась?
>> No.34772 Reply
>>34770
Черт, какая глупая ошибка, лол.
>> No.34773 Reply
>>34768
Зачем тебе всё это говно? Пиши на сисярпике в вижуял-студии и будет тебе щастье.
>> No.34775 Reply
Привет, анон. Случилось у меня такая вот незадача, что я в вектор забить символы из cin не могу. Нет, ну они забиваются, но вектор какой-то ненасытный, всё ест и ест. Проблема у меня в StringFill(), как мне прекратить ввод данных из cin, когда пользователь нажмёт Enter? В данных могут быть: буквы английские, русские, знаки препинания, пробелы, цифры.
Код: http://pastebin.com/gwpNy4R2
>> No.34776 Reply
>>34773
> Зачем тебе всё это говно?
> Пиши на сисярпике в вижуял-студии
У вас логика поломалась.
>> No.34777 Reply
>>34773
Пишу же, внезапно, не для себя.
Сишарп плох по трем простым причинам.
1. Его архитектура и стандарт преследует коммерческую выгоду и не составляется сообществом\ISO Commitee.
2. C# является интерпретируемым, но не скриптовым языком. Приемущества VM утеряны, недостатки приобретены, good job. Слышал, но не могу с дивана утверждать, что там тоже немало костылей, как и в плюсах.
3. Он крайне плохо работает под Mono. Его нельзя назвать кроссплатформенным.
Настолько плохо, что Evolution и Banshee, заточенные под юниксы, таки крайне заметно лажают в разных местах. В приложениях на си такого почти не встретить.
> Зачем тебе всё это говно?
Передо мной недавно поставили простенькое ТЗ, но писать могу на языке который подзабыл, ибо 1С не умеет обращаться к питоновским функциям, только к сишным.
Разумеется, 1С практически используется лишь под виндами. Поэтому...
Зато у меня теперь есть полностью легальная версия жыдовса, где не придется параноить от сборочек и кряков.

Предложишь нормально выучится и не быдлокодить? Но я не могу. Ибо капитализм.

Предупреждая реплику вроде "ты - ленивый хуй" сразу наперед скажу, что я только только выпустился из школы. Хотя и в обратном случае от меня бы ничего не зависело - ибо тяга и зависимость к/от различным/ых удовольствиям/й, а следовательно - трата времени на них, тоже закономерное следствие капитализма и отсутствия меритократично-тоталитарного государства. Бытие определяет сознание.
>> No.34778 Reply
>>34777
А на каком-нибудь Qt вместо WinAPI не получится писать эти штуки для 1С?
>> No.34779 Reply
>>34778
Нет, работаю с COM-портами.
>> No.34780 Reply
>> No.34781 Reply
>> No.34783 Reply
>>34777
1. Ты хочешь об этом поговорить? Нет, серьёзно, как это повлияет на твой продукт?
2. Наглая ложь: JIT != "интерпретируемость".
3. Без пруфов твоё заявление о плохой работе под Mono - это опять-таки наглая ложь. Есть десятки и сотни контрпримеров, когда софт на C(++) течёт, тормозит и сегфолтится.
крокодил
>> No.34784 Reply
>>34780
О, точно, там же "istream& get (streambuf& sb, char delim);" есть! Сейчас попробую, спасибо.
>> No.34798 Reply
File: 2011_02_07_12_07_407013_1.gif
Gif, 36.05 KB, 340×400 - Click the image to expand
edit Find source with google Find source with iqdb
2011_02_07_12_07_407013_1.gif
Я могу понять, как работают поинтеры с массивами, функциями и структурами, но мне неясна логика, по которой можно отделить их обозначение от указателей на переменные.
Я попробую объяснить, хотя сложно свою мешанину в голове так-то конкретизировать. Может быть, даже сам пойму.

Как я понимаю следующий листинг:
	/* somewhere in main() */

	typedef struct rs232_port_t port_t;
	port_t* p = malloc(sizeof(p));
	strncpy((*p).dev, &port_c, 3);
1. Объявляем мнимым типом (алиасом) port_t, истинное значение которого struct rs232_port_t.
2. Объявляем указатель на структуру rs232_port_t с идентификатором p.
2.1. Размечаем память размером с возврат функции измерения размера, которая берет адрес типа данных. (Как так, разве мы его уже объявили? В моем понимании, это происходит до точки с запятой, но sizeof(p) вполне валиден.) Возврат функции разметки данных (адрес) присваеваем указателю.
3. Вызываем функцию копирования строки, которая берет параметрами адреса адресата, поставщика и размера некоего буфера, делающего неясно что, но не превышающего размеры или адресата, или поставщика. Причем, (почему?) адрес поставщика равен значению поставщика, но не данным которые он хранит. Мы не можем (почему?) передать параметр стракта в виде p.&dev или *p.dev. Верно ли, что (p).dev уже извлечет адрес переменной, а p является неким мета-указателем?

Верно ли я все понимаю? Можно ли как-то просто обобщить логику работы указателей и скобок? Что есть структура как тип данных, а не как контейнер типов? Где найти нормальный мануал?

Как я понял, int *somefun (variable) = NULL; пишется как int (*somefun) (variable) = NULL; для того чтобы задать порядок действий, как в математике. Но в 3тем пункте, я не могу записать (*p).dev как *p.dev. Компилятор ругается. Почему?
   Почему? Почему? Почему?

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


Учебники дают именно куски знаний, но они не могут как-то систематизировать подобные конструкции языка...
Точно как они объясняют работу препроцессора.
// Это включает работу винапи, теперь можно пользоватся функциями из винапи. Удачи, я съебываю, дальше сам разбирайся, лолка.
#include <windows.h>
   Вместо чего-то такого:
// Помимо определения функций, существуют и объявления.
// Они приобретают определенный смысл из-за того что существуют библиотеки, где формулируется
// частоиспользуемый программистами функционал. Например, программе может быть выгодно использовать
// библиотечную реализацию X клиента, вместо того чтобы реализовывать его самостоятельно - это упрощает
// и поддержку\сопровождение, и ускоряет разработку. Масса людей использует X клиенты, и формально - реализация
// находится в их коде, просто не компилируется в него из-за флагов, которые даны компилятору. Если не так, то как 
// рограммы, реализующие в себе X-клиенты, работают? Это можно угадать, прочитая дальше.
//
// Для того чтобы обращение к таким объявленным, но общим методам было возможно:
// компилятору необходимо знать список функций, и категорезировать их на определенные и неопределенные.
//
// Определенные включаются в символьную таблицу генерируемого .o файла, и при вызове каждой функции,
// иногда: программы, выпущенные определенной реализацией компилятора; всегда: библиотеки -- будут
// искать название функции в этой символьной таблице, если эти функции нужно использовать или вызвать.
// Неопределенные, но объявленные будут специальным образом транслированы линковщику, и при линковке -
// он будет искать, в каких obj-файлах существуют необходимые определения.
//
// Так вот, .h файлы, обычно, содержат объявления функций и различных структур. По архитектурным причинам,
// предпосылки которых выше, они обязаны быть включены в любой файл, где эти функции и структуры определяются
// и\или используются.
// Препроцессор запускается до компилятора и подготавливает ему исходный код, заменяя директивы #include
// содержанием файла в двойных кавычках или угловатых скобках.
// Так и живем.
// 
// Ах, да, чуть не забыл,
#include <windows.h>
Громоздкостью моего варианта пренебречь. Ну и понаписал.
>> No.34799 Reply
Поставил Resharper. Он даёт всякие рекомендации по коду. В том числе он настойчиво предлагает локальные переменные определять через var. Вопрос: в чём смысл?
>> No.34800 Reply
>>34798
> strncpy
memcpy для этих целей.
> sizeof(p)
Вернёт sizeof(port_t*) т.е. 4 или 8 экзотику не учитываем, в зависимости от разрядности системы.
> (*p)
В Си разве ещё не было ->? Ужас какой.
По третьему пункту ничего не понял из твоего потока мыслей. strncpy копирует n символов из одной строки в другую, никакой магии.
> (*p).dev
Перейти по адресу, записанному в p, от этого адреса сместится к местоположению dev
> *p.dev
Бред, потому что сначала ты пытаешься перейти к полю dev, в p его нет, это блджад указатель, а не структура с таким полем.
Гугли приоритеты операций.

Не знаю, что за "учебники" ты читаешь такие, что там ничего нет.
>> No.34801 Reply
>>34798
Прочитай K&R от корки до корки, блджад, и хватит уже ныть! Для осознания объявлений советую раскурить грамматику там же. Или пойти по простому пути, и раскурить программу, выдающую подробное объяснение того, чем является идентификатор по его объявлению. Опять же, есть в K&R, и объяснена чуть менее, чем полностью.
Алсо, компильни const static const int const a.
>> No.34803 Reply
>>34801
> const static const int const a
А в крестах ругается, что ещё раз говорит об убогости пюре и божественности крестов.
мимовытек
>> No.34804 Reply
>>34803
А в пюре тоже ругается, с -Wpedantic и -Werror. Вообще, я решил было посмотреть на грамматику крестов, чтобы понять различия, но там меня ожидал полный пиздец. ИМХО, пюре божественно из-за своей простоты.
>> No.34806 Reply
File: 1333396736111.png
Png, 1184.19 KB, 1400×1400
edit Find source with google Find source with iqdb
1333396736111.png
File: cirno_math_class_...
Png, 1570.62 KB, 900×1179
edit Find source with google Find source with iqdb
cirno_math_class_by_isakysaku-d4sufet.png
File: talking_captcha.png
Png, 0.94 KB, 300×20
edit Find source with google Find source with iqdb
talking_captcha.png

>>34798
int njklnj = 345678; /* указатель на область в памяти */
Нет, сирсли. Указатель - это просто число.

Другое дело, что некоторые не в меру впечатлительные компиляторы могут интерпретировать всякие &njklnj, как инструкцию к взятию некоторой фигни из памяти. При чём эти впечатлительные компиляторы даже позволяют записывать туда. Иногда компилятор обкурится розовых цветочков и вообще считает, что p->vfds ему даёт право взять число p, прибавить к нему смещение vfds, и чегойтотам ещё и в памяти найти.

И вообще память - это грубо говоря массив же. А вся магия указателей в няшном - это просто операции с int-ами.
> Вызываем функцию копирования строки
А чего в ней такого особенного? Ф-ия, как ф-ия:
char * strncpy(char *s, const char *t, int n) {
	char *os = s;

	while (n-- > 0 && (*s++ = *t++) != 0);

	while (n-- > 0) *s++ = 0;

	return os;
}
> #include <windows.h>
Да препроцессору пофиг, что это там за winблаблабла. Он просто берёт и вставляет содержимое файла windows.h и вставляет его в твой. А дальше с этим уже компейлятор пусть сам разбирается. Впрочем компейлятору тоже пофиг, что ф-ия с такимто именем ни где не найдена. Он просто передаёт всё это дело дальше в руки линкёра. Линкёр охреневает от такой наглости и, присобачив к проге пару библиотек, обвязывает всё это дело парочкой непонятных байт и выплёвывает .exe или что там у тебя.
>> No.34810 Reply
File: Безымянный.png
Png, 70.03 KB, 918×837 - Click the image to expand
edit Find source with google Find source with iqdb
Безымянный.png
Если холодно и умно глянуть - хреновое достижение, но...
Оно работает! Ты не представляешь, как я таки рад.

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

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

Хотя я лучше буду хорошим человеком и начну это делать сейчас.
>> No.34811 Reply
>>34810
> Но сейчас мне хватит и этого - мне нужно лишь прочесть данные, а лишь через день - дать либу которая их делит.
То есть распознает и подает в удобном формате. Я не могу это сделать сейчас, т.к. не знаю какого формата они будут.
>> No.34812 Reply
File: v810Minvx-g.jpg
Jpg, 186.00 KB, 1280×960 - Click the image to expand
edit Find source with google Find source with iqdb
v810Minvx-g.jpg
Чтоб отдельный тред не создавать.

Нужно распарсить некое расписание в формате XML, которого могут быть 2 варианта.
Сделать это надо на Java, в которой я не слишком хорошо ориентируюсь и вообще с XML работаю впервые.
Пока хочу хотя бы вывести это на экран, да забить значения в соответствующие переменные. По хорошему все это должно добавлятся в БД, но позже, с этим бы разобраться.

Структура документа будет такая:

<data>

	<week id = "0">
		<day id = "0" DayName = "Понедельник" ShortDayName = "Пн.">
			<task id="0" time = "8:00" endTime = "9:30">
				<title1> текст1 </title1>
				<title2> текст2 </title2>
					...
			</task>
			<task id="1" time = "9:45" endTime = "11:15">
					...
			</task>
		</day>
	</week>
	
	<week id = "1">
		...
	</week>

</data>
Пока пытаюсь разобраться с DOM, но не слишком успешно, например - как получить значения DayName? И вообще, оптимальную ли я для этого выбрал структуру документа, и что тут лучше использовать - DOM или SAX?
>> No.34813 Reply
>>34812
http://pastebin.com/6R89HTt0 вот так сейчас делаю, но, очевидно, это оче криво.
Кстати, документ довольно большой будет - в каждом теге day до 7 значений, а в каждом task до 5.
>> No.34816 Reply
	char* tmp = malloc(sizeof(tmp));
	tmp = argv[1];
	(*p).baud = atoi(&tmp);
	free(&tmp);
windows:
Debug assertion failed!!1 
Мм. Странно. Будто бы указатель не является типом.
>> No.34817 Reply
>>34813
> в каждом теге day до 7 значений, а в каждом task до 5.
> документ довольно большой будет
итого в год 356*7*5 = 12775
Плюс прочая лабуда, итого около 20к строк. Это разве много? Да оно же уместится в пару мегабайт.
>> No.34818 Reply
А еще у меня успел появится такой настройко-код.
Ты только погляди на эту мерзость:
	if (argc <= ARGS) { return 1; }
	// [...]
	p->baud = *argv[1];
	p->data = *argv[2];
	p->parity = *argv[3];
	p->stop = *argv[4];
	p->flow = *argv[5];
	p->status = *argv[6];
	p->dtr = *argv[7];
	p->rts = *argv[8];
Как упростить?
>> No.34821 Reply
>>34817
Хм. Уместится, действительно.
Однако как его парсить - понятнее не стало.
>> No.34822 Reply
>>34816
> char* tmp = malloc(sizeof(tmp));
> tmp = argv[1];
Тут ты присваиваешь указателю сначала одно значение (адрес только что выделенной памяти), потом другое.
> free(&tmp);
Тут у тебя и валится, т.к. &tmp - адрес переменной tmp.

Изучаешь си методом тыка? Бестолковое занятие.
>> No.34823 Reply
>>34818
У тебя каждая настройка описывается одним символом? Можно сделать union из массива восьми char и твоей структуры. Тогда сможешь в цикле заполнить массив, а потом через поля структуры обращаться к конкретным значениям.
>> No.34825 Reply
File: puredyne-puredata-gem-gridflow.png
Png, 441.46 KB, 1152×864 - Click the image to expand
edit Find source with google Find source with iqdb
puredyne-puredata-gem-gridflow.png
Что может значить такая конструкция на С:
return (void *)x; ?
Встретил её здесь:
http://pdstatic.iem.at/externals-HOWTO/node3.html (как сделать хеловорд в виде примитива для пакета Pure Data)
Может быть это для проверки какого-то условия, хотя я не уверен.
Если кто вдруг начнёт читать код целиком, то не забывайте, что описание инклуда m_pd.h есть в том же мануале, без него ничего не понять:
http://pdstatic.iem.at/externals-HOWTO/node8.html
http://pdstatic.iem.at/externals-HOWTO/node9.html
>> No.34826 Reply
>>34825
Не нужно быть богом, чтобы ответить на этот вопрос.
> return (void *)x;
Трактуем содержимое x как нетипизированный указатель и возвращаем то, что из этого получилось.
>> No.34827 Reply
>>34826
   Можно поподробнее, куда он указывает, что он делает в коде? Я не знаю С вообще, и мне пока сложнее этого хеловорда и не надо.
>> No.34830 Reply
File: a7f2a0ac384b28ff9e8a12f70ae822a7.jpg
Jpg, 309.93 KB, 1600×2260 - Click the image to expand
edit Find source with google Find source with iqdb
a7f2a0ac384b28ff9e8a12f70ae822a7.jpg
Бида! Кое-когда кое-с-кем на кое-что поспорил и теперь я торчу программу по математической статистике на Фортране, на самом чёртовом Фортране. Из предварительного багажа знания Бейсика, Паскаля, Дельфи и чёткое осознание того, что я крупно влип. Что делать?
>> No.34831 Reply
>>34830
1. Ударь себя по яйцам, у тебя всё равно их нет.
2. http://пиши-код-блять.рф/
3. ...
4. PROFIT!!!
>> No.34832 Reply
>>34827
бамп
>> No.34833 Reply
>>34831
Во-первых, спасибо за ответ, а во-вторых, ты лучше литературой поделись, и какой из Фортранов лучше подходит для задач "пара формул и ни шагу в сторону"?
>> No.34834 Reply
>>34833
Любой без операторов перехода.
>> No.34836 Reply
>>34830
Согласно моему бате, фортран очень простой. Наберись смелости, бро!
Тебе всего-то следует отвыкнуть от C-like языков.
>> No.34837 Reply
File: 98806a55cabb8bfd58473c7001a7836c_1373976823.jpg
Jpg, 32.52 KB, 360×360 - Click the image to expand
edit Find source with google Find source with iqdb
98806a55cabb8bfd58473c7001a7836c_1373976823.jpg
Теперь я знаю, что становится с людьми, которые обучались в высших учебных заведениях.
>> No.34840 Reply
>>34827
> Можно поподробнее, куда он указывает, что он делает в коде?
Неизвестно неизвестно.

Возвращает значение, которое держит указатель. То есть адрес в памяти. Но не значение типа, который назначен твоему адресу. И не адрес себя.
>> No.34843 Reply
>>34840
Ну вот весь код программы, из него это непонятно?
#include "m_pd.h"

static t_class *helloworld_class;

typedef struct _helloworld {
  t_object  x_obj;
} t_helloworld;

void helloworld_bang(t_helloworld *x)
{
  post("Hello world !!");
}

void *helloworld_new(void)
{
  t_helloworld *x = (t_helloworld *)pd_new(helloworld_class);

  return (void *)x;
}

void helloworld_setup(void) {
  helloworld_class = class_new(gensym("helloworld"),
        (t_newmethod)helloworld_new,
        0, sizeof(t_helloworld),
        CLASS_DEFAULT, 0);
  class_addbang(helloworld_class, helloworld_bang);
}
>> No.34844 Reply
>>34843
void *helloworld_new(void)
{
  t_helloworld *x = (t_helloworld *)pd_new(helloworld_class);
  return (void *)x;
}
Вероятно, это аналог конструктора из ООП-языков, но по исполнению больше похоже на фабрику. Отнесись к этому так (код на C#):
object CreateNewHelloWorld()
{
    HelloWorld x = new HelloWorld();
    return (object)x; // object - это самый-самый базовый тип в C#, от которого наследуются все классы
}
>> No.34846 Reply
Есть ли способы перманентно заставить Visual Studio 12/13 оканчивать строки через LF а не CRLF?
Знаю, есть "дополнительные параметры сохранения", но мне надоело каждый раз в них лезть, когда я хочу hg commit && hg push.
В настройках, хотя их там тонна - не нашел.

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

Хотя тогда и сюда, наверное, мало смысла жаловатся.
>> No.34849 Reply
>>34844
Я не знаю шарпа, можешь сказать что она делает на человеческом языке?
>> No.34850 Reply
>>34849
Почитай, что такое указатели, типизированные и нетипизированные.
>> No.34851 Reply
>>34849
Возвращает новый псевдотип. Почему псевдо? >>34850.
>> No.34859 Reply
File: 2011af77213cd15b4c7cab20579fcdff.jpg
Jpg, 234.51 KB, 1472×1128 - Click the image to expand
edit Find source with google Find source with iqdb
2011af77213cd15b4c7cab20579fcdff.jpg
>>34834>>34836
Спасибо большое! Уже потихоньку осваиваю. Столько вышмата...
>> No.34861 Reply
File: 7bc4b778c684e3644...
Jpg, 429.25 KB, 745×1024
edit Find source with google Find source with iqdb
7bc4b778c684e3644fd575224faa8e30.jpg
File: 5eYOwn02qt4.jpg
Jpg, 80.84 KB, 640×480
edit Find source with google Find source with iqdb
5eYOwn02qt4.jpg
File: 2011-07-31-426260...
Png, 294.20 KB, 600×600
edit Find source with google Find source with iqdb
2011-07-31-426260.png

Решил не создавать новый тред, спрошу здесь.
Анон, решил попробовать себя в школьной олимпиаде по ИКТ. Посоветуй годных книг для подготовки. Больше всего интересует алгоритмизация. Но ещё на всякий случай такие темы: технологии хранения, поиска и сортировки информации, телекоммуникационные технологии, операционные системы, кодирование информации и системы счисления, основы логики. С меня няшки.
>> No.34865 Reply
File: 1316794469948.jpg
Jpg, 409.56 KB, 1200×900 - Click the image to expand
edit Find source with google Find source with iqdb
1316794469948.jpg
Анон, молю помощи.
Не мог бы ты проверить мой быдлокод и что-нибудь подсказать по этому поводу если всё совсем зафейлено?
Задача звучала так: требуется, используя оператор цикла, вычислить значение выражения:(1-1/2^2)*(1-1/3^2)....(1-1/n^2), при n>2.
И вот что у меня вышло

#include<stdafx.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main() {
   int n, i;
   double result = 1;
   printf("enter n: ");
   scanf_s("%d", &n);
   if(n > 2)
   for(i = 1; i < n + 1; i++)
   result *= 1.0 - (1.0 / pow((double)(i + 1), 2));
   printf("result = %.10lf", result);
   _getch();
   return 0;
   }
>> No.34868 Reply
>>34865
Скобки вокруг 1.0/... лишние, смотри приоритет операторов. Для n<=2 я бы вывел соответствующее сообщение, а не просто левый результат.
>> No.34870 Reply
File: А.-Шень-Программирование.-Теоремы-и-задачи.pdf
Pdf, 2.13 KB, 842×595 - Click the image to get file
А.-Шень-Программирование.-Теоремы-и-задачи.pdf
>>34861
Не знаю твоего уровня, может будет слишком просто. Задачи + куча алгоритмических основ, как минимум в виде слов которые можно потом гуглить. Первые главы наверно можно скипнуть. Можно читать всяких Ахо, Кнутов, другие книги про "алгоритмы и структуры данных"
с:проверка прости
>> No.34871 Reply
>>34868
Спасибо тебе, няша.
>> No.34872 Reply
Это, наверное, можно оправдать внутренней архитектурой языка, но...
	if (*argv[1] != '0') {
		FILE* f;
		f = fopen("output.txt", "a");
	}

//    [...]
		if (*argv[1] == '0') {
			printf("\nData: \n");
			printf(&data);
			printf("\n\nError: ");
			printf("%x", err);
		} else if (*argv[1] != '0') {
			fprintf(f, (&data));
		}
//  [...]
	if (*argv[1] != '0') { fclose(&f); }
Выдается ошибка компиляции там, где условиями проверяю вообще наличие f. fclose(&f) и fprintf(f, (&data));
Пока что я обхожу так:
	FILE* f;
	if (*argv[1] != '0') {
		f = fopen("output.txt", "a");
	}
>> No.34873 Reply
>>34872
&f имеет тип FILE**, flose принимает FILE*. Блджад, как вы вообще умудряетесь такие ошибки делать.
>> No.34896 Reply
File: 19a28bc589fb579de231ad82c9837b8d.jpg
Jpg, 703.46 KB, 1674×1036 - Click the image to expand
edit Find source with google Find source with iqdb
19a28bc589fb579de231ad82c9837b8d.jpg
>>34870
Спасибо, няша. Довольно интересно.
>>34861
Реквест в силе.
>> No.34897 Reply
>>34873
Хм. Зачем fopen-у возвращать указатель?
>> No.34898 Reply
>>34896
В настоящее время упарываю Гудмана и Хидетниеми "Введение в разработку и анализ алгоритмов" хотя и делаю это просто потому что нечем занять себя в автобусе и прочем оффлайне.
Сперва тебя встретит классическая задача коммивояжера, на первый взгляд она тебя может испугать, особенно если ты начнешь думать над решением до того как его повествуют как алгоритм ETS но в ее изначальной сложности для неподготовленного ума и суть. Мне понравился практический подход к построению задачи и подзадач, который описывается в первой же главе на первых же страницах - суть его в простом задавании дополнительных вопросов. Еще вроде в первой же главе описывается различие методов "сверху вниз" и "снизу вверх". Первый - уточняет задачи алгоритма пока не выйдет точная реализация, второй же работает на эвристике и каше в голове программиста.

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

Не могу сказать что книга хороша, ибо для этого придется тратить время на другие книги. Как, тащемта, и в случае с языками. enwiki://Paul_Graham_(computer_programmer)#Blub
Но читать и усваивать можно, кое где мысленно корректируя и дополняя авторов.
>> No.34900 Reply
>>34897
Чтобы тебе не писать повсюду &, очевидно же.
>> No.34911 Reply
File: f4ZOHJcoweQ.jpg
Jpg, 38.96 KB, 305×373 - Click the image to expand
edit Find source with google Find source with iqdb
f4ZOHJcoweQ.jpg
Посоветуйте, каким образом и с помощью чего легче всего организовать следующие операции:
- Поиск в директории, где запущена программа, папок, название которых заканчивается определёнными символами.
- Копирование файлов с изменённым именем в новую папку.

Знаю синтаксис паскаля, С++, PHP, но с каталогами никогда не работал.
Полез разбираться, как это организовать через C++, но всё выглядит слишком запутанно.
>> No.34914 Reply
>>34911
Возьми любой скриптовый язык и не мучайся.
>> No.34915 Reply
>>34911
Очевиднопитон.
>> No.34918 Reply
>>34911
Perl
>> No.34920 Reply
	char* names[] = {
		"Alan", "Frank", "Mary",
		"John", "Lisa" };
Поясни, почему для массива строк нужно всего лишь сделать указатель на массив символов?
Почему нельзя сделать как-то так?:
	char names[][] = {
		"Alan", "Frank", "Mary",
		"John", "Lisa" };
>> No.34921 Reply
>>34920
Можно, если фигурных скобочек попобольше насыпать, и не забудь каждую букву в одинарные кавычки взять!
>> No.34922 Reply
Требуется создать программу на Delphi. Прога должна тестировать пользователя по английскому языку. Должна быть возможность вставки озвучки слова и видео аудирование как бы, относящихся к тестированию.
До данного момента учил паскаль. Знаю базовые операторы, метки, составление типов, функций и процедур, вычисление по рекурсии.
Прогу надо сделать за полгода.
Реально ли это для меня и какую литературу нужно читать, чтобы суметь это написать?\
>> No.34923 Reply
>>34920
> char* names[]
Не указатель на массив, а массив из указателей.
>> No.34924 Reply
>>34922
Реально.
>> No.34931 Reply
>>34920
> Почему нельзя сделать как-то так?
Потому что прочитай уже K&R. А то ты так никогда не сможешь понять суть объявлений.
>> No.34935 Reply
>>34924
Вроде же дельфи и паскаль - это те же яйца, только в профиль.
Но я никогда не работал ещё с графическим интерфейсом, с внешними файлами тоже, и даже не знаю, в какой среде лучше будет это делать на дельфи. Какие мануалы мне надо курить?
>> No.35007 Reply
Зачем WINAPI-функциям вроде ReadFile нужен размер буфера, если они могут, зная адрес массива, получить его через sizeof?
>> No.35008 Reply
>>35007
Получи мне размер динамически созданного массива в рамках стандарта.
>> No.35010 Reply
File: 1364424139510.png
Png, 0.85 KB, 300×20 - Click the image to expand
edit Find source with google Find source with iqdb
1364424139510.png
>>35007
sizeof(PVOID) даёт четыре байта. ЧЯДНТ?
>> No.35016 Reply
Здравствуй, программач. Собираюсь писать диплом на джаве. В нем будет матан и тридэ. Собственно, у меня несколько вопросов:
   *На какой библиотеке лучше делать триде? На j3d или JOGL? Графон будет неказистый - скайбокс коробка или сфера, а в нем летает кучка спрайтов, в далеком будущем - простеньких моделек.
   *Давно не писал на джаве, надо подтянуть навык и выучить много нового. желательно чтобы было в интерактивной форме - аналог codeacademy или видеоуроки - но можно и литературу с туториалами. В частности нужны подробности именно про создание 3D окружения и наполнения его.
   *Бонус-вопрос - какой IDE самый лучший? На нетбинсе я работал только на первом курсе, это было уже давно. На Intellij IDEA работал относительно недавно, когда была работа, он мне в целом удобен и нравится, но почему-то то и дело подлагивает и задумывается. Эклипс легкий и простенький, но почему-то создается ощущение, что он слишком простой, урезанный -особенно после Идеи.
>> No.35018 Reply
File: vQpmMgpQJBY.jpg
Jpg, 767.19 KB, 2560×1920 - Click the image to expand
edit Find source with google Find source with iqdb
vQpmMgpQJBY.jpg
Сап, анон, мне очень нужна твоя помощь. Я студент, 1 курс.
Мне единственному из всей группы на курсовую дали задание на С++. Уже неделю пилю прогу. Препод троллит постоянными упсами, если найдет какой нибудь косяк. Последним был тот, что у меня не используются поля unsigned long. начал переделывать, ничего не вышло.
По ссылке исходники двух прог: первая это говно, на котором я застопорился, где не использовались поля, а вторая это новый вариант через битсет, но там тоже хуйня выходит. Такие дела, анон.
http://rghost.ru/49702146
>> No.35019 Reply
>>35016
> На какой библиотеке лучше делать триде?
Можешь еще попробовать jMonkey
> какой IDE самый лучший?
холиварный вопрос юзаю идею, не понимаю как люди пользуются нетбинсами/эклипсами, алсо у меня она вообще не лагает.
>> No.35020 Reply
>>35018
У тебя Virus.Win32.Pioneer.br в архиве.
>> No.35021 Reply
>>35018
> MyMadness2/ipch/mymadness2-bd6af55d/mymadness2-f877aa4f.ipch 59.9 MB
И тут я проиграл. Хоть бы проект почистил, перед тем как архивировать. А лучше выложи только cpp и h файлы, один фиг ты никаких настроек проекта не менял, я уверен.
>> No.35046 Reply
File: -20.-izm-(2).pas
Pas, 0.00 KB, 0 lines - Click the image to get file
view edit
-20.-izm-(2).pas
Опять первокурсота с паскалем итт.
Имеется программа в которой задаётся перестановка длины n и выдаются все её перестановки длины k в лексико-графическом порядке.
Моя программа работает только с целочисленными значениями. Требуется переделать так, чтобы она могла делать перестановки в лексико-графическом порядке с данными типа char или string единичной длины.
Это, кажется, последняя лаба за этот семестр. Если получится её так доделать, то автоматом зачёт должен быть.
Хотя бы подскажите, в какую сторону копать, а дальше могу и сам додумать.
>> No.35047 Reply
>>35046
1)объединяешь n символов в строку s
2)дальше делаешь перестановки чисел 1..n
3)когда надо вернуть результат берешь полученный набор цифр p и возвращаешь s[p[1]],s[p[2]]..s[p[n]]
>> No.35048 Reply
>>35047
Ёп... Точно же.
Спасибо большое.
>> No.35049 Reply
>>35016
Что, больше никто не может ничего ответить? Тут так мало программистов на джаве, пользующих 3D? Куда же мне идти теперь, где спрашивать советов, раз Доброчановский /s/ пустует, а в гугле информация в основном устаревшая?
>> No.35050 Reply
>>35049
Теоретически можно на гамедев.ру, но там крестовики любят набегать.
>> No.35051 Reply
>>35049
Ищи сам.
Твой вопрос похож на вопрос "Какой ЯП учить?"
Я могу лишь для того чтобы облегчить тебе сбор информации ответить тебе не сравнением x и y, а кинуть вероятности того, какой язык бы я тебе предложил.

А еще я могу тебя справедливо назвать быдлом. Ведь оно является собой сугубо благодаря своей наивности, несознательности и конформизму, присваиванию права решать большинству.

Ну и да. По собственной небольшой традиции, подвергаю тебя своему презрению. http://соснули.рф
>> No.35052 Reply
>>35051
Да ты же долбоёб.
>> No.35053 Reply
>>35052
То есть, моя левая рука - долба?
>> No.35054 Reply
>>35053
Именно.
>> No.35055 Reply
>>35054
Но ведь я дрочу правой.
>> No.35056 Reply
>>35055
И чо?
>> No.35057 Reply
>>35051
> соснули.рф
И в каком ЯП есть всё перечисленное?
>> No.35059 Reply
>>35051
> Твой вопрос похож на вопрос "Какой ЯП учить?"
Я знаю на каком языке я буду писать.
> присваиванию права решать большинству.
У этого большинства которое, я наивно полагал, более осведомленное и не против делиться знаниями и опытом я лишь просил совета и посильной помощи.
> По собственной небольшой традиции
Спасибо, теперь я уяснил что в доброчановский /s/ ни ногой. Напоминаете сосачевский /mu/.
>> No.35060 Reply
>>35057
В С# конечно же.
>> No.35062 Reply
>>35060
В языке для клепания формочек? Вот это фейл.
>> No.35063 Reply
>>35059
> Спасибо, теперь я уяснил что в доброчановский /s/ ни ногой.
Извини. Я не хотел. Честно.
Да и как узнать, поддерживали ли меня остальные доброчаньки? Никак.
>> No.35113 Reply
File: 1360470322125.jpg
Jpg, 94.26 KB, 800×833 - Click the image to expand
edit Find source with google Find source with iqdb
1360470322125.jpg
А как вы кооперируетесь для удалённых совместных проектов? Допустим система управления версиями на github, а где идёт обсуждение? Тут ведь много ньюансов, бывает нужен лог беседы(а в нём в свою очередь иногда хочется какие-то части, например многословное тупление, чтобы легче было потом читать), бывает нужно выставить на обозрение информацию, отличную от текстовой.
Вот например к проекту на гитхабе подключается вики, и она всё это может, но там нет возможности подписаться, да и не в реальном времени это. Когда-то Google разрабатывал проект Wave, он всё это мог, но не взлетел. А что сейчас может выполнять все эти функции?
>> No.35114 Reply
>>35113
Конфочка в жабере/скайпе/гугле.
>> No.35115 Reply
>>35114
> жабере
очевидное, но есть недостатки: нередактируемость и неперманентность хранения логов, только текст, ни прикрепления документов тебе, ни картинок, жаберные сервера часто падают.
>скайпе
>гугле
все мы делаем это, но может иногда лучше скрывать пристрастие к копрофагии?
>> No.35116 Reply
>>35115
> лучше скрывать пристрастие
На google.groups и code вообще-то много сидит разработчиков.
> нередактируемость и неперманентность хранения логов, только текст, ни прикрепления документов тебе, ни картинок, жаберные сервера часто падают
Здесь ты прав, лучше vk.com ничего лучше до сих пор не придумали.
>> No.35117 Reply
File: лол и правда ведь.png
Png, 176.07 KB, 388×242 - Click the image to expand
edit Find source with google Find source with iqdb
лол и правда ведь.png
>>35116
> ничего лучше vk.com до сих пор не придумали.
а всё почему? безблагодатность?
>> No.35118 Reply
>>35115
> жаберные сервера часто падают
Может просто хватит сидеть на жабир.ру?
>> No.35119 Reply
>>35117
Потому что молодые россияне — активные пользователи сети Интернет. Если предыдущее поколение не убьёт весь запал нового поколения, то мы многое сможем изменить вместе.
>> No.35121 Reply
>>35118
А лучше свой поднять.
>> No.35130 Reply
>>35121
Разве что на роутере с dd-wrt.
>> No.35137 Reply
>>35113
Gobby
>> No.35148 Reply
File: 1350335008044.png
Png, 0.77 KB, 300×20 - Click the image to expand
edit Find source with google Find source with iqdb
1350335008044.png
Есть некоторый опыт быдлокодерства на VB.NET. Посоветуйте, plz, что почитать, чтобы побыстрее начать быдлокодить на жабе под Android.
>> No.35150 Reply
Доброанон, у меня бомбит.
const int mode = Int32.Parse(args[1]);
The expression being assigned to 'mode' must be constant

Гуглим, натыкаемся на следующий вопрос: http://stackoverflow.com/questions/7348404/expression-beeing-assigned-[...]it-is
Ок, дописываем:
private readonly static int mode = Int32.Parse(args[1]);
Получаем:
Error 1 Invalid expression term 'private'
Error 2 The modifier 'readonly' is not valid for this item
Error 3 ; expected
Error 4 } expected
Error 5 Invalid token 'if' in class, struct, or interface member declaration
Error 6 Invalid token '==' in class, struct, or interface member declaration

Метод с get тоже не работает. Суть проблемы совершенно не ясна.

Как эти долбоебы умудрились сделать интерпретируемый язык не для железоблизкой работы таким кривым?
Пишу и плююсь, а выбора нет, ибо капитализм.
>> No.35151 Reply
>>35150
Одиночный кейворд "static" тоже не работает:
Error 1 The modifier 'static' is not valid for this item
>> No.35153 Reply
>>35150
readonly int mode = Int32.Parse(args[1]);
>> No.35154 Reply
>> No.35189 Reply
>>35150
pastebin.com/5Pz3ACvg
>> No.35247 Reply
Доброанон, почему мне так страшно тестировать и отлаживать собственный код, если его очень много, он сложен, а я не уверен в корректности реализации некоторых внутренних моментов?
Есть ли у тебя подобное? Как бороться?

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

Особенно дает о себе знать в компилируемых ЯП типа си, где нет интерактивного питоноподобного шелла и прочих вкусняшек.
>> No.35248 Reply
>>35247
Потому что ты не используешь юнит-тесты, очевидно же. Они быстро и наглядно дадут тебе знать, всё ли работает так, как задумано, и не сломал ли ты чего-то при рефакторинге. Почитай Кента Бека, создателя и главного сторонника разработки через тестирование - он пишет как раз о твоём случае: http://lib.rus.ec/b/248488
>> No.35251 Reply
>>35247
Пользуйся assert для проверки пред- и постусловий, не стесняйся выводить много дебаг-информации, и верно говорят про TDD >>35248

Вообще по твоему вопросу кажется, будто у тебя огромные функции, в которых тебе же самому и сложно разобраться. Когда декомпозицию делал, то у тебя ведь получались маленькие цели, которые ты решал? Вот следи за корректностью этих маленьких решений для начала.
>> No.35328 Reply
File: with-null-termina...
Png, 46.29 KB, 1096×589
edit Find source with google Find source with iqdb
with-null-terminator.png
File: without-null-term...
Png, 32.10 KB, 751×569
edit Find source with google Find source with iqdb
without-null-terminator.png

В моем коде опять какая-то глупая ошибка. Сам прозреть не могу.

1. Всю строку пустотой инициализирует.
1.1. Снизу по оффсету какая-то страннота. Возможно, это адреса чего-то. Ну или машкоды с примесью адресов.
2. Если поставить нулевой терминатор там, где должен быть последний символ в строке - падает.
Сверху стоит #define ARRAYSIZE 1000, если что.
>> No.35329 Reply
>>35328
> инициализирует
не инициализирует*
>> No.35330 Reply
>>35328
Погоди, у тебя что, компилятор ничего не сказал на вот этот foo[i] = " " пиздец?
Осло, последний элемент массива имеет индекс size - 1, а не size.
>> No.35331 Reply
>>35328
У тебя во втором printf стоит %s при формате данных short.
http://www.cplusplus.com/reference/cstdio/printf/
>> No.35332 Reply
>>35330
> этот foo[i] = " " пиздец
А что он должен был сказать? Подумаешь, пользователь захотел вносить пустую строку в каждый элемент массива, зачем компилятору паниковать?
>> No.35333 Reply
>>35332
Ха-ха. Это си, детка, здесь пользователь — никто. Алсо, значение char-а присваевается в одинарных скобках (char a = 'x')
>> No.35334 Reply
>>35333
> Алсо, значение char-а присваевается в одинарных скобках (char a = 'x')
Всего лишь как вариант, принципиальной разницы между кавычками нет.
>> No.35335 Reply
>>35331
Ерунду же сказал, он обычную char'овскую строку выводит. Просто заполнил её фигнёй.
>>35332
Не строку, а указатель на неё. Такое преобразование не должно проходить автоматически, хотя хрен знает как пюре с этим.
>> No.35336 Reply
>>35334
Ебать ты наркоман.
>> No.35337 Reply
>>35330
> Погоди, у тебя что, компилятор ничего не сказал на вот этот foo[i] = " " пиздец?
Сперва подумал что забыл точку с запятой, потянул руку к лицу.
Но затем увидел, что она на месте.
Что неправильно?
> Осло, последний элемент массива имеет индекс size - 1, а не size.
Это-то в случае если массив был объявлен как array[size]?
Нет, номер элемента в этом синтаксисе уже подразумевает присутствие нуля, а значит незачем делать инициализацию особенной, и в учебнике который я энивей читал давно я такого не припомню.

>>35334
И все же так корректней, да и какое-нибудь криводополнение даст о себе знать не багом, а ошибкой в синтаксисе. Все он правильно говорит.

>>35331
Погляжу на это.
>> No.35338 Reply
>>35337
> ошибкой в синтаксисе
в случае если я ничего не запамятовал и в ординарные кавычки можно совать только один элемент
>> No.35339 Reply
>>35337
> Что неправильно?
То, что "" - это строковая константа, а не символ.
> Нет, номер элемента в этом синтаксисе уже подразумевает присутствие нуля, а значит незачем делать инициализацию особенной, и в учебнике который я энивей читал давно я такого не припомню.
Жопой пост читаешь? Я про обращение к элементам массива, а не про инициализацию. Энивей, перечитай свой учебник.
>> No.35340 Reply
>>35339
> Жопой пост читаешь? Я про обращение к элементам массива, а не про инициализацию.
Ах, ну да. Ты наверное думаешь, что так лучше:
#define ARRAYSIZE 10
// [...]
size = ARRAYSIZE + 1;
array[ARRAYSIZE];
somefunctionthatusessize(array, size);
Лишняя переменная-с.
> То, что "" - это строковая константа, а не символ.
Инфа о том, чем нечто является в представлении писателей компиляторов, не всегда полезна для программиста. Не могу вынести какой-то вывод. Может я тупой, а может ты. А может мы оба.
>> No.35341 Reply
>>35340
Чертовы питоновы привычки, типы объявить до "size = " и "array" забыл.
>> No.35342 Reply
>>35340
Тупой тут ты. У тебя в падающем варианте обращение к байту, который находится вне выделенной памяти.
> Инфа о том, чем нечто является в представлении писателей компиляторов, не всегда полезна для программиста
Пиздуй в свой питон, раз не можешь в статическую типизацию.
>> No.35344 Reply
>>35342
Никакой внимательности или знаний, а так заносчиво грубишь. Нульчер?
Глянь на его скрины. В той туче символов после "foo init-zed" посмотри на последние 11 символов. Почему все они совпадают с теми что на "foo noninit-zed"?
>> No.35345 Reply
>>35344
Ибо нефиг считать, что, изучив один язык, становишься гуру во всех остальных.
> Почему все они совпадают с теми что на "foo noninit-zed"?
Потому что они за пределами выделенной памяти? Мне не интересно гадать по кракозябрам.
>> No.35346 Reply
File: feel-the-difference.png
Png, 28.32 KB, 1063×371 - Click the image to expand
edit Find source with google Find source with iqdb
feel-the-difference.png
Дебаггер говорит, что проблема в выводе. Ну или мой код влюбился в дебаггер и хочет чтобы я его дебажил дебаггером.
>> No.35349 Reply
>>35346
Няша, я даже не знаю, откуда начать. Наверное, начнём со строк. Итак, строк не существует. Строка - это такая штука, которая удобна программисту, поэтому язык С даёт некие средства для работы с ними. На самом деле, строка - последовательность байт, которая оканчивается нулевым символом. Но вот ведь беда, программист (или пользователь) может ввести строку любой длины, хоть тысячу байт, хоть полторы, хоть мегабайт, или даже намного больше. Как же языку С справляться с такими длинными строками, ведь не существует процессора с регистрами размером в пару гигабайт? Дениска придумал (а, может быть, это и до него было) использовать указатели. То есть, строка - это адрес памяти, по которому содержаться байты строки. Таким образом, стало возможно передавать строки в процедуры и обратно, пользуясь всего лишь коротким указателем. И посыпал Денис массивы сахаром, и стали строки определяться через заключение символов в двойные кавычки - "это строка".
Но тут возникла проблема, ведь строки надо где-то хранить, а значит, выделять память, для строк надо делать процедуры сравнения и т.д.. А ведь нам не всегда нужны строки, иногда нужно просто проверить, не начинается ли, например, строка с какого-нибудь символа, или, может быть, заканчивается им. Ведь если делать процедуры startwith, endswith и так далее, то стандартная библиотека очень сильно разрастётся. Да и нет нам нужды вызывать тяжёлую функцию для выделения памяти, если у нас "строка" всего лишь из одного символа. Так же думали и программисты и делали они сравнения элементов строки с числами if(str[0] == 42), что означало - "если первый символ строки - это значок с кодом 42, то есть, знак умножения (звездочка ­), то делать то и то". Это было неудобно, нечитаемо и плохо. И снова пришёл Дениска на помощь программистам, и посыпал байты сахаром, и постановил: один символ можно заключить в одинарные кавычки, тогда он будет трактоваться как символ, а не строка. И возрадовались программисты, потому что можно стало писать if(str[0]>='a' && str[0]<='z') /­­строка начинается с маленькой буквы­*­/;. И не было тут создания строк и оверхеда, зато и нельзя было этими символами манипулировать как строками, но это было и не нужно.
Теперь, собственно, к тому, что у тебя происходит. Когда ты делаешь for(int i=0; i<ARRAYSIZE; i++) { foo[i] = " " }, ты говоришь компилятору: создай строку, которая будет состоять из одного символа пробела " ", и помести эту строку в массив, и делай это много много раз. Что делает компилятор: поскольку он не дурак и видит, что строка-то одна и не меняется, он создаёт в секции данных всего одну строку. Далее, если ты помнишь, строки - указатели, поэтому "помести строку в массив" для компилятора означает "помести в массив указатель на строку", что он и делает. Он очень хочет тебе сказать, что помещать четыре байта (это размер указателя (ох, вейт, у тебя 64бита - тогда восемь байт)) в массив, один элемент которого имеет размер один байт, - это не очень хорошая идея, но слишком стесняется; от неуверенности в себе, он считает, что ты лучше него знаешь что делаешь. Да, сишный компилятор очень робкий, его надо подбодрить флагом "Warning level", выставив его значение как можно выше.
А теперь перечитай ту книжку.
>> No.35361 Reply
File: -.JPG
Jpg, 209.33 KB, 993×655 - Click the image to expand
edit Find source with google Find source with iqdb
-.JPG
>>32496
Здравствуй, анон. Я столкнулся с MODX. Вот в чем проблема, мне надо прописать на главной странице гиперссылки на другие ресурсы и на собственный документы, что-то вроде динамического меню, и всё это на полупрозрачном PNG файле. С PHP и HTML дела не имел, а обновить MODX 1.0.2 возможности нет, т.к. предыдущую версию сайта писал не я. Я обычный Ruby и простой сисадмин паяющее-очкастое нечто с апдейтами для БД на флешке, в кармане, а мне сказали, что если это не выполнишь, то ищи другую работу. Помоги, анон, я в отчаянии.
>> No.35364 Reply
>>35349
> А теперь перечитай ту книжку.
Какую?
мимо
>> No.35366 Reply
>>35361
> ищи другую работу
This.
>> No.35367 Reply
>>35361
Неужто ты настолько безрукий, что боишься потерять работу с такими охуительными требованиями? Не верю.
>> No.35371 Reply
>>35361
Ты - первый сисадмин на моей памяти, который не знает HTML и не может предположить синтаксиса php на основе опыта с другими ЯП. Что говорит о том что ты плохой рубист, няша.

Гиперссылки?
<a href="http://dobrochan.com/s/res/32496.xhtml">>>32496</a> == >>32496
Элементарно же. А вообще, изучая быдловебкодинг, советую использовать инспектор правой кнопкой на любой херне зови контекстное меню в браузере и смотреть им чужие коды.

У vk, кстати, интересные js, еще и неминифицированные.
>> No.35372 Reply
>>35371
Подозреваю, >> нужно было написать как \>\>, но лень проверять.
>> No.35373 Reply
>>35361
Альзо, долго ли ты искал такую работу?
>> No.35374 Reply
>>35372
&gt; и &lt; же, слеши только внутри строк обрабатываются как спецсимволы.
>> No.35377 Reply
>>35361
Аноны, ничего, что я подобным образом организовал решение? Криво, но работает.
<table style="width: 25%; float: left" align="right" class="style1">    <tr>    <td class="style2">111111111111111111111111</td>    </tr>    <tr>    <td class="style2">1111111111111111111111111111</td>    </tr>    <tr>    <td class="style2">11111111111111111111111111</td>    </tr>    <tr>    <td class="style2">11111111111111111111111</td>    </tr>    <tr>    <td class="style2">111111111111111111111</td>    </tr>    <tr>    <td class="style2">1111111111111111111111</td>    </tr>    <tr>    <td class="style2">11111111111111111111111111111111</td>    </tr> </table>
>> No.35378 Reply
>>35377
> Криво, но работает.
Сам спросил, сам ответил.
В кривоте и незнании нет ничего плохого, пока это не начнет смотреть кто-то другой. Как ты относишься к этому обобщению, так и к своей разметке.

Алсо, ищи редакторы, которые пишут в html как libreoffice в odt. Можешь пилить в нем такие куски кода. Помню, у macromedia был один, но забыл название.
>> No.35387 Reply
>>35378
Dreamweaver
>> No.36115 Reply
Аноны, кто-то шарит в программировании арифметических операций в системе команд микропроцессора?
Я за ништяки половине группы делал лабы по языкам и методам программирования, а с архитектурой компьютеров из-за этого отстал.
Тут, в принципе, задание банальное, но теория для этой лабы дана пиздец туго.
К среде надо будет досдать все лабы и всю ту фигню, которую в конце прошлой недели навалили.
В эту неделю вообще придётся не спать, чтобы сдать всё.
Если кто понимает, то помогите, пожалуйста. Может пару часов сна выйдет.
>> No.36116 Reply
File: stark_31149966_big_.jpeg
Jpeg, 63.20 KB, 800×533 - Click the image to expand
edit Find source with google Find source with iqdb
stark_31149966_big_.jpeg
>>36115
Учащиеся...
>> No.36117 Reply
File: AK_lab_3-Izuchenie_mikroprotsessora.zip
Zip, 0.04 KB, 0 files - Click the image to get file
view
AK_lab_3-Izuchenie_mikroprotsessora.zip
>>36115
Лаба отлепилась
>>36116
Ну да. Веселье во все поля.
>> No.36118 Reply
File: Screenshot-from-2013-12-16-21:39:05.png
Png, 268.00 KB, 1280×1002 - Click the image to expand
edit Find source with google Find source with iqdb
Screenshot-from-2013-12-16-21:39:05.png
>>36117
Как же я люблю .doc блять.
>> No.36119 Reply
>>36118
Ну как скинули нам. Преобразовать не могу, ибо в общаге инет через жопу. Софт качаться будет дольше, чем решать эту лабу.
>> No.36120 Reply
File: Screenshot_207.png
Png, 556.21 KB, 552×597 - Click the image to expand
edit Find source with google Find source with iqdb
Screenshot_207.png
>>36118
> открывает док через либру
> жалуется, что либра не в состоянии правильно разграничить текст и рисунки
>> No.36121 Reply
>>36120
Да, анон пойдёт ради студента, который теребит мозг на /s, в шиндошс, чтобы посмотреть эту лабу.
>> No.36122 Reply
>>36121
Нет, но порядочный анон не будет зазря ругать формат, если дело совсем не в нем.
>> No.36123 Reply
>>36122
Нафиг эти монопольные форматы, которые можно только в определённых системах открывать.
>> No.36124 Reply
>>36118
Моя либра открывает. Может обновиться? Алсо, попробуй покрутить масшаб, Ctrl+колёсико. Я знаю, вам, содомитам, ms платит за компрометирование либры.
>> No.36125 Reply
>>36123
Если бы док можно было бы открывать только на виндовсе или только МСО, этого разговора не было бы. Но проблема в либре, хваленой свободной кроссплатформе, в которой криво реализовано чтение дока. Вини разработчиков либры.
>> No.36126 Reply
>>36125
А что ещё годно открывает?
>> No.36127 Reply
>>36126
В смысле кроме МСО. Я что-то пропустил.
>> No.36128 Reply
>>36125
Не надо торопить разработчиков. Реализация поддержки доков не такая уж и тривиальная задача. Нужно просто подождать и они всё сделают. На халяву.
>> No.36129 Reply
Что за чертовщина?
obj\Debug\main.o||In function `read_handler':|
handl.c|15|multiple definition of `read_handler'|
obj\Debug\handl.o:handl.c|15|first defined here|
obj\Debug\main.o||In function `accept_handler':|
handl.c|30|multiple definition of `accept_handler'|
obj\Debug\handl.o:handl.c|30|first defined here|
||=== Build finished: 4 errors, 0 warnings (0 minutes, 0 seconds) ===|

multiple definition. И где же second defined?
Объявлял один раз, поиск ничего не даёт, в опьянении не нахожусь. Что-то делаю не так?
>> No.36130 Reply
>>36129
Эти заголовочные файлы, объявления и определения заставляют меня мощно фрустрировать. Ну почему нельзя было сделать всё проще, как в D или питоне?
>> No.36131 Reply
>>36130
Алсо инклудится handl.c всего лишь один раз. Но даже если бы инклудился дважды - почему оно должно ломатся? Можно просто промолчать и переопределить определение или объявление, если название функции то же самое.
>> No.36132 Reply
>>36122
Разве нет? Отыщи-ка мне спецификации этого формата.

Добро пожаловать в проприетарный софт. Пожалуй, файловые системы - единственный их стандарт, который они не меняли в тот момент когда он был реализован опенсурсно.
Это не увеличивает капитал.
>> No.36133 Reply
>>36131
> Можно просто промолчать
Ты пиздец, просто пиздец. Нет, правда.
>> No.36134 Reply
>>36129
Без исходников трудно что-либо наванговать.
>> No.36135 Reply
>>36130
Почему объявления и определения разделены? Чтобы можно было оглядеть взглядом интерфейс, не смотря, как оно устроено.
>> No.36149 Reply
>>36135
Если кому-то нужно посмотреть интерфейс (или, что более вероятно, показать его другим), то правильнее будет взять тулзу, которая этот самый интерфейс выдерет из исходников. А программист пусть работает программистом, а не машинистом.
>> No.36150 Reply
>>36149
Словно тебя заставляют ручками копипастить объявление.
>> No.36151 Reply
>>36150
В C++ да.
>> No.36152 Reply
>>36151
Так сложно взять тулзу, которая это самое объявление скопипастит?
>> No.36173 Reply
>>36152
1) Ты знаешь такие тулзы? Они вообще существуют для такого ЯП с полной по Тьюрингу системой типов, как C++?
2) То ли я при каждом изменении API запускать какую-то тулзу для высирания инклюдников, то ли я буду выковыривать объявления с помощью другой тулзы при сборке релизной версии (за компанию, вместе с запуском компилятора) — есть разница?
>> No.36174 Reply
>>36173
буду
Самофикс
>> No.36175 Reply
>>36173
В любой современной ide - в менеджере классов пкм на класс - добавить/удалить/переимновать метод. Программирование мышкой во все поля.
Вообще прозреваю в тебе заядлого питониста/жабаскриптера, вечно вы из-за всякой ерунды бугуртите.
>> No.36177 Reply
>>36175
Думаешь, это работает всегда для C++ с его перегрузками, неразрешимыми из-за полноты шаблонов по Тьюрингу?

Алсо, программирование мышкой — самое неэргономичное программирование среди всех. Оно выгоднее только вот именно что для модулей, состоящих из нескольких файлов, и для XML. В той же Java мне уже быстрее наебенить руками piblic Type1<Type2> myMethod(...) {, чем тянуть руку к мышке или вспоминать, какую я там распальцовку назначил на «Add method». Про Haskell я вообще молчу.
>> No.36178 Reply
>>36177
> вспоминать, какую я там распальцовку назначил на «Add method»
Проблема на твоей стороне. Ты же не ищешь каждую буковку на клавиатуре и не записываешь на листочек команды типа ctrl+c, ctrl+v.
>> No.36180 Reply
>>36178
В Яве и Хачкеле мне вообще не надо на это заморачиваться.
>> No.36596 Reply
Я чувствую, что это очень лёшкий вопрос, но всё же. У меня не получается считать float scanf'ом в NASM под Linux. Я пишу что-то вроде
extern scanf format: db "%f",0 a: resd push a push format call scanf add esp, 8 Потом вывожу то же самое число по тому же принципу printf'ом и всегда выводится -0.000000. Как нормально написать? Конпелирую так: nasm -DUNIX -f elf a.asm -o a.o & gcc -m32 -o a.out a.o.
>> No.36597 Reply
>>36596
Как вообще код в разные строки тут писать?
>> No.36598 Reply
>>36597
Пусть так будет:

extern scanf
format: db "%f",0
a: resd 1
push a
push format
call scanf
add esp, 8
>> No.36600 Reply
>>36597
Два апострофа
Код
Два апострофа
http://dobrochan.com/help/wakabamark
>> No.36602 Reply
>>36600
Спасибо, про хэлп-то я и забыл
>>36596
Стоило написать на Доброчан и всё стало ясно: я непраивльно использовал printf. Если в scanf просто передаёшь адрес переменной, то в printf нужно сначала передавать последние 4 байта, потом по 4 байта до первых. Правда, теперь после вывода результата программа выдаёт Segmentation fault, но с этим я уже как-нибудь разберусь.
>> No.36670 Reply
А помогите найти в чём ошибка пожалуйста. Надо узнать, имеются ли в заданном векторе a(n) два ненулевых элемента подряд. В VBA. Вот что у меня получилось:

Sub nulelement()
Dim a(10) As Double
Dim j As Double
j = 1
a(j) = Cells(1, j)
For j = 1 To 9
If a(j) = 0 And a(j + 1) = 0 Then
MsgBox (j)
Else
MsgBox ("-")
End If
Next j
End Sub

Однако "-" я получаю только один раз, первый, независимо от того, какими числами я наполнил ячейки excel. Где я ошибся?
>> No.36671 Reply
>>36670
> a(j) = Cells(1, j)
Что-то мне подсказывет, что это должно быть в цикле.
>> No.36673 Reply
>>36671
Спасибо, анончик, ты гений!
>> No.36674 Reply
>>36671
> If a(j) = 0 And a(j + 1) = 0 Then
А вот эта строка правильна? У меня получилось так, что он каждый ноль находит, а не два подряд.
>> No.36675 Reply
>>36674
Нет, ты ещё не присвоил никакого значения a(j+1).
>> No.36676 Reply
>>36675
А как присвоить a(j+1) значение следующего элемента вектора?
>> No.36677 Reply
>>36676
Например, так:
        Sub nulelement()
        Dim a(10) As Double
        Dim j As Double
        a(1) = Cells(1, 1)
        For j = 1 To 9
            a(j + 1) = Cells(j + 1, 1)
            If a(j) = 0 And a(j + 1) = 0 Then
                MsgBox (j)
            Else
                MsgBox ("-")
            End If
        Next j
        End Sub
А зачем тебе массив? Мог бы просто ячейки сравнивать с нулём.
>> No.36678 Reply
>>36677
По заданию надо работать именно с массивом.
Кажется, я понял в чём ошибка. "a(j+1)" в массиве распознавалась как отдельная переменная. А если работать сразу с ячейками, то можно не задавать переменную. Например, так:
Sub nuli_cells()
 For j = 1 To 9
   If Cells(1, j) = 0 And Cells(1, j + 1) = 0 Then
     MsgBox (j)
   Else
     MsgBox ("-")
   End If
 Next j
End Sub
>> No.36679 Reply
>>36678
Ну да.
Массив a(10) - это 11 переменных: a(0), a(1), a(2), ... a(10).
a(j) - это одна из этих переменных, в зависимости от j. Если j равно 5, то a(j) - это a(5), если j равно 8, то a(j) - это a(8) и т. д.
>> No.36682 Reply
File: Скриншот-2014-01-15-00.42.14.png
Png, 104.53 KB, 1430×707 - Click the image to expand
edit Find source with google Find source with iqdb
Скриншот-2014-01-15-00.42.14.png
А в такого рода задачах, как я понимаю, единственная сложность заключается в математическом определении необходимых участков, а всё остальное делается однотипно и просто, так?
>> No.36683 Reply
>>36682
Эти задачи вообще не программистские. Это простая алгебра.
>> No.36684 Reply
>>36683
Почему же не программистские? Написать программу надо.
>> No.36685 Reply
File: 125708841709269.jpg
Jpg, 165.64 KB, 450×600
Your censorship settings forbid this file.
unrated
JS + jquery и прочая хуита. Слишком уж закручено, чтобы взять нахрапом без знания js, лол.

http://www.freelancer.com/jobs/regions/l-en/1/
По изменению чекбоксов project type результаты обновляются. Как можно запустить это обновление самому?
Алсо, было бы неплохо менять количество результатов в списочке Show.

Нужно для юзерскрипта, поэтому одной строчки с командой достаточно.
>> No.36686 Reply
>>36685
Ивенты jQuery запускаются если вызывать соответствующий метод без параметров, $('#такой-то-чекбокс').change() например.
>> No.36687 Reply
>>36686
Чейндж не надо, надо только обновление списка, которое в его обработчике происходит.
>> No.36732 Reply
File: Sj3V0PWUCPo.jpg
Jpg, 196.91 KB, 1000×1000 - Click the image to expand
edit Find source with google Find source with iqdb
Sj3V0PWUCPo.jpg
Здесь ведь помогают с ерундовыми задачками на паскале?
http://stackoverflow.com/questions/21183975/error-when-getting-words-f[...]-text
>> No.36734 Reply
>>36732
> ссылка на so, где лежит ссылка на пастебин.
Обожаю матрешки.
>> No.36771 Reply
>>36732
В copy третий аргумент не индекс последнего символа, а число копируемых симоволов.
Лучше, конечно, сразу писать без ошибок, но если не умеешь, учись пользоваться дебаггером.
>> No.36777 Reply
>>36684
просто переписать формулку на яп, не более
>> No.36778 Reply
>>36771
Ох лол, хотел ведь исправить. Даже на листке прикидывал, что туда писать.
Спасибо.
Вчера под вечер голова уже была весьма уставшей, вот и проглядел, наверно.
>> No.36781 Reply
>>36684
Если бы задача была "вывести на экран стихотворение в стиле футуризма о Ленине", а программа была бы:
#include "iostream"
int main() {
std::cout << "
Время.
	   Начинаю
	      про Ленина рассказ.
	Но не потому,
	    что горя
	       нету более -
	время
	   потому,
	      что резкая тоска
	стала ясною
	   осознанною болью.
	Время,
	   снова
	     ленинские лозунги развихрь!
" << std::endl; }
То это тоже была бы программистская задача?
>> No.36790 Reply
>>36781
R-18G
нуда ты жи компютерщик!!1
>> No.36805 Reply
Анон, можно мне базку соответствий типа:
Класс задач → наилучший язык, которым он решается?
Например,
Lisp → обучение программированию
>> No.36829 Reply
>>36805

Говно вопрос. Давай классы задач, насчёт языков мы с пацанами разрулим.
>> No.36842 Reply
File: Снимок-экрана-2014-01-20-в-15.52.36.png
Png, 1561.61 KB, 2376×1854 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок-экрана-2014-01-20-в-15.52.36.png
Подскажите редактор текстовый хороший.

Пользуюсь TextWrangler, но уж очень плохой в нем скролл. Нужна подсветка синтаксиса (xml, xhtml, css, C, Objective-C), и наличие "браузера" (не знаю как правильно назвать, пик релейтед). Да, иногда и для ePub.
>> No.36864 Reply
>>36842
Sublime Text 2 попробуй. Правда чтобы в сайдбаре отображались файлы, нужно их в проект добавить.
>> No.36865 Reply
File: Снимок-экрана-201...
Png, 1363.93 KB, 3108×1854
edit Find source with google Find source with iqdb
Снимок-экрана-2014-01-21-в-19.56.20.png
File: Снимок-экрана-201...
Png, 1226.09 KB, 3108×1854
edit Find source with google Find source with iqdb
Снимок-экрана-2014-01-21-в-19.56.39.png

>>36864
Спасибо большое.

Пока оставил, во многом лучше, но поиски не прекратил.

Файлы вроде отображаются если просто драгдропнуть папку на иконку. Но какая эпичная сортировка (такого много лет не видел). А еще определение языка от имени файла, а не на основе содержимого. Ну и для Retina не все элементы интерфейса сделали. И хочет при этом 70 баксов (а еще e-mail и душу продать, в App Store нету, спасибо хоть лицензируется per user). Ну и не умеет читать файлы в zip-архивах на лету (дико удобная штука, если надо только прочитать, но нельзя чтобы система насрала своими .DS_Store и прочими).
>> No.36868 Reply
>>36842
Emacs попробуй.
>> No.36869 Reply
>>36865
> хочет при этом 70 баксов
google://взлом+sublime
>> No.36872 Reply
>>36868
Даже не смешно.

>>36869
Во-первых это не взлом. Во-вторых моя смеется когда люди думают что софт покупают от неумения найти тот или иной способ обхода.

Да и trial Sublime неограничен ничем. Вообще. Кроме маленькой серой надписи (ее вино на скриншотах).
>> No.36878 Reply
>>36872
Давай ты пойдешь на сосач блистать своей успешностью?
>> No.36885 Reply
>>36878
Там не любят успешных.
>>36872
Он еще раз в n минут просит купить его. Но лично меня это не напрягает, при всем при том, что я работаю с ним по 8-10 часов в день, плюс еще на выходных часа 2-3.
>>36865
Там самая главная фича в плугинах, тысячи их. Это как FF, только редактор. Но вот плугин для почесывания яиц я так и не нашел.
>> No.36888 Reply
>>36885
> раз в n минут просит купить его
Раз в n сохранений.
>> No.36889 Reply
Я тут нашёл такой прототип функции в одной хабростатье:
void CHttpDownloaderBase::GetResponseHeader(const std::string& strHeaderName,
                                        std::list<std::string>& listValues) const
{
    listValues.empty(); 	// V530. The return value of function 'Foo' is required to be utilized.
// ...
Вопрос: почему это компилируется и операция кастинга адреса не выдаёт ошибку? Я всегда представлял параметры в прототипах как некоторые инициализируемые ячейки и для меня код выше имеет не больше смысла чем
int& x = 123;
Вообще, меня очень раздражает эта неточность и смутность всех знаний, связанных с хардкорным программированием. Сложно объяснить, но я попробую: люди привыкают как-то на более природном нелогичном уровне обращатся с языком и не пытаются создать целостную картину инструмента у себя в голове, а потому на самом деле не думают в полную силу когда пишут код, а делают это как-то интуитивно.
С чем бы сравнить... это как альфач, который может взять и общатся в обществе, просто привыкнув. Он не обдумывает каждое слово и каждый, в отличии от омежки, он просто научился это абстрактно делать.
И я боюсь что мне нужно как нибудь к этому тоже приучится, иначе я не смогу работать эффективно со своим зашкаливающим фанатичным перфекционизмом.
>> No.36890 Reply
>>36889
Где ты там операцию кастинга адреса узрел? Почему ты решил, что параметры функции не могут быть ссылками?
Энивей, ты уверен, что программирование это твоё? Суть именно в "программистском" мышлении, иначе так и будешь страдать.
> перфекционизм
Вообще не при чём тут. Лучше бы книжки умные читал, чем угадывать стандарт по рандомным кускам кода.
>> No.36891 Reply
>>36890
> Где ты там операцию кастинга адреса узрел?
В знаке "&".
> Почему ты решил, что параметры функции не могут быть ссылками?
Потому что ссылка - это адрес настоящего объекта в памяти, а объект который содержит ссылку - уже указатель.
В прототипе объявляются типы, а не ведётся тайпкастинг. Поэтому как можно доставать ссылку на объект который мы объявляем, да и зачем?
> Энивей, ты уверен, что программирование это твоё?
Конечно нет.
> Суть именно в "программистском" мышлении, иначе так и будешь страдать.
Заголовочные файлы включил, а к библиотеке не прилинковал. Что такое программистское мышление, как его получить, и зарабатываемо\природно ли оно?
>> No.36892 Reply
>>36890
> Вообще не при чём тут.
Я переходил здесь к своей общей и главной проблеме, без особой связи с этим вопросом, в надежде что кто-то с чем-то подобным решил эти проблемы для себя.
>> No.36893 Reply
>>36878
Я лишь задал вопрос о текстовом редакторе. Но комплексы иных личностей может пробудить что угодно. И вот я уже блистаю своей "успешностью".

Скоро на улице страшно будет телефон достать, ибо " у него телефон он же денег стоит". С автомобилями это уже почти произошло, ога.

А emacs, действительно не смешно.
>> No.36894 Reply
>>36893

Да кого ты обманываешь, про Emacs смешно было.
>> No.36895 Reply
>>36891
Вот именно, что там объявляются типы, а не проводятся операции. Type& a - это объявление переменной a, которая имеет тип "ссылка на переменную типа Type".
В объявлении функции, кстати, вообще может не быть имён параметров, только типы.
>> No.36896 Reply
>>36895
Разница между Type& a и Type* a?
>> No.36897 Reply
>>36896
Ссылка и указатель. Продолжаем игнорировать совет почитать книжку?
>> No.36898 Reply
>> No.36900 Reply
>>36893
А я лишь ответил, всё что ты хочешь, и даже что пока не хочешь, есть в емаксе. Не подходит? Ну твои проблемы, поищи на свой мак визивиг какой-нибудь, ИДЭ там. Что до понтов, так ты же сам жалуешь что 70 баксов. Хотя на линукс вобще-то 59 было, когда последний раз смотрел. Или не плачь что требуют денег, или молча раздвигай ягодицы покупай. Альтернативу я тебе указал, это не взлом конечно, в правильном смысле слова, но именно так проще всего нагуглить. А вообще иди-ка ты на хуй. Не люблю таких как ты выебков.
>> No.36911 Reply
>>36900
Человек жалуется на скролл, а ты советуешь ему emacs. Вот чего, а адекватного скроллинга в emacs нет. Панелька файлов в emacs тоже только через ecb, который неочень. Лично я юзаю dired на каждый чих, прибиндил dired текущей папки на "H-<return>", и это проще, чем использовать какие-то ecb.
>> No.36913 Reply
>>36911
> Панелька файлов в emacs тоже только через ecb
Если уговорить себя, что панелька может плавать отдельно от основного фрейма (привет ГИМПу), то достаточно M-x speedbar. Мне поначалу казалось диким, но быстро привык, потому что на самом деле поведенческой разницы минимум.
>> No.36926 Reply
>>36900
> А я лишь ответил, всё что ты хочешь, и даже что пока не хочешь, есть в емаксе.
Я говорил о том что меня не устраивает построчный скролл, и спрашивал по поводу нормального попипексельного.

Прости (и ты сейчас скажешь что это панты), но на плохих тачпадах и мышках с позиционным скроллом таких понятий вообще нет. Ты же не только на каринках видел платформу для которой советуешь?
> поищи на свой мак визивиг какой-нибудь, ИДЭ там
Какой визивиг (я таки смог что значит этот набор букв) для C? Какая такая IDE для xml? Мы читаем, не?
> ты же сам жалуешь что 70 баксов
Не жалую(сь), а вношу в список недостатков.
> Или не плачь что требуют денег, или молча раздвигай ягодицы покупай.
Тебя OS X возбудила так что ли?
> Не люблю таких как ты выебков.
Нет, это я не люблю личностей с поведением портовых грузчиков в неожиданных местах. А у тебя просто гонора много.
>> No.36927 Reply
>>36926
> Ты же не только на каринках видел платформу для которой советуешь?
Расскажи хоть подробней.
мимокрок
>> No.36931 Reply
>>36926
> Я говорил о том что меня не устраивает построчный скролл, и спрашивал по поводу нормального попипексельного.
Никоим образом не хочу сказать, что это ненужно, но правда стало любопытно - зачем? Я этого даже не заметил, когда пересел на Емакс с Гедита. Другое дело, что в Емаксе вообще в принципе сломанный скролл, потому что курсор не может быть за пределами вьюпорта. Но что даёт попиксельность?
>> No.36932 Reply
File: 2014-01-25-14_10_22-emacs-PEKA-PEKA.jpg
Jpg, 92.76 KB, 855×444 - Click the image to expand
edit Find source with google Find source with iqdb
2014-01-25-14_10_22-emacs-PEKA-PEKA.jpg
>>36913
Спидбар - адовое говнище. ecb хоть как-то нормально можно пользоваться, если накастомить.
Но скролл не накастомить, и потому печально всё.

(setq stack-trace-on-error t)
(setq ecb-tip-of-the-day nil)
(setq-default ecb-primary-secondary-mouse-buttons 'mouse-1--C-mouse-1)
(setq-default ecb-layout-name "left13")
>> No.36936 Reply
>>36931
> Никоим образом не хочу сказать, что это ненужно, но правда стало любопытно - зачем?
Функционально? Ничего не дает. Работать можно и в emacs, и в nano, и vi, и подставь свое. Это очевидно.

Эстетично, приятно.

Если нет под рукой маков, возьми смартфон (или планшетник) с тачскрином и представь что у тебя в каком-нибудь приложении построчный скролл. Ну и у тут не совсем очевидные алгоритмы акселерации и имитации инерции (а есть еще и принудительное торможение инерции). Получается что-то вроде вертикальной синхронизации (оная кстати тоже имеет место быть) с низким fps, из-за большей дискретности падает отклик.

Или ты на макосе в gedit работал? По-моему он тут не очень. Clearlooks не выглядит clear в соверешенно чужеродной среде, да и шрифты из гнома. А если ставить по-номальному придется gtk собирать (неее, спасибо, слакварь разводить). Да и с high res мониторами мне даже представить страшно как оно работает (памятуя как долго появляются графические навороты в опенсорсных системах и тем более портах с них). Тем более что в gedit был построчный, если мне не изменяет память. О вкусах не спорят, конечно.
>> No.36938 Reply
>>36936
> Ну и у тут не совсем очевидные алгоритмы акселерации и имитации инерции
Я специально в emacs убрал все акселерации, скролл скроллит по 3 линии фиксированно. Это реально удобно. Ненавижу акселерации.

(setq mouse-wheel-scroll-amount '(3 ((shift) . 5) ((control) . nil)))
(setq mouse-wheel-progressive-speed nil)
(setq scroll-preserve-screen-position t)

мимопроходил
>> No.36943 Reply
>>36938
> Я специально в emacs убрал все акселерации, скролл скроллит по 3 линии фиксированно. Это реально удобно. Ненавижу акселерации.
> mouse-wheel-scroll
Да, я тоже не люблю. И "плавную" анимацию не люблю. Там где это скролл мышкой, а не прокрутка. Нет на переферии яблока никаких щелкающих колесиков на N строчек. И нет крупного лага действие-прокрутка, точность такая же как и при перемещении указателя. Хотя о вкусах, все же спорят.
>> No.36945 Reply
>>36938
> Я специально в emacs убрал все акселерации, скролл скроллит по 3 линии фиксированно. Это реально удобно. Ненавижу акселерации.
> mouse-wheel-scroll
Да, я тоже. И "плавную" анимацию не люблю. Там где это скролл мышкой, а не прокрутка. Нет на переферии яблока никаких щелкающих колесиков на N строчек. И нет крупного лага действие-прокрутка, точность такая же как и при перемещении указателя. Хотя о вкусах, все же спорят.
>> No.36947 Reply
>>36932
> Спидбар - адовое говнище. ecb хоть как-то нормально можно пользоваться, если накастомить.
Можешь раскрыть? Я не видел в глаза ECB, хочу понимать, что я теряю.

>>36936
Спасибо, но я не до конца понял: как ты в итоге скроллишь, клавиатурой? То есть, ты нажимаешь PgUp/PgDn и хочешь, чтобы вьюпорт не переместился мгновенно, без анимации на n строк вверх/вниз, а подъехал туда плавно (пусть и быстро) и попиксельно?
>> No.36951 Reply
>>36947
> Спасибо, но я не до конца понял: как ты в итоге скроллишь, клавиатурой? То есть, ты нажимаешь PgUp/PgDn и хочешь, чтобы вьюпорт не переместился мгновенно, без анимации на n строк вверх/вниз, а подъехал туда плавно (пусть и быстро) и попиксельно?
Какой клавиатурой?

Или я в теге <irony> нуждаюсь, или.

Вы с трекпадами apple сталкивались на родном софте? А мышка у них имеет ровно такой же скролл. На них скролл максимально похожий на таковой на всяких ios или андроидах, точность такая же (почти) как у курсора мышки.

В отличии от, реально редактировать повесть или роман средней длины (не всегда можно точно вспомнить место или фразу для поиска), точно так же и простыни кода (какая разница, и то и то текст).

Я не знаю как сейчас на другой технике, может и в новом софте и железе других вендоров перенесели не только формулировку "скролл двумя пальцами", а принцип отзывчивость и точность работы (а то достали уже своими жестко позиционными "жестами" которые нельзя прервать или замедлить).
>> No.36975 Reply
>>36951
Скроллю на win7 ноуте одним пальцем по правой части тачпада. Аццелераций нет, медленной прокрутки нет. Доволен.
С маком работаю usb-мышкой. Аццелерации там не убрать, увы. Печальная ось.

>>36947
Не так много. Т.е., лично я вообще не понимаю, что приобретается тем-же спидбаром, когда есть более толковый dired. Ну и лично я считаю управление спидбаром ужасным.
Но вообще про ecb: он делает некие окна, на которые никак не влияют команды сплита/закрытия. Эти окна, например, слева(там разные лейауты). Что именно там за окна: дерево папок/файлов, история, заголовки функций в текущем файле, спидбар, еще что-то там. Если ты используешь спидбар только как дерево файлов, то вон выше скрин и мои кастомы к ecb.
>> No.36976 Reply
>>36951
> Или я в теге <irony> нуждаюсь, или.
Ты нуждаешься в более ясном изложении своей практики. Ну то есть, это я нуждаюсь в изложении твоей. То бишь мне интересно. Просто я когда код пишу, я это делаю на клавиатуре, и мне удобней, чтобы и навигация по коду происходила с клавиатуры: в частности, я делаю это клавишами PgUp/PgDn. А ты как это делаешь? Ты отводишь пальцы к трекпаду, что на Макбуке пониже клавиатуры (поближе к тебе), и водишь пальцами по трекпаду? Если так, то я всё понял.
>> No.36977 Reply
>>36976
> Ты отводишь пальцы к трекпаду, что на Макбуке пониже клавиатуры (поближе к тебе), и водишь пальцами по трекпаду? Если так, то я всё понял.
Говоря про скролл, очевидно имелся ввиду трекпад либо аналогичная мышка, но никак не клавиатура. Да, это единственный способ читать подвижный скроллящийся текст, для кода как такового разница не очень велика (хотя все равно хочется по-нормальному), но иногда приходится высматривать верстку (в plaintext удобнее), в средней длине романе или повести текста, ну очень много, неудобно иначе.

При PgDn/PgUp анимации вообще не должно быть, имхо, лтбо она должна быть ну очень короткой.

>>36975
> win7
Ясно, понятно. В этом чуде интерфейсостроения попиксельной прокрутки вообще нет.
> С маком работаю usb-мышкой. Аццелерации там не убрать, увы. Печальная ось.
Нет, ты не умеешь ей пользоваться. Это правка одной строчки в конфиге (только я не помню в каком и какой, но вот гугл, он все-все помнит).
>> No.37165 Reply
Есть три книжки:
1) real world haskell
2) непейвода
3) sicp абельсона

В каком порядке их лучше изучать, чтобы не только изучить суть программирования, но и научиться мыслить процедурно?
>> No.37171 Reply
File: Jackie-Chan-WTF-meme-face-70958233396.jpeg
Jpeg, 78.68 KB, 1280×1024 - Click the image to expand
edit Find source with google Find source with iqdb
Jackie-Chan-WTF-meme-face-70958233396.jpeg
>>37165
> научиться мыслить процедурно?
> процедурно
> RWH, sicp
>> No.37172 Reply
>>37171
P.S. Предлагаю начать с википедии, чтобы научиться отличать процедурное программирование от функционального.
>> No.39941 Reply
>>32496
Вопрос, наверное, платиновый, но все же спрошу. На какие области математики стоит обратить внимание начинающему программисту-самоучке? если не вдаваться в специфичные области. И сразу литературы по теме подкиньте пожалуйста.
>> No.40441 Reply
>>39941
Зависит от того, что ты хочешь кодить. Если формочки для форума, то и арифметики второго класса хватит.
мимодругойсамоучка
>> No.40532 Reply
File: 14113907253210.jpg
Jpg, 109.49 KB, 807×605 - Click the image to expand
edit Find source with google Find source with iqdb
14113907253210.jpg
Господа, какой язык программирования следует начать изучать для решения задач, в которых прога/скрипт выдирает данные из какого-нибудь сайта, а потом с этими словами или числами работает?
>> No.42895 Reply
File: 0dc50d.jpg
Jpg, 146.35 KB, 500×505 - Click the image to expand
edit Find source with google Find source with iqdb
0dc50d.jpg
У меня есть задача — написать простейшее приложение для айфон. Где будет просто счетчик нажатий на кнопку. Ну и минимальное оформление. Можете что-то подсказать?
Я сначала смотрел в сторону xcode, но у меня на виртуалку макос не встает плюс там еще какая-то лицензия разработчика стоимостью в 99$
Потом смотрел в сторону веб-приложений, там вроде как можно сделать все это без этой еботы.
Можете что-нибудь подсказать?
>> No.43040 Reply
Я какой-то даун аутист, я до сих пор не могу определиться чего хочу, хэлоуворды на многих языках написал, дальше всего продвинулся в джаве, там умудрился физ базз написать!
в питоне пару простых вещей, в руби, в шарпе
сук, никак не могу выбрать что-то и углубиться
Самая боль в том, что не получается решать задачи со всяких проджект эйлер и прочее.
А в книгах часто сдаюсь и смотрю в конец за подсказкой
>> No.43437 Reply
Здравствуйте. Решил начать изучать C++ с нуля. Как я понимаю, лучше начинать изучение языка с последней версии, а именно с 14ой. Существуют ли по этой версии достойные учебники?
>> No.43453 Reply
File: latest.png
Png, 64.35 KB, 320×307 - Click the image to expand
edit Find source with google Find source with iqdb
latest.png
Привет /s/, я тут первый раз пробегаю и хочу спросить мелочь: "с чего начать".

Хочу освоить что либо прикладное для веба - собрать самому парсер, скрыть/изменить какие либо элементы на странице, корректировать дизайн(мне была бы полезна функция "превратить все в темное чб, исключая собственно фотографии") и все такое прочее.
В какую же сторону рыть?
Имею школьные/базовые вузовские познания в программировании(большей частью умение понять-собрать простенький алгоритм и разобраться в синтаксисе).
>> No.43456 Reply
>>43453
Анон, здесь бамплимит. Спроси где-нибудь ещё.
И на твой вопрос я ответить не могу, сам полный ноль.
>> No.44596 Reply
Народ, помогите с mod_rewrite (regexp)

Есть адрес вида:
http://site.com/category1/category2/~category3/?var1=25&var2=qwerty

Здесь:
category1/category2/ - это всё одна переменная "address"
category3/ - вторая переменная "product" (для того чтобы её можно было отличить от "address" отделена символом "~")
var1 и var2 - это обычный GET-запрос сформировавшийся автоматически при активации формы поиска (HTML Form - submit)

Написал правило:
RewriteRule ^([a-z0-9\\-\/]+)[~]?([a-z0-9\\-]+)?/?$ page.php?address=$1&product=$2 [L]

var1 и var2 не работают.
Убрал последний символ $ - вообще всё перестало работать.

Как поправить ?
>> No.44693 Reply
> 07 Август 2015 (Пт)
> 13 Февраль 2016 (Cб)
Невероятно быстрый перекат: >>44688


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]