// PascalABC.NET 3.1, сборка 1200 от 13.03.2016 function IsPrime(n:integer):boolean; begin if n<4 then Result:=True else begin var found:= (n mod 2 = 0); var p:=3; while (not found) and (sqr(p)<=n) do begin found:=(n mod p = 0); p+=2 end; Result:=not found end end;
begin Writeln('k=',ArrRandom(ReadInteger('n='),1,999).Println. Where(x->IsPrime(x)).Count) end.
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016 procedure IsPrime(n:integer; var res:boolean); begin if n<4 then res:=True else begin var found:= (n mod 2 = 0); var p:=3; while (not found) and (sqr(p)<=n) do begin found:=(n mod p = 0); p+=2 end; res:=not found end end;
begin var a:=ArrRandom(ReadInteger('n='),1,999); a.Println; var k:=0; var prime:boolean; foreach var e in a do begin IsPrime(e,prime); if Prime then Inc(k) end; Writeln('k=',k) end.
Версия языка: PascalABC.Net 3.2, сборка 1437 от 03.05.2017
1. Сохраняем текст модуля в файле garnaga.pas и выполняем компиляцию (Ctrl+F9)
unit garnaga;
interface
type Mass2d=array [,] of integer;
function GetMass(rand:boolean:=true):Mass2d;
function SumDiag(a:Mass2d):integer;
implementation
function GetMass(rand:boolean):Mass2d; begin var n:=ReadInteger('Количество строк/столбцов в массиве:'); if rand=true then begin var a:=ReadInteger('Минимальное значение для заполнения:'); var b:=ReadInteger('Максимальное значение для заполнения:'); Result:=MatrRandom(n,n,a,b) end else begin Writeln('Вводите элементы массива:'); Result:=ReadMatrInteger(n,n) end end;
function SumDiag(a:Mass2d):integer; begin Result:=0; var n:=a.RowCount-1; for var i:=0 to n do Result+=a[i,i]+a[i,n-i]; if n.IsEven then begin n:=n div 2; Result-=a[n,n] end end;
end.
2. Создаем новый файл и помещаем в него программу, использующую созданный модуль
uses garnaga;
begin var a:=GetMass; a.Println; Writeln; var b:=GetMass; b.Println; Writeln; var c:=GetMass(false); Writeln; Writeln('Sдиаг=',SumDiag(a)+SumDiag(b)+SumDiag(c)) end.
3. Запускаем программу на выполнение.
Пример работы: Количество строк/столбцов в массиве: 4 Минимальное значение для заполнения: -20 Максимальное значение для заполнения: 35 4 -14 -14 26 26 -6 12 22 13 10 -20 26 -3 22 14 -4
Количество строк/столбцов в массиве: 5 Минимальное значение для заполнения: 0 Максимальное значение для заполнения: 50 13 48 5 12 2 43 31 45 35 23 36 30 6 47 42 11 8 29 36 39 11 33 14 48 29
Количество строк/столбцов в массиве: 3 Вводите элементы массива: 1 6 2 8 3 4 7 0 5