Uses crt;
const
n = 10;
var
a,b : array[1..n] of integer;
i,j : integer;
begin
randomize;
i := 0;
j := 0;
for i := 1 to n do
begin
a[i] := random(21)-10;
write(a[i],' ');
end;
writeln;
for i := 1 to n do
if (a[i] < 0) and (a[i] mod 2 = 0) then
begin
j := j+1;
b[j] := a[i];
end;
for i := 1 to j do
writeln(b[i]);
readln;
end.
Ответ:
РОПОР и ТОПОР
Объяснение:
Представим что имеем дело с 4-ичной системой счисления { 0 - О, 1 - П, 2 - Р, 3 - Т }. В таком случае вышенаписанный ряд можно представить в такой виде:
1. ООООО (00000) = 0 в 10ичной СС
2. ООООП (00001) = 1 в 10ичной СС
3. ООООР (00002) = 2 в 10ичной СС
4. ООООТ (00003) = 3 в 10ичной СС
5. ОООПО (00010) = 4 в 10ичной СС
...
Исходя из этого, чтобы получить слово, находящееся на 531 месте и 787 месте, достаточно перевести числа 530 и 786 в 4-ичную систему счисления и заменить цифры буквами.
1.
530 / 4 = 132 (2 остаток)
132 / 4 = 33 (0 остаток)
33 / 4 = 8 (1 остаток)
8 / 4 = 2 (0 остаток)
530(10) = 20102 (4)
Замена: РОПОР
2.
786 / 4 = 196 (2 остаток)
196 / 4 = 49 (0 остаток)
49 / 4 = 12 (1 остаток)
12 / 4 = 3 (0 остаток)
786(10) = 30102(4)
Замена: ТОПОР
<u>PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
begin
var n:=ReadInteger('Количество строк/столбцов в таблице:');
var a:=MatrRandom(n,n,0,1);
a.Println(2); Writeln(2*a.ColCount*'-');
// 1
var k:=0;
for var i:=0 to a.RowCount-1 do
for var j:=0 to a.ColCount-3 do
if (a[i,j]=0) and (a[i,j+1]=0) and (a[i,j+2]=0) then begin
k+=1; break
end;
Writeln('1: ',k);
// 2
k:=0;
for var j:=0 to a.ColCount-1 do
if (a[0,j]=0) and (a[1,j]=1) then begin
var (i,flag):=(2,True);
while i<=a.RowCount-2 do begin
if not ((a[i,j]=0) and (a[i+1,j]=1)) then
begin flag:=False; break end
else i+=2
end;
if flag then k+=1
end
else
if (a[0,j]=1) and (a[1,j]=0) then begin
var (i,flag):=(2,True);
while i<=a.RowCount-2 do begin
if not ((a[i,j]=1) and (a[i+1,j]=0)) then
begin flag:=False; break end
else i+=2
end;
if flag then k+=1
end;
Writeln('2: ',k);
// 3
var r0:=a.Rows.Where(row->row.All(t->t=0)).Count;
var c1:=a.Cols.Where(col->col.All(t->t=1)).Count;
Writeln('3: Нулевых строк ',r0,', единичных колонок ',c1)
end.
<u>Пример</u>
Количество строк/столбцов в таблице: 4
1 1 0 1
0 0 0 1
1 1 1 1
0 1 1 1
--------
1: 1
2: 1
3: Нулевых строк 0, единичных колонок 1
Если хочешь вывести текст
write('текст'); //Ковычки одинарные
если ты хочешь вывести переменную то без кавычек
a := 1;
write(a);
Также можешь добавить в конец "ln" т.е. writeln(...); после того как выведет он перенесет на следующую строку
Оператор ввода:
Read(переменная); read(a); read(b);
Также и тут можешь перенести строку:
Readln(...);
Readln(n);
for i:=2 to n do
if n mod i=0 then
writeln(i);
break;
end.