Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 14 из 87<  1 ... 11  12  13  14  15  16  17 ... 87  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
Я ранее выкладывал код (определение тактовой частоты процессора), значит MSVC++ его не захотел компилировать, а вот Builder C++ “согласился”, но мне не нравится, что результат всегда разный, это видимо зависит от функции Sleep(…), может кто-нибудь посоветует код более точный, а то с этим погрешность слишком большая!
Код:
double CPUSpeed(void)
{
   DWORD dwTimerHi, dwTimerLo;
 
   __asm
   {
      DW 0x310F
      mov dwTimerLo, EAX
      mov dwTimerHi, EDX
   }

   Sleep(500);

   __asm
   {
      DW 0x310F
      sub EAX, dwTimerLo
      sub EAX, dwTimerHi
      mov dwTimerLo, EAX
      mov dwTimerHi, EDX
   }
   
   return dwTimerLo / (1000.0*500);
}



Партнер
 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
-=alex-forewer=-
Перевод кода из CPU Informer:

Код:
  LARGE_INTEGER QPCBefore, QPCAfter, Frequency;
  int TimerHi, TimerLo;
  LARGE_INTEGER lRdtscS,lRdtscE;
  double QPCTicks, result;

  SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);


  asm
  {
    rdtsc
    mov TimerLo, eax
    mov TimerHi, edx
  }

  QueryPerformanceCounter(&QPCBefore);

  lRdtscS.HighPart=TimerHi;
   lRdtscS.LowPart=TimerLo;
  TimerHi=0;
  TimerLo=0;

  asm
  {
    mov     ecx, 1312D00h
    @Cycle:
      mov     eax, 1E9E4h
      mov     ebx, 5C2h
      imul    ebx
      dec     ecx
      jnz     @Cycle
  }

  QueryPerformanceCounter(&QPCAfter);

  asm
  {
    rdtsc
    mov TimerLo, eax
    mov TimerHi, edx
  }

  QueryPerformanceFrequency(&Frequency);

  lRdtscE.HighPart=TimerHi;
  lRdtscE.LowPart=TimerLo;

  SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);

  QPCTicks=1000000*(QPCAfter.QuadPart-QPCBefore.QuadPart)/(Frequency.QuadPart);

  result=(lRdtscE.QuadPart - lRdtscS.QuadPart)/(QPCTicks);

©Daemon :)

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

-=alex-forewer=- писал(а):
Я ранее выкладывал код (определение тактовой частоты процессора), значит MSVC++ его не захотел компилировать, а вот Builder C++ “согласился”,

В MSVC++ в блоках __asm нельзя использовать DB, DW, DD, DQ, DT, DF. В борландовской стройке - можно, отсюда и грабли. Пользуйся rdtsc.
LiS95 писал(а):
Только можно пару вопросов: Что такое conio.h

Заголовочный файл, содержащий объявления процедур ввода-вывода для работы с консолью.
LiS95 писал(а):
и чем отличаются float от double?

А MSDN открыть?;)
Код:
Type   Exponent length  Mantissa length 
float       8 bits           23 bits
double      11 bits          52 bits

Type    Minimum value                 Maximum value 
float   1.175494351 E – 38            3.402823466 E + 38
double  2.2250738585072014 E – 308    1.7976931348623158 E + 308


 

Member
Статус: Не в сети
Регистрация: 09.08.2005
Откуда: Земля
Извините за назойливость, помогите мне составить программу, которая определяет, попадает ли точка с заданными координатами. Результат программы вывести в виде текстового сообщения. Вот рисунок
#77
На предыдущей странице есть решение, но подходит ли оно к рисунку?


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
LiS95 Попадает ли она в затемненную область?

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 09.08.2005
Откуда: Земля
ДА, и если не попадает, то нужно возратится к предложению ввести радиус.
Никто не знает решения?
Прав ли я, что у словие попадания и не попадания нужно писать в одной строчке, через || ?


Последний раз редактировалось LiS95 01.10.2006 18:41, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
mnz
Цитата:
Пользуйся rdtsc.

Угу, только я впервые слышу и вижу это название (rdtsc), может пояснишь?


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
-=alex-forewer=-
Оно возвращает в edx:eax кол-во циклов от загрузки...

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

-=alex-forewer=- писал(а):
Угу, только я впервые слышу и вижу это название (rdtsc), может пояснишь?

Инструкция процессора Read Time-Stamp Counter, опкод 0F 31. Загружает в EDX:EAX число тактов процессора с момента последнего reset'a, старшие 32 бита - в EDX, младшие - в EAX. Если компилируешь MSVC, замени
Код:
DW OF31
на
Код:
rdtsc
в коде на предыдущей странице. Ежели не нравятся асмовые вставки, пользуйся __rdtsc intrinsic, пример есть в MSDN.:wink:


Последний раз редактировалось mnz 02.10.2006 7:53, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
LiS95 тогда так
Код:
#include<stdio.h>
#include<math.h>

void main()
{
   float r,x,y,k,x1,y1;
   bool flag=false;
   do {
      printf("Vvedite radius r ");
      scanf("%f",&r);
      printf("Vvedite x ");
      scanf("%f",&x);
      printf("Vvedite y ");
      scanf ("%f",&y);

      if (x<=0 && y>=0)
      {
         k=atan(y/x);
         x1=cos(k)*r;
         y1=sin(k)*r;
   
         if ((fabs(x)<=fabs(x1)) && (fabs(y)<=fabs(y1)))
         {
            printf("Point in the area.");
            flag = true;
         }
         else printf("Point out of area.\n");
      }
      else if (x>0 && y<0)
      {
         if (y>=-r && x>=y/(-2) && x<=r/2)
         {
            printf("Point in the circle.");
            flag = true;
         }
         else printf("Point out of area.\n");

      }

   } while (flag==false);
}

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
mnz писал(а):
Инструкция процессора Read Time-Stamp Counter, опкод 0F 31.
Точно, я немного с cpuid промахнулся :)

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
mnz Спасибо за информацию :) .
Цитата:
Ежели не нравятся асмовые вставки, пользуйся __rdtsc intrinsic, пример есть в MSDN.

Да нет, пока очень нравится! Правда я ещё ничего толком не написал, используя вставки ассемблера, да и вообще ещё ничего толкового не написал, но думаю к концу года что-нибудь будет, обязательно какая-нибудь игра, естественно 2D, планирую морской бой. У кого есть опыт написания морского боя, прошу поделетись в ЛС, а то с нуля начинать очень тяжело!


 

Member
Статус: Не в сети
Регистрация: 18.08.2005
Откуда: Новороссийск
Как определить поддержку технологии 3Dnow! и SSE3, а ещё если можно то и SSE4?


 

-=alex-forewer=- писал(а):
У кого есть опыт написания морского боя, прошу поделетись в ЛС, а то с нуля начинать очень тяжело!

Попробуй книгу Павловской "Програмирование на С++" там есть работающий исходник(сам проверял) :)


 

Member
Статус: Не в сети
Регистрация: 31.08.2005
Откуда: Мир
Подскажите плиз вещь одну..как подключиться к базе данных на С++?
Компилятор g++ (на сервере)

И ещё вопрос. Как получить время в микросекундах? я хочу замерить время выполнения программы.


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
pretorian что? Что хоть за база, что такое компилятор на сервере? :)

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 31.08.2005
Откуда: Мир
Daemon писал(а):
pretorian что? Что хоть за база, что такое компилятор на сервере? :)


Ну база mySQL, а компилятор на сервере..может я не так выразился... щас обясню: вот я пишу файл на с++ например, заливаю его на сервер, через програмку putty ввожу шелл-комаанду g++ script.c -o script.cgi и получается файлик cgi.


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Гугли по слову mysql++, но за cgi зря взялся, имхо.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 31.08.2005
Откуда: Мир
Daemon писал(а):
Гугли по слову mysql++, но за cgi зря взялся, имхо.


а почему зря? я хочу чтобы какието математические вычисления просходили в нем а не на php


 

Подскажите, какой операцией можно очистить окно консоли? #include<cstdlib>, system("cls"); не подхидит, ибо экран начинает сильно мигать ( это надо для, в общем, некого подобия компьютерной игры ).


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 14 из 87<  1 ... 11  12  13  14  15  16  17 ... 87  >
-

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan