var
a: array[1..20, 1..20] of integer;
n, m, i, j, jm: integer;
begin
randomize;
writeln('Введите количество строк и столбцов соответственно: ');
readln(n, m);
writeln('Сгенерированная матрица: ');
for i := 1 to n do
jm := 1;
for j := 1 to m do
a[i, j] := random(99);
write(a[i, j]:4);
if (i mod 2 = 0) and (a[i, jm] > a[i, j])
then jm := j;
end;
if i mod 2 = 0 then write(' min=a[', i, ',', jm, ']=', a[i, jm]);
writeln;
readln;
end.
Объяснение:
Задание 1
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!
var s:=ReadlnString;
var a:=s.ToWords('.').Select(t->Trim(t)).ToArray;
var b:=s.ToWords(Arr('.',' '))
.GroupBy(t->t).Select(t->(t.Key,t.Count))
.Where(t->t[1]>1).Select(t->t[0]).ToArray;
a.Cartesian(b,(p,q)->p.Contains(q)?p:'')
.Where(t->t.Length>0).Distinct.PrintLines
Примеры
Мама мыла полы. Маша ела кашу. Даша пила молоко. Таня мыла полы.
Мама мыла полы
Таня мыла полы
Мама мыла раму.
Маша ела кашу. Даша пила молоко. Таня мыла полы.
Мама мыла рамуТаня мыла полы
Задание 2
uses crt;
var n,i,k:integer;
repeat
write('Введите натуральное число >0 n=');
read(n);
until n>0;
if n=1 then write('Простых множителей нет')
else
write(n,'=');
i:=2;
while i<=n do
k:=0;
while n mod i=0 do
k:=k+1;
n:=n div i;
if i<n then
if k=1 then write(i,'*')
else if k>1 then write(i,'^',k,'*');
end
if k=1 then write(i)
else if k>1 then write(i,'^',k);
i:=i+1;
Задание 3
var n,m,i:integer;
function fact(j:integer):longint;
if j=1 then fact:=1 else fact:=j*fact(j-1);
readln(m,n);
for i:=m to n do if i mod 2 =0 then write(fact(i),' ');
Задание 4
program SomeProgram;
var i,n,summ:integer;
a:array[1..150] of integer;
readln(n); {ввод размерности массива}
for i:=1 to n do readln(a[i]); {ввод массива}
summ:=0; {обнулим сумму на всякий случай}
for i:=1 to n do {собственно поиск суммы}
if a[i]=i then {коли номер элемента равен элементу, то...}
summ:=summ+a[i]; {...прибавить к сумме значение элемента}
Writeln('Сумма:',summ);
var
a: array[1..20, 1..20] of integer;
n, m, i, j, jm: integer;
begin
randomize;
writeln('Введите количество строк и столбцов соответственно: ');
readln(n, m);
writeln('Сгенерированная матрица: ');
for i := 1 to n do
begin
jm := 1;
for j := 1 to m do
begin
a[i, j] := random(99);
write(a[i, j]:4);
if (i mod 2 = 0) and (a[i, jm] > a[i, j])
then jm := j;
end;
if i mod 2 = 0 then write(' min=a[', i, ',', jm, ']=', a[i, jm]);
writeln;
end;
readln;
end.
Объяснение:
Задание 1
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadlnString;
var a:=s.ToWords('.').Select(t->Trim(t)).ToArray;
var b:=s.ToWords(Arr('.',' '))
.GroupBy(t->t).Select(t->(t.Key,t.Count))
.Where(t->t[1]>1).Select(t->t[0]).ToArray;
a.Cartesian(b,(p,q)->p.Contains(q)?p:'')
.Where(t->t.Length>0).Distinct.PrintLines
end.
Примеры
Мама мыла полы. Маша ела кашу. Даша пила молоко. Таня мыла полы.
Мама мыла полы
Таня мыла полы
Мама мыла раму.
Маша ела кашу. Даша пила молоко. Таня мыла полы.
Мама мыла рамуТаня мыла полы
Задание 2
uses crt;
var n,i,k:integer;
begin
repeat
write('Введите натуральное число >0 n=');
read(n);
until n>0;
if n=1 then write('Простых множителей нет')
else
begin
write(n,'=');
i:=2;
while i<=n do
begin
k:=0;
while n mod i=0 do
begin
k:=k+1;
n:=n div i;
end;
if i<n then
begin
if k=1 then write(i,'*')
else if k>1 then write(i,'^',k,'*');
end
else
begin
if k=1 then write(i)
else if k>1 then write(i,'^',k);
end;
i:=i+1;
end;
end;
end.
Задание 3
var n,m,i:integer;
function fact(j:integer):longint;
begin
if j=1 then fact:=1 else fact:=j*fact(j-1);
end;
begin
readln(m,n);
for i:=m to n do if i mod 2 =0 then write(fact(i),' ');
writeln;
end.
Задание 4
program SomeProgram;
var i,n,summ:integer;
a:array[1..150] of integer;
begin
readln(n); {ввод размерности массива}
for i:=1 to n do readln(a[i]); {ввод массива}
summ:=0; {обнулим сумму на всякий случай}
for i:=1 to n do {собственно поиск суммы}
if a[i]=i then {коли номер элемента равен элементу, то...}
summ:=summ+a[i]; {...прибавить к сумме значение элемента}
Writeln('Сумма:',summ);
end.