Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 21.05.2018
Сообщений: 55
1

Как рационально выяснить сколько времени работала программа

23.05.2018, 12:41. Показов 704. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как посчитать сколько времени работает программа? Точнее сама сортировка. Так как если вставить таймер в начале main, он считает и то время, пока происходит выбор сортировки по убыванию/возрастанию.

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
89
90
91
92
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;
void rus_did(int *mas, int *rmas, int *q);
void rus_maz(int *mas, int *rmas, int *q);
void paslenkame(int *ind, int *rmas, int i);
 
int main(){
    int q=0; 
    int *mas;
    FILE *fp;
        fp = fopen("duom.txt", "r");
        mas=(int*) malloc(sizeof(int));
        for(;(fscanf(fp, "%i", mas+q))!=EOF;){
                q++;
                mas=(int*) realloc(mas, (q+1)*sizeof(int));
        }
        mas=(int*) realloc(mas, q*sizeof(int));
        fclose(fp);
    int rmas[q];
    int i;
    char c;
    //printf("sort d-ascending, m-descending\n");
    scanf("%c", &c);
        getchar(); //skippina \n
    if(c=='d'){
        rus_did(mas, rmas, &q);
    }
    else{
        rus_maz(mas, rmas, &q);
    }
    free(mas);
    fp = fopen("rez.txt", "w");
        for(i=0;i+1<q;i++){
            fprintf(fp,"%i ", *(rmas+i));
        }
        fprintf(fp,"%i", *(rmas+i));
    fclose(fp);
  return 0;
 
}
 
void paslenkame(int *ind, int *rmas, int i){
    for(;i>*ind;i--){
        rmas[i]=rmas[i-1];
    }
}
 
void rus_did(int *mas, int *rmas, int *q){
    int i;
    int kaireje=0;
    int ind;
    rmas[0]=mas[0];
    for(i=1;i<*q;i++){
        ind=kaireje;
        if(rmas[kaireje]>=mas[i]){
            kaireje++;
            for(;rmas[ind]>mas[i]&&ind>=0;ind--);
            ind++;
            paslenkame(&ind, rmas, i);
            rmas[ind]=mas[i];
        }
        else{
            for(;rmas[ind]<mas[i]&&ind<i;ind++);
            paslenkame(&ind, rmas, i);
            rmas[ind]=mas[i];
        }
    }
}
 
void rus_maz(int *mas, int *rmas, int *q){
    int i;
    int kaireje=0;
    int ind;
    rmas[0]=mas[0];
    for(i=1;i<*q;i++){
        ind=kaireje;
        if(rmas[kaireje]<=mas[i]){
            kaireje++;
            for(;rmas[ind]<mas[i]&&ind>=0;ind--);
            ind++;
            paslenkame(&ind, rmas, i);
            rmas[ind]=mas[i];
        }
        else{
            for(;rmas[ind]>mas[i]&&ind<i;ind++);
            paslenkame(&ind, rmas, i);
            rmas[ind]=mas[i];
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2018, 12:41
Ответы с готовыми решениями:

Сделать, чтобы программа работала определенное количество времени
Прошу помощи. Искал в инете способы решения, но к сожалению не нашел. Цель: Сделать, чтобы...

Как измерить, сколько времени считала программа?
Запускается прога, запрашивает число (например 1000), включается таймер (или читается время из...

Как посчитать сколько времени прошло по заданному интервалу времени
Например сколько времени прошло от 10:00 до 9:59? часовой формат 23 часовой. Пробовал циклами...

Как доделать чтобы программа работала ?
#include &lt;iostream&gt; using namespace std; int main() { double x, y; cout « &quot;Введите Х...

5
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
23.05.2018, 16:17 2
До и после вызова функции.
0
0 / 0 / 0
Регистрация: 21.05.2018
Сообщений: 55
25.05.2018, 22:39  [ТС] 3
nmcf, Да, спасибо. И до Вашего совета так пробовал, только со слишком маленьким количеством элементов, так и показывало постоянно 0)) Только возник вопрос - clocks per second это как?
0
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
25.05.2018, 22:57 4
Ну а что ты хотел? Возьми массив больше.
Цитата Сообщение от Wrigley Посмотреть сообщение
clocks per second это как?
Ну сколько единиц счётчика приходится на секунду.
0
19 / 17 / 7
Регистрация: 18.09.2017
Сообщений: 95
26.05.2018, 04:51 5
Цитата Сообщение от Wrigley Посмотреть сообщение
показывало постоянно 0
Нажми кнопку турбо.
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
26.05.2018, 07:39 6
http://en.cppreference.com/w/cpp/chrono
0
26.05.2018, 07:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2018, 07:39
Помогаю со студенческими работами здесь

Как сделать чтоб программа работала определенный промежуток времени
Всем привет! Подскажите, пожалуйста, следующие: Нужно чтоб программа работала определенное...

Как правильно скомпилировать чтобы программа работала на компьютерах, на которых не установлен билдер(чтобы работала база данных)
Сделана база данных на BDE при сохранении скомпилировал &quot;Relese&quot;, на другом пк где не установлен...

Как сделать чтоб база б/д access работала до определенного времени
Как сделать чтоб база б/д access работала до определенного времени, какой макрос там нужен... ...

Как сделать что-бы работала программа?
Дана матрица A(mxn) и целые числа p и q. Преобразовать матрицу А так, чтобы строка с исходным...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru