ПИТОН: Заполните массив случайными числами в интервале [0,5]. Определить, есть ли в нем элементы с одинаковыми значениями, стоящие рядом.
Пример:
Массив:
1 2 3 3 2 1
Есть: 3
Пример:
Массив:
1 2 3 4 2 1
Нет
ПИТОН: Заполнить массив случайными числами в интервале [0,100] и отобрать в другой массив все числа. Используйте логическую функцию, которая определяет, является ли переданное ей число Пример:
Массив А:
12 13 85 96 47
Массив B:
13 47
*** этот файл мы должны назвать nekkit20.pas ***
*** после его компиляции будет создан модуль ***
unit nekkit20;
type
tra=(string,integer);
function RomeToArab(s:string):integer;
// Перевод римских чисел (не больших MMMCMXCIX) в арабские
begin
var ar:='IVXLCDM';
var aa:=Arr(1,5,10,50,100,500,1000);
var n:=0;
Result:=0;
foreach var c in s do
begin
var c1:=n;
n:=aa[Pos(c,ar)-1];
Result+=n+(n>c1?-2*c1:0)
end;
end;
function Equal(r:array of string; a:array of integer):sequence of tra;
// Возвращает последовательность кортежей
// из массива римских чисел (массив r),
// для которых есть соответствие в массиве арабских чисел (массив a)
begin
foreach var q in r do
begin
var n:=RomeToArab(q);
if a.IndexOf(n)>-1 then yield((q,n))
end
end;
end.
*** а это другой файл с любым именем, кроме nekkit20 ***
*** он обращается к молулю nekkit20 ***
uses nekkit20;
begin
var sr:=Arr('DXVIII','LXIII','MII','XIV','LXXXVIII','CXCVI');
var ar:=Arr(14,98,196,1002,518,64,87);
var R:=Equal(sr,ar);
if R.Count=-1 then Writeln('Нет совпадений')
else
foreach var t in R do
Writeln(t[0],' = ',t[1])
end.
*** Контрольный пример ***
DXVIII = 518
MII = 1002
XIV = 14
CXCVI = 196
program znanija;
uses CRT;
Var n,k,sum,ch,nch: integer;
sa: real;
M: Array[1..25] of integer;
begin
write('Ведите N: ');readln(n);
for k:=1 to 25 do
begin
M[k]:=random(n);
sum:=sum+M[k];
if (M[k] mod 2 = 0) then
begin
ch:=ch+1;
end else
begin
nch:=nch+1;
end;
end;
sa:=sum/25;
Writeln('Среднее арихметическое - ',sa);
Writeln('Сумма чисел - ', sum);
Writeln('Количество чётных - ', ch);
Writeln('Количество не чётных - ', nch);
writeln('--Числа--');
for k:=1 to 25 do
begin
Write(m[k],', ');
end
end.