Вопросы и ответы по программированию.

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
popoffka666
VIP
VIP
Сообщения: 2463
Зарегистрирован: 13.12.2007
Откуда: Latvia
Поблагодарили: 2 раза

#76 Сообщение 21.05.2011, 21:23

Насколько сложно создать «виртуальный монитор» и получать с него изображение, которое в него рисует ОС?
Интересует в первую очередь Линукс, но инфа по винде тоже ок.
The Planet is fine. The people are fucked. — George Carlin
Science is interesting, and if you don't agree you can fuck off. — Richard Dawkins

Мой рогалик на JavaScriptМой профиль на GitHub

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#77 Сообщение 22.05.2011, 20:10


Аватара пользователя
Se7en
Капитан
Капитан
Сообщения: 419
Зарегистрирован: 21.09.2009
Откуда: Москва
Благодарил (а): 593 раза
Поблагодарили: 8 раз
Контактная информация:

#78 Сообщение 22.05.2011, 20:14

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

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#79 Сообщение 22.05.2011, 21:26

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

Аватара пользователя
Bakr
Капитан
Капитан
Сообщения: 482
Зарегистрирован: 30.07.2008
Поблагодарили: 1 раз
Контактная информация:

#80 Сообщение 23.05.2011, 00:33

если совсем ничего не знаешь - Basic
Инвайт на Dropbox.+250 мб бесплатно.
мой minigame сервер
Изображение
цитатник
maximus_2007-61rus писал(а):КАК ИГРАТЬ "NOT STEAM CS SOURCE" НА STEAM СЕРВЕРАХ
ПРОШУ ПОМОЩИ ЗНАЮЩИХ ЛЮДЕЙ!! МОДЕРЫ ОТКЛИКНИТЕСЬ))) ПРИ ПОПЫТКЕ ЗАЙТИ НА ЛИЦЕНЗИОННЫЙ СЕРВЕР ПИШЕТ ЧТО НЕЛЬЗЯ ТИПА, В НЕТЕ НИЧЕГО ПУТНОГО НАЙТИ НЕ СМОГ, ЗНАЮ ЧТО ЕСТЬ ВАРИАНТ ИГРАТЬ. :Search: :Search:
Dimon199482 писал(а):У меня проблемы с реу ставлю его на серер а к сереру могут только подлключится те у кого(Klass С).Да и влогаг все по локалке.Кто занет помогите советом.

Аватара пользователя
adamdead
VIP
VIP
Сообщения: 1012
Зарегистрирован: 05.11.2007
Откуда: Москва
Благодарил (а): 14 раз
Поблагодарили: 34 раза
Контактная информация:

#81 Сообщение 23.05.2011, 09:03

Se7en_RUS
visual basic 6.0
Изображение
Изображение

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#82 Сообщение 23.05.2011, 10:23

Огребете же. По-русски написано, что ответ уже был дан давным давно.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
EVIL22
Капитан
Капитан
Сообщения: 306
Зарегистрирован: 21.02.2010
Откуда: Ukraine
Контактная информация:

#83 Сообщение 12.06.2011, 14:30

Спасибо тебе аллах за то что ты создал такую тему.

Что я спросить хотел то.
Сессия почти кончается а мне с информатики практические сдать нужно.
Дело в том что у меня задание "Построить круговую диаграмму" в Qbasic.
Я бы построил но я не понимаю как...
В интернете искал но поиски не дали результатов.
Изображение

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#84 Сообщение 12.06.2011, 14:52

Круговая диаграмма это что-то такое, да?


Лол, ну ты что. Здесь довольно просто.
  1. В центре экрана берём точку O - центр окружности.
  2. Строим окружность с радиусом R. Длина окружности будет L = 2 * pi * R.
  3. Берём наши данные, например A, B, C (будет три сегмента в круге).
    X - сумма этих значений, от которой будет считаться процентное отношение и проч. X = A + B + C.
  4. Берём произвольную точку на окружности T1, затем вычисляем длину дуги для значения A. Надо найти, какой процент от X составляет A.
    Percentage = A / X * 100.
    Допустим, получилось 10 процентов. Тогда надо "пройти" по окружности от точки T1 до новой точки T2 ещё 10 процентов от длины окружности. На этом месте будет T2.
  5. Соединяем линией точку O c T1, затем O c T2.
  6. Повторяем 2 предыдущих шага для остальных данных, но уже не берём случайную точку, а двигаемся от последней полученной T2.
Принцип, надеюсь, понятен. С языком я не знаком, поэтому спрограммировать это не получится.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 44 раза
Контактная информация:

#85 Сообщение 12.06.2011, 23:01

EVIL22 писал(а):Спасибо тебе аллах за то что ты создал такую тему.
Всегда пожалуйста, сын мой.

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 44 раза
Контактная информация:

#86 Сообщение 13.06.2011, 22:50

Может кому-нибудь пригодится полезный код:

Код: Выделить всё

unsigned int getbits(unsigned char *buf, int start, int count)
{
	unsigned int result = 0;
	unsigned char bit;

	while (count)
	{
		result <<= 1;
		bit      = 1 << (7 - (start % 8));
		result  |= (buf[start/8] & bit) ? 1 : 0;
		start++;
		count--;
    }

	return result;
}

Код: Выделить всё

void hexdump(char *prefix, unsigned char *data, size_t size)
{
    char ascii[17];
    int i;

    for (i = 0; i < size; i++) {
        if (0 == (i%16)) {
            fprintf(stderr,"%s%s%04x:",
                    prefix ? prefix : "",
                    prefix ? ": "   : "",
                    i);
            memset(ascii,0,sizeof(ascii));
        }
        if (0 == (i%4))
            fprintf(stderr," ");
        fprintf(stderr," %02x",data[i]);
        ascii[i%16] = isprint(data[i]) ? data[i] : '.';
        if (15 == (i%16))
            fprintf(stderr," %s\n",ascii);
    }
    if (0 != (i%16)) {
        while (0 != (i%16)) {
            if (0 == (i%4))
                fprintf(stderr," ");
            fprintf(stderr,"   ");
            i++;
        };
        fprintf(stderr," %s\n",ascii);
    }
}

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#87 Сообщение 18.06.2011, 17:08

Борюсь с утечками, вроде везде прикрыл, но потребление памяти снизилось всего лишь на 30%(по сравнению с программой вообще без delete). При просмотре core программы оказыватесть что более 80% там составляют огромные блоки из нулей. Ещё иногда встречаются и нормальные данные(содержимое файлов, которые я загружал в память) Но какие то испорченые в начале.
Может чего посоветуете?

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#88 Сообщение 18.06.2011, 18:14

GanGSISoft
попробуй valgrind, покажет места, где накосячил в работе с памятью

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#89 Сообщение 18.06.2011, 19:34

GanGSISoft
Выделяй сначала наименьшее возможное количество памяти, а потом перераспределяй, если не будет хватать. Лишней памяти выделено вообще не будет.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#90 Сообщение 19.06.2011, 13:37

Обнаружил странность, вот тут почему-то не работает delete[] c2

Код: Выделить всё

int main()
{
    FILE *f=fopen("/home/user/tmp/1.fb2","r");
    fseek(f,0,SEEK_END);
    int len=ftell(f);
    fseek(f,0,SEEK_SET);
    char *c=new char[len];
    fread(c,len,1,f);
    fclose(f);
    delete[] c;

    FILE *f2=fopen("/home/user/tmp/2.fb2","r");
    fseek(f2,0,SEEK_END);
    int len2=ftell(f2);
    fseek(f2,0,SEEK_SET);
    char *c2=new char[len2];
    fread(c2,len2,1,f2);
    fclose(f2);
    delete[] c2;

    abort();
    return 0;
}
Если закоментировать первую половину то delete[] c2 работает, а если так то в core можно найти содержимое файла 2.fb2

---------------------------------------
Ещё вопрос, у меня есть функция, "char *delescape(char *s)" которая в строке перед символами кавычки, пробел и прочее ставить символ '\'. Как правильнее сделать, чтобы она заменяла *s или *s оставалась неизменной, а возвращала другую строку. Как принято делать в таких функциях?
---------------------------------------
И если есть функция bool и в конце возвращает значение, как лучше

Код: Выделить всё

if(s==0){return true}else{return false}
или

Код: Выделить всё

if(s==0){return true}
return false
?
Последний раз редактировалось GanGSISoft 19.06.2011, 13:37, всего редактировалось 3 раза.

Ответить Вложения 1