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

Генерация чисел. Пуассон. Код не фурычит - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В заданной строке удалить заданную подстроку, сколько бы раз она не встречалась http://www.cyberforum.ru/cpp-beginners/thread660908.html
Ребят, помогите разобраться. Стоит задача создать программу со строками, string.h желательно не использовать. В заданной строке удалить заданную подстроку, сколько бы раз она не встречалась. Вот мой код: #include <iostream> #include <stdio.h> #include <string.h> #include "stdafx.h" #include <conio.h>
C++ Метод многих поверхностей Подскажите, пожалуйста, где можно почитать о методе "многих поверхностей" (multi-surface method). С его помощью нужно будет построить сетку на области. http://www.cyberforum.ru/cpp-beginners/thread660897.html
Задача на сортировку массива методом вставки на С++ C++
Помогите, пожалуйста, решить задачу. Отсортируйте по возрастанию методом вставки одномерный целочисленный массив, введенный с клавиатуры. Выведите на экран исходный и отсортированный массивы. (Сортировка вставками: пусть первые k элементов массива уже упорядочены по неубыванию. Берется (k+1)-й элемент и размещается среди первых k элементов так, чтобы упорядоченными оказались уже k+1 первых...
Система счисления - выводится лишний ноль C++
Добрый день! Вопрос мой состоит в следующем: Много видел уже готовых программ по переводу чисел из одной системы в другую,но захотел сделать сова алгоритм. Я использую цикл do/while, считаю лучшим вариантом(если не так поправьте, пожалуйста) Вот что получилось: a - вводимое число; b - остаток от деления; cin >> a; a = a/2; b = a%2;
C++ что-то не то с функциями! http://www.cyberforum.ru/cpp-beginners/thread660846.html
#include <iostream> #include <conio.h> #include <math.h> #include <fstream> #include <iomanip> using namespace std; double n=1; double m=0,x=0,z=0,s=0,a=0,b=0,h=0,q=0,w=0,e=0,zz=0,p=0; ifstream in; ofstream out;
C++ Программа для вычисления выражений A= min(sin x, min (y,x)) Max(x^y,y) (не использовать макрокоманд Max и Min) подробнее

Показать сообщение отдельно
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
30.09.2012, 22:09     Генерация чисел. Пуассон. Код не фурычит
Ошибок немерено.
Вот в таком виде она у меня хотя бы компилируется:
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <math.h>
#include <stdio.h>
#include<stdlib.h>
#include <conio.h>
 
 
int random ( int xx, int u, int mm )
{
  /* function that creates random numbers ranging from 0 to m. */
    return (2*xx+u)%mm;
}
 
int* rand_poi ( int count )
{
    int store[100];
    int N,xx;
    int kk;
    int temp=21;
    double pre,nextt;
    double randd;
    N=xx=0;
    for(kk=0;kk<100;kk++) store[kk]=0;
    while(N<count)
    {
        temp=random(temp,1,100);
        randd=(double)temp/100;
        pre=nextt=randd;
        if(randd<exp(-2.)){ store[N++]=0; }
        else
        {
            pre=nextt;
            temp=random(temp,1,100);
            randd=(double)temp/100;
            nextt=nextt*randd;
            while( !( pre>=exp(-2.) && nextt<exp(-2.) ) )
            {
                xx++;
                pre=nextt;
                temp=random(temp,1,100);
                randd=temp/100;
                nextt=nextt*randd;
            }
            store[N++]=xx;
            xx=0;
        }
    }
    for(kk=0;kk<N;kk++)  printf("%d ",store[kk]);
    return store;
 
}
 
void main()
 {
 //clrscr();
 int N;
 int k=0;
 double *z, *W, x;
 int *Mas;
 double M, Disp, TeorM=2, TeorDisp=2;
 double sum1, sum2, sum3;
 double next=exp(-2.);
 double pred=1;
 
    printf("How many numbers do you want to generate?");
    scanf("%d",&N);
 
 W=new double[N];
 
 
 
// randomize();
 
 
  /*do 
 {
    k++;
    x = (random(1000)/1000.0);
    pred *=x;
 }  while (pred>next); 
 return (k-1);
*/
//========================================== 
 
  sum1=0;
  for( int q=0; q<N; q++)
    {
    sum1+=W[q];
    }
 
  sum3=0;
  for( int a=0; a<N; a++)
    {
    sum3+=pow(W[a],2.);
    }
 
 M = ((double)sum1/N);
 
 sum3=0;
 for(int b=0; b<N; b++)
    {
     sum3+=(double)pow((W[b]-M),2.);
    }
 Disp = ((double)1 / (N-1)) * sum3;
 
 //====================================================
 
 double Wmin = 100;
 double Wmax = -100;
 int i;
 for (i = 0; i < N; i++)
    {
    if (W[i] < Wmin) Wmin = W[i];
    if (W[i] > Wmax) Wmax = W[i];
    }
 for(int t=1; t<=11;t++)
    {
    Mas[t]=0;
    }
 
 double P = (Wmax - Wmin) / 10.0;
 for(int E=1; E<=10; E++)
    {
    for ( i = 0; i < N; i++)
        {
         if (W[i] >= Wmin + (P * (E-1)) && W[i] < Wmin + (P * E)) Mas[E]++;
        }
    }
 
 int j;
 for(j=0;j<N;j++)
    {
    printf(" %3.5f", W[j]);
    }
 printf("\nЊ*вЋ¦Ё¤**ЁҐ=%5.5f \n„ЁбЇҐабЁп=%5.5f ", M,Disp);
 printf("\nЊ*вЋ¦Ё¤**ЁҐ’Ґ®а=%5.5f \n„ЁбЇҐабЁп’Ґ®а=%5.5f ", TeorM,TeorDisp);
 for(j=1; j<=10; j++)
    {
    printf("\n[%3.6f ; %3.6f] %d ",Wmin + (P * (j-1)),Wmin + (P * j) ,  Mas[j]);
    }
 
 getch();
 }
При отладке программа слетает на 117 строчке
Mas[t]=0;
т.к. под Mas память не выделена.
(Вообще-то существует отладчик, чтобы отлавливать такие ошибки).

Кроме того:
!!!! Совсем неправильно в функции rand_poi возвращать store
(возвратиться адрес временного массива, который тут же удаляется).

И что за мода возводить в квадрат через функцию pow
(она возводит действительное число в действительную степень).
 
Текущее время: 08:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru