рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Встроенный тип STRING

Встроенный тип STRING - раздел Программирование, О.Ф. Власенко, И.В. Беляева символы и строки в языке Turbo Pascal   Для Хранения Текста В Оперативной Памяти В Языках Программиро...

 

Для хранения текста в оперативной памяти в языках программирования, как правило, используются специализированные типы данных. В Turbo Pascal 7.0 такими типами данных являются строки. Фактически строка – это массив символов. Но из-за специфики работы с текстом и из-за широкого использования строк они выделены в специальные типы данных.

В Turbo Pascal можно использовать два вида строк - строки типа string и строки типа ASCIIZ. Строки типа string являются для Turbo Pascal “родными”, а строки типа ASCIIZ позаимствованы из языка Си. Сразу заметим, что работать со строками string проще, чем со строками ASCIIZ. По этим причинам мы будем рассматривать только работу со строками string.

 

String определен в Turbo Pascal как стандартный тип данных. По сути дела он определен как массив из 256 символов, с индексами от 0 до 255, то есть следующим образом:

Type

String = array [0..255] of char;

 

На самом деле для хранения символов в строке string используется только 255 из 256 символов – это элементы с индексами от 1 до 255. Элемент с индексом 0 хранит количество реально используемых элементов в строке, то есть нулевой элемент строки String по своему назначению эквивалентен переменной n в следующем фрагменте программы:

Var

A: Array[1..255] of char; {Массив символов, в котором может храниться от 0 до 255 элементов}

N:Byte; {Реальное количество элементов, хранимых в массиве A}

 

Например, если S – строковая константа, объявленная следующим образом:

Const

S = ‘Строка’;

то S представляет следующее содержимое:

Например, если T – строковая переменная, объявленная и инициализированная следующим образом:

Var

T : String;

Begin

T := ‘Turbo Pascal’;

тогда в переменной T хранится следующее значение:

 

Поскольку нулевой элемент строки String, так же, как и остальные элементы, имеет тип char (символ), то и реальное количество элементов, хранящееся в нем, есть не число, а символ. Об этом необходимо помнить в случае использования нулевого элемента в вашей программе напрямую. Например:

 

Var

S:string;

N:Byte;

Begin

Write(‘Введите строку’);

Readln(S); {Ввод строки S}

N:=s[0]; {ОШИБКА – нельзя символ присваивать

переменной целого типа}

N:=Ord(s[0]); {Ошибки нет – переменной целого типа

присваивается не символ, а его код , т.е. целое число }

Writeln(‘Вы ввели строку ‘’’,S,’’’’); {Вывод введенной

строки}

Writeln(‘Она содержит ’,N,’ символов’); { вывод количества

символов во введенной строке}

Writeln(‘Она содержит ’,ord(s[0]),’ символов’);{То же самое}

Writeln(‘Она содержит ’,Length(S),’ символов’);{Снова то же

самое, но теперь уже с использованием

стандартной функции Length}

End.

 

 

Поскольку строка типа String, по сути дела, является массивом, то обработка строк сводится к обработке массивов. То есть со строками можно делать абсолютно все то же, что можно делать с любыми другими массивами. Только нужно помнить, где и как хранится количество элементов в строке.

 

Пример 1:

Необходимо ввести строку. Заменить все пробелы на символ ‘#’. Вывести строку после обработки.

 

var

s : string; {Строка}

I : byte; {Счетчик для прохода по всем символам строки S}

begin

{Ввод строки}

write('Введите строку: ');

readln(s);

{Замена пробелов на ‘#’}

for i:=1 to ord(s[0]) do

if s[i]=' ' then s[i]:='#';

{Вывод получившейся строки}

writeln('Получили строку: ',s);

end.

 

В данном примере стоит обратить внимание на то, что, хотя строка и является массивом символов, но ввод и вывод строки не требует цикла – она вводится и выводится как единое целое. Заметим также, что ввод строки необходимо производить при помощи процедуры ReadLN, но ни в коем случае не при помощи процедуры Read (!).

 

Рассмотрим еще один пример обработки строки как массива символов:

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

 

var

s : string; {Строка}

i, j : byte; {Счетчики}

begin

{Ввод строки}

write('Введите строку: ');

readln(s);

 

{Поиск и удаление символов}

I := 1;

while I <= ord( s[0] ) do

{Проверка – нужно удалять символ s[i] или нет}

if ( s[i] = '.' ) or ( s[i] = ',' ) or ( s[i] = ':' )

or ( s[i] = '-' )

{**1**}

then

begin

{Собственно удаление}

for j := i to ord(s[0]) - 1 do

s[j] := s[j+1];

{Уменьшение длины строки}

s[0] := chr( ord(s[0]) - 1);

 

{**2**}

end

else

i:=i+1; {Переход к следующему символу}

 

{Вывод получившейся строки}

writeln('Получили строку: ',s);

end.

 

В этом примере есть 2 места, в которых можно чувствительно упростить программу. Начнем со второго:

{**2**} Вместо записи s[0]:=chr(ord(s[0])-1); можно написать dec(s[0]) – эффект будет тот же.

Теперь первое:

{**1**} Вместо записи if (s[i]='.') or (s[i]=',') or (s[i]=':') or (s[i]='-') можно записать if s[i] in [‘.’,’,’,’:’,’-’] – эффект будет тот же.

 

Последняя строка требует пояснения. Дело в том, что при обработке строк в Turbo Pascal весьма широко и эффективно используются множества.

 

 

– Конец работы –

Эта тема принадлежит разделу:

О.Ф. Власенко, И.В. Беляева символы и строки в языке Turbo Pascal

Министерство образования Российской Федерации.. ульяновский государственный технический университет..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Встроенный тип STRING

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

СИМВОЛЫ И СТРОКИ В ЯЗЫКЕ TURBO PASCAL
  Методические указания к выполнению лабораторных работ по программированию для студентов направлений 5528 “Информатика и вычислительная техника”, 5205 “Лингвистика” и специальности 2

Власенко О.Ф., Беляева И.В.
В58 Символы и строки в языке Turbo Pascal: Методические указания к лабораторным работам. – Ульяновск: УлГТУ, 2002.- 44 с.   В методических указаниях рассмотрено использование

Символьный тип char
  Во всех современных языках программирования имеется стандартный (встроенный) символьный тип. В языке Паскаль он называется CHAR. Переменные и константы этого типа хранят символы. Си

Функция Ord
  Function Ord(C: char): LongInt; Преобразует значение C в его порядковый номер (Order - порядок). Пример: C := '!'; {C хранит символ ‘Восклицательный знак’

Функция UpCase
  function UpCase(Ch: Char): Char; Преобразует символ Ch в большие буквы. Действует только на латинские буквы. Пример: C:=UpCase(‘r’); {c=’R’} C:=U

Процедура Inc
  Procedure Inc(Ch: Char [; N: LongInt] ); Увеличивает значение символа Ch на N. Используется в двух формах: 1. Усеченная форма – параметр N отсутствует. В этом случ

Процедура Dec
  Procedure Dec(Ch: Char [; N: LongInt] ); Работает аналогично Inc, только в сторону уменьшения - уменьшает значение символа Ch на N. Используется в двух формах: 1.

Правила сравнения двух строк
  При сравнении двух строк (назовем их A и B) последовательно сравниваются соответствующие символы двух строк – первый с первым (A[1] с B[1]), второй со вторым (A[2] с B[2]) и так дал

Стандартные процедуры и функции для работы со строками string
  В Turbo Pascal определены 4 процедуры и 4 функции для работы со строками string.   Процедуры: Delete – удаление подстроки из строки. Insert

Процедура Delete
  Procedure Delete(var S: string; Index, Count: Integer); Удаляет из строки S подстроку, задаваемую параметрами Index и Count. Index – номер первого удаляемого симво

Процедура Str
  Procedure Str(X[:Width[:Decimal]]; var S: string); Преобразовывает число X в последовательность символов (строку) S в соответствии с заданными значениями форматирования Wid

Процедура Val
  Procedure Val(S; var V; var Code: Integer); Преобразовывает символьное представление числа S в целое или вещественное число V. Code – код ошибки, возникающей при переводе с

Функция Concat
  function Concat(s1 [, s2,..., sn]: String): String; Склеивает строки s1, s2 ... sn в одну и возвращает ее.   Пример: S1 := ’Иван’;

Множества
  Термин “множество” в Turbo Pascal используется аналогично его математическому пониманию. Множества в Turbo Pascal могут включать элементы только порядковых типов. При этом элементы

СИМВОЛЫ И СТРОКИ В ЯЗЫКЕ TURBO PASCAL
  методические указания к выполнению лабораторных работ по программированию для студентов направлений 5528 “Информатика и вычислительная техника”, 5205 “Лингвистика” и специальности 2

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги