<em>Проверено на fpc 3.0.0 </em>
const
m=6; // строк
n=9; // столбцов
var
a:array[1..m,1..n] of integer;
i,j,k1,k2,s,k:integer;
begin
Writeln('Введите границы диапазона: '); Read(k1,k2);
Randomize;
s:=0; k:=0;
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=Random(199)-99; // [-99;99]
Write(a[i,j]:4);
if (a[i,j]>=k1) and (a[i,j]<=k2) then begin
Inc(k); s:=s+a[i,j]
end
end;
Writeln
end;
Writeln('Отобрано элементов: ',k,', их сумма равна ',s)
end.
<u>Пример</u>
Введите границы диапазона:
-20 55
-2 -52 -11 -12 70 -15 90 -51 75
-54 -92 32 54 -72 -24 -40 -37 -20
0 -14 -79 -1 -39 -34 39 47 34
-91 -98 -68 -16 -56 -55 97 66 59
-48 -67 -34 92 -77 12 -67 -23 -90
75 85 65 -98 -58 -53 -6 34 33
Отобрано элементов: 18, их сумма равна 188
<em>// PascalABC.NET 3.2, сборка 1379 от 21.01.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
for var m:=1 to ReadInteger('n=')-1 do begin
var s:=0;
for var i:=1 to m div 2 do
if m mod i=0 then s+=i;
if m=s then Writeln(m)
end
end.
<u>Пример</u>
n= 10000
6
28
496
8128
Если "0" и "1" всего 2, то так: 00, 01, 10, 11
Если должно быть два "0" и две "1", то так:
0011, 0101, 0110, 1001, 1010, 1100
Используя Паскаль:
var rndm: array[1..20] of longint;
i,n1.n2,c : longint;
begin
for i:=1 to 20 do rndm[i]:=i;
for i:=1 to 100 do begin
n1:=random(19)+1;
n2:=random(19)+1;
c:=rndm[n1];
rndm[n1]:=rndm[n2];
rndm[n2]:=c;
end;
for i:=1 to 20 do write (rndm[i],' ');
end.