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[]{ 29.8705,
30.1458,
30.5273,
30.5419,
30.5752,
30.6684,
30.5871,
30.6159,
30.1997,
30.2556,
30.1821,
30.1128,
30.1813,
30.0476,
30.0032,
30.0630,
29.9650,
29.8618,
30.2207,
30.2168 };
// двумерный массив курсов валют Юань и Гурд
double[,] course_two = new double[,]{ {42.4352, 29.8705},
{42.5846, 30.1458},
{42.7075, 30.5273},
{42.6112, 30.5419},
{42.6669, 30.5752},
{42.5163, 30.6684},
{42.1845, 30.5871},
{42.0499, 30.6159},
{41.6908, 30.1997},
{41.7770, 30.2556},
{41.2029, 30.1821},
{41.2450, 30.1128},
{41.1446, 30.1813},
{40.3078, 30.0476},
{40.4959, 30.0032},
{40.7127, 30.0630},
{40.6032, 29.9650},
{40.7533, 29.8618},
{41.0535, 30.2207},
{41.2723, 30.2168}};
int a = 1;
int b = 30;
const int size = 20; // размер массива
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();
// 1.7.
double[] answer_1 = new double[size];
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("\t\t\t\ttask_2:");
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
for (int i = 0; i < size; ++i)
{
answer_1[i] = (v_max - course_one[i]) / v_max * 100;
}
for (int i = 0; i < size; ++i)
Console.WriteLine("{0:f4} ", answer_1[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 Гурд:");
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_2 = new double[size, columns];
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(" \t\t\t\ttask_1\nЮань: \t\t Гурд:");
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
for (int j = 0; j < columns; ++j)
{
for (int i = 0; i < size; ++i)
{
if (j == 0)
answer_2[i, j] = ((b - a) * (course_two[i, j] - v_midle2)) / (v_max2 - v_min2) + a;
else
answer_2[i, j] = ((b - a) * (course_two[i, j] - v_midle)) / (v_max - v_min) + a;
}
}
for (int i = 0; i < size; ++i)
{
for (int j = 0; j < columns; ++j)
Console.Write("{0:f4}\t\t\t\t ", answer_2[i, j]);
Console.WriteLine();
}
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
// 2.8.
double[,] answer_3 = new double[size, columns];
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(" \t\t\t\ttask_2\nЮань: \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_2[i, j]);
Console.WriteLine();
}
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("--------------------------------------------------------------------------------");
Console.ResetColor();
}
}
}