Коллеги - педагогический журнал Казахстана

Наша библиотека

Главная » Файлы » В помощь учителю » Информатика

Строки в Паскале
[ Скачать с сервера (31.0Kb) ] 2015-01-23, 7:53 AM
Тема урока: Строковые данные. Программирование литерных данных.
Тип урока: урок изучения и первичного закрепления новых знаний
Вид учебных занятий: лекция, лабораторная работа, учебный и трудовой практикум
Цель - изучение и первичное осознание нового учебного материала, осмысление связей и отношений в объектах изучения:
1. Овладеть навыками составления программ на языке Паскаль по обработке символьных строк.
2. Научиться использовать встроенные функции для обработки строк.
План урока
1. Организационный момент - 1 минута.
2. Подготовка учащихся к усвоению (актуализация знаний) – 4 минуты.
3. Изучение нового материала – 15 минут.
4. Первичная проверка усвоения знаний: опрос – 5 минуты.
5. Первичное закрепление и проверка усвоения знаний: лабораторная работа – 10 минут.
6. Подведение итогов урока – 3 минуты.
7. Информация о домашнем задании – 2 минуты.
Ход урока.
1. Всеобуч. Проверка домашнего задания.
2.
3. Какой вид мы с вами умеем обрабатывать? (числовую, графическую). А если необходимо нам решить такие задачи:
№ Условие
1 Проверить, является ли строка палиндромом (т. е. читается ли она одинаково справа налево и слева направо). Пробелы игнорируются. Например, шалаш, а роза упала на лапу азора.
2 Проверить, верно ли что в строке чередуются гласные и согласные буквы. Пробелы игнорируются.
3 Проверить, имеется ли в заданном тексте баланс открывающихся и закрывающихся скобок.
4 В заданном предложении указать слово, в котором доля гласных а, е, и, о максимальна.
5 В заданном предложении найти самое короткое и самое длинное слово.
6 Для каждого символа заданного текста указать, сколько раз он встречается в тексте. Сообщение об одном символе должно печататься не более одного раза.
7 В заданном тексте удалить символ "," и подсчитать число удаленных символов.
8 В заданном тексте подсчитать количество гласных букв.
9 В заданном тексте заменить каждый символ "а", стоящий на четном месте, на символ "о".
10 Подсчитать количество слов в предложении.
11 Отредактировать заданное предложение, заменяя многоточие точкой.
12 Для каждого слова заданного предложения указать долю согласных.
13 Определить слово в заданном предложении, в котором доля гласных максимальна.
14 Удалить из текста пробелы и подсчитать число удаленных символов.
Как, во-первых, ввести такие данные?
Как, во-вторых, как такие данные обрабатывать?
4. Объяснение нового материала: запускаю презентацию по строкам.
1. ОПИСАНИЕ СТРОКОВОГО ТИПА
Изучение данных структурированного типа начнем со строкового типа данных строк. Строка — это последовательность символов кодовой таблицы персонального компьютера. При использовании в выражениях строка заключается в апострофы.
Строковая константа – последовательность символов, заключенных в апострофы.
Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки равна 255 байт.
Переменную строкового типа можно определить через описание типа в разделе определения типов или непосредственно в разделе описания переменных. Строковые данные могут использоваться в программе также в качестве констант.
Недопустимо применение строковых переменных в качестве селектора в операторе CASE.
Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка.
Формат:
type
<имя типа>=string[максимальная длина строки];
var
<идентификатор, ...>:<имя типа>;

Переменную типа string можно задать и без описания типа:

var
<идентификатор, . . .>:string[максимальная длина строки];
Пример.
Address='ул. Переверткина, 25'; {Строковая константа}
type
Flot=string[125];
var
Fstr:Flot; {Описание с заданием типа}
St1:string; {По умолчанию длина строки =255}
St2,St3:string[50];
Nazv:string[280]; {Ошибка, длина Nazv превышает 255}
Строка в языке Турбо Паскаль трактуется как цепочка символов. (Для строки из N символов отводится N+1 байт; N байт - для хранения символов строки, а один байт — для значения текущей длины строки.)
К любому символу в строке можно обратиться, указав его номер. В самом начале строки (под нулевым номером) расположен байт, содержащий значение текущей длины строки.
0
1 2 3 4 … N+1 N

текущая длина строки
Поэтому для определения объема памяти в байтах, требуемой для размещения строки, к значению ее максимальной длины прибавляется 1. Например, для размещения в памяти переменных Fstr, St1, St2 требуется соответственно 126, 51 байт. Рассмотрим структуру размещения строки в памяти на следующем примере. Пусть М — максимальная длина строки, L — текущая длина, А — ячейка памяти.
Тогда:
А — содержит величину текущей длины;
А+1 — первый символ строки;
А+L — последний значащий символ;
А+L+1
… — незанятые ячейки памяти
A+M
2. Строковые выражения
Выражения, в которых операндами служат строковые данные, называются строковыми. Они состоят из строковых констант, переменных, указателей функций и знаков операций. Над строковыми данными допустимы операция сцепления и операции отношения.
Операция сцепления (+) применяется для сцепления нескольких строк в одну результирующую строку. Например:
Выражение Результат
‘А’+’Т’+’‘+'386' 'АТ 386'
'Турбо'+'Паскаль’+’ 7.0' 'ТурбоПаскаль7.0'
Следует учитывать, что в операциях сцепления длина результирующей строки не должна превышать 255.
Операции отношения (=, <>, >, <, >=, <=) проводят сравнение двух строковых операндов и имеют приоритет более низкий, чем операция сцепления, т. е. вначале всегда выполняются все операции сцепления, если они присутствуют, и лишь потом реализуются операции отношения. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией. Результат выполнения операций отношения над строковыми операндами всегда имеет булевский тип и принимает значение True, если выражение истинно, и False, если выражение ложно. Например:
Выражение Результат
'МS-DOS'<'МS-dos' True
'program'>'PROGRAM' True
Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки считаются равными, если они полностью совпадают по длине и содержат одни и те же символы. Например:
Выражение Результат
'Принтер '>'Принтер' True
'Intell'='Intell' True
Для присваивания строковой переменной результата строкового выражения используется оператор присваивания (:=).
Пример.
Str1:='Группа учащихся';
Str2:=Str1+' школы-лицея';
Fio:='Бочаров А.А. ' ;
Если значение переменной после выполнения оператора присваивания превышает по длине максимально допустимую при описании величину, все лишние символы отбрасываются, например:
Описание А Выражение Значение А
А: string[6] А:='ГРУППА1'; 'ГРУППА'
А: string [8] А:='ГРУППА1'; 'ГРУППА 1'
А: string [2] А:='ГРУППА1'; 'ГР'
Допускается смешение в одном выражении операндов строкового и литерного типа. Если при этом литерной переменной присваивается значение строкового типа, длина строки должна быть равна единице, иначе возникает ошибка выполнения.
К отдельным символам строки можно обратиться по номеру (индексу) данного символа в строке. Индекс определяется выражением целочисленного типа, которое записывается в квадратных скобках сразу за идентификатором строковой переменной или константы. Например, выражения Str2[1+2] и Str2[7] обеспечат доступ к третьему('Д') и седьмому('Z') символам последнего значения переменной Str2 в приведенном выше фрагменте.
Запись Str2[0] даёт доступ к нулевому байту, содержащему значение текущей длины строки. Значение нулевого байта не должно превышать 255, но нарушение этого правила не вызывает программного прерывания, так как директива компилятора R по умолчанию находится в пассивном состоянии {$R-}. Для обеспечения строгого контроля за диапазоном допустимых значений индекса следует перевести директиву R в активное состояние {$R+}. В этом случае компилятор активизирует дополнительные команды для проверки правильности диапазона. Обычно активный режим R устанавливается на стадии отладки программ.
Для обработки строковых данных можно использовать специальные процедуры и функции.
3. СТРОКОВЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
DELETE(St,Роz,N) — удаление N символов строки St, начиная с позиции Роz. Если значение Роz>255, возникает программное прерывание.
Значение St Выражение Результат
'абвгде' Delete(Str, 4, 2); 'абве'
'река Волга' Delete(Str, 1, 5); 'Волга'
INSERT(Str1, Str2, Роz) — вставка строки Str1 в строку Str2, начиная с позиции Poz. Например:
var
S1, S2 : string[11] ;

S1 := ' ЕС ';
S2 := 'ЭВМ1841';
Insert(S1,S2,4) ;
В результате выполнения последнего выражения значение строки S2 станет равным 'ЭВМ ЕС 1841'.
Str(IВR,St) — преобразование числового значения величины IВR и помещение результата в строку St. После IBR может записываться формат, аналогичный формату вывода. Если в формате указано недостаточное для вывода количество разрядов, поле вывода расширяется автоматически до нужной длины.
Значение IBR Выражение Результат
1500 Str(IВR:6,St) '__1500'
4.8Е+03 Str(IBR:10,St) , '______4800'
76854 Str(—IВR:3,St) '—76854'
Val (St,IВR,Соde) — преобразует значение St в величину целочисленного или вещественного типа и помещает результат в IBR. Значение St не должно содержать незначащих пробелов в начале и в конце. Соdе — целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Соdе равно нулю, если ошибка обнаружена (например, литерное значение переводится в цифровое), Соdе будет содержать номер позиции первого ошибочного символа, а значение IBR не определено.
Значение Выражение Результат
'1450' Val(St,IBR,Соd) Соdе=0
'14.2Е+02' Val(St,IBR,Соd) Соdе=0
'14.2А+02' Val(St,IBR,Соd) Соde=5
Copy(St,Poz,N) – выделяет из St подстроку длиной N символов, начиная с позиции Роz. Если Poz>Length(St), то результатом будет пробел; если Poz>255, возникает ошибка при выполнении. Функция Length описана ниже. Poz, N – целочисленные выражения.
Значение St Выражение Результат
'АВСDЕFG Сору(St, 2, 3) 'ВСD'
'АВСDЕFG' Сору(St, 4, 10) 'DЕFG'
Соnсаt (Str1,Str2,...,StrN) — выполняет сцепление строк Str1, Str2,..,StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех сцепленных строк не должна превышать 255, например:
Выражение Результат
Соnсаt('АА','ХХ','У') 'ААХХУ'
Соnсаt('Индекс ','394063') 'Индекс 394063'
Length (St) — вычисляет текущую длину в символах строки St. Результат имеет целочисленный тип, например:
Значение St Выражение Результат
'123456789' Length (St) 9
'System 370' Length (St) 10
Роs (Str1, Str2) — обнаруживает первое появление в строке Str2 подстроки Str1. Результат имеет целочисленный тип и равен номеру той позиции, где находится первый символ подстроки Str1. Если в Str2 подстроки Str1 не найдено, результат равен 0.
Значение Str1 Выражение Результат
'abcdef' Роs('dе', Str1) 4
'abcdef' Роs('r', Str1) 0
UрСаsе (СН) — преобразует строчную букву в прописную. Параметр и результат имеют литерный тип. Обрабатывает буквы только латинского алфавита, например:
Значение Выражение Результат
'd' UpСаsе(Сh) 'D'
'w' UрСаsе(Сh) 'W'
5. Опрос:
1. Что такое строка?
2. Каким идентификатором определяются данные строкового типа?
3. Какова максимально возможная длина строки? Как определить текущую длину строки?
4. Какие выражения называются строковыми?
5. Какие операции допустимы над строковыми данными?
6. Каким образом производится сравнение строк?
7. Какие требования предъявляются к записи выражений с операндами строкового и литерного типа?
8. Как можно обратиться к отдельным символам строки?
9. Назначение специальных процедур и функций обработки данных строкового типа. Приведите примеры.
6. Решение задач.
1. Из данной символьной строки выбрать все цифры и сформировать другую строку из этих цифр, сохранив эту последовательность. (IF (s[i]>=’0’) and (s[i]<=’9’ ))
2. Дана строка, заканчивающийся точкой. Подсчитать, сколько в ней слов.
7. Выставляю оценки.
8. Что нового вы узнали сегодня на уроке?
9. Д/з. Выучить конспект. Составить программу для решения задачи: «В заданном тексте заменить каждый символ "а", стоящий на четном месте, на символ "о".
Категория: Информатика | Добавил: DZHA_Astana
Просмотров: 277 | Загрузок: 17 | Комментарии: 1 | Рейтинг: 0.0/0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Воскресенье, 2016-12-11, 4:45 PM
Приветствую Вас Гость

Форма входа

Категории раздела

Психология [165]
Педагогика [291]
Математика [779]
Физика [242]
История [337]
Классному руководителю [519]
Русский язык и литература [697]
Физическая культура [200]
Английский язык [409]
Искусство [181]
Родительский совет [14]
Биология [319]
Информатика [366]
Начальная школа [1874]
Мой Казахстан [238]
Технология [126]
Самопознание [171]
Технология труда [49]
Персональная рубрика учителя технологии труда Шукурова Суюнгали Сагинтаевич. Западно-Казахстанская область,Жанибекский район,СОШ имени Т.Жарокова
НВП и ОБЖ [40]
Профессиональное образование [155]
Дошколенок [464]
География [129]
Школьная библиотека [48]
Казахский язык и литература [544]
Химия [33]

Социальные закладк

Поиск

Друзья сайта

Академия сказочных наук

  • Театр.kz

  • Статистика

    Рейтинг@Mail.ru