Тестирование класса Num_Array

Класс Num_Array. Методы для решения задач

using System;

using System.Collections.Generic;

using System.Text;

 

namespace Первые_учебные_классы

{

class Num_Array

{

static uint size; // Закрытое статическое поле - размер массива

double[] mas = new double[size];// Закрытое обычное поле - вещественный // массив

 

/// <summary>

/// Шаг 1. Статический метод Input_size(), который вводит размер массива с консоли:

/// </summary>

public static void Input_size()

{

Console.WriteLine("Введите размер массива");

size=UInt32.Parse(Console.ReadLine());

}

 

/// <summary>

/// Шаг 2. Статический метод get_size(), который получает размер массива

/// </summary>

public static uint get_size()

{

return size;

}

/// <summary>

/// Шаг 3. Закрытая ссылочная переменная Ob, которая будет нужна для вызовов методов Next(...) класса Random:

/// </summary>

 

private Random Ob = new Random();

 

/// <summary>

/// Продолжение шага 3: Обычный метод Sozd_rnd(int max) для заполнения массива случайными числами от 0 до max (целые части чисел). Дробные части чисел будут создаваться с помощью метода NextDouble().

/// </summary>

public void Sozd_rnd(int max)

{

for (uint i = 0; i < size; i++)

mas[i] = Ob.Next(max) + Ob.NextDouble();

}

 

/// <summary>

/// Шаг 4. Обычный метод Show(), который выводит элементы массива на экран:

/// </summary>

public void Show()

{

Console.WriteLine("Содержимое массива: ");

for (uint i = 0; i < size; i++)

Console.Write("{0:0.####} ", mas[i]);

Console.WriteLine();

}

 

/// <summary>

/// Шаг 5. Перегруженный метод Sozd_rnd(int min,int max) для заполнения массива случайными числами от min до max (целые части чисел).

/// Дробные части чисел будут создаваться с помощью метода NextDouble().

/// </summary>

public void Sozd_rnd(int min, int max)

{

for (uint i = 0; i < size; i++)

mas[i] = Ob.Next(min,max) + Ob.NextDouble();

}

 

/// <summary>

/// Шаг 6. Метод Input_mas(), который вводит элементы массива с консоли:

/// </summary>

public void Input_mas()

{

for (uint i = 0; i < size; i++)

{

Console.WriteLine("Введите " + i + " элемент массива!");

mas[i] = Double.Parse(Console.ReadLine());

}

}

 

/// <summary>

/// Шаг 7. Метод упорядочевания элементов массива по возрастанию:

/// </summary>

public void Sortirovka()

{

Array.Sort(mas);

}

 

/// <summary>

/// Шаг 8. Метод, который реверсирует массив:

/// </summary>

public void Rewersirovanie()

{

Array.Reverse(mas);

}

 

/// <summary>

/// Шаг 9. Метод, который возвращает значение наибольшего элемента

/// массива и количество его повторов:

/// </summary>

public double Poisk_max(out uint kol)

{

double max = mas[0];

for(uint i = 0; i < size; i++)

if(mas[i]>max)

max=mas[i];

kol=0;

for (uint i = 0; i < size; i++)

if (mas[i] == max)

kol++;

return max;

}

// Методы для решения задач:

////////////////////////////////////////////////////////////////////////

public void Arifm_progr(double A, double D)

{

mas[0] = A;

for (uint i = 1; i < size; i++)

mas[i] = mas[i - 1] + D;

}

 

////////////////////////////////////////////////////////////////////////

public uint Powtor_elem()

{

uint kol_tek, kol_rez = 0;

for (uint i = 0; i < size; i++)

{

kol_tek = 0;

for (uint j = 0; j < size; j++)

if (mas[i] == mas[j])

kol_tek++;

if (kol_tek == 1) // Элемент сравнился только сам с собой

kol_rez++;

}

return kol_rez;

}

 

////////////////////////////////////////////////////////////////////////

public uint Powtor_elem2()

{

uint kol_tek, kol_rez = 1;

for (uint i = 1; i < size; i++)

{

kol_tek = 0;

for (uint j = 0; j < i; j++)

if (mas[j] == mas[i])

kol_tek++;

if (kol_tek == 0) // Элемент не сравнился с предыдущими //элементами

kol_rez++;

}

return kol_rez;

}

 

}

}

Тестирование класса Num_Array

using System;

using System.Collections.Generic;

using System.Text;

 

namespace Первые_учебные_классы

{

class Test

{

static void Main(string[] args)

{

 

//////////////////////////////////Класс Num_Array////////////////

// Шаг 1. Тестирование статического метода Input_size():

Num_Array.Input_size();

 

// Шаг 2. Тестирование статического метода get_size():

Console.WriteLine("Установленный размер массива: " + Num_Array.get_size());

 

// Создание экземпляра класса Num_Array:

Num_Array Ob_mas = new Num_Array();

 

// Шаг 3. Тестирование обычного метода Sozd_rnd(int max):

int min, max;

Console.WriteLine("Введите предельное число для генерации случайных чисел");

max = Int32.Parse(Console.ReadLine());

Ob_mas.Sozd_rnd(max);

Ob_mas.Show();

 

// Шаг 4. Тестирование перегруженного метода

Sozd_rnd(int min,int max):

Console.WriteLine("Введите oтрезок для генерации случайных чисел");

min = Int32.Parse(Console.ReadLine());

max = Int32.Parse(Console.ReadLine());

Ob_mas.Sozd_rnd(min,max);

Ob_mas.Show();

 

// Шаг 5. Тестирование метода Input_mas():

Ob_mas.Input_mas();

Ob_mas.Show();

 

// Шаг 6. Тестирование метода Sortirovka():

Ob_mas.Sortirovka();

Ob_mas.Show();

 

// Шаг 7. Тестирование метода Rewersirovanie():

Ob_mas.Rewersirovanie();

Ob_mas.Show();

 

// Шаг 8. Тестирование метода Poisk_max(out uint kol)

uint kol;

double maxx = Ob_mas.Poisk_max(out kol);

Console.WriteLine("Максимальный элемент " + maxx + " повторяется " + kol + " раз.");

 

// Решения задач с использованием класса Num_Array

/* Задача 1. Дано целое число N (> 0), а также два числа А и D. Сформировать объект-массив размера N, содержащий члены арифметической прогрессии, первый член которой равен А,разность прогрессии равна D.*/

Num_Array.Input_size();

Num_Array Ob_mas1 = new Num_Array();

double A, D;

Console.WriteLine("Введите первый член и разность арифметической прогрессии!");

A = Double.Parse(Console.ReadLine());

D = Double.Parse(Console.ReadLine());

// Для решения задачи нужно разработать метод Arifm_progr(double A,double D).

Ob_mas1.Arifm_progr(A,D);

Ob_mas1.Show();

 

/* Задача 2. Дано числовой массив размера N (> 0), в котором имеются

* повторяющиеся элементы. Сколько различных элементов в массиве?

Под различными элементами понимаются элементы,

* которые встречаются в массиве только один раз.*/

// Сначала нужно заполнить массив так, что бы в нем некоторые //элементы повторялись:

Ob_mas1.Input_mas();

Ob_mas1.Show();

// Для решения задачи нужно разработать метод Powtor_elem().

Console.WriteLine("В массиве различных элементов " + Ob_mas1.Powtor_elem());

 

/* Задача 3. Дано числовой массив размера N (> 0), в котором имеются

* повторяющиеся элементы. Сколько различных чисел в массиве?*/

 

// Для решения задачи нужно разработать метод Powtor_elem2(), в // котором повторяющийся элемент считается различным (один раз).

Console.WriteLine("В массиве различных элементов " + Ob_mas1.Powtor_elem2());

 

}

}

}

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: