// PascalABC.NET 3.3, сборка 1583 от 25.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var p:=ArrRandom(40,-99,99); p.Println; // максимум среди четных var max:=p.Select((v,i)->(v,i)).Where(t->t[1].IsOdd).Max(t->t[0]); // первый из четных индексов элементов, равных max var im:=p.IndexesOf(t->t=max).Where(t->t.IsOdd).First; // домножаем... for var i:=0 to im-1 do p[i]*=max; p.Println end.
Замечание: можно здесь обойтись и без переменной translatedText в функции.
var translatedText:string; function translate(s:string):string; const gl:set of char= ['А','Е','Ё','И','О','У','Ы','Э','Ю','Я','а','е','ё','и','о','у','ы','э','ю','я']; zn:set of char=['.',',','-','!','?','"',':']; var i:integer; begin for i:=length(s) downto 1 do if s[i] in gl+zn then delete(s,i,1); while pos(' ',s)>0 do delete(s,pos(' ',s),1); translate:=s; translatedText:=s; end; begin translate('Удивительный факт, но текст на языке НЕРАЗБОРЧИВО оказывается довольно просто читать. Достаточно небольшой тренировки - и вы сможете это делать.'); writeln(translatedText); end.
Результат:двтльнй фкт н ткст н зк НРЗБРЧВ кзвтс двльн прст чтть Дсттчн нбльшй трнрвк в смжт т длть
// Внимание! Если программа не работает, обновите версию!
begin
var p:=ArrRandom(40,-99,99); p.Println;
// максимум среди четных
var max:=p.Select((v,i)->(v,i)).Where(t->t[1].IsOdd).Max(t->t[0]);
// первый из четных индексов элементов, равных max
var im:=p.IndexesOf(t->t=max).Where(t->t.IsOdd).First;
// домножаем...
for var i:=0 to im-1 do p[i]*=max; p.Println
end.
Пример
63 53 -46 -34 -65 -87 79 71 57 -93 -49 51 -85 -46 -26 -7 53 96 86 38 -9 -91 71 -82 76 69 84 41 81 -11 5 -53 -94 -97 -92 -42 -85 -39 -43 -92
6048 5088 -4416 -3264 -6240 -8352 7584 6816 5472 -8928 -4704 4896 -8160 -4416 -2496 -672 5088 96 86 38 -9 -91 71 -82 76 69 84 41 81 -11 5 -53 -94 -97 -92 -42 -85 -39 -43 -92