Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Генерация одномерных массивов
Задачи по программированию с использованием массивов решаются, как правило, по следующему алгоритму: объявление массива, генерация или инициализация, обработка значений элементов, вывод. При этом, если в процессе обработки значения элементов массива изменяются, то вывод осуществляется дважды: до и после обработки. Перед использованием значений элементов массива их необходимо сформировать. Задать значения элементам массива можно на этапе объявления, т.е. выполнить инициализацию, а также непосредственным выполнением присваивания. В большинстве задач с использованием массивов целесообразно выполнять генерацию массивов – автоматическое формирование значений элементов. Генерацию массива (массивов) в программе оформляют в виде отдельной функции. Стандартными способами генерация массивов являются: · ввод данных с клавиатуры, · формирование значений через генератор случайных чисел, · вычисление значений по формуле, · ввод данных из файла. При этом при формировании значений элементов используют цикл по индексам элементов или арифметические операции с указателем на массив. В данной работе рассмотрим первые три способа генерации массивов (Примеры 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 с.) |