ПРАКТИЧЕСКОЕ ЗАНЯТИЕ РАЗРАБОТКА ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ СТАНДАРТНЫХ ПРОЦЕДУР И ФУНКЦИЙ ДЛЯ СТРОК

  • docx
  • 11.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-00410.docx

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ

РАЗРАБОТКА ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ СТАНДАРТНЫХ ПРОЦЕДУР И ФУНКЦИЙ ДЛЯ СТРОК

 

1.   ЦЕЛИ ЗАНЯТИЯ

1.1   Научиться использовать стандартные процедуры и функции для строк;

1.2   Научиться решать типовые задачи.

 

2.     ИНФОРМАЦИОННЫЙ БЛОК

Строка- это последовательность символов. Количество символов в строке может динамически меняться в пределах от 0 до 255.

1.     Описание переменных строкового типа:

a.      В разделе описания переменных VAR VAR

St: string [12]; -объявлена строка с длиной 12 символов

St1:string;       - по умолчанию длина строки =255

b.     В разделе констант:

CONST      St=’Сегодня наступила весна’;

c.      В разделе описания типов: TYPE Stroka=string[8]; VAR   St:stroke;

2.     К отдельным символам    строки можно обратиться по номеру индексу данного символа в строке в квадратных скобках.

St[1]- первый символ строки st; St[4]- четвертый символ строки st;

St[0]- специальный символ- указатель на длину строки.

3.     Строковые процедуры и функции

4.     Стандартные функции, определенные для символьного типа Char.

Процедуры и функции работы со строками

 

Примеры использования

Функция Length возвращает це-

лое число текущую длину стро- ки

A:=Length(s);

For I:=1 to Length(Slovo) do

Функция Pos возвращает номер (целое число) первого символа строки S1 при его первом появле-

нии в строке S2

S1:=’это’;

S2:=’Найди это слово’;

A:=Pos(S1, S2); {переменная А получит значение - 7}

Функция Copy копирует N сим- волов строки S, начиная с пози- ции P, т.е. возвращает строку

P:=4; N:=3;

S:=’компьютер’;

S1:=Copy(S, P, N); {переменная S1 получит значение ‘пью’, строка S останется без из-

менений}

Процедура Delete удаляет N

символов строки S, начиная с по- зиции P

S:=’параметр’; P:=1; N:=4;

Delete(S, P, N);


 

 

Writeln (S); {на экране появится слово

‘метр’, при этом длина строки S равна 4};

Процедура Insert – вставляет строку S1 в строку S2, начиная с позиции P

S1:=’это ’; S2:=’Найди слово’; Р:=7;

Insert(S1, S2, Р);

Writeln(S1); {на экран выведутся 4 символа ‘это ’}

Writeln(S2); {на экране появится ’Найди

это слово’, если позволяет длина строки}

Процедура Str преобразует чис- ло Х в строку S

Var Y: integer; X:real; BEGIN

Y:=1999; Str(Y:6, S);

Writeln (s); {на экране 6 символов:

    1999}

Процедура Val – преобразует строку S в целое или дробное число X. Если преобразование возможно (т.е. если в строке все символы являются символами числа), то в переменную Z будет записан ноль, иначе там будет номер первого символа строки, который не может быть символом числа

Var X: real; S: String[5]; Z: integer; BEGIN

S:=’17.25’;

Val(S, X, Z);

Writeln (‘X=’,X:5:2,’ ошибка=’, Z); {на экране появится: Х=17.25 ошибка=0}

END.

 

Так как строка - это одномерный массив элементов символьного типа- ти- па Char, значит к ним применимы процедуры и функции, определенные для символьного типа данных.

Chr(x)- возвращает значение символа по его коду ASCII. Ord(Ch)- возвращает код заданного символа ch.

Pred(ch)- возвращает предыдущий символ. Succ(ch)- возвращает следующий символ.

Например:

Chr(66)=’B’;

Ord(‘A’)=65;

Pred(‘B’)=’A’;

Succ(‘B’)=’C’

 

5.     Основные операции над строками

a.     Введение строки с клавиатуры: Var st:string;

Begin

Writeln(‘введите строку’);


Readln(st);


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Var


b.     Задание строки и вывод строки на экран: Var

St:string;

Begin

St:=’Привет!’; Writeln(st);

End.

c.     Подсчет количества конкретного символа в строке: k:=0;

for i:=1 to length(st) do if st[i]=’s’ then k:=k+1;

d.     Замена пробела в строке на символ ‘*’ for i:=1 to length(st) do

if st[i]=’ then st[i]:=’*’;

e.      Обращение введенного слова, т.е. если задана строка ‘Маша’, то программа воэвращает ‘ашаМ’


i,n:integer; s:=string; ch:char; Begin

Write(‘введите строку=’); readln(s); n:=length(s);

for i:=1 to trunc(n/2) do begin

ch:=s[i]; s[i]:=s[n-i+1];

s[n-i+1]:=ch; end;

writeln(s); End.

3.   ИСПОЛНИТЕЛЬНЫЙ БЛОК

1.   Определите количество знаков препинания (. , ! ?) во введенной с клавиа- туры строке.

1)          в разделе описания переменных опишите строку st и переменную k,

которая будет подсчитывать количество знаков препинания.

2)     организуйте ввод строки с клавиатуры (см. п. 5.а);

3)    подсчитайте количество в строке знаков препинания (см.п.5.с), только в условии пропишите все знаки препинания через оператор or ( if st[i]=’.’ Or st[i]=’,’ or… then…);

4)   выведите строку st на экран (см. п. 5.b) и k.

2.   Определите, сколько раз в строке, введенной с клавиатуры встречается сим- вол, код которого так же вводится с клавиатуры.


1)        в разделе описания переменных опишите строку st и переменную n целого типа, которая будет содержать код символа и переменные i и k так же целого типа;

2)     организуйте ввод строки с клавиатуры (см. п. 5.а);

3)   организуйте ввод переменной n;

4)     в цикле for i:=1 to length(st) do запишите условие if st[i]=chr(n) then k:=k+1;

5)   выведите символ, количество которого считали в строке

writeln(chr(n));

и переменную k.

3.    Над заданными в разделе описания констант строками st1=’123’ и st2=’78’, преобразованными в числовое значение произвести операции сложения, вычи- тания, умножения и деления.

1)     в разделе описания констант (см.п.1.b) опишите строки st1 и st2;

2)        объявите 2 переменные целого типа- х и у в разделе описания пере- менных;

3)       объявите 3 переменные s, v, p целого типа для хранения результатов сложения, вычитания, умножения соответственно и одну переменную d- веще- ственного типа для хранения результата деления.

4)    преобразуйте строки st1 и st2 в числовые значения: val (st1,x,code); val(st2,y,code); переменную code предварительно опишите в разделе описания переменных.

4)     присвойте этим переменным значения соответствующих выражений: s:=x+y, для других переменных так же.

5)   выведите значения s,v,p,d на экран.

4.   Удалите из строки, введенной с клавиатуры все пробелы

1)        в разделе описания переменных опишите строку st;

2)     организуйте ввод строки с клавиатуры (см. п. 5.а);

3)     в цикле for i:=1 to length(st) do запишите условие

if st[i]=’ ‘ then begin delete(st,i,1); i:=i-1;

end;

4)   выведите строку st на экран.

5.   Наберите и откомпилируйте программу 5.е.

 

4.     КОНТРОЛЬНЫЕ ВОПРОСЫ

1)       Что представляет собой строка?

2)       Какая максимальная длина может быть у строки?

3)       Как можно обратиться к каждому символу строки?

4)       Что обозначает st[0]?

5)       Какие функции предназначены для преобразования типов? Опишите

их.


5.     ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ

1)       Напишите программу, которая вводит строку и выводит ее, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ. При- мер работы программы:

Введите строку:

Аbcde

Результат:

Abcd Abc Ab A.

2)       Введите 2 целых числа. Преобразуйте числа в 2 строки, объедините их в одну и выведите результат.

3)       Напишите программу, определяющую число слов в строке. Одно слово от другого отделяется 1 пробелом. Пример работы программы:

Введите строку:

Делу время, а потехе час.

Количество слов в строке: 5

4)       Вставьте в строку, заданную с клавиатуры 2 пробела, начиная с пози- ции, заданной с клавиатуры. Если введенный номер позиции превышает длину строки программа должна выдавать ошибку. Примеры работы программы:

а) Введите строку: ПРИВЕТ Введите номер позиции: 4 Результат: ПРИ ВЕТ.

б) Введите строку: ПРИВЕТ Введите номер позиции: 14 Результат: Ошибка!

5)       Ввести с клавиатуры две строки st и st1.

Произвести над этими строками следующие действия:

a)        вставить в строку st строку st1, начиная со 2-й позиции;

b)       удалить из каждой строки первую букву;

c)        определить номер позиции, с которой в каждой строке первый раз встречается символ r.

d)       соединить эти строки;

e)        найти длину каждой строки. Результат каждого действия вывести на экран.

6)       Напишите программу, определяющую число слов в строке. Одно слово от другого отделяется 1 пробелом. Пример работы программы:

Введите строку:

Делу время а потехе час.

Количество слов в строке: 5


 

Скачано с www.znanio.ru