Как сделать правильно по цикл? - Pascal ABC
Формулировка задачи:
Здравствуйте, имеется код, который удаляет по выбору число из массива:
Как вписать цикл until repeat( когда нужно вводить del), чтобы повторяло до тех пор, пока не ввести истинное число для удаления из списка массива
Решение задачи: «Как сделать правильно по цикл?»
textual
Листинг программы
const n=10; var v:array[1..n] of byte; del,i,j,actual:byte; begin randomize; for i:=1 to n do begin v[i]:=random(100); write(v[i]:3); end; writeln; repeat write('Введите число для удаления: '); readln(del); i:=1; while(i<=n)and(v[i]<>del) do inc(i); if i>n then writeln('Числа ',del,' в массиве нет'); until i<=n; actual:=n; for j:=i to n-1 do v[j]:=v[j+1];//сдвиг справа налево actual:=actual-1; for i:=1 to actual do write(v[i]:3); end.
Объяснение кода листинга программы
- Объявлены константа
n
равная 10 и переменнаяv
типа массив из 10 элементов типаbyte
. - Также объявлены переменные
del
,i
,j
иactual
типаbyte
. - В цикле for заполняются все элементы массива
v
случайными числами от 0 до 99 и выводятся на экран. - После этого пользователю предлагается ввести число для удаления, начиная с первого элемента.
- В цикле while проверяется, есть ли введенное число в массиве. Если его там нет, выводится сообщение об этом.
- Когда число найдено, с помощью двух вложенных циклов for происходит перестановка элементов массива, начиная с элемента после искомого.
- В конце выводятся на экран элементы массива, начиная с первого и до последнего, пропуская один элемент (искомое число).