Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Дисциплины:
2018-01-04 | 65 |
5.00
из
|
Заказать работу |
/*
Смешанные функции по работе с массивами
Сохраните этот текст в файле с именем arr_common.h. Поместите
этот файл в каталог проекта и в тексте программы используйте директиву
#include " arr_common.h"
*/
#pragma once
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include "my_rand.h"
using namespace std;
//
// Прототипы функций
//
void RandMakeArr(double A[], int n, int d);
// Для массивов с эелементами типа double
// Заполняет массив А из n элементов случайными значениями в диапазоне от 0 до d
void RandMakeArr(double A[], int n, int ng, int vg);
// Для массивов с эелементами типа double
// Заполняет массив А из n элементов случайными значениями в диапазоне от ng до vg
void RandMakeArr(int A[], int n, int d);
// Для массивов с эелементами типа double
// Заполняет массив А из n элементов случайными значениями в диапазоне от 0 до d
void RandMakeArr(int A[], int n, int ng, int vg);
// Для массивов с эелементами типа double
// Заполняет массив А из n элементов случайными значениями в диапазоне от ng до vg
void ArrOut(double A[], int n);
// Вывод на экран массива А из n элементов типа double
void ArrOut(int A[], int n);
// Вывод на экран массива А из n элементов типа int
void Swap(double &a, double &b);
// Обмен значений переменных a и b
void Swap(int &a, int &b);
// Обмен значений переменных a и b
void Swap(int a[], int b[], int n);
// Обмен значений массивов a и b из n элементов типа int
void Swap(double a[], double b[], int n);
// Обмен значений массивов a и b из n элементов типа double
void ArrInit(int A[], int n, int Val);
// Заполнение массива А из n элементов типа int значениями Val
void ArrInit(double A[], int n, double Val);
// Заполнение массива А из n элементов типа double значениями Val
void ArrCopy(int Src[], int Dst[], int n);
// Копирование значений массива Src и Dst из n элементов типа int
void ArrCopy(double Src[], double Dst[], int n);
// Копирование значений массива Src и Dst из n элементов типа double
void MinMax(int A[], int n, int &iMax, int &iMin);
// Поиск минимального и максимального значений в массиве А из n элементов.
// Возвращает индексы первого минимального iMin и первого максимального iMax элементов
void MinMax(int A[], int n, int &iMax, int &iMin, int &cMax, int &cMin);
// Поиск минимального и максимального значений в массиве А из n элементов.
// Возвращает индексы первого минимального iMin и первого максимального iMax элементов и
// количества максимальных cMax и минимальных cMin элементов в массиве
void ArrDelItem(int A[], int &n, int di);
// Удаление элемента с индексом di из массива А с n элементами,
// что эквивалентно сдвигу элементов массива на 1 элемент в сторону меньших значений индексов элементов.
// Возвращает измененный массив А и его количество элементов n, уменьшенное на 1.
// Контроль корректности входных данных не осуществляется.
void ArrInsItem(int A[], int &n, int ii, int Val);
// Вставка элемента со значением Val на позицию с индексом ii в массив А с n элементами,
// что эквивалентно сдвигу элементов массива на 1 элемент в сторону больших значений индексов элементов и
// записи в элемент с идексом ii значения Val.
// Возвращает измененный массив А и его количество элементов n, увеличенное на 1.
// Контроль корректности входных данных не осуществляется.
void ArrConcat(int A1[], int n1, int A2[], int n2, int R[], int &n);
// Слияние двух отсортированных по возрастанию массивов А1 и А2 с количеством элементов n1 и n2 соответственно
// в массив R. Возвращает массив R (также отсортированный по возрастанию) и его количество элементов n
//
// Реализация
//
void RandMakeArr(double A[], int n, int d)
// Заполняет массив А из n элементов случайными значениями в диапазоне от 0 до d
{
for (int i = 0; i < n; ++i)
A[i] = MyRand(d);
}
void RandMakeArr(double A[], int n, int ng, int vg)
// Заполняет массив А из n элементов случайными значениями в диапазоне от ng до vg
{
for (int i = 0; i < n; ++i)
A[i] = MyRand(ng, vg);
}
void RandMakeArr(int A[], int n, int d)
// Заполняет массив А из n элементов случайными значениями в диапазоне от 0 до d
{
for (int i = 0; i < n; ++i)
A[i] = MyRand(d);
}
void RandMakeArr(int A[], int n, int ng, int vg)
// Заполняет массив А из n элементов случайными значениями в диапазоне от ng до vg
{
for (int i = 0; i < n; ++i)
A[i] = MyRand(ng, vg);
}
void ArrOut(double A[], int n)
// Вывод на экран массива А из n элементов типа double
{
for (int i = 0; i < n; ++i)
cout << A[i] << " ";
cout << endl;
}
void ArrOut(int A[], int n)
// Вывод на экран массива А из n элементов типа double
{
for (int i = 0; i < n; ++i)
cout << A[i] << " ";
cout << endl;
}
void Swap(double &a, double &b)
// Обмен значений переменных a и b
{
double c = a;
a = b;
b = c;
}
void Swap(int &a, int &b)
// Обмен значений переменных a и b
{
int c = a;
a = b;
b = c;
}
void Swap(int a[], int b[], int n)
// Обмен значений массивов a и b из n элементов типа int
{
for (int i = 0; i < n; ++i)
Swap(a[i], b[i]);
}
void Swap(double a[], double b[], int n)
// Обмен значений массивов a и b из n элементов типа double
{
for (int i = 0; i < n; ++i)
Swap(a[i], b[i]);
}
void ArrInit(int A[], int n, int Val)
// Заполнение массива А из n элементов типа int значениями Val
{
for (int i = 0; i < n; ++i)
A[i] = Val;
}
void ArrInit(double A[], int n, double Val)
// Заполнение массива А из n элементов типа double значениями Val
{
for (int i = 0; i < n; ++i)
A[i] = Val;
}
void ArrCopy(int Src[], int Dst[], int n)
// Копирование значений массива Src и Dst из n элементов типа int
{
for (int i = 0; i < n; ++i)
Dst[i] = Src[i];
}
void ArrCopy(double Src[], double Dst[], int n)
// Копирование значений массива Src и Dst из n элементов типа double
{
for (int i = 0; i < n; ++i)
Dst[i] = Src[i];
}
void MinMax(int A[], int n, int &iMax, int &iMin)
// Поиск минимального и максимального значений в массиве А из n элементов.
// Возвращает индексы первого минимального iMin и первого максимального iMax элементов
{
int Max, Min;
iMax = iMin = 0;
Max = Min = A[0];
for (int i = 1; i < n; ++i)
{
if (A[i] > Max)
{
iMax = i;
Max = A[i];
}
if (A[i] < Min)
{
iMin = i;
Min = A[i];
}
}
}
void MinMax(int A[], int n, int &iMax, int &iMin, int &cMax, int &cMin)
// Поиск минимального и максимального значений в массиве А из n элементов.
// Возвращает индексы первого минимального iMin и первого максимального iMax элементов и
// количества максимальных cMax и минимальных cMin элементов в массиве
{
int Max, Min;
iMax = iMin = 0;
cMax = cMin = 1;
Max = Min = A[0];
for (int i = 1; i < n; ++i)
{
if (A[i] > Max)
{
cMax = 1;
iMax = i;
Max = A[i];
}
else
if (A[i] == Max)
++cMax;
if (A[i] < Min)
{
cMin = 1;
iMin = i;
Min = A[i];
}
else
if (A[i] == Min)
++cMin;
}
}
void ArrDelItem(int A[], int &n, int di)
// Удаление элемента с индексом di из массива А с n элементами,
// что эквивалентно сдвигу элементов массива на 1 элемент в сторону меньших значений индексов элементов.
// Возвращает измененный массив А и его количество элементов n, уменьшенное на 1.
// Контроль корректности входных данных не осуществляется.
{
--n;
for (int i = di; i < n; ++i)
A[i] = A[i + 1];
}
void ArrInsItem(int A[], int &n, int ii, int Val)
// Вставка элемента со значением Val на позицию с индексом ii в массив А с n элементами,
// что эквивалентно сдвигу элементов массива на 1 элемент в сторону больших значений индексов элементов и
// записи в элемент с идексом ii значения Val.
// Возвращает измененный массив А и его количество элементов n, увеличенное на 1.
// Контроль корректности входных данных не осуществляется.
{
if (ii > n) // Если индекс вставки больше индекса последнего элемента массива более чем на 1, то
// новый элемент вставляется сразу за последним элементом массива.
ii = n;
for (int i = n; i > ii; --i)
A[i] = A[i - 1];
A[ii] = Val;
++n;
}
void ArrConcat(int A1[], int n1, int A2[], int n2, int R[], int &n)
// Слияние двух отсортированных по возрастанию массивов А1 и А2 с количеством элементов n1 и n2 соответственно
// в массив R. Возвращает массив R (также отсортированный по возрастанию) и его количество элементов n.
{
int i, j;
n = i = j = 0;
while (n < n1 + n2)
{
while ((i < n1) && ((A1[i] <= A2[j]) || (j == n2)))
{
R[n] = A1[i];
++i;
++n;
}
while ((j < n2) && ((A2[j] <= A1[i]) || (i == n1)))
{
R[n] = A2[j];
++j;
++n;
}
}
}
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!