Разделы презентаций


Язык программирования Pascal. Работа со строками

Содержание

Строковые переменныеТип данных (string) определяет строки с максимальной длиной 255 символов. Длину строки можно регулировать в секции описаний.Например,var   MaxLine : string; //длина строки до 255   City

Слайды и текст этой презентации

Слайд 1Язык программирования Pascal Работа со строками
А. Жидков

Язык программирования Pascal   Работа со строкамиА. Жидков

Слайд 2Строковые переменные
Тип данных (string) определяет строки с максимальной длиной 255

символов. Длину строки можно регулировать в секции описаний.
Например,
var   MaxLine :

string; //длина строки до 255   City : string[30]; // длина строки до 30 символов

Для переменных типа string выделяют память, на 1 байт больше максимальной длины строки.

Начальный байт с номером 0 отводится для хранения количества записанных в строку символов.

Встроенная функция Length возвращает фактическое количество литер в записанных в строку.
Строковые переменныеТип данных (string) определяет строки с максимальной длиной 255 символов. Длину строки можно регулировать в секции

Слайд 3Операции над строками.
Выражения, в которых операндами служат строки, называются строковыми.
Над

строками определены два вида операций:
1. Операция сцепления (конкатенации) обозначают как

(+) .
Например: SumStr := ‘Язык'+‘ программирования'+‘ Pascal'
2. Операции отношения (=, <>, >, <, >=, <=) проводят сравнение двух строк слева направо до первого несовпадающего символа, и та строка считается больше, где первый несовпадающий символ имеет больший номер в таблице ASCII.
Например, выражение 'MS-DOS'<'MS-Dos' имеет значение True
Если строки имеют различную длину, но в общей части символы совпадают, считается, что короткая строка меньше, чем длинная.
Строки равны, если последовательность символов в них совпадает.
Операции над строками.Выражения, в которых операндами служат строки, называются строковыми.Над строками определены два вида операций:1. Операция сцепления

Слайд 4Изменение строковых переменных
Для изменения строковой переменной используется оператор присваивания (:=)

или оператор ввода данных.
Например:
Name:=‘Михаил’;
Write (‘Укажите Вашу фамилию’);
Read (fam);
Если значение

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

Изменение строковых переменныхДля изменения строковой переменной используется оператор присваивания (:=) или оператор ввода данных. Например:Name:=‘Михаил’;Write (‘Укажите Вашу

Слайд 5Обращение к отдельным символам строки
К символам строки можно обратиться по

номеру (индексу) символа в строке.
Например, чтобы обратиться к третьему

символу строки SumStr надо записать SumStr[3].
Запись SumStr[0] возвращает значение текущей длины строки.

Что выведет на экран следующий фрагмент программы?
Var StrRama:string[20];
Begin
StrRama:=‘МАМА МЫЛА РАМУ’;
WRITE (StrRama[14]+ StrRama[11]+ StrRama[2]+ StrRama[8], ord(StrRama[0]));
End.

Обращение к отдельным символам строкиК символам строки можно обратиться по номеру (индексу) символа в строке. Например, чтобы

Слайд 6Функции для обработки строк
Delete (Str,Poz,N) - удаление N символов строки

Str, начиная с позиции Poz.
Insert (What,Where,Poz) - вставка строки What

в строку Where, начиная с позиции Poz.
Copy (Str,Poz,Nstr) - строка длиной Nstr, начиная с позиции Poz, из строки Str.
Concat (Str1,Str2,...,StrN) - сцепление строк в указанном порядке.
Poz (What,Where) - обнаруживает появление подстроки What в строке Where.
UpCase (Ch) - преобразует строчную букву в прописную.
Str (Number,Stroka) - преобразует число в строку.
Val (Stroka,Number,Code) - преобразует строку в число и выдает код правильности преобразования.

Функции для обработки строкDelete (Str,Poz,N) - удаление N символов строки Str, начиная с позиции Poz. Insert (What,Where,Poz)

Слайд 7Функция Length
Встроенная функция Length (длина) позволяет определить фактическую длину текстовой

строки, хранящейся в указанной переменной (а не величину предельного размера

строки, установленную при декларации):

Program DemoFunctionLength; Var   Word : string; Begin   write ('Введите слово :');   readln(Word);   writeln('Это слово состоит из ',Length (Word),' букв'); End.

Примечание. При подсчете фактической длины строки учитываются все входящие в нее символы, в том числе и пробелы.
Функция LengthВстроенная функция Length (длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной (а не

Слайд 8Функция Upcase
Функция Upcase позволяет преобразовывать символ любой литеры из строчного

в прописной.
Эта функция рассчитана на обработку отдельного символа. Поэтому

для обработки строки символов с помощью этой функции приходится организовывать цикл.
Program DemoFunctionUpcase; Var   Word : string;   i : integer; Begin   Word := 'фирма Microsoft';   for i := 6 to Length (Word) do     Word[i] := UpCase (Word[i]);     writeln(Word); End.
В результате работы программы на терминал выдается строка, содержащая большие английские буквы и маленькие русские.
Функция Upcase Функция Upcase позволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на

Слайд 9Функция Copy
Функция Copy позволяет копировать фрагмент некоторой строки из одной

переменной в другую. Вызывая эту функцию нужно указать следующие параметры:
имя

строки, из которой должен извлекаться копируемый фрагмент,
позицию в строке, начиная с которой будет копироваться фрагмент,
число копируемых символов.
Program DemoFunctionCopy; Var   Word : string;   Word1 : string[20]; Begin   Word := ‘Кадетский корпус';   writeln(Word);   Word1 := Copy (Word,11,6);   writeln(Word1); End.
Примечание. Если начальная или конечная позиции копируемого текста находятся вне пределов исходной строки символов, то сообщение об ошибке не выдается. Результатом выполнения операции в первом случае будет строка нулевой длины, во втором - фрагмент от начальной позиции копирования до конца исходной строки.
Функция Copy Функция Copy позволяет копировать фрагмент некоторой строки из одной переменной в другую. Вызывая эту функцию

Слайд 10Функция Pos
Функция Pos осуществляет поиск фрагмента в строке.
Если заданный фрагмент

в строке присутствует, то функция возвращает номер позиции, с которой

он начинается.
Если фрагмент не найден, то функция возвращает нуль.

Program DemoFunctionPos; Var   Word : string;   SearchWord : string[20];   Position : integer; Begin   Word := ‘Кадетский корпус';   writeln(Word);  SearchWord:=‘детский’;   Position := Pos(SearchWord, Word);   if Position <> 0 then       begin         write ('Фрагмент <',SearchWord,'> содержится в строке <',Word);         writeln ('>, начиная с позиции ',Position );       end     else       writeln('Фрагмент <',SearchWord,'> не содержится в строке <',Word);
End.
Функция PosФункция Pos осуществляет поиск фрагмента в строке.Если заданный фрагмент в строке присутствует, то функция возвращает номер

Слайд 11Функция Concat
Функция Concat (Str1,Str2,...,StrN) выполняет конкатенацию (или сцепление) строк Str1,Str2,...,StrN

в том порядке, в каком они указаны в списке параметров.


Сумма символов сцепленных строк не должна превышать 255.

Program DemoFunctionConcat; Var   Word : string;   Word1, Word2 : string[20]; Begin   Word1 := ‘кадетского';   Word2 := ‘корпуса';   Word := Concat('Кадеты ',Word1,Word2);   writeln(Word); end.
Функция Concat Функция Concat (Str1,Str2,...,StrN) выполняет конкатенацию (или сцепление) строк Str1,Str2,...,StrN в том порядке, в каком они

Слайд 12Задание на самоподготовку
Посчитайте количество цифр в веденной строке символов.
Проверьте

правописание “жи” и “ши” в тексте. Выведите на экран количество

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

Задание на самоподготовкуПосчитайте количество цифр в веденной строке символов. Проверьте правописание “жи” и “ши” в тексте. Выведите

Слайд 13Program cifra;
Var
Word : string;
i,k : integer;
Begin
cls;
word:='1 t $ 45nnfft623456kugтра5234626ктор 122';
k:=0;
for

i:=1 to Length(word) do
if (word[i]>='0') And (word[i]

', 'число цифр',k);
end.

Задание на самоподготовку

Посчитайте количество цифр в введенной строке символов.

Program cifra;VarWord : string;i,k : integer;Begincls;word:='1 t $ 45nnfft623456kugтра5234626ктор 122';k:=0;for i:=1 to Length(word) doif (word[i]>='0') And (word[i]

Слайд 14Задание на самоподготовку
Проверьте правописание “жи” и “ши” в тексте. Выведите

на экран количество сделанных ошибок и исправленную строку. Применяйте подпрограммы.

Program

cifra;
Var
Word : string;
i,osh : integer;
procedure zhi_shi (var Word : string;var i,osh : integer);
begin
if word[i+1]='ы' then begin osh:=osh+1; word[i+1]:='и'; end;
end;
Begin
cls;
word:='Тишына, камышы. Шыпит костер. Жыдкий свет разливается живым золотом';
writeln(Word,' всего символов',Length(word));
osh:=0;
for i:=1 to Length (word) do
Begin
if (word[i]='ж')or (word[i]='Ж') then zhi_shi(Word,i,osh);
if (word[i]='ш')or (word[i]='Ш') then zhi_shi(Word,i,osh)
end;
writeln(Word,' число ошибок',osh);
end.
Задание на самоподготовкуПроверьте правописание “жи” и “ши” в тексте. Выведите на экран количество сделанных ошибок и исправленную

Слайд 15Задание на самоподготовку
Выясните, сколько раз встречается каждая буква алфавита в

предложенном тексте.
programm chislo_simbol;
var
i,k,simbol: integer;
Word : string;
begin
cls;
word:='Мороз и

солнце; день чудесный! Еще ты дремлешь, друг прелестный...';
writeln(Word,' ','всего символов',Length(word));
for i:=192 to 192+31 do
begin
simbol:=0;
write (chr(i),chr(i+32));
for k:=1 to Length (word) do
if (word[k]=chr(i))or (word[k]=chr(i+32)) then simbol:=simbol+1;
writeln (' ', simbol)
end;
end.
Задание на самоподготовкуВыясните, сколько раз встречается каждая буква алфавита в предложенном тексте.programm chislo_simbol; var i,k,simbol: integer; Word

Слайд 16Задание на самоподготовку
В заданном тексте найти и распечатать слово максимальной

длины.

program maxi_slovo;
var
k,max,nach,pmax:integer;
Word: string;
begin
cls;
word:='У лукоморья дуб зеленый;

златая цепь на дубе том...';
writeln(Word,' ','всего символов',Length(word));
max:=1; //длинна слова максимальной длинны
nach:=1; //начало текущего слова
for k:=1 to Length(word) do
if word[k]=' ' then
begin
if k-nach>max then begin max:=k-nach;pmax:=nach; end;
nach:=k
end;
write(copy(word,pmax,max)); //pmax начало максимального слова
end.
Задание на самоподготовкуВ заданном тексте найти и распечатать слово максимальной длины.program maxi_slovo; var k,max,nach,pmax:integer; Word: string; begincls;word:='У

Слайд 17Задание на самоподготовку
Заданы разделенные пробелами фамилия, имя и отчество учащегося

и три оценки за экзамены. Напечатайте его фамилию и инициалы

и средний балл.

program familia;
var
i,k,simbol,oc1,oc2,oc3,c: integer;
Word : string;
srball: real;
p: array [1..5] of integer;
begin
cls;
word:='Фархутдинов Исмаил Бархударович 3 4 4';
Writeln (Word,' ','всего символов',Length (word));
i:=1;
for k:=1 to Length(word) do
if word[k]=' ' then begin p[i]:=k;i:=i+1;write (' ',p[i-1]) end; //массив с позициями пробелов p[i]
writeln;
write (copy(word,1,p[1]),copy(word,p[1]+1,1)+'. ',copy(word,p[2]+1,1)+'. ');//печать Фамилия И.О.
val(copy(word,p[3]+1,1),oc1,c); // преобразование оценки в число
val(copy(word,p[4]+1,1),oc2,c);
val(copy(word,p[5]+1,1),oc3,c);
srball:=(oc1+oc2+oc3)/3;
write (' средний балл ',srball:5:2);
end.

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

Слайд 18Процедура Insert
Процедура Insert вставляет в исходную строку, начиная с указанной

позиции, другую строку. Процедура Insert (Word1,Word2,5) вставляет строку Word1 в

строку Word2, начиная с 5-ой позиции.

Program DemoFunctionConcat;
Var
Word1, Word2 : string;
Begin
Word1 := ‘ кадетский ';
Word2 := ‘Санкт-Петербургский корпус';
Insert(Word1,Word2,21);
writeln(Word2);
end.
Процедура InsertПроцедура Insert вставляет в исходную строку, начиная с указанной позиции, другую строку.  Процедура Insert (Word1,Word2,5)

Слайд 19Процедура Delete
Процедура Delete удаляет в строке фрагмент определенной длины, начиная

с указанной позиции. Так, оператор Delete(Word1,2,3) удаляет из указанной строки

фрагмент, длиной в три символа, начиная со второго.
Процедура DeleteПроцедура Delete удаляет в строке фрагмент определенной длины, начиная с указанной позиции. Так, оператор Delete(Word1,2,3) удаляет

Слайд 20Процедура Str
Общий вид Str(Chislo,Stroka)
Процедура Str преобразует числовое значение переменной Chislo

в строковую переменную Stroka. После первого параметра может указываться формат,

аналогичный формату вывода.

Program DemoProcedureStr; Var   Word : string;   Chislo : integer; Begin   Chislo := 1560;   Str(Chislo:8, Word);   writeln(Word); End.
Процедура Str Общий вид Str(Chislo,Stroka)Процедура Str преобразует числовое значение переменной Chislo в строковую переменную Stroka. После первого

Слайд 21Процедура Val
Общий вид Val(Stroka,Chislo,Code)
Процедура Val преобразует строку Stroka в величину

целочисленного или вещественного типа и помещает результат в Chislo.
Строка

Stroka не должна содержать пробелов в начале и в конце.
Code целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно нулю, если же ошибка обнаружена, Code будет содержать номер позиции первого ошибочного символа, а значение Chislo будет не определено.
Program DemoProcedureVal; Var   Word : string;   Chislo, Code : integer; Begin   writeln('Введите строку цифр ');   readln(Word);   Val(Word, Chislo, Code);   if Code <> 0     then       writeln('Ошибка! В позиции ',Code,' не цифра!',);
End.
Процедура ValОбщий вид Val(Stroka,Chislo,Code)Процедура Val преобразует строку Stroka в величину целочисленного или вещественного типа и помещает результат

Слайд 22Задание на самоподготовку
Составьте алгоритм замены в какой-нибудь литерной величине всех

букв "а" на буквы "б" и наоборот (при такой замене,

например, из слова "баба" должно получиться слово "абаб"). Выведите полученную строку на экран.
Составьте алгоритм, вычеркивающий из данного текста любую букву. Выведите полученную строку на экран. Если такого символа нет, то выведите соответствующее сообщение.
Составьте алгоритм, который каждую встреченную в слове букву "б" заменял бы сочетанием букв "ку". Если такого символа нет, то выведите соответствующее сообщение. Выведите полученную строку на экран.
Составьте алгоритм, выясняющий, является ли данное слово "перевертышем" (так называются слова, читающиеся одинаково слева направо и справа налево, например: ПОТОП, КАЗАК).
Задание на самоподготовкуСоставьте алгоритм замены в какой-нибудь литерной величине всех букв

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика