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.


 

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

6057. Заголовок у друкованій рекламі: структура, типи та функції 83.82 KB
  Заголовок у друкованій рекламі: структура, типи та функції Вступ З кожним днем реклама все більше проникає в життя суспільства. Від написання рекламного тексту залежить, чи дізнаються люди про товар і чи буде він куплений. Якісний продукт може залиш...
6058. Дослідження елементного складу обєктів із використанням мас-спектрометра з лазерним джерелом іонів 283 KB
  Мета роботи: Ознайомитися з принципом дії часопролітного мас-спектрометра з лазерним джерелом іонів та вміти застосувати його при дослідженні елементного складу об'єктів...
6059. Технология машиностроения Правила оформления технологической документации 8.53 MB
  В методическом пособии рассмотрены основные требования стандартов по оформлению маршрутных и операционных карт, карт эскизов. Приведены иллюстрации переходов при механической обработке, правила записи и условные обозначения баз и зажимных устройств, примеры заполнения технологической документации....
6060. Индивидуальный привод с цилиндрическо-червячным редуктором 712.5 KB
  Индивидуальный привод с цилиндрическо-червячным редуктором Кинематический расчет Подбор электродвигателя По заданным характеристикам электродвигателя и редуктора: определим общее передаточное число...
6061. Налоговая система России, роль для развития экономики 137.17 KB
  Введение Налоги являются необходимым звеном экономических отношений в обществе с момента возникновения государства. Развитие и изменение форм государственного ...
6062. Расчет предела текучести металлов и сплавов как совокупной характеристики с учетом влияния структурных уровней 89 KB
  Расчет предела текучести металлов и сплавов как совокупной характеристики с учетом влияния структурных уровней Цель работы - на практике убедиться, что прочность металла является совокупной характеристикой его межатомных сил связи, а также влия...
6063. Автогенераторы. Основы теории цепей 36.5 KB
  Схема LC-автогенератора. Условия самовозбуждения. Баланс фаз, то есть совпадение начальных фаз гармонических напряжений на входе и выходе системы. Такое совпадение наступает, когда суммарный сдвиг фаз, вносимый усилителем и цепью обратной связи равен нулю или кратен...
6064. Педагогический дизайн в системе обучения русскому языку (на примере реализации программированной модели урока орфографии) 51.5 KB
  Педагогический дизайн в системе обучения русскому языку (на примере реализации программированной модели урока орфографии) Изменение условий учебного процесса в связи с внедрением новых информационных технологий требует пересмотра традиционных форм и...
6065. Открытие Америки и Южного моря 42 KB
  Открытие Америки и Южного моря Открытие Португалией морского пути в Индию вызвало и у других государств стремление искать морской путь в страны Востока. Испания не хотела мириться с усилением своего соседа - Португалии. Путь к берегам Африки з...