Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пример выполнения задания. Составить программу для подсчёта и сохранения в массиве M(10) количеств зна-чений целочисленного массива X(N)



Составить программу для подсчёта и сохранения в массиве M(10) количеств зна-чений целочисленного массива X(N), N≤500, попадающих в интервалы с номерами от 1

до 10 шириной h=(Xmax-Xmin+1)/10, где Xmax=50 и Xmin=1 – максимальное и мини-

мальное значения в массиве X соответственно. Массив X заполнить случайными числа-ми с равномерным распределением в диапазоне от Xmin до Xmax, используя стандарт-ную функцию rand. Использовать также функцию srand, чтобы генерировать при каж-дом запуске программы новый набор случайных чисел, задавая в качестве аргумента функции srand новое значение - календарное время, установленное в системе (см. ниже комментарий в тексте программы).

Объявить Xmin, Xmax и h в разделе констант. Полученные результаты использо-вать для вывода в виде гистограммы:


«Практикум по программированию на языке C в среде VS C++»


Вычислить также для помещенных в массив X случайных чисел среднее значение

  N   N  
  X i   ∑(X iMX)2  
MX и дисперсию DX по формулам: MX = i =1 и DX = i =1  
N N  
     
Программа      

#include "stdafx.h"

#include "time.h" //для функции time #include "stdlib.h"//для функций srand и rand int _tmain(int argc, _TCHAR* argv[])

{

const unsigned Nmax=500, Xmax=50, Xmin=1, h=5; unsigned M[10], X[Nmax], t;

unsigned i, j, u, N;//N - количество случайных чисел float MX, DX;

//Ввод количества случайных чисел printf("Enter N:");

scanf("%u", &N);

//Получение числа секунд, прошедших

t=time(NULL); //с 1.1.1970 до текущего момента //задание начального значения srand(t);//генератора случайных чисел

//Получение N случайных чисел в диапазоне //от Xmin до Xmax и сохранение в массиве X //(RAND_MAX - максимальное случайное число) for (i=0; i<N; i++)

X[i]= (double)rand()/(RAND_MAX + 1) * (Xmax - Xmin+1)+ Xmin;

//Накопление в ячейках массива M количеств //попаданий значений из массива X в интервалы

//[0..4], [5..9], …, [45..49] for (i=0; i<10; i++) M[i]=0; for (i=0; i<N; i++)

«Практикум по программированию на языке C в среде VS C++»


//Увеличить на 1 значение элемента массива M

M[(X[i]-Xmin)/h]++;//с индексом (X[i]-Xmin)/h

//Вывод результатов в виде гистограммы for (i=0;i<10;i++)

{

printf("%3d - %3d%3d ",i*h+1,(i+1)*h,M[i]); for (j=0;j<M[i]; j++)

printf("X"); printf("\n");

}

//Вычисление и вывод среднего значения

MX=0;

for (i=0; i<N; i++) MX=MX+X[i];

MX=(float)MX/N; printf("\nMX = %lf\n",MX);

//Вычисление и вывод дисперсии

DX=0;

for (i=0; i<N; i++) DX=DX+(X[i]-MX)*(X[i]-MX);

DX=(float)DX/N; printf("DX = %lf\n",DX);

return 0;

}





Дата публикования: 2015-03-26; Прочитано: 305 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...