Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: mrherbrooks
Дата сообщения: 09.03.2011 08:24

Цитата:
boost::dynamic_bitset

не знал что это стало входить в стандартную библу С++.

зы. конечно так оно и будет, но пока нет.
Автор: bdvrt
Дата сообщения: 10.03.2011 00:17
Подскажите, плз, кто может написать прогу для изменения чувствительности мыши в вин7 от 1 до 100 с шагом "1" ???
Автор: ValidolX
Дата сообщения: 10.03.2011 00:25
bdvrt
как насчет тюнинга через реестр?

http://forum.ixbt.com/topic.cgi?id=22:74859
Автор: bdvrt
Дата сообщения: 10.03.2011 00:53

Цитата:
как насчет тюнинга через реестр?

Так не получается(
В винде шкала имеет всего 11 делений(только например, если ставишь 2-ое деление -в реестре уже устанавливается 3-е), если напрямую через реестр или прогой типа xp мышегон -меняется 1-20 делений. Хотелось бы эти 20 делений взять за 100% и изменять с шагом 1%.
Автор: KF121
Дата сообщения: 10.03.2011 08:56
А не че то что параметр целочисленный, и как вы собираетесь его изменять с шагом в 0,2?
Автор: bdvrt
Дата сообщения: 10.03.2011 21:18
Дык, я и интересуюсь, может кто знает как это реализовать, чтобы получилось подобное : http://forum.a-gaming.ru/showthread.php?t=28496 , с шагом 1 и шкалой 1-100 ?
Автор: KChernov
Дата сообщения: 11.03.2011 09:33
bdvrt
Ну вообще-то там как раз 20 делений и есть - откуда инфа про 100?
Автор: bdvrt
Дата сообщения: 11.03.2011 22:39

Цитата:
откуда инфа про 100

мне надо 100, для более точной регулировки
Автор: Molniev
Дата сообщения: 13.03.2011 11:25
bdvrt, тебе же обяснили, сама система работает с градацией меньше ста. В своей программе можешь сделать трекбар хоть в тысячу делений - чтоб пользователь думал "какая точность!". Но в реальности, желаемая тобой сотня системой все равно будет округляться. Так что не забивай себе голову такой глупостью.

Впрочем, если уж совсем не в моготу, как хочеться именно сто, а не двадцать, то посмотри в сторону прямого общения с драйвером мыши. ioctl - лы там всякие. Может быть через них это можно настроить точней. Но скорей всего, либо акселерация работает над драйверами - в клиенской подсистеме, и ничего ты не найдешт, либо же там таже градация, что и в реестре и никакой сотней и не пахнет.
Автор: roman petrov
Дата сообщения: 14.03.2011 18:13
Доброго времени суток! Вот нашол програму Dev-C++4.9.9.2 -прога клас! Но?
Никак не могу вывести на экран русский текст типа printf("привет")
Если кто знает-помогите
Заранее спасибо!
Автор: RandRover
Дата сообщения: 15.03.2011 17:25
@roman petrov


Код:
#include <stdio.h>
#include <string.h>
#include <windows.h>

using namespace std;

int main()
{
    char *s = new char[100];
    CharToOem("привет", s);
    printf("%s\n", s);
    delete s;
    system("pause");
    return 0;
}
Автор: Garrett
Дата сообщения: 15.03.2011 17:41
roman petrov
Либо обходиться без CharToOem
1.
в консоли chcp 1251
а затем твою прогу
2.
поменять кодовую страницу консоли программным путем.
Автор: roman petrov
Дата сообщения: 16.03.2011 20:30
спасибо!
Автор: Red Planet
Дата сообщения: 18.03.2011 21:12
Добрый вечер! Почитал об алгоритмах поиска ближайшего соседа, нашел написанные людьми реализации. А нет ли в библиотеке языка уже готовой функции для поиска в массивах, контейнерах?
Автор: karakurt2
Дата сообщения: 19.03.2011 12:40
Red Planet, по моему скромному разумению, пока что такого нет. это слишком специфичная задача для обобщённого программирования. по поводу реализации посмотрите библиотеки IMSL, CGAL, LEDA и т.д. (вставить сюда свою любимую библиотеку)
Автор: tapa171
Дата сообщения: 19.03.2011 13:45
http://ifolder.ru/22488928
Уважаемые программисты! Срочная проблема) В этом файле код на vc++ (2010 VS) и exe-файл. Это задание на генетические алгоритмы. В коде надо поменять код грея на двоичный код и принцип отбора поменять с турнира на рулетку, а потом повесить форму подобную как в exe- файле на код. Вообщем exe- файл это программа почти такая же какую и мне надо сделать, но только вот в чем разница: http://ifolder.ru/22489096 - это варианты заданий. Мне нужен 13 вариант, а в папке, что я скинул сделан 8, только уже чуток мной подделанный( вставлена моя формула и настройки подбиты). Вообщем очень прошу вас. Я в долгу не останусь. Надо очень срочно до завтра(воскресенье 20.30.2011) до 23.00.
Автор: Molniev
Дата сообщения: 19.03.2011 17:27
tapa171
В этом разделе форума помогают в программировании, а не делают задания на заказ. Вы не туда обратились.
Автор: Nikolay123456
Дата сообщения: 20.03.2011 15:52
Друзья! Помогите написать программу на С++ : создать: 1) функцию для ввода 20 элементов целого типа; 2) функцию для определения суммы отрицательных элементов массива; 3) функцию для вычисления произведения элементов, которые находятся между максимальным и минимальным элементами; 4) функцию для вывода элементов массива; 5) упорядочить элементы по увеличению модуля значений элементов. Пожалуйста, помогите!!! Курсовая на носу.
Автор: monsoon
Дата сообщения: 20.03.2011 16:01
Нужно перенести проект из vc в bcb6. Осталось немного ошибок и предупреждений.

logger.h

Код: class logger {
public:
    logger::logger(const char* name) : log(name, ios::app), sev(sev_fault) {
        label[0] = 'T';
        label[1] = 'W';
        label[2] = 'F';
    }
    logger::~logger() {if (log) log.close();}

    // severity
    logger& operator <<(const sev_t s) {sev = s; return *this;}

    // values
    template<class T> logger& operator <<(const T& val) {sstr << val; return *this;}

    // manipulators
    logger& operator <<(ios_base& (*f)(ios_base &)) {sstr << f; return *this;}

    logger& operator <<(ostream& (*f)(ostream &)) {
        if (f != endl)
...
...
Автор: Red Planet
Дата сообщения: 20.03.2011 16:16
Nikolay123456, держите.


Цитата:
функцию для ввода 20 элементов целого типа, функцию для вывода элементов массива



Цитата:
void tw_elems_arr_cin () {
int arr[20];
for (int i=0; i<20; i++) cin >>arr[i];
}



Цитата:
void tw_elems_arr_cout (int *arr, int n) {
for (int i=0; i<n; i++) cout <<arr[i]<<" ";
}



Цитата:
функцию для определения суммы отрицательных элементов массива


Цитата:
int sum_neg (int *arr, int n) {
int s=0;
for (int i=0; i<n; i++) {
if (arr[i]<0) s+=arr[i];
} // for.
return s;



Автор: modwind
Дата сообщения: 20.03.2011 16:30

Цитата:
Добрый вечер! Почитал об алгоритмах поиска ближайшего соседа, нашел написанные людьми реализации. А нет ли в библиотеке языка уже готовой функции для поиска в массивах, контейнерах?

Red Planet, такая функция есть, называется min_element и находится в файле "algorithm":
http://www.cplusplus.com/reference/algorithm/min_element/
Тебе понадобится второй её вариант, задающий собственный способ сравнения элементов в виде функции (в примере на сайте - myfn). Для простого одномерного поиска ближайшего соседа способ сравнения выглядит примерно так:

Код:
int origin=5;
bool myfn(int i, int j) { return abs(i-origin)<abs(j-origin); }
Автор: Nikolay123456
Дата сообщения: 22.03.2011 19:59
Спасибо !!!!!
Автор: ItsJustMe
Дата сообщения: 22.03.2011 23:06
monsoon
А как там у тебя этот endl определен?
1. По логике, он должен быть в ostream и представлять из себя метод класса basic_ostream. Так что это вовсе не "\n", хотя при его применении в поток и записывается '\n'.
Если есть большое желание определить для logger operator <<, то, наверное, стоит повторить то описание, ктоторое есть в самом basic_ostream.
2. "using namespace std;" стоит?
3. Может, у тебя, помимо std::endl есть еще какой-то endl? И компайлер не знает, какой из них брать?
Автор: Red Planet
Дата сообщения: 25.03.2011 20:41

Цитата:
Red Planet, такая функция есть, называется min_element и находится в файле "algorithm"

modwind, спасибо, изучу.

Пока что возник другой вопрос. Есть map <char, int>, который нужно отсортировать по значению. Везде предлагаются варианты собственных правил для сортировки по ключу. Сортировку по значению не делают или я просто не нашел?
Автор: Qraizer
Дата сообщения: 25.03.2011 23:13
std::map<> всегда сортирует, и сортирует всегда по ключу. Если тебе надо пересортировать std::map<>, нужен новый ключ, а это значит и новый std::map<>, т.к. функция сортировки по ключу является частью типа std::map<>, и если он меняется, меняется и тип контейнера. Ты не сможешь сменить тип уже имеющейся переменной.
Если ключём являются сами данные, то их копирование в std::multiset<> решит твою задачу.
Автор: KChernov
Дата сообщения: 26.03.2011 21:58
В теме появилась шапка.
Давайте сделаем её лучше.
Например можно разместить там список ресурсов по теме.
Если кто не может сам добавить - присылайте в ПМ.
Автор: monsoon
Дата сообщения: 26.03.2011 22:06
ItsJustMe
Спасибо за участие.

Цитата:
А как там у тебя этот endl определен?
1. По логике, он должен быть в ostream и представлять из себя метод класса basic_ostream. Так что это вовсе не "\n", хотя при его применении в поток и записывается '\n'. "

В программе он вроде никак не переопределен.
При замене

Код: logger& operator <<(ios_base& (*f)(ios_base &)) {sstr << f; return *this;}
Автор: Red Planet
Дата сообщения: 28.03.2011 21:14

Цитата:
std::map<> всегда сортирует, и сортирует всегда по ключу. Если тебе надо пересортировать std::map<>, нужен новый ключ, а это значит и новый std::map<>, т.к. функция сортировки по ключу является частью типа std::map<>, и если он меняется, меняется и тип контейнера. Ты не сможешь сменить тип уже имеющейся переменной.
Если ключём являются сами данные, то их копирование в std::multiset<> решит твою задачу.


А задача была в том, чтобы проанализировать шифротекст на частоты символов и упорядочить символы по убыванию частоты. Решил создать multimap <int, string, comp>. Если можно было сделать лучше, то буду рад выслушать предложения.

int - количество раз для каждого символа.
string - сам символ (не char, так как каждый символ зашифрован двумя цифрами).
comp - функтор для сортировки (так как нужно по убыванию).


Теперь к вопросу.

Шифротекст берется из текстового файла input.txt, считывается в string, потом анализируется в цикле. Результат записывается в res.txt функцией, проводившей анализ. Функция вызывается несколько раз (для букв и сочетаний из двух букв).

Считывание в string text.

Цитата:
ifstream ifs ("input.txt", ifstream::in);
string text;
while (ifs.good()) ifs >> text;
ifs.close();


Запись результата.

Цитата:
ofstream to_res ("res.txt", ofstream::app);
for (mit it=A.begin(); it!=A.end(); it++) to_res << it->second <<" - "<< it->first <<endl;


mit - синоним итератора multimap <int, string, comp>::iterator

Сейчас не могу понять, как сделать так, чтобы при запуске программы текстовый файл res.txt очищался, если в нем что-то есть.


Цитата:
ofstream to_res ("res.txt", ofstream::app);

Записывает результаты, но перед новым запуском программы не стирает то, что есть в текстовом файле.


Цитата:
ofstream to_res ("res.txt", ofstream::out);

Записывает только последнее значение в цикле. Как решить проблему?
Автор: Abs62
Дата сообщения: 28.03.2011 21:36
Red Planet

Цитата:
Сейчас не могу понять, как сделать так, чтобы при запуске программы текстовый файл res.txt очищался, если в нем что-то есть.

ofstream to_res ("res.txt", ofstream::out | ofstream::app | ofstream::trunc);
Автор: Red Planet
Дата сообщения: 29.03.2011 16:53
Abs62, ваше решение не работает.


Цитата:
//---------------------------------------------------------------------------
#include <iostream>
#include <vcl>
#include <map>
#include <string>
#include <fstream>
#pragma hdrstop


using namespace std;
typedef multimap <int, string>::iterator mit;
//---------------------------------------------------------------------------
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
    system ("title Temp");
    multimap <int, string> M;

    M.insert (pair <int, string> (2, "ab"));
    M.insert (pair <int, string> (3, "cd"));
    M.insert (pair <int, string> (4, "ef"));

    ofstream to_res ("res.txt", ofstream::out | ofstream::app | ofstream::trunc);

    for (mit it=M.begin(); it!=M.end(); it++)
        to_res << it->second <<" - "<< it->first <<endl;

    system ("pause");
    return 0;
}
//---------------------------------------------------------------------------


Файл на выходе не содержит ничего. Если оставить

Цитата:
ofstream to_res ("res.txt", ofstream::app);

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

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.