Предмет: Информатика, автор: 666Lena

s := '123456789';
Delete ( s, 1, 2 );
n := Pos ( '6', s );
writeln ( n );
как работает эта программа
должно получится 4

Ответы

Автор ответа: contrlc
1

В паскале индексы строк начинаются от 1

Pos(substr, str) - функция, которая возвращает индекс первого вхождения подстроки substr в строку  

str или 0, если подстрока не найдена. Например pos('abc', '12') = 0, а  

pos('cat', 'qw cat123cat4') = 4 (q: 1-й символ w: 2-й символ пробел: 3-й символ

с: 4-й символ

Delete(str, index, count) удаляет из строки str начиная с элемента index count символов

Delete(s, 1, 2) = 3456789  

Pos('6', s) = Pos('6', '3456789') = 4


666Lena: 6 символов отсчитываем с конца?
contrlc: ??
666Lena: Pos('6', '3456789') = 4
contrlc: Pos('6', '3456789') ищет в строке '3456789' подстроку '6' 3 - 1й символ строки не равен 6; 4 - 2й символ не равен 6; 5 - 3й не равен 6; 4й!!! символ = 6 => подстрока '6' найдена в строке '3456789' и Pos возвращает индекс начала подстроки в строке т.е 4.
666Lena: Спасибо)))
Автор ответа: petyaGavrikov
2

s := '123456789'; - строковой переменной s присваивается значение

Delete ( s, 1, 2 ); - из строки s удаляется 2 символа, начиная с 1-го (значение s будет '3456789')

n := Pos ( '6', s ); - определяется номер позиции символа '6' в строке s. Этот номер равен 4

writeln ( n ); - на экран выводится значение n, т.е. 4

Похожие вопросы
Предмет: Математика, автор: vbn21
Предмет: Математика, автор: oleksandraden
Предмет: Алгебра, автор: Аноним