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

Расчёт дисперсии - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ перевести программу на С++ http://www.cyberforum.ru/cpp-beginners/thread847973.html
помогите перевести программу с паскаля на С++. uses crt; var i,n:integer; a1,a2,a,eps:real; l:boolean; begin clrscr; l:=false; writeln($$n,eps $$);
C++ двоичный поиск Подскажите, пожалуйста, в вопросе: Какое дополнительное требование к массиву может быть применено при двоичном поиске, что бы определить положение нового элемента. То, что массив должен быть отсортирован - это по - моему основное требование (не дополнительное). То, что элементы массива должны формировать двоичное дерево поиска - бред по-моему. (ни чего не должны). То, что массив должен... http://www.cyberforum.ru/cpp-beginners/thread847967.html
C++ найти наименьший номер последовательности
Найти наименьший номер члена последовательно*сти, для которого выполняется условие |{a}_{n}-{a}_{n-1}|<\varepsilon. Выве*сти на экран этот номер и все элементы аi, где i = 1, 2..... n. ε=0.001 последовательность a=arctg {a}_{n-1}+1, {a}_{1}=0 Помогите пожалуйсто зделать ее на С++. Заранее огромное спасибо. Добавлено через 5 минут примерно она должна выглядеть вот так, только она у...
C++ Коментарий к челночной сортировки
Помогите написать коментарий к челночной сортировке С++. Пожалуйста))) Словарный запас иссяк))) void CHELN_sort(int a,long N) { cout<<"CHELN_sort RUN\n"; for(int j=0;j<N-1;j++) { if(a>a) { a=a+a;
C++ Три города http://www.cyberforum.ru/cpp-beginners/thread847930.html
В республике N городов пронумерованных с 1 до N. M городов связаны дорогами. Найти три города не связанных между собой дорогами. Формат входного файла Во входном файле записаны сначала два числа N и M, задающие соответственно количество вершин и количество ребер (1≤N≤100, 1≤M≤10000), а затем перечисляются ребра. Каждое ребро задается номерами вершин, которые оно соединяет. Формат выходного...
C++ Расстояние от точки до луча (описание внутри) Помогите люди добрые :) Расстояние от точки до луча Даны координаты точки (x,y) и координаты начала и конца вектора (x1,y1) и (x2,y2). Формат входных данных Шесть чисел x y x1 y1 x2 y2 — координаты точки и координаты начала и конца вектора. Формат выходных данных Одно число — расстояние от точки до луча, определяемого вектором. Результат вывести с точностью до четырех знаков после точки.... подробнее

Показать сообщение отдельно
gazlan
2903 / 1851 / 277
Регистрация: 27.08.2010
Сообщений: 4,992
Записей в блоге: 1
26.04.2013, 01:19     Расчёт дисперсии
Цитата Сообщение от GTG Посмотреть сообщение
везде double
Издеваетесь? У вас везде целочисленные литералы.

Код сейчас посмотрю и отвечу.

Добавлено через 1 час 30 минут
Насколько смог, попытался исправить этот кошмар. О корректности ваших формул ничего не могу сказать, но очевидно, что у вас нет представления не только о C, но и о программировании вообще.

Почитайте хотя бы вводные главы (файлы, циклы) любого учебника.

И еще. Я уже писал в другом топике, как точка вместо запятой стоила американцам потери Mariner-1.

Пока идиомы языка, стиль форматирования кода, выбор корректного типа данных, регистра букв и имен переменных будут для вас "мелочью", вы обречены.

Good Luck !



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
100
101
102
103
104
105
#include <stdio.h>
#include <math.h>
#include <stdio.h>
 
#define  MAX_ARR_SIZE            (20000)
#define  OUTER_LOOP_CNT          (1000)
#define  INNERR_LOOP_CNT         (30)
#define  INPUT_LOOP_CNT          (10000)
#define  CALC_LOOP_CNT           (10000)
 
int main(int argc,char** argv)
{
   FILE*    pIn = fopen("data.txt","rt");
 
   if (!pIn)
   {
      printf("file In wasn't opened.\n");
      return 0;
   }
 
   double   pW1[MAX_ARR_SIZE];
   double   pW2[MAX_ARR_SIZE];
   double   pPP[MAX_ARR_SIZE];
 
   memset(pW1,0,sizeof(double) * MAX_ARR_SIZE);
   memset(pW2,0,sizeof(double) * MAX_ARR_SIZE);
   memset(pPP,0,sizeof(double) * MAX_ARR_SIZE);
 
   double   fSum  = 0.0;
   double   fSum2 = 0.0;
 
   for (int kk = 0; kk < INPUT_LOOP_CNT; ++kk)
   {
      char     pszTemp[MAX_PATH + 1];
 
      fgets(pszTemp,MAX_PATH,pIn);
 
      sscanf(pszTemp,"%Lf",&pW1[kk]);
 
      fSum  += pW1[kk];
      fSum2 += pW1[kk] * pW1[kk];
   }
 
   fclose(pIn);
   pIn = NULL;
 
   FILE*    pOut1 = fopen("s.txt","wt");
 
   if (!pOut1)
   {
      printf("File Out1 wasn't opened.\n");
      return 0;
   }
 
   FILE*    pOut2 = fopen("d.txt","wt");
 
   if (!pOut2)
   {
      printf("File Out2 wasn't opened.\n");
      return 0;
   }
 
   double   fA2 = fSum;
 
   double   qq = 0.01;
 
   for (int ii = 0; ii < OUTER_LOOP_CNT; ++ii, qq += 0.01)
   {
      double   rr = 0.0001;
 
      for (int jj = 0; jj < INNERR_LOOP_CNT; ++jj, rr += 10.0)
      {
         pW2[0] = pW1[0];
         pPP[0] = 0;
 
         double   fSum3 = fSum;
 
         double   fSum21 = 0.0;
         double   fSum22 = 0.0;
 
         for (int ll = 1; ll < CALC_LOOP_CNT; ++ll)
         {
            pPP[ll] = qq + pPP[(ll - 1)] * (1 - (pPP[(ll - 1)] / ((pPP[(ll - 1)] + rr))));
 
            pW2[ll] = (1 - (pPP[(ll - 1)] / ((pPP[(ll - 1)] + rr)))) * pW2[(ll - 1)] + pPP[(ll - 1)] * pW1[ll] / ((pPP[(ll - 1)] + rr));
 
            fSum3 += pW2[ll];
 
            fSum21 += pW2[ll] * pW2[ll];
            fSum22 += pW2[ll];
         }
 
         double   fD1 = 1.E-4 * fSum   - 1.E-8 * fA2    * fA2;
         double   fD2 = 1.E-4 * fSum21 - 1.E-8 * fSum22 * fSum22;
 
         fprintf(pOut1,"%lf %lf %lf %lf\n",qq,rr,1.E-4 * fSum3);
         fprintf(pOut2,"%lf %lf %lf %lf\n",qq,rr,fD1 / fD2);
      }
   }
 
   fclose(pOut1);
   fclose(pOut2);
 
   return 0;
}
 
Текущее время: 04:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru