Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Общие сведения

Читайте также:
  1. I. ОБЩИЕ ПОЛОЖЕНИЯ
  2. I. Общие требования
  3. I. ОБЩИЕ ТРЕБОВАНИЯ БЕЗОПАСНОСТИ
  4. II. Краткие сведения из теории
  5. II. ОБЩИЕ ПОЛОЖЕНИЯ
  6. II. Общие правила
  7. II. Общие правила

ПРАКТИЧЕСКАЯ РАБОТА №_10

Тема: РЕШЕНИЕ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ СИМВОЛОВ И СТРОК.

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

Техническое обеспечение: ПЭВМ.

Программное обеспечение: ОС Windows, ИСР Turbo Pascal 7.0 или Borland Delphi

Постановка задачи: Разработать программы для обработки строк.

 

ОБЩИЕ СВЕДЕНИЯ

Определение: Строка – это последовательность символов кодовой таблицы ASCII. Каждый символ занимает в памяти 1 байт. Количество символов в строке называется её длиной. Длина строки может находится в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными.

Строковая константа – есть последовательность символов, заключённая в апострофы.

Например:

‘Язык программирования PASCAL’

‘IBM PC – computer’

’33-45-12’

Строковая переменная описывается в разделе описания переменных следующим образом:

Var <идентификатор переменной>: string[<максимальная длина строки>];

Например: Var Name: string[20];

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

Например: Var slovo: string;

Строковая переменная занимает в памяти на 1 байт больше, чем указанная в описании длина. Дело в том, что один (нулевой) байт содержит информацию о длине текущей строки. Если строковой переменной не присвоено никакого значения, то её длина равна нулю. По мере заполнения строки символами, её текущая длина возрастает. Символы внутри строки индексируются (нумеруются) от единицы. Доступ к каждому символу строки осуществляется через имя переменной и номеру символа в строке, заключённому в квадратные скобки. Тип string и стандартный тип Char совместимы Строковые выражения строятся из строковых констант, переменных, функций и знаков операций. Над строковыми данными допустимы операции сцепления и отношения.

Например: ‘ЭВМ ’+’IBM ’+’PC’

В результате получится строка: ‘ЭВМ IBM PC’

Длина результирующей строки не должна превышать 255 символов.

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

ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ СО СТРОКАМИ:

Функция LENGTH(S):byte определяет текущую длину строки S. Результат значение целого типа.

Пример: S:=’test-5’; d:=Length(S) Результат d=6

Функция COPY (S,poz,N):string выделяет из строки S подстроку длиной в N символов, начиная с позиции POZ. N и POZ – целочисленные выражения.

Пример: s:=‘ABCDEFG’ s1:=Copy(S,2,3) результат: s1=‘BCD’

Функция CONCAT (S1,S2,…,Sn):string выполняет сцепление (объединение) строк (S1,S2,…,Sn) в одну строку.

Пример: s:=Concat(‘aa’,bb,’c’) Результат s=‘aabbc’

Функция POS(S1,S2):byte обнаруживает первое появление в строке в строке S2 подстроки S1.

Результат – целое число, равное номеру позиции, где находится первый символ подстроки S1 в строке S2. Если в строке S2 подстроки S1 не обнаружено, то возвращается 0.

Пример: s2:=‘abcdefg’; p:=pos(‘cd’,S2) Результат p=3

Процедура Delete(S,poz,N) Выполняет удаление N символов из строки S, начиная с позиции poz.

Пример: s:=‘abcdefg’; delete(s,3,2) Результат: s=‘abefg’

Процедура Insert(S1,S2,POZ) выполняет вставку строки S1 в строку S2, начиная с позиции POZ.

Пример: s2:=’ЭВМ PC’; insert(‘IBM-‘,s2,5) Результат: s2=‘ЭВМ IBM-PC’

Процедура STR(v,S) - преобразует числовое значение в строковое представление. Если V – целое значение, то может быть указано общее число символов L, например, STR(V:L,S). Если V принимает вещественное значение, то дополнительноможет быть указано число символов M после десятичной точки, например, STR(V:L:M,S).

Пример: STR(’ЭВМ’,s); STR(15,s2) Результат: s=‘ЭВМ’, s2=’15’

Процедура VAL(S,V,code) - преобразует строку S в число и переменной V присваивается это число. Тип числа зависит от типа переменной V – целый или вещественный. Если такое преобразование выполнилось успешно, то переменной code присваивается значение 0, в противном случае code содержит номер позиции первого ошибочного символа.

Пример: VAL(’9.82’,y,code); Результат: у=9.82, code=0

VAL(’-3’,y,code); Результат: у=-3, code=0

VAL(’8c’,y,code); Результат: у=0, code=2

 

Пример1. Следующая программа получает из слова «ВЕЛИЧИНА» слово «НАЛИЧИЕ».

Program slovo;

Var S11,S12: string[10];

BEGIN

S11:=’ВЕЛИЧИНА’;

S12:=COPY(S11,7,2)+Copy(s11,3,4)+S11[2];

Writeln(S12)

END.

 

ЗАДАНИЯ ДЛЯ ВСЕХ:

1. Вывести в одну строку символы ABBCCCDDDD…….ZZ…Z

2. Вывести в одну строку символы ZZ…Z...........СССBBA

3. Вывести в одну строку треугольник из символов:

A B C D ….Z

B C D … Z

C D … Z

D … Z

4. Написать программу вывода на экран кодов цифр и букв латинского алфавита. Вывод произвести в столбец, слева цифра или буква - справа код.

5. Дана строка, состоящая из n символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Подсчитать количество слов в данной строке.

ЗАДАНИЕ 1:

№1.

1. Дан текст, состоящий из символов «а,п,р,о». Определить, какой символ встречается в тексте чаще.

2. Задан текст (слова разделены пробелами, пробелы могут быть в начале и в конце текста). Определить, сколько в нем слов, начинающихся на букву «к». Слово может начинаться как с прописной, так и со строчной буквы.

3. Удалить из текста все буквы «Р», которые идут перед буквой «И».

4. В заданном тексте после каждого знака препинания вставить пробел, если его там нет.

5. В заданном тексте заменить все вхождения «QWER» на «123».

№2.

1. Определить какая из букв «А» или «О» раз встречается в данном тексте чаще.

2. Задан текст (слова разделены пробелами, пробелы могут быть в начале и в конце текста). Определить, сколько в нем слов, заканчивающихся на букву «й».

3. Удалить из текста все гласные буквы.

4. В заданном тексте после каждого знака «+» и перед каждым таким знаком вставить пробел, если его там нет.

5. В заданном тексте заменить все вхождения «ER» на «ERROR».

№3.

1. Определить сколько раз встречается в данном тексте буква “А”, русская и латинская и каких букв больше: прописных или строчных.

2. Задан текст (слова разделены пробелом, пробелы могут быть в начале и в конце текста). Определить, какой процент слов в нем, начинающихся на букву «а».

3. Удалить из текста все буквы «й», которые идут после буквы «о».

4. В заданном тексте перед каждой цифрой, за которой стоит пробел вставить знак «+».

5. В заданном тексте заменить все гласные буквы на «*».

№4.

1. Определить на каких позициях в данном тексте встречается буква “А”, прописная и строчная.

2. Задан текст (слова разделены пробелом, пробелы могут быть в начале и в конце текста). Определить, какой процент слов в нем, содержит удвоенную согласную.

3. Удалить из текста все знаки «+», непосредственно за которыми идет цифра.

4. В заданном тексте перед каждым словом, вставить знак «#».

5. В заданном тексте заменить все слова А1 на слова А2. Слова А1 и А2 вводятся с клавиатуры.

№5.

1. Определить на каких позициях в данном тексте встречается буква “е”, латинская и русская, прописная и строчная.

2. Задан текст (слова разделены пробелом, пробелы могут быть в начале и в конце текста). Определить, сколько слов в нем, содержит хотя бы одну букву «д».

3. Удалить из текста последовательность символов между двумя двоеточиями.

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

5. В заданном тексте заменить все окончания «ая» на «ый».

№6.

1. Известно, что в заданный текст входит хотя бы одна буква «а», причем не на последнем месте. Напечатать по одной литере текста, непосредственно следующей за каждой буквой «а».

2. Задан текст (слова разделены пробелом, пробелы могут быть в начале и в конце текста). Определить, какой процент слов в нем, начинается и заканчивается на одну и ту же букву (Слово может начинаться как с прописной так и со строчной буквы).

3. Удалить из текста последовательность символов между двумя скобками.

4. В заданном тексте после каждого знака «-» и перед каждым таким знаком поставить пробел, если его там нет.

5. В заданном тексте заменить каждый символ «{» на слово «begin».

№7.

1. Напечатать по одной литере текста, непосредственно следующей перед каждым буквосочетанием «ая». Предусмотреть случай, когда в тексте нет таких буквосочетаний.

2. Задан текст (слова разделены пробелом, пробелы могут быть в начале и в конце текста). Определить, сколько раз в тексте встречается заданное слово. Слово вводится с клавиатуры.

3. Преобразовать данный текст по следующему правилу: если нет символа «*», то оставить текст без изменений, иначе удалить каждый символ после «*».

4. В заданном тексте заменить пробел между словами запятой и пробелом.

5. В заданном тексте заменить каждую строчную гласную букву цифрой «1», а прописную цифрой «0».

№8.

1. Верно ли, что в данный текст входит каждая буква введенного слова.

2. Задан текст (слова разделены пробелом, пробелы могут быть в начале и в конце текста). Определить, какой процент слов начинается на гласную (прописную или строчную).

3. Преобразовать данный текст по следующему правилу: если нет символа «*», то оставить текст без изменений, иначе вставить перед и после каждого символа «*» символ «-».

4. В заданном тексте перед каждой группой цифр, за которой стоит пробел, вставить знак «+», в том случае, если перед этой группой нет знака «-»

5. В заданном тексте заменить все символы «+» на слово «ПЛЮС».

№9.

1. Верно ли, что в данном тексте буква «а» прописная встречается чаще, чем строчная.

2. Задан текст (слова разделены пробелом, пробелы могут быть в начале и в конце текста). Определить, какой процент слов содержит удвоенную гласную (прописную или строчную).

3. Удалить из данного текста все удвоенные символы (прописные и строчные).

4. В заданном тексте после каждого знака препинания вставить такой же знак препинания.

5. В заданном тексте заменить все пробелы словом «ПРОБЕЛ».

№10.

1. Верно ли, что в данном тексте буква «к» прописная встречается меньше, чем строчная.

2. Задан текст (слова разделены пробелом, пробелы могут быть в начале и в конце текста). Определить, какой процент слов содержит удвоенную согласную (прописную или строчную).

3. Удалить из данного текста все буквы «о», которые идут после буквы «а» (прописной и строчной).

4. В заданном тексте каждую группу цифр взять в скобки.

5. В заданном тексте заменить каждую букву «Д» на буквосочетание «ФЕ».

№11.

1. Верно ли, что в данном тексте буква «Ф» встречается реже, чем буква «В» (учесть прописные и строчные буквы).

2. Задан текст (слова разделены пробелом, пробелы могут быть в начале и в конце текста). Определить, какой процент слов содержит удвоенную гласную (прописную или строчную).

3. Удалить из данного текста все буквы «ая», которые идут в конце слова (прописные и строчные).

4. В заданном тексте каждую группу цифр взять в квадратные скобки.

5. В заданном тексте заменить каждую гласную букву символом «=», каждую согласную символом «/», каждую цифру знаком «*», пробелы оставить без изменений, а все остальные символы заменить на букву «?».

ЗАДАНИЕ 2:

1) Дана строка, состоящая из n символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Найти длину самого короткого слова.

2) Дана строка, состоящая из n символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Подсчитать количество букв “ a ” в каждом слове данной строки.

3) Дана строка, состоящая из n символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Подсчитать количество слов из 3 букв в данной строке.

4) Дана строка, состоящая из n символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Подсчитать количество слов в строке, заканчивающихся на буквы “а”.

5) Дана строка, состоящая из n символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Найти длину самого длинного слова.

6) Дана строка, состоящая из n символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Подсчитать количество слов, содержащих букву “ a ”.

7) Дана строка, состоящая из n символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Проверить упорядочены ли слова в алфавитном порядке.

8) Дана строка, состоящая из n символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Вывести слова данной строки с указанием длины каждого слова.

9)Текст шифруется следующим образом: после первых двух букв вставляется «со», после следующих двух «ло», и так повторяется пока есть хотя бы 2 буквы. Написать программу шифровки.

 

Контрольные вопросы:

1. Какой тип данных называется символьным?

2. Как описывается символьный тип данных?

3. Какая функция используется для определения кода символа?

4. Какая функция используется для определения символа, следующего за данным символом?

5. Какой тип данных называется строковым?

6. Как описывается строковый тип данных?

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

8.Какие процедуры используются для обработки строковых данных?

9.Какие функции используются для обработки строковых данных?

Содержание отчета: тема и цель работы,созданные программы,выводы.Отчет сдать преподавателю.


Дата добавления: 2015-07-20; просмотров: 89 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Порядок выполнения работы| Тема: Сводка и группировка статистических данных

mybiblioteka.su - 2015-2024 год. (0.021 сек.)