Поиск по сайту


Каталог учебных материалов

Свежие работы в разделе

Наша кнопка

Разместить ссылку на наш сайт можно воспользовавшись следующим кодом:


Контакты

Если у вас возникли какие либо вопросы, обращайтесь на email администратора: admin@kazreferat.info

Строковый тип данных в языке Pascal

Узнать стоимость написания работы

Познакомимся с типом данных, который относится к числу структурированных. Это строковый тип данных (строка). Строка — это последовательность символов. Каждый символ занимает 1 байт памяти (код ASCII). Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными. Особенностью строки в Turbo Pascal является то, что с ней можно работать как с массивом символов, с одной стороны, и как с единым объектом, — с другой. За счет этого обработка строк достаточно гибка и удобна. Строковая константа есть последовательность символов, заключенная в апострофы. Например: 'это строковая константа', ‘272’. Строковая переменная описывается в разделе описания переменных следующим образом:

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

Например:

Var Name : string[20].

Параметр длины может и не указываться в описании. В таком случае подразумевается, что он равен максимальной величине — 255. Например: Var slovo : string.

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

Символы внутри строки индексируются (нумеруются) от единицы. Каждый отдельный символ идентифицируется именем строки с индексом, заключенным в квадратные скобки. Например: N[5], S[i], slovo[k+l]. Индекс может быть положительной константой, переменной, выражением целого типа. Значение индекса не должно выходить за границы описания.

Тип string и стандартный тип char совместимы. Строки и символы могут употребляться в одних и тех же выражениях.

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

Операция сцепления (конкатенации) (+) применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные.

Пример: 'Мама ' + 'мыла ' + 'раму'. В результате получится строка: 'Мама мыла раму'. Длина результирующей строки не должна превышать 255.

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

Пример:

Выражение Результат
‘True1’<’True2’ True
‘Mother’>’MOTHER’ True
‘Мама ‘ <> ‘Мама’ True
‘Cat’=’Cat’ True

Функция Copy(S, Pozition, N) выделяет из строки S подстроку длиной N символов, начиная с позиции Pozition. Здесь N и Pozition — целочисленные выражения.

Пример:

Значение S Выражение Результат
‘Мама мыла раму’ Copy(S, 6, 4) ‘мыла’
‘Маша ела кашу’ Copy(S, 1, 8) ‘Маша ела’

Функция Concat(S1, S2, …, SN) выполняет сцепление (конкатенацию) строк S1, S2, …, SN в одну строку.

Пример:

Выражение Результат
Concat('Маша ', 'ела ', 'кашу') 'Маша ела кашу'

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

Пример:

Значение S Выражение Результат
'test-5' Length(S) 6
'(A+B)*C' Length(S) 7

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

Пример:

Значение S2 Выражение Результат
'abcdef' Pos('cd', S2) 3
'abcdcdef' Pos('cd', S2) 3
'abcdef' Pos('k', S2) 0

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

Пример:

Исходное значение S Оператор Конечное значение S
'abcdefg' Delete(S, 3, 2) 'abefg'
'abcdefg' Delete(S, 2, 6) 'a'

В результате выполнения процедуры уменьшается текущая длина строки в переменной S.

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

Пример:

Исходное значение S2 Оператор Конечное значение S2
'ЭВМ РС' Insert('IBM-', S2, 5) 'ЭВМ IBM-PC'
'Рис. 2' Insert('N', S2, 6) 'Рис. N 2'

Контрольные вопросы и задания

Как можно объявить величину строкового типа?

К каким типам данных относятся строки?

Какова максимально возможная длина строки?

С величиной какого типа данных совместим по присваиванию отдельный символ строки?

Расскажите об операциях, которые можно выполнять над строковыми величинами.

Расскажите о функциях, определенных для величин строкового типа.

Расскажите о процедурах, определенных для величин строкового типа.

Как осуществляется доступ к отдельному сииволу строки?

Почему значение отношения 'Мама'<>'мама' равно TRUE?

Дан фрагмент программы:

S:= ‘’;

For I:= ‘0’ to ‘9’ do S:=S+I;

Какое значение пулучит переменная S после его исполнения?

Дан фрагмент программы.

Type String40 = String[40]; M = Array[1..100] Of String40;

Var A : M; I, J, Min, N : Byte; Vsp : String40;

Begin

Write('N? '); ReadLn(N);

For I := 1 To N Do ReadLn(A[I]);

For I := 1 To N-1 Do

Begin Min := I;

For J := I + 1 To N Do If A[J] < A[Min] Then Min := J;

Vsp := A[I]; A[I] := A[Min]; A[Min] := Vsp;

End;

WriteLn('Ответ: '); For I := 1 To N Do WriteLn(A[I])

End.

Точно и однозначно сформулировать условие задачи, решение которой приведенно в данном фрагменте.

Имеется следующая переменная

Var S : Array[1..100] Of String;

Какое из обращений к J-му символу I-той строки (I-го элемента массива S) будет правильным?

1) S[I][J]; 2) S[I,J]; 3) S[J][I]; 4) ответы 1–2 правильны; 5) среди ответов нет ни одного правильного.

Какая функция (процедура) является аналогом операции сцепления (+) при работе со строками?

Каков будет результат выполнения операции сцепления, если длина результирующей строки превысит значение255?

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://www.comp-science.narod.ru/

Другие материалы

  • Object Pascal
  • ... средствами Delphi, а текст классов при этом составляет сама Delphi, либо явно, когда программист пишет код класса средствами языка Object Pascal. Новый класс строится на основе другого, более простого, класса. Для этого в заголовке класса указывается его класс-родитель. Синтаксис заголовка нового ...

  • Разработка обучающей программы, поддерживающей изучение темы "Структуры данных"
  • ... сделанных выводов решено создать дополнительное обучаю­щее средство в виде обучающей программы, поддерживающей индивидуаль­ное изучение всех вопросов темы, а также, дополнительные сведения о типах данных. Кроме того, в программу будет встроен блок самоконтроля, поддер­живающий проверку усвоения ...

  • Основные понятия алгоритмического языка
  • ... память ЭВМ, операция вывода - это пересылка данных из основной памяти на внешнее устройство (в выходной файл). Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах на языке Паскаль имена файлов задаются с помощью строк. ...

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

  • Обучающая программа Графика программированию в графическом режиме на языке turbo-pascal 7.x
  • ... про­грамму для обучения работе в графическом режиме языка TURBO-PASCAL 6.07.0. Для ее создания необходимо не только написание программы, но и подготовка соответствующих методических материалов. Так как тема обучающей программы связана с программированием, то данную работу могут полностью выполнить ...

  • Основы программирования на языке Паскаль
  • ... r1:=-46.78; r2:=-46.78; writeln('r1=',r1:12:3,' r2=',r2:9:4); writeln('_______________________________'); readln; END. 6. Массивы   6. 1. Описание массивов В языке Паскаль можно обрабатывать не только отдельные переменные, но и их совокупности. Одной из таких совокупностей ...

  • Разработка программ в среде программирования Turbo Pascal 7.0
  • ... ними можно использовать фоpмат для символа пpобела,напpимеp WRITE(` `:5,A:3,` `:7,B:4) МОДУЛИ Наличие модулей в Turbo Pascal позволяет программировать и отлаживать программу по частям , создавать библиотеки подпрограмм и данных, воспользоваться возможностями стандартных модулей , ...

  • Алгоритмический язык Паскаль
  • ... называются их адресами. Поэтому, если мы говорим о переменных, то находимся в рамках программы, записанной на алгоритмическом языке. При трансляции Паскаль-программа превращается в программу на машинном языке (в цифровых кодах), где аналогом переменной является ячейка, а имя переменной превращается ...

  • Алгоритмические языки и программирование Системное программное обеспечение Технология программирования"
  • ... в Windows NT. Зав. кафедрой --------------------------------------------------   Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего ...

  • Понятие множества. Символьный тип
  • ... . Понятие множества в языке программирования значительно уже математического понятия. В Паскале под множественным типом понимается конечная совокупность элементов, принадлежащих некоторому базовому типу данных. В качестве базовых типов могут использоваться: перечислимые типы; символьный; ...

  • Языки и технология программирования
  • ... позволяет выделять фрагменты программы во вспомогательные алгоритмы (ВА). Это позволяет писать хорошо структурированные программы. Языки программирования, в которых предусмотрены ВА, называются процедурно-ориентированными. Структурированные программы обычно проще в понимании и отладке. Наличие ВА ...

  • Разработка базы данных
  • ... , что зависимость соединения является обобщением как многозначной зависимости, так и функциональной зависимости. 4. РАЗРАБОТКА БАЗЫ ДАННЫХ 4.1 Предметная область базы данных База данных предназначена для хранения информации об электронных источниках литературы в виде файлов, упакованных в ...

Rambler's Top100 Рейтинг@Mail.ru
Рефераты и материалы размещенные на сайте принадлежат их законным правообладателям. При использовании материалов сайта, ссылка на KazReferatInfo обязательна!
Казахстанские рефераты
Copyright © 2007-2016г. KazReferatInfo