Занятие 8. Операции со
строками
Сегодня на
занятии мы познакомились c:
- Строковый тип данных
- Строковые функции
Написали
программы:
- Демонстрация работы строковых
функций
- Преобразование строки в число
- Подсчет символов в строке
- Расчет суммы цифр числа, с
использованием строкового типа
Программа №1. Объявление строковой переменной. Демонстрация работы строковых
функций.
VAR
str1,
str2: string;
a: integer;
BEGIN
str1:='Здравствуй МИР';
Writeln('Исходная строка:',
str1);
Writeln('Длинна строки:',Length(str1)); // Вывод
длинны строки
str2:= copy(str1,12,3);
// Вырезать часть строки
Writeln('Подстрока:', str2);
END.
Программа
№2.Преобразование строки в число
VAR
str1: string;
a, code: integer;
BEGIN
Writeln('Введите число:');
Read(str1);
Val(str1,a,code);
writeln(str1);
if
code<>0 then
writeln('Преобразование строки ',str1,' в число
НЕВОЗМОЖНО!!!')
else
writeln('Результат преобразования:',
a);
END.
Программа
№3. Подсчет заданной буквы в строке
VAR
FindSymb,
ts, str1:
string;
i: integer;
num: integer; //Счетчик
найденных символов
BEGIN
cls;
num:=0;
str1:='Привет мир';
Writeln('Введите искомый символ:');
Read(FindSymb);
for
i:=1 to length(str1) do
begin
ts:=Copy(str1,i,1);
if ts=FindSymb then //Если
находим искомый символ, то увеличить счетчик
inc(num);
end;
writeln('В исходной строке кол-во символов ', FindSymb, '=', num);
END.
Программа
№4. Вычисление суммы цифр с использованием строкового типа
// Программа расчитывает сумму цифр
произвольного целого числа
// Алгоритм:
// Число преобразуем в строку, затем по
символьно преобразуем в число и складываем
VAR
err: integer;
// для анализа ошибок преобразования строки в
число
//(в нашем случае мы уверены, что преобразование будет
корректным, поэтому анализ не делаем!)
num: integer;
// Исходное число
sum: integer;
// Переменная для храненения суммы цифр числа
StrLen: integer;
// Длинна числа
str1: string[50]; // для хранения исходного числа в виде строки
str2: string[1]; // для хранения одного вырезанного символа
num1: integer;
// для хранения вырезанного символа в виде числа
i: integer;
BEGIN
cls;
writeln('Введите целое число:');
read(num);
sum:=0;
str1:=IntToStr(num);
StrLen:=Length(str1);
// Цикл в котором из строки последовательно вырезаем
символы
for i:= 1
to StrLen do
begin
str2:=Copy(str1,i,1);
Val(str2,num1,err);
sum:=sum+num1;
end;
write('Для числа ',num, ' сумма цифр=',sum);
END.
|