Стандартные процедуры и функций для строк

Обработка символьных массивов

На языке TURBO PASCAL

Методические указания к выполнению лабораторных работ

по курсу “Программирование и базы алгоритмизации”

для студентов специальности 210100

дневной, вечерней и заочной форм обучения

Одобрено

редакционно-издательским советом

Балаковского института техники,

технологии и управления

Балаково 2007

Цель работы – освоение способов обработки символьных массивов на языке программирования Turbo Pascal.

Главные ПОНЯТИЯ

Операции над знаками

Для хранения и обработки Стандартные процедуры и функций для строк знаков исполь­зуются переменные типа Char. Значением пере­менной символьного типа может быть хоть какой отобра­жаемый знак:

- буковка российского либо латинского алфавитов;

- цифра;

-знак препинания;

Переменная символьного типа должна быть объявлена в разделе объ­явления переменных. Объявляется символьная переменная в разделе пере­менных:

var

: char;

Примеры:

var

Sim1,sim2: char Стандартные процедуры и функций для строк;

Как и неважно какая переменная программки, пере­менная типа char может по­лучить значение в ре­зультате выполнения оператора присваивания. Если переменная типа char получает значение в итоге выполнения опера­ции присваивания, то справа от знака := должно стоять выражение типа char, к примеру, переменная типа char либо сим Стандартные процедуры и функций для строк­вольная константа — сим­вол, заключенный в апострофы.

c1 := '*';

с2 := c1;

Переменная c1 получает значение присваиванием значения константы, а переменная с2 — присваи­ванием значения переменной cl .

Переменную типа char можно сопоставить с другой переменной типа char либо с символьной константой. Сопоставление основано на том, что каждо­му символу поставлено Стандартные процедуры и функций для строк в соответствие число из кодовой таблицы ASC II

'0'<'1'<...<'9'<...<'A'<'B'<...<'Z'<'a'<'b'<...<'z'

Символам российского алфавита соответствуют числа огромные, чем символам латинского алфа­вита, при всем этом справедливо последующее:

'А'<'Б'<'В'<…<'Ю'<'Я'<'а'<'б'<'в'<...<'э'<'ю'<'я'

Пример:

‘В’>’А’ (ASCII-код знака ‘А’=65, знака ‘В Стандартные процедуры и функций для строк’=66)

‘а’>’А’ (ASCII-код знака ‘а’=91)

‘А’=’А’

Функции, которые могут применяться к символам

ü Chr(x) - возвращает знак, соответственный ASC II-коду числа Х.

Выражение Итог

Chr(65) ‘А’

ü Ord(ch)- возвращает число, соответственное символу ch в ASCII-таблице.

Выражение Итог

Ord(‘А’) 65

ü Pred(ch)- возвращает знак, который предшествует в ASCII-таблице символу Стандартные процедуры и функций для строк ch.

Выражение Итог

Pred(‘В’) ‘А’

ü Succ(ch)- возвращает знак, который следует в ASCII-таблице за эмблемой ch.

Выражение Итог

Succ(‘А’) ‘В’

Операции со строчками

Строчка - это последовательность знаков ASCII. При использова­нии в выражениях строчка заключается в апострофы. Количество знаков в строке может динамически изменяться в границах от 0 до 255. Для опре Стандартные процедуры и функций для строк­деления данных строкового типа употребляется идентификатор string, за ко­торым следует заключенное в квадратные скобки значение очень допустимой длины строчки данного типа. Если это значение не указывается, то по дефлоту длина строчки принимается равной 255 б.

var

st1 : string[100];

st2 : string[80];

st3 : string;

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

const

address=’ул. Ленина, дом 100, кв.3’

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

Операция сцепления (+) применяется для объединения нескольких строк в одну результирующую Стандартные процедуры и функций для строк строчку, к примеру:

Выражение Итог

'Turbo'+' Pascal' 'Turbo Pascal'

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

Выражение Итог

‘MS DOS’<’MS Dos’ true

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

Выражение Итог

‘MS DOS’<’MS DOS ’ true

Для присвоения строковой переменной результата строкового выра­жения употребляют оператор присвоения (:=).

St1 := ‘MS’;

St2 := ‘DOS’;

St3:=St1+St2;

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

Вводятся и выводятся строчки при помощи стандартных Стандартные процедуры и функций для строк процедур ввода и вывода.

Readln(st);

Writeln(st);

К отдельным символам строчки можно обратиться по индексу данного знака в строке. Индекс определяется выражением целочисленного типа, которое записывается в квадратных скобках сходу после идентифика­тора строковой переменной либо константы. К примеру: Address[4] обеспе­чивает доступ к четвертому символу ’Л’, Address Стандартные процедуры и функций для строк[11] – к одиннадцатому символу ’д’.

С помощью записи Address[0] можно получить доступ к нулевому б, содержащему текущую длину строчки. Значение текущей длины строчки, можно получить и при помощи функции length(st)

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

Стандартные Стандартные процедуры и функций для строк процедуры и функций для строк

ü Length(st) – определяет текущую длину строчки st. Итог имеет целочисленный тип.

Значение Выражение Итог

‘абвгде’ Length(st) 6

‘река Волга’ Length(st) 10

ü Delete (st,Poz, N) - удаляет N знаков начиная с позиции Poz из строчки st. Если значение Poz>255, появляется программное прерывание.

Значение Выражение Итог

‘абвгде’ Delete (st,4, 2) ‘абве Стандартные процедуры и функций для строк’

‘река Волга’ Delete (st,1, 5) ‘Волга’

ü Insert (St1, St2, Poz) - вставляет подстроку St1 в строчку St2, начиная с позиции Poz.

St2 := ‘MS’;

St1 := ‘ DOS’;

Выражение Итог

Insert (St1, St2, 3) ‘MS DOS’

Insert (St1, St2, 5) ‘MS DOS’

ü Copy(St, Poz, N) – выделяет из строчки St N симво­лов, начиная с Стандартные процедуры и функций для строк знака с позиции Poz. Если Poz>Length(st), то результатом будет ноль. Если Poz>255, то появляется ошибка. Poz и N целочисленные числа.

Значение Выражение Итог

‘абвгде’ Copy(St, 4 ,2) ‘гд’

река Волга’ Copy(St, 6 ,5) ‘Волга’

ü Concat(St1,St2, ... , StN) – делает сцепление строк St1, St2, ..., StN в том порядке , в каком они указаны Стандартные процедуры и функций для строк в перечне характеристик.

Выражение Итог

Concat(‘XX’,’YY’,’ZZ’) ‘XXYYZZ’

Concat(‘река’,’ Волга’) ‘ река Волга’

ü Pos (St1, St2) – обнаруживает 1-ое возникновение в строке St2 подстроки St1. Итог целочисленного типа и равен номеру той позиции, где находится 1-ый знак подстроки St1. Если подстрока не найдена, то итог ноль.

Значение Стандартные процедуры и функций для строк Выражение Итог

‘абвгде’ Pos (‘вг’, St2) 3

‘абвгде’ Pos (‘с’, St2) 0

ü Str(X, St) - конвертирует число X и помещает в строчку St. После X можно записать формат, аналогично формату вывода. Если в формате обозначено недостающее для вывода количество разрядов, поле вывода автоматом расширяется до подходящей длины.

Значение Выражение Итог

1500 Str (Х:6, St) ‘__1500’

-1500 Str Стандартные процедуры и функций для строк (Х:6, St) ‘_-1500’

78902 Str (Х:3, St) ‘78902’

ü Val(St, X, code) - конвертирует значение St в величину целочислен­ного либо вещественного типа и помещает итог в переменную X. Значение St не должно содержать незначащих пробелов в конце и сначала. Code – целочисленная переменная. Если операция преобразования не привела к ошибке, то значение Code Стандартные процедуры и функций для строк равно нулю. В случае ошибки (литерное значение переводится в цифровое) Code будет содержать номер позиции первого неверного знака, а значение X будет неопределенно.

Значение Выражение Итог

‘1500’ Val(St, X, code) code=0

‘1500 ’ Val(St, X, code) code=5

’14.5Е+02’ Val(St, X, code) code=0

’15.4А+02’ Val(St, X, code) code=5

ü Upcase (ch) – конвертирует строчную Стандартные процедуры и функций для строк буковку в строчную. Обрабаты­ваются только буковкы латинского алфавита. Если значением ch яв­ляется хоть какой другой знак (в том числе строчная буковка российского алфавита), функция возвращает его без преобразования.

Значение Выражение Итог

‘r’ Upcase (ch) ‘R’

'w’ Upcase (ch) ‘W’

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Номер варианта выбирается по Стандартные процедуры и функций для строк порядковому номеру студента в спи­ске группы. По проведенному заданию требуется:

1. Найти порядок реализации вычислений.

2. Составить графическую схему метода.

3. Записать программку на языке Turbo Pascal.

4. Выполнить расчеты на ЭВМ.

5. Написать отчет по лабораторной работе.

Примеры выполнения

Пример 1. Посчитайте количество знаков ‘о’ в строке, выведите на экран позиции, на которых они находятся. Потом Стандартные процедуры и функций для строк поменяйте эти знаки на ‘!’.

program stroka;

var str : string;

i : integer;

begin

writeln('введите строчку');

readln(str);

n:=0;

for i:=1 to length(str) do if str[i]='o' then

begin

n:=n+1;

write(‘ ‘,i);

str[i]='!';

end;

writeln(str);

writeln(‘n=’,n);

end.

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

program stroka;

var str: string;

i : byte;

begin

read(str);

for i:=1 to length(str) do if (ord(str[i])>=48) and (ord(str[i])<=57) then begin

write(‘ ‘,i);

delete(str,i,1);

end;

writeln(str);

end.

Пример 3. Обусловьте количество слов в строке, в каком Стандартные процедуры и функций для строк одно сло­во от другого отделяется пробелом. Выведите слова на экран.

program stroka;

var str,str1: string;

i,n,n1,n2 : byte;

begin

read(str);

n:=0;

n2:=0;

for i:=1 to length(str) do if (str[i]=' ') or ( str[i]='.') then

begin

n:=n+1;

n1:=n2+1;

n2:=i;

str1:=copy(str,n1, n2-n Стандартные процедуры и функций для строк1);

writeln(str1);

end;

writeln(‘n=’,n);

end.

ВАРИАНТЫ ЗАДАНИЙ

1. Выведите на экран позиции, на которых находится буковка ‘е’. Посчи­тайте их количество.

2. Сделайте из четных знаков строчки st1 строчку str2 и из нечетных сим­волов строчку str3.

3. В строке, состоящей из российских букв, подсчитайте количество гласных строчных и строчных Стандартные процедуры и функций для строк букв.

4. Поменяйте местами 1-ый и послед­ний знаки строчки.

5. Удалите из строчки пробелы, запятые и точки, другие знаки продублируйте.

6. Выведите на экран все числа встречающиеся в строке. Найдите их произведение.

7. Воткните в строчку после каждого знака про­бел. Вывести на экран ре­зультат.

8. Переверните строчку так, чтоб пер­вый Стандартные процедуры и функций для строк знак стал последним и так да­лее. Новейшую строчку выведите на экран.

9. Из введенной строчки сделайте три строчки, состоящих из: строчных британских букв, из строчных британских букв и других знаков данной строчки.

10. Посчитайте количество слов в строке и выведите длину каждого слова.

11. Поменяйте 1-ые буковкы в каждом слове Стандартные процедуры и функций для строк строчки на большие буковкы.

12. Посчитайте сумму всех цифр, встречающихся в строке.

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

14. Отсортируйте знаки строчки по возрастанию их номеров в таблице ASC II.

15. Удалите из 2-ой строчки все знаки, которые встречаются в первой строке, и расположите Стандартные процедуры и функций для строк их в третью строчку.

16. Сделайте новейшую строчку из знаков введенной строчки, стоящих на каждой третьей позиции.

17. Даны две строчки (схожей длины). Сделайте третью строчку из знаков, которые на схожих позициях совпадают.

18. В строке, состоящей из латинских букв, подсчитайте количество глас­ных букв.

19. Задано существительное первого склонения, оканчивающееся Стандартные процедуры и функций для строк на ‘а’. Напечатайте это слово во всех падежах.

20. Из строчки удалите все знаки, совпадающие с последним эмблемой.

21. Выведите на экран самое куцее слово из введенной строчки.

22. Напишите программку, которая вводит строчку и выводит ее, сокращая всякий раз на 1 знак до того времени, пока в строке не остается 1 сим­вол.

23. Введите Стандартные процедуры и функций для строк два целых числа. Преобразуйте числа в две строчки, объедини­те их в одну строчку и выведите итог на экран.

24. Выясните, какая из букв - 1-ая либо последняя - встречается в строке почаще.

25. Вычислите суммы позиций, на которых в слове стоят буковкы ‘п’ и ‘т’.

26. Посчитайте число разных знаков в слове Стандартные процедуры и функций для строк.

27. Слово состоит из 2-ух частей схожей длины и соединительной гласной. Найдите обе части этого слова.

28. Выведите на печать подстроку, заключенную меж 2-мя запятыми.

29. Поменяйте в строке все числа на последующую по порядку цифру. Цифру 9 поменять на цифру 0.

30. *Отыскать количество слов в строке, сопоставить их меж собой и вывести на экран Стандартные процедуры и функций для строк по возраста­нию.

31. *Вводятся два слова. Проверти, являются ли они анаграммой, другими словами можно ли из всех букв первого слова, составить 2-ое слово.

32. *Отыскать в строке слова, являющиеся переверты­шами, другими словами те которые читаются слева на­право и справа влево идиентично. К примеру «комок».

СОДЕРЖАНИЕ И ОФОРМЛЕНИЕ Стандартные процедуры и функций для строк ОТЧЕТА

Отчет оформляется в редакторе текста Word на бумаге формата А4 ГОСТ 6656-76 (210х297 мм) и содержит:

1. заглавие работы;

2.цель работы.

3. задание;

4. графическую схему метода;

5. программку на языке TURBO PASCAL;

6. результаты вычисления.

ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ

1. Что такое строчка?

2. Каким идентификатором определяются данные строкового типа?

3. Какова наибольшая длина строчки? Как найти текущую дли­ну Стандартные процедуры и функций для строк строчки?

4. Какие выражения именуются строковыми?

5. Какие операции допустимы над строковыми данными?

6. Каким образом делается сопоставление строк?

7. Какие требования предъявляются к записи выражений с операнда­ми строкового типа?

8. Как обратиться к отдельным символам строчки?

9. Растолкуйте предназначение особых строковых процедур и функ­ций. Приведите примеры.

ВРЕМЯ, ОТВЕДЕННОЕ НА ВЫПОЛНЕНИЕ РАБОТЫ

Подготовка к Стандартные процедуры и функций для строк работе - 1 акад. ч.

Выполнение работы - 1 акад. ч.

Расчеты на ЭВМ - 1 акад. ч.

Оформление работы - 1 акад. ч.

ЛитЕратура

  1. Алексеев Е.Р. Turbo Pascal 7.0. Численные способы. – М.: АСТ, 2004.
  2. Гусева А.И. Обучаемся программировать: Pascal 7.0. Задачки и способы их решения. – М.: Диалог-МИФИ, 1997.
  3. Емелина Е.И. Базы программирования на языке Паскаль. – М.: Деньги и статистика Стандартные процедуры и функций для строк, 1997.
  4. Епанешников А.М., Епанешников В.А. Программирование в среде TURBO PASCAL 7.0. - М.: Диалог-МИФИ, 1996.
  5. Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2001.
  6. Попов В.Б. TURBO PASCAL 7.0. -М.: Деньги и статистика, 1996.
  7. Попов В.Б. Turbo Pascal для школьников. - М.: Деньги и статисти­ка, 2001.
  8. Турбо Паскаль 7.0.- К.: Торгово-издательское бюро Стандартные процедуры и функций для строк BHV, 1996.
  9. ГОСТ 19.701-90. Единая система программной документации. Схе­мы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.


stanovlenie-i-razvitie-rannefeodalnogo-gosudarstva.html
stanovlenie-i-razvitie-socialnoj-psihologii-referat.html
stanovlenie-i-razvitie-sovremennoj-atomistiki-chast-3.html