Программирование

Обсуждение программ и аппаратных средств

Модераторы: Oden, Сочин, maniac, Boo

Re: Программирование

Сообщение funny 26 Декабрь Суббота, 2009 16:40

KyberProtagonistes
Сори, не пойму, "/ORL/S1/%d.jpg" это путь в какой ОС?
If an unlucky man sold umbrellas, it would stop raining.
If he sold candles, the sun would never set.
And if he sold coffins, people would stop dying.
Аватара пользователя
funny

 
Сообщения: 396
Зарегистрирован: 12 Март Среда, 2008 23:05

Re: Программирование

Сообщение AntropoCompus 26 Декабрь Суббота, 2009 16:42

Виста. См. примеры: http://j.mp/4L8alR
AntropoCompus

 
Сообщения: 7170
Зарегистрирован: 26 Июнь Понедельник, 2006 11:11

Re: Программирование

Сообщение funny 26 Декабрь Суббота, 2009 16:46

KyberProtagonistes
Ну из первой ссылки :?
Код: Выделить всё
            sprintf(filename2,"C:\\Program Files\\ERSP\\sample_code\\driver\\VideoTool\\VideoBMPs\\image%05d.bmp",i);
            ...
            undis_frame = cvLoadImage(filename2);
If an unlucky man sold umbrellas, it would stop raining.
If he sold candles, the sun would never set.
And if he sold coffins, people would stop dying.
Аватара пользователя
funny

 
Сообщения: 396
Зарегистрирован: 12 Март Среда, 2008 23:05

Re: Программирование

Сообщение AntropoCompus 26 Декабрь Суббота, 2009 16:53

Ага. Ну, так работает, спасибо. Но тут используется абсолютный путь. А мне нужно относительный замутить. Относительно папки с программой... :?
AntropoCompus

 
Сообщения: 7170
Зарегистрирован: 26 Июнь Понедельник, 2006 11:11

Re: Программирование

Сообщение funny 26 Декабрь Суббота, 2009 16:58

Эм...
Попробуй так "\\ORL\\S1\\%d.jpg" (на счет \\ в начале пути не уверен)
Для венды вроде обычно такой \ используется, а \\ потому что сам по себе \ служебный символ для форматирования, как-то так это объясняется.
If an unlucky man sold umbrellas, it would stop raining.
If he sold candles, the sun would never set.
And if he sold coffins, people would stop dying.
Аватара пользователя
funny

 
Сообщения: 396
Зарегистрирован: 12 Март Среда, 2008 23:05

Re: Программирование

Сообщение AntropoCompus 26 Декабрь Суббота, 2009 17:04

Пробовал. Не пашет такая строка.

Добавлено спустя 8 минут 5 секунд:
Есть! Я протупил, сорри. Не надо ставить "\\" вначале. Не заметил, что ты писал об этом =)

Добавлено спустя 10 секунд:
Спасибо.
AntropoCompus

 
Сообщения: 7170
Зарегистрирован: 26 Июнь Понедельник, 2006 11:11

Re: Программирование

Сообщение funny 26 Декабрь Суббота, 2009 17:26

KyberProtagonistes
Это студия?
Может быть просто относительный путь не оттуда взял?
Нашел какой-то проект, там изображение нормально открывается относительно папки, которая в корне проекта debug (в ней еще exe файл лежит)
например: <имя проекта>\debug\123\1.bmp
Путь в данном случае "123/1.bmp"
Разделитель между папками работает как \\ так и /
If an unlucky man sold umbrellas, it would stop raining.
If he sold candles, the sun would never set.
And if he sold coffins, people would stop dying.
Аватара пользователя
funny

 
Сообщения: 396
Зарегистрирован: 12 Март Среда, 2008 23:05

Re: Программирование

Сообщение AntropoCompus 26 Декабрь Суббота, 2009 17:30

Вижуал С++ экспресс едишн.

Дело в том, что я в обоих случаях перед ОРЛ ставил что-то (либо \\, либо /). И оно не пахало. А тперь работает вот это: "ORL\\S1\\%d.jpg" С / даже пробовать уже не буду.

Спасибо! :beer:
AntropoCompus

 
Сообщения: 7170
Зарегистрирован: 26 Июнь Понедельник, 2006 11:11

Re: Программирование

Сообщение AntropoCompus 29 Декабрь Вторник, 2009 17:41

У меня проблема с заполнением двумерного массива случайными числами. Вот код заполнения:

Код: Выделить всё
   double **W = new double*[2];
   for (int i = 0; i < 2; i++)
   {
      W[i] = new double[J];
      for (int j = 0; j < J; j++)
      {
         srand(time(0));
         W[i][j] = (rand()%200-100)*0.01;
         cout<<time(0)<<" "<<W[i][j]<<endl;
      }
   }

Я там реализовал вывод полученных значений, чтобы их тут же проверять. Так вот тайм каждый раз выводится один и тот же. Соответственно, рендом тоже. То есть массив тупо заполняется одинаковыми числами (например, все элементы по -0.2). Если же убрать тайм и срэнд, то генерятся разные значения. Однако, если программу перезапустить, то набор их будет точно такой же. То есть от запуска к запуску массив не меняется.

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

 
Сообщения: 7170
Зарегистрирован: 26 Июнь Понедельник, 2006 11:11

Re: Программирование

Сообщение Frenzy 29 Декабрь Вторник, 2009 23:44

1. srand() надо делать один раз, а не в каждой итерации цикла.
2. чтобы и в пределах одной секунды программа выдавала разные значения для разных запусков, можно юзать ftime() которая возвращает время в милисекундах.
2pro4U
Аватара пользователя
Frenzy
Scorched one
 
Сообщения: 1249
Зарегистрирован: 23 Январь Воскресенье, 2005 16:46

Re: Программирование

Сообщение AntropoCompus 30 Декабрь Среда, 2009 00:46

Код: Выделить всё
   double **W = new double*[2];
   srand(ftime(0));
   for (int i = 0; i < 2; i++)
   {
      W[i] = new double[J];
      for (int j = 0; j < J; j++)
      {
         W[i][j] = (rand()%200-100)*0.01;
         cout<<ftime(0)<<" "<<W[i][j]<<endl;
      }
   }
Так?
AntropoCompus

 
Сообщения: 7170
Зарегистрирован: 26 Июнь Понедельник, 2006 11:11

Re: Программирование

Сообщение Frenzy 30 Декабрь Среда, 2009 00:59

srand так, а ftime - не так. оно наск. я помню время умеет только в аргумент возвращать, а в return - код ошибки
2pro4U
Аватара пользователя
Frenzy
Scorched one
 
Сообщения: 1249
Зарегистрирован: 23 Январь Воскресенье, 2005 16:46

Re: Программирование

Сообщение AntropoCompus 30 Декабрь Среда, 2009 11:39

Оставил тайм таймом - просто вынес за тело цикла. Теперь, вроде, всё ОК. Спасибо.
AntropoCompus

 
Сообщения: 7170
Зарегистрирован: 26 Июнь Понедельник, 2006 11:11

Re: Программирование

Сообщение TARAKAN 10 Январь Воскресенье, 2010 15:44

delete
вопрос снят
Последний раз редактировалось TARAKAN 13 Январь Среда, 2010 00:59, всего редактировалось 1 раз.
Аватара пользователя
TARAKAN
Tifon
 
Сообщения: 6526
Зарегистрирован: 28 Декабрь Среда, 2005 14:10

Re: Программирование

Сообщение Frenzy 10 Январь Воскресенье, 2010 23:39

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

а вобще что-то смущает в том как вычисляется дт (дальше боюсь смотреть:)
Код: Выделить всё
fd=159.3*W;
N=(int)T*fd;
dt=4*T/(N-1);

что такое 159.3?? - что-то как-то точности маловато. и уверен ли ты в том что надо приводить N к инту?
и вобще если у тебя везде флоаты, то и числовые константы на всякий случай записывай не 2 и 5, а 2.0 и 5.0
2pro4U
Аватара пользователя
Frenzy
Scorched one
 
Сообщения: 1249
Зарегистрирован: 23 Январь Воскресенье, 2005 16:46

Re: Программирование

Сообщение TARAKAN 11 Январь Понедельник, 2010 02:53

delete
вопрос снят
Последний раз редактировалось TARAKAN 13 Январь Среда, 2010 00:59, всего редактировалось 1 раз.
Аватара пользователя
TARAKAN
Tifon
 
Сообщения: 6526
Зарегистрирован: 28 Декабрь Среда, 2005 14:10

Re: Программирование

Сообщение Frenzy 13 Январь Среда, 2010 00:27

мне не надо объяснять, это же не у меня не получается :)
на первый взгляд мне показалось что N и коеффициент используются для выч. X[i], который в итоге участвует в дальнейших вычислениях и из-за отбрасывания дробных частей возможно x[i] наращивается и рисуется неравномерно - тебе конечно виднее так это или нет, твоя ведь формула. если ты попробовал и не помогло - то я сказал что делать дальше. разбей расчёты на части, выводи/дебаж результаты каждой и проверяй.
2pro4U
Аватара пользователя
Frenzy
Scorched one
 
Сообщения: 1249
Зарегистрирован: 23 Январь Воскресенье, 2005 16:46

Re: Программирование

Сообщение KozMan 17 Январь Воскресенье, 2010 23:57

Помогите плиз с расчеткой)))
1 . Вводится последовательность ненулевых чисел, 0 - конец последовательности. Определить сколько раз последовательность поменяет знак.

2. Дано: a = 3.7; x = 2; dx = 0.2 . Z вычислять по формуле: Z = 0.5 cos (x) + ln(a/x в третей степени +1/x) . Считать Z до тех пор, пока выражение под знаком логарифма больше 0.3. Определить k - колличество вычисленых Z. Вывести на экран x, Z, k.


С++ - это пипец)))
Путяга-рулит
Аватара пользователя
KozMan

 
Сообщения: 149
Зарегистрирован: 22 Декабрь Суббота, 2007 19:44

Re: Программирование

Сообщение Mantis 18 Январь Понедельник, 2010 01:11

KozMan писал(а):Помогите плиз с расчеткой)))

А помочь чем, написать программу тебе? :)
"A man can never have too much red wine, too many books, or too much ammunition." (с) Rudyard Kipling.
"Цікаве питання, Мурзик Васильович. Будемо полемізувати?" (с) Лесь Подерев'янський
Аватара пользователя
Mantis
VSD Vampire
 
Сообщения: 16181
Зарегистрирован: 13 Декабрь Суббота, 2003 16:49
Откуда: Из ордена Розенхофф

Re: Программирование

Сообщение Makc 18 Январь Понедельник, 2010 01:16

KozMan
Насчет второго задания:
Вводи данные, считай свою формулу Z в цикле своими начальными данными, инкрементом и с условием
пока выражение под знаком логарифма больше 0.3

В теле цикла поставить счетчик k.
Ничего сложного.

А первое так вообще халява)
"Зачем все усложнять?" – говорила амёба ©
Аватара пользователя
Makc
Lamer killer
 
Сообщения: 3370
Зарегистрирован: 28 Март Вторник, 2006 13:34
Откуда: у меня интернет?

Пред.След.

Вернуться в Hard&Soft

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

cron