помогите пожалуйста решить задачку..!
Дана строка символов, среди которых есть двоеточие (. Определить, сколько символов ему предшествует.
я уже составила прогаммку, но ищу ошибку, помогите мне пожалуйста!!!
var s:string;
i,k:integer;
begin
s:='123:56778';(вводим любое выражение , которое сордержит
for i:=1 to length(s) do begin
k:=0; if (s[i]:=':') then (k:=i-1);
writeln('k=',k);readln;
end;end.
А чего циклом?
Pos(':', s) использовать нельзя?
pos использовать нельзя, ошибка должна быть в условном операторе у меня: я не понимаю, как мне определить число символов, предшествующих двоеточию
ну так сделай свой Pos под задание
function _Pos(ch: char; const s: String): Integer;
var
i: Integer;
begin
i := 1;
while (i <= Length(s)) and (s[i] <> ch) do inc(i);
if i > Length(s) then _Pos := 0
else _Pos := i;
end;
var
s: String;
p: Integer;
begin
s := '12:345678';
p := _Pos(':', s);
if p = 0 then writeln('No')
else writeln(p - 1);
end.
dinni, немного подправляем твой код:
var
s:string;
i,k:integer;
begin
s:='123:56778';
k:=0; { <--- Это - перед циклом, а не внутри }
for i:=1 to length(s) do begin
if (s[i]=':') then k := i-1; { <--- После s[i] не ":=" а просто "=" Скобки тоже не нужны }
end;
writeln('k=',k); readln;
end.