31 урок, 8 класс
Учитель: Брух Т.В.
Дата: ___________
Тема урока: «Обработка символьных данных. Символьные (строковые) переменные. КР3»
Цели урока:
Образовательные: ввести понятия символьной информации, познакомить учащихся с функциями и процедурами, предназначенными для работы с символьными величинами, сформировать умение решать задачи с использованием символьной информации.
Развивающие: алгоритмическое мышление, познавательную деятельность учащихся; интерес к программированию; внимательность и самостоятельность при решении задач.
Воспитательные: воспитывать интерес к предмету, аккуратность, внимательность, дисциплинированность.
Ход урока
I. Организационный момент
II.Контрольная работа
Переменные, структура программы, операторы ветвления, линейного алгоритма.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
3 | 1 | 3 | 4 | 1 | 1 | 2 | 1 | 2 | 4 | 1 | 1 | 1-3, 2-1, 3-4, 4-2 | 1-4, 2-1, 3-3, 4-2 | 26 |
III. Изучение нового материала
Для этого необходимо изучить новый материал.
Будем полагать, что текст — это произвольная последовательность символов некоторого алфавита. Алфавитом может служить любое множество символов. Символьный тип данных служит для представления символа, который есть на клавиатуре. Всем имеющимся на клавиатуре символам ставится в соответствие целое число — код символа. Всего кодируется 256 символов. В таблице кодов среди всех символов можно выделить следующие четыре группы:
цифры от 0 (код 48) до 9 (код 57);
латинские прописные буквы от «А» (код 65) до «Z» (код 90);
латинские строчные буквы от «а» (код 97) до «z» (код 122);
русские прописные буквы от «А» (код 128) до «Я» (код 159).
Символы в пределах каждой из групп следуют друг за другом в алфавитном порядке и их коды изменяются при этом на 1. Каждый символ строковой величины занимает 1 байт памяти.
Данные символьного типа могут быть представлены двумя способами:
графическим, когда соответствующий символ записывается в апострофах, например: '+' (символ «плюс»);
с помощью целочисленного кода, когда рядом со знаком целочисленного кода # указывается целое число — код данного символа в таблице ASCII. Например, #65 — представление латинской прописной буквы «А» с помощью целочисленного кода.
Строкой символов, или символьной (строковой, текстовой) константой, будем называть последовательность символов, заключенную в кавычки. Среди строк пустая строка играет ту же роль, что ноль среди чисел. Максимальная длина текстовой строки — 255 символов.
В Паскале существует тип данных, предназначенный для обработки слов (цепочки символов). Такой тип данных называется строковым (тип string). Строки выводятся на экран посредством стандартной процедуры write {writeln) и вводятся с клавиатуры с помощью стандартной процедуры read {readlri).
Объявление данных типа string:
const =;
var : string;
: string[20];
В квадратных скобках указывается максимальная длина строки. Если длина строки не указана, то она считается равной 255 символам — максимально возможной длине.
Операции над строками.
Для строк определена операция объединения (сцепления), которая обозначается знаком + и объединяет несколько строк в одну.
Например:
A:=’ Новосибирск’;
B:=’ столица Сибири’
С:=A+’- ’+B+’!’
Переменная С иметь значение ‘Новосибирск- столица Сибири!’
Операции отношения (сравнения двух строк) =,, =, .В результате сравнения двух строк получается логическое значение (true или false). Сравнение происходит слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символов (кодировки).
Например:
'строка''строки'(верно, т.к. не совпадают последние символы),
'Abc'
'год''век'(отношение верно, т.к. буква 'г' в алфавите стоит после буквы 'в', а, следовательно.
‘кот ’=’ кот’ (отношение истинно, т.к совпадают все символы)
Стандартные функции и процедуры.
Для работы с типом string определены следующие встроенные процедуры и функции:
Стандартные функции работы со строками |
Функция | Что возвращает | Типы аргументов | Тип функции |
length(S) | длину строки S | S: string | integer |
Pos(Sl, S) | номер символа, начиная с которого фрагмент S1 входит в строку S, или 0, если S1 не входит в S | S, S1: string | integer |
copy(S, n, m) | копирует m символов из строки S, начиная с n | S: string; n, m: integer | string |
upcase(S[i]) | прописной латинский символ | char | char |
Стандартные процедуры работы со строками |
Процедура | Что делает | Тип аргументов | Где находится результат |
Delete (S, n, m) | удаляет m символов из строки S, начиная с n | S: string; n, m: integer; | в S |
Insert (Sl, S ,n) | вставляет фрагмент S1 в строку S, начиная с символа n, отодвигая символы вправо | S, S1: string; n: integer; | в S |
Str (a, S) | преобразует число а в строку S | a: real, integer; S: string; | в S |
val(S, a, code) | преобразует строку S, если возможно, в число а с флагом code | a: real, integer; code: integer; S: string; | в а и code |
IV. Первичная проверка усвоения знаний и закрепление знаний
Учитель решает задачи на интерактивной доске, учащиеся решают в тетрадях.. Идём обсуждение правильного решения задач.
K=length(‘Информатики’); K=11
S:=’Информатика’
S1:=copy(S, 3, 5)
S1=’форма’
Чему равна строка M:= copy (S,1,4)
S2=’инфо’
Получить из слов "Язык", "Turbo", "Pascal" фразу "Язык Turbo Pascal".
A:=’ Язык’;
B:=’ Turbo’
D:= ‘Pascal’
С:=A+’ ’+B+’ ’+D
S:=’ Книга ’
S1:= ‘и’
K1=Pos(Sl, S); K1=3
S1:=upcase(‘а’)
М:= ’моток’
М1:=insert(‘ло’,M,3)
M1=’ молоток’
V. Контроль и самопроверка знаний
Дана строка. Подсчитать количество слов, начинающихся с буквы а.
Например, ананасы любят аристократы.
Ответ: 2
Дана строка. Определить сколько слов в строке начинается с той же буквы, которой закончилось предыдущее предложение.
Например, Антошка ел лимон.
Ответ: 1
Дана строка. Подсчитать количество слов, заканчивающихся буквой и.
Например, Мышки ели шишки.
Ответ: 3
Составьте программу, которая в строке заменит букву о на и.
Например, Кот.
Ответ: Кит
VI. Подведение итогов урока.
Что нового вы узнали?
Что на ваш взгляд вам удалось освоить лучше, а что нет?
Над чем вам необходимо поработать?
VII. Домашнее задание.
Выучить конспект.
Вопросы для самоконтроля:
Что является результатом каждой функции, предназначенной для выполнения операций над строками?
Что является результатом действия функции (length(a))?
Для каждого ли символа имеется код?
Верно ли, что символы "А" и "а" имеют одинаковые коды?