STR(K, S);
Процедура преобразовывает числовое значение величины K в строку S. После числа
К может записываться формат, аналогично формату вывода. Если в формате указано
недостаточное для вывода количество разрядов, поле вывода автоматически
расширятся до нужной длины.
Значение К |
Процедура |
Результат |
145 |
STR(K:6,S) |
'___145' |
0.23E+04 |
STR(K:10,S) |
'______2300' |
45678 |
STR(K:3,S) |
'45678' |
21.2.Преобразование строки в число.
VAL(S, K, Code);
Процедура преобразует значение S в величину целочисленного или вещественного
типа и помещает результат в K. Значение S не должно содержать незначащих
пробелов в начале и в конце строки. Code - целочисленная переменная, если
преобразование невозможно, то содержит номер позиции первого ошибочного символа,
если все нормально, то значение Code равно нулю.
21.3.Преобразование строчной буквы в прописную.
UpCase(ch);
Функция символьная. Возвращает прописную латинскую букву, если ch - строчная.
В остальных случаях возвращает аргумент без изменения.
Составить программу, которая после ввода строки строчных латинских букв
заменяет их на прописные.
var s:string;
I:byte;
begin
Write(' Введите слово');
Readln(s);
For I:=1 to Length(s) do s[I]:=UpCase(s[I]);
Writeln(s);
end.
Решим следующую задачу используя стандартные функции.
Дано слово. Переставить первые три и последние три буквы, сохранив порядок их
следования.
var x:byte;
a:string;
begin
repeat
write('Введите слово не менее шести букв');
readln(a);
x:=length(a); {определяем длину слова}
until (x>=6);
a:=copy(a,x-2,3)+copy(a,4,x-6)+copy(a,1,3);
writeln(a);
readln
end.
Тренировочные задания.
1. Вычислите длину самого короткого слова в предложении из трех слов,
разделенных пробелами.
2. Заданы фамилия, имя и отчество учащегося, разделенные пробелом. Напечатайте
его фамилию и инициалы.
3. Даны два слова. Составте программу, определяющую можно или нет из букв слова
А составить слово В.
4. Даны два слова. Определить, сколько начальных букв первого слова совпадает с
начальными буквами второго слова.
5. Дан текст. Верно ли, что в нем есть пять идущих подряд одинаковых символа?
1. Дано предложение. Определить число вхождений в него некоторого символа.
Var i,x,k:byte;
a:string; ch:char;
begin
write('Введите слово ');
readln(a);
write('Введите символ ');
readln(ch);
x:=length(a); {определяем длину слова}
k:=0;
for i:=1 to х do if a[I]=p then k:=k+1;
write('таких символов ',k);
readln
end.
2. Дано предложение. Заменить в нем все вхождения буквосочетания "ах" на
"ух".
Var x:byte;
a:string;
begin
write('Введите предложение');
readln(a);
while pos(a,'ах')<>0 do
begin
x:=pos (a,'ах');
delete(a,x,2)
insert('ух',a,x)
end;
write( a );
readln
end.
3. Дано слово. Проверить, является ли оно "перевертышем", т.е. читается
одинаково как с начала, так и с конца.
Var i,x:byte;
a,p:string;
begin
write('Введите слово ');
readln(a);
x:=length(a); {определяем длину слова}
p:=''; {пустая строка}
for i:=x downto 1 do p:=a[I]+p; {собираем слово в обратном порядке}
if a=p then write('слово перевертыш') else write('слово не перевертыш');
readln
end.