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

Правда что С быстрее чем С++? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив http://www.cyberforum.ru/cpp-beginners/thread94648.html
Привет.Помогите пожалуйста решить задачу. В массиве А вставить после первого максимального элемента k наименьших элементов. например 2 5 6 3 6 8 6 4 4 с клавы вводим k=3 получим 2 5 6 3 6 8 2 3 4 4 6 4 (если можно с пояснениями) Заранее спасибо. P.S. Использовать указатели и функции.
C++ Ввод-вывод данных Ввести как значение сталых символы с кодами 186, 201, 205. Вывести в рядок символ с кодом 201, и на том же рядке - 3 символа с кодом 205. А в трех следующих рядках - по одному символу 186. Знаю задача вроде не тяжелая...но я только осваиваю этот язык, но пока ниче не получается. Буду очень рад за любую помощь. http://www.cyberforum.ru/cpp-beginners/thread94635.html
Строки из файла C++
Доброго времени суток. Мне задали задачу по С (в Visual C++), сдавать завтра. В С немного разбираюсь, но тему файлы и строки не понял. То есть совсем не понял. Кроме того, наш преподаватель не принимает без объяснений, поэтому, пожалуйста, вставляйте комменты. Помогите, пожалуйста, решить эту задачу. В файл input.txt Вводится строка Имя:Фамилия:Отчество:Возраст
массив C++
Помогите решить задачу: Определить последний отрицательный максимальный элемент и его позицию в массиве, а также количество положительных элементов.
C++ Создать класс Int http://www.cyberforum.ru/cpp-beginners/thread94616.html
Создайте класс Int, имитирующий стандартный тип int. Единственное поле этого класса должно иметь тип int. Создайте методы, которые будут устанавливать значение поля, равным нулю, инициализировать его целым значением, выводить значение поля на экран и складывать два значения типа Int. Напишите программу, в которой будут созданы три объекта класса Int, два из которых будут...
C++ Описать функцию CircleS(R) Описать функцию CircleS(R) вещественного типа, находящую площадь круга радиуса R(R - вещественное). С помощью этой функции найти площади трех кругов с данными радиусами. Площидь круга радиусом R вычисляеться по формуле S=p*(R*R). p=3.14. Задача на С подробнее

Показать сообщение отдельно
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.02.2010, 22:47
асм код быстрее? вопрос исчерпан.
код взят из ссылки, что я приводил выше.
http://stackoverflow.com/questions/5...-faster-than-c

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
93
94
95
96
97
98
99
#include "stdafx.h"
#include <windows.h>
#include <iostream>
 
using namespace std;
 
float KahanSum
(
  const float *data,
  int n
)
{
   float
     sum = 0.0f,
     C = 0.0f,
     Y,
     T;
 
   for (int i = 0 ; i < n ; ++i)
   {
      Y = *data++ - C;
      T = sum + Y;
      C = T - sum - Y;
      sum = T;
   }
 
   return sum;
}
 
float AsmSum
(
  const float *data,
  int n
)
{
  float
    result = 0.0f;
 
  _asm
  {
    mov esi,data
    mov ecx,n
    fldz
    fldz
l1:
    fsubr [esi]
    add esi,4
    fld st(0)
    fadd st(0),st(2)
    fld st(0)
    fsub st(0),st(3)
    fsub st(0),st(2)
    fstp st(2)
    fstp st(2)
    loop l1
    fstp result
    fstp result
  }
 
  return result;
}
 
int main (int, char **)
{
  int
    count = 1000000;
 
  float
    *source = new float [count];
 
  for (int i = 0 ; i < count ; ++i)
  {
    source [i] = static_cast <float> (rand ()) / static_cast <float> (RAND_MAX);
  }
 
  LARGE_INTEGER
    start,
    mid,
    end;
 
  float
    sum1 = 0.0f,
    sum2 = 0.0f;
 
  QueryPerformanceCounter (&start);
 
  sum1 = KahanSum (source, count);
 
  QueryPerformanceCounter (&mid);
 
  sum2 = AsmSum (source, count);
 
  QueryPerformanceCounter (&end);
 
  cout << "  C code: " << sum1 << " in " << (mid.QuadPart - start.QuadPart) << endl;
  cout << "asm code: " << sum2 << " in " << (end.QuadPart - mid.QuadPart) << endl;
 
  return 0;
}
C code: 500137 in 242311
asm code: 500137 in 117188
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru