Задачи строковые типы данных Строковые процедуры и функции Function Copy(S: String; Index, Count: Integer): String; Возвращает подстроку строки. Procedure Delete(var S: String; Index, Count:Integer); Удаляет подстроку символов длиной Count из строки S, начиная с позиции Index. Procedure Insert(Source: String; var S: String; Index: Integer); Объединяет подстроку Source в строку S, начиная с определенной позиции Index. Function Length(S: String): Integer; Возвращает число символов, фактически используемое в строке S. http://wm-help.net/books-online/book/1492/1492-3.html Procedure Val(S; Var V; Var Code : Integer); Преобразовывает строковое значение в его числовое представление. Где: S переменная со строковым типом. Должна представлять последовательность символов, формирующих знаковое целое число. V переменная типа Real или Integer Code переменная типа Integer Например: Val(ParamStr(1), I, Code); WriteLn('Число = ', I); Procedure Str(X [: Width [: Decimals ]]; Var S : String); Преобразовывает число X в строку S. Например: Str(I, S); WriteLn(S); Function Chr(X : Byte): Char; Возвращает символ с определенным номером в ASCII таблице. Например: For I:=32 To 127 Do Write(Chr(I)); Function Ord(X) : Longint; Возвращает порядковое значение выражения перечисляемого типа. Например: WriteLn('ASCII код для символа "c" равен ', Ord('c')); Задача 1 В данной строке S вставить символ c1 после каждого вхождения символа c2. Формат входных данных На первой стоке входного файла записан символ c1, на второй строке символ c2. На третьей строке дана сама строка S. Строка S состоит из букв латинского алфавита, непустая и её длина не превышает 100 символов. c1 и c2 - буквы латинского алфавита; символы c1 и c2 могут совпадать. Формат выходных данных Выведите единственную строку - ответ на поставленную задачу. Примеры: Вход a b abc Выход abac Вход b b abc Выход abbc var f, f1:text; c1,c2,s,s1:string; n:shortint; {параметр цикла – порядковый номер очередного символа строки S} begin assign(f,'input.txt'); reset(f); {открываем f - для чтения} assign(f1,'output.txt'); rewrite(f1); {открываем f1 - для записи} readln(f,c1); readln(f,c2); readln(f,s); {считываем данные из f} s1:=''; {‘обнуляем’ s1} for n:=1 to length(s) do {вставляем c1 после c2} if copy(s,n,1)=c2 then s1:=s1+copy(s,n,1)+c1 else s1:=s1+copy(s,n,1); writeln(f1,s1); {запись ответа в файл} close(f); close(f1); {закрываем файлы f, f1} end. Задача 15 Дана строка . Удалите из неё последовательность символов, расположенных между двумя запятыми. Формат входных данных Во входном файле дана строка . Строка состоит из букв латинского алфавита, пробелов и запятых; в ней есть ровно две запятые, её длина не превышает 255 символов; До первой запятой присутствует хотя бы один символ. Формат выходных данных Выведите единственную строку - ответ на поставленную задачу. Пример: Вход abc, ea , t Выход abc,, t var f,f1:text; s,s1:string; n:integer; begin assign(f,'input.txt'); reset(f); assign(f1,'output.txt'); rewrite(f1); readln(f,s); s1:=''; n:=0 while copy(s,n,1)<>',' do begin n:=n+1; s1:=s1+copy(s,n,1) end; n:=n+1; while copy(s,n,1)<>',' do n:=n+1; s1:=s1+copy(s,n,length(s)-n+1); writeln(f1,s1); close(f); close(f1); end. {до запятой} { между запятыми} {после второй запятой} Задача 20 Дана строка . Подсчитайте количество цифр, которые в ней содержатся. Формат входных данных Во входном файле дана строка . Строка состоит из букв латинского алфавита, цифр и пробелов; её длина не превышает 255 символов. Формат выходных данных Выведите единственное число - ответ на задачу. Примеры: Вход 12345rabbitgoneforawalk Выход 5 var f,f1:text; s:string; k,n:integer; begin assign(f,'input.txt'); reset(f); assign(f1,'output.txt'); rewrite(f1); readln(f,s); k:=0; for n:=1 to length(s) do if (copy(s,n,1)>='0') AND (copy(s,n,1)<='9') then K:=K+1; writeln(F1,K); close(f); close(f1); end.