@quintbrut

Как выполнить процедуру удаления элемента из массива по индексу?

Есть
Код
program akb;
procedure DeleteElem<T>(a: array of T; k: word); 
begin 
for var i := k - 1 to length(a) - 2 do 
a[i] := a[i + 1]; 


SetLength(a, length(a) - 1); 

for var i := 0 to length(a) - 1 do 
write(a[i] + ' '); 

end; 

var
  text:string;
  k:integer;

begin 
  
  write ('Введите текст: ');
  readln(text);
  
  var arr := text.Split(' '); // Строка разбита на слова по пробелам
  //writeln(arr[0], ' ', arr[3]); // Слово11 Слово22
  write ('Введите элемент который нужно удалить: ');
  readln(k);


writeln('Массив после обработки: '); 
DeleteElem(arr, k); 
end.
.
На pascal ABC все прекрасно
работает
5e280ab68e183732947485.png
.
Но мне нужно запустить его на Turbo Pascal и вот что там
выходит
5e280afc6c597154987970.png

Мне нужно чтобы работало на турбо паскале, что нужно изменить в коде?
Исходное задание.
Дан текст не более 255 символов. Слова отделяются друг от друга пробелами. Удалить из текста слова с указанными номерами.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Ты инициализируешь переменную сразу в цикле. Такое не умеет TP.
Ну и судя по заданию, не забудь, что у тебя смещаются слова и индексы слов совпадать не будут.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы