Генерация одномерных массивов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Генерация одномерных массивов



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

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

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

Стандартными способами генерация массивов являются:

· ввод данных с клавиатуры,

· формирование значений через генератор случайных чисел,

· вычисление значений по формуле,

· ввод данных из файла.

При этом при формировании значений элементов используют цикл по индексам элементов или арифметические операции с указателем на массив. В данной работе рассмотрим первые три способа генерации массивов (Примеры 3, 4, 6).

Вывод одномерных массивов

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

Пример 3.

/*Генерация целочисленного массива числами с клавиатуры и вывод массива в строку*/

#include "stdafx.h"

#include <iostream>

using namespace std;

#define max 20

 

void gen (int k,int *pp);//прототип функции генерации массива

void out (int k,int x[max]);//прототип функции вывода массива

 

int _tmain(int argc, _TCHAR* argv[]){

int a[max],n,*p;

do {

printf("\nВведите количество элементов массива n (n<=20):");

scanf ("%d",&n);

}

while (n>max); //проверка выхода за границы массива

  p=a;

gen(n,p);

out(n,a);

system("pause");

return 0;

}

 

//Описание функции генерации массива с клавиатуры

void gen(int k,int *pp){    

/*передача указателя как параметра позволяет вернуть

сформированный массив в основную программу*/

int i;

printf("\nВведите значения %d элементов массива: \n",k);

for (i=0;i<k;i++){

printf("x[%d]= ",i);

scanf("%d",pp++);

}

}

 

//Описание функции вывода массива в строку

void out (int k,int x[max]){

int i;

printf("\nВывод значений %d элементов массива в строку: \n",k);

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

printf("%d\t",x[i]);

}

 

Пример 4.

/*Описание функции генерации массива значениями элементов арифметической прогрессии*/

void gen(int k,int x[max]) {

int i,d;

printf ("\nВведите нулевой элемент прогрессии: ");

scanf("%d",&x[0]);

printf ("\nВведите разность прогрессии: ");

scanf("%d",&d);

for (i=1;i<k;i++)

x[i]=x[i-1]+d;

}

Пример 5.

//Описание функции вывода массива в столбец

void out (int k,int x[max]){

int i;

printf("\nВывод значений %d элементов массива в столбец: \n",k);

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

printf("x[%i]= %d\n",i,x[i]);

}

Для использования функции генерации случайных чисел необходимо подключить библиотеку <time.h>.

Для написания кода генерации массива случайными целыми числами используется:

1.Функция srand(). Синтаксис:

void srand(unsigned seed);

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

Для использования данной функции необходимо подключить библиотечный файл <stdlib.h>.

2.Функция rand (). Синтаксис:

int rand(void);

– функция возвращает псевдослучайное число в диапазоне от нуля до RAND_MAX. Для использования данной функции необходимо подключить библиотечный файл <stdlib.h>.

3.Константа RAND_MAX определяет максимальное значение случайного числа, которое может быть возвращено функцией rand (). Значение RAND_MAX – это максимальное положительное целое число.

4.Часто в задачах требуется выполнить генерацию массива на произвольном промежутке [a,b). Для этого используются следующие выражения:

5. //генерация случайных целых чисел на [a,b)

6.    x[i]=rand()%(b-a)+a;

7. //генерация случайных вещественных чисел на [a,b)

y[i]= rand()*1.0/(RAND_MAX)*(b-a)+a;

Пример 6.



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 59; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.143.239 (0.01 с.)