ПЕРВАЯ ПРОГРАММА using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Factorial { class Program {
static void Main(string[] args) { string str = ""; Console.WriteLine("Vvestu n:"); str = Console.ReadLine(); int n = Convert.ToInt32(str); Console.WriteLine(Enumerable.Range(1, n).Aggregate((p, x) => p * x)); Console.ReadKey(); } } }
Вторая программа (поменяй путь на свой!) using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Open { class Program { static void Main(string[] args) { System.Diagnostics.Process.Start(@"T:\Program Files\Projects\Lessons\Factorial\Factorial\bin\Debug\Factorial.exe"); } } }
// PascalABC.NET 3.2, сборка 1425 от 22.04.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк в матрице:'); var m:=ReadInteger('Количество столбцов в матрице:'); Writeln('*** Исходная матрица [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-9,9); a.Println(3); Writeln(3*a.ColCount*'-'); // 1. удалить строки с нулевыми элементами var v:=a.Rows.Select(x->x.All(y->y<>0)).ToArray; var q:=new integer[v.Where(r->r=true).Count,a.ColCount]; var k:=0; for var i:=0 to v.Count-1 do if v[i] then begin q.SetRow(k,a.Row(i)); k+=1 end; Writeln('Матрица, не содержащая строк с нулями'); a:=Copy(q); a.Println(3); // 2. отсортировать элементы первого столбца по возрастанию a.SetCol(0,a.Col(0).OrderBy(x->x).ToArray); Writeln('Матрица с отсортированной колонкой 1'); a.Println(3); // 3. игры с k и b var b:integer; Write('Введите значения b и 1<=k<=',a.RowCount,': '); Read(b,k); for var j:=k to a.RowCount-1 do a[j,m-1]+=b; Writeln('Матрица с модифицированной последней колонкой'); a.Println(3) end.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Factorial
{
class Program
{
static void Main(string[] args)
{
string str = "";
Console.WriteLine("Vvestu n:");
str = Console.ReadLine();
int n = Convert.ToInt32(str);
Console.WriteLine(Enumerable.Range(1, n).Aggregate((p, x) => p * x));
Console.ReadKey();
}
}
}
Вторая программа (поменяй путь на свой!)
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Open
{
class Program
{
static void Main(string[] args)
{
System.Diagnostics.Process.Start(@"T:\Program Files\Projects\Lessons\Factorial\Factorial\bin\Debug\Factorial.exe");
}
}
}
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк в матрице:');
var m:=ReadInteger('Количество столбцов в матрице:');
Writeln('*** Исходная матрица [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-9,9);
a.Println(3); Writeln(3*a.ColCount*'-');
// 1. удалить строки с нулевыми элементами
var v:=a.Rows.Select(x->x.All(y->y<>0)).ToArray;
var q:=new integer[v.Where(r->r=true).Count,a.ColCount];
var k:=0;
for var i:=0 to v.Count-1 do
if v[i] then begin
q.SetRow(k,a.Row(i)); k+=1
end;
Writeln('Матрица, не содержащая строк с нулями');
a:=Copy(q);
a.Println(3);
// 2. отсортировать элементы первого столбца по возрастанию
a.SetCol(0,a.Col(0).OrderBy(x->x).ToArray);
Writeln('Матрица с отсортированной колонкой 1');
a.Println(3);
// 3. игры с k и b
var b:integer;
Write('Введите значения b и 1<=k<=',a.RowCount,': '); Read(b,k);
for var j:=k to a.RowCount-1 do a[j,m-1]+=b;
Writeln('Матрица с модифицированной последней колонкой');
a.Println(3)
end.
Пример
Количество строк в матрице: 5
Количество столбцов в матрице: 8
*** Исходная матрица [5,8] ***
-4 -8 4 -4 8 -6 5 -2
2 -7 -4 6 8 4 9 -8
0 -8 -4 -7 -4 -7 6 -3
6 -4 -8 9 -7 -5 -3 -2
-9 7 -1 -2 -9 9 7 4
Матрица, не содержащая строк с нулями
-4 -8 4 -4 8 -6 5 -2
2 -7 -4 6 8 4 9 -8
6 -4 -8 9 -7 -5 -3 -2
-9 7 -1 -2 -9 9 7 4
Матрица с отсортированной колонкой 1
-9 -8 4 -4 8 -6 5 -2
-4 -7 -4 6 8 4 9 -8
2 -4 -8 9 -7 -5 -3 -2
6 7 -1 -2 -9 9 7 4
Введите значения b и 1<=k<=4: 5 2
Матрица с модифицированной последней колонкой
-9 -8 4 -4 8 -6 5 -2
-4 -7 -4 6 8 4 9 -8
2 -4 -8 9 -7 -5 -3 3
6 7 -1 -2 -9 9 7 9
Замечание: Под удалением без всяких условностей понимается именно удаление. Матрица после удаления просто содержит меньшее количество строк.