Другие языки программирования и технологии

помогите составить программу на паскале используя массив:

ДАНА СТРОКА СИМВОЛОВ СРЕДИ КОТОРЫХ ЕСТЬ ДВОЕТОЧИЕ.ОПРЕДЕЛИТЕ СКОЛЬКО СИМВОЛОВ ЕМУ ПРЕДШЕВСТВУЮТ.???
Сказано же в условии - с помощью массива. Строковый тип и есть массив символов, к которым можно обращаться по индексу. Кстати, Pos так и работает.

Первое решение:

program WhereColon;
uses Crt;
var StrC: string[255]; Cnt: Integer;

begin
ClrScr;
Write('Input Str ');
Readln(StrC);
for Cnt:= 1 to Length(StrC) do
if StrC[Cnt] = ':' then
Writeln('Двоеточие в ', Cnt, ' позиции');

while not Keypressed do;
end.

А что будет, если в строке 2, 4, 5 двоеточий? Некрасиво. А, если ни одного двоеточия? Можно чуть усложнить программку:

program WhereColon;
uses Crt;
var StrC, Tmp: string[255]; Cnt: Integer;

begin
ClrScr;
Tmp:= '';
Write('Input Str ');
Readln(StrC);
Write('Двоеточие в ');
for Cnt:= 1 to Length(StrC) do

if StrC[Cnt] = ':' then
begin
Str(Cnt, Tmp);
Write(Tmp, ' ');

end;
if Tmp <> '' then
WriteLn(' позиции') else
WriteLn('строке не найдено! ');

while not Keypressed do;
end.
Павел Колмаков
Павел Колмаков
1 930
Лучший ответ
X:=pos(':', s)-1; - вот все решение. Остальную красоту сама допиши.

А причем здесь масивы, я не знаю.

Зачем нужен массив, если в задании сказано, что дана строка, в которой надо что-то найти.

Не сможешь - мне в агент!
Halim Halilov
Halim Halilov
2 863
Блонди.. . как это мило.. . ))))
Program Stroka;
Uses CRT;
Var
Str: string;
N, NN: integer;
Begin
Clrscr; {очистка экрана}
ReadLn(Str); {ввод текста}
N:=pos(':', Str);{определение позиции знака :}
NN:=N-1; {позиция предыдущего знака}
WriteLn('Кол-во символов до знака : =', NN);{вывод информации на экран ПК}
ReadLn;
End.