Поделитесь своими знаниями, ответьте на вопрос:
Прога не работает, объясните почему и как это исправить. function stroka(s: string): string; var x, k, i:integer; begin for i:=1 to length(s) do begin val(copy(s, i, 1), x, k); if k<>0 then delete(s, pos(copy(s, i, 1), s), 1); end; stroka:=s; end; var s1:string; begin read(s1); write(stroka(s1)); end.
эту программу можно сократить:
var
s1,s2,a:string;
begin
Readln(s1);
for var i := 0 to 9 do a += IntToStr(i);
for var i := 1 to Length(s1) do
for var k := 1 to 9 do
if s1[i] = a[k] then s2 += s1[i];
write(s2);
end.
for var i := 0 to 9 do a += IntToStr(i);
- заполнение массива числами от 0 до 9
for var i := 1 to Length(s1) do
for var k := 1 to 9 do
if s1[i] = a[k] then s2 += s1[i];
- двойной цикл проверяющий каждый символ в введенной строке, и в случае если символ = 1 из 10 цифр массива a прибавляет к переменной s2 этот символ