69742

Символьні масиви. Рядковий тип

Домашняя работа

Информатика, кибернетика и программирование

Крім того, для рядкових масивів допустима операція конкатенації, яку позначають символом +. Вона полягає у формуванні нового символьного масиву, розмір якого дорівнює сумі розмірів масивів-операндів, а значення - це елементи масивів-операторів, розміщені послідовно.

Украинкский

2014-10-09

40 KB

0 чел.

Самостійне вивчення

Тема 4: Символьні масиви. Рядковий тип.

Окремо виділимо масиви, елементи яких є символьного типу (char). Такі одновимірні масиви, індексами яких є діапазон цілого типу, називають рядками. Наприклад:

var R: array [1..14] of char;

У Паскалі є деякі додаткові засоби роботи з такими масивами. По-перше, змінним такого типу можна присвоювати символьні сталі (тобто рядки символів):

R:='Рядок символів';

У цьому випадку довжина присвоюваного рядка повинна чітко збігатися з розмірністю відповідного символьного масиву.

Крім того, для рядкових масивів допустима операція конкатенації, яку позначають символом +. Вона полягає у формуванні нового символьного масиву, розмір якого дорівнює сумі розмірів масивів-операндів, а значення - це елементи масивів-операторів, розміщені послідовно. Наприклад:

var

s1: array [1..5] of char; s2: array [1..8] of char;

Тоді можна записати

s1:='Рядок'; s2:='символів'; writeln(s1+'   '+s2);

Буде виведене повідомлення: Рядок символів

Виведення для рядка не є обов'язково покомпонентне, дозволено задати й ім'я. Операцію конкатенації не можна використати в правій частині присвоєння, наприклад, s:=s1+s2. Для цього треба застосувати рядки змінної довжини.

Рядки, що містять однакову кількість компонентів, хоча належать до різних типів, можна порівнювати за допомогою

знаків -, <>, <, <-, >, >=. Для цього використовують властивість упорядкованості рядків. Рядки порівнюють шляхом послідовного порівняння символів до першого незбігання. Незбіжні символи визначають упорядкованість рядків. Упорядкованість же символів визначена їхнім внутрішнім зображенням у комп'ютері, зокрема, для букв - це алфавітний порядок, для цифр - порядок за зростанням.

Для прикладу порівняємо дві змінні рядкового типу:

type

aa=array [1..10] of char;

var

x1, x2: aa;

b: boolean;

x1 :='програма 1';

х2:='прогноз 22;

b:=х1>х2;

У цьому випадку b буде мати значення true, оскільки 'р'>'н'. Стандартна процедура read не читає автоматично рядки, їх треба читати в циклі символ за символом.

Рядковий тип (string)

У Турбо Паскалі реалізований рядковий тип, що є узагальненням символьних масивів, який дає змогу, на відміну від них, динамічно змінювати довжину рядка. Загальний вигляд опису рядкового типу такий:

type

<ім'я>=string[<максимальний розмір>];

Наприклад:

type

Line=string[80];

var R: Line;

Тепер змінна R типу Line може набувати значення будь-якої послідовності символів (типу char) завдовжки від 0 до 80. Це значення може бути присвоєне або введенне. Наприклад:

R:='Гpyпa КТ-14'; або readln(R); (3 клавіатури вводять ГрупаКТ-14<Enter>).

Як і для символьних масивів, тут використовується операція конкатенації. Наприклад:

writeln(R+'складає іспит 20-го січня');

Максимальну довжину в описі рядкового типу зазначають цілим числом або не зазначають, за замовчуванням приймається 255.

Під змінну рядкового типу відводиться N+1 байтів пам'яті, де N - максимальна довжина, зазначена в описі (рис 1).

Нульовим елементом є байт, що містить значення довжини поточного рядка, наступні k елементів - поточне значення рядка, і байти k+1..N- вільні.

 0 1 2          к    к+1 n-1      n

 Значення рядкової змінної Вільна частина

Довжина рядкової змінної

Рис. 1. Структура пам'яті для даних типу string.

Для визначення довжини поточного значення рядка використовують нульовий елемент

Writeln (ord(R[0]))

З іншого боку, якщо спочатку присвоїти R[0]:=5;

то writeln(R) виведе "Група", тобто тільки п'ять елементів.

Частіше для визначення довжини рядка використовують функцію Length, параметром якої є вираз рядкового типу. Наприклад:

writeln(Length(R+'здає  іспит 20-го січня')); виведе число 33 - цілого типу.

Крім операції конкатенації, над змінними рядкового типу визначені операції порівняння, у разі використання яких діють такі правила:

а) коротший рядок завжди менший від довшого;

б) якщо довжини однакові, то поелементно порівнюються символи порівнюваних рядків з урахуванням лексикографічної впорядкованості значень стандартного символьного типу char.

Присвоєння змінній рядкового типу виразу з довжиною, більшою від максимально допустимої, зумовлює до обрізання рядка до максимальної довжини. Наприклад:

var

st: string [5];

st:='Програма';

writeln(st);

Буде виведене слово Прогр.

Доступ до окремих елементів рядкових типів такий самий, як і до елементів звичайних одновимірних масивів - за допомогою індексів у квадратних дужках. Наприклад: R[5];     st[2].

У процесі поелементного опрацювання рядкових типів треба враховувати їхню поточну довжину.

У Турбо Паскалі з рядковими типами використовують низку функцій:

1) concat([s1 ,s2,...,sn]: string): string - злиття довільної кількості рядків. Якщо довжина вислідного >255, то він буде обрізаний;

2) copy(s: string; Index: integer; Count: integer): string - повертає частину рядка 5 довжиною Count, починаючи від символу з номером Index;

3) delete(var s: string; Index, Count: intrger) - вилучає з рядка s частину цього рядка довжиною Count, починаючи з Index;

4)  Insert(Source: string; var s: string; Index: integer) — вставляє рядок Source в рядок s, починаючи з Index;

5)  Length(s: string): integer - повертає довжину рядка s;

6) Pos(Substr, s: string): byte - результатом цієї функції є номер позиції, з якої в рядку s розміщений рядок Substr.


 

А также другие работы, которые могут Вас заинтересовать

37242. Утилита 40.5 KB
  Так компьютерные утилиты можно разделить на три группы: Утилиты сервисного обслуживания компьютера утилиты расширения функциональности и информационные утилиты. Утилиты сервисного обслуживания УСО К УСО относятся все виды сервисных программ такие как утилиты по: дефрагментации проверке и исправлению структуры разделов жёсткого диска исправлению системных зависимостей тонкой настройке системы и т. Утилиты по контролю ошибок и повреждений структуры разделов и SMRTревизоры Проверяют на наличие ошибок файловую систему и устройство...
37243. Что такое мультимедиа и мультимедиа-компьютер 32.5 KB
  Мультимедиакомпьютер это компьютер снабженный аппаратными и программными средствами реализующими технологию мультимедиа. Области применения мультимедиа Обучение с использованием компьютерных технологий Специальными исследованиями установлено что из услышанного в памяти остается только четверть из увиденного треть при комбинированном воздействии зрения и слуха 50 а если вовлечь учащегося в активные действия в процессе изучения при помощи мультимедийных приложений 75 [46]. Технологию мультимедиа составляют две основные...
37244. Как возник Интернет 89 KB
  Поэтому многие ошибочно думают будто Всемирная паутина это и есть Internet. С ее появлением и началось триумфальное шествие Internet как средства информации и коммуникации для каждого. С этого времени в Internet начали активно выходить также обычные рядовые пользователи.
37245. Операционная система, ее назначение и функции 423.5 KB
  Вопрос 17 Организация файловой системы Все современные дисковые операционные системы обеспечивают создание файловой системы предназначенной для хранения данных на дисках и обеспечения доступа к ним. Принцип организации файловой системы табличный. Формат служебных данных определяется конкретной файловой системой. Но для дисков большого объема такой подход неэффективен а для некоторых файловых систем и просто невозможен.
37246. Операционные системы. Их назначение и функции 69.5 KB
  Windows Серверные использующиеся в серверах сетей как центральное звено а также в качестве элементов систем управления; основная черта надежность; представители UNIX Windows NT Специализированные ОС ориентированные на решение узких классов задач с жестким набором требований высокопроизводительные вычисления управление в реальном времени;такие системы неразрывно связаны с аппаратной платформой; представители специализированные версии UNIX системы собственной разработки; Мобильные ОС вариант развития настольных ОС на...
37247. Внутренняя память 81.5 KB
  К ним относятся оперативная память постоянная память и энергонезависимая память. Оперативная память RM Rndom ccess Memory Память RM это массив кристаллических ячеек способных сохранять данные. Она используется для оперативного обмена информацией командами и данными между процессором внешней памятью и периферийными системами.
37248. Программное обеспечение. Уровни ПО 74.5 KB
  Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило базовые программные средства непосредственно входят в состав базового оборудования и хранятся в специальных микросхемах называемых постоянными запоминающими устройствами ПЗУ Red Only Memory ROM. Эти программные средства называют средствами обеспечения пользовательского интерфейса. Средства сжатия данных архиваторы.
37249. Организация файловой системы 399 KB
  Файловая система определяет где и каким образом на носителе будут записаны файлы и представляет операционной системе доступ к этим файлам. Любая файловая система предназначена для хранения информации о физическом размещении частей файла. От файловой системы требуется четкое выполнение следующих действий: Определение физического расположения частей файла; Определение наличия свободного места и выделение его для вновь создаваемых файлов.
37250. Работа с формулами 410.46 KB
  В Excel в качестве операнда могут выступать константы ссылки на ячейки имена или функции значения которых будут использованы. Пересчет можно провести непосредственно из окна Параметры: кнопка Вычислить F9 вычисление значений для всех открытых листов включая таблицы данных а также обновление всех открытых диаграмм; кнопка Пересчет листа выполнение расчетов по текущему листу а также по связанным с ним диаграммами и таблицами данных Ошибка Если пользователь допустил ошибку в ячейке с формулой появится одно из следующих...