Паскаль: масиви, Детальна інформація
Паскаль: масиви
s:='9'+s
– значення '912'. В обох випадках s[0]=chr(3). Після присвоювання s:='' змінна s подає порожній рядок: s[0]=chr(0), а решта елементів недоступні.
Змінити довжину значення можна явно, змінивши нульовий символ. Якщо після s:='' виконати s[0]:=2, то значення компонентів із індексами 1 і 2 зі "сміття" перетворяться на значення-рядок. Присвоювання іншим елементам рядка не змінює довжини його значення.
У типах рядків означено операції порівняння =, <>, <, … . За означенням, рядки рівні, якщо мають ту саму довжину, і в її межах відповідні символи однакові. У противному разі вони не рівні. Упорядкування рядків залежить від системи програмування.
У мові Турбо Паскаль, якщо length(s1)
У системі програмування Турбо Паскаль означено також багато корисних підпрограм обробки рядків. Розглянемо лише чотири з них.
Функція з заголовком
function copy ( s : string; ind, cnt : byte ) : string
задає повернення підрядка рядка s, що починається з s[ind] і має довжину cnt. Наприклад, copy('abcd', 2, 2)='bc'.
Функція з заголовком
function pos ( subs, s : string ) : byte
задає повернення номера того елемента в рядку s, починаючи з якого subs входить у s як підрядок (якщо не входить, то повертається 0). Наприклад, pos('bc', 'abcd')=2, pos('aa', 'abcd')=0.
Процедура з заголовком
procedure val(s : string, var v; var ErrCode : integer)
задає перетворення зображення числа в рядку s у числовий тип і присвоювання його змінній v. Якщо перетворення дійсно можливе, то значенням ErrCode буде 0. У противному разі її значенням буде позиція з символом у рядку, починаючи з якого перетворення неможливе. Тип аргументу, відповідного параметрові v, повинен мати тип, відповідний змісту рядка s. Так само зміст рядка повинен задавати число, представне в типі цього аргументу. Наприклад, за s='1.3' або s='1E2' другий аргумент повинен бути дійсного типу, а не цілого. Аналогічно за його типу integer у рядка не повинно бути значень, що подають числа, більші 32767 або менші -32768.
Процедура з заголовком
procedure delete(var s : string; start, len : integer)
задає знищення len символів, починаючи з позиції start у рядку s. Наприклад, за s='abcdef' після виклику delete(s, 3, 3) рядок s матиме значення 'abf'. За start=0 або len=0 або start>length(s) рядок не змінюється. За start+len>length(s) з s вилучається підрядок до кінця рядка.
Задачі
10.* Що друкується в результаті виконання програми:
а) program strconc ( input, output );
var a: integer; c: char; s: string;
begin
s :='';
for a := 0 to 2 do
begin
c := chr ( ord ( '0' ) + a ); s := c + s + c; writeln ( s )
end
end.
®
– значення '912'. В обох випадках s[0]=chr(3). Після присвоювання s:='' змінна s подає порожній рядок: s[0]=chr(0), а решта елементів недоступні.
Змінити довжину значення можна явно, змінивши нульовий символ. Якщо після s:='' виконати s[0]:=2, то значення компонентів із індексами 1 і 2 зі "сміття" перетворяться на значення-рядок. Присвоювання іншим елементам рядка не змінює довжини його значення.
У типах рядків означено операції порівняння =, <>, <, … . За означенням, рядки рівні, якщо мають ту саму довжину, і в її межах відповідні символи однакові. У противному разі вони не рівні. Упорядкування рядків залежить від системи програмування.
У мові Турбо Паскаль, якщо length(s1)
У системі програмування Турбо Паскаль означено також багато корисних підпрограм обробки рядків. Розглянемо лише чотири з них.
Функція з заголовком
function copy ( s : string; ind, cnt : byte ) : string
задає повернення підрядка рядка s, що починається з s[ind] і має довжину cnt. Наприклад, copy('abcd', 2, 2)='bc'.
Функція з заголовком
function pos ( subs, s : string ) : byte
задає повернення номера того елемента в рядку s, починаючи з якого subs входить у s як підрядок (якщо не входить, то повертається 0). Наприклад, pos('bc', 'abcd')=2, pos('aa', 'abcd')=0.
Процедура з заголовком
procedure val(s : string, var v; var ErrCode : integer)
задає перетворення зображення числа в рядку s у числовий тип і присвоювання його змінній v. Якщо перетворення дійсно можливе, то значенням ErrCode буде 0. У противному разі її значенням буде позиція з символом у рядку, починаючи з якого перетворення неможливе. Тип аргументу, відповідного параметрові v, повинен мати тип, відповідний змісту рядка s. Так само зміст рядка повинен задавати число, представне в типі цього аргументу. Наприклад, за s='1.3' або s='1E2' другий аргумент повинен бути дійсного типу, а не цілого. Аналогічно за його типу integer у рядка не повинно бути значень, що подають числа, більші 32767 або менші -32768.
Процедура з заголовком
procedure delete(var s : string; start, len : integer)
задає знищення len символів, починаючи з позиції start у рядку s. Наприклад, за s='abcdef' після виклику delete(s, 3, 3) рядок s матиме значення 'abf'. За start=0 або len=0 або start>length(s) рядок не змінюється. За start+len>length(s) з s вилучається підрядок до кінця рядка.
Задачі
10.* Що друкується в результаті виконання програми:
а) program strconc ( input, output );
var a: integer; c: char; s: string;
begin
s :='';
for a := 0 to 2 do
begin
c := chr ( ord ( '0' ) + a ); s := c + s + c; writeln ( s )
end
end.
®
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021