Программирование. Pascal ABC. Строки


Чтобы посмотреть презентацию с оформлением и слайдами, скачайте ее файл и откройте в PowerPoint на своем компьютере.
Текстовое содержимое слайдов:

СтрокиСимвольный тип Общие понятияСтрока – последовательность символов.Мама мыла раму9 мая – день Победыe39a685d250846c59Перед использованием строки её нужно объявить:var s:string;По умолчанию в строке может содержаться до 255 символовОбъявлениеstring является служебным словомОбъявлениеstring является служебным словомОбъявлениеstring является служебным словомЭто строки Общие понятияТак же как и в массиве, в строке каждый символ пронумерован, индексация символов начинается с единицы.1 2 3 4 5 6 7 8 9 10 11 12H e l l o , w o r l dДля обращения к отдельному символу так же используются квадратные скобки:s[8]:='w';Таким образом, строка похожа на массив символов ФормированиеВ отличие от формирования массива циклом, всей строке сразу можно присвоить некоторое значение:s:='Hello, world';При этом весь набор символов заключается в одиночные кавычки.Строку можно считать и с клавиатуры:readln(s);присваиваниечтение с клавиатуры Вывод строки на экранВывод всей строки тоже не требует цикла:writeln(s);вывод строки на экранМожно, конечно, использовать цикл:for i:=1 to 12 do write(s[i]);Но для вывода всей строки такую конструкцию обычно не используют. Длина строкиСамая простая функция подсчитывает количество символов в строке:length(s)Значением этой функции может быть целое число от 0 (пустая строка) до 255.Обычно это значение используют в циклах для анализа и преобразования строки или присваивают некоторой целочисленной переменной. Длина строкиvar s:string; l:integer;begin write('Введите строку: '); readln(s); l:=length(s); writeln('Длина строки ',l);end. Действия со строкамиСамым простым действием над строками является их склейка. Осуществляется она при помощи операции сложения:s:='Hello, '+'world';В данном случае результат зависит от перемены мест «слагаемых».Можно складывать не только 2 строки:s:='He'+s1+','+s2+'old'; Действия со строкамиВторое действие – копирование символов из одной строки в другую. Для этого используют функцию copy, которая имеет 3 параметра и строковый тип результата:copy(s,n,k)Первый параметр – строка, из которой копируем, второй – номер символа, с которого начинаем копировать, третий – количество копируемых символов. Действия со строкамиНапример:s:='Информатика';s1:=copy(s,3,5);В строковую переменную s1 копируются5 символов из строки s, начиная с третьего символа.Само значение строки s не меняется.Каково значение строк s и s1?
Действия со строкамиТретье действие – удаление символов из строки. Для этого используют процедуру delete, которая тоже имеет 3 параметра:delete(s,n,k)Первый параметр – строка, из которой удаляем, второй – номер символа, с которого начинаем удалять, третий – количество удаляемых символов. Действия со строкамиНапример:s:='Информатика';delete(s,3,5);Из строки s удаляются 5 символов начиная с третьего символа.Само значение строки s и значение её длины меняется.Каково значение строки s?
Действия со строкамиСледующее действие – вставка одной строки в другую. Для этого используют процедуру insert, имеющую 3 параметра:insert(s1,s,n)Первый параметр – строка, которую вставляем, второй – строка, в которую вставляем, третий – номер символа, с которого начинаем вставку. Действия со строкамиНапример:s1:='министр';s:='Адатор‘;insert(s1,s,3);В строковую переменную s, начиная с третьего символа вставляется строка s1.Каково значение строк s и s1?
Простые задачиРазберем сначала простые задачи. Простыми они называются потому, что длина строки при анализе или преобразовании не меняется.Следовательно, мы будем использовать цикл for, в котором начальное значение равно 1, а конечное length(s).А в цикле посимвольно просматриваем всю строку. Подсчет количества символа 'о'var s:string; i,k:integer;begin readln(s); k:=0; for i:=1 to length(s) do if s[i]='o' then k:=k+1; writeln(k);end. Замена символа 'о' на 'а' (1 на 1)var s:string; i:integer;begin write('Введите строку: '); readln(s); for i:=1 to length(s) do if s[i]='o' then s[i]:='a'; writeln(s);end. ЗаданияСделайте две предыдущие программы более общими:Символ, количество которых подсчитывается в строке, нужно ввести с клавиатуры.Символы, который заменяется и на который проводится замена, вводятся с клавиатуры.


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте файл и откройте на своем компьютере.
Прочитайте внимательно текст, строки, выделенные таким шрифтом нужно записать в тетрадь. Работа со строками На прошлом уроке мы рассмотрели с Вами основные процедуры и функции для работы со строковыми переменными. Так же записали пример ы решения задач на нахождение количества вхождения в строку определенного символа и на замену одного символа другим . Сегодня мы продолжим рассмотрение примеров программ, решающих некоторые задачи с использованием строк. Пример 1 : Определить количество вхождений в строку сочетания символов « amd ». Так как будем искать не один символ, а несколько подряд, то обращение s [ i ] неприемлемо, потому что , при использовании s [ i ] мы можем по ном еру i символа в строке проверить только один символ! У нас же символа три, поэтому мы будем использовать функцию copy и просматривать по три символа, двигаясь по с троке в цикле. Для более легкого понимания действия функции copy , последнюю можно представить в виде картонки с отверстиями, которая накладывается на нашу строку (как при разгадывании шифров). Количество отверстий соответствует последнему параметру в функции, а второй параметр отвечает за размещение окошек относительно начала строки, например: s copy(s, 3 , 5 ) Запишем программу, решающую поставленную задачу из примера 1 . program z 1 ; var s:string; i , k:integer; begin write (‘ Введите строку: ’); readln (s); k :=0; for i:=1 to length(s) - 2 do if copy(s,I,3)=’amd’ then k:=k+1; writeln ( k ); end . Заметьте, что цикл заканчивается не на последнем символе, а на втором с конца ( length ( s ) - 2 ) . Это потому, что последний раз просматривая по три символа, мы будем начинать с n - 2 символа в строке. и н ф о р м а т и к а и н ф о р м а т и к а 3 – второй параметр 5 символов – третий параметр Рассмотрим и другие примеры программ: Пример 2 : Вставить в строку после каждой точки или запятой пробел. В данной задаче мы не можем использовать цикл f or , так как длина строки в общем случае будет изменяться. Используем цикл repeat . program z 2 ; var s : string ; { объявляем переменные } i:integer; begin readln(s); { вводим строку } i :=1; { сначала встаем на первый символ } repeat if (s[i]='.') or (s[i]=',') then begin { если наш символ точка или запятая } insert (' ', s , i +1); { вставляем пробел после найденного символа } i := i +1; { смещаемся вперед на один символ } end ; i := i +1; { смотрим следующий символ } until i �= length ( s ); { продолжаем пока не дошли до конца строки } writeln ( s ); { выводим результат на экран } end . Пример 3 : Удалить из строки сочетания « ok ». При удалении символов длина строки тоже может меняться, поэтому снова прибегаем к использованию цикла repeat . program z 3 ; var s:string; i:integer; begin readln(s); i:=1; repeat if copy(s,i,2)='ok' then begin delete(s,i,2); i:=i - 1; end; i:=i+1; until i�=length(s); writeln ( s ); end . Пример 4 : Заменить все сочетания « no » на « yes ». Идея данной задач и состоит в том, что мы делаем сразу два действия: удаляем встретившееся « no » и вставляем на то же место « yes ». program z 4 ; var s:string; i:integer; begin readln(s); i:=1; repeat if copy(s,i,2)='no' then begin delete(s,i,2); insert('yes',s, i); i:=i+2; end; i:=i+1; until i�=length(s); writeln ( s ); readln ; end . Задания для самостоятельной работы: 1. Определить количество вхождений в строку сочетания « the ». 2. Вставить после каждого символа « o » сочетание « go ». 3. Удалить из строки все символы « f ». 4. Заменить в строке « you » на « they » . Вопросы можно задавать через дневник . Желаю Удачи. Дрождинин Ю. В.


Введите названия двух городов. Определить какое из них самое длинное.
Введите слово. Верно ли, что оно начинается и оканчивается на один и тот же символ?
Введите предложение. Подсчитайте количество букв "и" в предложении.
Введите предложение. Определить долю в процентах букв "а" в нем.
Введите предложение. Определите количество вхождений в него сочетания "ро".
Введите предложение. После каждого сочетания "ум" вставьте восклицательный знак.
Введите предложение. Символы, стоящие на четных позициях, заменить на "*".
Введите предложение. Удалите из него все сочетания "не".
Введите предложение. Замените в нем все сочетания "со" на "дин".
Введите предложение. Сдвиньте все символы на 1 позицию вперед. На первое место поставьте последний символ.
Введите названия двух городов. Определить какое из них самое длинное.
Введите слово. Верно ли, что оно начинается и оканчивается на один и тот же символ?
Введите предложение. Подсчитайте количество букв "и" в предложении.
Введите предложение. Определить долю в процентах букв "а" в нем.
Введите предложение. Определите количество вхождений в него сочетания "ро".
Введите предложение. После каждого сочетания "ум" вставьте восклицательный знак.
Введите предложение. Символы, стоящие на четных позициях, заменить на "*".
Введите предложение. Удалите из него все сочетания "не".
Введите предложение. Замените в нем все сочетания "со" на "дин".
Введите предложение. Сдвиньте все символы на 1 позицию вперед. На первое место поставьте последний символ.
Введите названия двух городов. Определить какое из них самое длинное.
Введите слово. Верно ли, что оно начинается и оканчивается на один и тот же символ?
Введите предложение. Подсчитайте количество букв "и" в предложении.
Введите предложение. Определить долю в процентах букв "а" в нем.
Введите предложение. Определите количество вхождений в него сочетания "ро".
Введите предложение. После каждого сочетания "ум" вставьте восклицательный знак.
Введите предложение. Символы, стоящие на четных позициях, заменить на "*".
Введите предложение. Удалите из него все сочетания "не".
Введите предложение. Замените в нем все сочетания "со" на "дин".
Введите предложение. Сдвиньте все символы на 1 позицию вперед. На первое место поставьте последний символ.
Введите названия двух городов. Определить какое из них самое длинное.
Введите слово. Верно ли, что оно начинается и оканчивается на один и тот же символ?
Введите предложение. Подсчитайте количество букв "и" в предложении.
Введите предложение. Определить долю в процентах букв "а" в нем.
Введите предложение. Определите количество вхождений в него сочетания "ро".
Введите предложение. После каждого сочетания "ум" вставьте восклицательный знак.
Введите предложение. Символы, стоящие на четных позициях, заменить на "*".
Введите предложение. Удалите из него все сочетания "не".
Введите предложение. Замените в нем все сочетания "со" на "дин".
Введите предложение. Сдвиньте все символы на 1 позицию вперед. На первое место поставьте последний символ.

Приложенные файлы