Строковые  и символьные переменные



length(s) - определяет текущую длину строки s.

сopy(s, poz, n) - выделяет из строки s, начиная с позиции poz, подстроку  из n символов.

pos(s1, s) - определяет позицию подстроки s1 в строке s.

chr (х) -  определяет символ по его коду х из таблицы кодировки ASCII

ord (s) - определяет код  символа s из таблицы кодировки ASCII по символу

delete(s, poz, n) - удаляет из строки s, начиная с позиции poz, подстроку из n символов.

insert(s1, s, poz) - вставляет в строку s, начиная с позиции poz, подстроку s1

str(x, s) - преобразует число x в строковый формат.

val (s, x, kod) - преобразует строку символов s в число x. кod-номер позиции, с которой пошла ошибка при преобразовании.

pred(x) – возвращает предыдущий символ относительно значения переменной х

succ(x) – возвращает следующий символ относительно значения переменной х


1.  Напишите программу, которая подсчитает кол-во слов в телеграмме и стоимость ее пересылки, если известна стоимость пересылки одного слова – N.


program telegramma;

var  c, p,s, z,k, i:integer; a, T:string;

begin

writeln ('Введите текст телеграммы');

readln (T);

writeln ('Введите стоимость одного слова');

readln (c);

k:= length (T);

p:=0;

for i:= 1 to k do

begin

a:=copy(T, i,1);

if a='  ' then p:=p+1;

end;

s:=p+1;

z:=s*c;

writeln ('Стоимость телеграммы', z)

end.

program telegramma;

var  c, p, i: integer; T:string;

begin

writeln ('Введите текст телеграммы'); readln (T);

writeln ('Введите стоимость одного слова'); readln (c);

p:=1;

for i:= 1 to length (T) do

if copy(T, i,1) = '  ' then p:=p+1;

writeln ('Стоимость телеграммы', p*c);

end.

program telegramma;

var  c, p, i, k: integer; T:string;

begin

writeln ('Введите текст телеграммы'); readln (T);

writeln ('Введите стоимость одного слова'); readln (c);

p:=1; i:=1;

k:= length (T);

while i<= k do

begin

if copy(T, i,1) = '  ' then p:=p+1;

i:= i +1;

end;

writeln ('Стоимость телеграммы', p*c);

end.

var s, s1:string;

  k:byte;

  n:real;

begin

write ('Введите текст телеграммы: '); readln(s);

write ('Введите стоимость одного слова: '); readln(n);

  k:=0;s:=s+' ';

  while pos(' ',s)>0 do

  begin

  s1:=copy(s,1,Pos(' ',s)-1);

  delete(s,1,Pos(' ',s));

  if (s1<>'ЗПТ') and (s1<>'Т') then inc(k);

  end;

writeln('Стоимость телеграммы=', n*k:0:2);

end.