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[]{ 14.6552,
14.7516,
14.7187,
14.7532,
14.7555,
14.7582,
14.8318,
14.7771,
14.7527,
14.7849,
14.8146,
14.7779,
14.7322,
14.7637,
14.7777,
14.8675,
14.8789};
// двумерный массив курсов валют Венгерский форинт и Гурд
double[,] course_two = new double[,] {{14.6552, 80.5393},
{14.7516, 81.7625},
{14.7187, 81.3379},
{14.7532, 81.1029},
{14.7555,81.9694},
{ 14.7582, 82.2594},
{14.8318, 82.3707},
{14.7771, 82.4520},
{14.7527, 82.9665},
{14.7849, 83.1884},
{14.8146, 83.3181},
{14.7779, 83.7230},
{14.7322, 84.2804},
{14.7637, 85.3857},
{14.7777, 85.1784},
{14.8675, 85.0266},
{14.8789, 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Гурд:");
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Гурд:");
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] = (course_two[i, j] - v_min) / v_min * 100;
else
answer_3[i, j] = (course_two[i, j] - v_min2) / v_min2 * 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();
}
}
}