Неправильно работает - Free Pascal
Формулировка задачи:
Дан массив строк.Из второй половины каждой строки удалить'.'
Удаляет точки ,только с последней строки.
const n=3;
Type TInd=1..n;
Tar=array[TInd]of string;
var s:Tar;i:TInd;j:integer;
begin
for i:=1 to n do begin
writeln('Введите строку');
readln(s[i]);
end;
for i:=1 to n do
j:=length(s[i]) div 2+1;
while j<=(length(s[i])) do
if s[i][j]='.' then delete(s[i],j,1)
else
j:=j+1;
for i:=1 to n do
writeln(s[i]);
readln;
end.Решение задачи: «Неправильно работает»
textual
Листинг программы
for i:=1 to n do begin j:=length(s[i]) div 2+1; while j<=(length(s[i])) do if s[i][j]='.' then delete(s[i],j,1) else j:=j+1; end;
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- В цикле от 1 до n происходит обработка каждого элемента массива s.
- Внутри цикла переменная j инициализируется значением длины элемента s[i] делённой на 2 и увеличенной на 1.
- Затем в цикле while происходит проверка, не превышает ли значение j длину элемента s[i].
- Если символ в позиции j равен точке, то происходит удаление этого символа из строки s[i].
- Если символ не является точкой, то значение j увеличивается на 1.
- Цикл while повторяется до тех пор, пока значение j не станет больше или равным длине элемента s[i].
- После завершения цикла while, цикл for продолжается для следующего элемента массива s.