Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Заполнение массива случайными числами




ВВЕДЕНИЕ

Лабораторный практикум посвящен языку Си в его базовом варианте. Для исполнения данного цикла пригодна любая операционная среда и любая система программирования Си, так как те свойства языка, которые здесь изучаются, являются ядром языка и присутствуют во всех ее реализациях. Здесь рассматривается работа в операционной системе Windows XP и системе программирования Borland C.

Описание каждой лабораторной работы начинается с разделов «Цель работы», «Краткие теоретические сведения» и «Примеры решения задач». Указанные в разделе «Краткие теоретические сведения» темы обязательно должны быть изучены по материалам лекционного курса и по литературе до начала лабораторной работы, а также должны быть разобраны все решения, приведенные в разделе «Примеры решения задач».

 

 

ЛАБОРАТОРНАЯ РАБОТА № 13

ОДНОМЕРНЫЕ МАССИВЫ

Цель работы: получение практических навыков в работе с одномерными массивами.

Краткие теоретические сведения

Массив – это конечная именованная последовательность однотипных величин. Массивы широко используются в том случае, если необходимо обработать много данных, которые пользователь вводит с клавиатуры.

Массив называется одномерным, если он состоит из одной строки и N столбцов (вектор).

Формат описания массива следующий:

тип_элементов имя [размерность];

Размерность – это количество элементов в массиве (целая положительная константа).

Например:

int array[10];

Данная запись означает, что резервируется память для 10 чисел целого типа с именем array и порядковыми номерами (индексами) от 0 до 9 включительно. В Си индексация начинается с нуля, поэтому размер массива, указанный в описании, всегда на единицу больше максимального значения индекса.

Чтобы обратиться к отдельному элементу массива, надо указать имя массива и номер элемента в массиве (индекс) в квадратных скобках. Индекс является целым числом.

array[0] – первый элемент массива, array[9] – последний элемент массива.

Элементы массива обладают всеми атрибутами заданного типа.

Существуют два варианта объявления массива:

§ неинициализированный (например, массив с четырьмя элементами целого типа можно определить как int array[4];);

§ инициализированный. Определяется следующим образом: int array[]={2, 3, 5, 7};

Ввод элементов массива

Ввод элементов одномерного массива с клавиатуры осуществляется следующим образом:

const int n=5; // количество элементов в массиве

float array[n]; // объявление массива

int i; // объявление индекса элементов

for (i=0; i<n; i++)

{ printf(“array[%d]=”, i); // печать подсказки

scanf(“%f”, &array[i]); // считывание с клавиатуры элемента

}

Заполнение массива случайными числами

Пусть требуется заполнить массив равномерно распределенными случайными числами в интервале [a,b]. Поскольку для целых и вещественных чисел способы вычисления случайного числа в заданном интервале отличаются, рассмотрим оба варианта. Здесь и далее предполагается, что в начале программы есть строчка

const int n = 10;

Описание функции-датчика случайных чисел находится в заголовочном файле stdlib.h.

Удобно также добавить в свою программу функцию random:

int random (int N) { return rand() % N; }

которая выдает случайные числа с равномерным распределением в интервале [0,N-1]. Для получения случайных чисел с равномерным распределением в интервале [a,b] надо использовать формулу

k = random (b – a + 1) + a;

Для вещественных чисел формула несколько другая:

x = rand()*(b - a)/RAND_MAX + a;

Здесь константа RAND_MAX – это максимальное случайное число, которое выдает стандартная функция rand.

В приведенном ниже примере массив A заполняется случайными целыми числами в интервале [-5,10], а массив X – случайными вещественными числами в том же интервале.

const int n=10;

float x[n];

int i, A[n], a=-5, b=10;;

randomize(); // инициализация генератора случайных чисел

for (i=0; i<n; i++)

A[i]=random(b-a+1)+a; // каждому элементу массива

// присваивает некоторое случайное значение

for (i=0; i<n; i++)

x[i]=(float)rand()*(b-a)/RAND_MAX+a;

Если необходимо, чтобы числа были не только положительными, но и отрицательными, можно записать, например, так:

array[i]=20 – random (100);

Вывод элементов массива

1. Вывод элементов массива в одну строку экрана:

const int n=5;

float array[n];

int i;

for (i=0; i<n; i++)

printf(“%f \t”, array[i]); // \t – табуляция

Для вывода элементов массива в один столбец экрана в функции printf нужно заменить \t на \n – переход на новую строку экрана.

Операция sizeof

С помощью операции sizeof() можно определить размер памяти, которая соответствует идентификатору или типу. Операция sizeof() имеет следующий формат:

sizeof (выражение);

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

printf(“%d \n”, sizeof (array));





Поделиться с друзьями:


Дата добавления: 2016-10-27; Мы поможем в написании ваших работ!; просмотров: 3698 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лучшая месть – огромный успех. © Фрэнк Синатра
==> читать все изречения...

2268 - | 2155 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.