Цветовая схема:
C C C C
Шрифт
Arial Times New Roman
Размер шрифта
A A A
Кернинг
1 2 3
Изображения:
  • ХМАО - Югра, г. Нижневартовск
  • +7 (904) 483-50-68
  • sammitportal@mail.ru

10 класс, Строки в Паскале

10 класс, Строки в Паскале

10класс.jpg

Строки в Паскале

Строка в Pascal – это последовательность символов заключенных в апострофы. Переменную строкового типа данных определяет слово string:

Var <имя_переменной>: string[<длина строки>];

Длина строки может и не указываться, тогда она будет равна максимально возможному количеству символов — 255.

Для вывода строки указывается строка без скобок и их содержащего:

write(sing);

Объединить строки можно при помощи операции +, а также воспользовавшись функцией Concat. Следующая программа сначала выводит строку, в которой объединены две другие, а затем выводит все три имеющиеся строковые переменные посредством функции Concat.

[spoiler]
program stroki;
uses crt;
var sing, quant, sq: string;
begin
quant:=‘Квантовая’;
sing:=‘cингулярность’;
sq:=quant+‘ ‘+sing;
writeln(sq);
write(concat(sq, ‘ ‘,quant,‘ ‘, sing));
end.

Сравнение двух строк в Паскале осуществляется операциями отношения (<,>,=,<>,<=,>=). При этом первый символ первой строки сравнивается с первым второй строки, потом второй со вторым, третий с третьим и т. д. до тех пор, пока не нарушится равенство (т. е. число символов, либо их количество в строках окажется разным), или операция не завершится.

'stroke' < 'stroke' {вернет false}

'stroke' > 'str' {вернет true}

'stroke' = 'stroke' {вернет true}

Удалить необходимые символы из строки можно с помощью процедуры Delete. В общем виде она имеет вид:

Delete(<строка>, <начиная с этого символа>, <количество>)

Вот так выглядит элементарная программа, в которой используется процедура Delete:

program stroki;
uses crt;
var sing, quant, sq: string;
begin
quant:=‘Квантовая’;
delete(quant, 6, 4);
write(quant);
end.

После ее выполнения на экране появится слово «Квант».

Для вставки подстроки в строку в Паскале есть процедура Insert.

lnsert(<строка 1>, <строка 2>, <начиная с этого символа>)

Строка 1 вставляется в строку 2, начиная с указанного символа. Так, например, для вставки нашей строки sing в строку quant нужно пописать следующий код.

quant:=’Квантовая’;
sing:=’ cингулярность’;
insert(sing, quant, 10);

Длина строки – это количество символов содержащихся в переменной строкового типа. Чтобы узнать ее можно воспользоваться функцией Length, возвращающей целое число. Форма записи данной функции такая:

Length(<строка>);

В Паскале для копирования строк предусмотрена функция Copy:

Copy(<строка>, <начиная с этого символа>, <количество>);

Пример программы, использующей функцию Copy:

program stroki;
uses crt;
var sing, quant, sq: string;
begin
sq:=‘Квантовая cингулярность’;
quant:=copy(sq, 1, 9);
sing:=copy(sq, 10, 14);
write(quant, sing);
end.

Из sq было произведено копирование в две другие строки.

Функция Pos определяет позицию подстроки в строке, и в случае удачи возвращает целое число соответствующее номеру элемента, с которого начинается вхождение. Общий вид функции:

Pos(<подстрока>, <строка>);

Преобразование числового значения осуществляется посредством процедуры Str:

Str(<числовая величина>, <строка>);

Пример программы:

program stroki;
uses crt;
var s: string;
c: integer;
begin
c:=1000;
str(c, s);
write(s); {s = ‘1000’}
end.

Преобразовать строку в числовое значение можно при помощи процедуры Val:

Val(<строка>, <числовая величина>, <переменная>);

Строка должна состоять из числовых символов. Переменная нужна для записи номера первого ошибочного символа, в случае его наличия, либо нуля.

Пример кода:

program stroki;
uses crt;
var s: string;
c, err: integer;
begin
s:=‘1000’;
val(s, c, err);
writeln(c); {c = 1000}
writeln(err); {err = 0}
s:=’12p23′;
val(s, c, err);
writeln(c); {c = 12}
write(err); {err = 3}
end.

Задания на урок:

«A»: Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести фамилию и инициалы.

Пример:

Введите фамилию, имя и отчество: Иванов Петр Семёнович
П.С. Иванов

«B»: Ввести адрес файла и «разобрать» его на части, разделенные знаком '/'. Каждую часть вывести в отдельной строке.

Пример:

Введите адрес файла: C:/Фото/2013/Поход/vasya.jpg
C:
Фото
2013
Поход
vasya.jpg

«C»: Напишите программу, которая заменяет во всей строке одну последовательность символов на другую.

Пример:

Введите строку: (X > 0) and (Y < X) and (Z > Y) and (Z <> 5)
Что меняем: and
Чем заменить: &
Результат: (X > 0) & (Y < X) & (Z > Y) & (Z <> 5)

Удачи!

Текст программы вставляем в комментарий к этому сообщению, в теме указываем Фамилию и Имя.

Нравится0
20 марта 2020 10:50:44
Юмористам!
Комментарии от незарегистрированных пользователей, или от пользователей зарегистрированных не под своими данными УДАЛЯЮТСЯ!
Жить стало лучше, жить стало веселей!
Ответить Ссылка Нравится0
Нравится0
31 марта 2020 21:21:07
Брагин Артём
{Брагин Артём 10В задание C}
var stroka,chto,zamena: string;
dlina, nomer: integer;
begin
write ('Введите строку: ');
readln(stroka);
write ('Что меняем: ');
readln(chto);
write ('Чем заменить: ');
readln(zamena);
dlina:=length(chto);
nomer:=pos(chto,stroka);
if nomer=0 then writeln ('Ошибка! Не найдено.') else begin
while nomer>0 do begin
nomer:=pos(chto,stroka);
if nomer>0 then begin
delete(stroka, nomer, dlina);
insert(zamena, stroka, nomer);
end;
end;
writeln ('Результат: ',stroka);
end;
end.
Ответить Ссылка Нравится0
Нравится0
5 апреля 2020 11:45:01
Брагину Артёму
Артем, всё правильно, ты первый прислал программу. Для остальных терпение моё скоро закончится и я перестану принимать эту работу со всеми вытекающими последствиями...
Ответить Родитель Ссылка Нравится0
Нравится0
6 апреля 2020 16:03:21
Программа
program levelc{Калашин Олег уровень c};
var s,a,b:string;
c:integer;
Begin
Write('Введите строку: ');
Readln(s);
Write('Что меняем: ');
Readln(a);
Write('Чем заменить: ');
Readln(b);
For c:=1 to Length(s) do
if copy(s,c,length(a))=a then
 begin
  delete(s,c,length(a));
  insert(b,s,c)
 end;
Write('Результат: ');
Writeln(s);
end.
Ответить Ссылка Нравится0
Нравится0
6 апреля 2020 20:08:59
Олег, вот что у меня получилось
Введите строку: 12121212
Что меняем: 1
Чем заменить: 333
Результат: 333233321212
Ответить Родитель Ссылка Нравится0
Нравится0
6 апреля 2020 17:00:26
Сторожук Виктория
{Сторожук Виктория, задача С}
var s, c, h: string;
begin
   write('Введите строку: ');
   readln(s);
   write('Что меняем: ');
   readln©;
   write('Чем заменить: ');
   readln(h);
   while Pos(c, s) > 0 do begin
       Insert(h, s, Pos(c, s));
       Delete(s, Pos(c, s), Length©);
       end;    
   write('Результат: ', s);
end.
Ответить Ссылка Нравится0
Нравится0
6 апреля 2020 20:12:23
Виктория, странный ответ...
Введите строку: (X > 0) and (Y < X) and (Z > Y) and (Z <> 5)
Что меняем: and
Чем заменить: &
Результат: and
Ответить Родитель Ссылка Нравится0
Нравится0
Чернов Евгений
6 апреля 2020 17:52:33
Чернов Евгений
var a,b,c: string;
var i: byte;
begin
i:=1;
write('Введите строку:'); readln(a);
write('Что меняем:'); readln(b);
write('Чем заменить:'); readln©;
for i:=1 to length(a) do begin
if copy(a,i,length(b))=b then
 begin
  delete(a,i,length(b));
  insert(c,a,i);
 end;
end;
writeln('Результат:',a);
end.
Ответить Ссылка Нравится0
Нравится0
6 апреля 2020 20:14:33
Евгений, что это?
Введите строку:(X > 0) and (Y < X) and (Z > Y) and (Z <> 5)
Что меняем:and
Чем заменить:&
Результат:&
Ответить Родитель Ссылка Нравится0
Нравится0
6 апреля 2020 18:01:17
Здравствуйте ,дописываю остальные...
program strokic {Изибаева Анна C};
var a, b, c: string;
begin
write('введите строку: ');
readln(a);
write('что меняем: ');
readln(b);
write('чем заменить: ');
readln©;
while Pos(b, a) > 0 do
begin
Insert(c, a, Pos(b, a));
Delete(a, Pos(b, a), Length(b));
end;
write('результат: ', a);
end.
Ответить Ссылка Нравится0
Нравится0
6 апреля 2020 20:18:24
Всё верно, Анна.
Ответить Родитель Ссылка Нравится0
Нравится0
6 апреля 2020 18:01:45
Всем спасибо, работы больше не принимаются!
Ответить Ссылка Нравится0