Задача 1.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Console
{
class Program
{
static void Main(string[] args)
{
char c='y';
do
{
int n,
k,
m;
double av;
try
{
Console.Write("Введите количество строк: ");
m = int.Parse(Console.ReadLine());
Console.Write("Введите количество столбцов: ");
n = int.Parse(Console.ReadLine());
}
catch { Console.WriteLine("Неверные данные!"); continue; }
double[][] a = new double[m][];
for (int i = 0; i < n; i++) a[i]=new double[n+2];
Zadacha.create(a,m,n);
Zadacha.output(a,m,n);
Console.WriteLine("\n");
Zadacha.otritsat(a, m, n, out av, out k);
Console.Write("\nПовторить программму?(Y/N) ");
c = char.Parse(Console.ReadLine());
}
while (c == 'y' || c == 'Y');
}
}
}
Задача 2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Console
{
public class Zadacha
{
public static void create(double[][] a, int m, int n)
{
Random g;
g = new Random();
// Инициализация Random
for (int j=0;j<m;j++)
for (int i = 0; i < n; i++)
a[j][i] = g.NextDouble() * 33 -12.5;
}
public static void output(double[][] a,int m, int n)
{
Console.WriteLine("\nСозданный массив массивов: ");
for (int j=0;j<m;j++)
{
Console.WriteLine();
for (int i = 0; i < n; i++)
Console.Write("{0,7:f2} ",a[j][i]);
}
}
public static void otritsat(double[][] a,int m, int n, out double av, out int k)
{
av = 0;
k = 0;
for (int j = 0; j < m; j++)
for (int i = 0; i < n; i++)
if (a[j][i] < 0) { a[j][n] = a[j][n] + a[j][i]; a[j][n + 1] = a[j][n + 1] + 1; }
for (int j = 0; j < m; j++)
{
if (a[j][n + 1] == 0) a[j][n + 1] = 1;
a[j][n] = a[j][n] / a[j][n + 1];
}
for (int j = 0; j < m; j++)
{
if (a[j][n] == 0) a[j][n + 1] = 0;
Console.WriteLine("Количество отрицательных элементов в строке {0,1} равно {1,2}. \nИх среднее значение {2,5:f2}", j, a[j][n + 1], a[j][n]);
}
}
}
}
Задача 3.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class MyMethod
{
public static void Rand(double[,] mas, int n, int m)
{
Random gen = new Random();
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
mas[i, j] = (double)gen.Next(-12, 22)/10;
}
public static void Print(double[,] mas, int n, int m)
{
for (int i = 0; i < n; i++, Console.WriteLine())
for (int j = 0; j < m; j++) Console.Write("{0,8:f2}", mas[i,j]);
}
public static double[] Prostoe(double[,] mas, int n, int m)
{
int l = 0;
double[] k;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
if (mas[i, j] > 0)
l++;
}
k = new double[l];
for (int i = 0, x=0; i < n; i++)
for (int j = 0; j < m; j++)
{
if (mas[i, j] > 0)
{ k[x] = mas[i, j]; x++; }
}
return k;
}
public static void Print(double[] a, int n)
{
for (int i = 0; i < n; i++)
Console.Write("{0,8:f2}", a[i]);
}
}
class Program
{
static void Main(string[] args)
{
int n, m;
double[] a;
ConsoleKeyInfo клавиша;
do
{
Console.Clear();
Console.Write("Кол-во строк: ");
n = int.Parse(Console.ReadLine());
Console.Write("\nКол-во столбцов: ");
m = int.Parse(Console.ReadLine());
double[,] mas = new double[n, m];
MyMethod.Rand(mas, n, m);
Console.WriteLine("\n Исходный массив:");
MyMethod.Print(mas, n, m);
a=MyMethod.Prostoe(mas, n, m);
Console.WriteLine("\n Сформированный массив:");
MyMethod.Print(a, n);
Console.WriteLine("\n Для выходанажмите ESC");
клавиша = Console.ReadKey(true);
} while (клавиша.Key != ConsoleKey.Escape);
}
}
}