русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Сохранение результатов вычислений в массиве


Дата добавления: 2015-08-31; просмотров: 1009; Нарушение авторских прав


Массиваминазывают структурные переменные, представляющие набор однотипных элементов – элементов массива. Доступ к элементам массива, называемым индексными переменными, осуществляется по имени массива и набору индексов, однозначно определяющих положение элемента в массиве. Если элементы массива сами не являются массивами, то такой массив называют одномерными для обращения к элементам массива используется только один индекс, иначе массив называют многомерным (двумерным, трехмерным и так далее).

В качестве индексов могут выступать выражения целых типов(в том числе булевских и целых), которые записываются после имени массива в квадратных скобках через запятую. В этом разделе ограничимся рассмотрением одномерных статических массивов.

В общем случае описатель типа статического массива, создаваемого пользователем, определяется следующим образом: ТипБаз ИмяМас[КолЭлем] ,

где

ТипБаз – базовый тип (имя стандартного типа, или ранее объявленного типа, или описатель типа),

ИмяМас – имя массива,

КолЭлем – количество элементов массива.

Первый элемент массива всегда имеет нулевой номер (индекс).

Для одномерных числовых массивов ТипБаз должен представлять простой тип.

Имена, представляющие типы-массивы, объявляют как и имена прочих пользовательских типов, в разделе type. Например,

 

type

tX=array[Byte] of 1..9;

tY=array[-2..2] of Real;

 

где

- тип tX объявлен как тип целочисленного одномерного массива из 256 элементов, значениями которых которого могут быть числа из диапазона 1..9, а индексами – выражения целого типа со значениями от 0 до 255;

- тип tY объявлен как тип одномерного массива вещественных данных типа Real из 5 элементов, индексами которых могут быть выражения целого типа со значениями

–2, -1, 0, 1, 2.

Переменные-массивы объявляют как и переменные прочих типов в разделе var. Им можно задавать начальные значения (что удобно при отладке программ), записав их списком в круглых скобках через запятую, причем длина списка должна быть равна размеру массива. Например, в объявлениях



 

var

X,Z:tX;

Y:tY=( 1.2, 4.2, -5.1, 4.4, -1.5);

 

переменные X и Z будут иметь тип tX, а переменная Y – тип tY с начальными значениями своих элементов Y[-2] = 1.2, Y[-1] = 4.2, Y[0] = -5.1, Y[1] = 4.4, Y[2] = -1.5.

При решении задач, связанных с обработкой множеств значений в массивах или получаемых в результате вычисления значений функций, может потребоваться сохранение результатов вычислений для дальнейшего использования. В таких случаях необходимо выделить память для хранения результатов, объявив в разделе var массив соответствующего типа, и очередное вычисленное значение сохранять в очередной ячейке массива, присваивая его индексной переменной - элементу этого массива с очередным значением индекса.

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

Свойство «массовость» алгоритма предполагает его применимость к различным, заранее оговоренным, наборам данных, в частности, задаваемых при вводе. В рассмотренном выше примере объявления массива X, если он будет представлять исходные данные для какого-либо алгоритма, свойство «массовость» может обозначать, что могут обрабатываться любые наборы от одного числа до девяти чисел с любыми значениями от 0 до 255. Например, все 9 элементов массива, или только N первых, N<9.

В дальнейшем в заданиях обработку массивов будут использоваться следующие сокращенные обозначения, которые рассмотрим на примерах:

Х(20) – будет обозначать, что для хранения данных должен использоваться одномерный массив, в котором подлежат обработке 20 последовательно расположенных элементов.

Х(N), N<=20 – будет обозначать, что для хранения данных должен использоваться одномерный массив, в котором подлежат обработке N последовательно расположенных элементов.

Иногда при постановке задач удобно использовать слово векторили последовательность, имея в виду размещаемые в последовательных ячейках массива данные.

Пример. Составить программу вычисления и сохранения в массиве Y значений функции y=sin x и в массиве X - соответствующих значений аргумента. Аргумент должен изменяться с шагом dX от начального значения X0.

 

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

type

tMas=array[1..10] of Real;

var

i:Integer;

X0, dX:Real;

X, Y:tMas;

begin

Write('Введите начальное значение X и шаг dX: ');

ReadLn(X0, dX);

for i:=1 to 10 do

begin

X[i]:=X0;

Y[i]:=Sin(X0);

X0:=X0+dX;

end;

for i:=1 to 10 do

WriteLn(X[i]:10:4,Y[i]:10:4);

ReadLn;

end.

Пример 5.1 выполнения задания

Составить программу для подсчёта и сохранения в массиве M(10) количеств значений целочисленного массива X(N), N≤500, попадающих в интервалы с номерами от 1 до 10 шириной h=(Xmax-Xmin+1)/10, где Xmax=50 и Xmin=1 – максимальное и минимальное значения в массиве X соответственно. Массив X заполнить случайными числами с равномерным распределением в диапазоне от Xmin до Xmax, используя стандартную функцию Random. Использовать также процедуру Randomize, чтобы генерировать новый набор случайных чисел при каждом запуске программы. Объявить Xmin, Xmax и h в разделе констант. Полученные результаты использовать для вывода в виде гистограммы:

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

 

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

const

Nmax=500;

Xmax=50;

Xmin=1;

h=5;

NX=Xmax-Xmin+1;

var

X:array[1..Nmax] of Word;

M:array[1..10] of Word;

i,j,N:Word;

MX, DX:Real;

begin

Write('Введите количество случайных чисел: ');

ReadLn(N);

Randomize;

for i:=1 to N do

//Сохранение случайных чисел в массиве X

X[i]:=Random(NX)+ Xmin;

//Накопление в ячейках 1..10 массива M количеств

//попаданий значений из массива X в интервалы

//[1..5], [6..10], …, [46..50]

for i:=1 to N do

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

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

Inc(M[(X[i]-Xmin) div h + 1]);

//Вывод результатов в виде гистограммы

WriteLn;

for i:=1 to 10 do

begin

Write((i-1)*h+1:3,' -',i*h:3,M[i]:3,' ');

for j:=1 to M[i] do

Write('X');

WriteLn;

end;

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

MX:=0;

for i:=1 to N do

MX:=MX+X[i];

MX:=MX/N;

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

DX:=0;

for i:=1 to N do

DX:=DX+Sqr(X[i]-MX);

DX:=DX/N;

WriteLn('Среднее значение = ',MX);

WriteLn(' Дисперсия = ',DX);

ReadLn;

end.

 



<== предыдущая лекция | следующая лекция ==>
 | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.138 сек.