Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
ProWIN2
//Microsoft (R) Visual C# Compiler version 3.4.0-beta4-19562-05 (ff930dec) //Copyright (C) Microsoft Corporation. All rights reserved. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Drawing; namespace ProWIN1 { class Program { struct TEAM // структура команды { public int n; // номер в списке public string name; // название public List<int> Lmatch; // список cыгранных матчей (с конкретными очками в сетах) (3:2) -> 3 ; (2:3) -> 2 ; (1:3) -> 1 ; (0:3) -> 0 ; public List<int> LmatchE; // список cыгранных матчей (с конкретными очками противника в сетах) (3:2) -> 2 ; (2:3) -> 3 ; (1:3) -> 3 ; (0:3) -> 3 ; public List<int> Lscore; // список очков за матчи (по евро системе) (3:0) -> 3 ; (3:1) -> 3 ; (3:2) -> 2 ; (2:3) -> 1 ; (1:3) -> 0 ; (0:3) -> 0 ; public int Cmatch; // всего сыграно игр public int Cwinss; // всего побед public int Closes; // всего поражений public int CsetWin; // количество выигранных сетов public int CsetWinE; // количество выигранных сетов противников public int Score; // очки по евро системе public float _Pscore; // процент побед по евро очкам public float _Psets; // процент выигранных сетов public float _Pmatch; // процент выигранных матчей //public string line; public TEAM(string _name) { n = 0; name = _name; Lmatch = new List<int>(); LmatchE = new List<int>(); Lscore = new List<int>(); Cmatch = 0; Cwinss = 0; Closes = 0; CsetWin = 0; CsetWinE = 0; Score = 0; _Pscore = 0; _Psets = 0; _Pmatch = 0; } }//struct TEAM static string path_inp = "input.txt"; static string path_out = "output.txt"; static TEAM[] Mteams = new TEAM[1]; static void Main(string[] args) { //Freader(path_inp); FreaderC(); //for (int i = 0; i < Llines.Count; i++) { Console.WriteLine(i.ToString("000") + " " + Llines[i]); } Console.WriteLine(Llines.Count); FsetTEAMS(); //Console.WriteLine(CountMatch); Console.WriteLine("num name m01 m02 m03 m04 m05 m06 m07 m08 m09 m10 m11 m12 m13 m14 m15 ALL W L sW sL Sc Sc% Wm% Ws% "); for (int i = 0; i < Llines.Count; i++) { Mteams[i] = FmathTeam(Mteams[i]); FoutTeamConsole(Mteams[i]); } // Fwriter(path_out); FuserC(); Console.WriteLine("EXIT"); //Console.ReadKey(); }//static void Main(string[] args) static void FuserC() { int i1 = 0; int i2 = 0; string line; while ((line = Console.ReadLine()) != "exit") { Console.WriteLine(); String[] players = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); i1 = Convert.ToInt32(players[0]); i2 = Convert.ToInt32(players[1]); POINTf prob1 = FgetPROB_1(Mteams[i1], Mteams[i2]); Console.WriteLine("team name: " + Mteams[i1].name + " " + Mteams[i2].name); Console.WriteLine("probability: " + prob1.X.ToString("00.000") + " " + prob1.Y.ToString("00.000")); Console.WriteLine("coefficient: " + (1 / prob1.X).ToString("00.000") + " " + (1 / prob1.Y).ToString("00.000")); }// while ((line = Console.ReadLine()) != "exit") }//static void Fuser() static void Fuser() { int i1 = 0; int i2 = 0; do { Console.WriteLine(); Console.WriteLine("Enter numbers of pair teams. Enter the equal numbers to exit."); Console.Write("The number of the first team: "); i1 = Convert.ToInt32(Console.ReadLine()); Console.Write("The number of the second team: "); i2 = Convert.ToInt32(Console.ReadLine()); POINTf prob1 = FgetPROB_1(Mteams[i1], Mteams[i2]); Console.WriteLine("team name: " + Mteams[i1].name + " " + Mteams[i2].name); Console.WriteLine("probability: " + prob1.X.ToString("00.000") + " " + prob1.Y.ToString("00.000")); Console.WriteLine("coefficient: " + (1 / prob1.X).ToString("00.000") + " " + (1 / prob1.Y).ToString("00.000")); } while (i1 != i2); }//static void Fuser() static int tec_count_teams = 0; // количество команд static int CountMatch = 0; // количество матчей одной команды в турнире static List<string> Lnames = new List<string>(); // список с названиями команд static List<string> Llines = new List<string>(); // список строк из файла //static List<List<int>> Lteams = new List<List<int>>(); // список команд с их результатами матчей //static int[,] Teams = new int[1,1]; // массив команд // последовательная расшифровка данных команд static void FsetTEAMS() { Array.Resize(ref Mteams, Llines.Count); for (int i = 0; i < Llines.Count; i++) { Mteams[i] = FsetTeam(Llines[i]); }//for (int i = 0; i < Llines.Count; i++) }//static void FsetTEAMS() // расшифровка данных команды по строке static TEAM FsetTeam(string line) { TEAM t = new TEAM(); t.n = tec_count_teams; t.Lmatch = new List<int>(); t.LmatchE = new List<int>(); t.Lscore = new List<int>(); // Brazil 3:0 3:2 0:3 0:3 3:1 3:0 3:1 3:0 3:1 3:0 3:1 3:0 3:0 3:0 3:0 String[] matches = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // разбиваем строку данных if (matches.Length > CountMatch) { CountMatch = matches.Length - 1; } // получаем общее количество матчей (количество получаемых строк минус один (название)) t.Cmatch = CountMatch; // добавляем общее количество матчей в структуру Lnames.Add(matches[0]); // добавляем название команды в список t.name = matches[0]; // добавляем название команды в структуру // бежим по матчам "3:0" for (int i = 1; i < matches.Length; i++) { // Console.WriteLine(words[i]); // разбиваем матч на результаты 3:0 -> 3 и 0 String[] match = matches[i].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); //Console.WriteLine(match[0]); //Console.WriteLine(match[1]); int res0 = Convert.ToInt32(Convert.ToString(match[0])); int res1 = Convert.ToInt32(Convert.ToString(match[1])); t.Score += FgetEuroScore(res0, res1); // запись евро очков t.CsetWin += res0; // добавляем количество выигранных сетов t.CsetWinE += res1; // добавляем количество выигранных сетов противником if (res0 > res1) { t.Cwinss += 1; } // если больше выиграных сетов, то победа в матче else { t.Closes += 1; } //если меньше выиграных сетов, то поражение в матче t.Lmatch.Add(res0); // запись выигранных сетов в список t.LmatchE.Add(res1); // запись выигранных сетов противника в список t.Lscore.Add(FgetEuroScore(res0, res1)); // запись евро очков за матч в список //Lteams[i].Add(); }//for (int i=0; i<matches.Length; i++) tec_count_teams++; // увеличиваем счетчик количества команд return t; }//static void FsetTeam(string line) // чтение из txt файла // Brazil 3:0 3:2 0:3 0:3 3:1 3:0 3:1 3:0 3:1 3:0 3:1 3:0 3:0 3:0 3:0 static void Freader(string path) { using (StreamReader reader = new StreamReader(path)) { string line; while ((line = reader.ReadLine()) != null) { Llines.Add(line); } reader.Close(); }//using (StreamReader reader = new StreamReader(path)) }//static void Freader() static void Fwriter(string path) { using (StreamWriter writer = new StreamWriter(path, false)) { for (int i = 0; i < tec_count_teams; i++) { writer.WriteLine(strFoutTeam(Mteams[i])); } } }//static void Fwriter(string path) // вывод данных команды на экран (с расчетами) static void FoutTeamConsole(TEAM t) { Console.WriteLine(strFoutTeam(t)); }//static void FoutTeam(int i) static string strFoutTeam(TEAM t) { string Line = ""; Line += t.n.ToString("000"); Line += (" " + t.name + " "); for (int i = 0; i < t.Cmatch; i++) { Line += (t.Lmatch[i].ToString() + ":" + t.LmatchE[i].ToString() + " "); } Line += (t.Cmatch.ToString("00")); Line += ("="); Line += (t.Cwinss.ToString("00")); Line += ("+"); Line += (t.Closes.ToString("00")); Line += (" "); Line += (t.CsetWin.ToString("00")); Line += (":"); Line += (t.CsetWinE.ToString("00")); Line += (" "); Line += (t.Score.ToString("00")); Line += (" "); Line += (t._Pscore.ToString("0.000")); Line += (" "); Line += (t._Pmatch.ToString("0.000")); Line += (" "); Line += (t._Psets.ToString("0.000")); return Line; }//static string strFoutTeam(TEAM t) // евро очки по результатам матча static int FgetEuroScore(int i0, int i1) { int result = 0; if ((i0 == 3) && (i1 == 0)) { result = 3; } if ((i0 == 3) && (i1 == 1)) { result = 3; } if ((i0 == 3) && (i1 == 2)) { result = 2; } if ((i0 == 2) && (i1 == 3)) { result = 1; } if ((i0 == 1) && (i1 == 3)) { result = 0; } if ((i0 == 0) && (i1 == 3)) { result = 0; } return result; }//static int FgetEuroScore(int i1, int i2) // рассчеты для команды static TEAM FmathTeam(TEAM t) { t._Pscore = (float)t.Score / (3.0f * (float)t.Cmatch); // процент евро очков = количество выигранных евро очков делить на общее количество евро очков t._Psets = (float)t.CsetWin / ((float)t.CsetWin + (float)t.CsetWinE); // процент выигранных сетов = количество выигранных сетов делить на общее количество сетов t._Pmatch = (float)t.Cwinss / (float)t.Cmatch; // процент выигранных матчей = количество выигранных делить на общее количество return t; }//static void FmathTeam(TEAM t) ////////////////////////////////////////////////////////////////// // рассчет вероятности победы static POINTf FgetPROB_1(TEAM t1, TEAM t2) { POINTf R = new POINTf(); R.X = t1._Pscore * 0.5f + (1 - t2._Pscore) * 0.5f; R.Y = t2._Pscore * 0.5f + (1 - t1._Pscore) * 0.5f; return R; }//static float FgetPROB(TEAM t1, TEAM t2) struct POINTf { public float X; public float Y; POINTf(float _X, float _Y) { X = _X; Y = _Y; } } static void FreaderC() { string line; while ((line = Console.ReadLine()) != "end") { Llines.Add(line); } }//static void FreaderC() }//class Program }//namespace ProWIN1
run
|
edit
|
history
|
help
0
1
Approximate_exp_13112020
Enigme
Jerold
Display the pattern like diamond by using c# for loop
Prueba
AAAXACAdxcd
a6
Is String a Palindrome
Date example