- •Конспект лекций
- •1.4 Общая структура программы
- •1.5 Стандартные процедуры и функции
- •1.6 Процедуры ввода/вывода
- •2. Простые типы данных
- •2.1 Целые типы
- •2.2 Вещественные типы
- •2.3 Cимвольный тип данных
- •2.4 Логический тип данных.
- •2.5 Ограниченные типы
- •2.6 Перечислимые типы
- •2.7 Описание типов
- •2.8 Преобразование типов
- •2.9 Порядок вычисления выражений
- •3. Операторы языка Паскаль
- •3.1 Оператор присваивания
- •3.2 Составной оператор
- •3.3 Условный оператор
- •3.4 Оператор выбора case
- •3.5 Оператор цикла с параметром (цикл for)
- •3.6 Оператор цикла с предусловием (цикл while)
- •1 Вариант:
- •2 Вариант:
- •3 Вариант:
- •3.7 Оператор цикла с постусловием (цикл repeat)
- •3.8 Вложенные циклы
- •3.9 Оператор перехода goto
- •4. Массивы
- •4.2 Сортировка элементов массива
- •4.3 Многомерные массивы
- •5. Подпрограммы (процедуры и функции)
- •5.1 Процедуры
- •5.2 Функции
- •5.3 Области действия имен
- •5.4 Параметры процедур и функций
- •5.5 Побочные эффекты при использовании подпрограмм
- •5.6 Передача массивов в подпрограммы
- •5.7 Параметры-костанты
- •5.8 Массивы открытого типа
- •5.9 Рекурсия в подпрограммах
- •6. Строковый тип данных
- •6.1 Описание строк
- •6.2 Операции со строками
- •6.3 Процедуры и функции для работы со строками
- •7. Стандартные модули Турбо-Паскаля
- •7.1 Модули турбо3 и graph3
- •7.2 Модуль overlay
- •7.3 Модуль dos
- •7.4 Модуль system
- •7.5 Модуль printer
- •7.6 Модуль crt
- •7.7 Модуль graph
- •8. Записи
- •8.1 Определение записи
- •8.2 Оператор над записями
- •8.3 Вложенные записи
- •8.4 Массив записей
- •8.5 Записи с вариантами
- •9. Файлы
- •9.1 Определение файла
- •9.2 Процедуры и функции для работы с файлами
- •9.3 Нетипизированные файлы
- •10. Интегрированная среда Турбо Паскаля
- •10.1 Как начать работу с Турбо Паскалем
- •10.2 Ваша первая программа
6.2 Операции со строками
Сцепление строк (конкатенация) «+»
Эта операция добавляет к первой строке вторую.
Пример 1:
var st1, st2, st3: string[20];
begin
st1:=’Турбо’;
st2:=’Паскаль’;
st3:=st1+’ ’+st2;
writeln(st3); Турбо Паскаль
end.
Пример 2:
var st1, st2: string[7];
begin
st1:=’student’; student
st2:=’123’; 123
st1:=st2+st1; 123stud
end.
Сравнение строк (>, <, >=, <=, =, <>)
Сравнение двух строк осуществляется следующим образом. Символы строк сравниваются попарно друг с другом так, что первый символ первой строки сравнивается с первым символом второй строки, второй символ первой строки - со вторым символом второй и т.д. Символы сравниваются путем сравнения их кодов во внутреннем представлении. Если одна строка короче другой, недостающие символы заменяются нулем. Отношение первой несовпадающей друг с другом пары символов и принимается за отношение двух строк.
‘abc’=’abc’ ‘Abc’<’abc’
‘ab’<’abc’ ‘Abc’<’1ab’
‘ABC’<’ab’
6.3 Процедуры и функции для работы со строками
length (s: string): integer; - функция возвращает текущий размер строки (т.е. количество символов в строке; пробел тоже считается символом).
var n: integer;
str: string[15];
begin
str:=’Turbo Pascal’;
n:=length(str);
write(‘n=’,n); n=12
end.
copy (s: string; n1, n2: integer): string; - функция копирует из сроки S n2 символов, начиная с символа n1.
st1:=’abcdef’;
st2:=copy(st1,2,3); bcd
delete (var s: string; n1, n2: integer); - процедура удаляет из строки S n2 символов, начиная с символа n1.
st1:=’abcdef’;
delete(st1,1,3); def
insert (s1: string; var s2: string; n1: integer); - процедура вставляет строку s1 в строку s2, начиная с символа n1.
st1:=’abcdef’;
insert(‘++’,st1,4); abc++def
pos (s1,s2: string): byte; - функция возвращает номер позиции первого вхождения строки s1 в строку s2. Если строка s1 не входит в строку s2, то возвращает 0.
st:=’abcdef’;
n:=pos(‘d’,st); n=4
k:=pos(‘dc’,st); k=0
str (x[:M[:N]]; var s: string); - процедура преобразует число х в строку символов S; M,N – необязательные форматы вывода числа, аналогичные write.
var x: real;
n: integer;
st: string;
begin
x:=3.141592;
n:=5;
str(x,st); st=’3.141592’;
str(n,st); st=’5’;
str(x:4:2,st); st=’3.14’;
end.
val (s: string; var x, cod: integer); - процедура преобразует строку s в целое или вещественное число х. Если преобразование прошло успешно, то cod=0, иначе cod=номер символа, вызвавшего ошибку.
var x: real;
n, cod: integer;
st: string;
begin
st:=’3.14’;
val(st,x,cod); cod=0
val(st,n,cod); cod=2
end.
upcase (c: char): char; - функция преобразует строчную латинскую букву в заглавную
1) var st: string;
begin
st:=’a bc’;
st[3]:= upcase(st[3]);
write(st); a Bc
end.
2) repeat
…
write(‘Завершить? (Y/N)’);
readln(c);
until (upcase(c)=’Y’);
Пример 1: Удалить из строки все точки.
var st: string;
n: integer;
begin
write(‘введите строку’);
readln(st);
repeat
n:=pos(‘.’,st);
delete(st,n,1);
until n=0;
writeln(st);
end.
Пример 2: Удалить из строки все цифры.
var st: string;
n: integer;
c: char;
begin
write(‘введите строку’);
readln(st);
for c:=’0’ to ‘9’ do
repeat
n:=pos(c,st);
delete(st,n,1);
until n=0;
writeln(st);
end.
Пример 3: Поменять в строке порядок символов на обратный (abcd на dcba).
var st: string;
n: integer;
c: char;
begin
write(‘введите строку’);
readln(st);
for i:=1 to length(st) div 2 do
begin
c:=st[i];
st[i]:=st[length(st)-i+1];
st[length(st)-i+1]:=c;
end;
writeln(st);
end.
Задачи для самоконтроля
6.1 Определите значение переменной n после выполнения следующей программы:
var n: integer;
str: string[25];
begin
str:=Лев Толстой’;
n:=length(str);
write(‘n=’,n);
end.
6.2 Определите значение переменной st2 после выполнения следующих фрагментов программ:
а) st1:=’abc def’;
st2:=copy(st1,5,2);
б) st2:=’abcdef’;
delete(st2,3,2);
в) st2:=’abcd’;
insert(‘***’,st2,2);