лаба1. Мусаев Адам Русланович пи2 19(4 подгруппа) Лабороторная 1 Вариант 9 Задание 1
Скачать 246.79 Kb.
|
Мусаев Адам Русланович ПИ-2 19(4 подгруппа) Лабороторная № 1 Вариант №9 Задание 1. Таблица футбольного чемпионата задана в виде двухмерного массива из n строк и n столбцов, в котором все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 3, 1 или 0 (числу очков, набранных в игре: 3 — выигрыш, 1 — ничья, 0 — проигрыш). в) Определить номер команды, ставшей чемпионом. г) Определить, расположены ли команды в соответствии с занятыми ими местами в чемпионате (принять, что при равном числе очков места распределяются произвольно). using System; namespace ConsoleApp9 { class Program { static void InputArr(int[,] m) { int countt = 0; int max = -9; int maxindex = 0; int max2 = 0; int max2index = 0; int mesto = 0; Random rnd = new Random(); int[] neww = new int[3]{0,1,3}; for(int i = 0;i { for (int j=0;j { m[i, j] = neww[rnd.Next(0,3)]; if(i == j){ m[i, j] = 0; if(j == 0){ Console.Write($"{i+1}) "); mesto = i+1; } Console.Write($"{m[i,j]}\t"); } else{ if(j == 0){ Console.Write($"{i+1}) "); mesto = i+1; } Console.Write($"{m[i,j]}\t"); } if(m[i, j] == 3){ countt += 2; } else if(m[i, j] == 1){ countt += 1; } else if(m[i, j] == 0){ countt -= 1; } } if( countt > max){ max = countt; maxindex = i+1; } else if(countt == max){ max2 = countt; max2index = i+1; } else if(countt < max){ mesto = 0; } countt = 0; Console.WriteLine(); } if(max == max2){ Console.WriteLine($"Командами чемпионами являются - {maxindex},{max2index}!"); } else{ Console.WriteLine($"Команда чемпион является - {maxindex}!"); } Console.WriteLine(); if(mesto == 1){ Console.Write("Места расположены верно!"); } else{ Console.Write("Места расположены не верно!"); } } static void Main(string[] args){ int n = 1; int m = 0; while (n != m){ Console.Write("Введите кол.строк = "); n = int.Parse(Console.ReadLine()); Console.Write("Введите кол.столбцов = "); m = int.Parse(Console.ReadLine()); } int[,] mass = new int[n, m]; InputArr(mass); } } } Задание 2. Дан двухмерный массив целых чисел. Определить: а) минимальный номер строки, состоящей только из положительных элементов; б) минимальный номер строки, состоящей только из положительных и нулевых элементов; using System; namespace ConsoleApp9 { class Program { static void InputArr(int[,] m) { Random rnd = new Random(); for(int i = 0;i { for (int j=0;j { m[i, j] = rnd.Next(-5, 10)+1; Console.Write($"{m[i,j]}\t"); } Console.WriteLine(); } } static void Main(string[] args){ Console.Write("Введите кол.строк = "); int n = int.Parse(Console.ReadLine()); Console.Write("Введите кол.столбцов = "); int m = int.Parse(Console.ReadLine()); int[,] mass = new int[n, m]; InputArr(mass); minimalni(mass); } static void minimalni(int[,] m){ int count = 0; int stringg = 0; int min = 1000; for(int i = 0;i { for (int j=0;j { if(m[i,j] > 0){ count += 1; } } if(count == m.GetUpperBound(1)+1){ stringg = i+1; if(stringg < min){ min = stringg; } } count = 0; } if(min == 1000){ min = 0; } Console.WriteLine(); Console.WriteLine($"Минимальный номер строки с положительными элементами равен - {min}"); } } } Задание 3. Дан двухмерный массив. Определить: а) среднее арифметическое элементов второго столбца массива; б) среднее арифметическое элементов k-й строки массива. using System; namespace ConsoleApp9 { class Program { static void InputArr(int[,] m) { Random rnd = new Random(); for(int i = 0;i { for (int j=0;j { m[i, j] = rnd.Next(0, 100)+1; Console.Write($"{m[i,j]}\t"); } Console.WriteLine(); } } static void Main(string[] args){ Console.Write("Введите кол.строк = "); int n = int.Parse(Console.ReadLine()); Console.Write("Введите кол.столбцов = "); int m = int.Parse(Console.ReadLine()); int[,] mass = new int[n, m]; InputArr(mass); SredneArif(mass); SredneArif2(mass); } static void SredneArif(int[,] m){ int[] chet = new int[m.GetUpperBound(0)+1]; int a = 0; int summa = 0; int num = 0; for(int i = 0;i { for (int j=0;j { if(j == 1){ chet[a] = m[i, j] ; } } a ++; } for(int k = 0;k < chet.Length; k++) { summa += chet[k]; num += 1; } int arif = summa / num; Console.WriteLine(); Console.WriteLine($"Среднее арифметическое элементов второго столбца равно - {arif}"); } static void SredneArif2(int[,] m){ Console.WriteLine("Выберите строку"); int ka = Convert.ToInt32(Console.ReadLine()); int[] chet = new int[m.GetUpperBound(0)+1]; int a = 0; int summa = 0; int num = 0; for(int i = 0;i { for (int j=0;j { if(i+1 == ka){ chet[a] = m[i, j] ; a ++; } } } for(int k = 0;k < chet.Length; k++) { summa += chet[k]; num += 1; } int arif = summa / num; Console.WriteLine(); Console.WriteLine($"Среднее арифметическое ka-й строки массива - {arif}"); } } } Задание 4. Фирма имеет 10 магазинов. Информация о доходе каждого магазина за каждый месяц года хранится в двухмерном массиве (в первом столбце за январь, во втором — за февраль и т. д). Верно ли, что общий доход фирмы в сентябре превысил некоторое заданное число? using System; namespace ConsoleApp9 { class Program { static void InputArr(int[,] m) { int summaSep = 0; int chislo = 403000; string[] h = {"январь ", "февраль ", "март ", "апрель ", "май ", "июнь ", "июль ", "август ", "сентябрь", "октябрь ", "ноябрь ", "декабрь " }; Random rnd = new Random(); for(int i = 0;i { Console.Write($"{h[i]}\t"); for (int j=0;j { m[i, j] = rnd.Next(20000,50000)+1; Console.Write($"{m[i,j]}\t"); if(i == 8) { summaSep += m[i, j]; } } Console.WriteLine(); } Console.WriteLine($"Сумма зарплат за cентябрь = {summaSep}"); Console.WriteLine($"Заданное число ={chislo} "); if(summaSep > chislo) { Console.WriteLine("Да ,верно"); } else { Console.WriteLine("Нет ,не верно"); } } static void Main(string[] args) { Console.Write("Введите кол.строк = "); int n = int.Parse(Console.ReadLine()); Console.Write("Введите кол.столбцов ="); int m = int.Parse(Console.ReadLine()); int[,] mass = new int[n, m]; InputArr(mass); } } } |