Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Danzel
6 / 6 / 3
Регистрация: 21.08.2012
Сообщений: 45
#1

Написать таймер к задаче - C++

16.09.2012, 17:09. Просмотров 485. Ответов 2
Метки нет (Все метки)

Ребят помогите написать таймер к этой задаче:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
#define DIM 1024
 
#include "gl_helper.h"
#include "cpu_bitmap.h"
 
//#pragma comment (lib,"OPENGL32.lib")
//#pragma comment (lib,"GLU32.lib")
//#pragma comment (lib,"GLAUX.lib")
#pragma comment (lib,"glut32.lib")
#pragma comment (lib,"glut.lib")
 
 
int julia(int x, int y);
void kernel(unsigned char *ptr);
 
struct cuComplex {
    float r,i;
    
    
};
 
 
 
int main(void)
{
    CPUBitmap bitmap(DIM,DIM);
    unsigned char *ptr=bitmap.get_ptr();
    kernel(ptr);
 
 
 
    bitmap.display_and_exit();
 
    
}
 
 
void kernel(unsigned char *ptr)
{
    for(int y=0;y<DIM;y++)
    {
        for(int x=0; x<DIM; x++)
        {
            int offset=x+y*DIM;
 
            int juliaValue=julia(x,y);
 
            ptr[offset*4 + 0]=255*juliaValue;
            ptr[offset*4 + 1]=0;
            ptr[offset*4 + 2]=0;
            ptr[offset*4 + 3]=255;
        }
    }
}
 
int julia(int x, int y)
{
    const float scale =1.5;
    float jx=scale*(float)(DIM/2.0 - x)/(DIM/2.0);
    float jy=scale*(float)(DIM/2.0 - y)/(DIM/2.0);
 
    cuComplex c;
    cuComplex a;
    cuComplex k;
 
    c.i=0.156f;
    c.r=-0.8f;
    a.r=jx;
    a.i=jy;
    
    for (int i=0; i< 200; i++) 
    {
        k.r = a.r*a.r-a.i*a.i+c.r;  
        k.i = 2*a.r*a.i+c.i;
        
        if ((k.r*k.r+k.i*k.i) > 1000)
            return 0;
 
        a.r=k.r;
        a.i=k.i;
    }
    
    return 1;
}
Я пробовал библиотеку time.h
но она выводит либо 0 либо 1,а других таймеров я не знаю(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2012, 17:09     Написать таймер к задаче
Посмотрите здесь:

Помогите написать код к задаче. C++
C++ Не могу написать программу по задаче по строкам!!
комметарии к задаче C++
Crash в задаче с тимуса C++
C++ Засада на 3-ей Задаче
C++ Тема: Циклы, функции. Написать программу по данной задаче
C++ Тема: Циклы, строковый тип. Написать программу по данной задаче
Как написать свой таймер? C++
Ошибка в задаче C++
C++ Как написать условие к задаче с целыми числами?
C++ Класс в задаче
C++ Объясните как написать код к задаче :)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
16.09.2012, 17:29     Написать таймер к задаче #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Timer
{
public:
    Timer();
 
    void reset();
    void update();
 
    double now();
    float elapsed();
 
private:
    float m_elapsed;
    double m_lastTime;
};
 
#include <windows.h>
 
Timer::Timer()
: m_elapsed( 0.0 )
, m_lastTime( 0.0 )
{}
 
void Timer::reset()
{
    m_elapsed = 0.0;
    m_lastTime = this->now();
}
 
void Timer::update()
{
    double currentTime = this->now();
    m_elapsed = currentTime - m_lastTime;
    m_lastTime = currentTime;
}
 
double Timer::now()
{
    LARGE_INTEGER timeVal;
    LARGE_INTEGER frequency;
    ::QueryPerformanceCounter( &timeVal );
    ::QueryPerformanceFrequency( &frequency );
    return static_cast< double >( timeVal.QuadPart ) / frequency.QuadPart;
}
 
float Timer::elapsed()
{
    return m_elapsed;
}
Danzel
6 / 6 / 3
Регистрация: 21.08.2012
Сообщений: 45
16.09.2012, 18:57  [ТС]     Написать таймер к задаче #3
Прошу прощения,у нас по классам было всего две лекции в прошлом семестре,и я не до конца понял как с ними работать,но я думаю что примерно должно быть так,но после компиляции есть ошибки:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(void)
{
    
    Timer t = Timer();
    CPUBitmap bitmap(DIM,DIM);
    unsigned char *ptr=bitmap.get_ptr();
    t.reset();
    kernel(ptr);
    t.update();
    printf("tratata",t.now());
 
    bitmap.display_and_exit();
 
    
}
Плиз помогите)

Добавлено через 54 минуты
Все я с классом разобрался,только теперь скажи пожалуйста в чем этот таймер измеряется,в секундах или миллисекундах?

Добавлено через 2 минуты
Я склоняюсь к милисекндам,если это так то спасибо огромное вам за помощь)
Yandex
Объявления
16.09.2012, 18:57     Написать таймер к задаче
Ответ Создать тему
Опции темы

Текущее время: 22:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru