using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace variant_2._2
{
class Program
{
static void Main(string[] args)
{
// массив курса валюты Юань
double[] course_one = new double[]{ 53.9608,
54.7577,
54.8645,
54.7934,
55.0190,
55.1743,
55.1805,
55.2660,
55.5971,
55.8962,
55.9722,
56.2275,
56.6440,
57.3888,
57.2342,
57.0907,
58.2020 };
// двумерный массив курсов валют Юань и Гурд
double[,] course_two = new double[,] {{53.9608, 80.5393},
{54.7577, 81.7625},
{54.8645, 81.3379},
{54.7934, 81.1029},
{55.0190, 81.9694},
{55.1743, 82.2594},
{55.1805, 82.3707},
{55.2660, 82.4520},
{55.5971, 82.9665},
{55.8962, 83.1884},
{55.9722, 83.3181},
{56.2275, 83.7230},
{56.6440, 84.2804},
{57.3888, 85.3857},
{57.2342, 85.1784},
{57.0907, 85.0266},
{58.2020, 86.3050}};
int a = 0;
int b = 1;
const int size = 17; // размер массива
const int columns = 2; // количество столбцов в двумерном варианте
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(" С 01.09.2013 по 30.09.2013 Динамика курса валюты Юань");
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
for (int i = 0; i < size; ++i)//печать курса
Console.WriteLine("{0:f4} ", course_one[i]);
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
// 1. Задачи для одномерного массива
// 1.1. Поиск и вывод среднего значения
double v_midle = 0;
for (int i = 0; i < size; ++i)
{
v_midle += course_one[i];
}
v_midle /= size;
Console.WriteLine("Среднее значение = {0:f4}", v_midle);
// 1.2. Поиск и вывод минимального значения
double v_min = 9999;
for (int i = 0; i < size; ++i)
{
if (course_one[i] < v_min)
v_min = course_one[i];
}
Console.WriteLine("Минимальное значение = {0:f4}", v_min);
// 1.3. Поиск и вывод максимального значения
double v_max = 0;
for (int i = 0; i < size; ++i)
{
if (course_one[i] > v_max)
v_max = course_one[i];
}
Console.WriteLine("Максимальное значение = {0:f4}", v_max);
// 1.4. Поиск и вывод cуммы квадратов разности
double s = 0;
for (int i = 0; i < size; ++i)
{
s += (course_one[i] - v_midle) * (course_one[i] - v_midle);
}
Console.WriteLine("Сумма квадратов разности = {0:f4}", s);
// 1.5. Вывод корня из cуммы квадратов разности
Console.WriteLine("Корень из суммы квадратов разности = {0:f4}", Math.Sqrt(s));
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
// 1.6.
double[] answer = new double[size];
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("\t\t\t\ttask_1:");
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
for (int i = 0; i < size; ++i)
{
answer[i] = ((b - a) * (course_one[i] - v_min) / (v_max - v_min) + a);
}
for (int i = 0; i < size; ++i)
Console.WriteLine("{0:f4} ", answer[i]);
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
// 2. Задачи для двумерного массива
// 2.1. Вывод двумерного массива на консоль
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(" \t\tС 01.09.2013 по 30.09.2013 Динамика курса валюты\nЮань:\t\t\t\t\tГурд:");
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
for (int i = 0; i < size; ++i)
{
for (int j = 0; j < columns; ++j)
Console.Write("{0:f4} ", course_two[i, j]);
Console.WriteLine();
}
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
// 2.2. Поиск и вывод среднего значения
double v_midle2 = 0;
for (int i = 0; i < size; ++i)
{
v_midle2 += course_two[i, 0];
}
v_midle2 /= size;
Console.WriteLine("Среднее значение = {0:f4}", v_midle2);
// 2.3. Поиск и вывод минимального значения
double v_min2 = 9999;
for (int i = 0; i < size; ++i)
{
if (course_two[i, 0] < v_min2)
v_min2 = course_two[i, 0];
}
Console.WriteLine("Минимальное значение = {0:f4}", v_min2);
// 2.4. Поиск и вывод максимального значения
double v_max2 = 0;
for (int i = 0; i < size; ++i)
{
if (course_two[i, 0] > v_max2)
v_max2 = course_two[i, 0];
}
Console.WriteLine("Максимальное значение = {0:f4}", v_max2);
// 2.5. Поиск и вывод cуммы квадратов разности
double s2 = 0;
for (int i = 0; i < size; ++i)
{
s2 += (course_two[i, 0] - v_midle2) * (course_two[i, 0] - v_midle2);
}
Console.WriteLine("Сумма квадратов разности = {0:f4}", s2);
// 2.6. Вывод корня из cуммы квадратов разности
Console.WriteLine("Корень из суммы квадратов разности = {0:f4}", Math.Sqrt(s2));
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
// 2.7.
double[,] answer_3 = new double[size, columns];
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(" \t\t\t\ttask_2\nЮань:\t\t\t\t\tГурд:");
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
for (int j = 0; j < columns; ++j)
{
for (int i = 0; i < size; ++i)
{
if (j == 0)
answer_3[i, j] = (v_max - course_two[i, j]) / v_max * 100;
else
answer_3[i, j] = (v_max2 - course_two[i, j]) / v_max2 * 100;
}
}
for (int i = 0; i < size; ++i)
{
for (int j = 0; j < columns; ++j)
Console.Write("{0:f4}\t\t\t\t ", answer_3[i, j]);
Console.WriteLine();
}
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
}
}
}