Например так:
#!/usr/bin/perl
for(1..12){@arr[$_]=int(rand(100))};
print "@arr\n";
print "Write first element:"; chomp($n1=<>);
print "Write second element:"; chomp($n2=<>);
(@arr[$n1], @arr[$n2])=(@arr[$n2], @arr[$n1]);
print "\
[email protected]\n"
Только по хорошему нужна проверка введенных значений еще.
<u>PascalABC.NET 3.3.5, сборка 1648 от 31.03.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
function AvgLen(fn:string):real;
begin
if FileExists(fn) then
Result:=ReadAllText(fn).ToWords.Select(w->w.Length).Average
else
Result:=0
end;
begin
Writeln(AvgLen(ReadlnString('Имя файла:')):0:2)
end.
<u>Примеры</u>
Имя файла: input.txt
5.42
Имя файла: Pushkin2.txt
5.20
Имя файла: Pascal.txt
7.02
Дано:
Одно измерение - целое число от 0 до 100%
Всего измерений - 8192 штуки
Суммарный информационный объем - ?
Формула:
100 в двоичной системе счисления - 1100100
Решение:
Так как число 100 в двоичной системе счисления имеет 7 цифр (бит), то учитывая то, что это число максимально возможный результат, то все меньшие числа будут "вмещатся" в 7 цифр (бит). Всего было сделано 8192 измерений, значит общий информационный объем наблюдения равен 8192 * 7 бит = 57344 бит.
Var s1,s2:string; x:char; i,p:integer;
begin
writeln('Введите предложение:');
readln(s1);
write('x = ');
readln(x);
for i:=length(s1) downto 1 do
if s1[i] in [',',';',':','.','!','?']
then delete(s1,i,1);
s1:=s1+' ';
s2:='';
p:=pos(' ',s1);
while p>0 do
begin
if s1[p-1]=x then s2:=s2+copy(s1,1,p-1)+',';
delete(s1,1,p);
p:=pos(' ',s1);
end;
if s2='' then writeln('В предложении нет искомых слов')
else
begin
delete(s2,length(s2),1);
writeln(s2);
end;
end.
Пример:
Введите предложение:Дано предложение. Посчитать количество слов, заканчивающихся на заданную букву, и записать эти слова в другую строку через запятую.
x = ю
заданную,другую,запятую