Методическая разработка. Изучение строк посредством объектно-ориентированного языка программирования Borland Delphi, 11 класс

Муниципальное общеобразовательное учреждение

«Средняя общеобразовательная школа № 93»

Новокузнецкого района Кемеровской области























Методическая разработка

по информатике в 11 классе

«Borland Delphi. Строки»

















Подготовил: 

учитель информатики

Ожигова Ольга Сергеевна

















Новокузнецк 2010

Пояснительная записка



Тема: «Delphi. Строки»

Цели: 

образовательная: научить решать задачи в Borland Delphi, используя строки;

воспитательная: вызвать интерес к учебному материалу, способствовать укреплению привычки внимательно и аккуратно выполнять учебную работу;

развивающая: способствовать развитию устной и письменной речи учащихся.

Контингент: 11 класс, базовый уровень.

Данная методическая разработка является частью общего курса информатики средней общеобразовательной школы. Эта работа посвящена рассмотрению строк в  Borland Delphi и, в общей сложности, рассчитана на 4-5 часов. Она включает в себя теоретические основы по данной теме, фронтальную лабораторную работу, индивидуальную лабораторную работу, а также контрольную работу (в виде теста).

К данной методической разработке есть приложения, в  которых приведены решения задач фронтальной и индивидуальной работы посредством языка программирования Borland Delphi.

Требования к ЗУНам до изучения темы: основы программирования и оперирование этими знаниями: интерфейс, форма, модуль, панели, свойства компонентов, знание циклов for, while.

Требования к ЗУНам после изучения темы:  знать как описывается этот тип данных, основные функции и процедуры работы со строками в Borland Delphi и уметь решать задачи по данной теме.

Требования к программному и аппаратному обеспечению

В процессе изучения темы потребуется компьютерный класс, оснащённый компьютерами на базе процессоров от Pentium II, имеющих не менее 64 Мб ОЗУ и частотой  200 МГц и выше, на которых установлено следующее программное обеспечение: операционная система Microsoft Windows XP Professional версия 2002 и выше.



Тематическое планирование



№

Тема урока

Тип урока

Кол-во                    часов

1



Delphi. Строки

Лекция 

1

2



Фронтальная лабораторная работа

2

3



Индивидуальная лабораторная работа

1

4



Контрольная работа

1







Урок № 1. Лекция по теме «Delphi. Строки»



Строки могут быть представлены следующим типом: string. 

Переменная строкового типа должна быть объявлена в разделе объявления переменных. Инструкция объявления в общем виде выглядит так:

Имя: String;

где:

имя — имя переменной;

string — ключевое слово обозначения строкового типа;

В тексте программы последовательность символов, являющаяся строкой (строковой константой), заключается в одинарные кавычки. Например, чтобы присвоить строковой переменной parol значение, нужно записать:

parol:= 'Большой секрет';

или

parol:= '2001';

Следует обратить внимание, что инструкция parol:=2001; неверная, т.к. тип константы не соответствует типу переменной. Во время компиляции этой инструкции будет выведено сообщение: incompatible types: 'Char' and 'Integer' (типы Char и Integer несовместимы).

Используя операции =, <, >, <=, >=, переменную типа string можно сравнить с другой переменной типа string или со строковой константой. Строки сравниваются посимвольно, начиная с первого символа. Если все символы сравниваемых строк одинаковые, то такие строки считаются равными. Если в одинаковых позициях строк находятся разные символы, большей считается та строка, у которой в этой позиции находится символ с большим кодом. В таблице приведены примеры сравнения строк.



Таблица. Сравнение строк 

Строка 1

Строка 2

Результат сравнения

Иванов

Иванов

Строки равны

Васильев

Васильев

Строка 1 больше строки 2

Алексеев

Петров

Строка 1 меньше строки 2

Иванова 

Иванов

Строка 1 больше строки 2



Кроме операции сравнения, к строковым переменным и константам можно применить операцию сложения, в результате выполнения которой получается новая строка. Например, в результате выполнения инструкций

S1: ='Иван' ;

S2:='Иванов';

S:=S1+S2;

переменная S получит значение 'Иван Иванов'.







Функция length

Функция length возвращает длину строки. У этой функции один параметр — выражение строкового типа. Значением функции length (целое число) является количество символов, из которых состоит строка.

Например, в результате выполнения инструкций

n:=length('Иванов');

m:=length(' Невский проспект ');

значение переменных n и m будет равно 6 и 20.



Процедура delete

Процедура delete позволяет удалить часть строки. В общем виде обращение к этой процедуре выглядит так:

delete(Строка, р, n) 

где:

Строка — переменная или константа строкового типа;

р — номер символа, с которого начинается удаляемая подстрока;

n — длина удаляемой подстроки.

Например, в результате выполнения инструкций

p:='Город Санкт-Петербург';

delete(s,7,6);

значением переменной s будет строка 'Город Петербург'.



Функция роs

Функция роз позволяет определить положение подстроки в строке. В общем виде обращение к функции выглядит так:

pos (Подстрока,Строка) ;

где Подстрока — строковая константа или переменная, которую надо найти в строковой константе или переменной строка.

Например, в результате выполнения инструкции

р := pos('Пе','Санкт-Петербург');

значение переменной р будет равно 7. Если в строке нет искомой подстроки, то значение функции роs будет равно нулю.

Ниже приведена инструкция while, в результате выполнения которой удаляются начальные пробелы из строки st.

while(pos(' ',st) = 1) and(length(st) > 0) do delete (st,1,1);

Пробелы удаляет инструкция delete (st, i, i), которая выполняется в цикле до тех пор, пока первым символом строки является пробел (в этом случае значение роs (' ',st) равно единице). Необходимость проверки условия length (st) > 0 объясняется возможностью того, что введенная строка состоит только из пробелов.



Функция сору

Функция сору позволяет выделить фрагмент строки. В общем виде обращение к функции сору выглядит так:

сору(Строка, р, n) где:

строка — выражение строкового типа, содержащее строку, фрагмент которой надо получить;

р — номер первого символа, с которого начинается выделяемая подстрока;

n — длина выделяемой подстроки. Например, в результате выполнения инструкций.

st:= 'Инженер Иванов'; fam:=copy(st, 9, 6) ;

значением переменной fam будет строка 'Иванов’.


Урок №2

Тема: Фронтальная лабораторная работа

Задача1. Найти количество пробелов и цифр в строке.

1) Открой те Delphi, создайте новую форму, назовите «Строки» и сохраните в своей папке.

2) Поместите на форму следующие компоненты: две кнопки (Button), текстовое окно (Edit) и четыре метки (Label). 

3) Кнопки назовите «Решение», «Выход». Одна метка будет содержать условие задачи и располагаться по верхнему краю формы. Вторая метка называется «Введите строку» и расположена ниже условия задачи. Рядом с ней располагается текстовое окно.

Ниже располагаются еще две метки: одна – «Искомое количество», вторая – пустая.

Измените цвет и размер формы, цвет, размер шрифта и размер компонентов.

Если вы все выполнили верно, интерфейс программы выглядит примерно так:





4) Запрограммируйте кнопку выход.

5) Теперь перейдем к кнопке «Решение». Начнем писать процедуру.

Введем переменные: s строкового типа, i  и k – целочисленные. 

Считаем текст из текстового окно, воспользовавшись свойством Text. Обнулим переменную k, в которую и будем запоминать количество встреченных пробелов. 

Далее создадим цикл по i, используя функцию Length (s)  (длина строки). А в цикле условие: если в строке есть пробел, то число увеличиваем на 1. 

Далее, искомое количество выводится на экран через метку.

Если все выполнено верно, то программа должна выглядеть следующим образом: 

//кнопка выход

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;



//кнопка решение

procedure TForm1.Button1Click(Sender: TObject);

var s:string;

    i,k:integer;

begin

s:=Edit1.Text;    //считываем текст из строки

k:=0;             //обнуляем переменную k

for i:=1 to Length(s) do       //с помощью цикла считаем пробелы

begin

if s[i]=' ' then k:=k+1;

end;

Label4.Caption:=IntToStr(k);    //выводим количество пробелов на экран

end;



Задача 2. Дана строка, удалить из нее все группы букв bc.

1) Открой те Delphi, создайте новую форму, назовите «Строки» и сохраните в своей папке.

2) Поместите на форму следующие компоненты: три кнопки (Button), два текстовых окна (Edit) и три метки (Label). 

3) Кнопки назовите «Удалить bc», «Выход», «Очистить». Одна метка будет содержать условие задачи и располагаться по верхнему краю формы. Вторая метка называется «Текущая строка» и расположена ниже условия задачи. Рядом с ней располагается текстовое окно.

Ниже располагаются еще одна метка – «Исправленная строка» и рядом с ней текстовое окно. Кнопки расположены ниже.

Измените цвет и размер формы, цвет, размер шрифта и размер компонентов.

Если вы все выполнили верно, интерфейс программы выглядит примерно так:



4) Запрограммируйте кнопку выход.

5) Запрограммируйте кнопку очистить.

6) Теперь перейдем к кнопке «Удалить bc». Начнем писать процедуру.

Введем переменные: s строкового типа, g – целого. 

Считаем текст из текстового окно, воспользовавшись свойством Text. 

Далее создадим цикл While, а затем с помощью функции Pos определим позицию вхождения в строку группы букв bc, а с помощью процедуры Delete удалим эту группу букв. 

Далее, измененная строка выводится на экран в текстовое окно.

Если все выполнено верно, то программа должна выглядеть следующим образом: 

//кнопка Удалить bc

procedure TForm1.Button1Click(Sender: TObject);

var s: string;

    g: integer;

begin

 s:=Edit1.Text;      //считываем строку

 while Pos('bc',s)>0 do //определяем позицию вхождения в строку группы букв bc

 begin

 g:=Pos('bc',s); delete(s,g, 2); //удаляем из строки группы букв bc

 end;

 Edit2.Text:=s;        //выводим исправленную строку в текстовое окно

end;



//кнопка очистить

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit1.Clear;   //очищаем текстовые окна для повторного заполнения

Edit2.Clear;

end;



//кнопка выход

procedure TForm1.Button3Click(Sender: TObject);

begin

Close;

end;



Задача 3. Дана две строки, имеющие одинаковую длину. Образовать строку, в которой должны чередоваться символы этих двух строк.

1) Открой те Delphi, создайте новую форму, назовите «Строки» и сохраните в своей папке.

2) Поместите на форму следующие компоненты: две кнопки (Button), одну кнопку (BitBtn), три текстовых окна (Edit) и четыре метки (Label). 

3) Кнопки назовите «Объединить», «Очистить». Одна метка будет содержать условие задачи и располагаться по верхнему краю формы. Вторая метка называется «Первая строка» и расположена ниже условия задачи. Рядом с ней располагается текстовое окно.

Ниже располагается еще одна метка – «Вторая строка» и рядом с ней текстовое окно. Еще ниже расположена еще одна метка – «Образованная строка» и рядом с ней текстовое окно Кнопки расположены ниже.

Используя свойство Kind кнопки BitBtn, сделайте выход из программы не программируя кнопку.

Измените цвет и размер формы, цвет, размер шрифта и размер компонентов.

Если вы все выполнили верно, интерфейс программы выглядит примерно так:









4) Запрограммируйте кнопку очистить.

5) Теперь перейдем к кнопке «Объединить». Начнем писать процедуру.

Введем переменные: s, s1, s2 строкового типа, i – целого. 

Считаем текст из текстовых окон, воспользовавшись свойством Text. 

Затем выполним проверку: одинаковой ли длины введенные строки? Воспользуемся процедурой ShowMessage для вывода сообщения.

Обнуляем строку s, присвоив ей пустое значение.

Далее в цикле For складываем две строки. 

Далее, измененная строка выводится на экран в текстовое окно.

Если все выполнено верно, то программа должна выглядеть следующим образом: 

//кнопка очистить

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit1.Clear;

Edit2.Clear;

Edit3.Clear;

end;



//кнопка объединить

procedure TForm1.Button1Click(Sender: TObject);

var s, s1, s2 : string;

    i: integer;

begin

s1:=Edit1.Text;   //считаем строку из текстового окна

s2:=Edit2.Text;

if length(s1)<> length(s2) then      //сделаем проверку

   begin

    ShowMessage('Строки должны быть одинаковой длины!!!');

    Edit1.Clear;

    Edit2.Clear;

    Edit3.Clear;

    end

       else

       begin

       s:=' ';       //изначально строка пустая

       for i:=1 to length(s1) do

       s:=s+s1[i]+s2[i];   //складываем две строки

       Edit3.Text:=s;      //выводим полученную строку в текстовом окне

       end;

end;






Индивидуальная лабораторная работа



Карточка №1

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



Карточка №2

Дана строка с пробелами. Подсчитать количество слов.



Карточка №3

Исключить символы в скобках и сами скобки


Контрольная работа по теме “Delphi. Строки”


1. Каким типом могут быть представлены строки:

а) integer;

б) char;

в) boolean;

г) string.



2. Чтобы присвоить строковой переменной s значение, нужно записать:

а) s=’2008’;

б) s:=”2008”;

в) s=”2008”;

г) s:=’2008’.



3. Какое значение получит переменная s,  в результате выполнения следующих инструкций:  

s1=’Иван’;

s2=’Иванов’;

s=s1+s2;

а) переменная s получит значение ’Иван Иванов’;

б) переменная s получит значение ’Иванов Иван’;

в) программа не выполнится из-за синтаксической ошибки;

г) программа не выполнится из-за орфографической ошибки.



4. В результате выполнения инструкций: n:=length(‘Иванов’), значение переменной n будет равно:

а) 6;

б) 7;

в) 8;

г)10.



5. Функция  length – 

а) позволяет удалить часть строки;

б) возвращает длину строки;

в) определяет положение строки в подстроке;

г) выделяет фрагмент строки.



6. Delete (a, p, n), где n – 

а) переменная строкового типа;

б) номер символа, с которого начинается выделяемая строка;

в) длина выделяемой строки;

г) длина удаляемой строки.



7. Copy (a, p, n), где p – 

а) длина удаляемой подстроки;

б) переменная строкового типа;

в) номер символа, с которого начинается выделяемая подстрока;

г) длина выделяемой строки.



8. В результате выполнения инструкций 

st:=’Инженер Иванов’;

st1:= copy (st, 9, 6);

значение переменной st1 будет:

а) st1:=’Инженер’;

б) st1:=’Иванов’;

в) программа не выполнится из-за синтаксической ошибки;

г) программа не выполнится из-за орфографической ошибки.



9. Функция Pos – 

а) позволяет удалить часть строки;

б) возвращает длину строки;

в) определяет положение строки в подстроке;

г) выделяет фрагмент строки.



10. В результате выполнения инструкций 

p:=’Город Санкт-Петербург’;

Delete (s, 7, 6); 

значение переменной s будет:

а) программа не выполнится из-за синтаксической ошибки;

б) программа не выполнится из-за орфографической ошибки;

в) s:=’Санкт-Петербург’;

г) s:=’Город Петербург’.





Критерии оценки:

«5» - 9-10

«4» - 7-8

«3» - 5-6

«2» - менее 5




Список использованной литературы



Валеева Ю.И. Borland Delphi. Учебное пособие / Ю.И. Валеева, М.С. Можаров – Новокузнецк: Изд-во КузГПА, 2007. – 342с.

Можаров М.С. Языки и методы программирования. TURBO PASCAL / Учебное пособие. – Новокузнецк, Изд-во НГПИ, 2001. – 267с.

Фиошин М.Е. Информатика и ИКТ. Профильный уровень. В 2 ч. Ч. 2: 11 кл.: учеб. для общеобразоват. учреждений. – М.: Дрофа, 2009. – 478с.