Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.23 Mб
Скачать

Занятие №14: Символьные переменные и строки. Обработка строк.

  1. Дана строка. Удвоить каждую встречающуюся «о» и «а».

program prac1;

var s:string;

l,i,j:byte;

begin

readln(s);

l:=ord(s[0]);

i:=l;

while i>=1 do

begin

if (s[i]='a') or (s[i]='o') then

begin

for j:=l downto i do s[j+1]:=s[j];

inc(l);

end;

dec(i);

end;

s[0]:=chr(l);

writeln(s);

writeln('Vipolnil Kovrigin Anatoliy');

readln;

end.

  1. В заданном тексте удалить из текста пробелы и подсчитать длину сформированного текста.

program prac2;

var s:string;

p:byte;

begin

readln(s);

p:=pos(' ',s);

while p>0 do

begin

delete(s,p,1);

p:=pos(' ',s);

end;

writeln(s);

writeln(length(s));

writeln('Vipolnil Kovrigin Anatoliy');

readln;

end.

  1. Н айти во введённом тексте самое длинное симметричное слово, т.е. слово, которое слева направо и справа налево читается одинаково. Считать, что слова в тексте отделены друг от друга одним пробелом.

program prac3;

label z;

var s,s2:string;

i,a,b:byte;

begin

readln(s);

s:=s+' ';

a:=pos(' ',s);

while a<>0 do

begin

b:=a div 2+1;

for i:=1 to b do

if s[i]<>s[a-i] then goto z;

if a>length(s2) then s2:=copy(s,1,a);

z:

delete(s,1,a);

a:=pos(' ',s);

end;

writeln(s2);

readln;

end.

Контрольні питання:

  1. Яка множина значень літерного типу?

От 0 до 255.

  1. Що таке код символу?

Номер символа в кодировке.

  1. Які особливості кодування цифр, латинських та російських літер?

Цифры кодируются в последовательности 0123456789, буквы – по алфавиту.Заглавные буквы кодируются после строчных.

  1. Яке функціональне призначення типу string?

Тип string упрощает работу с символами, содержащимися в нём, в отличие от array of char.

  1. Чи завжди довжина рядка дорівнює тій, що об’явлена при описі?

Нет, фактическая длина строки указывается в ячейке s[0].

  1. Яким чином можна ініціалізувати рядки?

<имя>:string[длина(опционально)];

  1. Яким чином відбувається порівняння рядків?

Сравнивается сначала первые символы, в случае совпадения вторые и т.д.При отсутствии символа этот символ трактуется как меньший.

  1. Чим відрізняється тип string від одновимірного масиву символів array [1..n] of char?

Тип string – array[0..n] of char.

Заняите №15: Решение задач обработки строк

  1. Строка содержит произвольные символы таблицы ascii. Удалить из строки все цифры и повторить дважды каждый символ, кроме пробела, не являющийся цифрой. Просмотр строки осуществлять один раз.

program prac1;

var s:string;

l,i,j:byte;

begin

readln(s);

l:=ord(s[0]);

i:=l;

while i>=1 do

begin

if (s[i]>='0') and (s[i]<='9') then

begin

for j:=i to l do s[j]:=s[j+1];

dec(l);

end

else if s[i]<>' ' then

begin

for j:=l downto i do s[j+1]:=s[j];

inc(l);

end;

dec(i);

end;

s[0]:=chr(l);

writeln(s);

writeln('Vipolnil Kovrigin Anatoliy');

readln;

end.