Во-первых хотелось бы узнать, почему у тебя в 24 строчке странная запись:
if (P else F:=false;
Здесь непонятно, к чему написана скобка, а также непонятно, куда затерялся синтаксический then.
Во-вторых - почему в той же строчке сравниваешь тип real с типом boolean? На это ругается даже компилятор.
В-третьих - если мы опустим эти недочёты и вникнем в алгоритм, то поймём, что ты зациклил условие проверки P на истинность до тех пор, пока i не будет больше n или пока F не станет ложью. Но тут подвох в чём? В этом цикле ты не производишь никаких действий над операторами в условии, кроме как присваивание булевой переменной F значение false, чему оно и равно изначально. То есть можно сказать, что у тебя здесь происходит бесконечное зацикливание. Скорее всего именно поэтому у тебя не выводится массив, потому что компилятор не в состоянии дойти до строчки вывода. Чтобы хотя бы часть условия выполнилась, тебе нужно в условии if..then..else присваивать F не false, а true. Но это только в том случае, если ты исправишь конструкцию условия.