Similar presentations:
Строки
1.
ЛекцияСтроки
1
2.
Свойства структуры данных СТРОКА:1.
2.
3.
4.
Линейная
Фиксированного размера
С произвольным доступом к
элементам
Однородная
2
3.
Литера - это символ, заключенный в апострофы.Способы моделирования строки:
представлении строки в виде массива литер. В этом
случае над строкой определены все те операции,
которые определены над массивами и для обработки
строки используется типовые алгоритмы обработки
массивов.
предполагает использование - тип STRING. В этом
случае для обработки строки используются процедуры
и функции, позволяющие выполнять над текстом
различные действия, такие как
удалять часть
символов, вставлять новые символы в строку,
определять позицию некоторого символа в строке и т.д.
3
4.
Стандартные процедуры ифункции
Действия
Тип результата
функция, которая вырезает count литер
из строки st, начиная с позиции index
строковый
удаляет из строки st, count литер,
начиная с позиции index
результат возвращается в строке st
строковый
вставляет подстроку subst, в строку st,
начиная с позиции index
результат возвращается в строке st
строковый
функция, которая определяет длину
строки st
целый
функция, которая определяет позицию,
начиная с которой подстрока subst
входит в строку st
целый
VAL(ST, X, CODE)
преобразует строковую величину st в
числовую x, code - это признак
завершения операции. Если code=0 то операция прошла успешно, если
code 0, то в эту переменную
записывается номер позиции, в
которой встретилась литера.
целый
STR(X, ST)
преобразует числовое значение x в
строковое, результат возвращает в st.
строковый
COPY(ST, INDEX, COUNT)
DELETE (ST, INDEX, COUNT)
INSERT (SUBST, ST, INDEX)
LENGTH (ST)
POS (SUBST, ST)
4
5.
1.Укажите
тип
переменной
х
в
операторе
присваивания:
x:=‘видео’+’адаптер’
2. Пусть задана программа
var
st, st1, st2: string;
begin
st1:= ‘инфо’;
st2:=’мати’;
st:=st1+' р'+st2+’ка’;
writeln(st);
end;
Чему будет равно значение переменной st=__________________
3. Строка а “аромат”, строка b равна “финик”. Известны алгоритмы
образования строк a и b из строки n:
a:=n[11]+n[5]+n[4]+n[6:8]
b:=n[3]+n[1:2]+n[9]+n[10]
Строка n=______________________
5
6.
4. Пусть задана программаvar
st, subst : string;
k : integer;
begin
st:=‘Мама мыла раму’;
subst:=’ма’;
k:=pos (subst, st);
writeln(k);
end;
Чему будет равно значение переменной k=__________________
5. Пусть задана программа
var
st : string;
k : integer;
begin
st:=‘Динамическое программирование.’;
k:=length(st);
writeln(k);
end;
Чему будет равно значение переменной k=__________________
6
7.
6. Пусть задана программаvar
st : string;
k, i : integer;
begin
st:=‘Программирование’;
k:=length(st);
i:=1;
while i<=k do
if st[i]=’р’ then delete (st, i, 1)
else i:=i+1;
writeln(st);
end;
Чему будет равно значение переменной st=__________________
7
8.
Задача 1. Дан текст. Подсчитать количество букв а в последнем словеданного текста.
Анализ постановки задачи
Исходным данным для решения задачи является строковая
переменная st, в которой хранится заданный текст.
Введем обозначения объектов программы:
i- переменная целого типа обозначающая номер текущей
литеры; col- переменная, в которой будем хранить
количество букв а в последнем слове.
Для решения задачи воспользуемся следующим алгоритмом:
Введем исходную строку.
Определим позицию последнего символа в строке (т.к. текст
будем рассматривать с конца).
Обнулим счетчик.
Посимвольно проведем сравнение с буквой а до пробела.
Выведем результат.
8
9.
ПодпрограммаPROCEDURE chet (st: string; var col: integer);
VAR
i: integer;
BEGIN
i:=length(st);
col:=0;
while st[i]<>' ' do begin
if st[i]='а' then col:=col+1;
i:=i-1
end;
END;
9
10.
Задача 2. Дан текст. Выдать на печать самое длинное словоиз текста, учитывая, что все слова разной длины.
Анализ постановки задачи
Исходным данным для решения задачи является переменная
типа string, в которой хранится исходный текст st.
Введем обозначения объектов программы:
st1- переменная, в которой будем хранить текущее слово из
текста; st2- переменная, в которой будем хранить самое
длинное слово в тексте; i- переменная целого типа,
обозначающая номер текущей литеры; max- максимальное
количество букв в слове.
Для решения задачи воспользуемся следующим алгоритмом:
Введем исходный текст.
Собираем текущее слово в дополнительную переменную
(st1).
Определяем максимальную длину слова.
Выводим результат.
10
11.
Основная программаvar s, stt2: string;
begin
writeln(‘Введите предложение’);
readln(s);
max_slovo(s, stt2);
writeln(‘Самое длинное слово в тексте ', stt2);
end.
11
12.
ПодпрограммыPROCEDURE slovo(stt: string; j:integer; var stt1: string);
BEGIN
stt1:='';
while (stt[j]<>‘ ') and (stt[j]<>‘ . ') do begin
stt1:=stt1+stt[j];
inc(j)
end;
END;
PROCEDURE max_slovo(st: string; var st2: string);
VAR max, i : integer;
st1 : string;
BEGIN
i:=1;
max:=1;
while i<=length(st) do begin
slovo(st, i, st1);
if length(st1)>=max then begin
max:=length(st1);
st2:=st1
end;
i:=i+length(st1)+1;
end;
END;
12