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

Время выполнения - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
18.10.2010, 00:25     Время выполнения #1
Я здесь в первый раз и ещё не разобралась с форумом, дико извиняюсь если что не так.

Мне нужно чтобы определялось время выполнения программы. Программа на си++ в консоли. И нужно чтоб выводилось сколько времени выполнялась программа, чтоб потом график сделать зависимость количества шагов от времени выполнения.
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
#include <vcl.h>
#pragma hdrstop
 
#include <tchar.h>
#include <iostream.h>
#include <stdio.h>
#include<conio.h>
#include <string.h>
 
//---------------------------------------------------------------------------
 
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
 int A[10][10];
 int B[10];
 int n;
 int m;
 int f; f=0;
 int min;
     cout << "Vvedite massiv ";
 for (n = 0; n < 3; n++) {
 for (m = 0; m < 3; m++) {
   cin >> A[n][m];
 }
 
 }
     cout << "Poluchennyj massiv\n";
 for (n = 0; n < 3; n++) {
 for (m = 0; m < 3; m++) {
   cout << A[n][m]<<" ";
 }
      cout << "\n";
 }
 
     cout << "Massiv iz summ elementov strok\n";
 for (n = 0; n < 3; n++) {
 for (m = 0; m < 3; m++) {
     f=A[n][m]+f;
 }
  B[n]=f;  f=0;
 }
 for (n = 0; n < 3; n++) {
       cout << B[n]<<" ";
 }
   cout << "\n";
 cout << "Massiv iz proizvedenij elementov strok\n";
 f=1;
 for (n = 0; n < 3; n++) {
 for (m = 0; m < 3; m++) {
     f=A[n][m]*f;
 }
  B[n]=f;  f=1;
 }
 for (n = 0; n < 3; n++) {
       cout << B[n]<<" ";
 }
   cout << "\n";
 cout << "Massiv iz srednih arifeticheskih elementov strok\n";
 
 for (n = 0; n < 3; n++) {
 for (m = 0; m < 3; m++) {
     f=A[n][m]+f;
 }
  B[n]=f/3;  f=0;
 }
 for (n = 0; n < 3; n++) {
       cout << B[n]<<" ";
 }
    for (n = 0; n < 3; n++) {
       if (B[n]<B[n+1]) min=B[n]; else min=B[n+1];
     }
   for (n = 0; n < 3; n++) {
     B[n]=min;
 }
  cout << "\n";
     cout << "Massiv iz naimenshih srednih arifeticheskih elementov strok\n";
       for (n = 0; n < 3; n++) {
       cout << B[n]<<" ";
 }
  char t;
  t = getch();
}
Проблема в том, что я плохо знаю синтаксис, а чтоб в поисковике спросить сформулировать не могу.
у меня задан, что массив три на три, а надо чтоб менялось от 2 до 1000 и чтоб массив заполнялся рандомно. и вот допустим выполнилась программа с массивом 2 на 2 в конце написалось время выполнения там доли секунды должны быть, потом выполнилась с массивом 3 на 3 и в конце опять время выполнения и так далее. необязательно чтоб шаг был 1, можно 100. то есть сначала считается с массивом 2 на 2 потом 102 на 102. Надеюсь понятно выразилась
Очень прошу помочь, буду благодарна!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2010, 00:25     Время выполнения
Посмотрите здесь:

C++ Время выполнения процедуры в С++ 3.1
C++ Время выполнения функции
C++ Время выполнения алгоритма
C++ Измеряем время выполнения
Время выполнения процеса C++
C++ Время выполнения
C++ Ошибка во время выполнения
C++ Время выполнения сортировки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
18.10.2010, 05:57     Время выполнения #2
Вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
#define N 100000
 
int main(void)
{
    clock_t start = clock();
    size_t i, j, a;
    for(i = 0; i < N; ++i)
        for(j = 0; j < N; ++j)
            a = pow(2, 20);
            
    clock_t finish = clock();
    printf("The program worked %.2f seconds...\n",
             (finish - start) / (double) CLOCKS_PER_SEC);   
    return EXIT_SUCCESS;
}
Как ты наверно догадываешься, эта программа замеряет время выполнения части программы между строками 10 и 16

Вот собственно и оно:
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
#define a -100
#define b 100
#define size1 2
#define size2 1000
#define n 15
#define step (size2 - size1) / n
 
int main(void)
{
    srand((size_t) time(NULL));
    size_t i, j, k;
    int matrix[size2][size2];
    clock_t start, finish;
    double t;
    for(i = size1; i <= size2; i += step)
    {
        start = clock();
        
        for(j = 0; j < i; ++j)
            for(k = 0; k < i; ++k)
                matrix[j][k] = rand() % (b - a + 1) + a;
        
        finish = clock();
        t = (finish - start) / (double) CLOCKS_PER_SEC;
        printf("Size = %4u, time = %f\n", i, t);
    }
    
    i = size2;
    
    start = clock();
        
    for(j = 0; j < i; ++j)
        for(k = 0; k < i; ++k)
            matrix[j][k] = rand() % (b - a + 1) + a;
        
    finish = clock();
    t = (finish - start) / (double) CLOCKS_PER_SEC;
    printf("Size = %4u, time = %f\n", i, t);
    return EXIT_SUCCESS;
}
Yandex
Объявления
18.10.2010, 05:57     Время выполнения
Ответ Создать тему
Опции темы

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