Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/54: Рейтинг темы: голосов - 54, средняя оценка - 4.61
JirniiMongol
3 / 3 / 0
Регистрация: 14.10.2012
Сообщений: 12
1

Измерить время выполнения программы

14.10.2012, 05:06. Просмотров 10025. Ответов 4
Метки нет (Все метки)

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
#include <stdio.h>
#include <math.h>
#include <time.h>
main ()
{ FILE *in;
  FILE *out;
  float x,y;
  clock_t start, end;
 
start = clock();
in=fopen("acc.txt","r");
out=fopen("out.txt", "w");
fscanf(in, "%f %f", &x, &y);
if ((x<=0||x>=1000000)||(y<=0||y>=1000000))
   {fprintf (out, "Nedopustimie znacheniya\n");
   end = clock();
   fprintf(out, "%.4lf\n", (end - start) / (CLOCKS_PER_SEC));
   }
else
   { 
   fprintf(out, "P vpisannogo kvadrata vpisannogo v okrujnost raven %.3f; S ravna %.3f; \nP opisanogo okolo okrujnosti kvadrata raven %.3f; S ravna %.3f\n", (sqrt(2)*4*x), (x*x*2), (8*x), (4*x*x)); 
   fprintf(out, "P orrujnosti vpisanoi v kvadrat raven %.3f; S ravna %.3f;\nP orrujnosti opisannoi okolo kvadrata ravna %.3f; S ravna %.3f\n", (3.14*y), (3.14*y*y/4), (3.14*y*sqrt(2)), (3.14*2*y*y));
   fprintf(out, "P ravnostoronnego treugolnika vpisannogo v okrujnost raven %.3f; S ravna %.3f;\nP ravnostoronnego treugolnika opisannogo okolo okrujnosi raven %.3f; S ravna %.3f\n", (0.87*x*6), (x*x*0.87*0.87*2*0.87), (6*sqrt(3)*x), (3*sqrt(3)*x*x));
   fprintf(out, "P okrujnosti vpisannoi v ravnostoronnii treugolnik %.3f; S ravna %.3f;\nP okrujnosti opisannoi okolo ravnostoronnego treugolnika %.3f; S ravna %.3f;\n",   (y*3.14*sqrt(3)/3.) ,(3.14*y*y/12),(2*sqrt(3)/3*3.14*y), (3.14*y/3));
   end = clock();
   printf("%lf\n",(end - start) / (CLOCKS_PER_SEC));
   }
}
Программа считывает два числа из текстового файла, проводит расчеты и выводит результат и время выполнения в другой текстовый файл, только вместо времени выполнения программы выводится одно из чисел полученных в предыдущих расчетах.
Помогите пожалуйста разобраться, что не так?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 05:06
Ответы с готовыми решениями:

Измерить время выполнения сортировки
Всем привет) Хелпаните с задачей: Измерить время выполнения сортировки(в наносек-х), пытался с...

Задать время выполнения программы
Нужно, чтобы некоторый код выполнялся в течение 5 минут, а после выводились результаты его...

Как ограничить время выполнения программы?
Добрый день! Задали написать программу, следующего содержания: &quot;Для натурального числа сумма...

Задание размера массива после его объявления во время выполнения программы
Ребята, подскажите, как задать размер массиву во время выполнения. Я напишу пример на java - нужно...

Во время выполнения программы вылетает ошибка "The variable 'x' is being used without being initialized"
нужно найти &quot;y&quot; со значениями от -9 до 9 в итоге я сделал программу, при обработке выдает формула...

4
JirniiMongol
3 / 3 / 0
Регистрация: 14.10.2012
Сообщений: 12
15.10.2012, 09:28  [ТС] 2
Помогите кто-нибудь.
0
grinnik
1 / 1 / 0
Регистрация: 08.11.2012
Сообщений: 3
08.11.2012, 18:49 3
Difftime

C
1
2
#include  <time.h>
double difftime(time_t time2, time_t time1);
Функция difftime() возвращает разность в секундах между значениями параметров time1 и time2, т.е. возвращается значение выражения time2-time1.

Пример

Эта программа отображает время в секундах, требуемое для выполнения пустого цикла 5 000 000 раз:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <time.h>
#include <stdio.h>
 
int main(void)
{
  time_t start,end;
  volatile long unsigned t;
 
  start = time(NULL);
  for(t=0; t<5000000; t++) ;
  end = time(NULL);
  printf("Цикл использовал %f секунд.\n", difftime(end, start));
 
  return 0;
}
1
uburuntu
95 / 95 / 58
Регистрация: 04.10.2012
Сообщений: 189
08.11.2012, 23:08 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
else
   { 
   ...
   end = clock();
   printf("%lf\n",(end - start) / (CLOCKS_PER_SEC));
   }
Если я правильно понял, то тут тоже должно быть:
C
1
fprintf(out, "%.4lf\n", (end - start) / (CLOCKS_PER_SEC));
0
JirniiMongol
3 / 3 / 0
Регистрация: 14.10.2012
Сообщений: 12
11.11.2012, 08:27  [ТС] 5
Спасибо
0
11.11.2012, 08:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2012, 08:27

Как измерить время выполнения программы с использованием RDTSC
Мне нужно используя RDTSC (как я понял, это ассемблерной вставкой делать нужно) посчитать время...

Нужно уменьшить время выполнения программы
Здравствуйте! Помогите, пожалуйста. Нужно уменьшить время выполнения программы, как это можно...

Моделирование маятника: измерить время движения маятника с начала его движения до полной остановки
Подскажите пожалуйста какую формулу в данном коде добавить чтоб измерялось время движения маятника...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru