Описание: данная работа будет полезна учителям информатики при подготовке к уроку, а также учащимся 9-11 класса при повторении строк в Паскале.
Конспект урока «Строковый тип данных. Решение задач»
Цель:
показать основные приемы работы с символами и строками;
воспитать мотивы учения, положительного отношения к получению знаний, умений и навыков
развить логическое и алгоритмическое мышление у учащихся;
развить умение и навыки составления и отладки программ на языке Паскаль;
Ход урока.
Что такое символ?
Символ — это буква, цифра или какой-либо знак.
Что такое строка?
Строка – упорядоченная последовательность символов, заключенная в апострофы.
Вспомним, что К строке можно обратиться посимвольно.
i-й символ строки s записывается как s.
Например, если s = ‘Мир’,
то s[1] = это ‘М’,
s[2] = это ‘и’,
s[3] = это ‘р’
Над строковыми данными определена операция слияния, обозначаемая знаком +.
Обработка строк | Информатика Паскаль #19 | Инфоурок
Например:
a := ‘Pascal’;
b := ‘ABC’ ;
c := a + b;
В этом примере переменная c приобретет значение ‘PascalABC’.
Что определят length(s)?
Текущую длину строки s
Какие еще функции и процедуры мы используем при работе со строковым типом данным в Паскале?
copy(s,p,k);
возвращает подстроку, выделенную из строки s, длиной k символов, начиная с символа под номером p.
pos(s1,s);
возвращает номер первой позиции подстроки s1 в исходной строке s. Если подстроки нет, то выдает 0.
insert(s1,s,p);
вставляет строку s1 в строку s, начиная с символа под номером p строки s.
delete(s,p,k);
удаляет из строки s подстроку длиной k символов, начиная с символа под номером p.
Перейдем к решению задач.
Решения задач:
Задача №1: Определить длину строки «Урок информатики».
Ответ: 16
Program a1;
var
s:string;
l:integer;
begin
writeln(‘Введите строку: ‘);
read(s);
l:=length(s);
writeln(l);
end.
Задача №2: Преобразовать число 105 в строку, а «67» в число 67.
Program a2;
var
s:string;
x:integer;
begin
str(105,s);
writeln(s);
val(’67’,x);
writeln(x);
end.
Задача №3: Какова позиция буквы «о» в слове «Слон».
Ответ: t = 3
program a3;
var
s:string; t:integer;
begin
t:=pos(‘о’, ‘Слон’);
writeln(t);
end.
Источник: ped-kopilka.ru
Примеры решения задач по обработке символьных данных
Пример 2.11. Ввести строку и подсчитать количество слов в ней. Слова разделяются пробелами.
Обозначим: St – исходная строка; L – длина исходной строки; K – количество слов в строке.
Для подсчета количества слов необходимо организовать цикл. Так как после слова может стоять не один пробел, а несколько, то для определения слова используется условие (St[I]<>’ ‘) AND (St[I+1]=’ ‘).
Программирование на языке Pascal. Урок 9. Строки.
Для того чтобы при подсчете количества слов учесть последнее слово, в конец введенной строки добавляется пробел: St:=St + ‘ ‘ .
If (St[I]<>’ ‘) AND (St[I+1]=’ ‘) Then K:=K+1;
Writeln(‘Количество слов = ‘, K);
Пример 2.12. Ввести текст длиной до 255 символов в виде строки. Если в строке четное число символов, удалить из нее все последующие вхождения первого символа, в противном случае — удалить символ, расположенный в середине строки. Напечатать новый текст.
Обозначим: St — исходная строка; St1- первый символ строки St; L – длина исходной строки St.
Ход выполнения алгоритма зависит от длины строки.
В первом случае необходимо организовать цикл с условием, так как после удаления символов длина строки будет меняться. В этом цикле все символы строки сравниваются с первым символом строки (St[I] = St1) и при равенстве удаляются из строки St, причем в случае удаления символа параметр цикла I не меняется, так как символы, соответствующей первому, могут следовать подряд друг за другом.
Во втором случае необходимо из строки St удалить символ с номером (L div 2) +1.
If St[I]=St1 Then Delete(St,I,1)
Delete(St,(L Div 2)+1,1);
Пример 2.13. Ввести текст длиной до 255 символов. В тексте все знаки плюс, непосредственно за которыми следует цифра, заменить пробелом. Напечатать новый текст.
Необходимо организовать цикл просмотра всех пар соседних символов. Если в очередной паре символ St[I] = ‘+’, а второй символ — цифра (т.е.’0’<=St[I+1]<=’9’), то из строки St удаляется I-й символ и вставляется символ «пробел».
For I:=1 To Length(St) Do
Рассмотрим другой вариант программы этой задачи, в котором используется тип данных множество.
For I:=1 To Length(St) Do
If (St[I]=’+’)And(St[I+1] In M) Then
Пример 2.14. Ввести предложение длиной до 255 символов в виде строки, а затем вывести на экран сообщение о том, сколько слов в этом предложении содержат ровно три буквы «и». В качестве разделителя слов в предложении используются символы пробела.
Возможный вариант программы.
I, K3i, Ki : Integer;
For I:=1 To Length(St) Do
If St[I] = ‘и’ Then Ki:=Ki+1;
If K3i = 0 Then Writeln(‘Слов с тремя “и” нет ‘)
Else Writeln(‘В строке содержится ‘,K3i,’ слов с тремя буквами “и” ’);
Пример 2.15. Ввести текст длиной до 254 символов в виде строки, а затем вывести его на экран, удалив из него лишние пробелы, т.е. из нескольких подряд идущих пробелов оставить только один. Выдать сообщение о количестве удаленных пробелов.
Возможный вариант программы.
If (St[I] = ‘ ‘) And (St[I+1] = ‘ ‘) Then Delete(St,I,1)
Writeln(‘Количество удаленных пробелов =’,L-Length(St));
Пример 2.16. Во введенном тексте заменить заданную подстроку символов на другую заданную подстроку (длины двух заданных подстрок могут не совпадать). Подсчитать количество произведенных замен.
Обозначения: St – заданная строка; NSt – новая строка; St1 – удаляемая подстрока, St2 – вставляемая подстрока; L1 – длина удаляемой подстроки; N – номер позиции, с которой начинается удаляемая подстрока St1 в строке St; К – количество замен.
Необходимо организовать цикл, в котором формировалась бы новая строка и подсчитывалось количество произведенных вставок. Так как заранее неизвестно количество вставок, этот цикл должен быть итерационным (например цикл с предусловием While). В качестве условия окончания цикла предлагается использовать значение функции Pos, которое равно нулю, если подстроки St1 нет в строке St.
Цикл WHILE требует подготовки, т. е. номер позиции первого вхождения (N:=Pos(St1,St)) подстроки St1 в строку St должен быть введен до цикла. Номера позиций следующих вхождений определяются в цикле.
На каждом шаге цикла к строке NSt добавляется подстрока, состоящая из первых (N-1) символов строки St и символов вставляемой подстроки St2, и из строки St удаляются все символы, предшествующие подстроке St1, вместе с символами этой подстроки. Здесь N – номер позиции, с которой начинается подстрока St1 в строке St.
Возможный вариант программы.
St, St1, St2, NSt : String;
Writeln(‘Введите удаляемую строку’);
Writeln(‘Введите вставляемую строку’);
Источник: studfile.net
Презентация на тему Строковый тип данный — практикум решения задач в Паскале
![]()
Слайд 2Комратский лицей им.Н.Третьякова
урок
01.11.2016
Информатика
10класс ( гуманитарный профиль)
Практикум решения задач «Строковый тип
данных»
учитель : Быстрова В.Л

Слайд 3Компьютерная программа выполняет ваши приказы,
а не ваши желания.
Закон Грида
![]()
Слайд 4Тема урока:
Практикум решения задач по теме « Строковый
тип данных »
Урок практического применения знаний на компьютере

Слайд 5Цели урока:
1.Перечислить виды операций над строковыми величинами и дать им
соответствующее определение
2. Комментировать программы со строковыми величинами;
3. Применять строковые величины
при составлении программ.
![]()
Слайд 6 1. § 1.2 стр.14-17
задача № .3,4,6
![]()
Слайд 7План урока
2.Визитка «Строковый тип данных»
1. Домашнее задание.
3. Мини-тест. Проверка.
4.
Алгоритм решения задач со строковым типом данных.
6. Практикум решения задач
7.
8. Оценивание результатов
5. Историческая справка

Слайд 82. Визитка «Строковый тип данных»
10 гуманитарный
Телефон : 0-298-2-69-92
OCQ: 150
Скайп
: кабинет №15
Е –маил : лицей им.Н.Третьякова
Дополнительная информация : самый умный класс

Слайд 92. Визитка «Строковый тип данных»
1.Строковый тип данных служит для проведения
2.
Ключевое слово строкового типа данных
3. Максимальная длина строки —
4. Текущую
длину любой строковой переменной можно узнать
с помощью стандартной функции
5. Переменная типа string описывается через
6. Для строки применима процедура ввода —
7. Для строки применима процедура вывода –
8. При присваивании строке или символу какого-либо значения оно указывается в
операций с текстом, состоящим из различных символов.
![]()
Слайд 103. Мини -тест

Слайд 11Встроенные процедуры и функции для обработки строковых данных.
1. Удаление N
символов строки ААА, начиная с позиции ТТ.
Б) Delete (ААА, ТТ,

Слайд 12Встроенные процедуры и функции для обработки строковых данных.
2. Вставка строки
ВВВ в строку ТТ, начиная с позиции N.
А) Insert
Б) Insert (TT,BBB,N)
![]()
Слайд 13Встроенные процедуры и функции для обработки строковых данных.
3. Копирование подстроки
длиной N, начиная с позиции TT, из строки ССС.
![]()
Слайд 14Встроенные процедуры и функции для обработки строковых данных.
4. Выполняет сцепление
(склеивание) строк в том порядке, в каком указаны в списке
параметров.
А) Concat (A3,A2,A1)
Б) Concat (A1,A2,A3 . A(N) )

Слайд 15Встроенные процедуры и функции для обработки строковых данных.
5. Обнаруживает первое
появление
подстроки AАA в строке BBB.
А) Pos (AAA, BBB)
Б) Pos
![]()
Слайд 16Встроенные процедуры и функции для обработки строковых данных.
6. Преобразует строчную
букву в прописную
А) UpCase (Ch)
Б) UnCas (Hc)
3. Мини -тест
![]()
Слайд 17Встроенные процедуры и функции для обработки строковых данных.
7. Преобразует число
в строку.
А) Str (Number, Stroka)
Б) Str( Stroka, Number)
3. Мини -тест
![]()
Слайд 18Встроенные процедуры и функции для обработки строковых данных.
8. Преобразует строку
в число
и выдает код правильности преобразования.
А) Val (Code,Stroka,Number)
Б) Val
(Stroka, Number, Code)
![]()
Слайд 193. Проверим.

Слайд 20Встроенные процедуры и функции для обработки строковых данных.
1. Удаление N
символов строки ААА, начиная с позиции ТТ.
Б) Delete (ААА, ТТ,

Слайд 21Встроенные процедуры и функции для обработки строковых данных.
2. Вставка строки
ВВВ в строку ТТ, начиная с позиции N.
А) Insert
Б) Insert (TT,BBB,N)
![]()
Слайд 22Встроенные процедуры и функции для обработки строковых данных.
3. Копирование подстроки
длиной N, начиная с позиции TT, из строки ССС.
![]()
Слайд 23Встроенные процедуры и функции для обработки строковых данных.
4. Выполняет сцепление
(склеивание) строк в том порядке, в каком указаны в списке
параметров.
А) Concat (A3,A2,A1)
Б) Concat (A1,A2,A3 . A(N) )
![]()
Слайд 24Встроенные процедуры и функции для обработки строковых данных.
5. Обнаруживает первое
появление
подстроки AАA в строке BBB.
А) Pos (AAA, BBB)
Б) Pos

Слайд 25Встроенные процедуры и функции для обработки строковых данных.
6. Преобразует строчную
букву в прописную
А) UpCase (Ch)
Б) UnCas (Hc)
3. Мини -тест

Слайд 26Встроенные процедуры и функции для обработки строковых данных.
7. Преобразует число
в строку.
А) Str (Number, Stroka)
Б) Str( Stroka, Number)
3. Мини -тест

Слайд 27Встроенные процедуры и функции для обработки строковых данных.
8. Преобразует строку
в число
и выдает код правильности преобразования.
А) Val (Code,Stroka,Number)
Б) Val
(Stroka, Number, Code)
![]()
Слайд 281. Описываем строку.
2. Вводим строку.
3. Выполняем обработку строки.
4. Выводим строку
на экран.
4. Алгоритм поэтапного решения задач со строковым типом данных:
![]()
Слайд 29Историческая справка
справка
![]()
Слайд 30Историческая справка
справка
В 1950-х и 1960-х годах не было единого стандарта
относительно количества битов в байте. В разных компьютерных системах байт
содержал от 6 до 9 битов. Лишь с начала 1970-х годов в большинстве архитектур стали использовать байт размером 8 битов, и постепенно такое соотношение стало стандартным.
Для устранения двусмысленности в компьютерной литературе иногда для точного обозначения последовательности 8 битов вместо термина «байт» используют термин «октет».
![]()
Слайд 31Историческая справка
справка
В 1912 году, задолго до появления прообразов современных компьютеров,
испанский инженер Леонардо Торрес-и-Кеведо сконструировал электромеханический автомат «El Ajedrecista», который
считается первой в истории компьютерной игрой.
Устройство представляло собой шахматную доску с передвигаемыми машиной с помощью электромагнитов королём и ладьёй, а также королём другого цвета, которого перемещал человек. Автомат, пусть и не за минимальное количество ходов, гарантированно завершал этот шахматный эндшпиль матом оппоненту.
Что мог делать автомат 1912 года, считающийся первой в мире компьютерной игрой?

Слайд 32Историческая справка
справка
В середине 19 века она составила план операций
для прообраза современной ЭВМ — аналитической машины Чарльза Беббиджа, с
помощью которых можно было решить уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости.
Кто считается первым
в мире программистом?
Первым в мире программистом была женщина — англичанка Ада Лавлэйс
![]()
Слайд 33Король Хуан Карлос и королева София
осматривают шахматного робота
![]()
Слайд 345. Практикум решения задач.

Слайд 35
Написать программу, которая из слова «самолет» получит «лето» (copy).
PROGRAM DELO;
VAR A,B,C,D : STRING;
BEGIN
WRITELN;WRITELN;
A:=’CAMOLET’;
B:=COPY(A,5,3);
C:=COPY(A,4,1);
D:=B+C;
WRITELN(‘ POLUCHILI ‘,D)
END.
PROGRAM DELO;
VAR A,B,C,D: STRING;
BEGIN
WRITELN;WRITELN;
A:=’CAMOLET’;
B:= ;
C:= ;
D:=B+C;
WRITELN(‘ POLUCHILI ‘,D)
END.
5. Практикум решения задач.

Слайд 36
Написать программу, которая из слова «республика» получит «блик» (delete).
PROGRAM DELO;
VAR A:STRING;
BEGIN
WRITELN;WRITELN;
A:=’PECPUBLIKA’;
;
;
WRITELN(‘ CLOBO ‘, A)
END.
PROGRAM DELO;
VAR A:STRING;
BEGIN
WRITELN;WRITELN;
A:=’PECPUBLIKA’;
DELETE(A,10,1);
DELETE(A,1,5);
WRITELN(‘ CLOBO ‘,A)
END.
5. Практикум решения задач.
![]()
Слайд 37
Написать программу, которая из слова «ресан» получит «ресторан» (insert).
PROGRAM
DELO;
VAR A,B:STRING;
BEGIN
WRITELN;WRITELN;
A:=‘RESAN’;
B:=’TOP’;
;
WRITELN(‘ CLOBO ‘,A)
END.
PROGRAM DELO;
VAR A,B:STRING;
BEGIN
WRITELN;WRITELN;
A:=’RESAN’;
B:=’TOP’;
INSERT(B,A,4);
WRITELN(‘ CLOBO ‘,A)
END.
5. Практикум решения задач.
![]()
Слайд 38PROGRAM DELO;
VAR A,B,C,D,E:STRING;
X:INTEGER;
BEGIN
WRITELN;WRITELN;
A:=’PROTOKOL’;
D:=COPY(A,4,3);
B:=’PECPUBLIKA’;
DELETE(B,1,3);
C:=’KDIL’;
E:=’POKO’;
INSERT(E,C,2);
X:=LENGTH(C);
WRITELN(‘ POLUCHILI ‘,D);
WRITELN(‘ POLUCHILI ‘,B);
WRITELN(‘ POLUCHILI ‘,C);
WRITELN(‘ KOL-BO BUKB C CLOBE ‘,C,’= ‘,X)
END.
Дана программа. Точно и однозначно сформулировать условие задачи и что получится при запуске программы на экране.
5. Практикум решения задач.
![]()
Слайд 39рефлексия
Я узнал …
Я понял ,что …
Теперь я могу …
Я
попробую …
Мне понравилось …
У меня возникли трудности в …
Я
Лучше всего у меня на уроке …
Своей работой на уроке я …
Самое интересное на уроке …
Источник: theslide.ru