Строки и символы. Тексты программ: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) |
Mikst (обсуждение | вклад) |
||
Строка 63: | Строка 63: | ||
===Сумма записанных в строке чисел=== | ===Сумма записанных в строке чисел=== | ||
var | |||
s: string := '1 2 4 8 16 32 64 128 256 512'; | |||
sum: integer; | |||
num,p: integer; | |||
numstr: string; | |||
begin | |||
sum := 0; | |||
while s.Length>0 do | |||
begin | |||
while s[1]=' ' do // Удаление лидирующих пробелов | |||
Delete(s,1,1); | |||
p := Pos(' ',s); // Поиск следующего пробела | |||
if p=0 then // Если он не найден, то до конца строки находится последнее число | |||
p := s.Length; | |||
numstr := Copy(s,1,p); | |||
Delete(s,1,p); | |||
num := StrToInt(numstr); | |||
sum += num; | |||
end; | |||
writeln('Сумма чисел строки равна ',sum); | |||
end. | |||
===Количество вхождений подстроки в строку=== | ===Количество вхождений подстроки в строку=== | ||
== Ссылки == | == Ссылки == | ||
[[Программы для начинающих]] | [[Программы для начинающих]] |
Версия от 15:11, 19 января 2010
Определение кода по символу и символа по коду
var
c: char;
code: integer;
begin
c := 'z';
code := Ord(c);
writeln('Код символа ',c,' равен ',code);
code := 35;
c := Chr(code);
writeln('Символ с кодом ',code,' - это ',c);
end.
Преобразование цифрового символа в соответствующее однозначное число и обратно
var
c: char;
digit: integer;
begin
c := '5';
digit := Ord(c) - Ord('0');
writeln('Цифра, соответствующая символу ''',c,''' - это ',digit);
digit := 7;
c := Chr(digit + Ord('0'));
writeln('Символ цифры ',digit,' - это ''',c,'''');
end.
Преобразование числа в строку и обратно
var
s: string;
num: integer;
begin
s := '356';
num := StrToInt(s);
writeln('Число, соответствующее строке ''',s,''' - это ',num);
num := 563;
s := IntToStr(num);
writeln('Строка, соответствующая числу ',num,' - это ''',s,'''');
end.
Формирование строки из n одинаковых символов
var
c: char;
s: string;
n: integer;
begin
n := 10;
c := 'z';
s := '';
for var i:=1 to n do
s += c;
writeln(s);
end.
Замена всех маленьких английских букв в строке соответствующими большими
var s: string := 'Hello, World!';
begin
var dist := Ord('a')-Ord('A');
for var i:=1 to s.Length do
if s[i] in ['a'..'z'] then
s[i] := Chr(Ord(s[i])-dist);
writeln(s);
end.
Сумма записанных в строке чисел
var
s: string := '1 2 4 8 16 32 64 128 256 512'; sum: integer; num,p: integer; numstr: string;
begin
sum := 0; while s.Length>0 do begin while s[1]=' ' do // Удаление лидирующих пробелов Delete(s,1,1); p := Pos(' ',s); // Поиск следующего пробела if p=0 then // Если он не найден, то до конца строки находится последнее число p := s.Length; numstr := Copy(s,1,p); Delete(s,1,p); num := StrToInt(numstr); sum += num; end; writeln('Сумма чисел строки равна ',sum);
end.