Синтаксис объявления переменной строкового типа:
var ИмяПеременной : string[n]
где n <256 – длинна строки.
При объявлении длину строки можно не указывать.
Const | myword = ‘University’; |
Var | Fraze1 : string[45]; Fraze2 : string; |
Над переменными строкового типа определены операции следующего объединения – конкатенации (символ ‘+’) и сравнения (<, >, <=, >=, =, <>). Сравнение двух строк происходит слева направо до первых различных символов в соответствии с алфавитным порядком, причем больше считается тот символ, который размещен в алфавите дальше (у него больший номер в таблице ASCII кодов).
Существует два типа способа обработки данных типа string:
строку можно обрабатывать с помощью специальных строковых функций; строку можно рассматривать как массив и обрабатывать ее поэлементно.Замена символов в строках
Пример
В заданной строке из трех слов, определить длину строки и вывести второе слово на экран.
Блок-схема

Код программы в среде Pascal
program String;
uses Crt;
var i, k, m, n1, n2: integer;
str1: string;
begin
clrscr;
write(‘Введите строку’);
readln(str1);
m:=0;
k:= length(str1); { Определяем длину строки}
writeln(‘Длинна строки k=’, k );
for i:=1 to k do
if str1[i] = ‘ ‘ then
begin
m:=m+1;
{Определяем номер первого пропуска}
if m=1 then n1:=i;
{Определяем номер второго пропуска}
if m = 2 then n2:=i;
end;
{Выводим слово между двумя пропусками}
for i:=n1+1 to n2-1 do write(str1[i]);
readln;
end.
Внешний вид формы в Delphi
В конструкторе |
|
При выполнении |
|
Код программы в среде Delphi
procedure TForm1.Button1Click(Sender: TObject);
var i, k, m, n1, n2: integer;
str1: string;
begin
str1 := Edit1.Text;
m:=0;
k:= length(str1); { Определяем длину строки}
for i:=1 to k do
if str1[i] = ' ' then
begin
m:=m+1;
{Определяем номер первого пропуска}
if m=1 then n1:=i;
{Определяем номер второго пропуска}
if m = 2 then n2:=i;
end;
{Выводим слово между двумя пропусками}
Label1.Caption :='Длинна строки k='+ IntToStr(k)+'; Второе слово = ';
for i:=n1+1 to n2-1 do Label1.Caption :=Label1.Caption+str1[i];
end;
Лабораторная работа №10
Ввести фамилию, имя и отчество в одну строковую переменную. Определить длину строки. Выполнить задания двух вариантов: одно – в среде Pascal, другое – в среде Delphi.
№ | Формулировка задания |
1. | Вывести имя и количество букв в отчестве. |
2. | Определить сколько букв ‘а’ есть в фамилии |
3. | Вывести инициалы с точками (Ф. И.О.) |
4. | Вывести фамилию и инициалы () |
5. | Вывести длины фамилии и имени |
6. | Вывести имя и количество букв в фамилии |
7. | Определить количество букв '‘о’ в имени |
8. | Вывести самое длинное слово. |
9. | Изъять все буквы ‘а’ ‘о’ из фамилии. |
10. | Вывести имя в столбик |
11. | Начинается ли хотя бы одно слово с буквы ‘М’? |
12. | Все буквы ‘и’ в имени продублировать |
13. | Вывести фамилию и количество букв в имени. |
14. | Вывести имя в обратном порядке. |
15. | Вывести фамилию в столбик |
16. | Вывести имя, отчество и количество букв в фамилии. |
17. | Вывести самое короткое слово. |
18. | Вывести строку без пропусков. Сколько букв в имени? |
19. | Вывести суммы символов в трех словах. |
20. | Вывести имя и количество букв в фамилии |
21. | Каждую букву отчества продублировать. |
22. | Вывести имя и фамилию |
23. | Вывести фамилию в обратном порядке |
24. | Определить сколько букв ‘а’ и ‘б’ в фамилии. |
25. | Вывести отчество и количество букв в слове |
Кодировка текста
Пример.
Кодировка текста.
Удалить из некоторой фразы все пробелы, запятые и точки. Оставшиеся символы продублировать. Вывести результат.
Блок-схема

Код программы в среде Pascal
program Coding;
uses Crt;
var str1, str2, c: string;
i : integer;
begin
clrscr;
write(‘Введите строку’);
readln(str1);
str2 := ‘’;
for i := 1 to length (str1) do
begin
c := copy(str1, i, 1); {если поэлементно: c:=a[i];}
if (c<> ‘,’) and (c<> ‘.’) and (c<> ‘ ’) then str2:= str2+ c + c;
end;
writeln(str2);
readln;
end.
Внешний вид формы в Delphi
В конструкторе | При выполнении |
|
|
Код программы в среде Delphi
procedure TForm1.Button1Click(Sender: TObject);
var str1, str2, c: string;
i : integer;
begin
str1:=Edit1.Text;
str2 := '';
for i := 1 to length (str1) do
begin
c := copy(str1, i, 1); {если поэлементно: c:=a[i];}
if (c<> ',') and (c<> '.') and (c<> ' ') then str2 := str2 + c + c;
end;
Label1.Caption:=str2;
end;
Лабораторная работа №11
Написать программу введения текста в кириллице (до 150 символов), его кодирования по заданному алгоритму и выводу результата. Выполнить два варианта: один – в среде Pascal, другой – в среде Delphi.
№ | Варианты алгоритма кодирования |
1. | Каждую гласную заменить на следующую за ней в алфавитном порядке согласную. |
2. | Каждую согласную заменить на следующую за ней в алфавитном порядке гласную. |
3. | Каждую гласную заменить на предшествующую ей в алфавитном порядке согласную. |
4. | Каждую согласную заменить на предшествующую ей в алфавитном порядке гласную. |
5. | Каждую букву заменить на предшествующей ей в алфавитном порядке. |
6. | Каждую букву заменить на следующую за ней в алфавитном порядке. |
7. | Каждую букву заменить на ее порядковый номер в алфавите. |
8. | Из строки удалить пробелы и все гласные буквы удвоить |
9. | Из строки удалить пробелы и все согласные буквы удвоить |
10. | Все гласные буквы заменить предшествующим им по тексту согласными |
11. | Все согласные буквы заменить предшествующим им по тексту гласными |
12. | Все гласные буквы заменить следующими за ними по тексту согласными |
13. | Все согласные буквы заменить следующими за ними по тексту гласными |
14. | Заменить ‘а’ на ‘о’, ‘е’ на ‘и’ и наоборот. |
15. | Заменить ‘с’ на ‘з’, ‘т’ на ‘д’ и наоборот. |
16. | Каждой гласной букве поставить в соответствие один знак препинания и провести соответствующую замену. |
17. | Заменить все согласные буквы на знаки ‘%’ и ‘*’ поочередно. |
18. | Каждую букву заменить на четвертую за ней в алфавите (код Цезаря). |
19. | Каждую букву заменить на четвертую перед ней в алфавите (обратный код Цезаря). |
20. | Из строки удалить знаки пробелов, запятые и точки. Соседние буквы поменять местами. |
21. | Поменять местами буквы находящиеся на расстоянии 4 символа друг от друга. |
22. | Заменить каждую гласную букву на символ, находящийся на расстоянии 4 символа. |
23. | Заменить каждую согласную букву на символ, находящийся на расстоянии 4 символа. |
24. | Каждую гласную букву заменить на гласную, следующую за ней в алфавитном порядке. |
25. | Каждую согласную букву заменить на согласную, следующую за ней в алфавитном порядке. |
Подпрограммы
Следует отметить, что зачастую задачи, решаемые на практике, в отличии от учебных задач, являются сложными и громоздкими. В таких случаях следует помнить об основных принципах структурного программирования.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |






