Методическая разработка. Изучение строк посредством объектно-ориентированного языка программирования 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), одну кнопку (B$itBtn), три текстовых окна (Edit) и четыре метки (Label).

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

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

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

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

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

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

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

  • Введем переменные: s, s$1, 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:=E$dit1.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

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

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

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

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

Post Comment