Могу в предложить в данном случае использовать goto и метки. Ну, если вы имеете какой то признак неправильных данных, например, это отрицательные значения (предположим, что это неправильные данные) То на этапе, когда вы вводите эти значения, вы должны поставить условный оператор. Т.е. if a<0 tnen begin Writeln('Вы ввели неверные данные'); goto 1 else goto 2; Метку 1 вы ставите в начало алгоритма, т.е. туда, откуда вы хотите начать повторное выполнение программы, а метку 2 поставить в продолжение алгоритма, т.е. на тот случай, если данные были введены верно
var i: integer; // счетчик a: array[1..10] of Integer; // объявляем массив из 10 целых элементов begin // Вводим элементы массива с клавиатуры for i:=1 to 10 do // цикл begin writeln('vvedite element massiva i nagmite >>ENTER'); write('a[',i,']='); write(a[i]); read(a[i]) end; i:=1; j:=0;// счетчик для поиска 3-го элемента repeat if a[i]<=0 then inc(i) // переходим к следующему элементу else begin inc(j); // отмечаем найденный положительный элемент inc(i) // переходим к следующему элементу end; until (j=3) or (i=11); // До тех пор пока не найден 3-й положительный элемент // либо не проверен весь массив if j=3 then // есть как минимум три положительных элемента в массиве writeln('3 Pologitelniy element a[',i-1,']=', a[i-1]) else // в массиве меньше трех положительных элементов writeln('Net 3 pologitelnogo eltmenta = '); readln; readln { TODO -oUser -cConsole Main : Insert code here } end.
if a<0 tnen
begin
Writeln('Вы ввели неверные данные');
goto 1
else
goto 2;
Метку 1 вы ставите в начало алгоритма, т.е. туда, откуда вы хотите начать повторное выполнение программы, а метку 2 поставить в продолжение алгоритма, т.е. на тот случай, если данные были введены верно
{$APPTYPE CONSOLE}
uses SysUtils;
var i: integer; // счетчик
a: array[1..10] of Integer; // объявляем массив из 10 целых элементов
begin
// Вводим элементы массива с клавиатуры
for i:=1 to 10 do // цикл
begin
writeln('vvedite element massiva i nagmite >>ENTER');
write('a[',i,']=');
write(a[i]);
read(a[i])
end;
i:=1;
j:=0;// счетчик для поиска 3-го элемента
repeat
if a[i]<=0
then
inc(i) // переходим к следующему элементу
else
begin
inc(j); // отмечаем найденный положительный элемент
inc(i) // переходим к следующему элементу
end;
until (j=3) or (i=11); // До тех пор пока не найден 3-й положительный элемент
// либо не проверен весь массив
if j=3
then // есть как минимум три положительных элемента в массиве
writeln('3 Pologitelniy element a[',i-1,']=', a[i-1])
else // в массиве меньше трех положительных элементов
writeln('Net 3 pologitelnogo eltmenta = ');
readln;
readln
{ TODO -oUser -cConsole Main : Insert code here }
end.