Практическое занятие № 4

 

ТЕМА: Строковые величины. Операции над строковыми величинами. Стандартные процедуры и функции для работы со  строковыми величинами. 

ЦЕЛЬ: Выучить определение символьной величины. Сформировать знания об операциях над символьными величинами. Научиться составлять и реализовать алгоритмы обработки строковых величин. 

 

1. Последовательность выполнения практического занятия.

1.1. Внеаудиторная подготовка

а. Повторить технику безопасности при работе на ПК.

1.2. Работа на учебном занятии

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

б. Убрать рабочее место.

в. Оформить отчёт.

 

2. Методические указания

Теоретические сведения для выполнения Задания 1.

Строковые величины.

Символьный тип данных позволяет работать с отдельными символами. Для обработки более крупных фрагментов текста – строк используется тип данных, который так и называется строковый.

Строковая константа – строка символов, заключенная в апострофы.

Строковая переменная – имеет имя, ее значением является строка символов.

Строковые переменные должны быть описаны одним из способов: var имя_ переменной: string;         var имя_ переменной: string[n];

Длина строки не должна превышать 255, а во второй записи строковой переменной не более n.

Основные действия, которые можно выполнять над строковыми переменными: ввода и вывода, присваивание, сцепление, сравнение. Ввод и вывод строковых переменных выполняется с помощью стандартных операторов ввода и вывода: read и write. Оператор присваивания для строковых переменных работает также как и для переменных любого другого типа.

Присваиваемое значение строки заключается в апострофы. Присвоим первым двум строкам слова из пословицы, а третья будет равна их сцеплению:

s1: = ' Тише воды, ';

s2:= 'ниже травы’;

s3:=s1+’’+s2;

Строка s3 имеет значение 'Тише воды, ниже травы'.

Операция сцепления  позволяет строить из двух символьных строк третью, состоящих из символов первой, за которой следуют символы второй. Обозначается эта операция знаком «+» (плюс).

 

Задание 1.  Составить программу, которая выполняет присваивание, ввод, соединение и вывод строк. Слова, которые будут вводиться с клавиатуры, должны иметь отношение к информатике.

 

Методика выполнения Задания 1.

- значения переменных обозначим буквами a, b, c, тип определим строковый; 

- переменные введем с клавиатуры, например, первое слово – компьютер, второе слово - программа;  

- текст программы:

 

Program pr1;

Var    a, b, c: string;

Begin

a:=’Информатика’;

Write(‘Введите первое слово‘);

Read(b);

Write(‘Введите второе слово‘);

Read(с);

Writeln(a,’,’,b,’,’,c);

Writeln(a+’:’+b+’и’+c);   

End.

 

Теоретические сведения для выполнения Задания 2.

Стандартные процедуры и функции для работы со строковыми величинами.

Длина строки

Под длиной строки понимается количество введенных символов, но она не может превышать максимально возможной длины (в описательной части). Это значение можно определить при помощи функции, результат которой целое число, равное количеству символов.

s1:='12345';

 s2:= 'Семеро одного не ждут’;

 k1:=Length(s1);

 k2:=Length(s2).

В результате значения целых переменных будут равны: kl=5, k2=21.

 

 Копирование

Функция copy(str,n,m) в Паскаль – копируют m символов строки str, начиная с n-го символа, при этом исходная строка не меняется. Можно результат этой функции присваивать другой строке или сразу выводить его на экран.

s1:='паровоз';

 s2:='123456';

 s3:=copy(s1, 5, 3);

 writeln(s3);

 writeln(copy(s2, 3, 2));

Значения переменной s1=’воз’. А на экране будут выведены следующие строки: воз и 34.

 

Удаление

В Паскаль для этого используется процедура Delete(str, n,m), которая вырезает из строки str m символов, начиная с n-го. таким образом сама строка изменяется.

Дан фрагмент программы:

s:='123456';

 delete(s, 3, 2);

 writeln(s);

После выполнения этих операторов из строки будут удалены два символа, начиная с третьего, то есть строка будет такой: s = '1256'.

Замена (Вставка)

В Паскаль это можно сделать, применяя процедуру Insert(s1,s2,n) – вставка строки s1 в строку s2, начиная с п-го символа, при этом первая строка остается такой же, как и была, а вторая получает новое значение.

 

s1;='34':

 s2:='1256';

 insert (s1, s2, 3);

В результате выполнения данной процедуры строка будет такой s2='123456'.

 

 Числа и строки

Надо заметить, что число 25 и строка 25 – это не одно и то же. Для работы с числами и строками в Паскаль применяются две процедуры.

Str(n,s1) – переводит числовое значение n в строковое и присваивает результат строке s1, причем можно переводить как целые числа, так и вещественные.

n:=12;

str(n,s1);

 - после выполнения s1 ='12';

Существует обратная операция, переводящая строковое значение в числовое.

Функция val(s, n, k) – переводит строковое значение в числовое, если данная строка действительно является записью числа (целого или вещественного), то значение k=0, а n – это число, иначе k будет равно номеру символа, в котором встречается первое нарушение записи числа n.

val(‘1234',n,k) п=1234, k=0;

 

Задание 2. В три символьные переменные F, I, O ввести свои фамилию, имя, отчество. Сформировать из этих данных строку S, содержащую ваши фамилию и инициалы.

 

Методика выполнения Задания 2.

- переменные F, I, O, S, которые вводятся с клавиатуры,  имеют строковый тип;

- текст программы:

 

Program pr2;

 Var F, I, O, S: string;

 Begin

 Writeln(‘введите вашу фамилию’);

 Readln(F);

 Writeln(‘введите ваше имя’);

 Readln(I);

 Writeln(‘введите ваше отчество’);

 Readln(O);

 S:=F+’ ‘+copy(I,1,1)+’.’+copy(O,1,1)+’.’;

 Writeln(‘ваши реквизиты: ‘, S);

 Readln;

 End.

 

Задание 3. Определить сколько цифр содержится в записи произвольного натурального числа.

 

Методика выполнения Задания 3.

- переменная s, которая вводится с клавиатуры,  имеет строковый тип и переменная x, имеет целый тип данных;

- переменная k, определяется как целая и обозначает количество цифр;

- текст программы:

 

Program pr3;

 Var s: string;

 x, k: integer;

 Begin

 Writeln(‘введите число’);

 Readln(x);

 Str( x, s);

 k:=length(s);

 Writeln(‘в числе ‘,k,’ цифр’);

 Readln;

 End.

 

Задание 4. Составить программу подсчета количества вхождений буквы “а” в заданном тексте.

 

Методика выполнения Задания 4.

- переменная s, которая вводится с клавиатуры,  имеет строковый тип, а переменные i, k имеют целый тип данных;

- текст программы:

 

Program pr4;

 Var s: string;

 i, k: integer;

 Begin

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

 Readln(s);

 k:=0;

 for i:=1 to length(s) do begin

 if copy(s, i, 1)=’a’ then k:=k+1

 end;

 Writeln(‘количество букв “а” в тексте равно ’, k);

 Readln;

 End.

 

Задание 5. Определить какое из двух исходных слов длиннее и насколько.

 

Методика выполнения Задания 5.

- переменные s1, s2, которые вводятся с клавиатуры,  имеют строковый тип, а переменные L1, L2 имеют целый тип данных;

- текст программы:

 

Program pr5;

Var s1, s2: string;

 L1, L2: integer;

 Begin

 Writeln(‘введите первое слово’);

 Readln(s1);

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

 Readln(s2);

L1:=length(s1);

L2:=length(s2);

 if L1>L2 then writeln(‘первое слово длиннее второго на ‘,L1-L2,’ символов’)

 else

 if L1=Ll2 then writeln(‘слова одинаковой длины’)

 else writeln(‘первое слово длиннее второго на ‘,L2-L1,’ символов’);

 Readln;

 End.

 

Самостоятельная работа

Отметка 5-6:

1.  Составьте программу, которая выводит на экран аббревиатуру слов «Учебно-производственный комбинат».

2.  Составьте программу, которая выводит на экран аббревиатуру слов «Аграрно-технический колледж».

3.  Составьте программу, которая выводит на экран  аббревиатуру слов «Районные электрические сети».

4.  Составьте программу, которая выводит на экран  аббревиатуру слов «Организация объединенных наций».

5.  Составьте программу, которая выводит на экран  аббревиатуру слов «Районный узел связи».  

6.  Составьте программу, которая выводит на экран аббревиатуру слов «Передвижная механизированная колонна».

7.  Составьте программу, которая выводит на экран аббревиатуру слов «Строительно-монтажная бригада».

8.  Составьте программу, которая выводит на экран  аббревиатуру слов «Агро-промышленный комплекс».

Отметка 6-7:

1.  Напишите программу, подсчитывающую количество букв во введенной строке.

2.  Напишите программу, подсчитывающую количество букв во введенной строке.

3.  Напишите программу, подсчитывающую количество букв во введенной строке.

4.  Напишите программу, подсчитывающую количество букв во введенной строке.

5.  Напишите программу, подсчитывающую количество букв во введенной строке.

6.  Напишите программу, подсчитывающую количество букв во введенной строке.

7.  Напишите программу, подсчитывающую количество букв во введенной строке.

8.  Напишите программу, подсчитывающую количество букв во введенной строке.

Отметка 8-9:

1.     Разработайте программу, которая выводит на экран третий символ введенного слова.

2.     Разработайте программу, которая выводит на экран пятый символ введенного слова.

3.     Разработайте программу, которая выводит на экран восьмой символ введенного слова.

4.     Разработайте программу, которая выводит на экран четвертый символ введенного слова.

5.     Разработайте программу, которая выводит на экран второй символ введенного слова.

6.     Разработайте программу, которая выводит на экран шестой символ введенного слова.

7.     Разработайте программу, которая выводит на экран седьмой символ введенного слова.

8.     Разработайте программу, которая выводит на экран первый символ введенного слова.

 

3. Содержание отчета

а. Титульный лист

б. Цель работы

в. Ответы на контрольные вопросы

г. Последовательность выполнения работы по заданиям с описанием основных этапов осуществляемых действий

д. Заключение в виде анализа полученных результатов и выводов

 

 Контрольные вопросы

1.   Дайте определение строковой величины.

2.   Какие действия можно выполнять над строковыми переменными в Паскаль?

3.   Какую функцию используют для определения длины строки?

4.   В чем заключается операция сравнения строк?

5.   Какие утверждения верны:

а) ДОМ’ > ‘ДОРОГА

б) человек’ > ‘ЧЕЛОВЕК

в) ‘123’ < ‘40’

г) шалаш’ >‘дворец?

6.   Какую функцию применяют для копирования части строки?

7.   Какую процедуру применяют для удаления символов из строки?

8.   Какую процедуру применяют для вставки символов в строку?