- •Одномерные массивы Тема 7
- •Задания для практических занятий к теме:
- •"Одномерные массивы"
- •Задание 7.1. Обработка экспериментальных данных: вычисление
- •Среднего значения, дисперсии, среднеквадратичного отклонения
- •Задание 7.2. Поиск минимального и максимального элемента массива
- •Задание 7.3. Вычисление среднего значения с учётом корректировки
- •Задание 7.4. Вычисление нормы вектора
- •Задание 7.5. Числа Фибоначчи
- •Задание 7.6. Работа с генератором случайных чисел
- •Задание 7.7. Выбор данных из массива по условию и перенесение их в другой массив
- •Задание 7.8. Вычисление значений функции на заданном интервале
- •Задание 7.9. Вычисление ортогональных многочленов
- •Задание 7.10. Упорядочивание массивов
- •Задание 7.11. Вычисление скаляpного пpоизведения
- •Задание 12. Hоpмиpовка массива
- •Дополнительные задания к теме 7 Задание 1. Вычисление многочлена по схеме Горнера
Задание 7.6. Работа с генератором случайных чисел
Для расчётов, связанных с поиском и анализом статистических закономерностей, бывает необходимо с одинаковой вероятностью получать случайные числа на заданном интервале числовой оси. Это можно сделать с помощью генератора случайных чисел. Строго говоря, числа, вырабатываемые генератором случайных чисел, являются не случайными, а псевдослучайными, так как они повторяются при большом числе испытаний (n>65535). Однако для большинства практических приложений это не существенно.
Перед тем как использовать генератор случайных чисел, его надо подготовить к работе. Для этой цели служит процедура без параметров RANDOMIZE.
Запуск в работу генератора случайных чисел осуществляется функцией RANDOM, которая имеет два режима работы.
а) Функция RANDOM без параметров вырабатывает вещес-
твенное случайное число на интервале (0,1). Получить случайное
число на произвольном отрезке (a,b) можно простым преобразова-
нием. Рассмотрим следующий фрагмент программы:
.............................
var a,b,c: real;
i,n: integer;
f: array [1..100] of real;
.............................
randomize;
for i:=1 to n do begin
c:=a+(b-a)*random;
f[i]:=c
end;
.............................
Здесь получены n случайных чисел, принадлежащих отрезку (а,в), и записаны в массив f.
б) Функция RANDOM с целым параметром N выдаёт целое случайное число на промежутке [0,N]. С помощью преобразования, аналогичного рассмотренному в предыдущем случае, целое случайное число можно задать на произвольном интервале [a, b]:
Рассмотрим пример программы для вычисления целых случайных чисел с использованием звукового сопровождения.
Program random_music; {случайная музыка}
uses CRT;
const a=200;
b=300; {Верхнюю и нижнюю границу частот a, b cледует подобрать так, чтобы не было скрежещущих звуков }
var ,k,i,n:integer;
z:array[1..100] of integer;
begin
writeln(‘Введём число точек n’);
readln(n);
randomize;
for i:=1 to n do begin
k:=a+random(b-a);
z[i]:=k;
Sound(k);
Delay(50000);
Nosound;
end;
.............................
В данном задании сформируем массив с помощью генератора случайных чисел.
1. Задать отрезок на числовой оси [-10,10] и длину массива – n точек.
2. Заполнить вещественный массив из n элементов случайными числами.
3. Вывести массив на экран в столбец с нумерацией.
4. Вычислить среднее значение элементов массива – М.
5. Рассчитать дисперсию D и среднеквадратичное отклонение – S.
Задание 7.7. Выбор данных из массива по условию и перенесение их в другой массив
1. Задать отрезок на числовой оси [a,b] и длину массива – n точек.
2. Заполнить массив из n элементов случайными числами.
3. Вывести массив на экран в столбец с нумерацией.
4. Переписать в другой массив:
а) чётные элементы массива;
б) нечётные---------------------;
в) положительные-------------;
г) отрицательные---------------;
д) элементы, большие среднего значения М;
е) элементы, номера которых являются степенями 2;
ж) каждый третий элемент;
з) каждый четвёртый элемент;
и) каждый пятый элемент;
к) элементы, номера которых являются степенями 3;
л) элементы, номера которых являются числами Фибоначчи;
7. Реализовать один из вариантов выбора по условию из п.6. Массив, полученный из исходного массива выбором элементов по какому-либо из условий п. 4, выдать на экран с нумерацией.