Удалить из строки символы между 1 и последней *, если *<2, то вывести сообщение.вот...

0 голосов
44 просмотров

Удалить из строки символы между 1 и последней *, если *<2, то вывести сообщение.<br>вот программа, что не так?
var s:string; k1,k2,i:integer;
begin
writeln('введи строку');
readln(s);
k1:=pos('*',s);
for i:=1 to length(s) do
if s[i]='*' then k2:=i;
if (k1=0) or (k2=0) then writeln('нет ни одной *')
else if (k1<2) or (k2<2) then writeln('нет 1 звездочки')<br>else delete(s,k1,k2-k1+1);
write(s);
writeln;
readln;
end.
на 1 скрине просто удаляет *,а на 2 скрине выводит так...


image
image

Информатика (43 баллов) | 44 просмотров
Дано ответов: 2
0 голосов

Var s:string; k1,k2,i:integer;
begin
writeln('введи строку');
readln(s);
k1 :=pos('*',s);
for i:=1 to length(s) do;
if s[i]='*' then k2 :=i;
if (k1=0) or (k2=0) then writeln('нет ни одной *')
else if (k1<2) or (k2<2) then writeln('нет 1 звездочки')<br>else delete(s,k1,k2-k1+1);
write(s);
writeln;
readln;
end. 

(24 баллов)
0

и что изменилось? то же самое

0 голосов

Var
  s:string;
  k1,k2,i:integer;
begin
writeln('введи строку');
readln(s);
k1:=pos('*',s);
for i:=k1+1 to length(s) do
  if s[i]='*' then k2:=i;
if (k1=0) then writeln('нет ни одной *')
  else if (k2=0) then
    writeln('нет 1 звездочки')
      else delete(s,k1,k2-k1+1);
write(s);
writeln;
readln;
end.