русс | укр

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

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Описание переменных строкового типа в Паскале

Описание переменных строкового типа в Паскале

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

  1. Type st =string[n];                          2.  Var s   :string[n];

Var s          :st;
где   st  -  имя типа;
         s   - имя переменной;
n  - размер строки (область памяти), количество символов в строке
(атрибут длины n=1..255).
Нулевой байт строки содержит информацию о ее фактической длине.  

Операции с переменными строкового типа

     Над переменными строкового типа (стрингами) можно выполнять следующие операции:

  1. присваивание (ввод/вывод);
  2. сравнение
  3. конкатенацию.

 

Присваивание в Паскале

     Перемененной типа  String можно присвоить значение другой переменной либо строковой константы
St:=’Студент’;
    Stu:=St;
При этом длина строковой константы д.б. не более объявленной в противном случае избыточные символы будут проигнорированы.

                                        Вввод / вывод

     Перемененные типа  Stringможно считывать из файла или записывать в файл целиком либо посимвольно, т.е. к каждому элементу строки можно обращаться как к элементу массива.

Readln(f, Str);
Writeln(f, Str);
For i:=1 to n do Readln(f, Str[i]);
For i:=1 to n do Writeln(f, Str[i]);

 

 

Сравнение в Паскале

    Сравнение стрингов производится с помощью операций отношения  (=, <>, <, >, <=, >=) путем по парного сравнения двух символов различных стрингов слева на право (сравниваются их числовые представления по таблице кодов ASCII).
Два строки равны, если они одинаковой длины и состоят из одинаковой последовательности символов.
‘a’<’b’            т. к.       ORD(‘a’)<ORD(’b’)
‘a1’<’a2’            т. к.       ORD(‘a1’)<ORD(’a2’)
‘ a’<’a ’          т. к.      ORD(‘ ’)<ORD(’a’)
‘kom’<’com’     т. к.      ORD(‘k’)<ORD(’c’)

 

Конкатенация (Сцепление) в Паскале

     Конкатенация - ообъединение двух и более строк в одну. Операция обозначается знаком ‘+’ и имеет более высокий приоритет, чем сравнение. Она применяется к стринговым переменным и константам. При этом длина строковой константы д.б. не более объявленной в противном случае избыточные символы будут проигнорированы.
S:=St1+St2;
 S:=’TURBO’+’PASCAL’;
 R:=’5’+’.’+’5’;  (R:=5.5)

     Существует набор процедур и функций для работы со стоками. Основные, из которых приведены, в табл.1.

Таблица 1


п/ф

Запись

Назначение

Пример

ф

Length(str)

Определяет фактическую длину строки.

Var Str    :string[10];
***
Srt:=’ПЕТРОВ’;
L:=Length(str);      (l=6)

ф

Concat(S1,…Sn)

Cцепление строк

S1:= ’ПЕТРОВ’;
S2:=Concat(S1,’Н. И.’)

ф

Pos(St1,Str)

Обнаруживает в строке Str  подстроку  ST1 и выдает номер позиции (к), с которой она начинается и 0 если подстрока не обнаружена

k:=Pos(‘55’,’1552’); (k=2)
k:=Pos(‘53’,’1552’); (k=0)

ф

Copy(Str,p,N)

Выделяет из строки Str подстроку длиной  Nначиная с позиции P

s:=Copy(‘ПЕТРОВ’,4,3);
s:=’РОВ

п

Delete(Str,p,N)

Удаляет из строки Str, начиная с позиции P, N символов

S:= ’ПЕТРОВ’;
Delete(S,5,2);
S:= ’ПЕТР’;

п

Insert(Str1,Str,p)

Вставляет в строку Str подстроку Str1 начиная с позиции P, N символов

S:= ’ПЕТРОВ’;
Insert(S,’A’ ,7);
S:= ’ПЕТРОВA’;

п

Val(Str,N,k)

Преобразует стринг Str в число N. k –код преобразования

Val(‘30’,N,k); (N=30; k=0)
Val(‘3.0’,N,k);
(N=то же; k=2)

п

Str(N,Str)

Преобразует число N в стринг в Str

Str(55,S);S:=’55’

    

     Пример 17.3.  Заменить во введенном тексте фамилию ИВАНОВ на ПЕТРОВ.

 

Текст программы

Program string1;
Uses CRT;
Var
str          :string;
p            :integer;
Begin
ClrScr;
{   Writeln('Введите строку');
Read(str);}
str:=' Студент Иванов не посещал лекции,
студент Иванов не сдал экзамен ';
p:=Pos('€ў ­®ў',str);
While p>0 do
Begin
Delete(str,p,6);
Insert('ЏҐва®ў',str,p);
p:=Pos('€ў ­®ў',str);
End;
Writeln('Результат:');
Writeln(str);
Readln;
End.

 

Результаты работы программы

Результат:
Студент Петров не посещал лекции, студент Петров не сдал экзамен

Просмотров: 13287

Вернуться в оглавление:Алгоритмические языки




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.