Тема: Обработка символьных строк
Тип урока: комбинированный:
проверка знаний – компьютерное тестирование;
новый материал – задание web-квеста;
закрепление – практические упражнения;
проверка знаний – устный опрос, решение проблемы урока.
Цель урока:
Формирование у обучающихся навыков самостоятельной работы с ресурсами Интернета по заданной теме, закрепление правил написания программ на языке Pascal.
Задачи урока:
Обучающие:
Научить оперировать целочисленным и строковым типами данных.
Углубить знание о типах данных Pascal.
Тренировать навыки работы в оболочке программы Pascal.ABC.NET.
Тренировать умение находить информацию в сети Интернет.
Развивающие:
Развивать умения анализировать.
Осуществлять навык поиска и выделения необходимой информации.
Продолжить развитие умения устанавливать причинно-следственные связи.
Формировать умения работы в сети Интернет.
Воспитательные:
Совершенствовать навыки общения.
Вовлечь в активную деятельность.
План урока:
Организационный момент (1 мин).
Повторение материала предыдущего урока + проверка домашнего задания (компьютерное тестирование) (6 мин).
Объяснение нового материала (10 мин).
Физкультминутка – гимнастика для глаз (1 мин).
Закрепление (25 мин)
разбор примеров, практические упражнения (18 мин);
устный опрос, решение проблемы урока (7 мин).
Обобщение урока, домашнее задание (2 мин).
Оборудование и программный материал:
оболочка программы Pascal.ABC.NET.
программа MyTest;
учительский и ученические ПК;
возможность выхода в Интернет;
web-квест «Основы алгоритмики»;
карточки с задачами на языке Pascal.
Применяемые технологии:
Проблемного обучения.
Личностно-ориентированного подхода, развивающего обучения.
Web-квест.
Игровая.
ИКТ.
Используемые методы:
репродуктивный;
объяснительно-иллюстративный;
проблемного изложения материала;
исследовательский;
сравнительно-аналитический;
Ход урока.
Организационный момент
Приветствие.
Повторение материала предыдущего урока + проверка домашнего задания (компьютерное тестирование)
Для проверки домашнего задания пересядьте, пожалуйста, за компьютеры. Откройте тест «Целочисленный тип данных» на рабочем столе. На работу вам дается 5 минут. Начали!
Тест:
1. Переменные целого типа могут принимать только целые значения. Верно ли данное утверждение?
Да
2. Сколько байтов памяти отводится для типа integer:
2
3. Найдите ошибку в записи: a; b; c: integer;
после а b встречено ";" ожидалось ","
4. Число 724 можно отнести к integer ?
Да
5. Что значит "диапазон допустимых значений"?
Переменная может принимать значения данного диапазона чисел
6. Укажите верные операции над целыми числами:
+ - * / mod div
7. Как называются перечисленные операции? " = = ="
отношения
8. Какие операции можно производить над данными целочисленного типа?
Арифметические и отношения
9. Что возвращает функция random ?
Случайное число
10. Что возвращает функция succ ?
Следующее число
Заканчиваем работу с тестом и анализируем свои ошибки: каков процент выполнения и почему.
Теперь развернитесь ко мне лицом.
Объяснение нового материала
Что ж, мои юные программисты, продолжаем изучать алгоритм. Что является величиной алгоритма? (информационный объект: число, символ, таблица). Каждый объект является данными для программы и имеет свой тип.
Что мы знаем о типах данных? (Тип определяет множество допустимых значений объекта, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет формат внутреннего представления данных в памяти ПК.)
Тема сегодняшнего урока: «Обработка символьных строк».
На доске вы видите вопрос: «Есть ли различия между строковым и целочисленным типом данных?». В конце урока мы должны решить данную проблему и ответить на озвученный вопрос.
Разворачиваемся к компьютерам. Продолжаются путешествия наших героев: Вани-непоседы, Тимы-мыслителя и Данилы-мастера. (Сайт учителя tamau.ucoz.ru : Технологии – Web-квест – Примеры web-квестов – Web-квест «Основы алгоритмики») Открываем 5 задание web-квеста (Картинка «Кит»). С первой ссылкой мы уже работали, открываем вторую ссылку «ЗДЕСЬ».
Итак, назовите тему сегодняшнего урока. (Обработка символьных строк)
Выписываем в тетрадь название, обозначение, диапазон значений, формат, операции.
По ходу работы с содержимым web-страницы учитель уточняет и конкретизирует сведения о строковом типе.
Строковый тип данных
Для обработки строковой информации в Турбо Паскаль введен строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Синтаксис:
var s: string[n];
var s: string;
Учитель: Какие данные описываются строковым типом? Как записывается тип (назовите индентификатор)?
n - максимально возможная длина строки - целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается равным 255.
Учитель: Каков диапазон?
Строковые константы записываются как последовательности символов, ограниченные апострофами. Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации # и кода символа) и управляющих символов (комбинации ^ и некоторых заглавных латинских букв).
Пример:
'Текстовая строка'
#54#32#61
'abcde'^A^M
Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается.
Переменные, описанные как строковые с разными максимальными длинами, можно присваивать друг другу, хотя при попытке присвоить короткой переменной длинную лишние символы будут отброшены.
Учитель: Приведите примеры записи строковых констант в программе.
В Турбо Паскаль имеется простой доступ к отдельным символам строковой переменной: i-й символ переменной st записывается как st[i]. Например, если st - это 'Строка', то st[1] - это 'С', st[2] - это 'т', st[3] - 'р' и так далее.
Учитель: Важно! Можно определить порядковый номер символа в строке.
Над строковыми данными определена операция слияния (конкантенации), обозначаемая знаком +. Например:
a := 'Turbo';
b := 'Pascal';
c := a + b;
В этом примере переменная c приобретет значение 'TurboPascal'.
Учитель: С помощью слияния двух строк получается третья, операция записывается как арифметическая «сложение».
Кроме слияния над строками определены операции сравнения ,=,,=. Две строки сравниваются посимвольно, слева направо, по кодам символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются символом с кодом 0.
Учитель: какие еще операции можно производить над строковым типом данных? Как происходит сравнение?
Очень близок к символьному типу еще один текстовый тип, только там используется один… ЧТО? Правильно: символ, записывается он char. Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255. Операции над данными можно производить те же, что с символьным типом. Выражения типа char можно присваивать любым строковым переменным.
Закрепление.
Вы получили примеры программ с строковым типом данных. Рассмотрим первый пример «Введение данных ученика: фамилия, имя»:
var
fam,name: string;
begin
writeln ('Введите фамилию',fam);
readln (fam);
writeln ('Введите имя',name);
readln (name);
write (fam,' ',name);
end.
Назовите переменные, определите соответствующий им тип данных. Обратите внимание на исполняемую область – что будет выведено в результате программы?
Рассмотрим второй пример «Преобразование числа в строку и обратно». Здесь используются 2 типа данных, потому что мы оперируем с 2 величинами: «число 365» и «строка «365»».
var
s: string;
num: integer;
begin
s := '356';
num := StrToInt(s);
writeln('Число, соответствующее строке ''',s,''' - это ',num);
num := 563;
s := IntToStr(num);
writeln('Строка, соответствующая числу ',num,' - это ''',s,'''');
end.
Теперь самостоятельно введите текст третьей программы в оболочку Pascal.ABC.NET, результатом программы будет сумма кодов каждой буквы слова БАЙТ:
var
a: string;
i,b:byte;
begin
a:= 'БАЙТ';
b:=ord(a[1])+ord(a[2])+ord(a[3])+ord(a[4]);
writeln (b);
end.
Кто готов? Выполните программу, исправьте высветившиеся ошибки. (Учитель проверяет правильность записи текста программы и помогает индивидуально тем, у кого проблемы).
5. Физкультминутка.
Пересаживаемся за парты. Очки положите на стол, и
1) Следите за моей ладонью только глазами (вправо-влево, вверх-вниз),
2) теперь упражнение «Своя ладонь у лица, ладонь учителя у доски», посмотрите в окно,
3) закройте глаза ладошками, не нажимая.
Обсуждение проблемы урока.
Итак. Мы подробно разобрали новый тип данных. Ответьте мне на вопрос: есть ли различие между строковым и целочисленным типами данных? Да.
Теперь давайте обсудим, в чем состоит это различие. И помогут нам в этом герои квеста: Ваня-непоседа, Тима-мыслитель и Данила-мастер.
Что заметил наш непоседа? (Внешние различия: Разное обозначение в программе, Целочисленным типом описываются числа, а строковым – последовательность любых символов)
Что определил мыслитель? (Свойства: в диапазон целочисленных типов входят числа от и до числовых значений, а в диапазон строкового типа составляет длина строки, количество символов от и до, составляющих эту строку)
Что выделил мастер? (Операции: Над данными целочисленного типа можно производить все арифметические операции, а над данными строкового типа – операцию слияния, которая похожа на операцию сложения, но это не одно и то же. Кроме того, сравнение происходит по коду символа слева направо, а в целочисленном сравниваются значения самих величин.
6. Обобщение урока, домашнее задание
Записываем Д.З. в тетрадь: §3.3.3, №14. Задание также есть в электронном дневнике.
Что сегодня мы узнали на уроке?
- Подробно разобрали символьный тип данных.
- Потренировались в написании программ.
- Выполнили задания квеста.
- Ответили на проблемный вопрос.
Рефлексия:
Ребята, я прошу вас в карточках отметить те предложения, которые описывают ваши впечатления и чувства.
Я узнал(а) | Я научился(лась) | Материал на уроке мне был понятен и доступен (весь, частично, непонятен) | Лучше всего у меня получилось | У меня возникли трудности | Я доволен своей работой на уроке (полностью, частично, нет) | На уроке мне было интересно (да, частично, нет) | Я готов применять полученные знания на практике (да, частично, нет) | Свою работу на уроке оцениваю на оценку |
| | | | | | | | |
Спасибо за урок.