Конспект алгоритмы анализа символьных строк

Обновлено: 09.07.2024

В представленном архиве находятся конспект урока "Обработка строковых переменных" и презентация кэтому уроку. Цельурока - научить работать со строковыми переменными с помощью процедур и функций обработки строк в Паскале (среда ABC). Презентация содержит теоретический материал, примеры и упражнения для усвоения этой темы. Эти материалы могут быть использованы на уроке в любом классе (старше 8) при изучении темы "Алгоритмизация и программирование"

ВложениеРазмер
Урок "Обработка строковых переменных" 651.44 КБ

Предварительный просмотр:

Обработка строковых переменных

План открытого урока в 11А классе

Учитель – Богачёва Г.В.

Научить работать со строковыми переменными с помощью процедур и функций обработки строк в Паскале (среда ABC)

  • объяснить процедуры и функции обработки строк;
  • закрепить представление о строке как о массиве символов;
  • закрепить навыки чтения готовых программ;
  • научить применять полученные знания на практике.
  • формирование самостоятельности и ответственности при изучении нового материала;
  • повышение мотивации учащихся к изучению предмета;
  • создать условия для реальной самооценки учащихся;
  • формирование навыков самоорганизации и инициативы.
  • развитие познавательного интереса и внимания учащихся;
  • развитие навыков индивидуальной практической деятельности;
  • развитие навыков аналитического мышления.

Используемые образовательные технологии:

  • информационные технологии;
  • ориентация на познавательное развитие личности;
  • здоровьесберегающие технологии.
  • фронтальный опрос (при закреплении знаний)
  • объяснительно – иллюстративный (презентация)
  • практический
  1. Организационный момент
  2. Актуализация знаний
  3. Теоретический материал урока (объяснение новой темы)
  4. Практическая работа.
  5. Подведение итогов.
  1. Организационный момент.
  2. Актуализация знаний: тип переменных, строка, длина строки.
  3. Постановка задачи
  1. Объяснение нового материала – функции и процедуры обработки строк.

Не прибегая к помощи компьютера, написать полученное слово:

t = Copy (t,1,3) + Copy (t,5,1)

t = Copy (t,1,1) + Copy (t,6,4)

t = Copy (t,4,2) + Copy (t,7,2)

По теме: методические разработки, презентации и конспекты

Задания для самостоятельной работы.Тема: СТРОКОВОЙ ТИП ДАННЫХ

Задания для самостоятельной работы.Тема: СТРОКОВОЙ ТИП ДАННЫХ.

Решение задач на обработку текстовых переменных

Презентация, в которой предложен разбор некоторых типичных задач на обработку текстовой переменной.


9 Pascal строковые данные

Работа со строковыми данными.

Символьный и строковый типы данных в Паскале

Презентация предназначена для самостоятельного изучения, содержит массу примеров решения задач, задания для тренировки.


Символьные и строковые переменные

Презентация по информатике и ИКТ для старшей школы.


Цель практической работы: научиться применять операции сравнения, конкатенации, удаления, вставки над строковыми переменными.


Открытый урок по учебной практике. Тема 5.5 " Обработка рабочего халата". Тема урока: Внешний вид. Детали кроя. Название срезов. Обработка мелких деталей. Обработка полочек, спинки. Обработка плечевых срезов.
  • Для учеников 1-11 классов и дошкольников
  • Бесплатные сертификаты учителям и участникам

Дата: 24.12.2015 г Дата: 26.12.2015г

Цели урока:

Образовательные: ввести понятия символьной информации, познакомить учащихся с функциями и процедурами, предназначенными для работы с символьными величинами, сформировать умение решать задачи с использованием символьной информации.

Развивающие: алгоритмическое мышление, познавательную деятельность учащихся; интерес к программированию; внимательность и самостоятельность при решении задач.

Воспитательные: воспитывать интерес к предмету, аккуратность, внимательность, дисциплинированность.

Тип урока: изучение и закрепление знаний.

Методы обучения: словесный, наглядный, практический.

Формы обучения: коллективная, индивидуальная.

ТСО: ПК, интерактивная доска, мультимедиа проектор.

ОС Microsoft Windows XP Professional.

Среда программирования Turbo Pascal.

План урока :

Постановка темы и целей урока

Изучение нового материала

Первичная проверка усвоения знаний и закрепление знаний

Подведение итогов урока

Постановка темы и целей урока

Изучение нового материала

Для этого необходимо изучить новый материал.

Будем полагать, что текст — это произвольная последовательность символов некоторого алфавита. Алфавитом может служить любое множество символов. Символьный тип данных служит для представления символа, который есть на клавиатуре. Всем имеющимся на клавиатуре символам ставится в соответствие целое число — код символа. Всего кодируется 256 символов. В таблице кодов среди всех символов можно выделить следующие четыре группы:

цифры от 0 (код 48) до 9 (код 57);

Символы в пределах каждой из групп следуют друг за другом в алфавитном порядке и их коды изменяются при этом на 1. Каждый символ строковой величины занимает 1 байт памяти.

Данные символьного типа могут быть представлены двумя способами:

Строкой символов, или символьной (строковой, текстовой) константой, будем называть последовательность символов, заключенную в кавычки. Среди строк пустая строка играет ту же роль, что ноль среди чисел. Максимальная длина текстовой строки — 255 символов.

В Паскале существует тип данных, предназначенный для обработки слов (цепочки символов). Такой тип данных называется строковым (тип string). Строки выводятся на экран посредством стандартной процедуры write

Объявление данных типа string:

1.если данные являются константами:

1.если данные являются переменными:

В квадратных скобках указывается максимальная длина строки. Если длина строки не указана, то она считается равной 255 символам — максимально возможной длине.

Операции над строками.

Для строк определена операция объединения (сцепления), которая обозначается знаком + и объединяет несколько строк в одну.

B:=’ столица Сибири’

Переменная С иметь значение ‘Новосибирск- столица Сибири!’

Операции отношения (сравнения двух строк) =, , >=, .В результате сравнения двух строк получается логическое значение (true или false). Сравнение происходит слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символов (кодировки).

'строка'<>'строки'(верно, т.к. не совпадают последние символы),

'год'>'век'(отношение верно, т.к. буква 'г' в алфавите стоит после буквы 'в', а, следовательно.

‘ кот ’=’ кот’ (отношение истинно, т.к совпадают все символы)

Стандартные функции и процедуры.

Для работы с типом string определены следующие встроенные процедуры и функции:

Стандартные функции работы со строками

номер символа, начиная с которого фрагмент S1 входит в строку S, или 0, если S1 не входит в S

копирует m символов из строки S, начиная с n

прописной латинский символ

Стандартные процедуры работы со строками

Где находится результат

удаляет m символов из строки S, начиная с n

вставляет фрагмент S1 в строку S, начиная с символа n, отодвигая символы вправо

преобразует число а в строку S

a: real, integer; S: string;

преобразует строку S, если возможно, в число а с флагом code

a: real, integer; code: integer;

в а и code

Первичная проверка усвоения знаний и закрепление знаний

Учитель решает задачи на интерактивной доске, учащиеся решают в тетрадях.. Идём обсуждение правильного решения задач.

1.Определить длину строки "Информатики".

2.Получить из слова " Информатики " слово "форма".

3.Чему равна строка M:= copy (S,1,4)

4.Получить из слов "Язык", "Turbo", "Pascal" фразу "Язык Turbo Pascal".

5.Какова позиция буквы "и" в слове "Книга".

6. Преобразовать "a" в "A".

7.Чему станет равной строка M1 после выполнения операторов?

1.Подведение итогов урока.

1.Что нового вы узнали?

2.Что на ваш взгляд вам удалось освоить лучше, а что нет?

3.Над чем вам необходимо поработать?

Домашнее задание.

Вопросы для самоконтроля:

1.Что является результатом каждой функции, предназначенной для выполнения операций над строками?


На этом уроке будет рассмотрен ещё один структурный тип данных – символьные строки. Ученики вспомнят о том, как хранится текст в оперативной памяти компьютера, узнают о сходствах и отличиях между списками и символьными строками, а также познакомятся с основными операциями обработки строк.


В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобретя в каталоге.

Получите невероятные возможности




Конспект урока "Символьные строки"

· Определение символьной строки.

· Методы обработки строк.

Символьной строкой называется набор нумерованных символов, которые хранятся в оперативной памяти компьютера под одним именем и располагаются последовательно друг за другом. Индексы символов строки, как и индексы элементов списка, начинаются с нуля. Многие из вас наверняка обратили внимание на то, что это определение строки похоже на определение списка. Во многих языках программирования действительно символьные строки можно определить, как списки символов, для обработки которых определён ряд дополнительных инструментов, но в языке Python это не совсем так. Главное отличие символьной строки от списка состоит в том, что символьная строка – это неизменяемая величина. На практике это означает, что к символу строки можно обратиться, как и к элементу списка, указав его индекс, однако в отличие от элемента списка, символ строки таким образом изменять нельзя.

Однако над строками можно выполнять целый ряд других действий. Рассмотрим операции, реализованные для обработки символьных строк. Первая из них – сцепление строк. Она записывается знаком арифметического сложения между сцепляемыми строками. Результат этой операции – новая строка, состоящая из исходных.


Выделить часть строки можно, как и часть списка. Подробнее рассмотрим, как это работает. Выделение части строки происходит по номерам её срезов. Номер среза строки соответствует индексу символа строки, перед которым он располагается, то есть перед нулевым символом следует нулевой срез, а перед i-тым символом, соответственно, i-тый.


Для того, чтобы выделить часть строки, после названия строки в квадратных скобках, через двоеточие, нужно указать 2 числа – номера срезов строки, между которыми располагается часть строки, которую нужно выделить. При этом если номер первого среза – 0, то его можно не указывать, точно так же можно не указывать номер второго среза, если он равен длине строки. Если в качестве номеров срезов указываются отрицательные числа, то к ним автоматически прибавляется длина строки.

s[-5 : -1] == s[len(s) – 5 : len(s) – 1]


Часто бывает полезен метод find. Он возвращает индекс элемента, с которого начинается первое вхождение заданной подстроки в строку, или же -1, если заданной подстроки в строке не обнаружено. Для того, чтобы найти последнее вхождение подстроки в строку, можно использовать метод rfind.


Данные любого из основных типов можно преобразовать в символьную строку, для этого используется функция str. Для того, чтобы преобразовать строку в число, можно воспользоваться одной из уже известных нам функций преобразования – int или float. Однако если использовать эту функцию для строки, содержимое которой не является числом, то исполнение программы будет завершено ошибкой несоответствия типов. Поэтому прежде, чем преобразовывать строку в число или другой тип данных, нужно проверить её содержимое. Напишем функцию проверки того, является ли содержимое символьной строки числом.

В языках Си/Си++ нет специально определенного строкового типа данных. Символьные строки организу­ются как массивы символов, последним из которых является сим­вол \0, внутренний код которого равен нулю. На длину символьного массива в Си нет ограничения.

Строка описывается как символьный массив. Например:

Одновременно с описанием строка может инициализировать­ся. Возможны два способа инициализации строки — с помощью строковой константы и в виде списка символов:

По результату первого описания под строку s будет выделено 10 байт памяти, из них первые 7 получат значения при инициализа­ции (седьмой — нулевой символ). Второе описание сформирует стро­ку из семи символов. Третье описание по результату равнозначно первому. Конечно, можно определить символьный массив и так:

т. е. без нулевого символа в конце. Но это приведет к проблемам с обработкой такой строки, так как будет отсутствовать ориентир на его окончание.

Отдельные символы строки идентифицируются индексирован­ными именами. Например, в описанной выше строке s [0 ] =' с', S[5] = ‘a’.

Обработка строк обычно связана с перебором всех символов от начала до конца. Признаком конца такого перебора является об­наружение нулевого символа. В следующей программе произво­дятся последовательная замена всех символов строки на звездоч­ки и подсчет длины строки.

//Замена символов на звездочки

printf("\n, Длина строки 4">

В результате выполнения программы на экране получим:

В этой программе цикл повторяет свое выполнение, пока S [i] не получит значение нулевого символа.

Для вывода строки на экран в стандартной библиотеке stdi o . h имеется функция puts (). Аргументом этой функции указывается имя строки. В этой же библиотеке есть функция ввода строки с клавиатуры с именем gets (). В качестве аргумента указывается имя строки, в которую производится ввод.

Среди стандартных библиотек Си /Си++ существует библиоте­ка функций для обработки строк. Ее заголовочный файл — string.h. В следующем примере используется функция определе­ния длины строки из этой библиотеки. Имя функции — strlen (). В качестве аргумента указывается имя строки.

printf ("\nПеревернутая строка:");

Идея алгоритма состоит в перестановке символов, располо­женных на одинаковом расстоянии от начала и конца строки. Перебор элементов строки доходит до ее середины. Составляя по­добные программы, не надо забывать, что индекс первого симво­ла строки — 0, а индекс последнего на единицу меньше длины строки.

Строка как параметр функции . Использование строк в качестве параметра функции аналогично рассмотренному выше использо­ванию массивов других типов. Необходимо помнить, что имя мас­сива есть указатель на его начало. Однако для строк имеется одно существенное отличие от массивов других типов: имя строки явля­ется указателем-переменной, и, следовательно, его значение мо­жет подвергаться изменению. Стандарт Си рекомендует в заголов­ках функций, работающих со строками, явно использовать обо­значение символьного указателя.

Пример 1. Запишем определение функции вычисления длины строки (аналог стандартной функции strlen ()).

int length(char *s)

Здесь функция использует явный механизм работы с указате­лем. Изменение значения указателя s допустимо благодаря тому, что он является переменной. Еще раз напомним, что для число­вых массивов этого делать нельзя! Если соблюдать данное ограни­чение и для строк, то условное выражение в операторе for сле­довало бы писать так: * (s + k) 1 = ' \0 ' или s[k]! = ‘ \0 ’.

Обдумайте это обстоятельство!

Пример 2. Оформим программу обращения строки в виде фун­кции и напишем основную программу, использующую ее. Алго­ритм обращения реализуем иначе, чем в рассмотренной выше про­грамме. Для определения длины строки не будем пользоваться стан­дартной функцией. Для вывода строки на экран применим функцию printf() со спецификатором %s (работает аналогично функции puts ()).

Нажмите, чтобы узнать подробности

С помощью компьютера можно решать весьма разнообразные задачи обработки текстов: от составления платежных ведомостей до автоматической верстки газет. Для того, чтобы компьютер мог обрабатывать тексты, он должна уметь оперировать не только с числами, но и со словами.

Познакомимся с основными приемами обработки текста на компьютере.

Будем полагать, что текст - это произвольная последовательность символов некоторого алфавита. Алфавитом может служить любое множество символов, например (0, 1,2, . ), (А, Б, В. ), (А, В, С. ).

Строкой символов, или символьной (строковой, текстовой) константой, будем называть последовательность символов, заключенных в апострофах.

Строка символов может состоять из одного или нескольких символов, а также не содержать ни одного символа (пустая строка, или строка нулевой длины). Максимальная длина текстовой строки 255 символов.

Мы знаем, что для обработки на компьютере данных того или иного типа используются переменные. Вспомним, что тип переменной определяется типом данных, которые она представляет.

В Turbo Pascal 7.0 для работы с символами используются два типа переменных:

символьный тип данных;

Описание: идентификатор char, ( var x: char).

Диапазон значений: значением переменной этого типа может быть любой символ – это буквы, цифры, знаки препинания и специальные символы. Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255.

В Turbo Pascal 7.0 значения для переменных типа char задаются в апострофах: sh := '*'; а := '3'; summa :='G'.

строковый тип данных.

Как правило, одно целое число или один символ занимают в памяти ЭВМ два байта. В то же время для изображения символа достаточно одного байта. С целью экономии памяти машины при использовании символьных данных в языке Паскаль введено понятие строки. Строкой называется последовательность символов определенной длины. Элементы строки хранятся по два в двух байтах памяти ЭВМ.

Переменные типа string могут быть объявлены следующим образом:

var s1: string[30]; s2: string.

Число 30 означает максимально возможное количество символов строки s1II. Стандартные функции для работы с символьными величинами

1. Операция сложения символьных величин.

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

Описываем строковые переменные.

var s1, s2, s3: string;

Присваиваемое значение строки заключается в апострофы. Присвоим первым двум следующие значения, а третья будет равна их склеиванию:

Строка s3 имеет значение 'Тише воды, ниже травы'.

2. Длина строки

Под длиной строки понимается количество введенных символов, но она не может превышать максимально возможной длины (в описательной части). Это значение можно определить при помощи функции, результат которой целое число, равное количеству символов.

s1:='12345';
s2:= 'Семеро одного не ждут’;
k1:=Length(s1);
k2:=Length(s2).

В результате значения целых переменных будут равны: kl=5, k2=21.

3. Копирование

Функция copy(str,n,m) в Turbo Pascal 7.0 – копируют т символов строки str, начиная с n-го символа, при этом исходная строка не меняется. Можно результат этой функции присваивать другой строке или сразу выводить его на экран.

s1:=' паровоз ';
s2:='123456';
s3:=copy(s1, 5, 3);
writeln(s3);
writeln(copy(s2, 3, 2));

Значения переменной s1=’воз’. А на экране будут выведены следующие строки: воз и 34.

В Turbo Pascal 7.0 для этого используется процедура Delete(str, n,m), которая вырезает из строки str mсимволов, начиная с n-го. таким образом сама строка изменяется.

Дан фрагмент программы:

s:='123456';
delete(s, 3, 2);
writeln(s);

После выполнения этих операторов из строки будут удалены два символа, начиная с третьего, то есть строка будет такой: s = '1256'.

5. Замена (Вставка)

В Turbo Pascal 7.0 это можно сделать, применяя процедуру I nsert(s1,s2,n) – вставка строки s1 в строку s2, начиная с п -го символа, при этом первая строка остается такой же, как и была, а вторая получает новое значение.

В результате выполнения данной процедуры строка будет такой s2='123456'.

6. Числа и строки

Надо заметить, что число 25 и строка 25 – это не одно и то же. Для работы с числами и строками в Turbo Pascal 7.0 применяются две процедуры.

Str(n,s1) – переводит числовое значение n в строковое и присваивает результат строке s1, причем можно переводить как целые числа, так и вещественные.

n:=12;
str(n,s1);
- после выполнения s1 ='12';

Существует обратная операция, переводящая строковое значение в числовое.

Функция val(s, n, k) – переводит строковое значение в числовое, если данная строка действительно является записью числа (целого или вещественного), то значение k=0, а n – это число, иначе k будет равно номеру символа, в котором встречается первое нарушение записи числа n.

val(‘1234',n,k) п=1234 , k=0;

7. Функции преобразования типов

Иногда в программах возникает необходимость по коду определить символ и, наоборот, по символу определить его код. Для этого используют функцию: CHR(x).

Эта функция возвращает символ, соответствующий ASCII-коду числа x.

for i = 0 to 255 do
writeln( i,' ', chr(i));

Для определения кода по символу используют функцию ORD .

Закрепление изученного – беседа с учащимися, решение задачу: В три символьные переменные F, I, O ввести свои фамилию, имя, отчество. Сформировать из этих данных строку S, содержащую ваши фамилию и инициалы.

Подведение итогов и задание на дом, решить задачу:

Поменять порядок символов в строке на обратный. Строка вводится произвольно с клавиатуры

Работа с символьной информацией

Работа с символьной информацией

Вычислительные машины имеют дело не только с числами. Едва ли не больше времени они бывают заняты обработкой текста. Типы данных, работающие с символьной информацией Символьный тип Строковый тип

Вычислительные машины имеют дело не только с числами.

Едва ли не больше времени они бывают заняты обработкой текста.

Типы данных, работающие с символьной информацией

Символьный тип - буквы, цифры, знаки препинания и специальные символы Объявление символов как переменных var y:char; или констант const x=

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

или констант

Читайте также: