Эта программа не делает ничего. Абсолютно. Зависает навсегда. В функции есть строка whle x<=x, что позволяет ей крутиться вечно. Я думаю, что то пошло не так, и раз уж так и произошло, то по сути, largest power - это степень не превышающего наименьшего числа, то есть, наибольшая степень, в которую можно возвести число, что бы итог был меньше, чем другое число. И тут нужно лишь заменить while x<=x на while p<=x и вот, она на тесте 100 3 даст ответ 4, так как 3*3*3*3=27*3<100, а вот 3*3*3*3*3>100. Но это лишь предположения. А так ваша программа выводит о введении числа, считывает их, ставит на вывод "n=" и уходит вдаль, ожидая, пока число будет больше самого себя
{$APPTYPE CONSOLE} Const n = 13; Type Mass = array[1..n] of integer;
Procedure BbIBOD(Var A:Mass); Var i:integer; Begin For i:= 1 to n do Write(' ',A[i]) End;
Function SWP(Var A:Mass; c:real):integer; Var i,j:integer; Begin For i:= 1 to n do if (A[i] < 0)and(A[i] <= c) then j:=i; if j <> 0 then Begin WriteLn('Искомый элемент: ',A[j],'[',j,']'); A[j]:=Sqr(A[j]); i:=A[n-1]; A[n-1]:=A[j]; A[j]:=i; Write('Новый массив:'); BbIBOD(A); End else Write('В массиве нет отрицательных элементов') End;
Var A:Mass; i:integer; c:real; Begin Randomize; Write('Исходный массив(',n,'):'); For i:= 1 to n do A[i]:=random(2*n+1)-n; BbIBOD(A); WriteLn; Write('Введите число: '); ReadLn(c); SWP(A,c); ReadLn End.